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

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

import javax.swing.*;
public class swing1 {
    JFrame jf;
    JPanel jp;
    JLabel jl,jl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8;
    JTextField jt,jt1,jt2,jt3,jt4,jt5,jt6;
    JButton jb,jb1;
    public swing1(){
        jf =new JFrame();
        jp =new JPanel(new FlowLayout(1,10,30));
        jl =new JLabel("闹钟设置");
        jl1 =new JLabel("当前时间:");
        jl2 =new JLabel("闹钟时间:");
        jl3 =new JLabel("时");
        jl4 =new JLabel("分");
        jl5 =new JLabel("秒");
        jl6 =new JLabel("时");
        jl7 =new JLabel("分");
        jl8 =new JLabel("秒");
        jt =new JTextField(5);
        jt1 =new JTextField(5);
        jt2 =new JTextField(5);
        jt3 =new JTextField(5);
        jt4 =new JTextField(5);
        jt5 =new JTextField(5);
        jb =new JButton("开");
        jb1 =new JButton("关");
        jp.add(jl1);
        jp.add(jt2);
        jp.add(jl3);
        jp.add(jt1);
        jp.add(jl4);
        jp.add(jt);
        jp.add(jl5);
        jp.add(jl2);
        jp.add(jt4);
        jp.add(jl6);
        jp.add(jt5);
        jp.add(jl7);
        jp.add(jt3);
        jp.add(jl8);
        jp.add(jl);
        jp.add(jb);
        jp.add(jb1);
        jf.add(jp);
        jf.setSize(400,300);
        jf.setVisible(true);
        
        
    }
    public static void main(String[] args){
        new swing1();
        
    }
      
}

package day38;
import java.awt.*;
import javax.swing.*;
public class swing2 {
    JPanel jp;
    JLabel jl,jl2;
    JFrame jf;
    JButton jb,jb1;
    JTextField jt,jt1;
    public swing2(){
        jf =new JFrame();
        jp =new JPanel(new GridLayout(5,5,5,5) );
        jl =new JLabel("用户名:");
        jl2 =new JLabel("口令:");
        jt =new JTextField(5);
        jt1 =new JTextField(5);
        jb =new JButton("确认");
        jb1=new JButton("取消");
        jp.add(jl);
        jp.add(jt);
        jp.add(jl2);
        jp.add(jt1);
        jp.add(jb);
        jp.add(jb1);
        jf.add(jp);
        jf.setSize(400,300);
        jf.setVisible(true);
        
    }
    public static void main(String[] args){
        new swing2();
    }

}

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

在本次上机实践中,遇到了很多问题。在第一个程序中 ——1:如果只定义一个标签或一个文本框想达到重复使用的目的,但是重复使用一个时,会导致只有最后一次标签或文本框才会显示。解决办法:需要定义多个文本框或标签,要用几个就需要定义几个。2:初次运行时,标签,文本框,按钮的顺序与预期不符。解决办法:标签,文本框,按钮的顺序要按照程序显示的位置按照顺序排列,不可以打乱顺序。3:初次运行时,没有出现任何组件。解决办法:可能是没有把面板添加到窗口上,也有可能是没有调好FlowYayout();流布局中的参数,第一个参数为左对齐或右对齐;第二个参数为行间距;第三个为列间距,并且以像素为单位。需要根据窗口的大小来确定。在第二个程序中——1:初次运行也没有任何组件。解决办法:跟第一个程序差不多,要注意的是GridYayout();中的第一个参数为行数,第二个参数为列数,第三个参数为行间距,第四个参数为列间距。2:因为在eclipse中布局形式默认的为流布局,所以在使用Grid布局时,要new一个GridYayout对象。                收获:通过本次学习和上机实践,对窗口以及有关组件的使用更加熟悉,对布局中参数的数量以及意义有了一定的了解,会正确使用FiowYayout、GirdYayout两种布局形式。对窗口的编辑有了一定的经验,为以后复杂窗口的创建奠定了基础。

原文地址:https://www.cnblogs.com/Lwl2019/p/10877881.html