我正在尝试向框架添加一个椭圆,并且在执行程序后框架显示,其中没有任何内容显示。背景颜色甚至来了。只有椭圆形不可见。建议请。
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();
}
}
答案 0 :(得分: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);
答案 1 :(得分:1)
先绘制,然后将颜色设置为红色。您是否认为这会改变您之前绘制的椭圆的颜色?
绘画步骤: