朋友们帮下忙 说出这段代码 每一行的意思
发布网友
发布时间:2023-09-11 08:53
我来回答
共2个回答
热心网友
时间:2024-11-17 02:36
哎 谁叫我现在没分用了呢,拿去吧~~~
import java.awt.*; //导入java.awt包里所有类
import java.awt.event.*; //导入java.awt.event包里所有类
import javax.swing.*; //导入javax.swing包里所有类
public class TestMenu extends JFrame implements ActionListener,MouseListener {
//主要编写了菜单相关 的弹出式菜单。一级菜单,二级菜单,复选菜单
JMenuBar b; //菜单条
JMenu file, filetwo; //菜单栏
JMenuItem openfiles, close, newfile, project,jp1,jp2,jp3; //菜单内容
JPanel p; //JPanel容器
JPopupMenu jp;//弹出式菜单
public TestMenu() { //测试方法
p=new JPanel();
b = new JMenuBar();// 菜单栏
file = new JMenu("文件");// 创建菜单项
filetwo = new JMenu("新建文件");// 创建二级菜单项
openfiles = new JMenuItem("打开文件");// 创建一级菜单
close = new JMenuItem("关闭文件");// 创建一级菜单
newfile = new JMenuItem("新建文件");// 创建一级菜单
project = new JMenuItem("工程");// 创建二级菜单
jp=new JPopupMenu(); //new和add就是创建和增加,不写那么多
jp1 = new JMenuItem("弹出1");// 创建弹出菜单
jp2 = new JMenuItem("弹出2");// 创建弹出菜单
jp3 = new JMenuItem("弹出3");// 创建弹出菜单
filetwo.add(project);
filetwo.add(new JCheckBoxMenuItem("复选"));//复选菜单
file.add(openfiles);
file.addSeparator();//分割线
file.add(close);
file.add(filetwo);
b.add(file);
jp.add(jp1);
jp.add(jp2);
jp.add(jp3);
p.add(jp);
this.add(p); //因为这个类TestMenu继承了JFrame类,所以这个类也是个JFrame,可以添加东西
p.setBackground(Color.red); //p的背景颜色
p.addMouseListener(this); //p绑定鼠标监听
openfiles.addActionListener(this); //openfiles绑定动作监听
newfile.addActionListener(this); //newfile绑定动作监听
project.addActionListener(this); //project绑定动作监听
close.addActionListener(this); //close绑定动作监听
this.setJMenuBar(b); //设置b为菜单栏
this.setBounds(200, 200, 300, 300); //设置区域大小
this.setVisible(true); //显示出来
}
public static void main(String[] args) { //运行程序
new TestMenu();
}
public void actionPerformed(ActionEvent e) { //监听着被绑定监听的家伙们是否被操作了
if (e.getSource().equals(openfiles)) { //操作了openfiles时后台打印东西
System.out.println("打开文件");
} else if (e.getSource().equals(close)) { //操作了close时后台打印东西
System.out.println("关闭文件");
} else if (e.getSource().equals(newfile)) { //操作了newfile时后台打印东西
System.out.println("新建文件");
} else if (e.getSource().equals(project)) { //操作了project时后台打印东西
System.out.println("新建工程");
}
}
public void mouseClicked(MouseEvent e) { //鼠标点击的时候
if(e.getButton()==MouseEvent.BUTTON3){//BUTTON1左键,BUTTON3右键
p.setBackground(Color.green); //改变背景颜色
jp.show(p,e.getX(),e.getY()); //展示新颜色
}
}
public void mouseEntered(MouseEvent e) { //不处理事情,但必须重写接口里的方法
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent e) { //不处理事情,但必须重写接口里的方法
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent e) { //不处理事情,但必须重写接口里的方法
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent e) { //不处理事情,但必须重写接口里的方法
// TODO Auto-generated method stub
}
}
热心网友
时间:2024-11-17 02:36
自己把swing看一遍,你都知道了。为什么这种程序要贴出来。有错误大家可以帮你找,帮你改,但是,写注释没有什么意思。