java - 在 swing 中失去对 JPanel 屏幕的关注后,屏幕不显示内容

标签 java swing jpanel jtabbedpane

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

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

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

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

正确刷新窗口或标签需要帮助。

最佳答案

确保您正在通过事件调度线程对 Swing 组件进行所有修改(包括更改模型中的数据或手动切换选项卡)。 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 - 在 swing 中失去对 JPanel 屏幕的关注后,屏幕不显示内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10452536/

相关文章:

java - Spring Boot 不再包含 ElasticSearch Rest HealthIndicatorAutoConfiguration

java - 如何更改 Java BasicHTML View 中使用的粗体/斜体字体

java - 像 Swing 中的小部件一样的命令行

java - 为什么我的 JPanel 不显示?

java - 如何正确配置属性文件?

java - 如何将 ArrayList<Integer[]> 的元素传递给仅采用数组的方法?

java - Swing 图形用户界面改进

java - java中随机颜色填充三角形

java - 当最小化或调整 JFrame 大小时,由线程调整大小的 JPanel 会获取其默认大小

Java - 函数式浮点计算