0
private JDialog dialog;
private JTextArea text;
private JPanel buttons, filler;
private JRadioButton questions, list;
private ButtonGroup group;
private JButton confirm;

dialog = new JDialog(Main.masterWindow, lang.getString("newTitle"), true);
dialog.getContentPane().setLayout(new BoxLayout(dialog.getContentPane(), BoxLayout.Y_AXIS));
dialog.setResizable(false);

text = new JTextArea();

//this works
text.setBackground(Color.RED);

//this both don't
text.setBackground((Color)UIManager.get("control");
text.setBackground(dialog.getContentPane().getBackground());

dialog.setVisible(true);

Nimbus L&Fを使用していますが、「コントロール」はダイアログの背景色です。他の色(この例では赤)を設定すると表示されますが、これに設定すると白のままになります。

デフォルト(金属)のL&Fでは問題ありません...

どうしたの?

4

2 に答える 2

1

何らかの理由で、呼び出しColorUIResourceから返されたオブジェクトが気に入らないようです。UIManager.getから派生しているため、理由がわかりませんColor

あなたが何かをするなら

JDialog dialog = new JDialog((JFrame) null, "Help", true);
dialog.getContentPane().setLayout(new BoxLayout(dialog.getContentPane(), BoxLayout.Y_AXIS));

JTextArea text = new JTextArea(10, 10);

Color color = new Color(UIManager.getColor("control").getRGB()); // <-- Create a new color

text.setBackground(bg);

dialog.add(text);
dialog.pack();
dialog.setLocationRelativeTo(null);
dialog.setVisible(true);

これはうまくいくようです。

あなたはそれをしなければなりません。そうは思いませんが、私が試した他のすべてのことはうまくいきませんでした

于 2012-09-17T02:03:30.033 に答える
1

次のコードを実行してみてください。

    System.out.println((Color)UIManager.get("control"));

これにより、UIManager から取得している正確な色が出力されます。本当は白でいいのかもしれません。それが何を印刷するか教えてください

編集:

//this both don't
//text.setBackground(dialog.getContentPane.getBackground());

まず、メソッドであっても getContentPane の後に () がありません。次のようにしてみてください。text.setBackground(dialog.getContentPane().getBackground());

于 2012-09-15T16:12:28.590 に答える