大神们好,可以帮我解答一下问题好吗
我是很新的新人。。。就是真的代码要看很久,连基础都不怎么会的那种。这个是我的源代码。这个可以显示出我的菜单。
import java.awt.*;
import java.awt.color.*;
import java.awt.event.*;
import javax.swing.*;
public class xxx extends JFrame{
public xxx(String sTitle) {
super(sTitle);
//获取窗口面板;
setSize(640,480);
Container c=getContentPane();
c.setBackground(Color.RED); //窗口背景红色
c.setLayout(null);//取消布局器
JPanel pan=new JPanel();
pan.setBackground(Color.YELLOW); // pan背景黄色
pan.setSize(200,100);
centerWindow();
add(pan);//用add方法把面板pan添加到窗口中
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Toolkit tk=getToolkit(); //得到一个Toolkit对象
Image icon=tk.getImage("88888.png"); //获取图标
setIconImage(icon);}
public void centerWindow(){
Toolkit tk=getToolkit();
Dimension dm=tk.getScreenSize(); //获得显示屏桌面窗口的大小
setLocation((int)(dm.getWidth()-getWidth())/2,(int)(dm.getHeight()-getHeight())/2); //让窗口居中显示
}
static JMenuBar mb=new JMenuBar();//菜单栏
static FgMenu mFile=new FgMenu("文件(F)",KeyEvent.VK_F),
mChange=new FgMenu("修改(A)",KeyEvent.VK_A);//"文件"菜单
static JMenuItem miNew=new JMenuItem("新建(N)",KeyEvent.VK_N),
miOpen=new JMenuItem("打开(O)...",KeyEvent.VK_O),
misaveas=new JMenuItem("另存为(B)",KeyEvent.VK_B),
miSave=new JMenuItem("保存(S)",KeyEvent.VK_S),
miFont=new JMenuItem("字体与颜色(F)...", KeyEvent.VK_F),
miQuit=new JMenuItem("退出(Q)",KeyEvent.VK_Q),
miCut=new JMenuItem("剪切(X)",KeyEvent.VK_X),
miPaste=new JMenuItem("黏贴(V)",KeyEvent.VK_V),
miCopy=new JMenuItem("复制(C)",KeyEvent.VK_C);
public static void main(String args[]) {
JFrame frm = new xxx("我是黄琳,欢迎使用我开发的软件");
//②:添加组件。本例中直接添加菜单
frm.setJMenuBar(mb);
mFile.add(miNew);//新建
mFile.add(miOpen);//打开
mFile.addSeparator();
mFile.add(miSave);//保存
mFile.add(misaveas);
mFile.add(miQuit);//退出
mChange.add(miCopy);
mChange.add(miCut);
mChange.addSeparator();//分割条
mChange.add(miPaste);
mChange.add(miFont);//字体与颜色菜单
mb.add(mFile);
mb.add(mChange);//将"文件"菜单添加到菜单栏上 //③:设置窗口位置和大小
frm.setVisible(true);
//设置关闭按钮操作
//④:显示窗口
}
}
class FgMenu extends JMenu{
public FgMenu(String label){
super(label);
}
public FgMenu(String label,int nAccelerator){
super(label);
setMnemonic(nAccelerator);
}
}
可是当我按照书,想把menu那部分放在类中显得更简洁的时候。有以下这份代码
import java.awt.*;
import java.awt.color.*;
import java.awt.event.*;
import javax.swing.*;
public class yyy extends JFrame{
JMenuBar mb=new JMenuBar();//菜单栏
FgMenu mFile=new FgMenu("文件(F)",KeyEvent.VK_F),
mChange=new FgMenu("修改(A)",KeyEvent.VK_A);//"文件"菜单
JMenuItem miNew=new JMenuItem("新建(N)",KeyEvent.VK_N),
miOpen=new JMenuItem("打开(O)...",KeyEvent.VK_O),
misaveas=new JMenuItem("另存为(B)",KeyEvent.VK_B),
miSave=new JMenuItem("保存(S)",KeyEvent.VK_S),
miFont=new JMenuItem("字体与颜色(F)...", KeyEvent.VK_F),
miQuit=new JMenuItem("退出(Q)",KeyEvent.VK_Q),
miCut=new JMenuItem("剪切(X)",KeyEvent.VK_X),
miPaste=new JMenuItem("黏贴(V)",KeyEvent.VK_V),
miCopy=new JMenuItem("复制(C)",KeyEvent.VK_C);
public yyy(String sTitle) {
super(sTitle);
addMenus();
setSize(640,480);
Container c=getContentPane();
c.setBackground(Color.RED); //窗口背景红色
c.setLayout(null);//取消布局器
JPanel pan=new JPanel();
pan.setBackground(Color.YELLOW); // pan背景黄色
pan.setSize(200,100);
add(pan);
centerWindow();
//用add方法把面板pan添加到窗口中
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Toolkit tk=getToolkit(); //得到一个Toolkit对象
Image icon=tk.getImage("88888.png"); //获取图标
setIconImage(icon);}
private void addMenus(){
setJMenuBar(mb);
mFile.add(miNew);//新建
mFile.add(miOpen);//打开
mFile.addSeparator();
mFile.add(miSave);//保存
mFile.add(misaveas);
mFile.add(miQuit);//退出
mChange.add(miCopy);
mChange.add(miCut);
mChange.addSeparator();//分割条
mChange.add(miPaste);
mChange.add(miFont);//字体与颜色菜单
mb.add(mFile);
mb.add(mChange);
}
public void centerWindow(){
Toolkit tk=getToolkit();
Dimension dm=tk.getScreenSize(); //获得显示屏桌面窗口的大小
setLocation((int)(dm.getWidth()-getWidth())/2,(int)(dm.getHeight()-getHeight())/2); //让窗口居中显示
}
public static void main(String args[]) {
xxx frm = new xxx("我是黄琳,欢迎使用我开发的软件");
frm.setVisible(true);
}
class FgMenu extends JMenu{
public FgMenu(String label){
super(label);
}
public FgMenu(String label,int nAccelerator){
super(label);
setMnemonic(nAccelerator);
}
}
}
这个代码不知道为什么显示不了菜单? 有人可以告诉我一下为什么吗。。。我按照书里做的啊