我想为我的应用程序中的所有文本字段更改不可编辑的前景(以避免不可理解JTextComponent.setEditable(false)
),但未找到UIManager
的相应属性键来执行此操作。是否有可能在全球范围内更改不可编辑的前景?如何更改JTextField的不可编辑前景
回答
在“正常”的外观和感觉,你可以使用"TextField.inactiveBackground"
键,文本,你可以使用"TextField.inactiveForeground"
例如
UIManager.put("TextField.inactiveBackground", new ColorUIResource(Color.RED));
的外观和感觉像雨云可能需要一些“额外的“工作...
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 2014-10-08 11:28:49
含义setDisabledTextColor – mKorbel 2014-10-08 11:29:14
我把*“不可编辑的前景”*表示为可编辑的状态,但提到'disabledTextColor'属性也是一个好主意 – MadProgrammer 2014-10-08 11:31:06
发现的解决方案:
UIManager.put("TextFieldUI", ExtSynthTextFieldUI.class.getName());
- 1. 如何在Silverlight中更改文本编辑器的前景色?
- 2. JTextField在JPopupMenu中不可编辑
- 3. 如何在另一个不可编辑的JTextField中动态复制JTextField内容
- 4. 如何在不可编辑的JTextField中显示图像?
- 5. 如何更改Java中不可编辑的JTextPane的背景颜色?
- 6. 如何更改JTextField的值?
- 7. 更改IntelliJ编辑器中“参数信息”的前景颜色
- 8. JTextField:更改前景色并保存内容
- 9. 不可编辑的JTextField:设置可见区域
- 10. 如何更改可编辑颜色,而数据更改angluarjs
- 11. Contenteditable - 编辑时更改背景颜色
- 12. 更改编辑区背景颜色
- 13. MFC:如何更改整个编辑框的背景颜色?
- 14. 如何更改Telerik的富文本编辑器背景?
- 15. 如何更改TFVC中的编辑器背景
- 16. 如何更改PyCharm代码编辑器的背景颜色?
- 17. 如何更改rad编辑器的背景颜色?
- 18. 如何更改Google脚本编辑器中的背景颜色
- 19. 如何更改Eclipse 3.5编辑器的背景颜色?
- 20. 如何更改Android Studio编辑器的背景色?
- 21. 如何更改wxRadioButton的前景色?
- 22. 如何更改ListBox中SelectedItem的前景?
- 23. 如何更改WPF中ProgressBar的前景?
- 24. JTextField的编辑 - 摆动
- 25. 如何编辑visual studio的“CurrentSettings.vssettings”来更改当前的字体?
- 26. 如何更改SSMS 2008中的“编辑前200行”中的SQL
- 27. 如何在更改视图时使UITextField不可编辑?
- 28. 启用了光标选择的不可编辑的JTextField
- 29. 如何在ace编辑器中更改背景图片?
- 30. 如何将Spyder编辑器背景更改为黑暗?
看起来和感觉:
L的& F I只需要重置默认UI安装完成后? – MadProgrammer 2014-10-08 11:20:42
主要目标是合成(Synthetica),但知道它是否可能完全是有意义的。 – 2014-10-08 11:22:55
@MadProgrammer我从Jyloo得到了答案:Synthetica将在下一个版本中支持它。 – 2014-10-08 11:35:40