Изменить цвет SetEnabled

Мой вопрос заключается в следующем: по умолчанию измените цвет, чтобы задать JTextField setEnabled (false), например, черный и подтвержденный результатами UIManager, но не было никаких предложений.

Привет.


person user1387989    schedule 14.05.2012    source источник
comment
Пожалуйста, перефразируйте свой вопрос.. Мне трудно вас понять.   -  person user1329572    schedule 15.05.2012
comment
Вы пробовали использовать setDisabledTextColor?   -  person Paul Vargas    schedule 15.05.2012
comment
Я хочу изменить цвет по умолчанию, когда я помещаю свой JTextField.setEnable (false) в другой цвет.   -  person user1387989    schedule 15.05.2012
comment
Какой цвет по умолчанию? передний план или фон?   -  person Paul Vargas    schedule 15.05.2012


Ответы (1)


Чтобы изменить отключенный цвет фона, попробуйте следующее:

UIManager.put("TextField.disabledBackground", Color.GRAY);

Вы можете изменить отключенный цвет текста, используя setDisabledTextColor, то есть:

textField.setDisabledTextColor(Color.GRAY);

ИЗМЕНИТЬ: включить SSCCE

import java.awt.Color;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;

public class TestDisabledTextField {

    public static void main(String[] args) {
        UIManager.put("TextField.disabledBackground", Color.YELLOW);

        JTextField textField = new JTextField("Disabled text field", 15);
        textField.setEnabled(false);
        textField.setDisabledTextColor(Color.RED);

        JPanel panel = new JPanel();
        panel.add(textField);

        JOptionPane.showMessageDialog(null, panel);
    }
}
person tenorsax    schedule 14.05.2012
comment
Строка UIManager у меня не работает. Когда я проверяю вывод UIManager.getDefaults(), я не вижу TextField.disabledBackground, что заставляет меня думать, что на самом деле это не вариант. - person gdw2; 08.06.2012
comment
На самом деле, я думаю, что ключ «UIManager» должен быть TextField.inactiveBackground. - person gdw2; 08.06.2012
comment
Мои извенения. Я думаю, что неправильно экстраполировал, когда делал свои комментарии. Я столкнулся с этим вопросом, действительно пытаясь установить отключенный передний план с помощью UIManager. Используя ваш SSCCE выше, если я хочу установить отключенный передний план с помощью UIManager, я должен использовать TextField.inactiveForeground, поскольку TextField.disabledForeground, похоже, не имеет никакого эффекта. Думаю, я просто предположил, что disabled => неактивен как для фона, так и для переднего плана. Но я признаю, что ваш пример работает. - person gdw2; 13.06.2012