Main Content

scroll

コンポーネント内の場所へのスクロール

説明

スクロール可能なコンテナーまたはボタン グループ

scroll(container,vlocation) は、コンテナーまたはボタン グループを垂直方向にスクロールします。vlocation'top' または 'bottom' として指定します。スクロールが可能な場合の詳細については、スクロールを有効にするための条件を参照してください。

scroll(container,hlocation) は水平方向にスクロールします。hlocation'left' または 'right' として指定します。

scroll(container,hlocation,vlocation) は、隅に向かって垂直方向と水平方向の両方にスクロールします。たとえば、scroll(container,'right','bottom') は、コンポーネントの右下の隅にスクロールします。

scroll(container,x,y) は、指定された (x, y) 座標までスクロールします。座標はコンテナーまたはボタン グループの左下隅からピクセル単位で測定されています。

scroll(container,coord) はピクセル座標を 2 要素のベクトル coord として指定します。たとえば、scroll(container,[100 150]) はコンテナーまたはボタン グループを座標 (100,150) にスクロールします。

テキスト エリア

scroll(txa,vlocation) は、テキスト エリアを垂直方向にスクロールします。vlocation'top' または 'bottom' として指定します。

ツリー

scroll(tr,vlocation) は、ツリーを垂直方向にスクロールします。vlocation'top' または 'bottom' として指定します。

scroll(tr,treenode) は、指定されたツリー ノードまでスクロールします。

リスト ボックス

scroll(lb,vlocation) は、リスト ボックスを垂直方向にスクロールします。vlocation'top' または 'bottom' として指定します。

scroll(lb,item) は、リスト ボックスの指定された項目までスクロールします。

scroll(lb,itemdata) は、指定された項目データを含むリスト ボックスの項目までスクロールします。同じ項目データを含む項目が複数ある場合は、最初の項目までスクロールします。

テーブル

scroll(tbl,vlocation) は、テーブルを垂直方向にスクロールします。vlocation'top' または 'bottom' として指定します。

scroll(tbl,hlocation) は、テーブルを水平方向にスクロールします。hlocation'left' または 'right' として指定します。

scroll(tbl,tableTarget,tableIndex) は、テーブルの指定された行、列、またはセルまでスクロールします。たとえば、scroll(uit,'Row',10) はテーブルの 10 行目にスクロールします。

すべて折りたたむ

関数 uifigure を使用して作成された Figure 内の指定された (x,y) 座標までスクロールします。

Figure を作成し、Scrollable プロパティを 'on' に設定します。次に、子コンポーネントを 5 個追加します。Figure を確実にスクロール可能にするには、最初のコンポーネントを Figure の上端より上に配置します。その後、コンポーネントが Figure 内に一緒に収まらないようにするために、それぞれを十分に離して配置します。

% Create figure
fig = uifigure('Name','Customer','Scrollable','on');
fig.Position = [100 100 493 283];

% Title label
title = uilabel(fig,'Text','Customer Record');
title.FontSize = 18;
title.FontWeight = 'bold';
title.Position = [173 315 157 22];

% Name
name = uieditfield(fig,'text');
name.Position = [169 239 173 22];
namelabel = uilabel(fig,'Text','Name','HorizontalAlignment','right');
namelabel.Position = [116 239 38 22];

% Phone
phone = uieditfield(fig,'text');
phone.Position = [169 164 173 22];
phonelabel = uilabel(fig,'Text','Phone','HorizontalAlignment','right');
phonelabel.Position = [114 164 40 22];

% Balance
balance = uieditfield(fig,'numeric');
balance.Position = [169 89 173 22];
balancelabel = uilabel(fig,'Text','Balance','HorizontalAlignment','right');
balancelabel.Position = [105 89 49 22];

% Submit button
button = uibutton(fig,'push','Text','Submit');
button.Position = [169 14 173 22];

UI figure window with a form to fill out a customer record. The window is vertically scrollable.

既定では、MATLAB® は子コンポーネントを囲む領域の左上隅にスクロールします。

Figure の最下部である、位置 (1,1) にスクロールします。

scroll(fig,1,1)

UI figure window with a form to fill out a customer record. The window is scrolled to the bottom.

ピクセル座標または位置名を指定して、スクロール可能なグリッド レイアウトの子コンポーネントを表示します。

5 行 2 列のグリッド レイアウトを作成し、グリッドの Scrollable プロパティを 'on' に設定します。その後、ラベル、テーブル、パネルをグリッドに追加します。パネルの Scrollable プロパティを 'off' に設定し、チャートをパネルに追加します。

fig = uifigure('Position',[782 497 435 311]);
g = uigridlayout(fig,'Scrollable','on');
g.RowHeight = {22,40,22,22,400};
g.ColumnWidth = {400,400};

lbl = uilabel(g,'Text','Tsunamis');
lbl.Layout.Row = 2;
lbl.Layout.Column = [1,2];
lbl.HorizontalAlignment = 'center';
lbl.FontSize = 28;

