我有一个带按钮的JFrame,当我按下它时会显示另一帧,在第二帧上更改一些内容,然后在3秒后关闭它。我试过这个但是当出现第二帧时,它是白色的。
private void smallButtonActionPerformed(java.awt.event.ActionEvent evt) {
try {
NormalCarEntry entryTicket = new NormalCarEntry();
entryTicket.setVisible(true);
java.util.Date date = new java.util.Date();
SimpleDateFormat formatTime = new SimpleDateFormat("HH:mm:ss");
String entryTime = formatTime.format(date);
String query = "SELECT `ticket` FROM `" + DB + "` ORDER BY `ticket` DESC LIMIT 1";
st = connection.createStatement();
ResultSet res = st.executeQuery(query);
while (res.next())
entryTicket.entryTicketLabel.setText(res.getInt("ticket") + "");
entryTicket.entryDate.setText(formatDate2.format(date));
entryTicket.entryHour.setText(entryTime);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
entryTicket.setVisible(false);
} catch (SQLException ex) {
Logger.getLogger(mainView.class.getName()).log(Level.SEVERE, null, ex);
}
}
NormalCarEntry是提到的第二帧。
任何人都可以帮助我?
答案 0 :(得分:1)
永远不要在Swing事件线程上调用Thread.sleep(...)
。这会使被调用的线程进入休眠状态,并且由于事件线程负责所有Swing图形和用户交互,因此GUI将进入休眠状态。改为使用Swing Timer。
此外,您将需要处理您的搜索技巧,因为这个问题经常在本网站上提出,一点点搜索将带您找到正确的解决方案,而无需在此处添加另一个相同的问题。
另外,您不希望显示第二个JFrame,因为应用程序通常只有一个JFrame。而是使用CardLayout交换视图或使用JDialog作为依赖对话框窗口。