今回はJavaのSwingを使ってウインドウを表示してみるサンプルです。単純にHello World!とメッセージが表示されたウインドウを作ってみましょう。ではソースコードです。GUIStartSample.javaという名前のファイルで以下の内容で保存しコンパイル、実行します。
import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.SwingUtilities; public class GUIStartSample{ public static void main(String... args){ SwingUtilities.invokeLater(GUIStartSample::start); } private static void start(){ var frame = new JFrame(); var label = new JLabel("Hello World!"); frame.add(label); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); } }
mainメソッドでSwingUtilities.invokeLaterという難しそうなものがでてきましたが、ここでSwingのウインドウを作ったり、更新したりするときの処理を指定します。ここではstartメソッドで画面を作りますよという感じです。詳しく知りたい場合は『Java EventDispatchThread』でGoogleなどで検索すると詳しい解説が出てくるかと思います。
あとはウインドウを扱うJFrameやテキストを表示する部品であるJLabelを作って表示しているだけです。setDefaultCloseOperationはウインドウを閉じられたときの挙動を設定するもので、ここでは『ウインドウが閉じられたらプログラムを終了するよ』という内容になっています。これをやらないとウインドウが閉じられてもプログラムは動き続けます。packはウインドウに追加されたラベルやボタンなどの大きさを考慮していい感じにウインドウの大きさを調整してね!みたいなメソッドです。自分でウインドウの大きさを指定する方法もありますがSwingでは基本的にはpackを使う気がします。さぁ、これからSwingでいろんな部品を扱っていきましょう。