Java Swing 快捷键
Java Swing 快捷键
给Java Swing 编程中按钮或者其他组件事件添加快捷键的方法:
Component.setAccelerator(KeyStroke.getKeyStroke(‘Q’, InputEvent.CTRL_MASK));
这个快捷键是ctrl+Q,通过这个方法即可实现点击操作与ctrl+Q快捷键操作同样的效果
为JButton设置ctrl快捷键
this.jButton_save.registerKeyboardAction(new SaveListener(), KeyStroke.getKeyStroke( KeyEvent.VK_S, KeyEvent.CTRL_MASK),JComponent.WHEN_IN_FOCUSED_WINDOW);
为JButton/JRadioButton/JCheckBox设置Alt助记符
使用从JComponent继承下来的方法。button.setMnemonic(KeyEvent.VK_M);
为JMenuItem添加快捷键
openJMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK));
mnuFileNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK));
快捷键:alt + 1
给菜单加上助记符 mnuFile.setMnemonic(‘F’);
JLabel & setLabelFor(Component c)
JLabel可以透过setDisplayedMnemonic(char aChar)方法来设定辅助键,以及设定辅助键时必须同时使用setLabelFor(Component c)方法指定这个标签所伴随的组件,也就是当使用者使用辅助键时,焦点也会转移到所指定的组件上。
示例代码如下(快捷键为Alt + U),注意使用方法的顺序:
JLabel userLabel = new JLabel("User:");
userLabel.setDisplayedMnemonic('U');
JComboBox user = new JComboBox(new String[]
{ "1","2","3" });
userLabel.setLabelFor(user);
userPanel.add(userLabel,BorderLayout.WEST);
userPanel.add(user,BorderLayout.CENTER);
JTabbedPane使用助记符在不同JComponent中切换
tabPane.add(title,JComponent component);
---------------------use the method setMonicAt(int tabIndex, int mnemonic) e.g.:
tabPane.setMnemonicAt(0,KeyEvent.VK_T); tabPane.setMnemonicAt(1,KeyEvent.VK_H);
Question: How to put the mnemonic under the second or third occured charater ? 怎么把助记符的显示下划线移动到特定位置上
For example: a JButton named button1 with text "Enter Time:" , set the mnemonic under 't' in the word "time"
so the code should be: (shoould write both )
button1.setMnemonic('T');
button1.setDisplayedMnemonicIndex(6);
Problem: cannot set mnemonic in JLabel/JComponent.text with HTML text 如果文本是html的,那么助记符的下划线不会显示,但是助记符响应正确
e.g.
JTextArea textArea =newJTextArea(10,20);
JLabel label =newJLabel("Text");
label.setLabelFor(textArea);
label.setDisplayedMnemonic(KeyEvent.VK_X);
vs
JTextArea textArea =newJTextArea();
JLabel label =newJLabel("<html>Text</html>");//!!! NO DECORATION
label.setLabelFor(textArea);
label.setDisplayedMnemonic(KeyEvent.VK_X);
Analyze分析: BasicLabelUI paints the label differently depending on whether it got HTML or not.If not , BasicLabelUI will call some of its own functions that draw the underline. If it does, BasicHTMLRenderer is used, that does not paint any underlines.
Solution: JLabel label = new JLabel("<html>Te<u>x</u>t</html>");
Java Swing 快捷键的更多相关文章
- Java swing项目-图书管理系统(swing+mysql+jdbc) 总结
(一)java Swing的学习. (1)学习如何安装windowbuilder插件的安装. <1>在eclipse中点击help <2>在help的下拉选中选择install ...
- Java Swing的进化
摘 要:Swing已是一个比较老的工具集了,在美观的用户界面出来之前需要开发很长时间.它缺少一些你在开发富UI时所需的组件.幸运地是,像 Substance,SwingX及Java Look-and_ ...
- Java Swing interview
http://www.careerride.com/Swing-AWT-Interview-Questions.aspx Swing interview questions and answers ...
- Java Swing 第03记 布局管理器
几种Swing常用的布局管理器 BorderLaout 它将容器分为5个部分,即东.南.西.北.中,每一个区域可以容纳一个组件,使用的时候也是通过BorderLayout中5个方位常量来确定组件所在的 ...
- Java Swing 第01记 Hello Word
首先来一个Java Swing的HelloWord程序. package cn.java.swing.chapter03; import javax.swing.JButton; import jav ...
- 【小型系统】抽奖系统-使用Java Swing完成
一.需求分析 1. 显示候选人照片和姓名. 2. 可以使用多种模式进行抽奖,包括一人单独抽奖.两人同时抽奖.三人同时抽奖. 3. 一个人可以在不同的批次的抽奖中获取一.二.三等奖,但是不能在同一批次抽 ...
- Java Swing快速构建窗体应用程序
以前接触java感觉其在桌面开发上,总是不太方便,没有一个好的拖拽界面布局工具,可以快速构建窗体. 最近学习了一下NetBeans IDE 8.1,感觉其窗体设计工具还是很不错的 , 就尝试一下做了一 ...
- paip.web数据绑定 下拉框的api设计 选择框 uapi python .net java swing jsf总结
paip.web数据绑定 下拉框的api设计 选择框 uapi python .net java swing jsf总结 ====总结: 数据绑定下拉框,Uapi 1.最好的是默认绑定..Map(k ...
- Java Swing事件处理机制
Java Swing的事件处理机制 Swing GUI启动后,Java虚拟机就启动三个线程,分别为主线程,事件派发线程(也是事件处理线程)和系统工具包线程. 主线程 :负责创建并显示该程序的初始界面: ...
随机推荐
- Android之记账本
这个ColaBox记事本是我从网上下载下来的拿来学习一下的(APK下载点这里.) 从登记收入与开支的页面跳转到账单页面运用了SQL数据库的录入,整体表的结构为: db.execSQL("CR ...
- linux/centos下安装nginx(rpm安装和源码安装)详细步骤
Centos下安装nginx rpm包 ...
- 如何查看JDK是64bit还是32bit
在eclipse或MyEclipse中创建一个Java Project并运行如下代码: public class Test { public static void main(String[] arg ...
- 译:Spring框架参考文档之IoC容器(未完成)
6. IoC容器 6.1 Spring IoC容器和bean介绍 这一章节介绍了Spring框架的控制反转(IoC)实现的原理.IoC也被称作依赖注入(DI).It is a process wher ...
- Js 循环结构
循环结构: for while do….while for循环 for(变量初始化;条件表达式;变量更新){ //循环体 } 说明: 第一步:变量初始化 只执行一次 第二步:判断表达式是否成立 成立则 ...
- 利用Linux下的pthread_mutex_t类型来实现哲学家进餐问题
首先说一下什么是哲学家进餐问题,这是操作系统课程中一个经典的同步问题, 问题如下:如上图,有6个哲学家和6根筷子(那个蓝色部分表示哲学家,那个紫色长条部分表示筷子),他们分别被编了0~5的号!如果某个 ...
- C# 实现HTML5服务器推送事件
为什么需要服务器推送事件: 因为如果需要保持前台数据的实时更新例如,IM聊天,股票信息, 1.可以在客户端不断地调用服务端的方法来获得新数据,但是这样会很消耗服务器资源,导致系统变慢! 2 html5 ...
- 利用WeX5集成百度地图
最近做一个地图类的app经过几天的摸索,终于完成百度地图集成的界面先看效果:1.加载完成之后,页面加载制定位置的地图2.顶部能够输入地图的关键字,地图显示符合条件的下拉列表3.用户选择了相应的选项后, ...
- jquery nicescroll 配置参数
jQuery滚动条插件兼容ie6+.手机.ipad http://www.areaaperta.com/nicescroll/ jQuery(function($){ $("#scrollI ...
- Android:启动引导页实现
前言 基本上现在所有的应用都会有一个欢迎界面,在欢迎界面对应用做一个整体的介绍,然后在跳入到主界面,这次要说的这个引导页就是带翻页的引导页.效果如下所示