gpt4 book ai didi

java - Nimbus L&F 尝试使用 UIManager 更改 JFormattedTextField 的背景颜色

转载 作者:行者123 更新时间:2023-11-29 05:25:32 28 4
gpt4 key购买 nike

中南合作中心

import java.awt.EventQueue;
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.WindowConstants;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.plaf.ColorUIResource;
import javax.swing.text.Document;
import javax.swing.text.NumberFormatter;

public class Test extends JFrame{

private JFormattedTextField input, input2;
private NumberFormatter formatter;


public Test() {
formatter = new NumberFormatter(NumberFormat.getNumberInstance());
input = new JFormattedTextField(formatter);
input2 = new JFormattedTextField(formatter);


input.setColumns(4);
input2.setColumns(4);
input.setValue(0.0);
JPanel panel = new JPanel();
panel.add(input);
panel.add(input2);

add(panel);
pack();
setVisible(true);
}

public static void main(String[] args) {
try {
for (UIManager.LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
UIManager.put("nimbusBase", new ColorUIResource(0, 0, 0));
UIManager.put("FormattedTextField.background", Color.RED);
UIManager.put("control", new ColorUIResource(153, 76, 0));
UIManager.put("textForeground", new ColorUIResource(255, 153, 51));
break;
} }
}
catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
}

EventQueue.invokeLater(new Runnable() {
public void run() {
new Test();
}
});

}
}

问题

简单地说,我正在尝试将 Enabled JFormattedTextField 的背景颜色从默认的白色更改为我的 RGB 颜色。我用找到的表 here (链接在此 blog )找到合适的名称。

我意识到该博客有点过时(6 年)并且 Nimbus 从那时起已经更新了很多,所以这可能是我的问题。

如何使用 UIManager 更改 JFormattedTextField 的背景颜色?

更正代码

我更新了上面的代码,它现在可以正常工作了。问题在于使用 ColorUIResource 而不是仅仅使用 Color

最佳答案

How do I go about using UIManager to change the background color of a JFormattedTextField?

您必须设置此属性 FormattedTextField.background,如下所示 Nimbus Defaults

像这样

 UIManager.put("FormattedTextField.background", Color.RED);

关于java - Nimbus L&F 尝试使用 UIManager 更改 JFormattedTextField 的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22800817/

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