package Peck; //打包import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;public class Peck extends JFrame //Peck继承JFrame类
{
public Peck() //定义Peck构造函数
{
JMenuBar mb=new JMenuBar(); //初始化一个菜单栏
JMenu mn =new JMenu("文件"); //初始化一个菜单按钮
JMenuItem mi1=new JMenuItem("项目1"); //下拉菜单第一项
JMenuItem mi2=new JMenuItem("项目2"); //下拉菜单第二项
JMenuItem mi3=new JMenuItem("退出"); //下拉菜单第三项
mn.add(mi1); //添加下拉按钮
mn.add(mi2); //添加下拉按钮
mn.addSeparator(); //添加一个不清楚........????.....
mn.add(mi3); //添加下拉按钮
mb.add(mn); //添加菜单按钮
this.setJMenuBar(mb); //不明白this是什么...想象中应该是调用了一个菜单栏.
mi1.addActionListener(new ActionListener() //添加一个监听器
{
public void actionPerformed(ActionEvent e) //不明白
{
JOptionPane.showMessageDialog(null,"您已选定菜单项目1"); //弹出信息对话框
}
}
);
mi2.addActionListener(new ActionListener() //添加一个监听器
{
public void actionPerformed(ActionEvent e) //不明白
{
JOptionPane.showMessageDialog(null,"您已选定菜单项目2"); //弹出信息对话框
}
}
);
mi3.addActionListener(new ActionListener() //添加一个监听
{
public void actionPerformed(ActionEvent e) //不明白
{
System.exit(0); //退出
}
}
);
}
public static void main(String[] args) //主函数
{
Peck f=new Peck(); //实例化构造函数
f.setSize(300,200); //添加一个300*200窗体
f.setVisible(true); //显示为可见的
}
}
注释很多地方不明白.希望给出正确、仔细的解释。谢谢:)
还有我写的地方可能会有不正确的。还望多多指教。myMSN:[email protected] 可以共同探讨噢^@^.
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;public class Peck extends JFrame //Peck继承JFrame类
{
public Peck() //定义Peck构造函数
{
JMenuBar mb=new JMenuBar(); //初始化一个菜单栏
JMenu mn =new JMenu("文件"); //初始化一个菜单按钮
JMenuItem mi1=new JMenuItem("项目1"); //下拉菜单第一项
JMenuItem mi2=new JMenuItem("项目2"); //下拉菜单第二项
JMenuItem mi3=new JMenuItem("退出"); //下拉菜单第三项
mn.add(mi1); //添加下拉按钮
mn.add(mi2); //添加下拉按钮
mn.addSeparator(); //添加一个不清楚........????.....
mn.add(mi3); //添加下拉按钮
mb.add(mn); //添加菜单按钮
this.setJMenuBar(mb); //不明白this是什么...想象中应该是调用了一个菜单栏.
mi1.addActionListener(new ActionListener() //添加一个监听器
{
public void actionPerformed(ActionEvent e) //不明白
{
JOptionPane.showMessageDialog(null,"您已选定菜单项目1"); //弹出信息对话框
}
}
);
mi2.addActionListener(new ActionListener() //添加一个监听器
{
public void actionPerformed(ActionEvent e) //不明白
{
JOptionPane.showMessageDialog(null,"您已选定菜单项目2"); //弹出信息对话框
}
}
);
mi3.addActionListener(new ActionListener() //添加一个监听
{
public void actionPerformed(ActionEvent e) //不明白
{
System.exit(0); //退出
}
}
);
}
public static void main(String[] args) //主函数
{
Peck f=new Peck(); //实例化构造函数
f.setSize(300,200); //添加一个300*200窗体
f.setVisible(true); //显示为可见的
}
}
注释很多地方不明白.希望给出正确、仔细的解释。谢谢:)
还有我写的地方可能会有不正确的。还望多多指教。myMSN:[email protected] 可以共同探讨噢^@^.
"this" 就是"Peck " 这个窗口(swing中叫JFrame)
public void actionPerformed(ActionEvent e) { } //不明白实现ActionListener这个接口口中的方法.
解释:this 就是Peck这个窗口,后面的mb是要显示的菜单栏,如果没有调用setJMenuBar(mb)或者是这写成setJMenuBar(),则菜单栏不会显示在窗口中。
mi2.addActionListener(new ActionListener() { //添加一个监听器
public void actionPerformed(ActionEvent e) { //不明白
JOptionPane.showMessageDialog(null,"您已选定菜单项目2"); //弹出信息对话框
}
});
解释:这实际上是一个用到了内部类的写法。(详细可找本书看看什么是内部类、为什么要使用内部类、使用内部类的方法)
它也可以改写成下面的形式:
HandlerItem handler = new HandlerItem();
mi2.addActionListener( handler );class HandlerItem implements ActionListener {
public void actionPerformed( ActionEvent event ){
JOptionPane.showMessageDialog(null,"您已选定菜单项目1");//弹出信息对话框
}
}
上下的两种形式实际上是相同的。
余下的也是这样解释