如:
我定义了一个节点类,包括了节点的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。大哥们帮帮忙啦,先謝了!
我定义了一个节点类,包括了节点的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。大哥们帮帮忙啦,先謝了!
然后用for( Component comp : 孩儿们){
if ( comp.XXX ( e.getPoint()) //这个方法名忘记了,找找看, 是判断那个Point 是否在 comp 的范围内,
}找到当前被击中的.