java - 如何使用 Eclipse 和给定的代码在 Java 中编译 GUI

标签 java eclipse user-interface

这就是我当前项目的注释中给出的示例。通常我会运行示例代码并使用它来查看一切是如何工作的。但是这个特定的代码无法编译。有人可以告诉我为什么吗?

我使用 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/

相关文章:

java - 我有一个 sql select 查询错误,不知道正确的语法是什么

java - 可以从多个模块 : <unnamed>, java.xml 访问包 org.w3c.dom

java - 线程对信号 3 作出 react

java - 需要一个函数式接口(interface)来操作字符串

java - 当我在 eclipse jsp 文件中重用 pstmt.executeUpdate 时出现 mysql 更新错误

java - 使用适用于 Java 的 MQ 类运行简单 jar 时出错

python - wxPython 中的 sendMessage() takes at most 3 arguments (4 given) 错误

java - 使用线程和/或任务更新 JavaFx Gui

java - 如果没有 setEnabled(false),如何将 JButton 组件设置为不可点击?

java - 即使通过java中的测试传递值,属性也为空?