一个java菜单程序(AWT)

原创 2007年10月11日 08:56:00

这个程序的框架是网上找来的,自己改了些东西。实现了三种不同类型的菜单,并且实现了菜单的快捷键。但是个人感觉不太好,并且无法进行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(
600400);
        menu.show();
    }
}  
//  @jve:decl-index=0:visual-constraint="20,17" 

java awt中文方框出乱码

java awt中文方框出乱码
  • wzhworld
  • wzhworld
  • 2017年01月25日 15:22
  • 889

JAVA AWT图形用户界面设计

1 用AWT生成图形化用户界面   抽象窗口工具包AWT (Abstract Window Toolkit) 是 API为Java 程序提供的建立图形用户界面GUI (Graphics User...
  • spring123666
  • spring123666
  • 2013年09月09日 00:20
  • 3706

编写一个学生信息系统的菜单程序,在菜单其中的增加记录的菜单选项中实现对一条学生记录的录入,记录中需要有学号、姓名、性别,年龄籍贯等字段,要求用最合适的控件录入。

部分代码:(QueryFrame) package com.ybn.student.ui; import java.awt.*; import java.awt.event.*; import jav...
  • dlh_sycamore
  • dlh_sycamore
  • 2017年04月03日 14:50
  • 763

在JAVA控制台中控制菜单的框架小程序

public class TestWorker { public static void main(String[] args) { // TODO Auto-generated method...
  • gfdonx
  • gfdonx
  • 2015年10月09日 09:00
  • 1712

Java AWT Dialog(对话框)学习

Dialog是Window类的子类,是一个容器类,属于特殊组件。对话框是可以独立存在的顶级窗口,因此用法与普通窗口的用法几乎完全一样。 对话框有如下两点需要注意: (1)对话框通常依赖于其...
  • bertyj
  • bertyj
  • 2015年06月07日 18:01
  • 2570

java中AWT和SWing的区别与联系

AWT和Swing都是java中的包。 AWT(Abstract Window Toolkit):抽象窗口工具包,早期编写图形界面应用程序的包。 Swing :为解决 AWT 存在的问...
  • shuchangwen
  • shuchangwen
  • 2014年09月14日 09:58
  • 9816

[疯狂Java]AWT:绘图、动画

1. 绘图三方法:     1) AWT绘图的核心就是三个方法:paint、update、repaint;     2) 三者的调用关系是repaint调用update,update调用paint; ...
  • Lirx_Tech
  • Lirx_Tech
  • 2016年03月08日 13:15
  • 1593

[疯狂Java]AWT:菜单栏、菜单、菜单项、菜单事件处理

1. 菜单栏、菜单、菜单项之间的关系:     1) 菜单栏(MenuBar)就是窗口中常见的顶层菜单栏,包含文件、编辑、格式等等子菜单的菜单条,即包含菜单的容器;     2) 菜单(Menu)是必...
  • Lirx_Tech
  • Lirx_Tech
  • 2016年03月07日 16:56
  • 6318

Java源码-简单计算器界面的AWT实现与Swing实现之比较

AWT(Abstract Windown Toolkit)调用操作系统自身的方法呈现界面,swing则是完全由Java代码实现。 AWT实现的界面效果如下: Swing实现的界面效果如...
  • hpdlzu80100
  • hpdlzu80100
  • 2016年07月28日 17:38
  • 2569

java中awt和swing是什么关系

java中awt和swing是什么关系 标签: swingjava图形平台嵌入式工具 2011-10-13 15:01 1151人阅读 评论(0) 收藏 举报 ...
  • crcr
  • crcr
  • 2016年01月08日 12:00
  • 2091
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个java菜单程序(AWT)
举报原因:
原因补充:

(最多只允许输入30个字)