fork download
  1. import java.awt.event.ActionEvent;
  2. import java.awt.event.ActionListener;
  3. import java.io.File;
  4.  
  5. import javax.swing.ImageIcon;
  6. import javax.swing.JFileChooser;
  7. import javax.swing.JFrame;
  8. import javax.swing.JLabel;
  9. import javax.swing.JMenu;
  10. import javax.swing.JMenuBar;
  11. import javax.swing.JMenuItem;
  12. import javax.swing.filechooser.FileNameExtensionFilter;
  13.  
  14. public class PictureOpen extends JFrame {
  15. JLabel label;
  16.  
  17. public static void main(String[] args) {
  18. new PictureOpen();
  19. }
  20.  
  21. public PictureOpen() {
  22. init();
  23. }
  24.  
  25. private void init() {
  26. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  27. setTitle("メニューから画像ファイルを開いて表示");
  28. setBounds(100, 100, 500, 400);
  29.  
  30. // ラベル作成
  31. label = new JLabel();
  32. add(label);
  33.  
  34. // メニュー作成
  35. JMenuBar mb = new JMenuBar();
  36. JMenu m = new JMenu("ファイル(F)");
  37. m.setMnemonic('F');
  38. JMenuItem item1 = new JMenuItem("開く(O)");
  39. item1.setMnemonic('O');
  40. // メニューを選んだ時の動作を設定
  41. item1.addActionListener(new ActionListener() {
  42. @Override
  43. public void actionPerformed(ActionEvent e) {
  44. open();
  45. }
  46. });
  47. m.add(item1);
  48. mb.add(m);
  49. setJMenuBar(mb);
  50.  
  51. // フレームを表示
  52. setVisible(true);
  53. }
  54.  
  55. // ファイル選択ダイアログを表示し、選択したファイルをラベルに設定
  56. private void open() {
  57. fc.setFileFilter(new FileNameExtensionFilter("画像ファイル", "png",
  58. "jpg", "Jpeg", "GIF", "bmp")); // (2)
  59. if (fc.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
  60. File f = fc.getSelectedFile();
  61. ImageIcon icon = new ImageIcon(f.getPath());
  62. label.setIcon(icon);
  63. }
  64. }
  65. }
  66.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:14: class PictureOpen is public, should be declared in a file named PictureOpen.java
public class PictureOpen extends JFrame {
       ^
1 error
stdout
Standard output is empty