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

zig*_*ggy 1 java user-interface swing jframe actionlistener

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

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

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

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

void shortCutBtn_actionPerformed(ActionEvent e) {
   propertyChangeListeners.firePropertyChange("selectedShortCut", previousShortCutSel, currentShortCutSel);
   mainPanel.updateUI();
  }
Run Code Online (Sandbox Code Playgroud)

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

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

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

tra*_*god 9

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

ImageIcon image = getImage(index);
imageLabel.setIcon(image);
Run Code Online (Sandbox Code Playgroud)

图片