我正在尝试制作一个具有一个输入字段和一个输出字段的应用程序(gui)。
我正在尝试这样做,以便我在输入字段中编写的文本将被转发到web服务,并且我从web服务获得的结果应该显示在输出字段中。
我以为我已经掌握了怎么做,但是,我只是坐在这里看着屏幕,脑子里一片空白。
我已经做了图形用户界面(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);
}
}发布于 2015-04-21 22:12:24
您需要添加一个具有java.awt.event.ActionListener的"OK/send“按钮,或者将一个java.awt.event.KeyListener添加到文本字段以侦听关键事件。
在这两种情况下,当侦听器被触发时,您将获得文本字段的内容并将其传递给WS客户机。
一些例子,略带伪代码,其中WebServiceClient是一个提供WS支持的概念类...
使用ActionListener的
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
}或者,使用KeyListener
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
}这应该足以让你继续前进,但仍然给你一些需要学习的东西。
https://stackoverflow.com/questions/29774479
复制相似问题