3.2 界面设计常用组件介绍
一个完整的界面开始设计,首先需要确定界面的大小以及显示的位置,然后就要在界面中设置一些按钮,并依次设置按钮的布局格式。
AWT的全称是抽象窗口工具集。它是一个特殊的组件,其中包含有其他的组件。它的库类也非常丰富,包括了创建Java图形界面程序的所有工具。用户可以利用AWT,在容器中创建标签、按钮、复选框、文本框等用户界面元素。
AWT中包括了图形界面编辑的基本类库。它是Java语言GUI程序设计的核心,它为用户提供基本的界面构件。这些构件是为了使用户和机器之间能够更好地进行交互,而用来建立图形用户界面的独立平台。其中主要有以下几部分组成,包括:组件类、容器类、图形类和布局管理器。
Swing元素的屏幕显示性能要比AWT要好,而且Swing是使用纯Java来实现的。所以Swing也理所当然地具有Java 的跨平台性。但Swing 并不是真正使用原生平台提供设备,而是仅仅在模仿。因此,可以在任何平台上来使用Swing 图形用户界面组件。它不必在它们自己本地窗口中绘制组件,而是在它们所在的重量级窗口中绘制,因为Swing 绝大部分是轻量级的组件。Java x.swing包中有顶层容器和轻量级两种类型的组件,Swing 轻量级的组件都是由AWT 的Container 类来直接或者是间接派生而来的。使用 Swing 进行程序设计,首先要引入Swing 的包,创建顶层的容器,在容器中创建按钮和标签等一系列的组件,并将组件添加到顶层容器中,然后在组件的周围添加边界,最后对组件的事件进行处理。
下面就通过一个Hello World 的示例来演示第一个Swing 程序,这个程序就是按照前面所介绍的流程进行编写的。
//首先导入Swing 需要的包 import javax.swing.*; import java.awt.*;
import java.awt.event.*; //创建Hello World 类 public class HelloWorld { //创建主方法
public static void main(String[] args) { try { //try语句块,监视该段程序 设置窗口风格
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()) ;
}
catch (Exception e) { //捕获异常
- 8 -
e.printStackTrace(); //异常信息输出 }
JFrame frame = new JFrame(\第一个示例\创建顶层容器并初始化 Container c = frame.getContentPane(); //获取面板容器 JPanel pane = new JPanel(); //创建面板panel 并初始化 c.add(pane); //将面板添加到窗口
pane.setLayout(new FlowLayout()); //设置布局管理器FlowLayout final JLabel label = new JLabel(); //创建标签label 并初始化 JButton button = new JButton(\按钮\创建button 并初始化 pane.add(label); //向容器中添加组件label pane.add(button); //向容器中添加组件button 对按钮事件的处理方法
button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
label.setText(\!\设置label 显示的内容 } });
窗口设置结束,开始显示
frame.addWindowListener(new WindowAdapter() { 图形界面编程
public void windowClosing(WindowEvent e) { System.exit(0);} //程序退出 });
frame.setSize(300,240); //设置窗口大小 frame.setVisible(true); //显示窗口 } }
文本框具有文本输入和编辑的功能,文本框组件用于获取到用户所输入的文本。除此之外还有文本区,文本区和文本框的区别是,前者可以输入多行文本,而文本框只接受单行文本的输入。实现文本框功能的类是JTextField,其中提供了多个方法,可以设置输入的文本字符长度限制。密码框和文本框的外观一样,并且也继承自JTextField 类,密码框只提供专门的密码输入,输入内容不能直接显示,在密码框中以星号或其他形式的符号显示在上面。
3.3 立体观测系统主界面的设计
建立Frame。创建一个对话框应用程序,命名SAR01。在MFC AppWizard-Step
- 9 -
中选择MFC AppWizard(exe),然后选择”Dialog based(对话框模式)”一项,其余则一直按照默认到最后单击按钮”Finish”。在完成了以上步骤后,一个叫SAR01的文件建立了。然后我们就可以根据我们的需要来添加按钮、编辑框等控件,直到做出基础的主界面对话框。
程序主界面 图像输入部分 图像处理及输出部分 主图像 辅图像 预 滤 波 配 准 干涉图滤波 去平地效应 相位解缠 生成DEM 图3.3主界面设计框图
一个人性化、操作简单的界面便于提高系统界面的通用性和实用性,使用户能够直观、快速的观测到设备的各种测量信息。用户能够直观的理解自己的操作对实验或测量过程的影响。例如,用户在点击界面上相应按钮后,系统界面将会把设备所返回的数据返回到界面的图像上或相应的编辑框内,用于用户直观、快速地进行测量操作。同时,系统界面的操作遵循大多数用户所熟悉的Windows操作习惯和标准,界面风格采用对话框形式,易于用户与设备间进行交流。所以我设计了如图的界面。他的特点就是操作简单,并包含了设计要求的完整功能。
在主体框架确定和主要的界面安排确定后,我们就要开始编辑相关的功能按钮。 本界面用eclipse开发,创建工程bysj,在src源目录下创建窗口类MainFrame.java,此类包含了所有界面的控件。
界面控件如图所示:
- 10 -
Src文件夹内为源目录。
JRE system library下的是项目所以来的jar包。
显示主窗口代码。
1、new MainFrame().setVisible(true);此代码语句是创建一个frame窗口对象,然后setVisible(true)此语句表示可以被看到。
此时运行代码,显示窗口如图所示
图3.4
2、然后对此窗口进行属性设置: this.setJMenuBar(menubar);
this.setSize(new Dimension(500,400)); this.setTitle(\系统界面\);
此为设置窗口的宽度和高度
此为设置窗口标题栏为“系统界面”
this.setLocation(300, 100); 此为设置窗口在屏幕上显示的位置 this.setDefaultCloseOperation(EXIT_ON_CLOSE); 可关闭
此时界面如下:
- 11 -
图3.5
3、之后在窗口上添加2块用线包围的框体。
代码如下
this.setLayout(null); 设置layout布局方式为空 JPanel p1 = new JPanel();
创建一个Jpanel对象,也就是线框。
p1.setBorder(BorderFactory.createTitledBorder(\图像输入\));设置次线框的边框样式,以及标题为“图像输入” p1.setBounds(15, 10, 455, 68);
设置次线框在frame中显示的位置以及大小。 p1.setLayout(null); 设置layout布局方式为空
this.add(p1); 将此线框对象添加到frame窗口中。
JPanel p2 = new JPanel();
创建一个Jpanel对象,也就是线框
p2.setBorder(BorderFactory.createTitledBorder(\图像处理及输出\));
设置次线框的边框样式,以及标题为“图像输入”
p2.setBounds(15, 90, 455, 260); this.add(p2);
设置次线框在frame中显示的位置以及大小。
- 12 -