我收到错误,说这些方法不适用于图形类型?我不完全了解这里发生了什么 - 有人能解释我做错了什么以及为什么错了?谢谢,
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);
}
}
答案 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)
所以我遇到了完全相同的问题,而我要做的就是复制文件中的所有代码,这些代码会给我错误,删除该文件,然后将我的代码粘贴到一个新文件中,它就开始工作了。这就是我让我的工作方式,我希望它也适合你。