package day16.task;
import javax.swing.*;import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
public class TestMenu1
implements ActionListener{
JMenuBar jmb = new JMenuBar();
JTextArea jta = new JTextArea();
JFrame jf = new JFrame("Menu");
public JMenuBar getMenu(String[] menu,String[][] menuItem){
for(int i=0;i<menu.length;i++){
JMenu jm = new JMenu(menu[i]);
jmb.add(jm);
for(int j=0;j<menuItem[i].length;j++){
if("".equals(menuItem[i][j])){
//不用!=比较,只有String与null比时才用
jm.addSeparator();//添加分隔线
}else {
JMenuItem jmi = new JMenuItem(
menuItem[i][j]);
jm.add(jmi);
//jm.addSeparator();//添加分隔线
jmi.addActionListener(this);
}
}
}
return jmb;//不可少
}
public TestMenu1(){
jf.add(new JScrollPane(jta));
String[] jm = {"文件","编辑","帮助"};
//二维数组的写法
String[][] jmi = {{"新建","","保存"},
{"撤销","","剪贴","复制","粘贴","删除","","查找","替换","","全选"},
{"关于记事本"}};
//调用方法
JMenuBar jmb = getMenu(jm,jmi);
jf.setJMenuBar(jmb);
jf.setSize(500,400);
jf.setLocation(300,200);//设置窗口位置
jf.setVisible(true);//尽可能放后
jf.setResizable(false);//窗口大小固定
jf.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new TestMenu1();
}
public void actionPerformed(ActionEvent e) {
String comm = e.getActionCommand();
if("剪贴".equals(comm)){
jta.cut();
}else if("复制".equals(comm)){
jta.copy();
}else if("粘贴".equals(comm)){
jta.paste();
}else if("删除".equals(comm)){
jta.replaceSelection("");
}else if("新建".equals(comm)){
/*JLabel j1 = new JLabel(" 请先保存文件! ");
Dialog d = new Dialog(jf);
JDialog jd = new JDialog(d,"新建");
jd.add(j1);
jd.setVisible(true);
jd.setSize(200,100);
jd.setLocation(500, 300);*/
JOptionPane.showMessageDialog(null, "请先保存文件!", "新建", JOptionPane.ERROR_MESSAGE);
//JOptionPane.showConfirmDialog(null,
//"choose one", "choose one", JOptionPane.YES_NO_OPTION);
//String inputValue = JOptionPane.showInputDialog("Please input a value");
//Object[] possibleValues = { "First", "Second", "Third" };
//Object selectedValue = JOptionPane.showInputDialog(null,
//"Choose one", "Input",
//JOptionPane.INFORMATION_MESSAGE, null,
//possibleValues, possibleValues[0]);
}else if("保存".equals(comm)){
JFileChooser jfc = new JFileChooser();//文件选择器
jf.add(jfc);
jfc.showDialog(jf, "保存");
}
}}
import javax.swing.*;import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
public class TestMenu1
implements ActionListener{
JMenuBar jmb = new JMenuBar();
JTextArea jta = new JTextArea();
JFrame jf = new JFrame("Menu");
public JMenuBar getMenu(String[] menu,String[][] menuItem){
for(int i=0;i<menu.length;i++){
JMenu jm = new JMenu(menu[i]);
jmb.add(jm);
for(int j=0;j<menuItem[i].length;j++){
if("".equals(menuItem[i][j])){
//不用!=比较,只有String与null比时才用
jm.addSeparator();//添加分隔线
}else {
JMenuItem jmi = new JMenuItem(
menuItem[i][j]);
jm.add(jmi);
//jm.addSeparator();//添加分隔线
jmi.addActionListener(this);
}
}
}
return jmb;//不可少
}
public TestMenu1(){
jf.add(new JScrollPane(jta));
String[] jm = {"文件","编辑","帮助"};
//二维数组的写法
String[][] jmi = {{"新建","","保存"},
{"撤销","","剪贴","复制","粘贴","删除","","查找","替换","","全选"},
{"关于记事本"}};
//调用方法
JMenuBar jmb = getMenu(jm,jmi);
jf.setJMenuBar(jmb);
jf.setSize(500,400);
jf.setLocation(300,200);//设置窗口位置
jf.setVisible(true);//尽可能放后
jf.setResizable(false);//窗口大小固定
jf.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new TestMenu1();
}
public void actionPerformed(ActionEvent e) {
String comm = e.getActionCommand();
if("剪贴".equals(comm)){
jta.cut();
}else if("复制".equals(comm)){
jta.copy();
}else if("粘贴".equals(comm)){
jta.paste();
}else if("删除".equals(comm)){
jta.replaceSelection("");
}else if("新建".equals(comm)){
/*JLabel j1 = new JLabel(" 请先保存文件! ");
Dialog d = new Dialog(jf);
JDialog jd = new JDialog(d,"新建");
jd.add(j1);
jd.setVisible(true);
jd.setSize(200,100);
jd.setLocation(500, 300);*/
JOptionPane.showMessageDialog(null, "请先保存文件!", "新建", JOptionPane.ERROR_MESSAGE);
//JOptionPane.showConfirmDialog(null,
//"choose one", "choose one", JOptionPane.YES_NO_OPTION);
//String inputValue = JOptionPane.showInputDialog("Please input a value");
//Object[] possibleValues = { "First", "Second", "Third" };
//Object selectedValue = JOptionPane.showInputDialog(null,
//"Choose one", "Input",
//JOptionPane.INFORMATION_MESSAGE, null,
//possibleValues, possibleValues[0]);
}else if("保存".equals(comm)){
JFileChooser jfc = new JFileChooser();//文件选择器
jf.add(jfc);
jfc.showDialog(jf, "保存");
}
}}
else if("保存".equals(comm)){
JFileChooser jfc = new JFileChooser();//文件选择器
jf.add(jfc);
int re = jfc.showDialog(jf, "保存");
if (JFileChooser.APPROVE_OPTION == re) {
File file = jfc.getSelectedFile();
String text = jta.getText();
OutputStream os = null;
try {
os = new FileOutputStream(file);
os.write(text.getBytes());
} catch (IOException e1) {
e1.printStackTrace();
} finally {
if (os != null) {
try {
os.close();
} catch (IOException IgnoreWhenClose) {
}
}
}
}
}