Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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多线程:如何将1个jtextfield中的文本同时添加到另一个jtextfield中,并在jtextfield中没有输入文本时禁用jbutton_Java_Multithreading_Swing - Fatal编程技术网

Java多线程:如何将1个jtextfield中的文本同时添加到另一个jtextfield中,并在jtextfield中没有输入文本时禁用jbutton

Java多线程:如何将1个jtextfield中的文本同时添加到另一个jtextfield中,并在jtextfield中没有输入文本时禁用jbutton,java,multithreading,swing,Java,Multithreading,Swing,这是打开窗口时的事件 当JForm打开时,就会发生这种情况 我只是想让这个功能就像在stackoverflow中添加一个问题一样 编辑器并在编辑器下方同时显示更新的内容 private void formWindowOpened(java.awt.event.WindowEvent evt) { Thread t1 = new Thread(); t1.start(); } 这是主要的方法

这是打开窗口时的事件

当JForm打开时,就会发生这种情况

我只是想让这个功能就像在stackoverflow中添加一个问题一样

编辑器并在编辑器下方同时显示更新的内容

 private void formWindowOpened(java.awt.event.WindowEvent evt) {                                  

    Thread t1 = new Thread();
    t1.start();
}    
这是主要的方法

    public static void main(String args[]) {

    Thread t1 = new Thread(
            () -> {
                // DEMO is the Name of JForm
                DEMO d = new DEMO();
                // Text1 is the first jtextfeild
                String x = d.Text1.getText();

                if (x.isEmpty()) {
                    //ButtonAdd is the jbutton in JFrom
                    d.ButtonAdd.setEnabled(false);
                } else {
                // Text2 is the Second jtextfeild
                    d.Text2.setText(x);
                    d.ButtonAdd.setEnabled(true);
                }

            }
    );

    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new DEMO().setVisible(true);
        }
    });
}

在初始化时禁用按钮add,并将以下侦听器添加到d.Text1

new TextFieldChangeListener(tf)
     {
       public abtract void onChange(String oldText, String newText)
       {
         d.Text2.setText(newText);
         if(newText.isBlank())
         {
              d.ButtonAdd.setEnabled(false);
         }
         else
         {
              d.ButtonAdd.setEnabled(true);
         }        
       }
     };

在初始化时禁用按钮add,并将以下侦听器添加到d.Text1

new TextFieldChangeListener(tf)
     {
       public abtract void onChange(String oldText, String newText)
       {
         d.Text2.setText(newText);
         if(newText.isBlank())
         {
              d.ButtonAdd.setEnabled(false);
         }
         else
         {
              d.ButtonAdd.setEnabled(true);
         }        
       }
     };

1) 你不需要一个新的线程。您需要一个
DocumentListener
。看看这个基本上你在第一次显示按钮时禁用它,并监听在
JTextField
中键入的任何键,如果键入了什么,你就启用按钮。2)
d.Text1.getText()
让我觉得您使用的是
静态组件,这可能会给您带来更多麻烦,而不是解决方案。请参阅:它允许您在一个或多个文本字段中添加文本时启用按钮。1)您不需要新的线程。您需要一个
DocumentListener
。看看这个基本上你在第一次显示按钮时禁用它,并监听在
JTextField
中键入的任何键,如果键入了什么,你就启用按钮。2)
d.Text1.getText()
让我觉得您使用的是
静态组件,它可能给您带来的麻烦多于解决方案。请参阅:它允许您在一个或多个文本字段中添加文本时启用按钮。好的,我会检查它确定我会检查它