Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 摆动更改Basicarrow按钮的前景色_Java_Swing_Custom Component_Jspinner_Uimanager - Fatal编程技术网

Java 摆动更改Basicarrow按钮的前景色

Java 摆动更改Basicarrow按钮的前景色,java,swing,custom-component,jspinner,uimanager,Java,Swing,Custom Component,Jspinner,Uimanager,在JSpinner类中,如何更改两个BasicArrowButton(上下)组件的前景色? 组件.setForeground()不工作。 提前感谢。 编辑 private void set_colors(JSpinner spinner){ int n = spinner.getComponentCount(); for (int i=0; i<n; i++) { Component c = spinner.getComponent(i);

JSpinner
类中,如何更改两个
BasicArrowButton
(上下)组件的前景色?
组件.setForeground()
不工作。

提前感谢。
编辑

private void set_colors(JSpinner spinner){
    int n = spinner.getComponentCount();
    for (int i=0; i<n; i++)
    {
        Component c = spinner.getComponent(i);
        System.out.println(c);
        if (c instanceof BasicArrowButton)
        {
            c.setForeground(ds_conn_text.getForeground());//doesn't work, doesn't change arrow color
            c.setBackground(ds_conn_text.getBackground());
            BasicArrowButton c0=(BasicArrowButton) c;c0.setBorder(ok_button.getBorder());
        }
    }
}
private void set_颜色(JSpinner微调器){
int n=spinner.getComponentCount();

对于(inti=0;i这是一个关于

在不覆盖绘制方法的情况下,不可能只设置箭头的颜色。原因很简单,箭头的颜色与按钮“阴影”所用的颜色相同。因此,您可以放置线条

UIManager.getDefaults().put("controlDkShadow", Color.MAGENTA);
main
中的某个位置,但这不仅会更改箭头颜色,而且还会更改实际上不应该更改的其他元素的颜色

仅为特定实例设置此颜色的一种丑陋/老套的方法是

private static void hackilySetColor(JSpinner spinner, Color color)
{
    int n = spinner.getComponentCount();
    for (int i=0; i<n; i++)
    {
        Component c = spinner.getComponent(i);
        if (c instanceof BasicArrowButton)
        {
            try
            {
                Field field = BasicArrowButton.class.getDeclaredField("darkShadow");
                field.setAccessible(true);
                field.set(c, color);
                field.setAccessible(false);
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
        }
    }
}
private static void hackilySetColor(JSpinner微调器,彩色)
{
int n=spinner.getComponentCount();

对于(inti=0;iPERFECT,完美。谢谢亲爱的。只是根本不改变颜色==使用合适的L&F