Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将值从一个JtextField传递到另一个JtextField?_Java_Swing_Jtextfield_Settext - Fatal编程技术网

Java 将值从一个JtextField传递到另一个JtextField?

Java 将值从一个JtextField传递到另一个JtextField?,java,swing,jtextfield,settext,Java,Swing,Jtextfield,Settext,//java swing新手,需要帮助获取第一个Jtextfield中的文本以显示在//第二个Jtextfield????我很年轻,刚开始学习java,需要一些帮助。下面是我已经完成的代码,谢谢 import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BorderFactory; import javax.swing.JBu

//java swing新手,需要帮助获取第一个Jtextfield中的文本以显示在//第二个Jtextfield????我很年轻,刚开始学习java,需要一些帮助。下面是我已经完成的代码,谢谢

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class lab4 extends JFrame implements ActionListener {

    int numClicks = 0;
    String text = null;

    public lab4() {
        setSize(1200, 700);
        setVisible(true);
        JButton button = new JButton("Hello i am a button");
        button.addActionListener(this);
        JPanel panel = new JPanel();
        panel.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));

        panel.add(button);
        this.add(panel);

        JMenuBar menubar = new JMenuBar();
        this.setJMenuBar(menubar);
        JMenu file = new JMenu("File");
        menubar.add(file);
        JMenuItem open = new JMenuItem("Open File");
        file.add(open);

        final JTextField myField = new JTextField(10);
        myField.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String text = myField.getText();
//System.out.println("Hello");

            }
        });

        final JTextField myField2 = new JTextField(10);
        yField2.setText(myField.getText());
        panel.add(myField);

        panel.add(myField2);
        setVisible(true);
    }
}

    public static void main(String[] args) {
        new lab4();

    }

    public void actionPerformed(ActionEvent e) {
        numClicks++;
        System.out.println("The button has been clicked " + numClicks + " times");

    }
}

是的,你做得很好。如果在一个操作事件上有多个工作将按顺序发生,则需要将该顺序放入相应的
actionPerformed
函数中。因此:

myField.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
    String text = myField.getText();
    myField2.setText(text);

}
});
JComponents监听器意味着它们只会在动作事件发生时进行监听和响应。他们将收到注册到事件源(
jcomponent
)的
ActionListener
实例的通知,该实例使用您所做的
addActionListener()
函数

还有一点需要注意:在声明任何语句中的字段之前,都不能访问它。编译器在对字段进行任何操作之前,需要了解该字段的相关信息。因此,您必须在访问myField2的代码之前声明它,例如,
myField1
匿名类
ActionListener
actionPerformed
函数

教程资源:


  • 是的,你做得很好。如果在一个操作事件上有多个工作将按顺序发生,则需要将该顺序放入相应的
    actionPerformed
    函数中。因此:

    myField.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
        String text = myField.getText();
        myField2.setText(text);
    
    }
    });
    
    JComponents监听器意味着它们只会在动作事件发生时进行监听和响应。他们将收到注册到事件源(
    jcomponent
    )的
    ActionListener
    实例的通知,该实例使用您所做的
    addActionListener()
    函数

    还有一点需要注意:在声明任何语句中的字段之前,都不能访问它。编译器在对字段进行任何操作之前,需要了解该字段的相关信息。因此,您必须在访问myField2的代码之前声明它,例如,
    myField1
    匿名类
    ActionListener
    actionPerformed
    函数

    教程资源:


  • 您可以共享模型:

    JTextField textField1 = new JTextField(...);
    JTextField textField2 = new JTextField(...);
    textField2.setDocument( textField1.getDocument() ):
    

    现在,每当您在任一文本字段中键入文本时,另一个文本字段也将被更新。

    您可以共享模型:

    JTextField textField1 = new JTextField(...);
    JTextField textField2 = new JTextField(...);
    textField2.setDocument( textField1.getDocument() ):
    

    现在,每当您在其中一个文本字段中键入文本时,另一个文本字段也将被更新。

    就像旁注一样,您的
    main
    actionPerformed
    方法在主类主体之外声明,并且您有一个额外的
    }
    ,这意味着您的代码甚至不会编译…就像旁注一样,您的
    main
    actionPerformed
    方法在主类主体之外声明,您还有一个额外的
    }
    ,这意味着您的代码甚至无法编译……祝贺
    100k
    ;)谢谢,我只花了1151天。。。和计数;)祝贺
    100k
    ;)谢谢,我只花了1151天。。。和计数;)