java - GUI 程序未在 BlueJ 中启动

标签 java swing constructor bluej

我尝试制作我的第一个 GUI 程序,我是一个 Java 菜鸟,只是按照教程来启动和运行。我逐行复制了以下代码,试图了解发生了什么,总的来说我是。但是该程序无法在 BlueJ 中运行。虚拟机永远不会启动。

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JComboBox;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JList;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;



public class GUI{
    public void GUI(){
       JFrame guiFrame1= new JFrame();
       guiFrame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       guiFrame1.setTitle("First GUI");
       guiFrame1.setSize(300,250);
       guiFrame1.setLocationRelativeTo(null);

        String[] fruitOptions = {"Apple", "Apricot", "Banana"
                ,"Cherry", "Date", "Kiwi", "Orange", "Pear", "Strawberry"};

        //Options for the JList
        String[] vegOptions = {"Asparagus", "Beans", "Broccoli", "Cabbage"
                , "Carrot", "Celery", "Cucumber", "Leek", "Mushroom"
                , "Pepper", "Radish", "Shallot", "Spinach", "Swede"
                , "Turnip"};


       //fruits
       final JPanel comboPanel= new JPanel();
       JLabel comboLbl= new JLabel("Fruits");
       JComboBox fruits = new JComboBox(fruitOptions);
       comboPanel.add(comboLbl);
       comboPanel.add(fruits);

       //veg
       final JPanel listPanel= new JPanel();
       listPanel.setVisible(false);
       JLabel listLbl1= new JLabel("Vegetables:");
       JList vegs= new JList (vegOptions);
       vegs.setLayoutOrientation(JList.HORIZONTAL_WRAP);

       listPanel.add(listLbl1);
       listPanel.add(vegs);

       //button 
       JButton vegFruitBut = new JButton("Fruit or Veg");

       vegFruitBut.addActionListener(new ActionListener()
       {
           @Override
           public void actionPerformed(ActionEvent event)
           {
               listPanel.setVisible(!listPanel.isVisible());
               comboPanel.setVisible(!comboPanel.isVisible());
           }

        });

       guiFrame1.add(comboPanel, BorderLayout.NORTH);
       guiFrame1.add(listPanel, BorderLayout.CENTER);
       guiFrame1.add(vegFruitBut,BorderLayout.SOUTH);
       guiFrame1.setVisible(true);


        }

    public static void main(String args[]){
        GUI s= new GUI();

    }
}

最佳答案

方法有返回类型,构造函数没有 - 删除 void 关键字,以便可以调用 Swing 代码

public GUI() {
       ^

阅读:Providing Constructors for Your Classes

关于java - GUI 程序未在 BlueJ 中启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21912362/

相关文章:

java - 如何在退出类的任何方法时自动释放连接?

java - AudioRecord 对象未在项目中初始化

java - 如何在 ViewModel android 中使用 mBagOfTags?

java - 为什么 JPasswordField.getPassword() 会创建一个包含密码的字符串?

java - 整个JFrame中的JTextField而不是我确定的Area

java - Android检测是否在设计模式下调用了构造函数?

java - 如何从 mySql 数据库中只读取 10 行?

java - 管理大量规则 - Drools

java - 无法跨程序访问jlabel

java - 在构造函数中调用私有(private)方法是一个好的设计吗?