tsunamis = readtable('tsunamis.xlsx');
tsunamis.Cause = categorical(tsunamis.Cause);
t = uitable(g,'Data',tsunamis);
t.Layout.Row = [3,5];
t.Layout.Column = 2;

p = uipanel(g);
p.Scrollable = 'off';
p.Layout.Row = [3,5];
p.Layout.Column = 1;
gb = geobubble(p,tsunamis.Latitude,tsunamis.Longitude,...
    tsunamis.MaxHeight,tsunamis.Cause);

Scrollable UI figure window with the upper-left portion of the grid visible

グリッド内の位置にスクロールします。

scroll(g,100,-30)

UI figure window scrolled 100 pixels to the right and 30 pixels down

次に、位置名を使用して、グリッドの右下の隅にスクロールします。

scroll(g,'bottom','right')

UI figure window scrolled fully to the right and down, so that the lower-right portion of the grid is visible

スクロール位置を、表示するコンポーネントの最初の 2 つの位置座標として指定し、コンポーネントを表示します。

ドロップダウン コンポーネントが 2 つ、リスト ボックスが 1 つ、テーブルが 1 つある Figure を作成します。これらのコンポーネントを、Figure 内ですべて同時に表示されないように配置します。

fig = uifigure;
fig.Scrollable = 'on';
fig.Position = [100 300 328 110];

dd1 = uidropdown(fig);
dd1.Position = [20 360 120 22];

dd2 = uidropdown(fig);
dd2.Position = [20 200 120 22];

lb = uilistbox(fig);
lb.Position = [230 300 120 80];

t = readtable('patients.xls');
uit = uitable(fig,'Data',t);
uit.Position = [375 100 300 300];

Scrollable UI figure window. The window is scrolled to the top left, and the drop-down and list box components are visible.

テーブルにスクロールします。

scroll(fig,uit.Position(1:2))

Scrollable UI figure window. The table component is visible.

テキスト エリアの最下部までプログラムでスクロールします。

テキスト エリアを作成します。サイズと長いテキストを指定します。

fig = uifigure;
txa = uitextarea(fig);
txa.Position = [100 100 80 80];
txa.Value = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.';

Text area in a UI figure window. The text area is vertically scrollable.

テキスト エリアの最下部までスクロールします。

scroll(txa,'bottom')

Text area in a UI figure window. The text area is scrolled to the bottom.

リスト ボックスの項目を指定して、その項目を表示します。

名前および関連付けられた ItemsData のリストを含むリスト ボックスを作成します。

fig = uifigure('Position',[680 678 300 200]);
list = uilistbox(fig, 'Position',[70 50, 150 78]);
list.Items = {'Diane Fitzsimmons', 'Naomi Becker', 'Nick Stewart',...
           'Alex Bradford', 'Caroline Eliot', 'Leslie Bond', ...
           'Aaron Silberlicht', 'Ramu Sadasiv', 'Joyce Wu',...
           'Ann Shanahan'};
list.ItemsData = [1 2 3 4 5 6 7 8 9 10];

List box in a UI figure window. The list box displays the first four names and is vertically scrollable.

[Caroline Eliot] にスクロールします。

scroll(list,'Caroline Eliot')

List box in a UI figure window. The list box is scrolled so that the name "Caroline Eliot" is displayed at the bottom of the visible items.

[Caroline Eliot] を選択するには、Value プロパティを ItemsData プロパティの対応する要素に設定します。

list.Value = 5;

List box in a UI figure window. The item "Caroline Eliot" is highlighted.

TreeNode オブジェクトを指定して、ツリー ノードを表示します。

4 つの最上位ノードとそれぞれの子ノードを含むツリーを作成します。

fig = uifigure;
tree = uitree(fig,'Position',[20 20 175 100]);
    
% First level nodes
category1 = uitreenode(tree,'Text','Runners');
category2 = uitreenode(tree,'Text','Cyclists');
category3 = uitreenode(tree,'Text','Hikers');
category4 = uitreenode(tree,'Text','Swimmers');

% Second level nodes
r1 = uitreenode(category1,'Text','Joe');
r2 = uitreenode(category1,'Text','Linda');
c1 = uitreenode(category2,'Text','Rajeev');
h1 = uitreenode(category3,'Text','Jack');
s1 = uitreenode(category4,'Text','Logan');

Tree component in a UI figure window. All top-level nodes are collapsed and visible.

ノードを展開します。[Swimmers] がビューの外側にスクロールします。

expand(tree)

Tree component in a UI figure window. All nodes are expanded, and the Swimmers node is not visible. The tree is vertically scrollable.

[Swimmers] ノードにスクロールします。

scroll(tree,category4)

Tree component in a UI figure window. The Swimmers node is visible.

Tree オブジェクトの SelectedNodes プロパティを設定して、[Swimmers] ノードを選択します。

tree.SelectedNodes = category4;

