2

AScii ファイルから読み取ったデータを使用して Uitable を使用しています。

  1. マウスとチェックボックスを使用して列を選択したい。私はたくさん試しましたが、マウスを使用して適切な列を選択し、そのデータを取得する方法がわかりません。

  2. また、チェックボックスを uitable の最後の行に挿入しようとしているので、ユーザーがチェックボックスを選択すると、特定の列が選択されます。

何か案が?

4

2 に答える 2

3

列ヘッダーのクリックを処理するには、文書化されていない領域に移動する必要があります。

%# old UITABLE (based on Swing JTable, instead of the new JIDE-based)
[hTable,hContainer] = uitable('v0', 'Parent',gcf, ...
    'Data',magic(7), 'ColumnNames',cellstr(num2str((1:7)','C%d'))');
set(hContainer, 'Units','normalized', 'Position',[0 0 1 1])

%# handle mouse clicks on table headers
jTableHeader = hTable.getTable().getTableHeader();
h = handle(jTableHeader, 'CallbackProperties');
set(h, 'MousePressedCallback',...
    @(src,evt) disp( src.columnAtPoint(evt.getPoint())+1 ))  %# zero-based index

スクリーンショット

于 2012-06-19T16:14:54.797 に答える
2

CellSelectionCallbackテーブルのおよびCellEditCallbackプロパティを編集する必要があります。

   set(myTable,`CellSelectionCallback`,@CallBack)

どの列/行が選択されたかを確認するには、コールバックで受け取るイベント データを使用します。

  function CallBack(hObj,evt)   
      disp(evt);
  end

私の知る限り、コールバックが起動されていないときに現在選択されている列を見つける方法はありません。

于 2012-06-19T14:56:03.130 に答える