使用设计器设计Windows系统的运行对话框界面

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 nulllayout”菜单项,如图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  运行结果