java - 在 JPanel 屏幕上失去焦点后,屏幕不显示内容

原文 标签 java swing jpanel jtabbedpane

我使用 JTabbedPane 和 JPanel 在一个选项卡上显示 JTable,在另一个选项卡上显示文本、下拉菜单和 jbutton。

第一次它工作正常,但如果我最小化或切换屏幕到其他应用程序,然后返回到我的应用程序,它会显示正确的数据,但 JTabbedPane 中的选项卡更改存在严重问题。现在选项卡屏幕变为蓝色并且不显示数据。(我希望数据在那里,但它不会重新绘制或刷新完整的窗口)。

现在蓝屏我执行相同的程序并更改 JTabbedPane 中的选项卡,它显示正确的数据。

我使用了重绘,但它不起作用。

正确刷新窗口或选项卡所需的帮助。

最佳答案

确保您正在通过 de Event Dispatch Thread 对 Swing 组件进行所有修改(包括在 de 模型中更改数据或手动切换选项卡)。 Swing 允许开发人员忽略线程安全,但这会产生未定义的行为。

下面是一个修改 JComboBox 模型内容的示例。

final DefaultComboBoxModel model = (DefaultComboBoxModel) comboBox.getModel();
EventQueue.invokeLater(new Runnable(){
    public void run(){
        // Add all Swing component modification code here..
        // The line of code below is but an example of what you could do
        model.addElement("String element");
    }
});

关于java - 在 JPanel 屏幕上失去焦点后,屏幕不显示内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10452536/

相关文章:

java - Spring Mail 集成 - 如何将 org.springframework.messaging.Message 转换为 javax.mail.internet.MimeMessage

java - dbUnit:增量ID生成问题

java - 我如何要求用户首次选择启动设置?

java - 如何获得从JComboBox中选择的项目的索引?

java - 编写自定义ListCellRenderer

java - PaintComponent 是如何工作的?

java - 图像无法正确显示在MouseEvent中

java - 我的JPanel实例是否被丢弃(为什么?)

java - 如何在 Java 中为文件名(不是内容)指定一个字符集?

java - 使用流布局初始化多个JPanel(作业)