Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.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 如何使jtextarea响应另一个jtextarea更改_Java_Eclipse_Jcombobox_Jtextarea - Fatal编程技术网

Java 如何使jtextarea响应另一个jtextarea更改

Java 如何使jtextarea响应另一个jtextarea更改,java,eclipse,jcombobox,jtextarea,Java,Eclipse,Jcombobox,Jtextarea,如何使tSName显示对应于tPName特定值的文本,该值是从组合框中复制的,其中F、S和C字符串代表我要使用的对应值。我不确定是否正确理解您的意思。你试图让一个文本区域显示一些东西,当另一个文本区域的文本改变时,我说的对吗?如果是,您应该查找第一个文本框的事件,类似于在此事件中键入的tpnameKeyType,您可以简单地使用 JComboBox cBox = new JComboBox(); cBox.addItem("Food"); String x = "Food";

如何使tSName显示对应于tPName特定值的文本,该值是从组合框中复制的,其中F、S和C字符串代表我要使用的对应值。

我不确定是否正确理解您的意思。你试图让一个文本区域显示一些东西,当另一个文本区域的文本改变时,我说的对吗?如果是,您应该查找第一个文本框的事件,类似于在此事件中键入的tpnameKeyType,您可以简单地使用

    JComboBox cBox = new JComboBox();
    cBox.addItem("Food"); String x = "Food";
    cBox.addItem("Shirt");
    cBox.addItem("Computer");
    cBox.setSelectedItem(null);
    cBox.setBounds(56, 127, 336, 27);
    contentPane.add(cBox);

    tPName = new JTextArea();
    tPName.setBounds(38, 227, 130, 26);
    contentPane.add(tPName);
    tPName.setColumns(10);

    tSName = new JTextArea();
    tSName.setBounds(262, 227, 130, 26);
    contentPane.add(tSName);
    tSName.setColumns(10);

    JButton btn = new JButton("Further Details");
    btn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            String name = (String) cBox.getSelectedItem(); //gets value of combo box
            tPName.setText(name); //text area displays value
            String x = (String) tPName.getText();
            name = "Food"; tSName.setText(F);
            name = "Shirt"; tSName.setText(S);
            name ="Computer"; tSName.setText(C);

        }
    });
    btn.setBounds(162, 166, 117, 29);
    contentPane.add(btn);

这就是你要找的吗?

我现在没有电脑,所以我无法检查错误,但是。 这应该行得通

if(tPName.getText().equals("whatever")){
   tSName.setText("whatever u want");
}
编辑:-执行此操作后,请尝试刷新和验证文本区域

 tPName.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            tSName.setText(tPName.getText()); // put the value of tPName to tSName.
            // i think this is all you want. i actually cant get your question.
           // you can put a switch case to put coreesponding values in tSName. like: 
     switch(tPName.getText()){
            case "a" : tSName.setText("1");
                         break;
            //..... so on
             default:
                      tSName.setText("stack overflow is great");
                         break;

         }
      }
    });

是的,这是我正在寻找的,但当我这样做时,我得到一个错误tSName无法解决我修复了这个错误,但tSName文本区域仍然没有收到任何东西u使用eclypse GUI builder?如果是,右键单击文本区域tPName->Events->Key->Key typed。。这就是我使用netbeans获取所需事件的方式,但我认为它在eclypse中非常相似。在这种情况下,使用tSName.setText。。。;放置一个Actionlistener,就像您使用按钮一样。并为其设置相应的文本。因此,当用户点击enter键时,它将被调用,您可以更改TSname的值。用户不按enter键,他们使用一个按钮将组合框添加到文本区域,我无法在JTextArea上创建侦听器。好的,那么您得到的确切错误是什么。我们这里的所有人都会尝试解决这个问题:-是的,我找不到一种方法将action listener放入文本区域,所以我使用了addKeyListener。对于你的代码,我不知道你的意思是什么。没有错误,但第二个盒子仍然没有收到anything@kennymydude这就意味着你可以把很多其他的案例,比如案例b,我应该把验证和测试放在哪里repaint@kennymydude更改tSName.yes的文本后,但操作侦听器不适用于jtextarea
tPName.validate();
tSName.validate();
tPName.repaint(); // refresh  still not sure as i dont have pc if this not works try <your jframe>.repaint(); this should work