这类问题该如何解决?

LearnBeing 2005-06-19 07:27:51
如:
我定义了一个节点类,包括了节点的id和一个msg属性。当鼠标点击该点时,改变msg的值

package test;

class Node extends JLabel implements MouseListener{
String nodeId;
String msg;
public Node(String id) {
super(id, new ImageIcon(), JLabel.CENTER);
ImageIcon icon = new ImageIcon("images/Windows.gif");
this.setIcon(icon);
this.nodeId = id;
this.msg = this.nodeId + " 还没被点击!" ;
this.addMouseListener(this);
}

public void mouseClicked(MouseEvent e) {
this.msg=this.nodeId + " 被点击过!";
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}

}

容器的代码如下:
class GraphPanel extends JPanel{
Node node ;
JTextPane showMsgTxtPane;

public GraphPanel(){
for(int i = 0 ;i < 5; i++){
node = new Node("Windows" + i) ;
this.add(node);
}
showMsgTxtPane = new JTextPane();
this.add(showMsgTxtPane);
}
}

我的问题是:当鼠标在GraphPanel中点击到每个Node时,GraphPanel中的showMsgTxtPane显示该Node中的msg。

大哥们帮帮忙啦,先謝了!
...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
LearnBeing 2005-06-20
  • 打赏
  • 举报
回复
我想要的不是在对话框里显示啊
而是在Node的容器里显示的,那又该怎样实现啊?
mofeir 2005-06-20
  • 打赏
  • 举报
回复
参照责任链模式,将该事件传递给pannel执行。OVER。
LearnBeing 2005-06-20
  • 打赏
  • 举报
回复
问题还没解决,难道没人碰到这类问题吗?还是问题太简单了?
追求自由 2005-06-19
  • 打赏
  • 举报
回复
UP
Kala_Yang 2005-06-19
  • 打赏
  • 举报
回复
对话框对象用JOptionMenu生成,我没记错的话,用 java.util.*; 导入。改写代码:
public void mouseClicked(MouseEvent e)
{
String str=new String();
str=e.getAction .nodeId;
//?e.getAction我忘了名字你把 e后的点打出来就看到了,获取产生事件的对象用的。
JOptionMenu temp=new JOptionMenu(str);
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