private JPanel neighborPanel;
private JList neighborList;
private JPopupMenu neighborPanelPopupMenu;
private JScrollPane scrollPane; neighborPanel=new JPanel();
neighborPanel.addMouseListener(new neighborPanelMouseListener());
neighborPanelPopupMenu = new JPopupMenu();
neighborPanelPopupMenu.add(new JMenuItem("好友"));
neighborPanel.add(neighborPanelPopupMenu);
scrollPane = new JScrollPane(new JScrollPane (neighborList,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED));
neighborPanel.add(scrollPane);//如果不写这句,就能产生MouseEvent,popup菜单就能弹出
class neighborPanelMouseListener implements MouseListener{
public void mouseClicked(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
System.out.println("mouse action");
scrollPane.setOpaque(false);
if (e.getButton() == 3) {
neighborPanelPopupMenu.show(neighborPanel, e.getX(), e.getY());
}
}
}
以上是相关代码
我觉得jscrollpane的某些属性使鼠标事件无法产生
private JList neighborList;
private JPopupMenu neighborPanelPopupMenu;
private JScrollPane scrollPane; neighborPanel=new JPanel();
neighborPanel.addMouseListener(new neighborPanelMouseListener());
neighborPanelPopupMenu = new JPopupMenu();
neighborPanelPopupMenu.add(new JMenuItem("好友"));
neighborPanel.add(neighborPanelPopupMenu);
scrollPane = new JScrollPane(new JScrollPane (neighborList,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED));
neighborPanel.add(scrollPane);//如果不写这句,就能产生MouseEvent,popup菜单就能弹出
class neighborPanelMouseListener implements MouseListener{
public void mouseClicked(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
System.out.println("mouse action");
scrollPane.setOpaque(false);
if (e.getButton() == 3) {
neighborPanelPopupMenu.show(neighborPanel, e.getX(), e.getY());
}
}
}
以上是相关代码
我觉得jscrollpane的某些属性使鼠标事件无法产生
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货