はじめに
Javaの標準GUIライブラリ「Swing」を使えば、簡単にデスクトップアプリケーションを作ることができます。本記事では、画像を表示するシンプルなUIをSwingで作成する手順をわかりやすく解説します。
Swingとは?
Swingは、JavaでGUIアプリケーションを開発するための標準ライブラリです。以下の特徴があります。
- 標準Javaに含まれている
- 軽量でクロスプラットフォーム対応
- コンポーネントが豊富(ボタン、ラベル、パネルなど)
開発環境
- Java 11以上
- IDE:Eclipse、IntelliJ IDEA、VS Codeなど
- 画像ファイル(例:
sample.png
)
基本構成:画像表示付きのウィンドウを作る
画像表示のコード例
import javax.swing.*;
import java.awt.*;
public class ImageFrame extends JFrame {
public ImageFrame() {
setTitle("画像付きUIのサンプル");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
// 画像の読み込み
ImageIcon icon = new ImageIcon("sample.png");
JLabel imageLabel = new JLabel(icon);
// テキストラベル
JLabel textLabel = new JLabel("これは画像付きのSwingウィンドウです");
textLabel.setHorizontalAlignment(SwingConstants.CENTER);
// レイアウト設定
setLayout(new BorderLayout());
add(imageLabel, BorderLayout.CENTER);
add(textLabel, BorderLayout.SOUTH);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
new ImageFrame().setVisible(true);
});
}
}
実行結果の説明
ImageIcon
で画像ファイルを読み込みJLabel
に画像とテキストを表示BorderLayout
で上下に配置
画像をリサイズして表示したい場合
ImageIcon originalIcon = new ImageIcon("sample.png");
Image scaledImage = originalIcon.getImage().getScaledInstance(200, 150, Image.SCALE_SMOOTH);
ImageIcon resizedIcon = new ImageIcon(scaledImage);
JLabel resizedLabel = new JLabel(resizedIcon);
UIにボタンを追加してみる
JButton button = new JButton("クリックして画像を再読み込み");
button.addActionListener(e -> {
// 再読み込み処理(例として再表示)
imageLabel.setIcon(new ImageIcon("sample.png"));
});
add(button, BorderLayout.NORTH);
まとめ
Swingを使えば、Javaだけで画像付きのGUIアプリを簡単に作成できます。今回紹介した例では、画像の表示・サイズ変更・UIコンポーネントの組み合わせまでカバーしました。
これを応用すれば、簡易ビューアーや画像管理アプリなども開発できます。次のステップとして、以下の機能追加を検討してみましょう。
- 画像の複数表示
- ファイル選択ダイアログ
- ボタンで画像を切り替える
補足
sample.png
はプロジェクトのルートに配置してください。- Mac/Linux環境でも同じコードで動作します。