package win; import java.awt.Color; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class work implements ActionListener { JFrame f; JPanel p,p1; JButton b,b1; JLabel l,l1,l2; JTextField t; JPasswordField s; public work() { f = new JFrame("QQ"); p = new JPanel(); p1 = new JPanel(); b = new JButton("注册"); b1 = new JButton("登录"); b1.setForeground(Color.red); t = new JTextField(); s = new JPasswordField(); t.setBounds(110,82,200,28); s.setBounds(110,140,200,28); p.setLayout( null ); p1.setLayout(null); b.setBounds(90, 210, 80, 25); b1.setBounds(240, 210, 80, 25); b.addActionListener(this); b1.addActionListener(this); l = new JLabel("账号"); l1 = new JLabel("密码"); l2 = new JLabel("恭喜你,登录成功!"); l2.setBounds(130, 15, 150, 60); l.setBounds(75, 80, 80, 30); l1.setBounds(75, 140, 80, 30); p.add(b); p.add(b1); p.add(l); p.add(l1); p.add(t); p.add(s); p.setBackground(new Color(240,248,255)); p1.add(l2); f.add(p); f.setLocation(430,198); f.setVisible(true); f.setSize(435, 324); b1.setFont(new Font("仿宋", Font.BOLD, 13)); b.setFont(new Font("仿宋", Font.BOLD, 13)); } public static void main(String args[]) { new work(); } public void actionPerformed(ActionEvent e) { f.setVisible(false); //设置当前窗体不可见 JFrame f1 = new JFrame("QQ");//创建一个新的窗体 f1.setVisible(true); f1.add(p1); p1.add(l2); f1.setLocation(430,198); f1.setSize(450,180); p1.setBackground(new Color(230,230,250)); } }
总结:
在编写窗口切换的过程中我一开始并不知道应该如何实现窗口的切换,还有就是如何在点击按钮后使老窗口不可见,后来在不断的调试中,发现在事件处理时将原来的窗口不可见之后再新建一个窗口是一个可行的方法。我原本是打算模仿QQ界面的操作,但是QQ的程序实现比较复杂,这个程序也只是一个非常简易的界面,实现的功能也非常有限。还有我遇到的问题就是如何点击不同的按钮可以实现不同的功能以及如何设置qq界面的背景图等等。窗口切换只是其中的一个功能,还有很多功能需要不断的加强与实现。
我在写这个程序的过程中最大的收获就是程序功能应该是在不断的实践中实现的,在这编写程序的过程中有很多东西都是不熟悉以及不熟练的,我在不断的练习当中越来越熟练,并且在不断的学习当中改进。