给JList中的Item添加右键点击弹出菜单事件
2011-07-17 01:28
1336 查看
import java.awt.BorderLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
public class JListTest extends JFrame {
JPopupMenu popupMenu =null;
JList list=null;
JPanel mainPanel=null;
JScrollPane scrollPane=null;
public JListTest() {
initComponent();
setSize(200, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
private void initComponent() {
mainPanel = new JPanel();
scrollPane = new JScrollPane();
popupMenu = new JPopupMenu();
popupMenu.add(new JMenuItem("Open")); //添加菜单项Open
popupMenu.add(new JMenuItem("Save"));
mainPanel.setLayout(new BorderLayout());
list = new JList();
list.setModel(new DefaultListModel());
list.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
// maybeShowPopup(e);
}
@Override
public void mousePressed(MouseEvent e) {
list.setSelectedIndex(list.locationToIndex(e.getPoint())); //获取鼠标点击的项
maybeShowPopup(e);
}
@Override
public void mouseReleased(MouseEvent e) {
maybeShowPopup(e);
}
//弹出菜单
private void maybeShowPopup(MouseEvent e) {
if (e.isPopupTrigger()&&list.getSelectedIndex()!=-1) {
//获取选择项的值
Object selected = list.getModel().getElementAt(list.getSelectedIndex());
System.out.println(selected);
popupMenu.show(e.getComponent(),e.getX(), e.getY());
}
}
});
list.setListData(new Object[] { "name", "age", "sex", "name", "age",
"name", "age", "name", "age" });
scrollPane.setViewportView(list);
mainPanel.add(scrollPane, BorderLayout.CENTER);
this.add(mainPanel);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new JListTest();
}
}
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
public class JListTest extends JFrame {
JPopupMenu popupMenu =null;
JList list=null;
JPanel mainPanel=null;
JScrollPane scrollPane=null;
public JListTest() {
initComponent();
setSize(200, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
private void initComponent() {
mainPanel = new JPanel();
scrollPane = new JScrollPane();
popupMenu = new JPopupMenu();
popupMenu.add(new JMenuItem("Open")); //添加菜单项Open
popupMenu.add(new JMenuItem("Save"));
mainPanel.setLayout(new BorderLayout());
list = new JList();
list.setModel(new DefaultListModel());
list.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
// maybeShowPopup(e);
}
@Override
public void mousePressed(MouseEvent e) {
list.setSelectedIndex(list.locationToIndex(e.getPoint())); //获取鼠标点击的项
maybeShowPopup(e);
}
@Override
public void mouseReleased(MouseEvent e) {
maybeShowPopup(e);
}
//弹出菜单
private void maybeShowPopup(MouseEvent e) {
if (e.isPopupTrigger()&&list.getSelectedIndex()!=-1) {
//获取选择项的值
Object selected = list.getModel().getElementAt(list.getSelectedIndex());
System.out.println(selected);
popupMenu.show(e.getComponent(),e.getX(), e.getY());
}
}
});
list.setListData(new Object[] { "name", "age", "sex", "name", "age",
"name", "age", "name", "age" });
scrollPane.setViewportView(list);
mainPanel.add(scrollPane, BorderLayout.CENTER);
this.add(mainPanel);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new JListTest();
}
}
相关文章推荐
- 给ECharts添加右键点击事件,实现右键功能菜单
- QListview鼠标右键点击item弹出菜单
- Unity3D Editor在右键弹出菜单中添加 item
- ArcGIS API for Silverlight开发中鼠标左键点击地图上的点弹出窗口及右键点击弹出快捷菜单的实现代码
- MFC为应用程序添加托盘(右键托盘,弹出菜单)
- JTable中点击鼠标右键弹出菜单
- 为RecyclerView添加item的点击事件
- VMWARE中虚拟工具VMTOOLS的安装 安装 vmtools之前,需要先打开虚拟机,并且启动其中的操作系统。 注意看下图中鼠标的位置。请将鼠标移动到相应位置上点击右键。 在弹出的菜单最下端点击“
- 为RecyclerView添加item的点击事件
- 为RecyclerView添加item的点击事件(转载)
- 精通RecyclerView:打造ListView、GridView、瀑布流;学会添加分割线、 添加删除动画 、Item点击事件
- 在WPF里面获取右键弹出菜单(ContextMenu)的鼠标点击源(Owner)控件
- 【转载于<小锋刚>博客园】C#遍历ContextMenuStrip右键菜单中包含子菜单的所有菜单并添加事件
- .NET 点击右键弹出菜单怎么做
- MFC为应用程序添加托盘(右键托盘,弹出菜单)
- 怎么为fragment中的gridview里的item添加点击事件
- RecyclerView 添加头部和尾部,并实现Item的点击事件
- Android中为RecyclerView添加item的点击事件
- 如何在list控件中响应右键弹出菜单中的菜单事件
- RecyclerView 给Item添加点击事件