/* * Created on Nov 3, 2005 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ package de.tuberlin.polymake.common; import java.awt.BorderLayout; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedWriter; import java.io.IOException; import java.nio.channels.Channels; import java.nio.channels.SelectionKey; import java.nio.channels.SocketChannel; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; /** * @author thilosch * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ public class SocketFrame extends JFrame implements ActionListener { protected JTextArea receivedText = new JTextArea(30,30); protected JTextArea sendText = new JTextArea(30,30); protected SelectionKey readKey; protected SelectionKey writeKey; protected SocketThread socketThread; public SocketFrame(String title, int port) { super(title); Container contentPanel = getContentPane(); contentPanel.setLayout(new GridLayout(1,2)); JPanel receivedPanel = new JPanel(); receivedPanel.setLayout(new BorderLayout()); receivedPanel.add(new JScrollPane(receivedText),BorderLayout.CENTER); socketThread = new SocketThread(port,receivedText); socketThread.start(); JPanel sendPanel = new JPanel(new BorderLayout()); JButton sendButton = new JButton("Send"); sendButton.addActionListener(this); sendPanel.add(new JScrollPane(sendText),BorderLayout.CENTER); sendPanel.add(sendButton,BorderLayout.SOUTH); contentPanel.add(receivedPanel); contentPanel.add(sendPanel); setBounds(10,10,400,200); pack(); setVisible(true); } public void actionPerformed(ActionEvent e) { try { SocketChannel sChannel = socketThread.getSocketChannel(); BufferedWriter channelWriter = new BufferedWriter(Channels.newWriter(sChannel,"ISO-8859-1")); channelWriter.write(sendText.getText()); channelWriter.flush(); } catch (IOException ex) { System.err.println(ex.getMessage()); ex.printStackTrace(System.err); } } }