
新增一个专门的"鼠标监听器"类,或者直接在你现有的类中实现"鼠标监听器".具体做法是在类声明语句中implements MouseListener.如下:
public class MouseAdp implements MouseListener{
public MouseAdp(){}
public void mouseClicked(MouseEvent e) {
/**鼠标点击事件(包括按下和d起两个动作)处理方法.**/
System.out.println("你点了我!")
}
public void mouseEntered(MouseEvent e) {
/**鼠标移到组件上方法时事件处理方法.**/}
public void mouseExited(MouseEvent e) {
/**鼠标移开组件时事件处理方法.**/}
public void mousePressed(MouseEvent e) {
/**鼠标在组件上按下(但没d起)时事件处理方法.**/}
public void mouseReleased(MouseEvent e) {
/**鼠标在组件上d起事件处理方法.**/}
}
然后在你的JLabel实例上,作用这个监听器,如:
JLabel lab = new JLabel("点我")
lab.addMouseListener(new MouseAdp())
之前远标老师教过,你看下下面写的行不行1、现在我需要在一个label控件上定义一个点击事件,打开产生一个新的浏览器窗口。
2、Java JDK中的Label 类本身并不提供事件处理的方法,但应该注意到它是Component类的子类,从而可以通过如下的方法来完成,同时应该处理mouse事件较符合要求。
3、源程序的代码如下:(已经调试通过)
import java.awt.*
import java.applet.*
import java.awt.event.*
import java.net.*
public class Applet1 extends Applet implements MouseListener
{
Canvas cv
public void init()
{
initForm()
}
private final Label clickLabel = new Label("hello")
private URL url
public void mouseClicked(MouseEvent e)
{
try
{
if(e.getSource() == clickLabel)
{
url = new URL("http://www.yahoo.com")
getAppletContext().showDocument(url,"new")
}
}
catch(MalformedURLException exc)
{
this.showStatus("Invalid URL: " + url)
}
}
public void mousePressed(MouseEvent e)
{
}
public void mouseReleased(MouseEvent e)
{
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
void initForm()
{
clickLabel.addMouseListener(this)
this.add(clickLabel)
}
}
问题拆分来看,其实就是一个渲染和表格单元格选中事件,以下代码仅做参考:final JComboBox comboBox = new JComboBox()
groups = new ArrayList<String>()
comboBox.setEditable(true)
TableComboBoxEditor editor = new TableComboBoxEditor(comboBox)
table.getColumnModel().getColumn(2).setCellEditor(editor)
table.getModel().addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
if (e.getType() == TableModelEvent.UPDATE &&e.getColumn() == 2) {
int lastRow = e.getLastRow()
Object value = table.getValueAt(lastRow, 2)
if (value != null &&!value.equals("") &&!groups.contains(value.toString())) {
String item = value.toString()
groups.add(item)
comboBox.addItem(item)
comboBox.setSelectedItem(item)
}
}
}
})
addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
requestFocus()
}
})
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)