import java.awt.*;
import java.awt.event.*;public class TestMenu {
public static void main(String[] args) {
new TestMenu().launch();
}
public void launch() {
Frame f = new Frame("记事本");
TextArea ta = new TextArea("",20,20);
f.add(ta,"Center");
MyMonitor mm = new MyMonitor();
MenuBar mb = new MenuBar();
Menu m1 = new Menu("菜单");
Menu m2 = new Menu("编辑");
Menu m3 = new Menu("格式");
Menu m4 = new Menu("帮助");
MenuItem m11 = new MenuItem("新建");
MenuItem m12 = new MenuItem("打开");
MenuItem m13 = new MenuItem("保存");
MenuItem m14 = new MenuItem("另存为");
MenuItem m15 = new MenuItem("退出");
m15.addActionListener(mm);
m11.addActionListener(mm);
m1.add(m11);
m1.add(m12);
m1.add(m13);
m1.add(m14);
m1.addSeparator();
m1.add(m15);
CheckboxMenuItem m31 = new CheckboxMenuItem("二进制");
MenuItem m32 = new MenuItem("字体");
m31.addActionListener(mm);
m3.add(m31);
m3.add(m32);
mb.add(m1);
mb.add(m2);
mb.add(m3);
mb.add(m4);
f.setMenuBar(mb);
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.setSize(300,200);
f.setLocation(300,150);
f.setVisible(true);
}class MyMonitor implements ActionListener {
public void actionPerformed(ActionEvent e) {
String s = e.getActionCommand();
System.out.println(s);
if(s.equals("退出")) {
System.exit(0);
} else if(s.equals("新建")) {
new TestMenu().launch();
}
}
}
}
接下来希望大家能补全,最好有说明。
import java.awt.event.*;public class TestMenu {
public static void main(String[] args) {
new TestMenu().launch();
}
public void launch() {
Frame f = new Frame("记事本");
TextArea ta = new TextArea("",20,20);
f.add(ta,"Center");
MyMonitor mm = new MyMonitor();
MenuBar mb = new MenuBar();
Menu m1 = new Menu("菜单");
Menu m2 = new Menu("编辑");
Menu m3 = new Menu("格式");
Menu m4 = new Menu("帮助");
MenuItem m11 = new MenuItem("新建");
MenuItem m12 = new MenuItem("打开");
MenuItem m13 = new MenuItem("保存");
MenuItem m14 = new MenuItem("另存为");
MenuItem m15 = new MenuItem("退出");
m15.addActionListener(mm);
m11.addActionListener(mm);
m1.add(m11);
m1.add(m12);
m1.add(m13);
m1.add(m14);
m1.addSeparator();
m1.add(m15);
CheckboxMenuItem m31 = new CheckboxMenuItem("二进制");
MenuItem m32 = new MenuItem("字体");
m31.addActionListener(mm);
m3.add(m31);
m3.add(m32);
mb.add(m1);
mb.add(m2);
mb.add(m3);
mb.add(m4);
f.setMenuBar(mb);
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.setSize(300,200);
f.setLocation(300,150);
f.setVisible(true);
}class MyMonitor implements ActionListener {
public void actionPerformed(ActionEvent e) {
String s = e.getActionCommand();
System.out.println(s);
if(s.equals("退出")) {
System.exit(0);
} else if(s.equals("新建")) {
new TestMenu().launch();
}
}
}
}
接下来希望大家能补全,最好有说明。
用FileInputStream和FileOutputStream就基本能搞定的啊。
……………………
else if ("打开".equals(comm)) {
JFileChooser jfc = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"txt document", "txt");
jfc.setFileFilter(filter);
int returnresult = jfc.showOpenDialog(jfc);
if (returnresult == JFileChooser.APPROVE_OPTION) {
System.out.println(jfc.getSelectedFile().getAbsolutePath());
try {
FileInputStream fis = new FileInputStream(jfc
.getSelectedFile().getAbsoluteFile());
byte[] b = new byte[1024];
String temp = "";
while (true) {
int i = fis.read(b);
if (i == -1)
break;
temp = temp + new String(b, 0, i);
}
fis.close();
jta.setText(temp);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
………………
/*
* 功能 :打开,新建,保存
*
* 未完成功能:查找,替换
* */
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.event.*;
public class fileEdit
{
public static void main(String[] args)
{
MainFrame frame = new MainFrame();
frame.setVisible(true);
}
}
class MainFrame extends JFrame
{
public static final int WIDTH = 500;
public static final int HEIGHT = 500;
boolean isOpened = false;
boolean isSaved = true;
boolean isNewFile = false;
File file = null;
JTextArea textArea = new JTextArea();
public void Init()
{
setDefaultCloseOperation(EXIT_ON_CLOSE);
setTitle("文件编辑");
UIManager.put("Menu.font", new Font("微软雅黑", Font.PLAIN,14));
UIManager.put("MenuItem.font", new Font("微软雅黑", Font.PLAIN,14));
textArea.setFont(new Font("微软雅黑", Font.PLAIN,14));
textArea.setTabSize(4);
setLayout(new BorderLayout());
JMenuBar menuBar = new JMenuBar();
JMenu menuFile = new JMenu("文件");
JMenuItem menuItemOpen = new JMenuItem("打开");
JMenuItem menuItemSave = new JMenuItem("保存");
JMenuItem menuItemSaveAs = new JMenuItem("另存为");
JMenuItem menuItemExit = new JMenuItem("退出");
JMenuItem menuItemNew = new JMenuItem("新建");
textArea.getDocument().addDocumentListener(new DocumentListener()
{
public void removeUpdate(DocumentEvent e)
{
if(isOpened)
{
setTitle(file.getName() + "*");
isSaved = false;
}
}
public void insertUpdate(DocumentEvent e)
{
if(isOpened)
{
setTitle(file.getName() + "*");
isSaved = false;
}
}
public void changedUpdate(DocumentEvent e){}
});
menuItemNew.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
textArea.setText("");
file = new File("未命名文件");
setTitle("未命名文件*");
isNewFile = true;
isOpened = true;
}
});
menuItemOpen.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JFileChooser fileChooser = new JFileChooser();
if(fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
{
file = fileChooser.getSelectedFile();
setTitle(file.getName());
try
{
textArea.setText("");
FileReader fr = new FileReader(file);
int b = 0;
//////////////////
// char[] chars = new char[(int)file.length()];
// fr.read(chars);
///////////////
while((b = fr.read())!= -1)
{
textArea.setText(textArea.getText() + (char)b );
}
/////////////////
fr.close();
} catch (IOException exception)
{
JOptionPane.showMessageDialog(null,"IOException1");
}
isOpened = true;
}
}
});
menuItemSave.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(isOpened)
{
if(!isNewFile)
{
try
{
FileWriter fw = new FileWriter(file);
textArea.setText(textArea.getText().replace("\n", "\r\n"));
fw.write(textArea.getText());
fw.close();
} catch (IOException exception)
{
JOptionPane.showMessageDialog(null,"IOException2");
}
}
if(isNewFile)
{
JFileChooser fileChooser = new JFileChooser();
if(fileChooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION)
{
try
{
file = fileChooser.getSelectedFile();
setTitle(file.getName());
isOpened = true;
FileWriter fw = new FileWriter(file);
textArea.setText(textArea.getText().replace("\n", "\r\n"));
fw.write(textArea.getText());
fw.close();
} catch (IOException e2)
{
JOptionPane.showMessageDialog(null,"IOException3");
}
isNewFile = false;
}
}
setTitle(file.getName());
isSaved = true;
}
}
});
menuItemSaveAs.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JFileChooser fileChooser = new JFileChooser();
if(fileChooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION)
{
try
{
file = fileChooser.getSelectedFile();
setTitle(file.getName());
isOpened = true;
FileWriter fw = new FileWriter(file);
textArea.setText(textArea.getText().replace("\n", "\r\n"));
fw.write(textArea.getText());
fw.close();
} catch (IOException e2)
{
JOptionPane.showMessageDialog(null,"IOException3");
}
}
}
});
menuItemExit.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(!isSaved)
{
int i = JOptionPane.showConfirmDialog(null, "是否保存");
if(i == JOptionPane.NO_OPTION) System.exit(-1);
else if(i == JOptionPane.YES_OPTION)
{
try
{
FileWriter fw = new FileWriter(file);
textArea.setText(textArea.getText().replace("\n", "\r\n"));
fw.write(textArea.getText());
fw.close();
} catch (IOException exception)
{
JOptionPane.showMessageDialog(null,"IOException2");
}
setTitle(file.getName());
isSaved = true;
}
else{};
}
else System.exit(-1);
}
});
menuItemNew.setAccelerator(KeyStroke.getKeyStroke('N',InputEvent.CTRL_DOWN_MASK));
menuItemOpen.setAccelerator(KeyStroke.getKeyStroke('O',InputEvent.CTRL_DOWN_MASK));
menuItemSave.setAccelerator(KeyStroke.getKeyStroke('S',InputEvent.CTRL_DOWN_MASK));
JScrollPane jsp = new JScrollPane(textArea);
add(jsp,BorderLayout.CENTER);
add(menuBar,BorderLayout.NORTH);
menuBar.add(menuFile);
menuFile.add(menuItemNew);
menuFile.add(menuItemOpen);
menuFile.addSeparator();
menuFile.add(menuItemSave);
menuFile.add(menuItemSaveAs);
menuFile.addSeparator();
menuFile.add(menuItemExit);
setSize(WIDTH,HEIGHT);
setLocationRelativeTo(null);
}
public MainFrame()
{
Init();
}
}