刷脸支付 Nginx配置 微服务 阿里巴巴 分布式 jsp json express generics hyperlink io static stl chartjs jq绑定click事件 vim跳到文件末尾 websocket库 matlab中不等于怎么表示 oracle给表增加字段 docker创建容器 python界面 python3文件操作 python高级教程 简单python脚本实例 java正则表达式匹配 java字符串查找 java数组添加值 jdbc连接mysql java怎么安装 java时间转时间戳 java中long java多线程编程 java读取文件 java程序设计教程 linuxgrep php开发实例 网页游戏开发入门 pdf拆分工具 unity3d下载 视频加字幕软件
当前位置: 首页 > 学习教程  > 编程语言

11右键菜单 对话框

2021/1/13 19:35:18 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

右键菜单 右键菜单,JPopupMenu,即弹出式菜单、上下文菜单 右键点击某个控件,根据上下文弹出一个菜单。 创建顺序: 创建 JPopupMenu添加 JMenuItem添加鼠标右键的响应,显示菜单窗口菜单项被点击时,执行事…

右键菜单

右键菜单,JPopupMenu,即弹出式菜单、上下文菜单

右键点击某个控件,根据上下文弹出一个菜单。

创建顺序:

  1. 创建 JPopupMenu
  2. 添加 JMenuItem
  3. 添加鼠标右键的响应,显示菜单窗口
  4. 菜单项被点击时,执行事件处理。

代码:

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;

public class Demo {
	public static void main(String[] args) {
		MyFrame frame = new MyFrame("Title");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setSize(700, 700);
		frame.setLocation(500, 300);
		frame.setVisible(true);
	}
}

class MyFrame extends JFrame{
	JPopupMenu popup = new JPopupMenu();
	
	public MyFrame(String title) {
		super(title);
		
		//ContentPane
		JPanel root = new JPanel();
		this.setContentPane(root);
		root.setLayout(new BorderLayout());
		
		//右键菜单
		popup.add(createMenuItem("打开", "fileOpen", "./src/images/buhaoyisi.png"));
		popup.add(createMenuItem("保存", "fileSave", "./src/images/ganga.png"));
		popup.add(createMenuItem("另存为", "fileSaveAs", "./src/images/gaoxing.png"));
		popup.add(createMenuItem("帮助", "fileHelp", "./src/images/hanxiao.png"));
		
		//添加右键点击事件响应,点击右键时,弹出菜单
		root.addMouseListener(new MouseAdapter() {

			@Override
			public void mouseClicked(MouseEvent e) {
				if(e.getButton() == MouseEvent.BUTTON3) {
					popup.show(e.getComponent(), e.getX(), e.getY());
				}
			}
			
		});
	}
	
	private JMenuItem createMenuItem(String text, String action, String iconName) {
		JMenuItem item = new JMenuItem(text);
		item.setActionCommand(action);
		item.addActionListener(actionListener);
		if(iconName != null) {
			item.setIcon(new ImageIcon(iconName));
		}
		return item;
	}
	
	private ActionListener actionListener = new ActionListener() {
		@Override
		public void actionPerformed(ActionEvent e) {
			String action = e.getActionCommand();
			System.out.println("执行命令" + action);
			
			if(action.equals("fileOpen")) {
				JOptionPane.showMessageDialog(MyFrame.this, action);
			}
		}
	};
}

显示(在该位置右键后):
在这里插入图片描述

对话框

对话框 Dialog

程序与用户之间对话的界面,获取用户输入的手段

消息提示框:使用 JOptionPane 提供的工具方法,可以方便地显示一些简单的对话框

showMessageDialog();  //简单消息提示
showConfirmDialog();  //简单消息确认
showInputDialog();   //简单数据输入
showOptionDialog();  //简单选择输入

代码:

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Demo {
	public static void main(String[] args) {
		MyFrame frame = new MyFrame("Demo");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setSize(700, 700);
		frame.setLocation(300, 300);
		frame.setVisible(true);
	}
}

class MyFrame extends JFrame{
	public MyFrame(String title) {
		super(title);
		
		JPanel root = new JPanel();
		this.setContentPane(root);
		root.setLayout(new FlowLayout());
		
		JTextField textField = new JTextField(20);
		JButton button = new JButton("测试");
		root.add(textField);
		root.add(button);
		
		button.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				test4();
			}
		});
	}
	
	//简单消息提示框
	public void test1() {
		JOptionPane.showMessageDialog(this, "操作已经完成");
		System.out.println("test1 exit");
	}
	
	//简单消息确认提示框
	public void test2() {
		int select = JOptionPane.showConfirmDialog(this, "是否确认删除?", "确认", JOptionPane.YES_NO_OPTION);
		
		//select 为用户点击的第几个按钮
		if(select == 0) {
			System.out.println("模拟执行数据删除操作...");
			System.out.println("删除完成");
		}
		System.out.println("test2 exit");
	}
	
	//简单数据输入框
	public void test3() {
		String input = JOptionPane.showInputDialog(
				this,
				"请输入你的身份证号\n(字母以X代替)",
				"0000");
		if(input != null) {
			System.out.println("输入的号码为: " + input);
		}
		System.out.println("test3 exit");
	}
	
	//简单选项对话框
	private void test4() {
		Object[] colors = {"红色", "蓝色", "绿色"};
		String select = (String)JOptionPane.showInputDialog(
				this,
				"你最喜欢的颜色",
				"请选择",
				JOptionPane.PLAIN_MESSAGE,
				null,
				colors,
				"红色");
		if(select != null) {
			System.out.println("选择了" + select);
		}
		System.out.println("test4 exit");
	}
}

显示:
在这里插入图片描述


本文链接: http://www.dtmao.cc/news_show_600117.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?