java - 使用 Thread.sleep() 框架上出现白屏

标签 java swing jdbc actionlistener thread-sleep

我有一个带有按钮的 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/

相关文章:

java - 我如何找到 JAVA_OPTS 数据的存储位置?

java - 创建 ECDSA DER 编码签名

java - Spring Boot 2(Spring Batch 应用程序)无法启动。失败并出现 BeanCreationException : Error creating bean with name 'h2Console'

java - 调用 SQLException.getMessage() 时出现 RuntimeException (DB2)

java - java 中 log4j2 jdbc 附加程序的自定义日志记录整数值

java - 在表中修改列 (CSS)

java - 使用从 TextField 获取的相应大小绘制一个矩形

java - 使用 java.util.Scanner 解析基本类型

java - Swing 组件不显示泰文字符

mysql - 从 MySQL 字节数组获取插入的文件到实际文件内容