当前位置:编程学习 > JAVA >>

请问java如何实现多个标题栏的下拉菜单?

比如Test下面的下拉菜单怎么做??

答案:
你的意思是建2级子菜单哦 java中添加子菜单的语句是这么写的: import java.awt.*; import java.awt.event.*; import java.io.*; public class TestWindow extends Frame implements ActionListener { TextArea ta; Button b1,b2; Dialog md; MenuItem open,save,myexit,open1,save1; MenuItem copy,palse; CheckboxMenuItem bold,ita; MenuBar mb; PopupMenu popm; public void createmenu() { mb=new MenuBar(); Menu m1=new Menu("文件"); Menu m2=new Menu("编辑"); Menu m3=new Menu("字体"); mb.add(m1);mb.add(m2);m2.add(m3); open=new MenuItem("打开"); open.addActionListener(this); save=new MenuItem("保存"); myexit=new MenuItem("退出"); m1.add(open);m1.add(save);m1.add(myexit); copy=new MenuItem("复制"); palse=new MenuItem("粘贴"); bold=new CheckboxMenuItem("加粗"); ita=new CheckboxMenuItem("倾斜"); m2.add(copy);m2.add(palse); m3.add(bold);m3.add(ita); popm=new PopupMenu (); open1=new MenuItem("打开"); open1.addActionListener(this); save1=new MenuItem("保存"); popm.add(open1);popm.add(save1); ta.add(popm); ta.addMouseListener(new MyMouseEvent(this)); } class MyMouseEvent extends MouseAdapter { TestWindow myparentFrame; MyMouseEvent ( TestWindow m) { myparentFrame=m; } public void mouseReleased(MouseEvent e) { if(e.isPopupTrigger()) myparentFrame.popm.show((Component)e.getSource(),e.getX(),e.getY()); } } public TestWindow () { addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) { dispose(); System.exit(0); } }); ta=new TextArea(10,30); b1=new Button("弹出对话框"); b2=new Button("隐藏对话框"); b1.addActionListener(this); b2.addActionListener(this); add(ta,BorderLayout.CENTER); Panel p1=new Panel(); p1.add(b1); p1.add(b2); add(p1,BorderLayout.SOUTH); setVisible(true); setSize(400,300); md=new Dialog(this,"对话框"); md.add(new Label("这是一个对话框")); md.setSize(100,60); md.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) { md.setVisible(false); } }); pack(); createmenu(); setMenuBar(mb); } public void actionPerformed(ActionEvent e) { if(e.getSource()==b1) md.setVisible(true); if(e.getSource()==b2) md.setVisible(false); if(e.getActionCommand()=="打开") try{ openfile();}catch(IOException ex){} } public void openfile() throws IOException { FileDialog fd=new FileDialog(this,"aaa",FileDialog.LOAD); fd.setVisible(true); FileInputStream fis=new FileInputStream( fd.getDirectory()+fd.getFile()); String s=""; int n=0; while((n=fis.read())!=-1) ta.append(""+(char)n); fis.close(); } public static void main(String []args) { TestWindow tw=new TestWindow(); } }

