Java GUI未显示

时间:2015-12-30 15:29:10

标签: java user-interface

这是我的大学项目,我正在破坏我的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);

enter image description here

我非常感谢你的输出。还请给我一个提示,说明为什么它不起作用

3 个答案:

答案 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();