如何自定義SWT Table的每一個(gè)Cell的height and width
demonstration code:
Display display = new Display(); Shell shell = new Shell(display); shell.setBounds(10,10,200,250); final Table table = new Table(shell, SWT.NONE); table.setBounds(10,10,150,200); table.setLinesVisible(true); for (int i = 0; i < 5; i++) { new TableItem(table, SWT.NONE).setText("item " + i); } table.addListener(SWT.MeasureItem, new Listener() { public void handleEvent(Event event) { int clientWidth = table.getClientArea().width; event.height = event.gc.getFontMetrics().getHeight() * 2; event.width = clientWidth * 2; } }); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose();
說(shuō)明:黑體部分是關(guān)鍵,主要是要為table添加一個(gè)監(jiān)聽(tīng)器并要用到SWT.MeasureItem屬性,如果是在TableView下則需要調(diào)用TableView#getTable()方法獲得Table再添加監(jiān)聽(tīng)器。
還需要注意的是:
1)這個(gè)特性可能只在Eclipse3.2以上的版本中才有。
2)不能對(duì)單行(Item)進(jìn)行height的設(shè)置。
3)如果設(shè)置了width,則column的width以它為準(zhǔn)。
參考文章:[[1]]http://www.eclipse.org/articles/Article-CustomDrawingTableAndTreeItems/customDraw.htm#_tb10D
posted on 2008-02-03 16:26 花開(kāi)有時(shí) 閱讀(2411) 評(píng)論(1) 編輯 收藏 所屬分類: Eclipse