- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在 swing 中更改 JSpinner
的背景色和前景色?
除了覆盖 paint()
方法之外,是否有任何简单的解决方案?
设置背景或前景颜色不起作用,至少对我而言。
我还使用所有默认外观进行了测试,但没有成功。
JDK: 1.7.0.51 Win764
提前致谢
最佳答案
JSpinner
是一个复合组件。简单地说:默认情况下,它包含一个显示值的 JFormattedTextField
,以及两个用于增加和减少值的按钮。
因此,设置这些颜色的一种方法可能是从微调器中获取文本字段,并设置其前景色和背景色:
Component c = spinner.getEditor().getComponent(0);
c.setForeground(Color.BLUE);
c.setBackground(Color.RED);
但您可能必须使其更加健壮,以确保它适用于所有 LookAndFeel 和所有编辑器,无论微调器(和编辑器)的内部构造如何。
编辑 回应评论:在这种情况下有效吗?
import java.awt.Color;
import java.awt.Component;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JSpinner;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
public class SpinnerColors
{
public static void main(String[] args)
{
// Optionally:
setLookAndFeel();
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
createAndShowGUI();
}
});
}
private static void setLookAndFeel()
{
try
{
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e)
{
e.printStackTrace();
}
}
private static void createAndShowGUI()
{
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JSpinner spinner = new JSpinner();
setColors(spinner, Color.BLUE, Color.RED);
f.getContentPane().add(spinner);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
private static void setColors(
JSpinner spinner, Color foreground, Color background)
{
JComponent editor = spinner.getEditor();
System.out.println("Editor "+editor);
int n = editor.getComponentCount();
for (int i=0; i<n; i++)
{
Component c = editor.getComponent(i);
System.out.println("Component "+i+": "+c);
if (c instanceof JTextField)
{
c.setForeground(foreground);
c.setBackground(background);
}
}
}
}
请注意,如果您使用的是“Nimbus”外观和感觉,事情可能会更加困难。 Nimbus 以忽略背景颜色而闻名......
EDIT2 回应第二条评论:基本上可以访问按钮,但对于默认的 L&F,这些是专门的按钮 (BasicArrowButton
),其中 paint
方法被覆盖以绘制微小的“向上”和“向下”箭头。所以在这些上面设置前景是不会有任何效果的。相反,您必须修改 L&F 默认值,这可能总是很麻烦。所以这可能会也可能不会达到您想要达到的效果:
private static void setButtonColors(
JSpinner spinner, Color foreground, Color background)
{
int n = spinner.getComponentCount();
for (int i=0; i<n; i++)
{
Component c = spinner.getComponent(i);
if (c instanceof JButton)
{
c.setForeground(foreground); // Has no effect
c.setBackground(background);
}
}
}
关于java - Swing 改变 JSpinner 的前后颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22127833/
我有以下MWE function f(p) ans = zeros(p, 2) return ans end ans = f(2) ans b=ans.+1.0 ans 起初,ans是正确的,
OWIN AppBuilder“UseStatic”位从本地文件系统传送文件,这在某些情况下很方便,但我希望它从我在应用程序启动时预先填充的内存中 IDictionary 传送内容。任何人都可以指出一
我是 JavaScript 新手。 我的代码允许我列出 JSON 文档的元素及其类型,并将所有元素连接到一个字符串 donnees_types 中。 问题是 JavaScript 中的 typeof
我想在每次刷新时更改主页上的背景图像。我怎样才能做到这一点?我认为 jquery 是可能的,但我不太清楚。 感谢您对此主题的任何帮助或评论。 最佳答案 我不知道“如何”,但我找到了以下链接: http
所以我已经在这上面花了几个小时了,老实说我完全陷入困境。我写了一个 for 循环来计算整数中的数字数量,但我发现一旦我输入 10 位以上的数字,除数值就会发生变化,而且我不明白为什么。我在互联网上搜索
当我在使用表面 View 的游戏 Activity 和使用膨胀菜单的其他 Activity 之间切换时,我会收到错误消息。 日志猫: 07-13 15:15:34.464: ERROR/Android
听说很简单 R*=f; G*=f; B*=f; 其中 f 是标量值 0 .. 1.0 或更大改变亮度的方法不太正确颜色,但我找不到一些代码片段获得更好的东西(无需太多学习色彩理论)也许有人可以在这里给
如以下链接所述:- How to get the ThreadPoolExecutor to increase threads to max before queueing? 我将队列实现更改为在进入
我只显示最初提供 20 分钟 slotMinutes 的日历。我试图让用户即时更改为 10 分钟的 slotMinutes。 我有一个触发以下代码的按钮: $('#calendar').fullCal
我的问题是:我的应用程序中有一个新闻列表(UITableView)当我点击 1 个"new"时,我打开它,里面有一个后退按钮,可以让我回到列表。现在的问题是我必须在滑动时实现"new"更改,所以我制作
我面临着与 I'm trying to install psycopg2 onto Mac OS 10.6.3; it claims it can't find "stdarg.h" but I ca
需要通过为 array2 中不存在的索引设置 visible false 来从 array1 创建一个新的 array3。 在下面的示例中,我有索引 0,2。所以对于 1,3,结果数组必须具有 vis
我有一个对象,类似这样 var Egg = function(){ this.test = $(.slider .label); $('.slider').slider({
我想改变 ScrollView 的宽度。首先,我这样做了: var scrollWidthConstraint: NSLayoutConstraint! 然后设置它: scrollWidthConst
我有两个动画,一个是“过渡”,它在悬停时缩小图像,另一个是 animation2,其中图像的不透明度以周期性间隔重复变化。 我有 animation2 在图像上进行,当我将鼠标悬停在它上面时,anim
我是一个 jQuery 新手,一直在尝试添加一个脚本来更改 div onClick 的 id。 这是一个jsfiddle example . $(function accept() { $("
我正在尝试更改用户输入的字母的大小写,并将该字母的小写和大写版本存储在变量中。我已经编写了下面的代码,但它在运行时遇到了问题。有人指出是什么导致了问题吗? #include #include #i
假设我有这段代码: char num[2] = {15, 240}; char* p_num; 现在,如果我理解的一切正确,数组中的位应该像这样对齐: 00001111 11110000 我的问题是
var html = '' + count + '' + i.Description + '' + i.Priority + '' + i.Status + 'johnsmith- ' + creat
我在虚拟机上安装了 minix3,并希望我可以操纵当前的队列选择算法,以便我可以将其从优先级顺序更改为包括随机分类的低优先级作业的优先级顺序。我发现我需要更改的代码部分在 proc.c 中,具体部分是
我是一名优秀的程序员,十分优秀!