Java初学者问题简单的图形

时间:2011-07-26 16:05:35

标签: java swing graphics

我收到错误,说这些方法不适用于图形类型?我不完全了解这里发生了什么 - 有人能解释我做错了什么以及为什么错了?谢谢,

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

public class Peach extends JPanel {
   public void paintComponent(Graphics g) {
      super.paintComponent(g);
      this.setBackground(Color.WHITE);
      g.setColor(Color.BLUE);
      g.fillRect(25, 25, 100, 30);
      g.setColor(new Color(190, 82, 45));
      g.fillRect(25, 65, 100, 30);
      g.setColor(Color.RED);
      g.drawString("this is text", 25, 100);

   }
}

2 个答案:

答案 0 :(得分:5)

猜测:你已经在同一个名为Graphics的类路径中创建了另一个类,并且编译器将你的类与java.awt.Graphics类混淆。如果是这样,您可以使用完全限定的类名来找到:

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

public class Peach extends JPanel {
   public void paintComponent(java.awt.Graphics g) { // *** note change
      super.paintComponent(g);
      this.setBackground(Color.WHITE);
      g.setColor(Color.BLUE);
      g.fillRect(25, 25, 100, 30);
      g.setColor(new Color(190, 82, 45));
      g.fillRect(25, 65, 100, 30);
      g.setColor(Color.RED);
      g.drawString("this is text", 25, 100);

   }
}

如果是这样,那么将你自己的Graphics类重命名为其他东西,比如MyGraphics。

但是,您还需要发布实际的错误消息(请参阅上面的评论)。

答案 1 :(得分:0)

所以我遇到了完全相同的问题,而我要做的就是复制文件中的所有代码,这些代码会给我错误,删除该文件,然后将我的代码粘贴到一个新文件中,它就开始工作了。这就是我让我的工作方式,我希望它也适合你。