<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # `Table`小部件 > 原文: [http://zetcode.com/gui/javaswt/table/](http://zetcode.com/gui/javaswt/table/) 在 Java SWT 教程的這一部分中,我們介紹`Table`小部件。 `Table`是細胞的二維網格。 可以將數據寫入這些單元中的每一個中。 該小部件由電子表格應用引入。 `Table`可以顯示列標題,并且當單元格很多時,`Table`可以顯示滾動條。 ## 空表 第一個示例創建一個簡單的空表。 `TableEx.java` ```java package com.zetcode; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; 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; /** * ZetCode Java SWT tutorial * * In this program, we create a simple, empty * table widget. * * Author: Jan Bodnar * Website: zetcode.com * Last modified: June 2015 */ public class TableEx { public TableEx(Display display) { initUI(display); } @SuppressWarnings("unused") private void initUI(Display display) { Shell shell = new Shell(display); shell.setLayout(new GridLayout()); Table table = new Table(shell, SWT.BORDER); table.setHeaderVisible(true); table.setLinesVisible(true); GridData data = new GridData(SWT.FILL, SWT.FILL, true, true); data.heightHint = 300; data.widthHint = 350; table.setLayoutData(data); String[] titles = { "A", "B", "C" }; for (int i = 0; i < titles.length; i++) { TableColumn column = new TableColumn(table, SWT.CENTER); column.setWidth(120); column.setText(titles[i]); } for (int i = 0; i < 15; i++) { TableItem item = new TableItem(table, SWT.NONE); } shell.setText("Empty table"); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } } @SuppressWarnings("unused") public static void main(String[] args) { Display display = new Display(); TableEx ex = new TableEx(display); display.dispose(); } } ``` 該代碼示例創建一個具有三列和十五行的表小部件。 表單元為空。 ```java Table table = new Table(shell, SWT.BORDER); ``` 創建`Table`小部件的實例。 ```java table.setHeaderVisible(true); ``` `setHeaderVisible()`使表格標題可見。 標題由表列名稱組成。 ```java table.setLinesVisible(true); ``` `setLinesVisible()`顯示表格單元格的邊框。 默認情況下,單元格不可見。 ```java String[] titles = { "A", "B", "C" }; ``` 這些是列標題。 ```java for (int i = 0; i < titles.length; i++) { TableColumn column = new TableColumn(table, SWT.CENTER); column.setWidth(120); column.setText(titles[i]); } ``` 在此`for`循環中,我們創建表列。 `TableColumn`的實例表示表窗口小部件中的一列。 `setWidth()`設置列的寬度,`setText()`方法設置列的名稱。 ```java for (int i = 0; i < 15; i++) { TableItem item = new TableItem(table, SWT.NONE); } ``` `TableItem`代表表中的一行。 這段代碼創建了十五個空單元格。 ![Empty table](https://img.kancloud.cn/af/bc/afbcc1df7a39f81dc105eca30ec8c05a_382x356.jpg) 圖:空表 ## 用數據填充單元格 在第二個示例中,表格單元格顯示一些數據。 `TableEx2.java` ```java package com.zetcode; 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; /** * ZetCode Java SWT tutorial * * In this program, we fill table cells * with data. * * Author: Jan Bodnar * Website: zetcode.com * Last modified: June 2015 */ public class TableEx2 { public TableEx2(Display display) { initUI(display); } private void initUI(Display display) { Shell shell = new Shell(display, SWT.SHELL_TRIM | SWT.CENTER); shell.setLayout(new FillLayout()); Table table = new Table(shell, SWT.BORDER); table.setHeaderVisible(true); table.setLinesVisible(true); TableColumn tc1 = new TableColumn(table, SWT.CENTER); TableColumn tc2 = new TableColumn(table, SWT.CENTER); TableColumn tc3 = new TableColumn(table, SWT.CENTER); tc1.setText("First Name"); tc2.setText("Last Name"); tc3.setText("Profession"); tc1.setWidth(70); tc2.setWidth(70); tc3.setWidth(80); TableItem item1 = new TableItem(table, SWT.NONE); item1.setText(new String[] { "Jane", "Brown", "Accountant" }); TableItem item2 = new TableItem(table, SWT.NONE); item2.setText(new String[] { "Tim", "Warner", "Lawyer" }); TableItem item3 = new TableItem(table, SWT.NONE); item3.setText(new String[] { "Bob", "Milton", "Police officer" }); shell.setText("Table widget"); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } } @SuppressWarnings("unused") public static void main(String[] args) { Display display = new Display(); TableEx2 ex = new TableEx2(display); display.dispose(); } } ``` 該示例顯示了具有三列三行的表格小部件。 單元格充滿數據。 ```java TableItem item1 = new TableItem(table, SWT.NONE); item1.setText(new String[] { "Jane", "Brown", "Accountant" }); ``` `setText()`方法用數據填充一行的所有三個單元格。 ![Table cells with data](https://img.kancloud.cn/3e/ba/3eba66a0bbcb5bde40a4bf97d9e92a80_242x138.jpg) 圖:帶有數據的表格單元 ## 選擇表格行 以下示例介紹了表格項目的選擇。 `TableEx3.java` ```java package com.zetcode; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.TableItem; /** * ZetCode Java SWT tutorial * * In this program, we show the data from * the selected row in the statusbar. * * Author: Jan Bodnar * Website: zetcode.com * Last modified: June 2015 */ public class TableEx3 { private Label label; private final String data[][] = { { "Ferarri", "33333" }, { "Skoda", "22000" }, { "Volvo", "18000" }, { "Mazda", "15000" }, { "Mercedes", "38000" } }; public TableEx3(Display display) { initUI(display); } private void initUI(Display display) { Shell shell = new Shell(display, SWT.SHELL_TRIM | SWT.CENTER); shell.setLayout(new GridLayout(1, true)); Table table = new Table(shell, SWT.BORDER); table.setHeaderVisible(true); table.setLinesVisible(true); String[] titles = { "Car", "Price" }; for (int i = 0; i & titles.length; i++) { TableColumn column = new TableColumn(table, SWT.NULL); column.setText(titles[i]); column.setWidth(130); } for (int i = 0; i & data.length; i++) { TableItem item = new TableItem(table, SWT.NULL); item.setText(0, data[i][0]); item.setText(1, data[i][1]); } label = new Label(shell, SWT.NONE); table.addListener(SWT.Selection, event -> onTableItemSelected(table)); GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); gd.widthHint = 360; gd.heightHint = 300; table.setLayoutData(gd); label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); shell.setText("Table widget"); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } } private void onTableItemSelected(Table table) { TableItem[] sel = table.getSelection(); String msg = String.format("%s: %s", sel[0].getText(0), sel[0].getText(1)); label.setText(msg); } @SuppressWarnings("unused") public static void main(String[] args) { Display display = new Display(); TableEx3 ex = new TableEx3(display); display.dispose(); } } ``` 在示例中,所選行中的數據顯示在狀態欄中。 ```java table.addListener(SWT.Selection, event -> onTableItemSelected(table)); ``` 選擇監聽器將添加到表中。 每當選擇表格項目時,都會調用`onTableItemSelected()`。 ```java private void onTableItemSelected(Table table) { TableItem[] sel = table.getSelection(); String msg = String.format("%s: %s", sel[0].getText(0), sel[0].getText(1)); label.setText(msg); } ``` `getSelection()`方法返回一個選定表項的數組。 (由于我們使用默認選擇模式(即單選模式),因此僅返回一個表項。)我們使用`getText()`方法從該行的單元格中檢索數據。 我們構建消息并使用其`setText()`方法將其顯示在標簽中。 ![Selecting table items](https://img.kancloud.cn/40/06/4006e2b4e1a4a9786429f0e935493283_392x378.jpg) 圖:選擇表項 ## 添加新表項 在以下示例中,新表項被動態添加到表中。 `TableEx4.java` ```java package com.zetcode; import org.eclipse.swt.SWT; 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.Event; import org.eclipse.swt.widgets.Label; 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; /** * ZetCode Java SWT tutorial * * In this program, we add new table items * to the table. * * Author: Jan Bodnar * Website: zetcode.com * Last modified: June 2015 */ public class TableEx4 { private Text text1; private Text text2; private Table table; private final String data[][] = { { "Ferarri", "33333" }, { "Skoda", "22000" }, { "Volvo", "18000" }, { "Mazda", "15000" }, { "Mercedes", "38000" } }; public TableEx4(Display display) { initUI(display); } private void initUI(Display display) { Shell shell = new Shell(display, SWT.SHELL_TRIM | SWT.CENTER); shell.setLayout(new GridLayout(5, false)); table = new Table(shell, SWT.BORDER | SWT.MULTI); table.setHeaderVisible(true); // table.setLinesVisible(true); String[] titles = { "Car", "Price" }; for (int i = 0; i < titles.length; i++) { TableColumn column = new TableColumn(table, SWT.NULL); column.setText(titles[i]); column.setWidth(130); } for (int i = 0; i < data.length; i++) { TableItem item = new TableItem(table, SWT.NULL); item.setText(0, data[i][0]); item.setText(1, data[i][1]); } GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); gd.horizontalSpan = 5; gd.widthHint = 360; gd.heightHint = 300; table.setLayoutData(gd); Label carName = new Label(shell, SWT.NONE); carName.setText("Car:"); text1 = new Text(shell, SWT.BORDER); Label priceOfCar = new Label(shell, SWT.NONE); priceOfCar.setText("Price:"); text2 = new Text(shell, SWT.BORDER); text1.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); text2.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); Button addBtn = new Button(shell, SWT.PUSH); addBtn.setText("Insert"); addBtn.addListener(SWT.Selection, event -> onInsertButtonSelected(event)); shell.setText("Table widget"); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } } private void onInsertButtonSelected(Event event) { String val1 = text1.getText(); String val2 = text2.getText(); if (val1.isEmpty() || val2.isEmpty()) { return; } TableItem item = new TableItem(table, SWT.NULL); item.setText(0, val1); item.setText(1, val2); text1.setText(""); text2.setText(""); } @SuppressWarnings("unused") public static void main(String[] args) { Display display = new Display(); TableEx4 ex = new TableEx4(display); display.dispose(); } } ``` 在底部,有兩個文本小部件和一個按鈕。 插入到文本小部件中的數據將插入到新表項的單元格中。 ```java private void onInsertButtonSelected(Event event) { String val1 = text1.getText(); String val2 = text2.getText(); ... } ``` 在`onInsertButtonSelected()`方法中,我們從文本小部件中獲取插入的文本。 ```java if (val1.isEmpty() || val2.isEmpty()) { return; } ``` 我們確保文本小部件不為空。 ```java TableItem item = new TableItem(table, SWT.NULL); item.setText(0, val1); item.setText(1, val2); ``` 構造新表項,并獲取插入的數據。 ```java text1.setText(""); text2.setText(""); ``` 最后,將清除文本小部件。 ![](https://img.kancloud.cn/ed/9d/ed9d2da952e72911647ef818c333488e_392x388.jpg) 圖:添加新表項 在 Java SWT 教程的這一部分中,我們介紹了`Table`小部件。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看