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 {
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);
// ラベル作成
add(label);
// メニュー作成
m.setMnemonic('F');
item1.setMnemonic('O');
// メニューを選んだ時の動作を設定
@Override
open();
}
});
m.add(item1);
mb.add(m);
setJMenuBar(mb);
// フレームを表示
setVisible(true);
}
// ファイル選択ダイアログを表示し、選択したファイルをラベルに設定
private void open() {
fc.setFileFilter(new FileNameExtensionFilter("画像ファイル", "png",
"jpg", "Jpeg", "GIF", "bmp")); // (2)
if (fc.
showOpenDialog(this) == JFileChooser.
APPROVE_OPTION) { File f
= fc.
getSelectedFile(); label.setIcon(icon);
}
}
}
aW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OwppbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CmltcG9ydCBqYXZhLmlvLkZpbGU7CgppbXBvcnQgamF2YXguc3dpbmcuSW1hZ2VJY29uOwppbXBvcnQgamF2YXguc3dpbmcuSkZpbGVDaG9vc2VyOwppbXBvcnQgamF2YXguc3dpbmcuSkZyYW1lOwppbXBvcnQgamF2YXguc3dpbmcuSkxhYmVsOwppbXBvcnQgamF2YXguc3dpbmcuSk1lbnU7CmltcG9ydCBqYXZheC5zd2luZy5KTWVudUJhcjsKaW1wb3J0IGphdmF4LnN3aW5nLkpNZW51SXRlbTsKaW1wb3J0IGphdmF4LnN3aW5nLmZpbGVjaG9vc2VyLkZpbGVOYW1lRXh0ZW5zaW9uRmlsdGVyOwoKcHVibGljIGNsYXNzIFBpY3R1cmVPcGVuIGV4dGVuZHMgSkZyYW1lIHsKICAgIEpMYWJlbCBsYWJlbDsKCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CgkJbmV3IFBpY3R1cmVPcGVuKCk7Cgl9CgoJcHVibGljIFBpY3R1cmVPcGVuKCkgewoJCWluaXQoKTsKCX0KCglwcml2YXRlIHZvaWQgaW5pdCgpIHsKCQlzZXREZWZhdWx0Q2xvc2VPcGVyYXRpb24oSkZyYW1lLkVYSVRfT05fQ0xPU0UpOwoJCXNldFRpdGxlKCLjg6Hjg4vjg6Xjg7zjgYvjgonnlLvlg4/jg5XjgqHjgqTjg6vjgpLplovjgYTjgabooajnpLoiKTsKCQlzZXRCb3VuZHMoMTAwLCAxMDAsIDUwMCwgNDAwKTsKCgkJLy8g44Op44OZ44Or5L2c5oiQCgkJbGFiZWwgPSBuZXcgSkxhYmVsKCk7CgkJYWRkKGxhYmVsKTsKCgkJLy8g44Oh44OL44Ol44O85L2c5oiQCgkJSk1lbnVCYXIgbWIgPSBuZXcgSk1lbnVCYXIoKTsKCQlKTWVudSBtID0gbmV3IEpNZW51KCLjg5XjgqHjgqTjg6soRikiKTsKCQltLnNldE1uZW1vbmljKCdGJyk7CgkJSk1lbnVJdGVtIGl0ZW0xID0gbmV3IEpNZW51SXRlbSgi6ZaL44GPKE8pIik7CgkJaXRlbTEuc2V0TW5lbW9uaWMoJ08nKTsKCQkvLyDjg6Hjg4vjg6Xjg7zjgpLpgbjjgpPjgaDmmYLjga7li5XkvZzjgpLoqK3lrpoKCQlpdGVtMS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CgkJCUBPdmVycmlkZQoJCQlwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgewoJCQkJb3BlbigpOwoJCQl9CgkJfSk7CgkJbS5hZGQoaXRlbTEpOwoJCW1iLmFkZChtKTsKCQlzZXRKTWVudUJhcihtYik7CgkJCgkJLy8g44OV44Os44O844Og44KS6KGo56S6CgkJc2V0VmlzaWJsZSh0cnVlKTsKCX0KCgkvLyDjg5XjgqHjgqTjg6vpgbjmip7jg4DjgqTjgqLjg63jgrDjgpLooajnpLrjgZfjgIHpgbjmip7jgZfjgZ/jg5XjgqHjgqTjg6vjgpLjg6njg5njg6vjgavoqK3lrpoKCXByaXZhdGUgdm9pZCBvcGVuKCkgewoJCUpGaWxlQ2hvb3NlciBmYyA9IG5ldyBKRmlsZUNob29zZXIoKTsKCQlmYy5zZXRGaWxlRmlsdGVyKG5ldyBGaWxlTmFtZUV4dGVuc2lvbkZpbHRlcigi55S75YOP44OV44Kh44Kk44OrIiwgInBuZyIsCgkJCQkianBnIiwgIkpwZWciLCAiR0lGIiwgImJtcCIpKTsgLy8gKDIpCgkJaWYgKGZjLnNob3dPcGVuRGlhbG9nKHRoaXMpID09IEpGaWxlQ2hvb3Nlci5BUFBST1ZFX09QVElPTikgewoJCQlGaWxlIGYgPSBmYy5nZXRTZWxlY3RlZEZpbGUoKTsKCQkJSW1hZ2VJY29uIGljb24gPSBuZXcgSW1hZ2VJY29uKGYuZ2V0UGF0aCgpKTsKCQkJbGFiZWwuc2V0SWNvbihpY29uKTsKCQl9Cgl9Cn0K