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

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

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

    kooyee ‘s blog

    開(kāi)源軟件, 眾人努力的結(jié)晶, 全人類的共同財(cái)富
    posts - 103, comments - 55, trackbacks - 0, articles - 66
       :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    對(duì)于select event在SWT table中

    TableItem item = (TableItem)e.item;

    這個(gè)是建立一個(gè) item的指向,而不是一個(gè)實(shí)質(zhì)的item。 所以當(dāng)清空table中的items后,再調(diào)用這個(gè)item會(huì)返回" widget is disposed" Excepion異常。比如調(diào)用

    item.addDisposeListener(new org.eclipse.swt.events.DisposeListener(){
                        
    public void widgetDisposed(org.eclipse.swt.events.DisposeEvent e) {
                                      ...                                    
                        }

                    }
    );


    Add action listener to Table Button Cell Editor
    添加button
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.custom.TableEditor;
    import org.eclipse.swt.events.SelectionAdapter;
    import org.eclipse.swt.events.SelectionEvent;
    import org.eclipse.swt.graphics.Color;
    import org.eclipse.swt.graphics.RGB;
    import org.eclipse.swt.layout.FillLayout;
    import org.eclipse.swt.widgets.Button;
    import org.eclipse.swt.widgets.ColorDialog;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.widgets.Table;
    import org.eclipse.swt.widgets.TableColumn;
    import org.eclipse.swt.widgets.TableItem;

    public class TableEditorButtonActionListener {
      
    public static void main(String[] args) {
        Display display 
    = new Display();
        
    final Shell shell = new Shell(display);
        shell.setText(
    "Text Table Editor");

        shell.setLayout(
    new FillLayout());

        
    final Table table = new Table(shell, SWT.SINGLE | SWT.FULL_SELECTION | SWT.HIDE_SELECTION);
        table.setHeaderVisible(
    true);
        table.setLinesVisible(
    true);

        
    for (int i = 0; i < 5; i++{
          TableColumn column 
    = new TableColumn(table, SWT.CENTER);
          column.setText(
    "Column " + (i + 1));
          column.pack();
        }

        
    // Create five table editors for color
        TableEditor[] colorEditors = new TableEditor[5];

        
    // Create five buttons for changing color
        Button[] colorButtons = new Button[5];

        
    for (int i = 0; i < 5; i++{
          
    final TableItem item = new TableItem(table, SWT.NONE);
          colorEditors[i] 
    = new TableEditor(table);
          colorButtons[i] 
    = new Button(table, SWT.PUSH);

          colorButtons[i].setText(
    "Color");
          colorButtons[i].computeSize(SWT.DEFAULT, table.getItemHeight());

          colorEditors[i].grabHorizontal 
    = true;
          colorEditors[i].minimumHeight 
    = colorButtons[i].getSize().y;
          colorEditors[i].minimumWidth 
    = colorButtons[i].getSize().x;

          colorEditors[i].setEditor(colorButtons[i], item, 
    0);
          
          colorButtons[i].addSelectionListener(
    new SelectionAdapter() {
            
    public void widgetSelected(SelectionEvent event) {
              ColorDialog dialog 
    = new ColorDialog(shell);
              RGB rgb 
    = dialog.open();
              
    if (rgb != null{
                table.setBackground(
    new Color(shell.getDisplay(), rgb));
              }

            }

          }
    );      
        }

        shell.pack();
        shell.open();
        
    while (!shell.isDisposed()) {
          
    if (!display.readAndDispatch()) {
            display.sleep();
          }

        }

        display.dispose();
      }

    }

    如果不加這行 colorEditors[i].minimumHeight = colorButtons[i].getSize().y;
    則editor不會(huì)按照control的高度設(shè)置,而是按照table單元格高度填入button等控件。所以想要控件的大小符合單元格大小(控件大小不會(huì)溢出到單元格外),不需要添加這一行。如果加入Combo,則要使用CCombo才能改變高度,因?yàn)樵趙in32系統(tǒng)中Combo的高度被禁止改變


    同理添加combo, checkbox
    TableItem item = new TableItem(table,0);
                   
    TableEditor editor = new TableEditor (table);
                        //添加combo
                    
    final CCombo tax = new CCombo(table, SWT.NONE);
                    
    for(int i=0;i<10;i++)
                        tax.add(
    "T"+i);
                    tax.setText(rs.getString(
    2));
                    tax.pack();
                    editor.grabVertical
    =false;
                    editor.minimumWidth 
    = tax.getSize ().x;
                    editor.minimumHeight 
    = tax.getSize().y;
                    editor.horizontalAlignment 
    = SWT.TOP;
                    editor.setEditor(tax, item, 
    1);
                    
                        //添加check box 
                        
    editor = new TableEditor (spUi.tablePrice);
                    
    final Button check = new Button(spUi.tablePrice, SWT.CHECK);
                    check.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT));
                    
    if(Integer.parseInt(rs.getString(5))==1)
                        check.setSelection(
    true);
                    
    else
                        check.setSelection(
    false);
                    check.pack();
                    editor.minimumWidth 
    = check.getSize ().x;
                    editor.horizontalAlignment 
    = SWT.CENTER;
                    editor.setEditor(check, item, 
    4);
                    item.addDisposeListener(
    new org.eclipse.swt.events.DisposeListener(){
                        
    public void widgetDisposed(org.eclipse.swt.events.DisposeEvent e) {
                            
    //editor.dispose();當(dāng)table刷新后,舊的控件清除掉。否則item remove后控件還會(huì)在原位
                            tax.dispose();
                            check.dispose();                                                
                        }

                    }
    );


    評(píng)論

    # re: [SWT] SWT table中select item以及添加其他control(checkbox, button)[未登錄](méi)  回復(fù)  更多評(píng)論   

    2009-06-24 20:51 by wyl
    增加combo, checkbox 功能 的代碼好像不全,請(qǐng)發(fā)一個(gè)全的來(lái),謝謝了,我是新手!

    # re: [SWT] SWT table中select item以及添加其他control(checkbox, button)  回復(fù)  更多評(píng)論   

    2009-12-18 14:21 by Angle
    動(dòng)態(tài) 再添加一個(gè)Button 就會(huì)出錯(cuò)

    # re: [SWT] SWT table中select item以及添加其他control(checkbox, button)  回復(fù)  更多評(píng)論   

    2010-04-12 14:32 by qvod
    很好用!

    # re: [SWT] SWT table中select item以及添加其他control(checkbox, button)  回復(fù)  更多評(píng)論   

    2012-06-18 14:38 by 問(wèn)路
    如果要加的CheckBox很多的話,會(huì)不會(huì)速度很慢呢?
    主站蜘蛛池模板: 99精品视频在线观看免费专区 | 在线毛片片免费观看| 日本xxwwxxww在线视频免费| 亚洲人成影院77777| 在线看免费观看AV深夜影院| 亚洲精品在线免费观看视频| 足恋玩丝袜脚视频免费网站| 亚洲日本一区二区| 3d动漫精品啪啪一区二区免费| 亚洲成熟xxxxx电影| 2019中文字幕在线电影免费 | 中文字幕亚洲一区| 国产一级a毛一级a看免费视频| 亚洲性猛交XXXX| 国产精品免费福利久久| 中文字幕亚洲色图| 韩国免费一级成人毛片| 亚洲va中文字幕| 国产福利电影一区二区三区,亚洲国模精品一区| 特级毛片全部免费播放| 亚洲综合色成在线播放| 久久久久久国产精品免费免费男同| 亚洲黄色在线视频| 拍拍拍又黄又爽无挡视频免费| 国产亚洲情侣久久精品| 中文字幕精品亚洲无线码二区| 色猫咪免费人成网站在线观看| 国产91在线|亚洲| 亚洲人午夜射精精品日韩| 久久这里只精品国产免费10| 亚洲13又紧又嫩又水多| 四虎影视永久免费观看地址| a毛片免费在线观看| 亚洲女人初试黑人巨高清| 国产又大又长又粗又硬的免费视频| 国产精品99爱免费视频| 亚洲欧洲国产成人精品| 国产免费av片在线无码免费看| 国产精品99精品久久免费| 亚洲第一男人天堂| 亚洲精品中文字幕无码蜜桃|