JAVA SWT table界面+数据(多图)

界面

1.布局

选用两个composite,
设置shell的Layout为FillLayout;
设置Layout-Type(布局类型)为垂直分布;
设置右滑块,下滑块;
这里写图片描述
这里写图片描述
这里写图片描述
简单布局

2.添加table组件

上面的composite添加的是CheckboxTableViewer,下面的是普通的Table;
同样需要设置两个composite的Layout属性为FillLayout,才能填充整个界面。
这里写图片描述

3.数据

数据通过代码添加

table.setHeaderVisible(true);
table.setLinesVisible(true);
// 创建表头的字符串数组  
String[] tableHeader = {"名称", "型号", "尺寸", "喷射距离","最高时速","简介"};  
for (int i = 0; i < tableHeader.length; i++)  
{  
    TableColumn tableColumn = new TableColumn(table, SWT.NONE);  
    tableColumn.setText(tableHeader[i]);  
    // 设置表头可移动,默认为false  
    tableColumn.setMoveable(true);  
}
TableItem item; 
//添加一行数据
item = new TableItem(table, SWT.NONE);  
item.setText(new String[]{"重型泡沫车" , " JDF5314GXFPM160" , " 10655*2500*3540" , " 特点:功率大、车速高、载液量大,射程远" , "95 " , " 60"});
// 添加四行数据  
for (int i = 1; i < 5; i++)  
{  
    item = new TableItem(table, SWT.NONE);  
    item.setText(new String[]{"重型泡沫车"+i , " JDF5314GXFPM160" , " 10655*2500*3540" , " 特点:功率大、车速高、载液量大,射程远" , "95 " , " 60"});  
}  
// 重新布局表格  
for (int i = 0; i < tableHeader.length; i++)  
{  
    table.getColumn(i).pack();  
}

这里写图片描述

4.完整代码

package test;

import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.jface.viewers.CheckboxTableViewer;

public class test6 {

	protected Shell shell;
	private Table table;
	private Table table_1;

	/**
	 * Launch the application.
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			test6 window = new test6();
			window.open();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Open the window.
	 */
	public void open() {
		Display display = Display.getDefault();
		createContents();
		shell.open();
		shell.layout();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
	}

	/**
	 * Create contents of the window.
	 */
	protected void createContents() {
		shell = new Shell();
		shell.setSize(450, 300);
		shell.setText("SWT Application");
		shell.setLayout(new FillLayout(SWT.VERTICAL));
		
		Composite composite = new Composite(shell, SWT.H_SCROLL | SWT.V_SCROLL);
		composite.setLayout(new FillLayout(SWT.HORIZONTAL));
		
		CheckboxTableViewer checkboxTableViewer = CheckboxTableViewer.newCheckList(composite, SWT.BORDER | SWT.FULL_SELECTION);
		table = checkboxTableViewer.getTable();
		
		Composite composite_1 = new Composite(shell, SWT.H_SCROLL | SWT.V_SCROLL);
		composite_1.setLayout(new FillLayout(SWT.HORIZONTAL));
		
		table_1 = new Table(composite_1, SWT.BORDER | SWT.FULL_SELECTION);
		table_1.setHeaderVisible(true);
		table_1.setLinesVisible(true);
		table.setHeaderVisible(true);
		table.setLinesVisible(true);
		
		// 创建表头的字符串数组  
        String[] tableHeader = {"名称", "型号", "尺寸", "喷射距离","最高时速","简介"};  
        for (int i = 0; i < tableHeader.length; i++)  
        {  
            TableColumn tableColumn = new TableColumn(table, SWT.NONE);  
            tableColumn.setText(tableHeader[i]);  
            // 设置表头可移动,默认为false  
            tableColumn.setMoveable(true);  
        }  
        //添加一行数据
        TableItem item; 
        item = new TableItem(table, SWT.NONE);  
        item.setText(new String[]{"重型泡沫车0", " JDF5314GXFPM160" , " 10655*2500*3540" , " 特点:功率大、车速高、载液量大,射程远" , "95 " , " 60"});
        // 添加三行数据  
        for (int i = 1; i < 5; i++)  
        {  
            item = new TableItem(table, SWT.NONE);  
            item.setText(new String[]{"重型泡沫车"+i , " JDF5314GXFPM160" , " 10655*2500*3540" , " 特点:功率大、车速高、载液量大,射程远" , "95 " , " 60"});  
        }  
        // 重新布局表格  
        for (int i = 0; i < tableHeader.length; i++)  
        {  
            table.getColumn(i).pack();  
        }
     // 创建表头的字符串数组  
        String[] tableHeader1 = {"名称", "坐标"};  
        for (int i = 0; i < tableHeader1.length; i++)  
        {  
            TableColumn tableColumn = new TableColumn(table_1, SWT.NONE);  
            tableColumn.setText(tableHeader1[i]);  
            // 设置表头可移动,默认为false  
            tableColumn.setMoveable(true);  
        }  
        TableItem item1;
        for(int i=1;i<6;i++){
        	item1 = new TableItem(table_1, SWT.NONE);  
            item1.setText(new String[]{"重型泡沫车"+i ,2650+3*(i-1)+",8400"});
        }
        for(int i=1;i<5;i++){
        	item1 = new TableItem(table_1, SWT.NONE);  
            item1.setText(new String[]{"救护车"+i , 2666+3*(i-1)+",8400"});
        }
        // 重新布局表格  
        for (int i = 0; i < tableHeader1.length; i++)  
        {  
        	table_1.getColumn(i).pack();  
        }

	}
}

最终效果图

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值