这是我的大学项目,我正在破坏我的Java GUI不起作用的原因。情况就是这样:代码编译并执行没有问题。
此代码应在桌面上创建300 X 300帧中心并创建圆圈,并在下方打印我的名字。
我让它一直工作到画面,但没有圆圈
package gui;
import javax.swing.*;
import java.awt.*;
import javax.swing.JFrame;
public class GUI extends JFrame{
public void Paint (Graphics g){
super.paintComponents(g);
g.setColor(Color.yellow);
g.fillOval(50, 50, 200, 200);
g.setColor(Color.BLACK);
g.drawArc(75, 60, 150, 150, -25, -125);
g.fillOval(100, 100, 25, 25);
g.fillOval(175, 100, 25, 25);
g.setColor(Color.BLUE);
g.setFont(new Font("Serif", Font.BOLD,18));
g.drawString("My Nanme is BOB", 33, 275);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
GUI GUI = new GUI() ;
GUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GUI.setSize(300,300);
GUI.setTitle("BOB's GUI App");
GUI.setVisible(true);
GUI.setLocationRelativeTo(null);
我非常感谢你的输出。还请给我一个提示,说明为什么它不起作用
答案 0 :(得分:1)
Java区分大小写:
public void Paint (Graphics g)
永远不会覆盖
public void paint (Graphics g)
答案 1 :(得分:0)
您的paint()方法应该有一个小写的'P'。正如您目前所拥有的那样,您不会覆盖现有的JFrame
方法。
为避免将来出现此类问题,我会调查@Overrides annotation。如果你在上面使用它,它会告诉你你没有覆盖任何东西!
答案 2 :(得分:0)
在你的主要内容中,你写了
GUI GUI = new GUI() ;
你应该让第二个GUI成为别的东西。例如,
GUI gui = new GUI();