0

WindowBuilder Plugin for Eclipse 3.7 をインストールしました。

さまざまなメソッド (JFrame、JPanel、アプリケーションなど) を使用して非常にシンプルな 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);

    }
}

ここでメイン メソッドを作成すると、静的なメイン メソッドで非静的コンストラクターを参照することが許可されていないため、JApplet を作成できません。少なくとも私はそれを行う方法を知りません。では、この非常に単純な 1 つのクラスのプログラムを実行可能な .jar またはアプレットにエクスポートするにはどうすればよいでしょうか。

@Andrew: 「アプリケーション」は、WindowBuilder->Swing Designer メニューのオプションの 1 つを意味していました。これは実際には Application Window と呼ばれ、JApplet、JFrame、JDialog などもあります。別のPCに持ち込んだり、Web経由で実行したりできる実行可能ファイルが必要なので、cmdウィンドウで大雑把に実行する必要はありません...

4

2 に答える 2

3

これを試してください。これは、Eclipse で jar または実行可能な jar を作成する方法です。プロジェクト内のすべての外部ライブラリが含まれます。

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 に答える