java GUI开发中关于卡片式布局详细步骤讲解
- JFrame frame = new JFrame(“调课”);//首先要申明一个JFrame。
- JPanel p1 = new JPanel();//创建JPande面板
- JPanel cards = new JPanel(new CardLayout());//创建卡片式布局
- JLabel fronts = new JLabel(“课程:”);
p1.add(fronts);//添加JLabel标签
JTextField front = new JTextField(“1-1”, 20);
p1.add(front);//添加JTextField标签 - 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);//是否可以关闭
部分残缺代码,但是可以实现功能
{
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);
}