📄 tabbedpane.java
字号:
package jp.co.ntl.swing;
import java.awt.Component;
import java.awt.KeyboardFocusManager;
import java.util.Vector;
import javax.swing.JTabbedPane;
public class TabbedPane extends JTabbedPane {
//僞僽曄峏慜偵昞帵拞偺僞僽偺僠僃僢僋傪峴偄丄僠僃僢僋傪捠偭偨応崌偺傒僞僽堏摦偡傞丅
//傑偨丄婛懚偺JTabbedPane偺InputVerifier偵娭偡傞僶僌廋惓傪娷傓丅
//(JTabbedPane偼Tab曄峏屻偵requestFocus傪峴偆(Ver1.4)偨傔丄
//僞僽忋偺Component偵InputVerifier傪揔梡偡傞僞僀儈儞僌偑抶傟偰偟傑偆丅)
/**
*
*/
private static final long serialVersionUID = 955426983116666448L;
private Vector verifiers;
public TabbedPane() {
verifiers = new Vector();
}
public void setSelectedIndex(int newindex) {
Component comp = KeyboardFocusManager.
getCurrentKeyboardFocusManager().getFocusOwner();
// if no tabs are selected
// -OR- the current focus owner is me
// -OR- I request focus from another component and get it
// then proceed with the tab switch
if(getSelectedIndex() == -1 || comp == this || requestFocus(false)) {
boolean verify = true;
for (int i = 0; i < verifiers.size(); i++) {
verify = ((SelectionVerifier)verifiers.get(i)).verify(newindex);
if (!verify) {
break;
}
}
if (verify) {
super.setSelectedIndex(newindex);
}
}
}
public synchronized void addVerifier(SelectionVerifier verifier) {
verifiers.add(verifier);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -