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