import java.awt.*;
import javax.swing.*;
public class textdemo extends JFrame{
 JTextArea jta=new JTextArea();
 JLabel jlb=new JLabel();
 public textdemo(){
    JMenuBar jmb=new JMenuBar();
 setJMenuBar(jmb);
 JMenu jm1=new JMenu("文件(F)");
 jm1.setMnemonic('F');
 JMenuItem jm11=new JMenuItem("新建(N)");
 jm11.setMnemonic('N');
 JMenuItem jm12=new JMenuItem("打开(O)");
 jm12.setMnemonic('O');
 JMenuItem jm13=new JMenuItem("保存(S)");
 jm13.setMnemonic('S');
 JMenuItem jm14=new JMenuItem("另存为(N)");
 jm14.setMnemonic('N');
 JMenuItem jm15=new JMenuItem("页面设置(U)");
 jm15.setMnemonic('U');
 JMenuItem jm16=new JMenuItem("打印(P)");
 jm16.setMnemonic('P');
 JMenuItem jm17=new JMenuItem("退出(X)");
 jm17.setMnemonic('X');
 jm1.add(jm11);
 jm1.add(jm12);
 jm1.add(jm13);
 jm1.add(jm14);
 jm1.addSeparator();
 jm1.add(jm15);
 jm1.add(jm16);
 jm1.addSeparator();
 jm1.add(jm17);
 JMenu jm2=new JMenu("编辑(E)");
 jm1.setMnemonic('E');//热键
MenuItem jm21=new JMenuItem("撤销(U)");
 jm21.setMnemonic('U');
 JMenuItem jm22=new JMenuItem("剪切(T)");
 jm22.setMnemonic('T');
 JMenuItem jm23=new JMenuItem("复制(C)");
 jm23.setMnemonic('C');
 JMenuItem jm24=new JMenuItem("粘贴(P)");
 jm24.setMnemonic('P');
 JMenuItem jm25=new JMenuItem("删除(L)");
 jm25.setMnemonic('L');
 JMenuItem jm26=new JMenuItem("查找(F)");
 jm26.setMnemonic('F');
 JMenuItem jm27=new JMenuItem("查找下一个(N)");
 jm27.setMnemonic('N');
 JMenuItem jm28=new JMenuItem("替换(R)");
 jm28.setMnemonic('R');
 JMenuItem jm29=new JMenuItem("转到(G)");
 jm29.setMnemonic('G');
 JMenuItem jm30=new JMenuItem("全选(A)");
 jm30.setMnemonic('A');
 JMenuItem jm31=new JMenuItem("日期/时间(D)");
 jm31.setMnemonic('D');
 jm2.add(jm21);
 jm2.addSeparator();
 jm2.add(jm22);
 jm2.add(jm23);
 jm2.add(jm24);
 jm2.add(jm25);
 jm2.addSeparator();
 jm2.add(jm26);
 jm2.add(jm27);
 jm2.add(jm28);
 jm2.add(jm29);
 jm2.addSeparator();
 jm2.add(jm30);
 jm2.add(jm31);
 JMenu jm3=new JMenu("格式(O)");
 jm3.setMnemonic('0');
 JMenuItem jm311=new JMenuItem("自动换行(W)");
 jm311.setMnemonic('W');
 JMenu jm312=new JMenu("字体(F)");
 jm312.add(new JMenuItem("宋体"));
 jm312.add(new JMenuItem("楷体"));
 jm312.setMnemonic('F');
 jm3.add(jm311);
 jm3.add(jm312);
 JMenu jm4=new JMenu("查看(V)");
 jm4.setMnemonic('V');
 JMenuItem jm41=new JMenuItem("状态栏(S)");
 jm41.setMnemonic('S');
 jm4.add(jm41);
 JMenu jm5=new JMenu("帮助(H)");
 jm5.setMnemonic('H');
 JMenuItem jm51=new JMenuItem("帮助主题(H)");
 jm5.setMnemonic('H');
 JMenuItem jm52=new JMenuItem("关于记事本(A)");
 jm5.setMnemonic('A');
 jm5.add(jm51);
 jm5.addSeparator();
 jm5.add(jm52);
 jmb.add(jm1);
 jmb.add(jm2);
 jmb.add(jm3);
 jmb.add(jm4);
 jmb.add(jm5);
 add(jta,BorderLayout.CENTER);
 setSize(700,700);
 setVisible(true);
 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 setTitle("记事本");
 }
public static void main(String[] args){
     try{
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
     }catch(Exception e){}//显示样式为本机平台样式
     textdemo  td = new textdemo();
   }
}
首先分级理解1级为菜单栏JMenuBar

                     2级为菜单JMenu

                     3级为菜单项JMenuItem

2级对应(文件,编辑,格式,查看,帮助)

3级对应(新建,打开,保存,另存为等)

因为格式的字体下面还有菜单项,所以字体应定义为2级而非3级。

其他菜单项下增加菜单项只需升级即可级定义时修改类型JMenuItem为JMenu.

可以建立数组类,然后定义对象方便。

看看SWING包有没有相关的控件类

上一个:JAVA 聊天室服务器端和客户端完整代码
下一个:Java 编写 贪吃蛇游戏的 大体思路是什么?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,