java swing中如何设置按钮tab键顺序?

 我来答
skyyks0001
推荐于2018-04-11 · TA获得超过430个赞
知道小有建树答主
回答量:228
采纳率:100%
帮助的人:396万
展开全部
参考java.swing.InputVerifier类
以下摘自API:

此类的用途是通过带文本字段的 GUI 帮助客户端支持流畅的焦点导航。在允许用户导航到文本字段以外之前,这类 GUI 常常需要确保用户输入的文本是有效的(例如,文本具有正确的格式)。为做到这一点,客户端要使用 JComponent 的 setInputVerifier 方法创建 InputVerifier 的子类,并将其子类的实例附加到想要验证其输入的 JComponent 中。在将焦点转移到另一个请求它的 Swing 组件之前,要调用输入验证器的 shouldYieldFocus 方法。只在该方法返回 true 时才转移焦点。

以下示例有两个文本字段,其中第一个字段期望用户输入字符串 "pass"。如果在第一个文本字段中输入该字符串,那么用户可以通过在第二个文本字段上单击或按下 TAB 前进到第二个文本字段。不过,如果将其他字符串输入到第一个文本字段中,则用户无法将焦点转移到第二个文本字段。

import java.awt.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;

// This program demonstrates the use of the Swing InputVerifier class.
// It creates two text fields; the first of the text fields expects the
// string "pass" as input, and will allow focus to advance out of it
// only after that string is typed in by the user.

public class VerifierTest extends JFrame {
public VerifierTest() {
JTextField tf1 = new JTextField ("Type \"pass\" here");
getContentPane().add (tf1, BorderLayout.NORTH);
tf1.setInputVerifier(new PassVerifier());

JTextField tf2 = new JTextField ("TextField2");
getContentPane().add (tf2, BorderLayout.SOUTH);

WindowListener l = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};
addWindowListener(l);
}

class PassVerifier extends InputVerifier {
public boolean verify(JComponent input) {
JTextField tf = (JTextField) input;
return "pass".equals(tf.getText());
}
}

public static void main(String[] args) {
Frame f = new VerifierTest();
f.pack();
f.setVisible(true);
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式