JTextField限制字符

时间:2015-04-11 07:45:53

标签: java mysql swing jtextfield

我在连接到MySQL数据库的JFrame上有一个以Reservation ID命名的JTextField。 每当我在数据库中添加新乘客时,在我输入乘客姓名和其他文本字段中的其他详细信息之前,JTextField应根据自动增量自动为JTextField生成新的预留ID。

我的代码:

    resId = new JTextField();
    try{
        rs = stt.executeQuery("select ReservID as last_id from passenger");
        int lastid = rs.getInt("last_id");
        lastid++;
        resId.setText(String.valueOf(last_id));

    }catch(Exception e){
        JOptionPane.showMessageDialog(null, "cannot retrieve");
    }
    resId.setBounds(432, 178, 126, 22);
    frame.getContentPane().add(resId);
    resId.setColumns(10);

我的专栏RevervID的最后一行的值为003.当我运行表单时,它应该在预订ID文本字段中显示 004 如何实现?请帮忙.. 感谢

下面图片链接中的texfield http://i.imgbox.com/wcf9KicU.png

1 个答案:

答案 0 :(得分:0)

首先使用数据库查询找出最大ID - > Select max(id) from mytable

将最大ID存储在变量中> int max_id= max_id_from_database;

增加max_id一个> max_id++;

将max_id值添加到您的JTextField-> myJTextField.setText("" + max_id);

编辑:根据您的代码(只需在ReservID之前添加max并在if条件中添加rs.next()并且您的数据库中的ReservID必须为整数)。

 resId = new JTextField();
    try{
        rs = stt.executeQuery("select max(ReservID) as last_id from passenger");
        if(rs.next()){
        int lastid = rs.getInt("last_id");
        lastid++;
        resId.setText(String.valueOf(last_id));
        }

    }catch(Exception e){
        JOptionPane.showMessageDialog(null, "cannot retrieve");
    }