JavaのSwingで、ファイル選択ダイアログを表示して、選んだ画像ファイルをフレームに表示するサンプルです。
サンプルダウンロード(zipの中のjarをダブルクリックすると実行できます)
解説
メニューからファイル選択ダイアログを表示し、選んだ画像ファイルを表示するサンプルです。
今回のサンプルは以下の3ステップで構成されています。
- メニューの表示と選択時のアクションを設定
- ファイル選択ダイアログの表示
- ファイル選択ダイアログで選択された画像をラベルに設定
サンプルソース
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.filechooser.FileNameExtensionFilter;
public class PictureOpen extends JFrame {
JLabel label;
public static void main(String[] args) {
new PictureOpen();
}
public PictureOpen() {
init();
}
private void init() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("メニューから画像ファイルを開いて表示");
setBounds(100, 100, 500, 400);
// ラベル作成
label = new JLabel();
add(label);
// メニュー作成
JMenuBar mb = new JMenuBar();
JMenu m = new JMenu("ファイル(F)");
m.setMnemonic('F');
JMenuItem item1 = new JMenuItem("開く(O)");
item1.setMnemonic('O');
// メニューを選んだ時の動作を設定
item1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// ファイル選択ダイアログを表示し、選択したファイルをラベルに設定
// するメソッドを呼び出す
open();
}
});
m.add(item1);
mb.add(m);
setJMenuBar(mb);
// フレームを表示
setVisible(true);
}
// ファイル選択ダイアログを表示し、選択したファイルをラベルに設定
private void open() {
JFileChooser fc = new JFileChooser();
// 画像ファイルの拡張子を設定
fc.setFileFilter(new FileNameExtensionFilter("画像ファイル", "png", "jpg",
"Jpeg", "GIF", "bmp"));
// ファイル選択ダイアログを表示、戻り値がAPPROVE_OPTIONの場合、画像ファイルを開く
if (fc.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
File f = fc.getSelectedFile();
// アイコンをラベルに設定
ImageIcon icon = new ImageIcon(f.getPath());
label.setIcon(icon);
}
}
}
動かしたところ
メニューを選択
画像ファイルを選択
選択した画像を表示
最終更新:2013年07月31日 00:21
[Amazon商品]
[429] Client error: `POST https://webservices.amazon.co.jp/paapi5/getitems` resulted in a `429 Too Many Requests` response:
{"__type":"com.amazon.paapi5#TooManyRequestsException","Errors":[{"Code":"TooManyRequests","Message":"The request was de (truncated...)