LoginSignup
3
5

More than 5 years have passed since last update.

JavaのGUIサンプル

Last updated at Posted at 2018-04-12

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

1.swing.JOptionPane

InfoDialog

無題.png

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

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に変えるだけで他は変わりません。
無題2.png

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

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

無題3.png

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) {
    }
}

以上です。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5