发布网友
共3个回答
热心网友
从所贴程序看,难点主要是frame中添加的菜单层次问题。为了便于读懂,我对程序进行了简化处理,程序可以直接拷贝下去编译运行。你可以根据运行结果和我所作的简单注释,重新阅读一遍程序,应该没有什么问题了!
//import java.io.*;
//import java.util.Calendar;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class NoteBook extends JFrame implements ActionListener{
Container c = this.getContentPane();
JMenuBar jmb = new JMenuBar();
JColorChooser jcc = new JColorChooser();
//初始化五个主菜单、
JMenu jm1 = new JMenu("文件(F)");
JMenu jm2 = new JMenu("编辑(E)");
JMenu jm3 = new JMenu("格式(O)");
JMenu jm4 = new JMenu("查看(V)");
JMenu jm5 = new JMenu("帮助(H)");
//初始化十二个子菜单
JMenuItem jmi1 = new JMenuItem("新建(N)");
JMenuItem jmi2 = new JMenuItem("打开(O)");
JMenuItem jmi3 = new JMenuItem("保存(S)");
JMenuItem jmi4 = new JMenuItem("退出(X)");
JMenuItem jmi5 = new JMenuItem("撤消(U)");
JMenuItem jmi6 = new JMenuItem("复制(C)");
JMenuItem jmi7 = new JMenuItem("粘贴(P)");
JMenuItem jmi8 = new JMenuItem("剪切(T)");
JMenuItem jmi12 = new JMenuItem("日期和时间");
JMenuItem jmi9 = new JMenuItem("字体(E)");
JCheckBoxMenuItem jcbmi = new JCheckBoxMenuItem("自动换行(W)");
JMenuItem jmi10 = new JMenuItem("删除(S)");
JMenuItem jmi11 = new JMenuItem("背景颜色(H)");
//初始化文本、滚动条
JTextArea jta = new JTextArea(15,15);
JScrollPane jsp = new JScrollPane(jta); //为文本域添加滚动条
//PupolMenu pm = new Pupolmenu();
public static void main(String args[]){
new NoteBook();
}
NoteBook(){
//this.addWindowListener(this);
c.setLayout(new BorderLayout());
c.add(jmb,BorderLayout.NORTH);
this.setTitle("新建 文本文档");
jmb.add(jm1);
jm1.setMnemonic('f');
jm1.addActionListener(this);
jmb.add(jm2);
jm2.setMnemonic('e');
jmb.add(jm3);
jm3.setMnemonic('o');
jmb.add(jm4);
jm4.setMnemonic('v');
jmb.add(jm5);
jm5.setMnemonic('h');
//为第一个主菜单添加子菜单和快捷键
jm1.add(jmi1);
jmi1.addActionListener(this);
jmi1.setAccelerator(KeyStroke.getKeyStroke('N',Event.CTRL_MASK,false));
jm1.addSeparator();
jm1.add(jmi2);
jmi2.setAccelerator(KeyStroke.getKeyStroke('O',Event.CTRL_MASK,false));
jmi2.addActionListener(this);
jm1.addSeparator();
jm1.add(jmi3);
jmi3.setAccelerator(KeyStroke.getKeyStroke('S',Event.CTRL_MASK,false));
jmi3.addActionListener(this);
jm1.addSeparator();
jm1.add(jmi4);
jmi1.setMnemonic('n');
jmi2.setMnemonic('o');
jmi3.setMnemonic('s');
jmi4.setMnemonic('x');
jmi4.addActionListener(this);
//为第二个主菜单添加子菜单
jm2.add(jmi5);
jm2.addSeparator();
jm2.add(jmi6);
jm2.addSeparator();
jm2.add(jmi7);
jm2.addSeparator();
jm2.add(jmi8);
jm2.add(jmi12);
jmi12.addActionListener(this);
//为第三个主菜单添加子菜单
jm3.add(jcbmi);
//jcbmi.addItemListener(this);
jm3.addSeparator();
jm3.add(jmi9);
//为第四个主菜单添加子菜单
jm4.add(jmi10);
jmi10.addActionListener(this);
//为第五个主菜单添加子菜单
jm5.add(jmi11);
jmi11.addActionListener(this);
//添加滚动条
c.add(jsp);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setSize(500,500);
this.setVisible(true);
}
public void actionPerformed(ActionEvent event){
}
}
热心网友
自己加呀。
你认为重要的地方就加上注释说明,让别人更容易看懂,不要为了注释而注释。
热心网友
自己的代码当然自己写注释啊