[关于帮助JLabel添加侦听器的问题。 请大家协助。
如图所示,我想在左侧的JLabel中添加一个事件侦听器,然后在右侧的JPane中绘制一个图形,如何添加此事件侦听器? 似乎无法添加操作监听器。 追加什么?
[此帖子已在2007-5-24 20:09:07中编辑]
搜索相关解决方案:
JLabel监听图
见-----解决办法-----解决办法
你说的是,如果你的布局为NULL就可以了,但是如果是不同的面板,就在右边建立对画笔的方法,在左边的图像中添加事件,传递值,定义右边的画笔方法
见-----解决办法-----解决办法
是的。 但是,我不知道如何添加侦听器。 可以说具体点吗?
见-----解决办法-----解决办法
打包;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
//*
* @ author管理员
*
*/
publicclasstoolsextendsjpanelimplementsmouselistener {
专用标签行标签;
私有标签回复标签;
私有标签轮询标签;
私有标签;
私有标签;
私有标签;
专用标签em rlabel;
私有标签全标签;
私有标签文本标签;
iconlinebug=new image icon (getclass ).getresource('image/bug1.jpg ' );
iconrectbug=new image icon (getclass ).getresource('image/bug2.jpg ' );
iconpolybug=new image icon (getclass ).getresource('image/bug3.jpg ' );
iconovalbug=new image icon (getclass ).getresource('image/bug4.jpg ' );
iconrrectbug=new image icon (getclass ).getresource('image/bug5.jpg ' );
icontextbug=new image icon (getclass ).getresource('image/bug6.jpg ' );
iconembug=new image icon (getclass (.get resource ) (image/embug.jpg ) );
//iconEMR错误=newimageicon(getclass ).getresource(image/EMRbug.jpg ) );
//iconfullbug=new image icon (getclass ).getresource(image/fullbug.jpg ) );
private Handle handle;
静态颜色颜色;
公共工具(handle handle ) {
this.handle=handle;
Handle.setTools(this;
//set layout (空);
this.setbackground(color.white );
this.set bounds (0,4,61,500 );
linelabel=newjlabel(line错误;
添加(线标签);
linelabel.setvisible(true;
rectlabel=newjlabel(rect错误);
添加(rect label );
rectLabel.setVisible (
true);polyLabel= new JLabel(polyBug);
add(polyLabel);
polyLabel.setVisible(true);
ovalLabel = new JLabel();
ovalLabel.setIcon(ovalBug);
add(ovalLabel);
ovalLabel.addMouseListener(this);
ovalLabel.setVisible(true);
rrectLabel= new JLabel(rrectBug);
add(rrectLabel);
rrectLabel.setVisible(true);
textLabel= new JLabel(textBug);
add(textLabel);
textLabel.setVisible(true);
}
public void mouseClicked(MouseEvent e){
Object o = e.getSource();
if(o == lineLabel){
}
else if(o == rectLabel){
}
else if(o ==polyLabel){
}
else if(o == ovalLabel){
handle.getDrawJpanel().setLineTag(true);
emLabel= new JLabel(lineBug);
add(emLabel);
setLayout(null);
emLabel.setVisible(true);
}
else if(o == rrectLabel){
}
else if(o == textLabel){
}
}
public void mousePressed(MouseEvent e){
}
public void mouseReleased(MouseEvent e){
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
}
请问为什么我点了那个椭圆的图标,没有反应呢,我本来想点击的时候再下面再显示一个图标。
----------------解决方案--------------------------------------------------------
标签应该不能添加监听器吧,你可以把标签改为按钮,然后在按钮上添加按钮监听,在画图面板上添加鼠标监听,我写过一个类似的程序,不过我用的是单选按钮,呵呵
----------------解决方案--------------------------------------------------------
哦 但是windows画图伴好象是JLabel吧。我现在觉得论坛人都不错,每次提问题都有朋友回答我,感动。。谢谢各位了。
----------------解决方案--------------------------------------------------------
各位帮偶提个建议,看看,谢谢了。
----------------解决方案--------------------------------------------------------
DocumentListener 接口啊
你可一查下
文档监听器
----------------解决方案--------------------------------------------------------
观察者使用该接口注册以接收文本文档的更改通知。
Document 接口的默认实现 (AbstractDocument) 支持异步更改。如果使用此功能(即变化是来自 Swing 事件线程之外的线程),则通过正发生变化的线程通知侦听器。这意味着如果进行异步更新,则此接口的实现必须是线程安全的!
DocumentEvent 通知以 JavaBeans 事件模型为基础。传递给侦听器的传递顺序是没有保证的,并且在对 Document 做进一步的更改之前,必须通知所有侦听器。这意味着 DocumentListener 的实现不能更改事件源
方法摘要
void changedUpdate(DocumentEvent e)
给出属性或属性集发生了更改的通知。
void insertUpdate(DocumentEvent e)
给出对文档执行了插入操作的通知。
void removeUpdate(DocumentEvent e)
给出移除了一部分文档的通知。
----------------解决方案--------------------------------------------------------
JLabel可以加MouseListener
----------------解决方案--------------------------------------------------------