uitableで指定のセルを表示する方法

guideでuitableとedittext,pushbuttonを作成しています。uitableはn×1のデータで、各セルに文字列が入っています。
私が行いたいことは以下の通りです。
・edittextに文字を入れてpushbuttonを押すと、edittextの文字列と一致するuitableのセルを探す。
・上記のセルがある場合、そのセルを選択orスクロールを動かして表示する。
(複数存在する場合は最初に見つけたセルに対して行う。)
このような動作を作成することは可能でしょうか。
MATLABのバージョンはR2011bです。
以上になります。よろしくお願いいたします。

 Accepted Answer

mizuki
mizuki on 10 Nov 2016
Edited: mizuki on 10 Nov 2016
uitable の機能には 選択しているかしていないかが分かるプロパティがないため、カーソルを動かすことができません。
代わりに、該当するセルの文字をハイライトするのではいかがでしょうか。
edittextに文字を入れてpushbuttonを押すと、edittextの文字列と一致するuitableのセルを探す方法としては、pushbutton のコールバックに以下の様な文字列比較のコードを入れました。
allstr = get(handles.uitable1, 'Data');
str = get(handles.edit1, 'String');
idx = strcmp(allstr, str);
uitable1 の文字列 あいうえお と edit1 の文字列を比較しています。
もし検索して一番初めの一致のみが欲しい場合は strcmp の代わりに find 関数を使用します。
ハイライトについては以下ページを参考にしてHTMLタグを追加しました。
詳細については添付 guide_uitable_ex.m をご確認ください。

2 Comments

sekkyryo
sekkyryo on 10 Nov 2016
mizukiさん、ありがとうございます。
GUIDEだと動かせないんですね。理解しました。
となると、mizukiさんがおっしゃる通り別のアプローチを考えたほうがよさそうですね。
listboxのプロパティ"Value"と同様なものをuitableにもつけてほしいですね。
mizuki
mizuki on 10 Nov 2016
Edited: mizuki on 10 Nov 2016
GUIDE も含めて、uitable の機能として入っていない状況です。 以下のように java の機能を使えばできそうですが、正式サポート機能ではないので私からの回答は控えさせてください。
おっしゃる通り、選択したセルが簡単に分かる機能は欲しいですね。
現在 GUIDE に代わる機能として AppDesigner という機能が出てきていますので GUIDE では難しいかもしれませんが、AppDesigner での要望リクエストは可能かと思います。

Sign in to comment.

More Answers (0)

Categories

Products

Asked:

on 10 Nov 2016

Edited:

on 10 Nov 2016

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!