Java textfield作为webservice的输入

Java textfield作为webservice的输入,java,web-services,user-interface,Java,Web Services,User Interface,我正在尝试制作一个具有一个输入字段和一个输出字段的应用程序gui 我试图使我在输入字段中写入的文本转发到web服务,并且我从web服务获得的结果应该显示在输出字段中 我以为我已经掌握了怎么做,但是,我知道我只是坐在这里呆呆地看着屏幕 我已经制作了gui gui.java,还有一些controller.java 我只是无法将我应该如何从一个文本字段调用web服务,然后在另一个文本字段或其他内容中呈现结果联系起来 任何帮助都将不胜感激 到目前为止,我得到的是: import java.awt.Eve

我正在尝试制作一个具有一个输入字段和一个输出字段的应用程序gui

我试图使我在输入字段中写入的文本转发到web服务,并且我从web服务获得的结果应该显示在输出字段中

我以为我已经掌握了怎么做,但是,我知道我只是坐在这里呆呆地看着屏幕

我已经制作了gui gui.java,还有一些controller.java

我只是无法将我应该如何从一个文本字段调用web服务,然后在另一个文本字段或其他内容中呈现结果联系起来

任何帮助都将不胜感激

到目前为止,我得到的是:

import java.awt.EventQueue;

import javax.swing.JFrame;

import java.awt.CardLayout;

import javax.swing.JTextField;
import javax.swing.JPanel;
import javax.swing.JTextPane;
import javax.swing.SwingConstants;

import java.awt.TextField;
import java.awt.GridLayout;

import javax.swing.border.TitledBorder;
import javax.swing.BoxLayout;

import webservicefile.control.Controller;
import javax.swing.JTextArea;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;


public class window {

    private JFrame frame;
    private Controller control;
    private JTextField txtInput;
    /**
     * Launch the application.
     */


    /**
     * Create the application.
     */
    public window(Controller control) {
        this.control = control;
        initialize();
        frame.setVisible(true);
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(new GridLayout(1, 0, 0, 0));

        JPanel panel = new JPanel();
        frame.getContentPane().add(panel);
        panel.setLayout(null);

        txtInput = new JTextField();
        txtInput.setBounds(116, 30, 207, 28);
        panel.add(txtInput);
        txtInput.setColumns(10);

        JTextArea txtDisplay = new JTextArea();
        txtDisplay.setBounds(116, 133, 207, 121);
        panel.add(txtDisplay);

        JButton btnSend = new JButton("Send");
        btnSend.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                final String input = txtInput.getText();
                final String display = control.send(input);
                txtDisplay.setText(display);
            }
        });
        btnSend.setBounds(334, 31, 96, 28);
        panel.add(btnSend);

    }
}

您需要添加一个带有的“确定/发送”按钮,或者在将侦听关键事件的文本字段中添加一个

在这两种情况下,当侦听器被触发时,您将获得文本字段的内容并将其传递给WS-client

在一些示例中,稍微使用伪代码,其中WebServiceClient是一个提供WS支持的概念类

使用ActionListener

或者,使用KeyListener


这应该足以让您继续学习,但仍然可以让您学到一些东西。

好的,很好,请原谅我的无知,我完全是java新手,但这在代码中会是什么样子?尝试阅读链接,但没有让我的想法变得更明智,比如txtlease=newjtextfieldKeyListener或其他什么?谢谢,我会尝试的。在这两种情况下我都应该有一个发送按钮吗?而且,这应该放在我的gui.java中,而不是放在我的controller.java中,对吗?我会两者都放,因为这样你可以点击return或者点击按钮来触发WS-call。行为应该来自控制器,因此,与其传入WebServiceClient,不如传入一个由侦听器调用的函数;这个函数包装了WS调用。无论你做什么,从简单开始并从那里开始构建!我编辑了我的作品,以展示我迄今为止的成就。在这两行中有些东西不起作用:-最终字符串显示=control.sendinput;发送标记为红色-txtDisplay.setTextdisplay;TXT显示器是红色的。我也觉得我错过了一些东西。谢谢
public void configureUI(final WebServiceClient client) {
    JTextField inputField = new JTextField();
    JTextArea responseArea = new JTextArea();
    JButton sendButton = new JButton("Send");

    sendButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            final String text = inputField.getText();
            final String response = client.send(text);
            responseArea.setText(response);
        }
    });

    // add inputField, responseArea and sendButton to the container
}
public void configureUI(final WebServiceClient client) {
    JTextField inputField = new JTextField();
    JTextArea responseArea = new JTextArea();

    inputField.addKeyListener(new KeyAdapter() {
        public void keyReleased(KeyEvent e) {
            if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                final String text = inputField.getText();
                final String response = client.send(text);
                responseArea.setText(response);
            }
        }
    });

    // add inputField, responseArea and sendButton to the container
}