即使在java上执行setOpaque(true)之后,setBackground也无法工作

时间:2013-11-29 03:25:29

标签: java swing jbutton

我的代码就像这样

class ActionPanel extends JPanel{
    private JButton calculate;
    private JLabel sup;
    private Border border;
    public ActionPanel(){
        calculate = new JButton("Calculate Bill");
        calculate.setOpaque(true);
        calculate.setBackground(Color.BLUE);
        sup = new JLabel("Total Cost", SwingConstants.CENTER);
        setLayout(new GridLayout(0,1));
        add(sup);
        add(calculate);
        }    
}

这将构成JFrame的一部分,但是在运行程序后显示它时,除非我执行setBorderPainted(false),否则JButton不会改变颜色;但是那个按钮看起来很奇怪,因为它没有边框,我该怎么做才能让JButton改变颜色,但我不会丢失边框

1 个答案:

答案 0 :(得分:0)

在框架设置为可见后,您是否将“操作”面板添加到框架中?

如果是这样,您必须在框架上调用重绘和(重新)验证以使更改可见。希望这会有所帮助,提供更多代码将有助于回答。