Установите для параметра «disabledTextColor» JTextField значение «КРАСНЫЙ» и отключите его настройку «включен» на значение «false», но он по-прежнему отображается СЕРЫМ - PullRequest
1 голос
/ 20 марта 2012

Я использую NetBeans и его WindowDesigner.

Установив фокус на JTextField Я сделал две вещи в окне свойств:

  • Сначала я установил для поля TextField disabledTextColor красное ([0, 0, 51]),
  • Во-вторых, я установил для поля TextField enabled значение false.

Просмотр превью, ничего. Все еще простой серый. Почему это так и как я могу это изменить?

1 Ответ

4 голосов
/ 20 марта 2012

у вас должна быть другая проблема, эти базовые методы Swing работают для меня

enter image description here

import java.awt.*;
import javax.swing.*;

public class InactiveBackgroundTest {

    public JComponent makeUI() {
        JTextField s0 = new JTextField("Very long Text");
        s0.setEnabled(true);
        s0.setForeground(Color.yellow);
        s0.setBackground(Color.blue);
        //UIManager.put("FormattedTextField.inactiveBackground", Color.RED);

        JTextField s1 = new JTextField("Very long Text");
        s1.setEnabled(false);
        s1.setForeground(Color.yellow);
        s1.setBackground(Color.blue);
        s1.setDisabledTextColor(Color.yellow);

        JTextField s2 = new JTextField("Very long Text");
        s2.setEditable(false);
        s2.setForeground(Color.yellow);
        s2.setBackground(Color.blue);
        s2.setDisabledTextColor(Color.yellow);

        JPanel p = new JPanel();
        p.setBackground(Color.black);
        p.add(s0);
        p.add(s1);
        p.add(s2);
        return p;
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                createAndShowGUI();
            }
        });
    }

    public static void createAndShowGUI() {
        JFrame f = new JFrame();
        f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        f.getContentPane().add(new InactiveBackgroundTest().makeUI());
        f.setLocationRelativeTo(null);
        f.pack();
        f.setVisible(true);
    }
}
...