界面开发
界面开发步骤:
自己建立一个类
写一个初始界面的方法
1、创建一个窗体的对象
2、设置窗体对象的相关属性 (标题 尺寸 布局 ....)
3、添加组件 按钮 输入框
3.1、创建组件对象
3.2、设置组件的属性
3.3、将组件对象加载到窗体上
4、调用这部分代码
界面开发时需要用到的“包”
java.awt : 早期的界面开发工具包 保留使用元素类(尺寸 颜色 布局等 )
javax.swing : 升级之后的界面开发工具包 使用可视化的组件 (窗体 按钮 菜单 输入框…)
以下是一个简单的录入界面,包括按钮以及输入框,并在按钮中加上了监听模式,实现点击按钮后的响应,输入框中加入了文本获取,可实现输入框的录入功能;`
import javax.swing.*;
public class MyWindow {
//建立类
public void initUI() {
//创建窗体对象
JFrame pf=new javax.swing.JFrame();
//设置窗体属性
pf.setTitle("用户信息录入");
pf.setSize(500, 700);
pf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//布局
java.awt.FlowLayout am = new java.awt.FlowLayout();
pf.setLayout(am);
//添加组件
JButton btn = new JButton();
JTextField namein = new javax.swing.JTextField();
JTextField number = new javax.swing.JTextField();
JTextField sex = new javax.swing.JTextField();
JTextField phone = new javax.swing.JTextField();
JTextField qq = new javax.swing.JTextField();
javax.swing.JLabel namejla2 = new javax.swing.JLabel();
javax.swing.JLabel namejla3 = new javax.swing.JLabel();
javax.swing.JLabel namejla4 = new javax.swing.JLabel();
javax.swing.JLabel namejla5 = new javax.swing.JLabel();
javax.swing.JLabel namejla6 = new javax.swing.JLabel();
//插入图片
javax.swing.ImageIcon icon = new javax.swing.ImageIcon("C:\\Users\\17899\\Desktop\\qbs.jpg");
javax.swing.JLabel imgjla = new javax.swing.JLabel();
imgjla.setIcon(icon);
btn.setText("录入");
namejla2.setText("姓名");
namejla3.setText("编号");
namejla4.setText("性别");
namejla5.setText("电话号码");
namejla6.setText("qq号码");
java.awt.Dimension dim = new java.awt.Dimension(60,30);
btn.setPreferredSize(dim);
//输入框尺寸
java.awt.Dimension dimtf = new java.awt.Dimension(410,35);
namein.setPreferredSize(dimtf);
number.setPreferredSize(dimtf);
sex.setPreferredSize(dimtf);
phone.setPreferredSize(dimtf);
qq.setPreferredSize(dimtf);
//将对象加载在窗体上
pf.add(imgjla);
pf.add(namejla2);
pf.add(namein);
pf.add(namejla3);
pf.add(number);
pf.add(namejla4);
pf.add(sex);
pf.add(namejla5);
pf.add(phone);
pf.add(namejla6);
pf.add(qq);
pf.add(btn);
// 可视化 组件加载完成之后再执行
pf.setVisible(true);// 是否显示到屏幕上 true 是 false 否
WindowListen yu = new WindowListen(){};
btn.addActionListener(yu);
yu.namein1=namein;
yu.number1=number;
yu.sex1=sex;
yu.phone1=phone;
yu.qq1=qq;
}
public static void main(String[] args) {
MyWindow sf = new MyWindow();
sf.initUI();
}
}
以下代码为监听器代码
import java.awt.event.ActionEvent;
import javax.swing.*;
public class WindowListen implements java.awt.event.ActionListener {
int count=0;
JTextField namein1 = null;
JTextField number1 = null;
JTextField sex1 = null;
JTextField phone1 = null;
JTextField qq1 = null;
public void actionPerformed(ActionEvent e){
String bitstr=e.getActionCommand();
if(bitstr.equals("录入")) {
//MyWindow2 cf=new MyWindow2();
//cf.initUI2();
String namestr= namein1.getText();
String numberstr= number1.getText();
String sexstr= sex1.getText();
String phonenumber= phone1.getText();
String qqnumber = qq1.getText();
JLabel namestrk = new JLabel("姓名:"+namestr);
JLabel numberstrk =new JLabel("编号:"+numberstr);
JLabel sexstrk =new JLabel("性别:"+sexstr);
JLabel phonestrk =new JLabel("电话:"+phonenumber);
JLabel qqstrk =new JLabel("QQ:"+qqnumber);
JFrame gf = new JFrame("账号信息");
java.awt.FlowLayout am = new java.awt.FlowLayout();
gf.setLayout(am);
gf.setTitle("用户信息显示");
gf.setSize(500, 700);
gf.add(namestrk);
gf.add(numberstrk);
gf.add(sexstrk);
gf.add(phonestrk);
gf.add(qqstrk);
gf.setVisible(true);
}
}
}
输入框中内容需要读取并随按钮响应,则需要在监听器中加入空对象用来存放读取的内容,然后在窗体程序中实现数据传递
yu.namein1=namein;
yu.number1=number;
yu.sex1=sex;
yu.phone1=phone;
yu.qq1=qq;
代码中的这几行为数据传输作用,实现将输入框读取的内容传入监听器,而获取文本输入框内容是通过getText()实现。