JavaのGUIサンプル


JavaGUIのサンプルです。
JavaのGUIについて、mainクラスに全記述されているサンプルが散見され、私自身、実用的な使用法を見つけるのに難儀した覚えがあるので、mainクラスから分離した形で実装したGUIダイアログ群をここで共有します。

1.swing.JOptionPane

InfoDialog

汎用的なダイアログです。

main.java
public class Main {
    public static void main(String[] args) {
        InfoDialog.showDialog("ファイルを選択してください(.xlsx)。");
       }
}
InfoDialog.java
import javax.swing.JOptionPane;

class InfoDialog {

    public static void showDialog(String msg) {
        JOptionPane.showMessageDialog(null, msg,"たいとる",JOptionPane.INFORMATION_MESSAGE);
    }
}

このメソッドを使う場面で引数のStringに、ダイアログ中で表示したい文字列を指定しましょう。ここでは”ファイルを選択してください(.xlsx)。”です。
showMessageDialogメソッドの引数のうち2-4番目のものは理解できる範囲だと思うのですが、1番目はparentComponentを引数に取ります。parentComponentが一体何なのか、調べてもわかりませんでしたが、基本nullでいいはずです。

”はい”、”いいえ”を選択させたい場合はshowMessageDialogではなく、showConfirmDialogメソッドを使います。

ErrorDialog

ShowMessageDialogの第4引数をINFORMATION_MESSAGE、からERROR_MESSAGEに変えるだけで他は変わりません。

main.java
public class Main {
    public static void main(String[] args) {
        InfoDialog.ErrorDialog(".xlsxが未指定です。終了します。");
       }
}
ErrorDialog.java
import javax.swing.JOptionPane;

class ErrorDialog {

    public static void showDialog(String msg) {
        JOptionPane.showMessageDialog(null, msg,"たいとる",JOptionPane.ERROR_MESSAGE);
    }
}

2.awt.FileDialog

ユーザーにファイルを選択させるダイヤログです。

Main.java
public class Main {
    public static void main(String[] args) {
        new WindowTest();
        File file = new File(WindowTest.dir + WindowTest.fileName);
       }
}
WindowTest.java
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.event.WindowListener;

class WindowTest extends Frame implements WindowListener {
    static String dir;
    static String fileName;

    WindowTest() {
        FileDialog fileDialog = new FileDialog(this);
        fileDialog.setVisible(true);
        this.dir = fileDialog.getDirectory();
        this.fileName = fileDialog.getFile();

        if (fileName == null) {
            ErrorDialog.showDialog(".xlsxが未指定です。終了します。");
            System.exit(0);
        }
    }

    public void windowActivated(java.awt.event.WindowEvent e) {
    }
    public void windowClosed(java.awt.event.WindowEvent e) {
    }
    public void windowClosing(java.awt.event.WindowEvent e) {
        System.exit(1);
    }
    public void windowDeactivated(java.awt.event.WindowEvent e) {
    }
    public void windowDeiconified(java.awt.event.WindowEvent e) {
    }
    public void windowIconified(java.awt.event.WindowEvent e) {
    }
    public void windowOpened(java.awt.event.WindowEvent e) {
    }
}

以上です。