Java by API/org.eclipse.swt.widgets/Table
Содержание
new Table(Composite parent, int style)
<source lang="java">
import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; 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 MainClass {
public static void main(String[] a) { final Display d = new Display(); final Shell s = new Shell(d); s.setSize(250, 200); s.setText("A Table Shell Example"); s.setLayout(new FillLayout()); Table t = new Table(s, SWT.BORDER); TableColumn tc1 = new TableColumn(t, SWT.CENTER); TableColumn tc2 = new TableColumn(t, SWT.CENTER); TableColumn tc3 = new TableColumn(t, SWT.CENTER); tc1.setText("First Name"); tc2.setText("Last Name"); tc3.setText("Address"); tc1.setWidth(70); tc2.setWidth(70); tc3.setWidth(80); t.setHeaderVisible(true); TableItem item1 = new TableItem(t, SWT.NONE); item1.setText(new String[] { "A", "B", "Address 1" }); TableItem item2 = new TableItem(t, SWT.NONE); item2.setText(new String[] { "C", "D", "Address 2" }); TableItem item3 = new TableItem(t, SWT.NONE); item3.setText(new String[] { "E", "F", "Address 3" }); s.open(); while (!s.isDisposed()) { if (!d.readAndDispatch()) d.sleep(); } d.dispose(); }
}
</source>
new Table(s, SWT.BORDER | SWT.CHECK | SWT.MULTI | SWT.FULL_SELECTION)
<source lang="java">
import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; 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; import org.eclipse.swt.widgets.Text; public class MainClass {
public static void main(String[] a) { final Display d = new Display(); final Shell s = new Shell(d); s.setSize(250, 200); GridLayout gl = new GridLayout(); gl.numColumns = 4; s.setLayout(gl); final Table t = new Table(s, SWT.BORDER | SWT.CHECK | SWT.MULTI | SWT.FULL_SELECTION); final GridData gd = new GridData(GridData.FILL_BOTH); gd.horizontalSpan = 4; t.setLayoutData(gd); t.setHeaderVisible(true); final TableColumn tc1 = new TableColumn(t, SWT.LEFT); final TableColumn tc2 = new TableColumn(t, SWT.CENTER); final TableColumn tc3 = new TableColumn(t, SWT.CENTER); tc1.setText("First Name"); tc2.setText("Last Name"); tc3.setText("Address"); tc1.setWidth(70); tc2.setWidth(70); tc3.setWidth(80); TableItem item1 = new TableItem(t, SWT.NONE); item1.setText(new String[] { "A", "B", "Address 1" }); TableItem item2 = new TableItem(t, SWT.NONE); item2.setText(new String[] { "C", "D", "Address 2" }); TableItem item3 = new TableItem(t, SWT.NONE); item3.setText(new String[] { "E", "F", "Address 3" }); final Text find = new Text(s, SWT.SINGLE | SWT.BORDER); final Text replace = new Text(s, SWT.SINGLE | SWT.BORDER); final Button replaceBtn = new Button(s, SWT.BORDER | SWT.PUSH); replaceBtn.setText("Replace"); replaceBtn.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { TableItem[] tia = t.getItems(); for (int i = 0; i < tia.length; i++) { if (tia[i].getText(2).equals(find.getText())) { tia[i].setText(2, replace.getText()); } } } }); s.open(); while (!s.isDisposed()) { if (!d.readAndDispatch()) d.sleep(); } d.dispose(); }
}
</source>
Table: addListener(int type, Listener lis)
<source lang="java">
import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; 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 MainClass {
public static void main(String[] a) { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); // Create a table and column final Table table = new Table(shell, SWT.VIRTUAL); table.setLinesVisible(true); table.setHeaderVisible(true); TableColumn tc = new TableColumn(table, SWT.NONE); tc.setText("Virtual Value"); tc.setWidth(400); // Tell the table how many items it has table.setItemCount(100); // Provide the callback handler--this handler // is invoked when the table needs new rows table.addListener(SWT.SetData, new Listener() { public void handleEvent(Event event) { TableItem item = (TableItem) event.item; item.setText("data"); } }); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); }
}
</source>
Table: getColumnCount()
<source lang="java">
import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; 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 MainClass {
public static void main(String[] a) { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); Table table = new Table(shell, SWT.MULTI | SWT.FULL_SELECTION); for (int i = 0; i < 5; i++) { TableColumn column = new TableColumn(table, SWT.NONE); } for (int i = 0; i < 10; i++) { TableItem item = new TableItem(table, SWT.NONE); for (int j = 0; j < 5; j++) { item.setText(j, "Row " + i + ", Column " + j); } } for (int i = 0, n = table.getColumnCount(); i < n; i++) { table.getColumn(i).pack(); } shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); }
}
</source>
Table: getItem(Point p)
<source lang="java">
import org.eclipse.swt.SWT; import org.eclipse.swt.events.MouseAdapter; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.FillLayout; 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 MainClass {
public static void main(String[] a) { final Display d = new Display(); final Shell shell = new Shell(d); shell.setSize(250, 200); shell.setLayout(new FillLayout()); final Table table = new Table(shell, SWT.SINGLE | SWT.FULL_SELECTION | SWT.HIDE_SELECTION); table.setHeaderVisible(true); table.setLinesVisible(true); // Create five columns for (int i = 0; i < 5; i++) { TableColumn column = new TableColumn(table, SWT.CENTER); column.setText("Column " + (i + 1)); column.pack(); } for (int i = 0; i < 5; i++) { // Create the row new TableItem(table, SWT.NONE); } table.addMouseListener(new MouseAdapter() { public void mouseDown(MouseEvent event) { Point pt = new Point(event.x, event.y); TableItem item = table.getItem(pt); if (item != null) { int column = -1; for (int i = 0, n = table.getColumnCount(); i < n; i++) { Rectangle rect = item.getBounds(i); if (rect.contains(pt)) { column = i; System.out.println(column); break; } } } } }); shell.open(); while (!shell.isDisposed()) { if (!d.readAndDispatch()) d.sleep(); } d.dispose(); }
}
</source>
Table: setHeaderVisible(boolean visible)
<source lang="java">
import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; 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 MainClass {
public static void main(String[] a) { final Display d = new Display(); final Shell s = new Shell(d); s.setSize(250, 200); s.setText("A Table Shell Example"); s.setLayout(new FillLayout()); Table t = new Table(s, SWT.BORDER); TableColumn tc1 = new TableColumn(t, SWT.CENTER); TableColumn tc2 = new TableColumn(t, SWT.CENTER); TableColumn tc3 = new TableColumn(t, SWT.CENTER); tc1.setText("First Name"); tc2.setText("Last Name"); tc3.setText("Address"); tc1.setWidth(70); tc2.setWidth(70); tc3.setWidth(80); t.setHeaderVisible(true); TableItem item1 = new TableItem(t, SWT.NONE); item1.setText(new String[] { "A", "B", "Address 1" }); TableItem item2 = new TableItem(t, SWT.NONE); item2.setText(new String[] { "C", "D", "Address 2" }); TableItem item3 = new TableItem(t, SWT.NONE); item3.setText(new String[] { "E", "F", "Address 3" }); s.open(); while (!s.isDisposed()) { if (!d.readAndDispatch()) d.sleep(); } d.dispose(); }
}
</source>
Table: setLinesVisible(boolean vi)
<source lang="java">
import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CCombo; import org.eclipse.swt.custom.TableEditor; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.MouseAdapter; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.ColorDialog; import org.eclipse.swt.widgets.Control; 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; import org.eclipse.swt.widgets.Text; public class MainClass {
public static void main(String[] a) { final Display d = new Display(); final Shell shell = new Shell(d); shell.setSize(250, 200); shell.setLayout(new FillLayout()); // Number of rows and columns final int NUM = 5; // Create the table 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 < NUM; i++) { TableColumn column = new TableColumn(table, SWT.CENTER); column.setText("Column " + (i + 1)); column.pack(); } TableEditor[] colorEditors = new TableEditor[NUM]; Button[] colorButtons = new Button[NUM]; for (int i = 0; i < NUM; i++) { // Create the row final TableItem item = new TableItem(table, SWT.NONE); // Create the editor and button colorEditors[i] = new TableEditor(table); colorButtons[i] = new Button(table, SWT.PUSH); // Set attributes of the button colorButtons[i].setText("Color..."); colorButtons[i].ruputeSize(SWT.DEFAULT, table.getItemHeight()); // Set attributes of the editor 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) { System.out.println("pressed"); } }); } shell.open(); while (!shell.isDisposed()) { if (!d.readAndDispatch()) d.sleep(); } d.dispose(); }
}
</source>