rendered paste bodyimport java.io.*;
import java.net.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SwingTest extends JFrame implements ActionListener
{
JTextField tf;
JFrame frame;
JEditorPane pane;
JMenuBar menuBar;
JMenu menuFile;
JMenuItem menuitemExit;
JTextField textField;
BufferedWriter writer;
BufferedReader reader;
Socket socket;
public SwingTest()
{
menuBar = new JMenuBar();
menuFile = new JMenu("FILE");
menuitemExit = new JMenuItem("QUIT");
menuitemExit.setActionCommand("QUIT");
menuitemExit.addActionListener(this);
// menuitemExit.addActionListener(this);
menuFile.add(menuitemExit);
menuBar.add(menuFile);
pane = new JEditorPane();
pane.setEditable(false);
//pane.setSize(350, 350);
setSize(500, 350);
JFrame.setDefaultLookAndFeelDecorated(false);
frame = new JFrame("Jerk IRC Client");
//frame.setSize(new Dimension(500, 500));
//frame.setSize(350, 350);
textField = new JTextField(20);
textField.setActionCommand("TextField");
textField.addActionListener(this);
frame.getContentPane().add(new JScrollPane(pane), "Center");
frame.getContentPane().add(textField, BorderLayout.PAGE_END);
frame.setJMenuBar(menuBar);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public void readServer() throws IOException
{
String server = "irc.freenode.net";
String nick = "blank__";
String login = "blank__";
String channel = "#wgb";
socket = new Socket(server, 6667);
writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream( )));
reader = new BufferedReader(new InputStreamReader(socket.getInputStream( )));
writer.write("NICK " + nick + "\r\n");
writer.write("USER " + login + " 8 * : Jerk\r\n");
writer.flush( );
String line = null;
while ((line = reader.readLine( )) != null)
{
if (line.indexOf("004") >= 0)
{
break;
}
else if (line.indexOf("433") >= 0)
{
pane.setText(pane.getText() + new String("Nickname already in use.\n"));
return;
}
}
writer.write("JOIN " + channel + "\r\n");
writer.flush( );
writer.write("PRIVMSG " + channel + ":I HAVE JOINED!\r\n");
while ((line = reader.readLine( )) != null)
{
if (line.toLowerCase( ).startsWith("PING "))
{
writer.write("PONG " + line.substring(5) + "\r\n");
writer.write("PRIVMSG " + channel + " :I got pinged!\r\n");
writer.flush( );
}
else
{
pane.setText(pane.getText() + line + "\n");
}
}
}
public void actionPerformed(ActionEvent e)
{
try {
String actionSource = e.getActionCommand();
if(actionSource == "TextField")
{
writer.write("PRIVMSG #wgb :" + textField.getText() + "\r\n");
writer.flush();
pane.setText(pane.getText() + "PRIVMSG #wgb :" + textField.getText() + "\r\n");
}
else if(actionSource == "QUIT")
{
System.exit(0);
}
}
catch (IOException a)
{
System.out.println(a.getMessage());
}
}
public static void main(String[] args) throws Exception
{
SwingTest x = new SwingTest();
x.readServer();
}
}