Swing - 使用UpdateUI更改面板的内容

时间:2012-10-14 18:02:17

标签: java swing user-interface jframe actionlistener

我正在浏览一个使用Swing的遗留应用程序,我正在努力弄清楚用户点击按钮时屏幕的变化情况。我无法弄清楚这一点的原因之一是因为这是我第一次使用Swing。我读了一本书并得到了基础知识,但仍在苦苦挣扎。

基本上,我正在看的屏幕有一个JSplitPane,左边有一些快捷按钮,右边有一个空窗格。当我单击按钮时,右侧窗格将根据按下的按钮填充不同的屏幕。

通过代码,我希望某个地方会有一些调用setVisible()方法的东西,具体取决于按下哪个按钮。

每个快捷按钮的actionPerformed方法如下所示:

void shortCutBtn_actionPerformed(ActionEvent e) {
   propertyChangeListeners.firePropertyChange("selectedShortCut", previousShortCutSel, currentShortCutSel);
   mainPanel.updateUI();
  }

我已经完成了大部分代码并得出结论,上面的代码是导致帧切换的原因,但我不明白这是怎么回事。

每个屏幕都由数字常量标识。在上面的代码示例中,previousShortCutSel和previousShortCutSel引用表示各个屏幕的数值屏幕。

我试图查找updateUI()如何工作的文档,但我迷路了。以上是如何使用新屏幕更新JSplitPanel右侧面板的内容?

2 个答案:

答案 0 :(得分:9)

这不适合updateUI(),“将UI属性重置为当前外观的值。”由于示例本身可能不可靠,请考虑研究另一个。例如,GoogleOlympiad使用(缓存)图像设置标签的图标。

ImageIcon image = getImage(index);
imageLabel.setIcon(image);

image

答案 1 :(得分:3)

根据ziggy的评论(很高兴帮助)

查看代码中似乎添加的PropertyChangeListener。特别是propertyChange(PropertyChangeEvent e)方法是改变内容的代码。

+1始终以垃圾桶方式提供好的示例/建议