当前位置: 首页 > 知识库问答 >
问题:

当我运行.jar时,除非在命令提示符下,否则Swing不会重新绘制

洪雨石
2023-03-14

我有一个有很多面板的项目。我有一个方法可以在卡片布局面板中切换卡片(jpanel)(见下文)。当我从IDE(Netbeans)运行它时,以及当我从命令提示符(java-jar mystuff.jar)运行jar时,这一切都很正常。但是,当我双击Jar时,卡片会发生变化,但不会repaint产生不希望的结果(当我将鼠标放在出现的组件上时)。如果我再次通过单击按钮调用该方法,它将应用。我需要帮助,请立即:)谢谢!

/**
* Shows a panel by the given panel name (in the cardPanel)
*
* @param panelName
*/
private void showPanel(String panelName) {
  if (panelName.equals("revenueSources")) {
    backButtonIcon.setVisible(false);
  } else {
    backButtonIcon.setVisible(true);
  }
  currentPanelName = panelName;
  ((CardLayout) cardPanel.getLayout()).show(cardPanel, panelName);
  repaint();
  revalidate();
}

共有1个答案

弓华茂
2023-03-14

(当我将鼠标放在出现的组件上时)此代码仅交换自

repaint();
revalidate();

revalidate();
repaint();
 类似资料: