请问在JLIST的渲染器单元中可不以监听鼠标事件,200分

copkiller 2002-06-07 03:47:06
比如渲染单元为一个JPANEL组件,包含一个BUTTON和LABEL,要监听BUTTON的鼠标事件该怎么做??
...全文
74 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pentax 2002-06-07
  • 打赏
  • 举报
回复
自己做渲染单元,在渲染单元上添加事件,然后把JList的渲染单元设为你自己的渲染单元。
copkiller 2002-06-07
  • 打赏
  • 举报
回复
我的意思是让渲染器单元中JBUTTON响应鼠标事件,不是整个JLIST
yanyanem 2002-06-07
  • 打赏
  • 举报
回复
原先在 mouse_wn 的一文中我给过一个addlistener 的例子,大同小异的。
程序运行后点右键。
jbuilder3 + jdk1.2

package csdn;

import java.awt.*;
import java.awt.event.*;
import java.util.Vector;

public class Frame2_2 extends Frame {
Panel panel1 = new Panel();
List list1 = new List();
BorderLayout borderLayout1 = new BorderLayout();
PopupMenu popupMenu1 = new PopupMenu();
MenuItem menuItem0 = new MenuItem("menuitem0");


public Frame2_2() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Frame2_2 frame2_2 = new Frame2_2();
frame2_2.setBounds (120,120,300,300);
frame2_2.show ();

}
private void jbInit() throws Exception {
panel1.setLayout(borderLayout1);
list1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
list1_mouseClicked(e);
}
});
this.add(panel1, BorderLayout.CENTER);

for ( int i=0;i<10;i++) list1.add("select "+i+" ");
popupMenu1.add (menuItem0);
list1.add (popupMenu1);
panel1.add(list1, BorderLayout.CENTER);
}

void list1_mouseClicked(MouseEvent e) {
if ( ( e.getModifiers ()& e.BUTTON3_MASK ) == e.BUTTON3_MASK ) {
action_rightmouseClicked(e);
}
}

void action_rightmouseClicked(MouseEvent e){
System.out.println("hello");
popupMenu1.show(list1,e.getX() ,e.getY() ) ;
};

}


qiyao 2002-06-07
  • 打赏
  • 举报
回复
你可以试试这个:
import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
import javax.swing.*;

public class JListDemo extends Frame {
Panel panelShow = new Panel();

JList dataList;
BorderLayout bordL = new BorderLayout();
JTextField textField;

public JListDemo() {
try {
textField=new JTextField("first");
String[] data = {"one", "two", "free", "four"};
JList dataList = new JList(data);
panelShow.setLayout(bordL);
dataList.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
textField.setText("change");
}
});
dataList.setVisibleRowCount(12);

// Add list to a scrollpane
JScrollPane scrollPane = new JScrollPane(dataList);
panelShow.add(scrollPane);
panelShow.add(textField, BorderLayout.SOUTH);
this.add(panelShow, BorderLayout.CENTER);

}
catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
JListDemo JListDemo = new JListDemo();

JListDemo.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
});
JListDemo.setBounds (120,120,300,300);
JListDemo.show ();
}

}
鼠标事件--->JTextField----->“change”

62,614

社区成员

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

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