Java 为什么这个代码没有显示任何椭圆
我试图添加一个椭圆形的框架和框架显示后,执行程序没有显示在它。背景色甚至会出现。只有椭圆形不可见。请给我一些建议Java 为什么这个代码没有显示任何椭圆,java,swing,Java,Swing,我试图添加一个椭圆形的框架和框架显示后,执行程序没有显示在它。背景色甚至会出现。只有椭圆形不可见。请给我一些建议 import javax.swing.*; import java.awt.Color; import java.awt.Graphics; @SuppressWarnings("serial") public class Example1 extends JFrame{ Example1() { JFrame jp=new JFrame(
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();
}
}
首先绘制,然后将颜色设置为红色。你认为这会改变你之前画的椭圆形的颜色吗 喷漆步骤:
因为您正在扩展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);
首先尝试设置颜色
g.setColor(color.RED)代码>然后填充椭圆g.fillOval(100,50,40,50)代码>,无需绘制椭圆,填充即可。首先,查看问题的标题,纠正拼写错误。顺便问一下,您是否忘记将组件添加到框架中(jp
)?也许jp.在构造函数中添加(这个)
@User251414…我没有使用任何组件。。!!请看代码。我正在扩展JFrame。但是仍然没有积极的结果。帮助很大。!thanx@用户2935743,或者您应该在JFrame的重写的受保护的void paintComponent(Graphics g){}方法中绘制椭圆形
-JFrame中没有paintComponent()方法,您也不应该重写JFrame中的paint()您应该在JFrame的内容窗格中添加扩展JComponent。
-这是正确的方法。阅读Swing教程中的部分以获取更多信息和示例。是的,因为您正在创建并显示一个新的JFrame,而不是Example1类。让Example1扩展JPanel并将jp.setContentPane(this)放入构造函数中。然后浏览Swing教程,以便学习如何正确编写Swing。如果要向框架添加任何内容,我可以简单地使用getContentPane()而不是扩展JPanel。为什么不一定要扩展JPanel?如果扩展JPanel,可以将类设置为内容窗格。现在你正在创建2个JFrame并做各种不必要的废话。你为什么不先看一下教程呢?感谢所有的责骂者。。!!但光是读书也帮不了我。但thanx会再经历一次。