java GUI开发中关于卡片式布局详细步骤讲解

1. JFrame frame = new JFrame(“调课”);//首先要申明一个JFrame。
2. JPanel p1 = new JPanel();//创建JPande面板
3. JPanel cards = new JPanel(new CardLayout());//创建卡片式布局
4. JLabel fronts = new JLabel(“课程:”);
 p1.add(fronts);//添加JLabel标签
 JTextField front = new JTextField(“1-1”, 20);
 p1.add(front);//添加JTextField标签5. cards.add(p1,“card”);//向卡片式布局面板中添加JPande面板
6. CardLayout layout = (CardLayout) cards.getLayout();//创建CardLayout布局对象
7. layout.show(cards,“card”);//调用show()方法显示JPanel面板
8. frame.add(cards);//添加进入JFrame容器中
9. frame.setBounds(300, 200, 400, 200);//设置大小
 frame.setVisible(true);//此窗口是否可见
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//是否可以关闭

部分残缺代码,但是可以实现功能

{
        JFrame frame = new JFrame("调课");
        JPanel p1 = new JPanel();//创建JPande面板
        JPanel cards = new JPanel(new CardLayout());//创建卡片式布局

        JLabel title = new JLabel("请输入合法的参数:x为第几周,y为第几节课---(如星期二的第一节课就是:2-1)");
        p1.add(title);
        JLabel fronts = new JLabel("需要被调整的课程:");
        p1.add(fronts);
        JTextField front = new JTextField("1-1", 20);
        p1.add(front);
        JLabel rears = new JLabel("需要调整的目标位置:");
        p1.add(rears);
        JTextField rear = new JTextField("2-2", 20);
        p1.add(rear);
        JButton tj = new JButton("提交");
        p1.add(tj);
        tj.addActionListener(  //  登录按钮事件处理
                new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent evt) {

                        String sFront = front.getText();//  得到密码
                        String sRear = rear.getText();//得到名字
                        //创建queryRunner对象
                        QueryRunner queryRunner = new QueryRunner();
                        //查询所用教师与教师的对应情况
                        String sql = "select * from c_t";
                        Object[] params = {};
                        List<C_T> list = null;

                        //修改教师的上课时间
                        String sql1 = "update c_t set teajobtime = ? where teaid = ? and teajobtime = ?";
                        Object[] params1 = {sRear, tea.getTeaid(), sFront};

                        try {
                            list = queryRunner.query(JDBCTools.getConnection(), sql, new BeanListHandler<>
                                    (C_T.class), params);

                            //判断所修改的课程与修改的课程是否存在或时被占用
                            //1,判断此时间段在(该班级)是否已经被其他老师占用
                            //2,判断输入的调整课程是否时老师自己所存在的
                            int run = 0;
                            String ctid = "0";
                            //1找出该教师的所有排课时间,2挑选出他要调整的排课时间,3根据前两个条件锁定到具体那个班级
                            for (C_T ct : list) {
                                if (ct.getTeaid().equals(tea.getTeaid())) {
                                    if (ct.getTeajobtime().equals(sFront)) {
                                        ctid = ct.getClassid();
                                    }
                                }
                            }
                            //判断班级变量是否已经被赋值
                            if (!ctid.equals("0")) {
                                for (C_T ct : list) {
                                    if (!ct.getClassid().equals(ctid)) {
                                        if (ct.getTeajobtime().equals(sRear)) {//判断调整后课程时间是否与其他老师的课程时间冲突
                                            //判断登录验证是否通过,通过的话就进行跳转
                                            //今日修改到此处,现在刚好判断完所用的条件,错误的话就重新调查此方法,成功的话还没有写,成功的话就执行sql语句了
                                            TeacherManageFrame team = new TeacherManageFrame();
                                            frame.dispose();
                                            team.Tk(tea);
                                            break;
                                        }
                                        System.out.println("调课成功");
                                    }
                                }
                            } else {
                                System.out.println("调课失败");
                            }
                            //执行修改语句
                            run = queryRunner.update(JDBCTools.getConnection(), sql1, params1);//0为没有执行成功
                            if (run == 0) {
                                JOptionPane.showMessageDialog(null, "修改失败");
                            } else {
                                JOptionPane.showMessageDialog(null, "修改成功");
                                TeacherManageFrame team = new TeacherManageFrame();
                                frame.dispose();
                                team.viw(tea);
                            }

                        } catch (SQLException e) {
                            e.printStackTrace();
                        }

/*
                        Students stu = new Students();
                        String message = "账号密码错误";
                       //通过便利数据库里面的数据来验证用户户籍登录账号对错
                        for (Students ll : list) {
                            if (ll.getStuname().equals(names) && pw.equals("123")) {
                                message = " 您的用户名: " + names + "      点击确认立即登录";  //  消息字符串
                                stu = ll;
                                break;
                            }
                        }
                        JOptionPane.showMessageDialog(null, message);  //  显示消息
                        //判断登录验证是否通过,通过的话就进行跳转
                        if (!message.equals("账号密码错误")) {
                            frame.dispose();
                            StudentsManageFrame tea = new StudentsManageFrame();
                            try {
                                tea.Main(stu);
                            } catch (SQLException e) {
                                e.printStackTrace();
                            }
                        }*/
                    }
                });
        cards.add(p1,"card");//向卡片式布局面板中添加JPande面板
        CardLayout layout = (CardLayout) cards.getLayout();//创建CardLayout布局对象
        layout.show(cards,"card");//调用show()方法显示JPanel面板
        frame.add(cards);//添加进入JFrame容器中
        frame.setBounds(300, 200, 400, 200);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }