一个java菜单程序(AWT)

这个程序的框架是网上找来的,自己改了些东西。实现了三种不同类型的菜单,并且实现了菜单的快捷键。但是个人感觉不太好,并且无法进行VIsual的操作。打算今天再作一个用SWT的,代码明天晚上之前放上来。

 

/**         
 * 
@author    bestseal
 * @date     2007.10.10
 * 
@version   1.0.0
 * a menu programme using awt
 * 
*/
import  java.awt. * ;
import  java.awt.event.KeyEvent;


public   class  MenuTest  extends  Frame {
     
/* name all the items for the Edit menu */
    String[] ArrayEdit
=  {  " Copy " " Paste " " Delete " , " Find " }; 
    
/*  name the textfiled */
    TextField text 
=   new  TextField( " This is a Menu programme. " , 80 );   //   @jve:decl-index=0:visual-constraint="18,126"
    MenuBar menuBar  =   new  MenuBar();  
    Menu menuFile 
=   new  Menu( " File " );  
    Menu menuEdit 
=   new  Menu( " Edit " ); 
    Menu menuSave
=   new  Menu( " Save " );  
    
    
/*  add check box: */
    CheckboxMenuItem[] checkboxSave 
=  {  new  CheckboxMenuItem( " Save " ),
                                        
new  CheckboxMenuItem( " Save as " ) };
    
/* add keyboard shortcuts */
    MenuShortcut oShortcut
=   new  MenuShortcut(KeyEvent.VK_O,  true );  /* if true, add shift */    //   @jve:decl-index=0:
    MenuShortcut eShortcut  =   new  MenuShortcut(KeyEvent.VK_E,  false ); /* false with out shift */    //   @jve:decl-index=0:
    MenuItem[] ArrayFile  =  {  new  MenuItem( " Open " ,oShortcut ) ,
                        
new  MenuItem( " Exit " ,eShortcut)  };
    
/* function: constructor function */
    
public  MenuTest() 
    {
        
/*  add menu to EditMenu */
        
for  ( int  i  =   0 ; i  <  ArrayEdit.length; i ++
        {
            menuEdit.add(
new  MenuItem(ArrayEdit[i]));
            
/* every two item add a list separator  */
            
if  ((i + 1 ) %   2   ==   0 )
            {
                menuEdit.addSeparator();
            }
        }
        
/* add menu to checkbox Save */
        
for  ( int  i  =   0 ; i  <  checkboxSave.length; i ++ )
        {
            menuSave.add(checkboxSave[i]);
        }
        menuFile.add(menuSave);
        
        
/* add menu to FileMenu */
        
for  ( int  i  =   0 ; i  <  ArrayFile.length; i ++ )
        {
            menuFile.add(ArrayFile[i]);
        }
        
/*  compose the frame and the menu */
        menuBar.add(menuFile);
        menuBar.add(menuEdit);
        add(
" Center " ,text);
        setMenuBar(menuBar);
        
/* textfiled read only */
        text.setEditable(
false );
    }
   
/* fucnction :close windows to exit */
    
public   boolean  handleEvent(Event evt) 
    {
        
if  (evt.id  ==  Event.WINDOW_DESTROY)
            System.exit(
0 );
        
else
            
return   super .handleEvent(evt);
        
return   true ;
    }
    
/* function:  action the menu */
    
public   boolean  action(Event evt, Object arg) {
        
/* test if target is a instance of Menuitem */
         
if  (evt.target  instanceof  MenuItem)
         {
            
if  (arg.equals( " Open " ))
            {
                String str 
=  text.getText();
                
boolean  chosen  =   false ;
                
for  ( int  i  =   0 ; i  <  ArrayEdit.length; i ++ )
                    
if  (str.equals(ArrayEdit[i]))
                        chosen 
=   true ;
                
if  ( ! chosen)
                    text.setText(
" Choose a Menu! " );
                
else
                    text.setText(
" Opening  "   +  str );
            }     
                
else   if  (evt.target.equals(ArrayFile[ 1 ]))
                System.exit(
0 );  /* exit programme */
             
/* CheckboxMenuItems cannot use String
             * matching; you must match the target:
             * 
*/
                 
else   if  (evt.target.equals(checkboxSave[ 0 ]))
                text.setText(
" saving.... " +  checkboxSave[ 0 ].getState());
                 
else   if  (evt.target.equals(checkboxSave[ 1 ]))
                text.setText(
" save as... " +  checkboxSave[ 1 ].getState());
            
else
                text.setText(arg.toString());
        } 
else
            
return   super .action(evt, arg);
        
return   true ;
    }

    
public   static   void  main(String[] args) {
        MenuTest menu 
=   new  MenuTest();
        menu.resize(
600 400 );
        menu.show();
    }
}  
//   @jve:decl-index=0:visual-constraint="20,17" 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Java程序,用于创建一个Word菜单: ```java import javax.swing.*; import java.awt.event.*; public class WordMenu { public static void main(String[] args) { JFrame frame = new JFrame("Word菜单"); JMenuBar menuBar = new JMenuBar(); JMenu fileMenu = new JMenu("文件"); JMenu editMenu = new JMenu("编辑"); JMenu viewMenu = new JMenu("视图"); JMenuItem newMenuItem = new JMenuItem("新建"); JMenuItem openMenuItem = new JMenuItem("打开"); JMenuItem saveMenuItem = new JMenuItem("保存"); JMenuItem saveAsMenuItem = new JMenuItem("另存为"); JMenuItem exitMenuItem = new JMenuItem("退出"); JMenuItem cutMenuItem = new JMenuItem("剪切"); JMenuItem copyMenuItem = new JMenuItem("复制"); JMenuItem pasteMenuItem = new JMenuItem("粘贴"); JMenuItem selectAllMenuItem = new JMenuItem("全选"); JMenuItem zoomInMenuItem = new JMenuItem("放大"); JMenuItem zoomOutMenuItem = new JMenuItem("缩小"); JCheckBoxMenuItem statusBarMenuItem = new JCheckBoxMenuItem("状态栏"); fileMenu.add(newMenuItem); fileMenu.add(openMenuItem); fileMenu.add(saveMenuItem); fileMenu.add(saveAsMenuItem); fileMenu.addSeparator(); fileMenu.add(exitMenuItem); editMenu.add(cutMenuItem); editMenu.add(copyMenuItem); editMenu.add(pasteMenuItem); editMenu.addSeparator(); editMenu.add(selectAllMenuItem); viewMenu.add(zoomInMenuItem); viewMenu.add(zoomOutMenuItem); viewMenu.addSeparator(); viewMenu.add(statusBarMenuItem); menuBar.add(fileMenu); menuBar.add(editMenu); menuBar.add(viewMenu); frame.setJMenuBar(menuBar); frame.setSize(400, 300); frame.setVisible(true); exitMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); } } ``` 这个程序创建了一个JFrame窗口,并在其中添加了一个JMenuBar和三个JMenu:文件、编辑和视图。每个JMenu都包含一些JMenuItem,例如“新建”、“打开”、“保存”等。当单击“退出”菜单项时,程序将终止。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值