?? wenbenbianjiqi.java
字號:
package visual;
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
public class Wenbenbianjiqi extends JFrame implements ActionListener,MenuListener
{
/**
*
*/
private static final long serialVersionUID = 7090671861241983704L;
JMenu file;
JMenu exit;
JMenuItem fileNew;
JMenuItem fileOpen;
JMenuItem fileClose;
JMenuItem fileSave;
JMenuItem fileSaveAs;
JMenuItem exit1;
JTextArea text;
String title="File IO";
JFileChooser chooser;
String fileName=null;
Container con;
public Wenbenbianjiqi()
{
setTitle(title);
setSize(300,300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
fileNew=new JMenuItem("新建",'N');
fileOpen=new JMenuItem("打開",'O');
fileClose=new JMenuItem("關閉",'C');
fileSave=new JMenuItem("保存",'S');
fileSaveAs=new JMenuItem("另存為...");
fileSaveAs.setDisplayedMnemonicIndex(5);
exit1 = new JMenuItem("退出");
fileNew.addActionListener(this);
fileOpen.addActionListener(this);
fileClose.addActionListener(this);
fileSave.addActionListener(this);
fileSaveAs.addActionListener(this);
exit1.addActionListener(this);
file=new JMenu("File(F)");
file.setMnemonic('f');
file.addMenuListener(this);
file.add(fileNew);
file.add(fileOpen);
file.add(fileClose);
file.addSeparator();
file.add(fileSave);
file.add(fileSaveAs);
file.addSeparator();
//file.add(exit);
exit=new JMenu("Exit(E)");
exit.add(exit1);
JMenuBar bar=new JMenuBar();
bar.setBackground(Color.pink);
bar.add(file);
bar.add(exit);
setJMenuBar(bar);
text=new JTextArea();
text.setBackground(Color.orange);
con=getContentPane();
con.add(new JScrollPane(text));
showEditState(false);
chooser=new JFileChooser();
setVisible(true);
//setExtendedState(MAXIMIZED_BOTH);
}
public void menuSelected(MenuEvent event)
{
fileClose.setEnabled(!getTitle().equals(title));
fileSave.setEnabled(!getTitle().equals(title));
fileSaveAs.setEnabled(!getTitle().equals(title));
}
public void menuDeselected(MenuEvent event){}
public void menuCanceled(MenuEvent event){}
public void actionPerformed(ActionEvent event)
{
if (event.getSource()==fileNew)
{
fileName=chooser.getCurrentDirectory()+"\\noname.txt";
setTitle(title+" - "+fileName);
showEditState(true);
text.setText(null);
text.requestFocus();
}
if (event.getSource()==fileOpen)
{
if (JFileChooser.APPROVE_OPTION==chooser.showOpenDialog(null))
{
fileName=chooser.getSelectedFile().getAbsolutePath();
setTitle(title+" - "+fileName);
showEditState(true);
text.setText(readFile());
text.setCaretPosition(0);
}
}
if (event.getSource()==fileClose)
{
writeFile(text.getText());
showEditState(false);
setTitle(title);
}
if (event.getSource()==fileSave)
{
writeFile(text.getText());
}
if (event.getSource()==fileSaveAs)
{
if (JFileChooser.APPROVE_OPTION==chooser.showSaveDialog(null))
{
fileName=chooser.getSelectedFile().getAbsolutePath();
setTitle(title+" - "+fileName);
writeFile(text.getText());
}
}
if (event.getSource()==exit1)
{
System.exit(0);
}
}
public void showEditState(boolean b)
{
con.setVisible(b);
con.validate();
}
public String readFile()
{
File file=new File(fileName);
int len=(int)file.length();
byte[] buf=new byte[len];
try
{
FileInputStream in=new FileInputStream(file);
in.read(buf);
in.close();
}
catch (IOException e)
{
JOptionPane.showMessageDialog(null,"讀取文件"+fileName+"時出現錯誤!");
}
return new String(buf);
}
public void writeFile(String text)
{
File file=new File(fileName);
int len=text.length();
byte[] buf=new byte[len];
buf=text.getBytes();
try
{
FileOutputStream out=new FileOutputStream(file);
out.write(buf);
out.close();
}
catch (IOException e)
{
JOptionPane.showMessageDialog(null,"寫入文件"+fileName+"時出現錯誤!");
}
}
public static void main(String[] args)
{
new Wenbenbianjiqi();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -