我使用 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/