gpt4 book ai didi

java - 设置禁用的 JSpinner 的文本颜色(以使其更易于阅读)

转载 作者:行者123 更新时间:2023-11-29 03:56:19 25 4
gpt4 key购买 nike

JSpinner waitHr  = new JSpinner();
waitHr.setEnabled(false);

我有一个微调器,我需要阻止用户临时编辑它。问题是,当微调器被禁用时,它的文本颜色使其很难阅读,这在这种情况下是 Not Acceptable 。我注意到您可以使用 JTextFields 执行此操作:

 JTextField txtTest   = new JTextField();
txtTest.setDisabledTextColor(Color.BLACK);

是否有类似的东西可以用于 JSpinner?

最佳答案

你想怎么玩就怎么玩

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

public class InactiveBackgroundTest {

public JComponent makeUI() {
JSpinner s0 = new JSpinner();
s0.setPreferredSize(new Dimension(100, 20));
s0.setEnabled(false);
UIManager.put("FormattedTextField.inactiveBackground", Color.RED);
JSpinner s1 = new JSpinner();
s1.setEnabled(false);
s1.setPreferredSize(new Dimension(100, 20));
JSpinner s2 = new JSpinner();
s2.setEnabled(false);
s2.setPreferredSize(new Dimension(100, 20));
JTextField field = ((JSpinner.NumberEditor) s2.getEditor()).getTextField();
field.setEditable(false);
field.setBackground(UIManager.getColor("FormattedTextField.background"));
JSpinner s3 = new JSpinner();
s3.setPreferredSize(new Dimension(100, 20));
s3.setEnabled(false);
s3.setBorder(null);
JTextField tf = ((JSpinner.DefaultEditor) s3.getEditor()).getTextField();
tf.setDisabledTextColor(Color.black);
tf.setBackground(Color.white);
tf.setBorder(new LineBorder(Color.blue, 1));
s3.setBorder(new LineBorder(Color.red, 1));
int n = s3.getComponentCount();
if (n > 0) {
Component[] components = s3.getComponents();
String compName = "";
for (int i = 0, l = components.length; i < l; i++) {
if (components[i] instanceof JButton) {
JButton button = (JButton) components[i];
if (button.hasFocus()) {
String btnMane = button.getName();
}
button.setBorder(new LineBorder(Color.red, 1));
System.out.println("JButton");
} else if (components[i] instanceof JComboBox) {
System.out.println("JComboBox");
} else if (components[i] instanceof JTextField) {
System.out.println("JTextField");
} else if (components[i] instanceof JFormattedTextField) {
System.out.println("JFormattedTextField");
} else if (components[i] instanceof JTable) {
System.out.println("JTable");
} else if (components[i] instanceof JScrollPane) {
System.out.println("JScrollPane");
} else if (components[i] instanceof JPanel) {
JPanel panel = (JPanel) components[i];
panel.setBackground(Color.red);
panel.setBorder(null);
System.out.println("JPanel");
}
}
}
JPanel p = new JPanel();
p.setBackground(Color.black);
p.add(s0);
p.add(s1);
p.add(s2);
p.add(s3);
return p;
}

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

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

public static void createAndShowGUI() {
try {
//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
for (UIManager.LookAndFeelInfo laf : UIManager.getInstalledLookAndFeels()) {
if ("Windows".equals(laf.getName())) {
UIManager.setLookAndFeel(laf.getClassName());
}
}
} catch (Exception e) {
e.printStackTrace();
}
JFrame f = new JFrame();
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.getContentPane().add(new InactiveBackgroundTest().makeUI());
f.setPreferredSize(new Dimension(120, 140));
f.setLocationRelativeTo(null);
f.pack();
f.setVisible(true);
}
}

关于java - 设置禁用的 JSpinner 的文本颜色(以使其更易于阅读),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6220872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com