1 java rgb swing program-entry-point jframe
同样的事情发生在我之前,我无法解决它.它找不到主力
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) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
您的主要方法签名是错误的.你需要String [] args参数.
换句话说,这个:
public static void main() {
Run Code Online (Sandbox Code Playgroud)
应该这样:
public static void main(String[] args) {
Run Code Online (Sandbox Code Playgroud)
顺便说一下:Swing代码与while (true)块的混合是一件危险的事情.它可以在这个玩具程序中工作,其中所有东西都是在main方法中创建的,但是一旦你移动到更高级的东西,它将始终锁定你的GUI.
接下来:你几乎不应该有一个空的catch块.这是编程相当于闭着眼睛驾驶摩托车.至少打印一个堆栈跟踪.
接下来,您将希望从main方法中获取大部分代码,并使用非静态方法和字段进入适当的类.