-4

我正在尝试在框架中添加一个椭圆,并且在执行程序后显示框架,其中没有显示任何内容。背景颜色甚至来了。只有椭圆是不可见的。请提出建议。

   import javax.swing.*;
import java.awt.Color;
import java.awt.Graphics;

@SuppressWarnings("serial")
public class Example1 extends JFrame{


    Example1()
    {
        JFrame jp=new JFrame("spot");

         jp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        jp.setVisible(true);
        jp.setSize(400,400);

    }

  public void paint(Graphics g)
  {
      super.paint(g);
      g.setColor(Color.BLACK);

      g.fillOval(100,50,40,50);

  }

  public static void main(String...args)
{

    @SuppressWarnings("unused")
    Example1 obj = new Example1();


}
}
4

2 回答 2

2

因为您在扩展的 JComponent 中绘制椭圆,而您没有在任何地方使用它。

您只是在使用 JFrame,设置它的背景颜色并显示它。您应该在 JFrame 的内容窗格中添加了扩展的 JComponent。

编辑

您正在扩展 JFrame 以覆盖 paint() 方法,没关系(但这不是正确的方法)。但是您没有使用它来显示 GUI。您正在 Example1 的构造函数中创建一些不同的 JFrame 并用它显示 GUI。

您应该显示您的扩展 JFrame。像这样:

    Example1 obj = new Example1();
    // Example1 extends JFrame, and overrides paint() method to display oval.
    // so display this Example1 frame, not creating some different JFrame.
    obj.setSize(400,400);
    obj.setVisible(true);
于 2013-10-31T08:56:19.697 回答
1

首先绘制,然后将颜色设置为红色。你认为这会改变你之前画的椭圆的颜色吗?

绘画步骤:

  1. 设置颜色
于 2013-10-31T08:51:44.853 回答