求助!(swing方面)
小弟最近刚刚接触swing编程,对它的内部消息机制不十分了解,那位好心人能不能给我提供一些这方面的资料,不胜感激!我的mail地址是grumiaux@etang.com
具体碰到的问题有当一个控件的某个监听器发现它所监听的事件发生,它能不能发送消息通知另外一个控件,另外一个控件上可以写一个监听器来监听这条消息?
问题点数:70、回复次数:11Top
1 楼stars_of_leo(呆呆虫)回复于 2003-09-04 20:28:20 得分 10
可不可以这样做:
在这个控键的事件处理方法中触发另一个控键的监听事件。Top
2 楼grumiaux(泡泡虫)回复于 2003-09-05 09:03:15 得分 0
这位大哥能不能具体一点?Top
3 楼xiachedan(瞎扯蛋)回复于 2003-09-05 13:04:56 得分 10
可以,在这个空间中去掉用另一个控件的接口Top
4 楼honestzc(圣约翰)回复于 2003-09-05 21:45:58 得分 10
就是在这个控件的事件处理函数中调用另一个控件的事件处理函数Top
5 楼grumiaux(泡泡虫)回复于 2003-09-06 21:04:11 得分 0
能不能给个例子?谢谢Top
6 楼grumiaux(泡泡虫)回复于 2003-09-08 17:14:14 得分 0
没有人解答吗?分不够可以加Top
7 楼cxyPioneer(matt)回复于 2003-09-08 17:25:46 得分 30
给你一个例子
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test extends JFrame{
private JTextField txtDisplay;
private JButton btnChoose,btnExit;
public Test(){
Container c=getContentPane();
c.setLayout(new FlowLayout());
ActionHandler handler=new ActionHandler();
txtDisplay=new JTextField(20);
btnChoose=new JButton("选择颜色");
btnChoose.addActionListener(handler);
btnExit=new JButton("退出");
btnExit.addActionListener(handler);
c.add(txtDisplay);
c.add(btnChoose);
c.add(btnExit);
setSize(300,300);
show();
}
private class ActionHandler implements ActionListener{
private Color c=Color.red;
public void actionPerformed(ActionEvent e){
if(e.getSource()==btnExit)
System.exit(0);
if(e.getSource()==btnChoose){
c=JColorChooser.showDialog(Test.this,"选择颜色",c);
if(c==null)
c=Color.blue;
txtDisplay.setForeground(c);
}
}
}
public static void main(String args[]){
Test app=new Test();
app.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);
}
}
Top
8 楼grumiaux(泡泡虫)回复于 2003-09-09 09:18:05 得分 0
我遇到的问题是:
有a,b两个控件,c,d两个listener,c监听a,d监听b。
现在a上有某个事件发生,c监听到该事件,c发一条消息通知d该事件发生,d再触发对b的某个操作。
这个问题的一种解决方式就是去掉b的listener(d),由c来实现b上的操作,这个我会。之前的那个方案大家能不能帮我想想?
Top
9 楼grumiaux(泡泡虫)回复于 2003-09-10 08:52:34 得分 0
怎么没回应呀?Top
10 楼pqds(一个女农民)回复于 2003-09-10 08:57:33 得分 10
呵呵Top
11 楼grumiaux(泡泡虫)回复于 2003-09-11 08:55:56 得分 0
看来是没人回答了,结贴了Top