Tree component in a UI figure window. The Swimmers node is highlighted.

サンプルの患者データを table 配列としてワークスペースに読み取ります。次に、データを表示するテーブル UI コンポーネントを作成します。

tdata = readtable('patients.xls');
vars = {'Age','Systolic','Diastolic','Smoker'};
tdata = tdata(1:40,vars);

fig = uifigure;
uit = uitable(fig,'Data',tdata);
uit.RowName = 'numbered';

Table with patient data in a UI figure window. The table rows are numbered, and the table is scrolled to the top.

テーブルの 25 行目にスクロールします。

scroll(uit,'row',25)

Table with patient data in a UI figure window. The table is scrolled so that row 25 is at the top of the visible data.

入力引数

すべて折りたたむ

スクロール可能なコンテナーまたはボタン グループ。関数 uifigure を使用して作成された Figure、またはその Figure 内にあるグリッド レイアウト、パネル、ボタン グループ、またはタブのいずれかのコンポーネントとして指定します。

垂直方向のスクロール位置。'top' または 'bottom' として指定します。

水平方向のスクロール位置。'left' または 'right' として指定します。

x 座標。コンテナーの左端を基準としたピクセル単位の非負の整数として指定します。コンテナーは、表示可能なコンテナー領域の左側に指定された x 座標が表示されるまでスクロールします。指定した値がコンテナーのスクロール可能な領域を超える場合、コンテナーは指定した方向に向かって可能な限りスクロールします。

y 座標。コンテナーの下端を基準としたピクセル単位の整数として指定します。コンテナーは、表示可能なコンテナー領域の下側に指定された y 座標が表示されるまでスクロールします。指定した値がコンテナーのスクロール可能な領域を超える場合、コンテナーは指定した方向に向かって可能な限りスクロールします。

グリッド レイアウトの高さが親コンテナーより高い場合、負の y 座標を使用すると、親コンテナーの下端より下にあるグリッド内のコンポーネントにスクロールできます。

ピクセル座標。整数の 2 要素行ベクトルとして指定します。

例: [100 150] はピクセル座標 (100,150) を指定します。

テキスト エリア。関数 uitextarea で作成されたコンポーネントとして指定します。

テキスト エリア内でのスクロールは R2020b 以降でサポートされています。

ツリー。関数 uitree で作成されたコンポーネントとして指定します。このコンポーネントは、既定のスタイルのツリーまたは uitree('checkbox') で作成されたチェック ボックス ツリーのいずれかです。

ツリー ノード。関数 uitreenode で作成されたコンポーネントとして指定します。この引数を使用して、スクロール先のツリー ノードを指定します。

リスト ボックス。関数 uilistbox で作成されたコンポーネントとして指定します。

リスト ボックスの項目。lbItems プロパティの要素として指定します。関数は、リスト ボックス内の指定された項目までスクロールします。

リスト ボックスの項目データ。lb リスト ボックスの ItemsData プロパティの要素として指定します。関数は、関連する項目データを含むリスト ボックスの項目までスクロールします。このような項目が複数ある場合は、最初の項目までスクロールします。

テーブル。関数 uitable で作成されたコンポーネントとして指定します。

テーブル内でのスクロールは R2021a 以降でサポートされており、関数 uifigure で作成された Figure 内にテーブル UI コンポーネントがある場合にのみサポートされます。

テーブル スクロールのターゲット。'row''column' または 'cell' として指定します。

テーブル スクロールのターゲット インデックス。以下の表にリストされたいずれかの値として指定します。指定可能な値の型は、tableTarget の値によって異なります。

tableTargetサポートされている値結果
'row'正の整数4対応する行インデックスをもつ行まで垂直方向にスクロールします。
'column'正の整数3対応する列インデックスをもつ列まで水平方向にスクロールします。
'cell'正の整数の 2 要素行ベクトル[5 9]対応する行と列のインデックスをもつセルまでスクロールします。

詳細

すべて折りたたむ

スクロールを有効にするための条件

コンテナー内でスクロールできるようにするには、コンテナーの Scrollable プロパティが 'on' に設定されていなければなりません。これに加えて、以下のコンテナー特有の条件を満たしていなければなりません。

グリッド レイアウト

  • グリッドの RowHeight プロパティに対して指定した値の合計は、親コンテナーの高さより大きくなければならない。

  • グリッドの ColumnWidth プロパティに対して指定した値の合計は、親コンテナーの幅より大きくなければならない。

  • グリッドの少なくとも 1 行または 1 列が、固定ピクセルの高さまたは幅に設定されていなければならない。

  • グリッドにコンポーネントが含まれていなければならない。

グリッド レイアウト以外のコンテナー

  • コンテナー内の子コンポーネントは、コンテナーが一度に表示できるよりも大きい領域を占めていなければならない。

  • コンテナーに収まらないコンポーネントは、コンテナーより上または右になければならない。

バージョン履歴

R2016a で導入

すべて展開する