我的代码是这样的

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更改颜色,但我不会丢失边框

最佳答案

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

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

关于java - 即使在Java上执行setOpaque(true)后,setBackground也无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20277862/

10-11 21:35