-1

这是我的代码。它们来自两个文件。

TClient.java

public class TClient{
public static void main(String[] agrs){                 
        String ip=null;//string ip
        LayoutO frame; 
        frame = new LayoutO();
        frame.setVisible(true);         
}

LayoutO.java

 public class LayoutO extends JFrame implements ActionListener {
private JPanel contentPane;
private JTextField textField;
public LayoutO() {

    textField = new JTextField();
    textField.setBounds(59, 157, 240, 39);
    contentPane.add(textField);
    textField.setColumns(10);

    JButton btnSubmit = new JButton("SUBMIT");
    btnSubmit.setBounds(93, 236, 172, 77);
    contentPane.add(btnSubmit);

    btnSubmit.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {            
    String str=textField.getText();//the aim string is here
    }
}

当按下“提交”按钮时,我想使用这个 GUI 来获取 textField 的文本。

但是actionPerformed的功能没有return的东西。

我如何获得目标字符串(LayoutO.java 的最后一行的目标字符串)来评估字符串“ip”(main 中的字符串)。

4

2 回答 2

1

添加侦听器时,例如在Layout0构造函数中:

 btnSubmit.addActionListener(this);

这不会等待一个动作。我将简单地“注册”监听器并返回。当一个事件发生时,actioPerformed会被调用。

您应该在 TClient 中创建一个方法来在输入新字符串时执行操作。

听者:

public void actionPerformed(ActionEvent e) {            
    String str=textField.getText();//the aim string is here
    TClient.newStringSubmited(str);
}

在 TClient 中:

public void newStringSubmited(String str) {

     //do what you want with the string
}
于 2013-07-04T13:55:21.113 回答
1

问题是:输入“aim”字符串应该去哪里?进入TClient类还是实例呢?TClient 中的字符串“ip”在 main 方法中,因此它是一个局部变量,仅在此方法执行期间存在。

想想输入字符串应该去哪里。然后将属性或方法放入该位置,以便可以将其放在那里。然后 ActionListener 需要对该位置的引用,并且可以将输入字符串设置为该目标变量或将其传递给方法进行处理。

于 2013-07-04T13:57:28.373 回答