以下是全部的程序,望各位高手指教:
package K_Editor;
import java.awt.*;
import java.io.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.border.*;
//import javax.swing.JTextArea;
import javax.swing.JOptionPane;class MainFrame extends Frame
implements ActionListener,MouseListener,TextListener,
MouseMotionListener,KeyListener
{
FileDialog filedialog_save,filedialog_load;
MenuBar menubar;
Menu file_menu,edit_menu,style_menu,about_menu;
MenuItem load_item,save_item,exit_item;
MenuItem clear_item,cancel_item;
MenuItem font_item;
MenuItem about_item;
TextField xtext,ytext,ptext,capsLocktext;
JTextArea textarea;
Box box,box1,box2;
int count;
BufferedReader in;
FileReader fileReader;
BufferedWriter out;
FileWriter tofile;
MainFrame()
{
super("K_Editor");
int count=0;
menubar=new MenuBar();
file_menu=new Menu("文件");
edit_menu=new Menu("编辑");
style_menu=new Menu("格式");
about_menu=new Menu("关于");
load_item=new MenuItem("打开");
save_item=new MenuItem("保存");
exit_item=new MenuItem("退出");
//load_item.setShortcut(new MenuShortcut(KeyEvent.VK_O));
//save_item.setShortcut(new MenuShortcut(KeyEvent.VK_S));
//exit_item.setShortcut(new MenuShortcut(KeyEvent.VK_Q));
filedialog_save=new FileDialog(this,"保存文件对话框",FileDialog.SAVE);
filedialog_save.setVisible(false);
filedialog_load=new FileDialog(this,"打开文件对话框",FileDialog.LOAD);
filedialog_load.setVisible(false);
filedialog_save.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
filedialog_save.setVisible(false);
}
});
filedialog_load.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
filedialog_load.setVisible(false);
}
});
clear_item=new MenuItem("清除");
cancel_item=new MenuItem("撤销");
//cancel_item.setShortcut(new MenuShortcut(KeyEvent.VK_Z));
font_item=new MenuItem("字体");
about_item=new MenuItem("关于K_Edit");
xtext=new TextField(1);
ytext=new TextField(1);
ptext=new TextField();
capsLocktext=new TextField(5);
xtext.setEnabled(false);
ytext.setEnabled(false);
capsLocktext.setEnabled(false);
textarea=new JTextArea(30,10);
textarea.addMouseMotionListener(this);
textarea.addKeyListener(this);
file_menu.add(load_item);
file_menu.add(save_item);
file_menu.add(exit_item);
load_item.addActionListener(this);
save_item.addActionListener(this);
exit_item.addActionListener(this);
edit_menu.add(cancel_item);
edit_menu.add(clear_item);
cancel_item.addActionListener(this);
clear_item.addActionListener(this);
style_menu.add(font_item);
font_item.addActionListener(this);
about_menu.add(about_item);
about_item.addActionListener(this);
menubar.add(file_menu);
menubar.add(edit_menu);
menubar.add(style_menu);
menubar.add(about_menu);
setMenuBar(menubar);
box1=Box.createHorizontalBox();
box1.add(xtext);
box1.add(ytext);
box2=Box.createHorizontalBox();
box2.add(capsLocktext);
box=Box.createHorizontalBox();
box.add(box1);
box.add(Box.createHorizontalStrut(450));
box.add(box2);
add(box,BorderLayout.SOUTH);
add(textarea,BorderLayout.CENTER);
setBounds(300,100,600,600);
setResizable(false);
setVisible(true);
validate();
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==exit_item)
{
System.exit(0);
}
else if(e.getSource()==save_item)
{
filedialog_save.setVisible(true);
textarea.setText(null);
String s;
if(filedialog_load.getFile()!=null)
{try{File file=new File(filedialog_load.getDirectory(),
filedialog_load.getFile());
fileReader=new FileReader(file);
in=new BufferedReader(fileReader);
while((s=in.readLine())!=null)
textarea.append(s+"\n");
in.close();
fileReader.close();
}catch(IOException e2){}
}
}
else if(e.getSource()==load_item)
{
filedialog_load.setVisible(true);
if(filedialog_save.getFile()!=null)
{try{File file=new File(filedialog_save.getDirectory(),
filedialog_save.getFile());
tofile=new FileWriter(file);
out=new BufferedWriter(tofile);
out.write(textarea.getText(),0,(textarea.getText()).length());
out.close();
tofile.close();
}catch(IOException e2){}
}
}
else if(e.getSource()==about_item)
{
JOptionPane.showMessageDialog(this,"K_Edit"+"\n"+"版本号:00.00.00.01"+"\n"+"制作人:极玄风"+"\n"+"版权全部归由 极玄风 所有",
"关于 K_Edit",JOptionPane.INFORMATION_MESSAGE);
}
else if(e.getSource()==clear_item)
{
textarea.setText(null);
}
}
public void mouseClicked(MouseEvent e)
{
} public void mouseEntered(MouseEvent e)
{
} public void mouseExited(MouseEvent e)
{
} public void mousePressed(MouseEvent e)
{
} public void mouseReleased(MouseEvent e)
{
} public void mouseDragged(MouseEvent e)
{
xtext.setText(" "+e.getX());
ytext.setText(" "+e.getY());
} public void mouseMoved(MouseEvent e)
{
xtext.setText(" "+e.getX()+" ");
ytext.setText(" "+e.getY()+" ");
} public void keyPressed(KeyEvent e)
{
if(e!=null)
{
ptext.setText(""+textarea.getLocation().x+textarea.getLocation().y);
}
if(e.getKeyCode()==KeyEvent.VK_CAPS_LOCK)
{
if(count%2==0)
capsLocktext.setText("Caps Lock");
else
capsLocktext.setText(null);
}
count++;
} public void keyReleased(KeyEvent e)
{
} public void keyTyped(KeyEvent e)
{
} public void textValueChanged(TextEvent e)
{
}
}
public class K_Editor
{
public static void main(String[] args)
{
new MainFrame();
}
}
package K_Editor;
import java.awt.*;
import java.io.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.border.*;
//import javax.swing.JTextArea;
import javax.swing.JOptionPane;class MainFrame extends Frame
implements ActionListener,MouseListener,TextListener,
MouseMotionListener,KeyListener
{
FileDialog filedialog_save,filedialog_load;
MenuBar menubar;
Menu file_menu,edit_menu,style_menu,about_menu;
MenuItem load_item,save_item,exit_item;
MenuItem clear_item,cancel_item;
MenuItem font_item;
MenuItem about_item;
TextField xtext,ytext,ptext,capsLocktext;
JTextArea textarea;
Box box,box1,box2;
int count;
BufferedReader in;
FileReader fileReader;
BufferedWriter out;
FileWriter tofile;
MainFrame()
{
super("K_Editor");
int count=0;
menubar=new MenuBar();
file_menu=new Menu("文件");
edit_menu=new Menu("编辑");
style_menu=new Menu("格式");
about_menu=new Menu("关于");
load_item=new MenuItem("打开");
save_item=new MenuItem("保存");
exit_item=new MenuItem("退出");
//load_item.setShortcut(new MenuShortcut(KeyEvent.VK_O));
//save_item.setShortcut(new MenuShortcut(KeyEvent.VK_S));
//exit_item.setShortcut(new MenuShortcut(KeyEvent.VK_Q));
filedialog_save=new FileDialog(this,"保存文件对话框",FileDialog.SAVE);
filedialog_save.setVisible(false);
filedialog_load=new FileDialog(this,"打开文件对话框",FileDialog.LOAD);
filedialog_load.setVisible(false);
filedialog_save.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
filedialog_save.setVisible(false);
}
});
filedialog_load.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
filedialog_load.setVisible(false);
}
});
clear_item=new MenuItem("清除");
cancel_item=new MenuItem("撤销");
//cancel_item.setShortcut(new MenuShortcut(KeyEvent.VK_Z));
font_item=new MenuItem("字体");
about_item=new MenuItem("关于K_Edit");
xtext=new TextField(1);
ytext=new TextField(1);
ptext=new TextField();
capsLocktext=new TextField(5);
xtext.setEnabled(false);
ytext.setEnabled(false);
capsLocktext.setEnabled(false);
textarea=new JTextArea(30,10);
textarea.addMouseMotionListener(this);
textarea.addKeyListener(this);
file_menu.add(load_item);
file_menu.add(save_item);
file_menu.add(exit_item);
load_item.addActionListener(this);
save_item.addActionListener(this);
exit_item.addActionListener(this);
edit_menu.add(cancel_item);
edit_menu.add(clear_item);
cancel_item.addActionListener(this);
clear_item.addActionListener(this);
style_menu.add(font_item);
font_item.addActionListener(this);
about_menu.add(about_item);
about_item.addActionListener(this);
menubar.add(file_menu);
menubar.add(edit_menu);
menubar.add(style_menu);
menubar.add(about_menu);
setMenuBar(menubar);
box1=Box.createHorizontalBox();
box1.add(xtext);
box1.add(ytext);
box2=Box.createHorizontalBox();
box2.add(capsLocktext);
box=Box.createHorizontalBox();
box.add(box1);
box.add(Box.createHorizontalStrut(450));
box.add(box2);
add(box,BorderLayout.SOUTH);
add(textarea,BorderLayout.CENTER);
setBounds(300,100,600,600);
setResizable(false);
setVisible(true);
validate();
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==exit_item)
{
System.exit(0);
}
else if(e.getSource()==save_item)
{
filedialog_save.setVisible(true);
textarea.setText(null);
String s;
if(filedialog_load.getFile()!=null)
{try{File file=new File(filedialog_load.getDirectory(),
filedialog_load.getFile());
fileReader=new FileReader(file);
in=new BufferedReader(fileReader);
while((s=in.readLine())!=null)
textarea.append(s+"\n");
in.close();
fileReader.close();
}catch(IOException e2){}
}
}
else if(e.getSource()==load_item)
{
filedialog_load.setVisible(true);
if(filedialog_save.getFile()!=null)
{try{File file=new File(filedialog_save.getDirectory(),
filedialog_save.getFile());
tofile=new FileWriter(file);
out=new BufferedWriter(tofile);
out.write(textarea.getText(),0,(textarea.getText()).length());
out.close();
tofile.close();
}catch(IOException e2){}
}
}
else if(e.getSource()==about_item)
{
JOptionPane.showMessageDialog(this,"K_Edit"+"\n"+"版本号:00.00.00.01"+"\n"+"制作人:极玄风"+"\n"+"版权全部归由 极玄风 所有",
"关于 K_Edit",JOptionPane.INFORMATION_MESSAGE);
}
else if(e.getSource()==clear_item)
{
textarea.setText(null);
}
}
public void mouseClicked(MouseEvent e)
{
} public void mouseEntered(MouseEvent e)
{
} public void mouseExited(MouseEvent e)
{
} public void mousePressed(MouseEvent e)
{
} public void mouseReleased(MouseEvent e)
{
} public void mouseDragged(MouseEvent e)
{
xtext.setText(" "+e.getX());
ytext.setText(" "+e.getY());
} public void mouseMoved(MouseEvent e)
{
xtext.setText(" "+e.getX()+" ");
ytext.setText(" "+e.getY()+" ");
} public void keyPressed(KeyEvent e)
{
if(e!=null)
{
ptext.setText(""+textarea.getLocation().x+textarea.getLocation().y);
}
if(e.getKeyCode()==KeyEvent.VK_CAPS_LOCK)
{
if(count%2==0)
capsLocktext.setText("Caps Lock");
else
capsLocktext.setText(null);
}
count++;
} public void keyReleased(KeyEvent e)
{
} public void keyTyped(KeyEvent e)
{
} public void textValueChanged(TextEvent e)
{
}
}
public class K_Editor
{
public static void main(String[] args)
{
new MainFrame();
}
}
Buffered缓冲有很大用处.........
另:看看NIO(java new I/O)吧,有更好的操作io流