我有一个带有按钮的 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 是提到的第二个框架。
有人可以帮助我吗?
最佳答案
切勿在 Swing 事件线程上调用 Thread.sleep(...)
。这会使被调用的线程进入休眠状态,并且由于事件线程负责所有 Swing 图形和用户交互,因此您的 GUI 将进入休眠状态。请改用 Swing 计时器。
此外,您还需要锻炼自己的搜索技能,因为此问题在此网站上经常被问到,稍加搜索即可找到正确的解决方案,而无需在此处添加另一个相同的问题。
顺便说一句,您不会希望显示第二个 JFrame,因为应用程序通常只有一个 JFrame。相反,可以使用 CardLayout 交换 View ,或者使用 JDialog 作为依赖对话框窗口。
关于java - 使用 Thread.sleep() 框架上出现白屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24392916/