| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1312 人关注过本帖
标题:监听对象
只看楼主 加入收藏
wuzhong
Rank: 1
等 级:新手上路
帖 子:233
专家分:0
注 册:2006-10-23
收藏
 问题点数:0 回复次数:24 
监听对象

同志们,这样加监听对象为什么不行呢?


import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

class useCardLayout extends JFrame {

public CardLayout mycard1 = new CardLayout(2,3);//2,3表示与边缘的距离

public JButton bt1= new JButton("key1");

public JButton bt2 = new JButton("key2");

public JButton bt3 = new JButton("key3");

public Container c = this.getContentPane();

useCardLayout(){

super("卡片管理");

setSize(400,300);

setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

c.add("mycard1",bt1);

c.add("mycard1",bt2);

c.add("mycard",bt3);

Lis list = new Lis();

bt1.addActionListener(list);

bt2.addActionListener(list);

bt3.addActionListener(list);

setResizable(true);

setVisible(true);

}

public static void main(String args[]){

new useCardLayout();
}

}

class Lis implements ActionListener {

public static void main(String args[]){ }

public void actionPerformed(ActionEvent e){

Object r=e.getSource();

if(r==bt1 || r==bt2) mycard1.next(c);

else if(r==bt3) mycard1.first(c);
}
}

搜索更多相关主题的帖子: 对象 监听 
2007-01-06 09:54
海狂
Rank: 1
等 级:新手上路
威 望:1
帖 子:234
专家分:0
注 册:2006-12-26
收藏
得分:0 
class Lis implements ActionListener {

public static void main(String args[]){ }

public void actionPerformed(ActionEvent e){

//处理...
}
}
给每个Button加一个... 即每个Button都要有个相应的事件处理的类对应
不能同时处理

或者你的主类后面加上implements ActionListener
在主类里面实现
public void actionPerformed(ActionEvent e){

//处理...
}

[此贴子已经被作者于2007-1-6 11:33:54编辑过]


2007-01-06 11:04
wuzhong
Rank: 1
等 级:新手上路
帖 子:233
专家分:0
注 册:2006-10-23
收藏
得分:0 
海狂,说的在主类后加implements,这个是可以的.但是我就是想试试通过Lis 类的对象来进行监听.但是不行了.

现在的错误是在Lis类中的变量都画上了红线.比如bt1,bt2,bt2,mycard1,c都画上了红线,不能被eclipse解析.我把这两个

类放在同一个文件当中.

2007-01-06 12:36
海狂
Rank: 1
等 级:新手上路
威 望:1
帖 子:234
专家分:0
注 册:2006-12-26
收藏
得分:0 

按你的想法的话
你要写多类似Lis的类
比如
class Lis1 implements ActionListener { //实现监听bt1 }
class Lis2 implements ActionListener { //实现监听bt2 }
class Lis3 implements ActionListener { //实现监听bt3 }

然后
bt1.addActionListener(new Lis1());
bt2.addActionListener(new Lis2());
bt3.addActionListener(new Lis3());

这样可以!

// 这样你就不必在里面判断点击的哪个按钮

[此贴子已经被作者于2007-1-6 12:45:47编辑过]


2007-01-06 12:43
wuzhong
Rank: 1
等 级:新手上路
帖 子:233
专家分:0
注 册:2006-10-23
收藏
得分:0 
按你说的那样我来试试.

2007-01-06 13:00
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

你那样判断也可以,你把你的监听类做为内部类就可以了,因为内部类可以访问外部类的所有成员变量


可惜不是你,陪我到最后
2007-01-06 13:03
wuzhong
Rank: 1
等 级:新手上路
帖 子:233
专家分:0
注 册:2006-10-23
收藏
得分:0 
现在的问题不是要怎样去监听,你说的我明白.

现在的错误是在Lis类中的变量都画上了红线.比如bt1,bt2,bt2,mycard1,c都画上了红线,不能被eclipse解析.

在两个类我放在同一个文件.你放到你的eclipse中看看就知道,是哪儿错了.

2007-01-06 13:03
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

你把监听类放到你的主类里面去
import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

class useCardLayout extends JFrame {

public CardLayout mycard1 = new CardLayout(2,3);//2,3表示与边缘的距离

public JButton bt1= new JButton("key1");

public JButton bt2 = new JButton("key2");

public JButton bt3 = new JButton("key3");

public Container c = this.getContentPane();

useCardLayout(){

super("卡片管理");

setSize(400,300);

setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

c.add("mycard1",bt1);

c.add("mycard1",bt2);

c.add("mycard",bt3);

Lis list = new Lis();

bt1.addActionListener(list);

bt2.addActionListener(list);

bt3.addActionListener(list);

setResizable(true);

setVisible(true);

}
class Lis implements ActionListener {

public static void main(String args[]){ }

public void actionPerformed(ActionEvent e){

Object r=e.getSource();

if(r==bt1 || r==bt2) mycard1.next(c);

else if(r==bt3) mycard1.first(c);
}
}

public static void main(String args[]){

new useCardLayout();
}

}

像这样就可以了


可惜不是你,陪我到最后
2007-01-06 13:05
wuzhong
Rank: 1
等 级:新手上路
帖 子:233
专家分:0
注 册:2006-10-23
收藏
得分:0 
我以后把Lis作为了主类,采用内部类的形式.错误还是有.
图片附件: 游客没有浏览图片的权限,请 登录注册


2007-01-06 13:37
wuzhong
Rank: 1
等 级:新手上路
帖 子:233
专家分:0
注 册:2006-10-23
收藏
得分:0 
上图不清楚.具体一点.
图片附件: 游客没有浏览图片的权限,请 登录注册


2007-01-06 13:39
快速回复:监听对象
数据加载中...
 
   



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

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