Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误java JFrame_Java_Swing_Graphics_Jframe_Awt - Fatal编程技术网

错误java JFrame

错误java JFrame,java,swing,graphics,jframe,awt,Java,Swing,Graphics,Jframe,Awt,我不明白为什么我的代码不起作用,试图在我的JFrame中打印一个矩形,但总是在f.add(p)上出错 您忘记扩展某个内容,例如: public class SPEL extends JPanel { 您可以添加@Override,以减少此类错误的发生几率 @Override public void paintComponent(Graphics g){ 您忘记扩展某个内容,例如: public class SPEL extends JPanel { 您可以添加@Override,以减少此类

我不明白为什么我的代码不起作用,试图在我的
JFrame
中打印一个矩形,但总是在
f.add(p)上出错


您忘记扩展某个内容,例如:

public class SPEL extends JPanel {
您可以添加
@Override
,以减少此类错误的发生几率

@Override
public void paintComponent(Graphics g){

您忘记扩展某个内容,例如:

public class SPEL extends JPanel {
您可以添加
@Override
,以减少此类错误的发生几率

@Override
public void paintComponent(Graphics g){
试试这个!:

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

@SuppressWarnings("serial")
public class SPEL extends JPanel {

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g;
        g2d.setPaint(Color.red);
        Rectangle b = new Rectangle(50, 75, 100, 50);
        g2d.draw(b);
        g2d.fill(b);
    }

    public static void main(String[] args) {
        JFrame f = new JFrame();

        f.setSize(400, 300);
        f.setLocation(100, 100);
        f.setTitle("SPEL");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        SPEL p = new SPEL();
        f.add(p);
        f.setVisible(true);
    }
}
  • 扩展JPanle
  • @覆盖
  • 使用图形2d
  • g2d.填充(形状s)
    • 试试这个!:

      import javax.swing.*;
      import java.awt.*;
      
      @SuppressWarnings("serial")
      public class SPEL extends JPanel {
      
          @Override
          public void paintComponent(Graphics g) {
              super.paintComponent(g);
              Graphics2D g2d = (Graphics2D) g;
              g2d.setPaint(Color.red);
              Rectangle b = new Rectangle(50, 75, 100, 50);
              g2d.draw(b);
              g2d.fill(b);
          }
      
          public static void main(String[] args) {
              JFrame f = new JFrame();
      
              f.setSize(400, 300);
              f.setLocation(100, 100);
              f.setTitle("SPEL");
              f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              SPEL p = new SPEL();
              f.add(p);
              f.setVisible(true);
          }
      }
      
      • 扩展JPanle
      • @覆盖
      • 使用图形2d
      • g2d.填充(形状s)

      “错误”总是复制/粘贴错误和异常输出。SPEL类不是Java Swing组件,因此无法将其添加到JFrame中。提示:添加@GilbertLeBlanc(或任何人,
      @
      很重要)以通知他们新的注释。“错误”总是复制/粘贴错误和异常输出。SPEL类不是Java Swing组件,提示:添加@GilbertLeBlanc(或任何人,
      @
      很重要)来通知他们新的注释。和super.paintComponent(g)并在EDT
      @Override
      中启动UI,现在这是一个+1“,但是我如何将“g.drawRect”添加到JFrame中,而不是添加到顶级容器中,通常最好在
      JPanel
      上绘制。因此,请坚持回答中所述的方法,使类
      扩展JPanel
      。谢谢,这方面的真正初学者。错过了整个扩展位hahaa和super.paintComponent(g)并在EDT
      @Override
      中启动UI,现在这是一个+1”,但是如何将“g.drawRect”添加到jframe“而不是绘制到顶级容器,通常最好绘制到
      JPanel
      。因此,请坚持回答中所述的方法,使类
      扩展JPanel
      。谢谢,这方面的真正初学者。错过了全部,哈哈