0

http://i.stack.imgur.com/sJu4p.jpg

当我按键盘上的 Tab 键时,我想按上述顺序选择我的文本字段。怎么做?

4

3 回答 3

0

试试这个例子......

package com.Demo;

import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

@SuppressWarnings("serial")
public class TabTest extends JFrame {
    public TabTest() {
        initialize();
    }

    private void initialize() {
        setSize(300, 300);
        setTitle("JTextArea TAB DEMO");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        JTextField textField = new JTextField();
        JPasswordField passwordField = new JPasswordField();
        final JTextArea textArea = new JTextArea();
        JScrollPane scrollPane = new JScrollPane(textArea);

        //
        // Add key listener to change the TAB behaviour in
        // JTextArea to transfer focus to other component forward
        // or backward.
        //
        textArea.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                if (e.getKeyCode() == KeyEvent.VK_TAB) {
                    if (e.getModifiers() > 0) {
                        textArea.transferFocusBackward();
                    } else {
                        textArea.transferFocus();
                    }
                    e.consume();
                }
            }
        });

        getContentPane().add(textField, BorderLayout.NORTH);
        getContentPane().add(scrollPane, BorderLayout.CENTER);
        getContentPane().add(passwordField, BorderLayout.SOUTH);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new TabTest().setVisible(true);
            }
        });
    }
}
于 2013-07-23T04:28:01.020 回答
0

尝试这个:

txtfld.addFocusListener(new FocusListener() {
        @Override
        public void focusGained(FocusEvent e) {                
            txtfld.setText("aaa");
        }

        @Override
        public void focusLost(FocusEvent e) {
           ...
        }
    });

查看更完整的代码。

于 2019-11-11T07:48:00.930 回答
0
jTextField1.setNextFocusableComponent(jTextField2);
jTextField2.setNextFocusableComponent(jTextField3);
jTextField3.setNextFocusableComponent(jTextField4);
jTextField4.setNextFocusableComponent(jTextField5);

尝试这个 :)

于 2018-12-28T12:07:45.913 回答