【发布时间】:2018-07-17 07:53:22
【问题描述】:
我想创建一个简单的预订应用程序,例如当您想在线预订电影票时,除了这是一个非常简化的版本。
我有一个带有 8 个切换按钮和 1 个按钮的班级名称预订,用户可以输入他们想在另一个班级预订的座位号,比如说 4。 在预订时,用户选择了 4 个座位后,切换按钮的其余部分将被禁用,以防止用户选择更多座位。然后用户将单击保存按钮,然后将数据输入到数据库中。下次当另一个用户打开预订时,所有切换按钮都将重新启用,显然之前的用户已提前预订的 4 个座位除外。 到目前为止一切正常,除了我加粗的部分。
这是我的代码:
private static final JToggleButton[] btn = new JToggleButton[8];
private int totalrow, a;
java.sql.Connection connection = null;
Statement statement4 = null;
ResultSet resultSet = null;
private void formWindowActivated(java.awt.event.WindowEvent evt) { // This is where i load the information that has been saved in the database before.
try {
connection = DriverManager.getConnection("jdbc:derby:
statement4 = (Statement) connection.createStatement();
resultSet = statement4.executeQuery("SELECT reservationid, seatno, validator FROM reservation WHERE reservationid = '" + time.id + "'");
String seatno, validator, rsid, id;
btn[0] = seat1;
btn[1] = seat2;
btn[2] = seat3;
btn[3] = seat4;
btn[4] = seat5;
btn[5] = seat6;
btn[6] = seat7;
btn[7] = seat8;
int i = 0;
while(resultSet.next()){
seatno = resultSet.getString("seatno");
validator = resultSet.getString("validator");
rsid = resultSet.getString("reservationid");
if(seatno.equals(btn[i].getText()) && validator.equals("reserved")){ //checking if seat i is reserved
btn[i].setSelected(true);
}
else{
btn[i].setSelected(false);
}
i++;
}
} catch (SQLException ex) {
Logger.getLogger(seat.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void actionPerformed(ActionEvent e) { // This actionlistener is used to count, if User has choose 4 seats, the code will disable the rest of the button
try {
connection = DriverManager.getConnection("jdbc:derby://localhost:1527/Project","root","root");
statement = (Statement) connection.createStatement();
btn[0] = seat1;
btn[1] = seat2;
btn[2] = seat3;
btn[3] = seat4;
btn[4] = seat5;
btn[5] = seat6;
btn[6] = seat7;
btn[7] = seat8;
a = 0;
for(JToggleButton btns : btn){
if (btns.isSelected()){
a++;
System.out.println(a);
if (! btns.isSelected()){
System.out.println(a);
a--;
}
}
}
for(JToggleButton btns : btn){
if (a >= Integer.parseInt(BookingUI.passenger)){ // This is number of Passenger taken from another class. In this case is 4.
if(! btns.isSelected()){
btns.setEnabled(false);
}
}
else{
btns.setEnabled(true);
}
}
} catch (SQLException ex) {
Logger.getLogger(seat.class.getName()).log(Level.SEVERE, null, ex);
}
}
关于我的标题,根据我当前的代码和逻辑,可能无法重新启用切换按钮。因此,更好的方法可能是使用另一种逻辑来禁用切换按钮。
在image 中,座位 1、4、5、8 由用户选择。其余的按钮都被禁用了
【问题讨论】:
-
如果我没有解释清楚请告诉我
-
您能否提供您构建的用户界面的屏幕截图以便更好地理解
-
是的,你能告诉我如何在评论部分/我的帖子中插入屏幕截图。以前没做过
-
这很容易。只需单击以编辑您自己的问题,在编辑窗口中,您将看到几个用于编辑选项的按钮,例如螺栓、下划线、插入链接和插入图像的图标。当你点击它时,你会得到一个弹出窗口来上传图片:)
-
是的。还包括一些信息,我想知道为什么它没有显示出来
标签: java