【问题标题】:Error java JFrame错误 java JFrame
【发布时间】:2013-05-12 11:28:29
【问题描述】:

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

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

public class SPEL{

    public void paintComponent(Graphics g){
        g.drawRect(50,75,100,50);
    }

    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);//error
        f.setVisible(true);
    }
}

【问题讨论】:

  • “一个错误”总是复制/粘贴错误和异常输出。
  • SPEL 类不是 Java Swing 组件,因此无法添加到 JFrame 中。
  • 提示:添加@GilbertLeBlanc(或重要的@)以通知他们有新评论。

标签: java swing graphics jframe awt


【解决方案1】:

你忘了extends某事,例如:

public class SPEL extends JPanel {

您可以添加@Override以减少此类错误的机会

@Override
public void paintComponent(Graphics g){

【讨论】:

  • 和 super.paintComponent(g) 并在 EDT 中启动 UI
  • @Override 现在是+1
  • "但是我如何将 "g.drawRect" 添加到 jframe" 而不是绘制到顶级容器,通常最好绘制到 @987654326 @。所以坚持答案中的方式,上课extends JPanel
  • 谢谢,真正的初学者。错过了整个延伸有点哈哈
【解决方案2】:

试试这个! :

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);
    }
}
  • extends JPanle
  • @Override
  • Using Graphics2D
  • g2d.fill(Shape s)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多