JAVA将文本放在JTextfield中

时间:2013-08-07 17:05:52

标签: java swing jtextfield

我正在编写这个程序,最终我将从多维数组中获取信息到JTextfields,信息将取决于用户在“item2”中输入的内容。我的问题是我无法从“theHandler”类中获取任何类型的数据到JTextfields中。我尝试使用“setText”,但它告诉我它不能将void更改为string。我也可以使用我在Handler类中获得的“piezas”值并在GUI上使用它,但我无法将值从piezas返回到GUI。不知道该怎么做。我已经准备好了数组,我只需要在同一个类上获取值来编写一个开关,这样我就可以在JTextfields中获取信息。

基本上,我需要从handler类中获取“piezas”值到Gui类中(或者能够从handler类中输入JTextfields中的文本)。

Thnx的帮助!


我正在创建一个像这样的JTextField:

JTextField item1 = new JTextField(10);

在这里,我尝试将文字设置为:

String setValue = item1.setText("text");

这不起作用。为什么呢?


关于我的编辑:完整代码已注释掉,未删除。 --MightyPork

2 个答案:

答案 0 :(得分:6)

setText()是正确的选择,只有您以奇怪的方式使用它。

String setValue = item1.setText("text");

setText()没有返回值,因此错误为void 您不能将void分配给变量。


请改为尝试:

item1.setText("text");

或者,如果您想要值:

String setValue = "text";
item1.setText(setValue);

或者:

String setValue;
item1.setText(setValue = "text");

答案 1 :(得分:1)

我在编辑之前复制了原始代码。 Swing applications should be created and started on the event dispatch thread (EDT)。 TerminalVenta类看起来应该是这样的:

TerminalVenta.java

import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class TerminalVenta {
  public static void main (String[] args){
    new TerminalVenta().start();
  }

  public void start() {
    SwingUtilities.invokeLater(new Runnable() {
      @Override
      public void run() {
        createAndShowGUI();
      }
    });
  }

  public void createAndShowGUI() {
    Gui ob = new Gui();
    ob.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    ob.setSize(700,300);
    ob.setVisible(true);
  }
}

thehandler类:

  public class thehandler implements ActionListener {
    public void actionPerformed(ActionEvent event) {
      String piezas = item2.getText();
      item1.setText(piezas);
    }
  }

请注意,我保留了原始代码中此课程的名称。但是这个课程不遵守Java Beans naming conventions

使用item1.setText(item2.getText());有效。