使用JFrame找不到主类

时间:2013-12-03 02:14:09

标签: java swing jframe rgb main

之前发生过同样的事情,我无法修复它。它找不到主要的

import java.awt.Color;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.PointerInfo;
import java.awt.Robot;
import javax.swing.JFrame;
import java.awt.AWTException;
import java.awt.HeadlessException;
import java.awt.PopupMenu;

public class Final {
   static PointerInfo pointer;
   static Point point;
   static Robot robot;
   static Color color;
   private static PopupMenu Pan;

   public static void main() {
      JFrame F = new JFrame("RGB");
      F.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      F.getContentPane().add(Pan);
      F.pack();
      F.setSize(300, 300);
      F.setVisible(true);
      F.setSize(300, 300);
      try {
         robot = new Robot();
         while (true) {
            pointer = MouseInfo.getPointerInfo();
            point = pointer.getLocation();
            if (point.getX() == 0 && point.getY() == 0) {
               break;
            } else {
               color = robot.getPixelColor((int) point.getX(),
                     (int) point.getY());
               System.out.println("Color at: " + point.getX() + ","
                     + point.getY() + " is: " + color);
            }
         }
      } catch (AWTException | HeadlessException e) {
      }
   }
}

1 个答案:

答案 0 :(得分:5)

您的主要方法签名是错误的。你需要String [] args参数。

换句话说,这个:

public static void main() {

应该是这样的:

public static void main(String[] args) {

顺便说一句:你的Swing代码与while (true)块的混合是一件危险的事情。它可以在这个玩具程序中工作,其中所有东西都是在main方法中创建的,但是一旦你移动到更高级的东西,它将始终锁定你的GUI。


接下来:你应该永远不会有一个空的catch块。这是编程相当于闭着眼睛驾驶摩托车。至少打印一个堆栈跟踪。


接下来,您将希望从main方法中获取大部分代码,并使用非静态方法和字段进入适当的类。