给JList做个独立的语义事件监听器:
import java.awt.Cursor;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;class MouseHandler extends MouseAdapter{
//...
public void mouseEntered(MouseEvent e){
//mouse entering the selection item;
}
public void mouseExited(MouseEvent e){
//mouse exiting the selection item;
}
//etc.
}然后在程序的JList上添加这个监听器:
//...
MouseHandler mouseHandler = new MouseHandler();
//...
JlistYours.addMouseListener(mouseHandler);
//...这样不管你什么击都可以监听
import java.awt.Cursor;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;class MouseHandler extends MouseAdapter{
//...
public void mouseEntered(MouseEvent e){
//mouse entering the selection item;
}
public void mouseExited(MouseEvent e){
//mouse exiting the selection item;
}
//etc.
}然后在程序的JList上添加这个监听器:
//...
MouseHandler mouseHandler = new MouseHandler();
//...
JlistYours.addMouseListener(mouseHandler);
//...这样不管你什么击都可以监听
public void mouseClicked(MouseEvent e) {
if (2 <= e.getClickCount()) {//双击,可以把这段写成一个方法来调用
//do something
}
}
});
右键页可以捕获的啊,SwingUtilities.isRightMouseButton(e)
是什么意思,怎么用
{
if((e.getButton() == MouseEvent.BUTTON1) && (e.getClickCount() == 2))
{
try {
//get the selected user and create a new message pane
if(list != null)
{
User user = (User) list.getSelectedValue();
if (user.hasMessagePaneOpen() == false)
{
MessagePane messagePane = new MessagePane(user);
MessagePanePool.addMessagePane(messagePane);
new Thread(messagePane).start();
}
else {
MessagePanePool.getMessagePaneByUser(user).toFront();
}
}
}
catch(Exception exception)
{
InformationDialog.showErrorDialog(null, "Message Dialog Initialization Error", true);
}
}我写的,其中具体的操作不用看。