IntelliJ IDEA Swing GUIウィザードの使用を開始する方法。 詳細な説明

長い間、私は一般的にJavaで、特にSwingを使用してデスクトップアプリケーションを作成しませんでした。 ただし、小さなGUIが必要でした。 IntelliJ IDEA Communityエディション、2016.1バージョンをツールとして選択しました。



彫刻を始めたのはもちろん、最初に出会ったものです。BorlandJava Builder 2006の時代から多くのことが流れてきましたが、画面インターフェースを作成するのは簡単ではなく、逆になりました。 IDEAを選択した理由の1つは、「すぐに使える」Swingデザイナーの存在だけでしたが、その使用方法は明らかに不明です-フォームが生成され、クラスが作成され、制御変数がデザイナーから作成されます...現れる



ゼロに関する情報、インターネットを介してうめきました。 人々は言う、「作成して行け!」 うーん...



このテーマに関する小さな試練の結果に基づいて、私は過去の経験を考慮すると、一般的にSwingで初めてフォームを彫刻する初心者よりも私を検索する方がはるかに簡単だったため、命令を公開することにしました。



JetBrains IntelliJ IDEA 2016.1を使用したSwing GUIフォームの作成





まず、プロセスを理解するために、それから始めることをお勧めします。 IDEAメニュー「ファイル->設定」に移動するには-「エディタ-> GUIデザイナ」があり、Javaソースコードの「GUIを生成:」チェックボックスをチェックします。 (これは、最初の段階でプロセスを少し理解するのに役立ちます-その後、元に戻すことが可能になります)。



画像



次に、プロジェクトのソースコードツリーを開き、任意のフォルダーまたはJavaソースコードファイルを右クリックして、「新規->ダイアログ」を選択します-フォームのクラス名を入力します。



画像



その結果、JDialog後継クラス(作成して使用できる)とそのフォームを実際に生成しました。

私たちはプロジェクトを立ち上げ、...ああ、奇跡です! コンパイル時に、IDEAはファイルの最後にいくつかの追加コードを追加します。



{ // GUI initializer generated by IntelliJ IDEA GUI Designer // >>> IMPORTANT!! <<< // DO NOT EDIT OR ADD ANY CODE HERE! $$$setupUI$$$(); } /** * Method generated by IntelliJ IDEA GUI Designer * >>> IMPORTANT!! <<< * DO NOT edit this method OR call it in your code! * * @noinspection ALL */ private void $$$setupUI$$$() { contentPane = new JPanel(); contentPane.setLayout(new com.intellij.uiDesigner.core.GridLayoutManager(2, 1, new Insets(10, 10, 10, 10), -1, -1)); .................... } /** * @noinspection ALL */ public JComponent $$$getRootComponent$$$() { return contentPane; }
      
      





Swingフォーム全体が$$$ setupUI $$$自動生成メソッドで構成されていることは簡単に推測できます。



最初に設定した設定を覚えておいてください-「GUI Into:-> Java source code」。 設定しない場合、このメソッドは、Javaファイルをバイパスして、_class_ファイルに直接表示されます(疑わしい場合は、逆コンパイルします)。 したがって、「GUI Into:」設定を元の形式に戻すことができます。これにより、このコード(編集しないことを強くお勧めします)が目障りにならないようにします。



これがどのように機能するかを理解したので、必ずしもダイアログではなく、他のフォームの作成に移りましょう。



再度、フォルダまたはソースコードファイルを右クリックして、「新規-> GUIフォーム」を選択します-フォームのクラス名を入力します。



クラスが生成され、そのフォームが作成されます。 フォームにいくつかのコントロールをスローします。 GUIデザイナーで、ルート要素の名前を確認します(IDEAが名前を指定しなかった場合、通常はpanel1ですが、これが発生した場合は強制します-わかりやすくするためにrootPanelを呼び出しました)。



画像



クラスのソースコードに渡します。



だから:

1.クラスの継承「extends JFrame」を追加します。

2.行を持つクラスコンストラクターを追加します。



  setContentPane(panel1); setVisible(true);
      
      





クラス概要コード
 public class GUIFrame extends JFrame{ private JButton button1; private JPanel rootPanel; public GUIFrame() { setContentPane(rootPanel); setVisible(true); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { new GUIFrame(); } }
      
      







それだけです フォームはすぐに食べられます。 残りについては、多くのSwing命令の残りを参照してください。



PSあるいは、JFrameからクラスを継承することはできませんが、次の形式のコンストラクターを作成できます。



  JFrame frame = new JFrame(); frame.setContentPane(panel1); frame.setVisible(true);
      
      





このオプションも機能します-誰かが役に立つかもしれません。



All Articles