0

我为 Eclipse 3.7 安装了 WindowBuilder 插件。

我用各种方法(JFrame、JPanel、Application 等)创建了一个非常简单的 GUI。我尝试将我的项目导出为可运行的 JAR / .jar 文件。我必须选择主类:它没有显示任何可供选择的内容!导出仍然有效,但文件无用。

如何正确导出我的 GUI 类?

编辑:似乎我需要一个主要方法来使该类显示在主类列表中。但问题是,WindowBuilder 创建了一个这样的类:

import javax.swing.JApplet;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;


public class myGuiClass extends JApplet {

    /**
     * Create the applet.
     */
    public myGuiClass() {
        getContentPane().setLayout(null);

        JButton btnMybutton = new JButton("myButton");
        btnMybutton.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent arg0) {
                System.out.println("Button pressed!");
            }
        });
        btnMybutton.setBounds(10, 11, 91, 23);
        getContentPane().add(btnMybutton);

    }
}

如果我在这里创建一个 main 方法,我将无法创建我的 JApplet,因为它不允许在静态 main 方法中引用其非静态构造函数。至少我不知道该怎么做。那么我将如何将这个非常简单的一类程序导出到可运行的 .jar 或小程序中呢?

@Andrew:“应用程序”是指 WindowBuilder-> Swing Designer 菜单中的选项之一。其实就是应用程序窗口,还有JApplet、JFrame、JDialog等。我想要一些可执行的东西,我可以带到另一台电脑上或通过网络运行,所以我不必用 cmd 窗口处理粗略的执行事情......

4

2 回答 2

3

Try this, this is the way to create a jar or runnable jar in eclipse, all your external libraries in the project will be included

File -> Export-> Java ->Runnbale JAR file

Launch configuration : your Class containing the public static void main(String[] args)

Export destination : Target place

Library Handling:

Package required libraries into generated JAR

FINISH
于 2012-05-31T19:04:29.233 回答
1

试试这个代码 - 作为小程序或自由浮动(基于框架)应用程序工作。

import java.awt.FlowLayout;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;

/** This is an hybrid application/applet.  It can be run
 * as either a JFrame or JApplet. */
public class MyGuiApp extends JApplet {

    /** Construct the GUI for an applet. */
    public void init() {
        try {
            SwingUtilities.invokeAndWait( new Runnable() {
                public void run() {
                    GUI gui = new GUI();
                    getContentPane().add(gui.getGui());
                }
            });
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    /** Launch the GUI in a frame. */
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable(){
            @Override 
            public void run() {
                JFrame f = new JFrame("My GUI");
                f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                GUI gui = new GUI();
                f.getContentPane().add(gui.getGui());
                f.pack();
                f.setLocationByPlatform(true);
                f.setVisible(true);
            }
        });
    }
}

class GUI {

    public JComponent getGui() {
        // Use layouts! ..
        JPanel p = new JPanel(new FlowLayout(FlowLayout.LEADING));
        // ..possibly with borders.
        p.setBorder(new EmptyBorder(10,10,10,10));

        JButton btnMybutton = new JButton("myButton");
        btnMybutton.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent arg0) {
                System.out.println("Button pressed!");
            }
        });
        p.add(btnMybutton);
        return p;
    }
}
于 2012-05-31T18:36:37.247 回答