admin管理员组文章数量:1516870
MyFrame :
设计思路:
1、创建JPopup右键菜单对象;
2、添加内容面板JPanel;
3、创建一个自定义的右键菜单项目键,包括图片+名字+事件;
4、将菜单项添加到右键菜单;
5、添加面板事件处理:当右键点击面板时,出现右键菜单;
6、创建一个监听器,用于表示点击菜单项操作;
package swing01;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JToolBar;
public class MyFrame extends JFrame {
//弹出式菜单
JPopupMenu popup=new JPopupMenu();
public MyFrame(String title)
{
super(title);
//内容面板
JPanel root=new JPanel();
this.setContentPane(root);
root.setLayout(new BorderLayout());
//右键菜单
popup.add( createMenuItem("ic_open.png", "fileOpen","打开"));
popup.add( createMenuItem("ic_save.png", "fileSave","保存"));
popup.add( createMenuItem("ic_saveas.png","fileSaveAs","另存为"));
popup.addSeparator();
popup.add( createMenuItem("ic_help.png", "fileHelp","帮助"));
//添加鼠标响应事件,当点击右键时,弹出菜单
root.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
super.mouseClicked(e);
if(e.getButton()==MouseEvent.BUTTON3)
{
popup.show(e.getComponent(), e.getX(), e.getY());
}
}
});
}
protected JMenuItem createMenuItem(String iceName,String action,String text)
{
JMenuItem item=new JMenuItem(text);
item.setActionCommand(action);
item.addActionListener(actionListener);
if(iceName!=null)
{
String imagePath="/images/"+iceName;
URL imageURL=getClass().getResource(imagePath);
item.setIcon(new ImageIcon(imageURL));
}
return item;
}
//创建一个监听器
//注意:actionListener是类的属性
private ActionListener actionListener=new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String action=e.getActionCommand();
System.out.println("执行命令:"+action);
//当是打开命令时,再弹出一个窗口
if(action.equals("fileOpen"))
{
JOptionPane.showMessageDialog(MyFrame.this, action);
}
}
};
}
main
package swing01;
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class MyDemo
{
private static void createGUI()
{
// JFrame指一个窗口,构造方法的参数为窗口标题
JFrame frame = new MyFrame("Swing Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置窗口的其他参数,如窗口大小
frame.setSize(400, 300);
// 显示窗口
frame.setVisible(true);
}
public static void main(String[] args)
{
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run()
{
createGUI();
}
});
}
}
版权声明:本文标题:Adobe Flash Player中的Swing右键菜单:个性化您的应用程序 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/web/1772610796a3275709.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论