| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1694 人关注过本帖
标题:我是超级菜鸟,请大家帮忙,改写一下这个程序,谢谢!
只看楼主 加入收藏
kr1983
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2005-5-22
收藏
 问题点数:0 回复次数:25 
我是超级菜鸟,请大家帮忙,改写一下这个程序,谢谢!

请大家帮我把这个程序用另一种方式改写一下: 就是我想直接在public class MyButtonFrame extends Frame后接入implements ActionListener,改写后程序依然如改写前一样运行,请帮我改写一下,谢谢! import java.awt.*; import java.awt.event.*;

public class MyButtonFrame extends Frame { MyButtonPanel panel=new MyButtonPanel(); public MyButtonFrame(String s) { setTitle(s); add(panel); }

public static void main(String[] args) { MyButtonFrame frm=new MyButtonFrame("测试按钮事件"); frm.setSize(500,300); frm.setVisible(true); } }

class MyButtonPanel extends Panel { public MyButtonPanel() { Button b=new Button("蓝色"); Button g=new Button("绿色"); Button e=new Button("退出"); add(b); add(g); add(e);

MyListenerAction bAction=new MyListenerAction(Color.blue); MyListenerAction gAction=new MyListenerAction(Color.green); MyListenerAction eAction=new MyListenerAction(Color.red);

b.addActionListener(bAction); g.addActionListener(gAction); e.addActionListener(eAction); } private class MyListenerAction implements ActionListener { private Color bgColor;

public MyListenerAction(Color c) { bgColor=c; }

public void actionPerformed(ActionEvent event) { setBackground(bgColor); repaint(); if(event.getActionCommand()=="退出") System.exit(0); } } }

搜索更多相关主题的帖子: 超级 
2005-05-29 19:38
tempnetbar
Rank: 2
等 级:新手上路
威 望:4
帖 子:582
专家分:4
注 册:2004-5-5
收藏
得分:0 
去掉private class MylistenerAction的东西,留下

public void actionPerformed(ActionEvent event)
  {
   setBackground(bgColor);
   repaint();
   if(event.getActionCommand()=="退出")
    System.exit(0);
  }

相信勤能补拙! 喜欢用好用的就永远学不到有用的。
2005-05-30 17:17
liuyude888
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-7-12
收藏
得分:0 
在public class MyButtonFrame extends Frame后接入implements ActionListener
只要在你 MyButtonFrame的类里面实现 ActionLi接口里面的 public void actionPerformed(ActionEvent event)方法就行了
也就是 下面写的 还有button注册监听器写 只要写 b.addActionListener(this)就行了
public class MyButtonFrame extends Frame implements ActionListener
{
  ..........
  ..........
 b.addActionListener(this)
public void actionPerformed(ActionEvent event)
  {
  .......
  .......
  }
}

你写得不错 至少有点mvc设计的样子的 控制和界面分开了
2005-07-12 03:11
羽扇东风
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2004-12-2
收藏
得分:0 
楼上两位的东东

我都试过了

可能我的理解能力有限吧

度没成功

不知道楼主试过没有呢?

2005-07-28 09:25
喝牛奶的熊
Rank: 1
来 自:星星的你
等 级:等待验证会员
帖 子:80
专家分:0
注 册:2004-7-25
收藏
得分:0 

我看过楼主的程序之后,觉得很好,自己仿写了一段 基本上没有改什么,就是小的类名等做了替换,为什么却出现编译错误??? 请各位高手帮忙指点一二…… import java.awt.*; import java.awt.event.*;

public class bframe extends Frame{ myPanel p=new myPanel(); public bframe(String s){ setTitle(s); add(p); } public static void main(String[] args){ bframe f=new bframe("cool"); f.setSize(400,600); f.setVisible(true); } }

class myPanel extends Panel{ public myPanel(){ Button a=new Button("Bule"); Button b=new Button("Yellow"); Button c=new Button("Exit"); add(a); add(b); add(c); MyListenerAction aAction=new MyListenerAction(Color.bule); MyListenerAction bAction=new MyListenerAction(Color.yellow); MyListenerAction cAction=new MyListenerAction(Color.red); a.addActionListener(aAction); b.addActionListener(bAction); c.addActionListener(cAction); } private MyListenerAction implements ActionListener{ private Color bgColor; public MyListenerAction(Color e){ bgColor=e; } public void actionPerformed(ActionEvent event){ setBackground(bgColor); repaint(); if(event.getActionCommand()=="Exit") System.exit(0); } } } 编译提示错误为: bframe.java:39: <identifier> expected private MyListenerAction implements ActionListener{ ^ bframe.java:54: ';' expected } ^ 2 errors

