Java 单击按钮时切换JTextField

Java 单击按钮时切换JTextField,java,swing,gridbaglayout,Java,Swing,Gridbaglayout,我有一个JTextArea和一个JTextField,现在我想,如果我点击JTextArea按钮,控制转移到JTextArea和 当我单击JTextField按钮时,控件切换到JTextField。我是 不能做这样的事。 程序只是根据单击的JRadioButton更改JTextField中的文本 我建议实现一个ActionListener,并在其中使用Component.requestFocus()方法来设置文本字段的焦点 t1 = new JButton("TextArea");

我有一个JTextArea和一个JTextField,现在我想,如果我点击JTextArea按钮,控制转移到JTextArea和 当我单击JTextField按钮时,控件切换到JTextField。我是 不能做这样的事。 程序只是根据单击的JRadioButton更改JTextField中的文本


我建议实现一个
ActionListener
,并在其中使用
Component.requestFocus()
方法来设置文本字段的焦点

    t1 = new JButton("TextArea");
    t1.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            a1.requestFocus();

        }
    });
    gbc.gridx = 1;
    gbc.gridy = 0;
    gbc.gridheight = 1;
    add(t1,gbc);        //location of JButton

    t2 = new JButton("TextField");
    t2.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            fld1.requestFocus();

        }
    });
    gbc.gridx = 2;
    gbc.gridy = 0;
    gbc.gridheight = 1;
    add(t2,gbc);    

我建议实现一个
ActionListener
,并在其中使用
Component.requestFocus()
方法来设置文本字段的焦点

    t1 = new JButton("TextArea");
    t1.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            a1.requestFocus();

        }
    });
    gbc.gridx = 1;
    gbc.gridy = 0;
    gbc.gridheight = 1;
    add(t1,gbc);        //location of JButton

    t2 = new JButton("TextField");
    t2.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            fld1.requestFocus();

        }
    });
    gbc.gridx = 2;
    gbc.gridy = 0;
    gbc.gridheight = 1;
    add(t2,gbc);    
不要使用requestFocus()。阅读API。正确的使用方法是
requestFocustInWindow()
。不要使用requestFocus()。阅读API。正确的使用方法是
requestFocustInWindow()