GUI
今日内容较为简单,从容器到组件到监听器,我循序渐进,逐步将界面建立起来,下面是部分练习以及最后完成一个简易的登录界面。
import javax.swing.*;
import java.awt.*;
public class JFrameTest01 {
public static void main(String[] args) {
//实例化容器 - 布局管理器
JFrame jFrame = new JFrame("XX大学");
jFrame.setSize(230, 180);
jFrame.setLocation(300, 180);
jFrame.setBackground(Color.PINK);
jFrame.setVisible(true);
}
}
import javax.swing.*;
import java.awt.*;
public class JFrameTest02 {
public static void main(String[] args) {
//实例化容器 - 布局管理器
JFrame jFrame = new JFrame("XX大学");
//实例化Dimension对象
Dimension dimension = new Dimension(230, 200);
jFrame.setSize(dimension);
//实例化Point对象
Point point = new Point(300, 200);
jFrame.setLocation(point);
jFrame.setBackground(Color.PINK);
jFrame.setVisible(true);
}
}
import javax.swing.*;
import java.awt.*;
public class JFrameTest03 {
public static void main(String[] args) {
//实例化容器 - 布局管理器
JFrame jFrame = new JFrame("XX大学");
CardLayout cart = new CardLayout();
jFrame.setLayout(cart);
Container contentPane = jFrame.getContentPane();
contentPane.add(new JLabel("标签-A", JLabel.CENTER), "first");
contentPane.add(new JLabel("标签-B", JLabel.CENTER), "second");
contentPane.add(new JLabel("标签-C", JLabel.CENTER), "third");
contentPane.add(new JLabel("标签-D", JLabel.CENTER), "fourth");
jFrame.pack(); //根据组件自动调节窗体的大小
cart.show(contentPane, "third");
jFrame.setSize(500, 500);
jFrame.setLocation(400, 180);
jFrame.setBackground(Color.PINK);
jFrame.setVisible(true);
}
}
import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class KeyListenerTest {
public static void main(String[] args) {
JFrame jFrame = new JFrame("XX大学");
jFrame.setSize(500, 500);
jFrame.setLocation(400, 200);
JTextArea jTextArea = new JTextArea();
jTextArea.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
//键入某个键时使用
jTextArea.append("输入的内容是:" + e.getKeyChar() + "\n");
}
@Override
public void keyPressed(KeyEvent e) {
//键盘按下时使用
}
@Override
public void keyReleased(KeyEvent e) {
//键盘松开时使用
jTextArea.append("键盘" + KeyEvent.getKeyText(e.getKeyCode()) + "键松开了!\n");
}
});
JScrollPane jScrollPane = new JScrollPane(jTextArea);
jScrollPane.setBounds(5, 5, 300, 200);
jFrame.add(jScrollPane);
jFrame.setVisible(true);
}
}
import javax.swing.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class MouseListenerTest {
public static void main(String[] args) {
JFrame jFrame = new JFrame("XX大学");
jFrame.setSize(500, 500);
jFrame.setLocation(400, 200);
JTextArea jTextArea = new JTextArea();
jTextArea.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
//左键1、右键3、滚动2
jTextArea.append("鼠标单击" + e.getButton());
}
@Override
public void mousePressed(MouseEvent e) {
//按下
}
@Override
public void mouseReleased(MouseEvent e) {
//松开
}
@Override
public void mouseEntered(MouseEvent e) {
//鼠标进入组件时调用
jTextArea.append("鼠标进入组件\n");
}
@Override
public void mouseExited(MouseEvent e) {
//鼠标离开组件时调用
jTextArea.append("鼠标离开组件\n");
}
});
JScrollPane jScrollPane = new JScrollPane(jTextArea);
jScrollPane.setBounds(5, 5, 300, 200);
jFrame.add(jScrollPane);
jFrame.setVisible(true);
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ActionListenerTest {
public static void main(String[] args) {
JFrame jFrame = new JFrame("XX大学");
jFrame.setSize(500, 500);
jFrame.setLocation(400, 200);
JLabel jLabel = new JLabel();
Font font = new Font("Serief", Font.BOLD, 20);
jLabel.setFont(font);
jLabel.setText("等待用户操作");
JTextField jTextField = new JTextField(10);
JButton jButton = new JButton("显示");
jButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String text = jTextField.getText();
// System.out.println("输入框中的内容为:" + text);
jLabel.setText(text);
}
});
JPanel jPanel = new JPanel();
jPanel.add(jLabel);
jPanel.add(jTextField);
jPanel.add(jButton);
jFrame.add(jPanel);
jFrame.setVisible(true);
}
}
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class JMenuBarTest {
public static void main(String[] args) {
JFrame jFrame = new JFrame("XX大学");
jFrame.setSize(700, 500);
jFrame.setLocation(400, 200);
//定义菜单
JMenuBar jMenuBar = new JMenuBar();
JMenu jMenu1 = new JMenu("文件");
JMenu jMenu2 = new JMenu("设置");
JMenu jMenu3 = new JMenu("帮助");
JMenuItem jMenuItem1 = new JMenuItem("新建");
jMenuItem1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("菜单项:" + e.getActionCommand());
}
});
JMenuItem jMenuItem2 = new JMenuItem("打开");
JMenuItem jMenuItem3 = new JMenuItem("页面设置");
JMenuItem jMenuItem4 = new JMenuItem("系统设置");
jMenu1.add(jMenuItem1);
jMenu1.addSeparator();
jMenu1.add(jMenuItem2);
jMenu2.add(jMenuItem3);
jMenu2.addSeparator();
jMenu2.add(jMenuItem4);
jMenuBar.add(jMenu1);
jMenuBar.add(jMenu2);
jMenuBar.add(jMenu3);
jFrame.setJMenuBar(jMenuBar);
jFrame.setVisible(true);
}
}
登录界面
import javax.swing.*;
import java.awt.*;
public class RegisterFrame extends JFrame {
public RegisterFrame() {
this.setTitle("登录界面");
this.setSize(500, 400);
this.setLocation(600, 200);
init();
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public void init() {
this.setLayout(null);
Font font = new Font("宋体", Font.BOLD, 20);
JLabel employeeManagerSystem = new JLabel("员工管理系统", JLabel.CENTER);
employeeManagerSystem.setFont(font);
JLabel lbl_userName = new JLabel("用户名:", JLabel.CENTER);
lbl_userName.setFont(font);
JLabel lbl_password = new JLabel("密码:", JLabel.CENTER);
lbl_password.setFont(font);
JTextField txt_userName = new JTextField();
JPasswordField jpf_password = new JPasswordField();
JButton btn_register = new JButton("登录");
btn_register.setFont(font);
JButton btn_reset = new JButton("重置");
btn_reset.setFont(font);
JPanel jPanel1 = new JPanel();
jPanel1.setLayout(new GridLayout(1, 1, 5, 5));
jPanel1.setBounds(10, 10, 460, 40);
jPanel1.add(employeeManagerSystem);
JPanel jPanel2 = new JPanel();
jPanel2.setLayout(new GridLayout(3, 2, 5,20));
jPanel2.setBounds(10,70, 460, 250);
jPanel2.add(lbl_userName);
jPanel2.add(txt_userName);
jPanel2.add(lbl_password);
jPanel2.add(jpf_password);
jPanel2.add(btn_register);
jPanel2.add(btn_reset);
this.add(jPanel1);
this.add(jPanel2);
}
public static void main(String[] args) {
new RegisterFrame();
}
}