Main Content

テーブル UI コンポーネントのセルのスタイル設定

アプリでテーブル データを表示する場合、関数 uistyle および関数 addStyle を使用して、テーブル UI コンポーネントの個々のセル、行、および列にスタイルを設定できます。スタイルを使用して、背景色の変更、アイコンの表示、方程式の書式設定、テーブル セルへのクリック可能なリンクの設定を行います。この例では、スタイルを使用してサンプルの津波データをテーブルに表示する方法を説明します。

テーブル UI コンポーネントの作成

津波データをファイルから読み取ってから、データのサブセットを抽出して表示します。

T = readtable("tsunamis.xlsx");
T = T(1:20,["Year" "Validity" "MaxHeight" "Intensity"]);

そのデータをテーブル UI コンポーネントに表示します。

fig = uifigure;
tbl = uitable(fig,"Position",[10 10 540 400],"Data",T);

Table UI component with four columns of tsunami data: Year, Validity, MaxHeight, and Intensity

テーブル行の背景色の変更

最大の津波を表すテーブルの行の背景色を赤に設定することで、その行を目立たせます。

まず、最大高さが 10 メートルを超える津波を表す行を見つけます。

rows = find(tbl.Data.MaxHeight > 10);

次に、赤の背景色をもつスタイルを作成し、該当する行にそのスタイルを追加します。

s1 = uistyle("BackgroundColor","#F48B74");
addStyle(tbl,s1,"row",rows)

Table UI component with tsunami data. Rows that correspond to tsunamis with a maximum height greater than 10 meters are colored red.

テーブル セルでのアイコンの表示

次に、津波の妥当性に疑問の余地がある、または非常に疑いがあることを示す警告アイコンをテーブル セルに追加します。

疑問の余地がある、または疑いがある津波をもつ行を見つけます。妥当性を指定するセルはすべてテーブルの 2 列目にあるため、値 2 のみを含むベクトルを水平方向に連結して、セルの行と列のインデックスを含む配列を作成します。

warningRows = find(strcmp(tbl.Data.Validity,'questionable tsunami') | ...
    strcmp(tbl.Data.Validity,'very doubtful tsunami'));
warningColumns = repmat(2,size(warningRows));
cells = [warningRows warningColumns];

最後に、テキストの右側に警告アイコンを指定してセルのスタイルを設定します。

s2 = uistyle("Icon","warning","IconAlignment","right");
addStyle(tbl,s2,"cell",cells)

Table UI component with tsunami data. Cells that correspond to a validity of "questionable tsunami" or "very doubtful tsunami" have a warning icon to the right of the text.

テーブル列の方程式とシンボルの書式設定

テーブルの Intensity 列に TeX マークアップを追加します。

まず、強度データのない行を特定します。次に、Intensity 列の値を文字列に変換し、データがないセルには ⊘ シンボルを表示するように指定します。データのあるセルには、データの先頭に "M_L = " という文字列を付けて、値がリヒター マグニチュードであることを示します。

nanData = isnan(tbl.Data.Intensity);
tbl.Data.Intensity = string(tbl.Data.Intensity);
tbl.Data.Intensity(nanData) = "\oslash";
tbl.Data.Intensity(~nanData) = "M_L = " + tbl.Data.Intensity(~nanData);

Interpreter プロパティを "tex" に設定して、TeX マークアップを使用するように列のセルのスタイルを設定します。さらに、HorizontalAlignment プロパティを "right" に設定して、テキストを列のセルの右側に揃えます。

s3 = uistyle("Interpreter","tex","HorizontalAlignment","right");
addStyle(tbl,s3,"column","Intensity")

Table UI component with tsunami data. Text in the "Intensity" column is formatted with subscripts and symbols.

スタイルの削除

テーブル UI コンポーネントの StyleConfigurations プロパティをクエリして、テーブルのスタイルを調べます。スタイルは、テーブルに適用した順に一覧表示されます。

tbl.StyleConfigurations
ans =

  3×3 table

         Target     TargetIndex               Style          
         ______    _____________    _________________________

    1    row       {[  7 13 16]}    1×1 matlab.ui.style.Style
    2    cell      {6×2 double }    1×1 matlab.ui.style.Style
    3    column    {'Intensity'}    1×1 matlab.ui.style.Style

テーブルから最初のスタイルを削除します。

removeStyle(tbl,1)

Table UI component with tsunami data. The red background color is removed, but the icon and text formatting remains unchanged.

参考

関数

プロパティ

関連するトピック