2

パネルがたくさんあるプロジェクトがあります。カードレイアウトパネルでカード(jpanel)を切り替える方法が1つあります(以下を参照)。これは、IDE(Netbeans)から実行した場合、およびコマンドプロンプト()からjarを実行した場合にすべて正常に機能しますjava -jar MyStuff.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();
}
4

1 に答える 1

3

(when I mouse over the components appear)このコードの場合は、

repaint();
revalidate();

revalidate();
repaint();
于 2012-04-07T14:51:18.153 に答える