2011-07-16 11 views
0

私はGUIを使って木を説明しています。私が拡張したJPanelは、JPanelを構築したときに作成したJLabelを示していません。イムそれをテストコードここれるスイングJlabelが表示されない

class NodePanel extends JPanel { 
    private JLabel content; 

    NodePanel() { 
     this.setLayout(new FlowLayout()); 
     this.setBorder(new LineBorder(Color.black)); 
    } 

    NodePanel(String str) { 
     this.setLayout(new FlowLayout()); 
     this.setBorder(new LineBorder(Color.black)); 

     content = new JLabel(str); 
     this.add(content); 
    } 
} 

と::ここに私のJPanelのコードである

NodePanel n1 = new NodePanel(Integer.toString(root.getWeight())); 

HuffmanGUI.tp.add(n1); 
n1.setBounds((tpWidth/2) - (panelDim/2), vertSpace, panelDim, panelDim); 

このコードはアクションリスナーによって呼び出されたメソッド内で、私はそれが動作します知っているが、パネルショー理由それはどこにあるのだろうが、Jlabelはその中には表示されない。なぜこれができますか?

答えて

1

コードがどのように使用されているかのコンテキストがわからないため、わかりにくいです。ヌルレイアウトとレイアウトマネージャを混在させているようです。

表示可能なGUIにパネルを追加していて、ラベルにサイズがないようにパネルでrevalidate()を使用していないと思われるかもしれません。

さらにヘルプが必要な場合は、問題を示すSSCCEを投稿してください。

+0

あなたはそれを呼び出しました。 revalidate()を呼び出さないことが問題でした。 – Bill

関連する問題