我正在浏览一个使用Swing的遗留应用程序,我正在努力弄清楚用户点击按钮时屏幕的变化情况。我无法弄清楚这一点的原因之一是因为这是我第一次使用Swing。我读了一本书并得到了基础知识,但仍在苦苦挣扎。
基本上,我正在看的屏幕有一个JSplitPane,左边有一些快捷按钮,右边有一个空窗格。当我单击按钮时,右侧窗格将根据按下的按钮填充不同的屏幕。
通过代码,我希望某个地方会有一些调用setVisible()方法的东西,具体取决于按下哪个按钮。
每个快捷按钮的actionPerformed方法如下所示:
void shortCutBtn_actionPerformed(ActionEvent e) {
propertyChangeListeners.firePropertyChange("selectedShortCut", previousShortCutSel, currentShortCutSel);
mainPanel.updateUI();
}
我已经完成了大部分代码并得出结论,上面的代码是导致帧切换的原因,但我不明白这是怎么回事。
每个屏幕都由数字常量标识。在上面的代码示例中,previousShortCutSel和previousShortCutSel引用表示各个屏幕的数值屏幕。
我试图查找updateUI()如何工作的文档,但我迷路了。以上是如何使用新屏幕更新JSplitPanel右侧面板的内容?
答案 0 :(得分:9)
这不适合updateUI()
,“将UI属性重置为当前外观的值。”由于示例本身可能不可靠,请考虑研究另一个。例如,GoogleOlympiad
使用(缓存)图像设置标签的图标。
ImageIcon image = getImage(index);
imageLabel.setIcon(image);
答案 1 :(得分:3)
根据ziggy的评论(很高兴帮助)
查看代码中似乎添加的PropertyChangeListener
。特别是propertyChange(PropertyChangeEvent e)
方法是改变内容的代码。
+1始终以垃圾桶方式提供好的示例/建议