专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 关于Java图形化用户界面的设计思路

关于Java图形化用户界面的设计思路

更新时间:2022-12-05 12:23:43 来源:动力节点 浏览790次

Java图形化用户界面要怎么设计?小编来告诉大家。图形化界面程序大家都使用过,一般使用一个程序过程是:打开一个程序出现一个窗口或对话框,其中一般有菜单、工具栏、文本框、按钮、单选框、复选框等控件(组件也就是控件),用户录入相关数据,点按相关菜单、按钮,程序对数据进行相关处理,并将处理后的数据显示或者保存起来,最后关闭程序。

用java编程的相关设计步骤来分解上面的的程序运行过程如下图所示:

1.创建顶层容器

对应于程序的初始显现窗口,窗口中放入其它菜单、工具栏、文本框、按钮等组件

顶层容器图形化界面显示的基础,其它所有的组件(控件)都是直接或间接显示在顶层容器中的。在java中顶层容器有三种,分别是JFrame(框架窗口,即通常的窗口)、JDialog(对话框)、JApplet(用于设计嵌入在网页中的java小程序)。

2.创建中间容器、组件

对应于程序中出现的菜单、工具栏(中间容器)、文本框、按钮、单选框、复选框等控件。

有很多Swing组件可以使用,见前面的SwingUI组件表。

3.将组件加入容器

在java中创建组件后,还需要将组件放入相应的容器,才能在顶层容器,如窗口中显示出组件。

4.设置容器内组件的位置

组件添加到容器中,还必须设置好组件的显示位置,一般有两种方法来设置组建的显示位置,一是按照与容器的相对距离(以像素为单位),精确固定控件的位置;二是用布局管理器来管理组件在容器内的位置。

5.处理组件所产生的事件

即用户执行选择菜单、单击按钮等操作时,就要执行相应的命令,进行相关的程序处理,这就需要设置组件的事件。

实现上述JFrame图形化界面

创建一个继承JFrame的类

import java.awt.EventQueue; 
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JTextArea;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class MyJFrame01 extends JFrame { 
	private JPanel contentPane;
	private JTextField textField;
	private JButton btnNewButton;
	private JTextArea textArea;	
	/**
	 * Create the frame.
	 */
	public MyJFrame01() {
		setTitle("MyJFrame-01");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 509, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); 
		setContentPane(contentPane);
		contentPane.setLayout(null);		
	    btnNewButton = new JButton("Send");
	    btnNewButton.addActionListener(new ActionListener() {
	    	public void actionPerformed(ActionEvent e) {
	    		textArea.append(textField.getText() + "\n");  //将输入的文本加入到文本区域
	    	}
	    });
		btnNewButton.setBounds(388, 10, 97, 23);
		contentPane.add(btnNewButton);		
		textField = new JTextField();
		textField.setBounds(10, 11, 368, 21);
		contentPane.add(textField);
		textField.setColumns(10);		
		textArea = new JTextArea();
		textArea.setBounds(10, 43, 475, 210);
		contentPane.add(textArea);
	}
}

我们在Test中创建对象,使用

import java.awt.EventQueue;
public class TestJFrame { 
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					MyJFrame01 frame = new MyJFrame01();
					frame.setVisible(true);										
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}
}

 

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>