求助--左键点击控件出现弹出菜单 怎样做到左键点击控件出现弹出菜单 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在鼠标事件里面用JPopupMenu实现菜单显示. package com.sysdynamic.test;import java.awt.BorderLayout;import java.awt.Component;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.JButton;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPopupMenu;import javax.swing.WindowConstants;import javax.swing.SwingUtilities;public class EventTest extends javax.swing.JFrame { private JPanel MainJPanel; private JButton btnName; private JButton btnAge; private JButton btnSex; public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { EventTest inst = new EventTest(); inst.setLocationRelativeTo(null); inst.setVisible(true); } }); } public EventTest() { super(); initGUI(); } private void initGUI() { try { setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); MainJPanel = new JPanel(); getContentPane().add(MainJPanel, BorderLayout.CENTER); btnName = new JButton(); MainJPanel.add(btnName); btnName.setText("Name"); btnName.setToolTipText("右击我弹出菜单!"); btnName.addMouseListener(new MyMouseListener(btnName)); //右击菜单 btnSex = new JButton(); MainJPanel.add(btnSex); btnSex.setText("Sex"); btnAge = new JButton(); MainJPanel.add(btnAge); btnAge.setText("Age"); btnAge.addActionListener(new myActionListener(btnAge)); btnName.addActionListener(new myActionListener(btnName)); btnSex.addActionListener(new myActionListener(btnSex)); pack(); setSize(400, 300); } catch (Exception e) { e.printStackTrace(); } }}//右击菜单class MyMouseListener implements MouseListener { Component component; public MyMouseListener(){ } public MyMouseListener(Component component) { this.component = component; } @Override public void mouseClicked(MouseEvent e) { if(e.getButton()==3){ JPopupMenu jPopupMenu=new JPopupMenu(); JMenuItem add=new JMenuItem("Add"); JMenuItem update=new JMenuItem("Update"); JMenuItem delete=new JMenuItem("Delete"); JMenuItem query=new JMenuItem("Query"); jPopupMenu.add(add); jPopupMenu.add(update); jPopupMenu.add(delete); jPopupMenu.add(query); jPopupMenu.show(component, e.getX(), e.getY()); } } @Override public void mouseEntered(MouseEvent e) { } @Override public void mouseExited(MouseEvent e) { } @Override public void mousePressed(MouseEvent e) { } @Override public void mouseReleased(MouseEvent e) { }}class myActionListener implements ActionListener { Component component; public myActionListener() { } public myActionListener(Component component) { this.component = component; } public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, ((JButton) component).getText() .toString()); }} 问题已经解决了 谢谢大家的关注 如果有疑问的该我留言吧 大家一起讨论啊bfunction.addMouseListener(new MouseAdapter() { //private JPopupMenu popup = new JPopupMenu(); public void MouseClicked(MouseEvent e) { add(popup);//添加弹出菜单 showPopup(e); } public void mousePressed(MouseEvent e) { showPopup(e); } public void mouseClicked(MouseEvent e) { showPopup(e); } public void mouseReleased(MouseEvent e) { showPopup(e); } public void showPopup(MouseEvent e6) { //设定菜单项的显示方式 }); 求java换行读取问题,大神快降临 一个关于reader的问题 java socket java绘图问题求助 SQL 2000连接问题! 奇怪的writeByte(10)问题 java代码如何实现画改变颜色的实体圆? 如何有鼠标事件获得JButton所在的JFrame? 急 JAVA IO 问题 C# 、 JAVA 选哪个啊 , 先听听大家说说 , 这个决定可能关系到我未来的5年啊 JTextPanel 的问题 欢迎Baidu和Google工作的兄弟们进去指点指点,我这种方法是否能够用于大型搜索?
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;import javax.swing.JButton;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;public class EventTest extends javax.swing.JFrame {
private JPanel MainJPanel;
private JButton btnName;
private JButton btnAge;
private JButton btnSex; public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
EventTest inst = new EventTest();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
});
} public EventTest() {
super();
initGUI();
} private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); MainJPanel = new JPanel();
getContentPane().add(MainJPanel, BorderLayout.CENTER); btnName = new JButton();
MainJPanel.add(btnName);
btnName.setText("Name");
btnName.setToolTipText("右击我弹出菜单!"); btnName.addMouseListener(new MyMouseListener(btnName)); //右击菜单 btnSex = new JButton();
MainJPanel.add(btnSex);
btnSex.setText("Sex"); btnAge = new JButton();
MainJPanel.add(btnAge);
btnAge.setText("Age"); btnAge.addActionListener(new myActionListener(btnAge));
btnName.addActionListener(new myActionListener(btnName));
btnSex.addActionListener(new myActionListener(btnSex)); pack();
setSize(400, 300);
} catch (Exception e) {
e.printStackTrace();
}
}}//右击菜单
class MyMouseListener implements MouseListener { Component component;
public MyMouseListener(){
}
public MyMouseListener(Component component) {
this.component = component;
}
@Override
public void mouseClicked(MouseEvent e) { if(e.getButton()==3){
JPopupMenu jPopupMenu=new JPopupMenu();
JMenuItem add=new JMenuItem("Add");
JMenuItem update=new JMenuItem("Update");
JMenuItem delete=new JMenuItem("Delete");
JMenuItem query=new JMenuItem("Query");
jPopupMenu.add(add);
jPopupMenu.add(update);
jPopupMenu.add(delete);
jPopupMenu.add(query);
jPopupMenu.show(component, e.getX(), e.getY());
}
} @Override
public void mouseEntered(MouseEvent e) { } @Override
public void mouseExited(MouseEvent e) { } @Override
public void mousePressed(MouseEvent e) { } @Override
public void mouseReleased(MouseEvent e) { }}class myActionListener implements ActionListener { Component component; public myActionListener() { } public myActionListener(Component component) {
this.component = component;
} public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, ((JButton) component).getText()
.toString());
}}
{
//private JPopupMenu popup = new JPopupMenu();
public void MouseClicked(MouseEvent e)
{
add(popup);//添加弹出菜单
showPopup(e);
} public void mousePressed(MouseEvent e)
{
showPopup(e);
} public void mouseClicked(MouseEvent e)
{
showPopup(e);
} public void mouseReleased(MouseEvent e)
{
showPopup(e);
} public void showPopup(MouseEvent e6)
{
//设定菜单项的显示方式
});