我的代码是这样的
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/