|
分類:[Java]
プログラミング初心者ではありませんが、JAVA初心者です。 とあるサイトにあったswingを使ったメモ帳サンプルを拝借し、カスタマイズをしています。
そのソースには閉じるボタン(右上の×ボタン)のイベントがなかったため追加して保存するか否かのダイアログを組み込もうとしておりますがそこが反応しません。
ソースの一部を下記します。
public class EditorFrame extends JFrame implements ActionListener { Container con; JMenuBar mb ; JMenu muFile ; JMenu muEdit ;
JMenuItem miOpen, miSave, miExit ; JMenuItem miCut, miCopy, miPaste ;
JTextArea ta ; JScrollPane sp ; // スクロールバー付きのコンテナ JFileChooser fc ; // フアイルを選択して開いたり保存したり // するためのダイアログを表示するときに使う File file; Font ft1, ft2;
public EditorFrame() { // コンストラクタ setSize(700, 600); setTitle("sample"); setLocation(150,20); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
con = getContentPane(); ft1 = new Font("SansSerif",Font.BOLD,18); ft2 = new Font("SansSerif",Font.BOLD,16);
mb = new JMenuBar(); muFile = new JMenu("ファイル"); muEdit = new JMenu("編集"); muFile.setFont(ft1); muEdit.setFont(ft1);
miOpen = new JMenuItem("開く"); miSave = new JMenuItem("保存"); miExit = new JMenuItem("終了"); miCut = new JMenuItem("切り取り"); miCopy = new JMenuItem("コピー"); miPaste = new JMenuItem("貼り付け");
miOpen.setFont(ft1); miSave.setFont(ft1); miExit.setFont(ft1); miCut.setFont(ft1); miCopy.setFont(ft1); miPaste.setFont(ft1);
ta = new JTextArea(); ta.setFont(ft2); sp = new JScrollPane(ta); fc = new JFileChooser(); miOpen.addActionListener(this); miSave.addActionListener(this); miExit.addActionListener(this); miCut.addActionListener(this); miCopy.addActionListener(this); miPaste.addActionListener(this); muFile.add(miOpen); muFile.add(miSave); muFile.addSeparator(); muFile.add(miExit);
muEdit.add(miCut); muEdit.add(miCopy); muEdit.add(miPaste);
mb.add(muFile); mb.add(muEdit); con.add(sp, BorderLayout.CENTER); setJMenuBar(mb);
} // コンストラクタ終り
class WindowClosing extends WindowAdapter{ public void windowClosing(WindowEvent e) { int ans = JOptionPane.showConfirmDialog(EditorFrame.this, "本当に終了しますか?"); System.out.println(ans); if(ans == JOptionPane.YES_OPTION) { System.out.println("プログラムによる終了処理の実行"); System.exit(0); } } }
もちろん、この前後にもソースはありますが、そこは関係ないと思っています。 この掲載した下から10行が閉じるボタンのために追加した処理ですが、これが無反応です。
何がいけないかご教示いただけますか。
|