E:\>javac bframe.java bframe.java:39: <identifier> expected private MyListenerAction implements ActionListener{ ^ bframe.java:54: ';' expected } ^ 2 errors

[此贴子已经被作者于2005-7-28 22:42:30编辑过]


曾经沧海难为水,谁说吃饭不用嘴?
2005-07-28 15:19
喝牛奶的熊
Rank: 1
来 自:星星的你
等 级:等待验证会员
帖 子:80
专家分:0
注 册:2004-7-25
收藏
得分:0 
这个问题希望高手给予解答啊

我看了一下午了

都没看出来问题在哪啊?

当事者迷,旁观者清啊!

多谢了,跪等!

曾经沧海难为水,谁说吃饭不用嘴?
2005-07-28 23:01
喝牛奶的熊
Rank: 1
来 自:星星的你
等 级:等待验证会员
帖 子:80
专家分:0
注 册:2004-7-25
收藏
得分:0 
临睡前,把这个帖子再顶起来

希望早上起来

能有人看到,帮我解决一下这个问题!

曾经沧海难为水,谁说吃饭不用嘴?
2005-07-29 00:21
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
喝牛奶的熊, the corrected code: package bframe; import java.awt.*; import java.awt.event.*; public class bframe extends Frame { myPanel p=new myPanel(); public bframe(String s) { setTitle(s); add(p); } public static void main(String[] args) { bframe f=new bframe("cool"); f.setSize(400,600); f.setVisible(true); } } class myPanel extends Panel { public myPanel() { Button a=new Button("Bule"); Button b=new Button("Yellow"); Button c=new Button("Exit"); add(a); add(b); add(c); MyListenerAction aAction=new MyListenerAction(Color.blue); MyListenerAction bAction=new MyListenerAction(Color.yellow); MyListenerAction cAction=new MyListenerAction(Color.red); a.addActionListener(aAction); b.addActionListener(bAction); c.addActionListener(cAction); } private class MyListenerAction implements ActionListener { private Color bgColor; public MyListenerAction(Color e) { bgColor=e; } public void actionPerformed(ActionEvent event) { setBackground(bgColor); repaint(); if(event.getActionCommand()=="Exit") System.exit(0); } } }

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-07-29 07:43
喝牛奶的熊
Rank: 1
来 自:星星的你
等 级:等待验证会员
帖 子:80
专家分:0
注 册:2004-7-25
收藏
得分:0 
问题终于解决了……还是自己粗心大意啊! private MyListenerAction implements ActionListener 这句竟然没打class,晕! 还有个blue竟然写成了bule!…… 以后一定注意!! kai 谢谢你,可是这个程序,前面加了package bframe;以后,就可以编译,但不能执行了! 提示如下: Exception in thread "main" java.lang.NoClassDefFoundError: bframe (wrong name: b frame/bframe) 什么原因呢? -------------------------------------------------------------------------------------------------------------------------
问题终于解决了……还是自己粗心大意啊! private MyListenerAction implements ActionListener 这句竟然没打class,晕! 还有个blue竟然写成了bule!…… 以后一定注意!!
我来借喝奶的熊的宝地点评一下。注意哦不是针对你哦喝奶的熊。你能自己发现错误很不错了。这年头菜鸟问的问题十个问题九个傻。几乎都是打字输入的错误,希望大家以后问问题先自查10遍再说,要仔仔细细的查!我总是喜欢自己解决问题,一来有成就感;二来是因为有时候有些错误只是低级错误,一方面这样的错误问了很没意义,另一方面问这样的问题不觉得丢自己的脸吗?可能网络就是这样的好处,问这样的问题不会感到丢人,要是在课堂上问这样的问题还怕被同学笑话呢~如果大家能听进去那最好,听不进那就当我是在这里疯言疯语好了。反正这些好习惯都是自己的事,提高水平也是自己的事。

[此贴子已经被tempnetbar于2005-7-30 8:34:40编辑过]


曾经沧海难为水,谁说吃饭不用嘴?
2005-07-29 12:05
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
package bframe 说明 程序放在bframe 那个目录下

编译的方法: cd 到该目录前,  然后 javac bframe/bframe.java
执行的方法                                  java bframe/bframe

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-07-29 13:47
快速回复:我是超级菜鸟,请大家帮忙,改写一下这个程序,谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022354 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved