图形用户界面
今天老师布置了一个实验,用Java实现图形用户界面,按照习惯依旧贴出来了。
功能还可以后继添加,掌握各种组件的使用和布局管理器以及点击事件,实现界面如图所示:
实现代码如下:
package test;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
/**
* 图形用户界面测试类
* 实现用户数据信息的添加
* @author TangJiang
* 2017年11月16日 下午10:09:28
*
*/
public class Test extends JFrame {
// public static final ArrayList<Object> list = new ArrayList<Object>();
private JPanel contentPane;
private JTextField nameField;
private JTextField ageField;
private JTextField sexField;
private JTextField telField;
private JTable table;
private JButton addButton;
private DefaultTableModel dtm;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Test frame = new Test();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Test() {
setTitle("用户信息添加");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 477, 367);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
//用户标签
JLabel lblNewLabel = new JLabel("用户名:");
lblNewLabel.setBounds(249, 17, 54, 15);
contentPane.add(lblNewLabel);
//年龄标签
JLabel lblNewLabel_1 = new JLabel("年 龄:");
lblNewLabel_1.setBounds(249, 77, 54, 15);
contentPane.add(lblNewLabel_1);
//性别标签
JLabel lblNewLabel_2 = new JLabel("性 别:");
lblNewLabel_2.setBounds(249, 147, 54, 15);
contentPane.add(lblNewLabel_2);
//电话标签
JLabel lblNewLabel_3 = new JLabel("电 话:");
lblNewLabel_3.setBounds(249, 221, 54, 15);
contentPane.add(lblNewLabel_3);
//姓名文本输入框
nameField = new JTextField();
nameField.setBounds(313, 14, 131, 21);
contentPane.add(nameField);
nameField.setColumns(10);
//年龄文本输入框
ageField = new JTextField();
ageField.setBounds(313, 74, 131, 21);
contentPane.add(ageField);
ageField.setColumns(10);
//性别文本输入框
sexField = new JTextField();
sexField.setBounds(313, 147, 131, 21);
contentPane.add(sexField);
sexField.setColumns(10);
//电话文本输入框
telField = new JTextField();
telField.setBounds(313, 218, 131, 21);
contentPane.add(telField);
telField.setColumns(10);
//数据添加按钮
addButton = new JButton("添加");
addButton.setBounds(309, 283, 93, 23);
contentPane.add(addButton);
//滚动窗面板
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(10, 10, 218, 250);
contentPane.add(scrollPane);
//将表格框添加入滚动窗
table = new JTable();
//设置表格默认模型
dtm = new DefaultTableModel(
new Object[][] { { "\u5F20\u4E09", "20", "\u7537", "123456" },
{ "\u674E\u56DB", "20", "\u7537", "123456" }, },
new String[] { "\u59D3\u540D", "\u5E74\u9F84", "\u6027\u522B", "\u7535\u8BDD" });
table.setModel(dtm);
table.setBounds(10, 10, 200, 200);
// 设置首选大小[除了窗体以外的组件都需要设置首选大小]
scrollPane.setPreferredSize(new Dimension(500, 400));
// 设置自动出现滚动条
scrollPane.setAutoscrolls(true);
scrollPane.setViewportView(table);
/**
* 创建按钮点击事件添加数据
*/
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//分别取得文本框的内容
String name = nameField.getText();
String age = ageField.getText();
String sex = sexField.getText();
String tel = telField.getText();
//将文本框的内容添加入表格
dtm.addRow(new String[]{name,age,sex,tel});
}
});
}
}
最后,为了便于自己以后找到组件的拖拽的位置,写出创建类的步骤:
点击工程新建,点击其他<other>,然后输入jf,点击创建JFrame。