私はとを持っています、JMenuItem
これActionListener
でActionListener
私は自分にを追加したいと思いGridBagLayout
ますframe
(コンテンツペインがまだ追加されている場合とされていない場合があります-テスト目的では追加されていません)そしてそれに追加components
しframe
ます。それ自体のデザインですが、私はそれを上からframe works
やりたいと思っています。ここで問題が発生しています。の内側からは表示されません。ALのクラスの別のメソッドから同じコードを実行しようとしましたが、どちらも機能しませんでした。trigger
ActionListener
JMenuItem
ActionListener
ActionListener
完全にコメントアウトすると、JLabel
テストしたいGBL
のは正しい場所に追加され、システムはこことここにprints
私のdebug
行が追加されます2。構文エラーは。によって検出されません。これにより、目的の結果が得られ、ラベルが印刷されます。(ALを完全にコメントアウトするとどうなるかについては、以下を参照してください。)問題のコードのスニペット(フレームは私の)は次のとおりです。compiler
JFrame
// (frame created, menus added, etc.) ...
JMenuItem vPoke1Item = new JMenuItem("Pokemon 1");
vPoke1Item.setActionCommand("poke1");
viewMenu.add(vPoke1Item);
//Setup GBL to view stats for Pokemon 1
vPoke1Item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
// debug output
System.out.println("here");
// Set up the content pane
frame.getContentPane().removeAll();
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
Container pane = frame.getContentPane();
pane.setLayout(gbl);
// Make a StatCalcObject (all my labels/fields are already initialized)
StatCalc1 sc1 = new StatCalc1();
// Add it to pane
gbc.gridx = 0;gbc.gridy = 0;gbl.setConstraints(sc1.speciesL, gbc);
pane.add(sc1.speciesL);
frame.revalidate();
frame.repaint();
// debug output
System.out.println("here2");
}
});
// (etc.)
このコードを実行すると、デバッグ行「here」と「here2」が出力されるので、ActionListenerが正常に実行されていることがわかります。しかし、ラベルは表示されていません。それでも、コンパイラによって検出された構文エラーはありません。だから私はここで頭をかいている。私は何が間違っているのですか?このコードスニペットが問題を理解するのに十分であることを願っていますが、完全なコードが必要な場合は、私が提供できます。