내 응용 프로그램의 모든 텍스트 필드에 대해 편집 할 수없는 전경 (이해할 수 없도록 JTextComponent.setEditable(false)
)을 변경하려고하지만 UIManager
에 대한 적절한 속성 키를 찾지 못했습니다. 편집 할 수없는 전경을 세계적으로 변경할 수 있습니까? "정상"에서JTextField에 대해 편집 할 수없는 전경을 변경하는 방법
답변
보고 당신은 텍스트, 당신은 예를 들어 "TextField.inactiveForeground"
UIManager.put("TextField.inactiveBackground", new ColorUIResource(Color.RED));
룩을 사용의 "TextField.inactiveBackground"
키를 사용하여 수, 느낌과 후광 일부 "추가로 필요할 수 있습니다 느낌 "일 ...
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.plaf.ColorUIResource;
public class NonEdtiableField {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException ex) {
} catch (InstantiationException ex) {
} catch (IllegalAccessException ex) {
} catch (UnsupportedLookAndFeelException ex) {
}
UIManager.put("TextField.inactiveBackground", new ColorUIResource(Color.RED));
JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridwidth = GridBagConstraints.REMAINDER;
JTextField editable = new JTextField(10);
JTextField nonEditable = new JTextField(10);
nonEditable.setEditable(false);
frame.add(editable);
frame.add(nonEditable);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
두 가지 상태가 편집 가능하고 활성화되어 있습니다. 어떤 OP가 의미하는지 모르겠습니다. – mKorbel
의미 setDisabledTextColor – mKorbel
편집 가능한 상태를 의미하기 위해 * "편집 불가능 전경"*을 사용했지만 언급 된 'disabledTextColor' 속성을 갖는 것이 좋습니다 – MadProgrammer
솔루션은 발견 : 모양과 느낌
UIManager.put("TextFieldUI", ExtSynthTextFieldUI.class.getName());
:
단순히 기본 UI를 재설정해야 L & F로 설치 한 후? – MadProgrammer
주요 목표는 Synthetica이지만, 그것이 가능할지를 아는 것이 중요합니다. –
@MadProgrammer Jyloo의 답변을 얻었습니다. Synthetica는 다음 릴리스에서 지원할 것입니다. –