使用快捷键Shift+Tab切换Tab
使用一个变量存储点击过的Tab的序号
- private int defaultTabbedIndex=0;
-
-
-
- private List<Integer>indexList=new ArrayList<Integer>();
- {
- indexList.add(defaultTabbedIndex);
- }
每次选中某个Tab,就把该Tab的index添加进indexList中:
- tabbedPane.addChangeListener(new ChangeListener() {
- @Override
- public void stateChanged(ChangeEvent e) {
- JTabbedPane tabbedPane = (JTabbedPane) e.getSource();
- int selectedIndex = tabbedPane.getSelectedIndex();
- indexList.add(selectedIndex);
- }
- });
获取上一次Tab的序号:
-
-
-
-
- private int getLastIndex(){
- int length=indexList.size();
- if(length<2){
- return SystemHWUtil.NEGATIVE_ONE;
- }
- return indexList.get(length-2);
- }
增加全局快捷键:
-
-
-
- private void addGlobalKey(){
- Toolkit toolkit = Toolkit.getDefaultToolkit();
-
- toolkit.addAWTEventListener(
- new java.awt.event.AWTEventListener() {
- public void eventDispatched(AWTEvent event) {
- if (event.getClass() == KeyEvent.class) {
- KeyEvent kE = ((KeyEvent) event);
-
- if ((kE.getKeyCode() == KeyEvent.VK_TAB)
- && (((InputEvent) event)
- .isShiftDown())&& kE.getID() == KeyEvent.KEY_PRESSED) {
- System.out.println("111");
- int lastIndex=getLastIndex();
- if(lastIndex<0){
- return;
- }
-
- tabbedPane.setSelectedIndex(lastIndex);
- }
- }
- }
- }, java.awt.AWTEvent.KEY_EVENT_MASK);
- }
参考:
java swing增加全局快捷键
java swing 下拉框增加回车事件