簡易テキストエディタ その6 メニュー作り(リスナ登録)Advertisement開く・保存・閉じる
今回はActionListener(リンク先:java.sun.com)を使ってファイルの入出力。それとアプリケーションの終了を作る。
実装
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
public class SwingTest{
public static void main(String args[]){
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
try{
javax.swing.plaf.metal.
MetalLookAndFeel.setCurrentTheme(
new javax.swing.plaf.metal.DefaultMetalTheme());
UIManager.setLookAndFeel
("javax.swing.plaf.metal.MetalLookAndFeel");
}catch(Exception e){
System.out.println(e);
}
MyFrame mf = new MyFrame();
mf.setTitle("簡易テキストエディタ");
mf.setSize(400, 300);
mf.show();
}
}
class MyFrame extends JFrame{
JTextPane text;
JScrollPane spanel;
JMenuBar menuBar;
JMenu file;
JMenuItem open, save, quit;
JFileChooser chooser;
public MyFrame(){
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
text = new JTextPane();
spanel = new JScrollPane(text);
spanel.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
getContentPane().add(spanel);
menuBar = new JMenuBar();
file = new JMenu("ファイル");
open = new JMenuItem("開く");
save = new JMenuItem("保存");
quit = new JMenuItem("終了");
file.add(open);
file.add(save);
file.add(new JSeparator());
file.add(quit);
menuBar.add(file);
setJMenuBar(menuBar);
//各メニューにリスナ登録。
open.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
openDocument();
}});
save.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
saveDocument();
}});
quit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
quit();
}});
}
//ファイルを開く
public void openDocument(){
if(chooser == null){
chooser = new JFileChooser();
}
try{
int returnVal;
if((returnVal = chooser.showOpenDialog(this)) ==
JFileChooser.APPROVE_OPTION){
File file = chooser.getSelectedFile();
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
text.read(br, null);
br.close();
}
}catch(IOException e){
System.err.println(e);
}
}
//ファイルを保存する
public void saveDocument(){
if(chooser == null){
chooser = new JFileChooser();
}
try{
int returnVal;
if((returnVal = chooser.showSaveDialog(this)) ==
JFileChooser.APPROVE_OPTION){
File file = chooser.getSelectedFile();
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(text.getText());
bw.flush();
bw.close();
}
}catch(IOException e){
System.err.println(e);
}
}
//プログラムの終了
public void quit(){
System.exit(0);
}
}
実行イメージ![]() 最初の予定、全部できた。 Advertisement |
ショートカット・634・634ブログ ・このカテゴリのトップページに戻る ・Incubator(Pukiwiki) ・634ラボ UIコレクションギャラリー ZO-3ジェネレーター サイト検索Y!ログール |