组件分类
容器组件:容纳其他组件
顶级容器组件:所有其他组件必须添加在其上 才能显示
元素组件:和用户交互的功能 输入 输出等等
布局:管理组件在容器中的排布方式 摆放规则
流式布局:将所有组件从左到右依次摆放 摆放不下 则换行
Dimension 对象= new Dimension(460, 30);
setPreferredSize(对象);
FlowLayout flowL = new FlowLayout();流式布局
组件.setLayout(flowL);
import java.awt.Dimension;//引入不同类的方法
import java.awt.FlowLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JCheckBox;
public class MyUI {
public static Object loginFrame;
public void showUI() {//创建窗体的方法 封装后放入主函数比较方便
JFrame loginFrame = new JFrame();//实例化对象
//设置窗体的属性 大小、关闭时的操作
loginFrame.setSize(550, 480);
loginFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//或3 意义:退出的同时关闭程序
//设置窗体的布局
FlowLayout flowL = new FlowLayout();//从左到右排列 括号里面输入的是可以显示的东西
loginFrame.setLayout(flowL);
//创建输入框的对象
JTextField nameInput = new JTextField();
JTextField nameInput1 = new JTextField();
//设置输入框的大小
Dimension inputSize = new Dimension(460, 30);//用到的类
nameInput.setPreferredSize(inputSize);//方法
nameInput1.setPreferredSize(inputSize);
//添加到窗体上
loginFrame.add(nameInput);
JLabel registerLabel = new JLabel("注册账号");
// Dimension inputSize4 = new Dimension(50, 50);
// registerLabel.setPreferredSize(inputSize4);
JCheckBox check1= new JCheckBox("记住密码");
JCheckBox check2= new JCheckBox("自动登录");
Dimension inputSize5 = new Dimension(400, 30);
check1.setPreferredSize(inputSize5);
loginFrame.add(registerLabel);
loginFrame.setVisible(true);
loginFrame.add(nameInput1);
JLabel registerLabel1 = new JLabel("找回密码");
loginFrame.add(registerLabel1);
loginFrame.setVisible(true);
loginFrame.add(check1);
loginFrame.setVisible(true);
loginFrame.add(check2);
loginFrame.setVisible(true);
//创建按钮
//javax.swing.
JButton button = new JButton("登录");
Dimension inputSize3 = new Dimension(100,40);
button.setPreferredSize(inputSize3);
//添加到
loginFrame.add(button);
loginFrame.setVisible(true);
UIListener loginL = new UIListener();
//给按钮添加事件监听器
button.addActionListener(loginL);
//把输入框的值传入监听器中
loginL.namelnput = nameInput;
loginL.namelnput1 = nameInput1;
loginL.loginFrame = loginFrame;
}
public static void main(String[] args) {
MyUI ui = new MyUI();
ui.showUI();
}
}
监听器部分`
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JTextField;
public class UIListener implements ActionListener{
JTextField namelnput;
JFrame loginFrame;
JTextField namelnput1;
JOptionPane p = new JOptionPane();
public void actionPerformed(ActionEvent e){
String name = namelnput.getText();
String namec = namelnput1.getText();
if(name.equals("01234") && namec.equals("012")){
System.out.println("登陆成功");
JOptionPane.showMessageDialog(null,"登陆成功");
loginFrame.dispose();
}else{
System.out.println("登陆失败");
JOptionPane.showMessageDialog(null,"账号或密码错误","提醒",JOptionPane.ERROR_MESSAGE);
JOptionPane.showMessageDialog(null,"登陆失败");
}
}
}
`