2012-11-06 12:43:45 +01:00

148 lines
3.7 KiB
Java

package buffered;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.border.EmptyBorder;
public class ClientGUI extends JFrame {
private JPanel contentPane;
private JTextField userinput;
private JTextField txtPort;
private JScrollPane scrollPane;
private JTextPane textPane;
private BufferedNetworkStackClient client = null;
private JTextField txtHost;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ClientGUI frame = new ClientGUI();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public ClientGUI() {
setResizable(false);
client = new BufferedNetworkStackClient();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 369);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(new BorderLayout(0, 0));
JPanel panelPref = new JPanel();
contentPane.add(panelPref, BorderLayout.NORTH);
panelPref.setLayout(new GridLayout(0, 4, 0, 0));
JLabel lblHost = new JLabel("Hostname:");
panelPref.add(lblHost);
txtHost = new JTextField();
txtHost.setText("localhost");
panelPref.add(txtHost);
txtHost.setColumns(10);
JLabel lblPort = new JLabel("Port:");
panelPref.add(lblPort);
txtPort = new JTextField();
panelPref.add(txtPort);
txtPort.setText("9999");
txtPort.setColumns(10);
JLabel lblMessage = new JLabel("Message:");
panelPref.add(lblMessage);
userinput = new JTextField();
userinput.setText("asd");
panelPref.add(userinput);
userinput.setColumns(10);
JButton btnPush = new JButton("Push");
panelPref.add(btnPush);
JButton btnPop = new JButton("Pop");
panelPref.add(btnPop);
JButton btnPrint = new JButton("Print");
btnPrint.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
client.print(txtHost.getText(),
Integer.valueOf(txtPort.getText()));
} catch (NumberFormatException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
panelPref.add(btnPrint);
btnPop.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String received = "";
try {
received = client.pop(txtHost.getText(),
Integer.valueOf(txtPort.getText()));
} catch (NumberFormatException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
textPane.setText(textPane.getText() + "\n" + received);
}
});
btnPush.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
String host = txtHost.getText();
int port = Integer.valueOf(txtPort.getText());
client.push(userinput.getText(), host, port);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
JPanel panelResp = new JPanel();
contentPane.add(panelResp, BorderLayout.CENTER);
panelResp.setLayout(new BorderLayout(5, 5));
JLabel lblServerResponse = new JLabel("Server response:");
panelResp.add(lblServerResponse, BorderLayout.NORTH);
textPane = new JTextPane();
textPane.setEditable(false);
scrollPane = new JScrollPane(textPane);
panelResp.add(scrollPane, BorderLayout.CENTER);
}
}