1
條件: 我有關於SWT表格單元格的問題, 在此,我正在SWT表格單元格中寫入文本任何文本,然後我按下了鍵盤上的ENTER鍵。當我按下鍵時,文本以新行同一單元格開始。如何在SWT表格單元格中按下鍵盤按鍵「ENTER」後開始換行?
問題: 什麼是此鍵的代碼事件(鍵盤「ENTER」鍵)與開始新行在同一單元格?
這裏,SWT表示例代碼:
public class KeyEnter {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
final Table table = new Table(shell, SWT.FULL_SELECTION
| SWT.HIDE_SELECTION);
TableColumn column1 = new TableColumn(table, SWT.NONE);
TableColumn column2 = new TableColumn(table, SWT.NONE);
for (int i = 0; i < 10; i++) {
TableItem item = new TableItem(table, SWT.NONE);
item.setText(new String[] { "item " + i, "edit this value" });
}
column1.pack();
column2.pack();
final TableEditor editor = new TableEditor(table);
editor.horizontalAlignment = SWT.LEFT;
editor.grabHorizontal = true;
editor.minimumWidth = 50;
// editing the second column
final int EDITABLECOLUMN = 1;
table.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
// Clean up any previous editor control
Control oldEditor = editor.getEditor();
if (oldEditor != null)
oldEditor.dispose();
// Identify the selected row
TableItem item = (TableItem) e.item;
if (item == null)
return;
// The control that will be the editor must be a child of the
// Table
Text newEditor = new Text(table, SWT.NONE);
newEditor.setText(item.getText(EDITABLECOLUMN));
newEditor.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent me) {
Text text = (Text) editor.getEditor();
editor.getItem().setText(EDITABLECOLUMN, text.getText());
}
});
newEditor.selectAll();
newEditor.setFocus();
editor.setEditor(newEditor, item, EDITABLECOLUMN);
}
});
shell.setSize(300, 300);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
這種產出要到SWT表。
SWT表中的所有行具有相同的高度。你不能一行兩行,其餘行一行。 –
@ greg-449:有什麼辦法,用新行開始文本? –
[This](http://www.java2s.com/Tutorial/Java/0280__SWT/MultilineTablecell.htm)可能是一個起點。另外,使用[this](http://stackoverflow.com/questions/1688266/swt-cross-platform-enter-detection)來檢測回車鍵事件。 – Baz