JPanel jp=new JPanel();
JPopupMenu pm=new JPopupMenu();
pm.add(new JMenuItem("item_name"));
pm.add……
pm.add……
jp.add(pm);
JPopupMenu pm=new JPopupMenu();
pm.add(new JMenuItem("item_name"));
pm.add……
pm.add……
jp.add(pm);
解决方案 »
- 针对java工作需要学习具体哪些课程?
- java语言
- 菜鸟求助:Java 程序解释
- 在Linux下如何解决由于多个IP地址导致InetAddress.getLocalHost()异常java.net.UnknownHostException
- jsp中如何实现断行!
- 请问log4j能不能按照日期查询
- java如何把汉字转成象%BA%BA的编码?
- 拖动的Undo问题?
- 装forte 3 后的问题?????????
- 网络编程问题,如何通过代理服务器收发短信????
- 谁看过清华大学出版社出版的由黄国瑜等写的<<数据结构>>(Java语言版)这本书
- 问一个问题,一个applet的3D的分析图,如果客户要装java web start 就可以浏览,如果没有装啥都看不到
import java.awt.event.*;
import javax.swing.JPopupMenu;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.ButtonGroup;
import javax.swing.JMenuBar;
import javax.swing.KeyStroke;
import javax.swing.ImageIcon;import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.JFrame;/*
* This class adds popup menus to MenuDemo.
*/
public class PopupMenuDemo extends JFrame
implements ActionListener, ItemListener {
JTextArea output;
JScrollPane scrollPane;
String newline = "\n";
JPopupMenu popup; public PopupMenuDemo() {
JMenuBar menuBar;
JMenu menu, submenu;
JMenuItem menuItem;
JRadioButtonMenuItem rbMenuItem;
JCheckBoxMenuItem cbMenuItem; addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}); //Add regular components to the window, using the default BorderLayout.
Container contentPane = getContentPane();
output = new JTextArea(5, 30);
output.setEditable(false);
scrollPane = new JScrollPane(output);
contentPane.add(scrollPane, BorderLayout.CENTER); //Create the menu bar.
menuBar = new JMenuBar();
setJMenuBar(menuBar); //Build the first menu.
menu = new JMenu("A Menu");
menu.setMnemonic(KeyEvent.VK_A);
menu.getAccessibleContext().setAccessibleDescription(
"The only menu in this program that has menu items");
menuBar.add(menu); //a group of JMenuItems
menuItem = new JMenuItem("A text-only menu item",
KeyEvent.VK_T);
//menuItem.setMnemonic(KeyEvent.VK_T); //used constructor instead
menuItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_1, ActionEvent.ALT_MASK));
menuItem.getAccessibleContext().setAccessibleDescription(
"This doesn't really do anything");
menuItem.addActionListener(this);
menu.add(menuItem);
menuItem = new JMenuItem("Both text and icon",
new ImageIcon("images/middle.gif"));
menuItem.setMnemonic(KeyEvent.VK_B);
menuItem.addActionListener(this);
menu.add(menuItem);
menuItem = new JMenuItem(new ImageIcon("images/middle.gif"));
menuItem.setMnemonic(KeyEvent.VK_D);
menuItem.addActionListener(this);
menu.add(menuItem); //a group of radio button menu items
menu.addSeparator();
ButtonGroup group = new ButtonGroup();
rbMenuItem = new JRadioButtonMenuItem("A radio button menu item");
rbMenuItem.setSelected(true);
rbMenuItem.setMnemonic(KeyEvent.VK_R);
group.add(rbMenuItem);
rbMenuItem.addActionListener(this);
menu.add(rbMenuItem);
rbMenuItem = new JRadioButtonMenuItem("Another one");
rbMenuItem.setMnemonic(KeyEvent.VK_O);
group.add(rbMenuItem);
rbMenuItem.addActionListener(this);
menu.add(rbMenuItem); //a group of check box menu items
menu.addSeparator();
cbMenuItem = new JCheckBoxMenuItem("A check box menu item");
cbMenuItem.setMnemonic(KeyEvent.VK_C);
cbMenuItem.addItemListener(this);
menu.add(cbMenuItem);
cbMenuItem = new JCheckBoxMenuItem("Another one");
cbMenuItem.setMnemonic(KeyEvent.VK_H);
cbMenuItem.addItemListener(this);
menu.add(cbMenuItem); //a submenu
menu.addSeparator();
submenu = new JMenu("A submenu");
submenu.setMnemonic(KeyEvent.VK_S); menuItem = new JMenuItem("An item in the submenu");
menuItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_2, ActionEvent.ALT_MASK));
menuItem.addActionListener(this);
submenu.add(menuItem); menuItem = new JMenuItem("Another item");
menuItem.addActionListener(this);
submenu.add(menuItem);
menu.add(submenu); //Build second menu in the menu bar.
menu = new JMenu("Another Menu");
menu.setMnemonic(KeyEvent.VK_N);
menu.getAccessibleContext().setAccessibleDescription(
"This menu does nothing");
menuBar.add(menu); //Create the popup menu.
popup = new JPopupMenu();
menuItem = new JMenuItem("A popup menu item");
menuItem.addActionListener(this);
popup.add(menuItem);
menuItem = new JMenuItem("Another popup menu item");
menuItem.addActionListener(this);
popup.add(menuItem); //Add listener to components that can bring up popup menus.
MouseListener popupListener = new PopupListener();
output.addMouseListener(popupListener);
scrollPane.addMouseListener(popupListener);
menuBar.addMouseListener(popupListener);
} public void actionPerformed(ActionEvent e) {
JMenuItem source = (JMenuItem)(e.getSource());
String s = "Action event detected."
+ newline
+ " Event source: " + source.getText()
+ " (an instance of " + getClassName(source) + ")";
output.append(s + newline);
} public void itemStateChanged(ItemEvent e) {
JMenuItem source = (JMenuItem)(e.getSource());
String s = "Item event detected."
+ newline
+ " Event source: " + source.getText()
+ " (an instance of " + getClassName(source) + ")"
+ newline
+ " New state: "
+ ((e.getStateChange() == ItemEvent.SELECTED) ?
"selected":"unselected");
output.append(s + newline);
} // Returns just the class name -- no package info.
protected String getClassName(Object o) {
String classString = o.getClass().getName();
int dotIndex = classString.lastIndexOf(".");
return classString.substring(dotIndex+1);
} public static void main(String[] args) {
PopupMenuDemo window = new PopupMenuDemo(); window.setTitle("PopupMenuDemo");
window.setSize(450, 260);
window.setVisible(true);
} class PopupListener extends MouseAdapter {
public void mousePressed(MouseEvent e) {
maybeShowPopup(e);
} public void mouseReleased(MouseEvent e) {
maybeShowPopup(e);
} private void maybeShowPopup(MouseEvent e) {
if (e.isPopupTrigger()) {
popup.show(e.getComponent(),
e.getX(), e.getY());
}
}
}
}
your_Panel.addMouseListener(popupListener); class PopupListener extends MouseAdapter {
public void mousePressed(MouseEvent e) {
maybeShowPopup(e);
} public void mouseReleased(MouseEvent e) {
maybeShowPopup(e);
} private void maybeShowPopup(MouseEvent e) {
if (e.isPopupTrigger()) {
popup.show(e.getComponent(),
e.getX(), e.getY());
}
}
}
e.isPopupTrigger() 总是返回false还有,怎么判断鼠标的左右键?
MouseEvent.BUTTON1//左
BUTTON2//按下滚轮。 ???
BUTTON3//右
我的鼠标是这样的,不知道其他人怎么样?
8 BUTTON2_MASK
4 BUTTON3_MASK //right10 //middle对modifiers甚是不解,作什么用(与modifiers这个名字有关系吗?)。 /**
* Returns the modifiers flag for this event.
*/
public int getModifiers() {
return modifiers;
}
请释疑,谢谢!
//弹出菜单
return ((anEvent.getModifiers() & InputEvent.BUTTON1_MASK) != 0);
} 放着还不知道,惭愧