SWT实现点击菜单项或按钮改变面板内容

最近在做一个基于SWT的桌面应用程序。对这方面零基础。所以开通此专栏,总结项目中的问题和经验。顺便提一下,我的开发环境使用eclipse的windowBuilder插件。

我的需求是点击菜单栏的菜单项能够在不开启新的窗口的条件下显示不同的界面。思路是这样的:在想要显示不同界面的位置放置一个composite控件,并将此composite设置为StackLayout布局。(注意:composite的父控件的布局不可以为null,否则在运行期会出现问题。)。此时利用windowBuilder新建两个(根据你的需求是多少个不同界面)composite。并在新建的composite上完成你需要的布局。然后回到主文件。将new好的界面赋值给StackLayout对象的topControl 。最后别忘了调用父布局(此时为主程序中的composite面板)的layout方法。好了,下面看下效果和关键代码。


·点击仓库管理菜单项


·点击库存查看菜单项


核心代码如下:

menuItem.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				//Test2是自己创建的Composite。在下面给出
				Test2 test2 = new Test2(composite, SWT.None);
				stackLayout.topControl = test2;
				composite.layout();
			}
		});



public class Test2 extends Composite {
	/**
	 * Create the composite.
	 * 
	 * @param parent
	 * @param style
	 */
	public Test2(Composite parent, int style) {
		super(parent, style);
		setBackground(SWTResourceManager.getColor(SWT.COLOR_GREEN));

		Label lblTest = new Label(this, SWT.NONE);
		lblTest.setFont(SWTResourceManager.getFont("Microsoft YaHei UI", 29, SWT.NORMAL));
		lblTest.setBackground(SWTResourceManager.getColor(SWT.COLOR_GREEN));
		lblTest.setBounds(112, 111, 317, 135);
		lblTest.setText("我是库存查看界面");
	}

	protected void checkSubclass() {
		// Disable the check that prevents subclassing of SWT components
	}

}

希望能够帮助到大家!!!





评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叹了口丶气

觉得有收获就支持一下吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值