1

私が使う:

BorderLayout a = new BorderLayout();
setLayout(a);
JPanel b = new JPanel();

今、私が使用する場合:

JButton c = new JButton("Press");
b.add(c);
add("East", b);

私のJButtonは正常に表示されます。しかし、代わりに言うと:

JLabel c = new JLabel();
c.setBackground(Color.BLACK);
c.setOpaque(true);
add("East", b);

私の黒いJLabelは表示されません。なぜこれが起こるのですか?どうもありがとう

4

1 に答える 1

3
JLabel c = new JLabel();

あなたは空のラベルを持っているので、(0, 0) の場合のサイズを推測していて、ペイントするものは何もありません。テキストを追加してみてください。

また、以下は誤りです。

add("East", b); 

これは、制約を追加する古い方法です。ハードコーディングされた値を使用しないでください。制約は 2 番目に指定されます。

add(b, BorderLayout.???);

Using a Border Layout適切な制約については、BorderLayout API または Swing チュートリアルを参照してください。

于 2013-08-12T20:36:10.593 に答える