【问题标题】:How can i change the colour of a component in JFrame?如何更改 JFrame 中组件的颜色?
【发布时间】:2012-12-24 02:42:07
【问题描述】:

这是我的代码:

public class JavaApplication7 extends JPanel
{
    public static void main(String[] args) {
        JPanel pan = new JPanel();
        JFrame frm = new JFrame();
        frm.add(new JavaApplication7());
        frm.setSize(500, 500);
        frm.setBackground(Color.yellow);
        frm.setForeground(Color.red);
        frm.setVisible(true);
        frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pan.setSize(768,512);
        pan.setVisible(true);
    }
    public void paintComponent (Graphics g){
        g.drawOval(50, 50, 50, 50);
        g.setColor(Color.CYAN);       
    }
}

我希望椭圆形改变颜色,但是当我运行我的程序时,它仍然是黑色而不是我想要的青色。

【问题讨论】:

  • 不要忘记调用super.paintComponent 作为覆盖paintComponent 方法中的第一次调用,否则保证您接下来将发布有关视觉异常的信息:P 也不要忘记通过@在 EDT 上创建和操作 Swing 组件987654324@块
  • @DavidKroukamp 首先感谢您的建议。虽然如果我把 super.paintComponent() 然后背景颜色消失了我该如何克服这个问题?
  • 为图形对象绘制背景色即g.setColor(Color.red); g.fillRect(0,0,getWidth(),getHeight());

标签: java swing colors jframe


【解决方案1】:

您首先绘制椭圆,然后更改颜色。这就是为什么你看不到效果。 只需更改语句的顺序:

g.setColor(Color.CYAN);
g.drawOval(50, 50, 50, 50);

【讨论】:

    猜你喜欢
    • 2021-10-23
    • 2022-10-03
    • 2014-08-31
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    • 2020-04-17
    • 1970-01-01
    相关资源
    最近更新 更多