课后练习----实现窗口的切换

时间:2023-02-14 13:16:04

1、运用事件处理相关知识,完成两个窗口之间的切换,例如:登陆窗口------》注册窗口

2、对本次作业进行总结,在编程过程中遇到哪些问题,如何解决,有哪些收获?
源代码:

package bbb;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class myframe implements ActionListener {
   JFrame f1,f2;
   JPanel p1,p2;
   JButton b1,b2;
   JLabel l1,l2,l3;
   JTextField t1,t2;//文本框
   public myframe() {
       f1=new JFrame("LYX");
       f2=new JFrame("LYX");
       p1=new JPanel();
       p2=new JPanel();
       p1.setLayout(null);//绝对布局
       p2.setLayout(null);
       b1=new JButton("注册");
       b2=new JButton("登录");
       l1=new JLabel("账户"); 
       l1.setFont(new Font("楷体",Font.BOLD,18));//自定义标签字体
       l2=new JLabel("密码");
       l2.setFont(new Font("楷体",Font.BOLD,18));
       l3=new JLabel("登录成功!");
       l3.setForeground(Color.red);
       t1=new JTextField();
       t2=new JTextField();
       b1.addActionListener(this);
       b2.addActionListener(this);
       f1.add(p1);
       p1.add(b1);
       p1.add(b2);
       p1.add(l1);
       p1.add(l2);
       p1.add(t1);
       p1.add(t2);
       b1.setBounds(150,150,60,40);
       b2.setBounds(270,150,60,40);
       l1.setBounds(80,50,40,30);
       l2.setBounds(80,100,40,30);
       t1.setBounds(120,50,300,30);
       t2.setBounds(120,100,300,30);
       f1.setVisible(true);
       f1.setSize(500,300);
   }
    public static void main(String[] args) {
         new myframe();
}
    public void actionPerformed(ActionEvent e) {
        f1.setVisible(false);
        p2.setBackground(new Color(211,252,4));//自定义面板颜色
        f2.setVisible(true); 
        f2.add(p2);
        p2.add(l3);
        l3.setBounds(225,75,150,60);
        f2.setLocation(600,0);
        f2.setSize(500,300);
    }
}

运行结果:
课后练习----实现窗口的切换
课后练习----实现窗口的切换

心得体会:
窗口的学习是循序渐进的,每次都觉得特别新颖、好玩、有成就感,这次编程中为了美观,设计组件、窗口具体的位置是个麻烦的地方,还有程序的部分地方都是相似的,所以我选择了复制粘贴,但忘记改组件名称了,花了很长时间才发现问题。编程过程中也总会遗留一些细节,希望今后真正地学懂每个知识点,而不是死记硬背@-@