这就是我当前项目的注释中给出的示例。通常我会运行示例代码并使用它来查看一切是如何工作的。但是这个特定的代码无法编译。有人可以告诉我为什么吗?
我使用 eclipse 创建了一个 Java 项目,然后创建了一个名为 Gui 的类(如您所见),这是我们整个学期都在使用的程序。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Gui
{
public class GuiApp extends JFrame
{
private DrawingPanel panel;
public GuiApp()
{
setBounds(100, 100, 450, 300);//x,y,w,h of window
panel = new DrawingPanel();
this.setContentPane(panel);
}
public void main(String [] args)
{
GuiApp f = new GuiApp();
f.setTitle("Smiley");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
public class DrawingPanel extends JPanel
{
public DrawingPanel()
{
this.setBackground(Color.BLUE);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
drawFlower(g, 20, 10, 10);
}
}
public void drawFlower(Graphics g,int x,int y,int s)
{
g.setColor(Color.PINK);
g.fillOval(x, y, s, s);
g.fillOval(x-s, y-s, s, s);
g.fillOval(x, y-s, s, s);
g.fillOval(x-s, y, s, s);
g.setColor(Color.YELLOW);
g.fillOval(x-s/2, y-s/2, s, s);
}
}
最佳答案
问题是您有多个嵌套类,因此您无法在嵌套类中声明 main 方法。只需删除 Gui 类,或为每个类创建一个单独的文件
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class GuiApp extends JFrame
{
private DrawingPanel panel;
public class DrawingPanel extends JPanel
{
public DrawingPanel()
{
this.setBackground(Color.BLUE);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
drawFlower(g, 20, 10, 10);
}
}
public void drawFlower(Graphics g,int x,int y,int s)
{
g.setColor(Color.PINK);
g.fillOval(x, y, s, s);
g.fillOval(x-s, y-s, s, s);
g.fillOval(x, y-s, s, s);
g.fillOval(x-s, y, s, s);
g.setColor(Color.YELLOW);
g.fillOval(x-s/2, y-s/2, s, s);
}
public GuiApp()
{
setBounds(100, 100, 450, 300);//x,y,w,h of window
panel = new DrawingPanel();
this.setContentPane(panel);
}
public static void main(String [] args)
{
GuiApp f = new GuiApp();
f.setTitle("Smiley");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
关于java - 如何使用 Eclipse 和给定的代码在 Java 中编译 GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34116032/