【发布时间】:2012-04-20 18:36:44
【问题描述】:
我有一个包含很多面板的项目。我有一种方法可以在卡片布局面板中切换卡片(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();
}
【问题讨论】:
-
很好,如果用SSCCE编辑您的问题,这可能是个好问题@
-
此SSCCE using
CardLayout无需调用repaint()、revalidate()或validate()即可工作。我只能得出结论,您的代码非常错误。但我会为您的 SSCCE 保留进一步的评论。 -
你是对的,我不使用SSCCE是错误的。我只是没有时间,几个小时后就没关系了。我将只使用 bat 文件来运行它。感谢您的帮助。
-
当然你在 EDT 上调用这个方法?
-
是的,有一个启动方法的按钮。
标签: java swing jar cardlayout