当前位置:  技术问答>java相关

求助~!!!程序功能设计问题,请执教!!

    来源: 互联网  发布时间:2015-09-11

    本文导语:  这段代码没有错误,但功能上有缺陷 只有点击菜单中的“加”时,才会出现结果 ,并且全部出现 但点级别的就没有反应如“减”; 请高手指正!! import java.awt.*; import java.awt.event.*; public class TheMenuEtc extends Frame...

这段代码没有错误,但功能上有缺陷
只有点击菜单中的“加”时,才会出现结果 ,并且全部出现
但点级别的就没有反应如“减”;
请高手指正!!

import java.awt.*;
import java.awt.event.*;

public class TheMenuEtc extends Frame{
static TextField tf1=new TextField(10);
static TextField tf2=new TextField(10);
static TextArea ta=new TextArea(8,16);
public static void main(String args[]){
TheMenuEtc tm=new TheMenuEtc("a simple calculater");
tm.addMenu();
tm.setcalculator();
tm.go();
}

TheMenuEtc(String str){
super(str);
}

public void addMenu(){
MenuBar mb=new MenuBar();
Menu calcu=new Menu("计算");
Menu edit=new Menu("编辑");
Menu help=new Menu("帮助");
MenuItem add=new MenuItem("加");
add.addActionListener(new MenuEvent1());
MenuItem minus=new MenuItem("减");
add.addActionListener(new MenuEvent2());
MenuItem multiply=new MenuItem("乘");
add.addActionListener(new MenuEvent3());
MenuItem divide=new MenuItem("除");
add.addActionListener(new MenuEvent4());
calcu.add(add);
calcu.add(minus);
calcu.add(multiply);
calcu.add(divide);
mb.add(calcu);
mb.add(edit);
mb.add(help);
setMenuBar(mb);
}

public void setcalculator(){
Panel p1=new Panel();
Label first=new Label("opr1");
Label second=new Label("opr2");
p1.add(first);
tf1.setEditable(true);
tf1.resize(tf1.preferredSize());
p1.add(tf1);

p1.add(second);
tf2.setEditable(true);
tf2.resize(tf2.preferredSize());
p1.add(tf2);

add("North",p1);

ta.setEditable(false);
add("Center",ta);
}

public void go(){
TheAdapterTest tat=new TheAdapterTest();
addWindowListener(tat);
setSize(400,300);
setVisible(true);
}
}

class TheAdapterTest extends WindowAdapter{
public void windowClosing(WindowEvent e)
{
System.exit(1);
}
}

class MenuEvent1 implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String newline=System.getProperty("line.separator");
String str1=TheMenuEtc.tf1.getText();
String str2=TheMenuEtc.tf2.getText();
int m=Integer.parseInt(str1);
int n=Integer.parseInt(str2);
m=m+n;
String str=Integer.toString(m);
TheMenuEtc.ta.append("the result is"+str+newline);
}
}

class MenuEvent2 implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String newline=System.getProperty("line.separator");
String str1=TheMenuEtc.tf1.getText();
String str2=TheMenuEtc.tf2.getText();
int m=Integer.parseInt(str1);
int n=Integer.parseInt(str2);
m=m-n;
String str=Integer.toString(m);
TheMenuEtc.ta.append("the result is"+str+newline);
}
}

class MenuEvent3 implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String newline=System.getProperty("line.separator");
String str1=TheMenuEtc.tf1.getText();
String str2=TheMenuEtc.tf2.getText();
int m=Integer.parseInt(str1);
int n=Integer.parseInt(str2);
m=m*n;
String str=Integer.toString(m);
TheMenuEtc.ta.append("the result is"+str+newline);
}
}

class MenuEvent4 implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String newline=System.getProperty("line.separator");
String str1=TheMenuEtc.tf1.getText();
String str2=TheMenuEtc.tf2.getText();
int m=Integer.parseInt(str1);
int n=Integer.parseInt(str2);
m=m/n;
String str=Integer.toString(m);
TheMenuEtc.ta.append("the result is"+str+newline);
}
}

|
MenuBar mb=new MenuBar();
Menu calcu=new Menu("计算");
Menu edit=new Menu("编辑");
Menu help=new Menu("帮助");
MenuItem add=new MenuItem("加");
add.addActionListener(new MenuEvent1());
MenuItem minus=new MenuItem("减");
add.addActionListener(new MenuEvent2());-------here
MenuItem multiply=new MenuItem("乘");
add.addActionListener(new MenuEvent3());-----here
MenuItem divide=new MenuItem("除");
add.addActionListener(new MenuEvent4(());-----here
calcu.add(add);
calcu.add(minus);
calcu.add(multiply);
calcu.add(divide);
mb.add(calcu);
mb.add(edit);
mb.add(help);
setMenuBar(mb);

你反复只给add加了监听器.应该是
multiply.addActionListener();......

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 【求助】iplanet问题,求助高手解答!
  • 菜鸟求助,solaris下计算问题求助
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • 求助:linux下 vim的配置(高分求助) iis7站长之家
  • 求助~~求助 ~~linux文件读写问题
  • 求助:信号 --13 进程中断
  • 求助,安装了红帽子后进不了
  • 新装linux求助
  • linux的 iptables问题求助
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 一个简单的问题,高分求助!!!
  • 紧急求助:Unix下给文件夹重命名用什么命令?谢谢!!!!
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求助


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3