<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    amp@java

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      99 隨筆 :: 0 文章 :: 228 評論 :: 0 Trackbacks
    SWT里TableEditor的作用是可以在表格里面顯示一些控件,例如列表、按鈕等,有時候是根據表格的內容在控件上顯示不同內容的,如果更新了表格內容,就要同時更新控件,但是表格內容可以通過Table控件的removeAll()來清除,而表格中的控件則無法用這個方法清除,你調用Table的removeAll()方法,往表格里填入新內容后,控件還是上次的控件,但是你一操作那些控件就會出異常,提示那些控件已經disposed。

    解決方法是顯式地調用控件及TableEditor的dispose()方法,在你建立TableEditor的時候,把它的引用保存起來,把里面的控件的引用也保存起來,到整個表格需要的清除的時候,通過引用先把控件dispose掉,再把TableEditor也dispose掉,這樣整個表格的內容就真正清除了。

    例如有一個表格名為table,里面的每一行都有3列,第一列是文本,第二列是Combo,第三列是Button,繪制表格的時候是這樣的:

    TableItem ti = new TableItem(table,SWT.NONE);
    ti.setText(
    0,"some string");
    te 
    = new TableEditor(table);
    Combo combo 
    = new Combo(table,SWT.NONE);
    controls.add(combo);
    te.setEditor(combo,ti,
    1);
    Button button 
    = new Button(table,SWT.NONE);
    controls.add(button);
    te.setEditor(button,ti,
    2);

    其中te和controls都是成員變量,te的類型是TableEditor,controls的類型是ArrayList<Control>。
    當整個table要清除內容時,可以這樣:
    //刪除控件
    for(Control control:controls){
    control.dispose();
    }
    //刪除TableEditor
    te.dispose();
    //刪除文本
    table.removeAll();
    posted on 2012-03-09 11:09 amp@java 閱讀(3862) 評論(0)  編輯  收藏 所屬分類: SWT

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 免费观看一区二区三区| 亚洲无线一二三四区手机| 成人国产精品免费视频| 亚洲熟妇无码AV| 久久精品国产亚洲AV无码麻豆 | a级亚洲片精品久久久久久久| 成年男女免费视频网站| 久久99热精品免费观看动漫| fc2成年免费共享视频网站| 亚洲av无码成人精品区一本二本| 亚洲春色另类小说| 久久久久亚洲AV成人无码网站 | 亚洲精品欧美综合四区| 亚洲综合综合在线| 久久亚洲精品无码| 亚洲人成网77777色在线播放| 免费乱码中文字幕网站| 日韩在线免费看网站| 国产精品久久久久久久久久免费| 18禁黄网站禁片免费观看不卡| 中文字幕日本人妻久久久免费 | 亚洲AV乱码久久精品蜜桃| 国产91精品一区二区麻豆亚洲| 国产一区在线观看免费| 夜夜嘿视频免费看| 午夜影视在线免费观看| 欧美a级在线现免费观看| 91成年人免费视频| 免费黄色福利视频| 亚色九九九全国免费视频| 亚洲免费在线观看视频| 中文字幕免费在线看线人 | 在线观看亚洲AV日韩AV| 国产成人精品日本亚洲直接| 亚洲精品国产精品国自产网站| 亚洲伊人久久大香线焦| 国产成人亚洲综合网站不卡| 亚洲熟女乱色一区二区三区| 亚洲色少妇熟女11p| 亚洲精品乱码久久久久蜜桃 | 国产精品亚洲αv天堂无码|