SWT-Designer插件为Eclipse提供了应用程序界面设计的功能,本实例要求读者使用该设计器,设计一个模仿Windows系统运行对话框的界面。该对话框的界面效果如图1所示。
图1 运行对话框界面
l Swing使用多种布局管理器进行组件布局,如果不了解它们,可以不使用布局管理器,使用绝对定位来布局组件位置和大小。
l 使用UIManager.setLookAndFeel()方法可以设置应用程序的外观。
l 使用UIManager.getSystemLookAndFeelClassName()方法可以获取当前系统的外观名称。
(1)新建Java项目,名称为“RunDialog”。
(2)在项目的“src”文件夹中单击鼠标右键,在弹出菜单中选择“新建”/“其他”菜单项。
(3)在弹出的“新建”向导对话框的“选择向导”界面中,展开“Designer”节点,选择“Swing”/“JFrame”子结点,如图2所示。单击确定按钮。
图2 新建对话框
(4)在“New Swing JFrame”对话框中,向导已经自动填写了源文件夹位置和超类名称,我们需要做的是,在“名称”对话框中输入新建类的名字,例如“RunDialogDemo”。如图3所示,单击“完成”按钮。
图3 New Swing Jframe对话框
(5)向导会自动创建“RunDialogDemo”类,并完成代码的初步编写。我们需要使用设计器进行组件添加和布局,通过单击图4中的“Design”选项卡可以切换到设计器界面。
图4 设计器与源码切换选项卡
(6)在设计器界面中的窗体中单击鼠标右键,在弹出的菜单中选择“Set layout”/“Absolute (null)layout”菜单项,如图5所示。这样就设置窗体容器使用绝对定位方式布局组件。在没有学会布局管理器之前,使用绝对定位的布局方式,相对要简单一些,拖曳组件就可以设置位置。
图5 设置绝对定位的布局方式
(7)在设计器的“Palette”组件面板中的“Swing Controls”选项卡中选择“”组件,然后在设计器的窗体上指定位置单击鼠标左键,如图6所示。
图6 创建组件
(8)选择添加到窗体中的JLabel组件,在属性选项卡中找到“icon”属性,如图7所示。单击右侧的“”按钮选择组件图标。
图7 组件的属性界面
(9)在“Selected image”对话框中找到需要的图片文件(这是事先复制到src文件夹的图片),如图8所示。单击“确定”按钮。
图8 选择图片对话框
(10)现在的JLabel组件包含了图片,但是还有多余的文本信息,如图9所示。修改改组件的“text”属性,如图10所示,将属性值删除。
图9 组件外观 图10 text属性
(11)再添加一个组件显示文本,并设置“opaque”属性为“false”、设置“lineWrap”属性为“true”,然后设置“text”文本属性。设置后的效果如图11所示。
图11 设置组件
(12)添加JLabel组件,设置文本为“打开(O):”。
(13)添加“”组件,调整大小。效果如图12所示
图12 提加组件
(14)添加3个按钮分别设置“text”属性为“确定”、“取消”、“浏览”。添加组件,并调整大小后,整个界面的设计效果如图13所示。
图13 添加按钮
(15)切换到“Source”源码选项卡。修改主方法的程序代码如下:
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
RunDialogDemo frame = new RunDialogDemo();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
其中“UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());”语句是新增加的,它用于指定程序使用本地系统的外观样式。
(16)运行该程序。界面效果如图14所示。
图14 运行结果