/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* GUI.java
*
* Created on 25-Dec-2010, 3:20:45 PM
*/
package tigergui;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import jinputjoysticktestv2.joystick;
import org.apache.log4j.Level;
import logger.TextAreaAppender;
public class GUI extends javax.swing.JFrame {
//Communicator object
Communicator communicator = null;
static Logger logger = null;
//KeybindingController object
KeybindingController keybindingController = null;
Runnable joyistickcontroler =null;
/** Creates new form GUI */
public GUI() {
initComponents();
createObjects();
communicator.searchForPorts();
keybindingController.toggleControls();
keybindingController.bindKeys();
txtLog.append("zainjowanie GUI" + "\n");
}
private void createObjects()
{
communicator = new Communicator(this);
keybindingController = new KeybindingController(this);
logger = Logger.getLogger(GUI.class);
TextAreaAppender textAreaAppender = (TextAreaAppender) Logger.getRootLogger().getAppender("TEXTAREA");
textAreaAppender.setTextArea(txtLog);
joyistickcontroler = new joystick(this, keybindingController, communicator);
Thread t = new Thread(joyistickcontroler);
t.start();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
lblLeft = new javax.swing.JLabel();
btnLeftAccel = new javax.swing.JButton();
btnLeftDecel = new javax.swing.JButton();
btnRightAccel = new javax.swing.JButton();
lblRight = new javax.swing.JLabel();
btnRightDecel = new javax.swing.JButton();
cboxPorts = new javax.swing.JComboBox();
btnConnect = new javax.swing.JButton();
btnDisconnect = new javax.swing.JButton();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
jLabel10 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
jScrollPane2 = new javax.swing.JScrollPane();
txtLog = new javax.swing.JTextArea();
textSend = new java.awt.TextField();
btnSend = new javax.swing.JButton();
btnClear = new javax.swing.JButton();
jComboBox_controllers = new javax.swing.JComboBox();
jLabel5 = new javax.swing.JLabel();
jComboBox1_log = new javax.swing.JComboBox();
jLabel13 = new javax.swing.JLabel();
jLabel14 = new javax.swing.JLabel();
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Tiger Tank Control Panel");
jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
jLabel1.setText("Tiger Robot Control Panel");
jLabel2.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
jLabel2.setText("Throttle");
jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel3.setText("Left");
jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel4.setText("Right");
lblLeft.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
lblLeft.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
lblLeft.setText("0");
btnLeftAccel.setText("/\\");
btnLeftAccel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnLeftAccelActionPerformed(evt);
}
});
btnLeftDecel.setText("\\/");
btnLeftDecel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnLeftDecelActionPerformed(evt);
}
});
btnRightAccel.setText("/\\");
btnRightAccel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnRightAccelActionPerformed(evt);
}
});
lblRight.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
lblRight.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
lblRight.setText("0");
btnRightDecel.setText("\\/");
btnRightDecel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnRightDecelActionPerformed(evt);
}
});
btnConnect.setText("Connect");
btnConnect.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnConnectActionPerformed(evt);
}
});
btnDisconnect.setText("Disconnect");
btnDisconnect.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnDisconnectActionPerformed(evt);
}
});
jLabel6.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
jLabel6.setText("Controls");
jLabel7.setText("Q + Left");
jLabel8.setText("A - Left");
jLabel9.setText("W + Both");
jLabel10.setText("S - Both");
jLabel11.setText("D - Right");
jLabel12.setText("E + Right");
txtLog.setEditable(false);
txtLog.setColumns(20);
txtLog.setLineWrap(true);
txtLog.setRows(5);
txtLog.setFocusable(false);
jScrollPane2.setViewportView(txtLog);
textSend.setCursor(new java.awt.Cursor(java.awt.Cursor.TEXT_CURSOR));
btnSend.setText("Send");
btnSend.setToolTipText("");
btnSend.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnSendActionPerformed(evt);
}
});
btnClear.setText("Clear");
btnClear.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnClearActionPerformed(evt);
}
});
jComboBox_controllers.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jComboBox_controllersActionPerformed(evt);
}
});
jLabel5.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
jLabel5.setText("Joistick controller");
jComboBox1_log.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "DEBUG", "INFO", "WARN", "ERROR", "FATAL" }));
jComboBox1_log.setSelectedIndex(1);
jComboBox1_log.setToolTipText("");
jComboBox1_log.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jComboBox1_logActionPerformed(evt);
}
});
jLabel13.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
jLabel13.setText("COM");
jLabel14.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
jLabel14.setText("LOG");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel8)
.addComponent(jLabel7))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel10)
.addComponent(jLabel9))
.addGap(3, 3, 3)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel11)
.addComponent(jLabel12))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 321, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel5)
.addComponent(jComboBox_controllers, javax.swing.GroupLayout.PREFERRED_SIZE, 236, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(btnLeftDecel)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(lblLeft, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnLeftAccel, javax.swing.GroupLayout.Alignment.LEADING)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(btnRightDecel)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(lblRight, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnRightAccel, javax.swing.GroupLayout.Alignment.LEADING)))))
.addComponent(jLabel6)
.addComponent(jLabel2))
.addGap(0, 0, Short.MAX_VALUE)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 333, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(btnClear)
.addComponent(jLabel13)
.addComponent(jLabel14))
.addGap(17, 17, 17)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jComboBox1_log, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(textSend, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(cboxPorts, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnConnect)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(btnDisconnect, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnSend, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 177, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jComboBox1_log, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel14))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addComponent(btnSend)
.addGap(11, 11, 11))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(cboxPorts, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnConnect)
.addComponent(btnDisconnect))
.addComponent(jLabel13))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(textSend, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnClear))
.addGap(8, 8, 8)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 266, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jLabel4))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(btnLeftAccel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lblLeft)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnLeftDecel))
.addGroup(layout.createSequentialGroup()
.addComponent(btnRightAccel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lblRight)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnRightDecel)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel6)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel12)
.addComponent(jLabel5))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel11)
.addComponent(jComboBox_controllers, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel7)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel8))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel9)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel10)))))
.addContainerGap())
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void btnLeftAccelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLeftAccelActionPerformed
keybindingController.setLeftThrottle(keybindingController.accelerate(keybindingController.getLeftThrottle()));
keybindingController.updateLabels();
// txtLog.append("Throtle: " +keybindingController.getLeftThrottle()+"\n");
}//GEN-LAST:event_btnLeftAccelActionPerformed
private void btnLeftDecelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLeftDecelActionPerformed
keybindingController.setLeftThrottle(keybindingController.decelerate(keybindingController.getLeftThrottle()));
keybindingController.updateLabels();
}//GEN-LAST:event_btnLeftDecelActionPerformed
private void btnRightAccelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRightAccelActionPerformed
keybindingController.setRightThrottle(keybindingController.accelerate(keybindingController.getRightThrottle()));
keybindingController.updateLabels();
}//GEN-LAST:event_btnRightAccelActionPerformed
private void btnRightDecelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRightDecelActionPerformed
keybindingController.setRightThrottle(keybindingController.decelerate(keybindingController.getRightThrottle()));
keybindingController.updateLabels();
}//GEN-LAST:event_btnRightDecelActionPerformed
private void btnConnectActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnConnectActionPerformed
communicator.connect();
if (communicator.getConnected() == true)
{
if (communicator.initIOStream() == true)
{
communicator.initListener();
}
}
}//GEN-LAST:event_btnConnectActionPerformed
private void btnDisconnectActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDisconnectActionPerformed
communicator.disconnect();
}//GEN-LAST:event_btnDisconnectActionPerformed
private void btnSendActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSendActionPerformed
// txtLog.append(textSend.getText());
String txtValue =textSend.getText();
String strValue = txtValue.replaceAll("\\s+","");
char[] charArray = strValue.toCharArray();
communicator.writeData(charArray[0], charArray[1], charArray[2]);
//TODO: btnSend action need finish
}//GEN-LAST:event_btnSendActionPerformed
private void btnClearActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnClearActionPerformed
txtLog.setText("");
}//GEN-LAST:event_btnClearActionPerformed
private void jComboBox_controllersActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox_controllersActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_jComboBox_controllersActionPerformed
private void jComboBox1_logActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1_logActionPerformed
String level = jComboBox1_log.getSelectedItem().toString();
if (level == "DEBUG") logger.setLevel(Level.DEBUG);
if (level == "INFO") logger.setLevel(Level.INFO);
if (level == "WARN") logger.setLevel(Level.WARN);
if (level == "ERROR") logger.setLevel(Level.ERROR);
if (level == "FATAL") logger.setLevel(Level.FATAL);
}//GEN-LAST:event_jComboBox1_logActionPerformed
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new GUI().setVisible(true);
String log4jConfigFile = "src\\log4j.properties";
// = System.getProperty("user.dir")+ File.separator + "src\\log4j.properties";
PropertyConfigurator.configure(log4jConfigFile);
logger.debug(log4jConfigFile);
logger.info("Sample info message");
logger.warn("Sample warn message");
logger.error("Sample error message");
logger.fatal("Sample fatal message");
}
});
}
/* Methods for setting components on the window. */
public int getSelectedControllerName(){
return jComboBox_controllers.getSelectedIndex();
}
public int getSelectedLogLevel(){
return jComboBox1_log.getSelectedIndex();
}
public void addControllerName(String controllerName){
jComboBox_controllers.addItem(controllerName);
}
public void showControllerDisconnected(){
jComboBox_controllers.removeAllItems();
jComboBox_controllers.addItem("Controller disconnected!");
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton btnClear;
public javax.swing.JButton btnConnect;
public javax.swing.JButton btnDisconnect;
public javax.swing.JButton btnLeftAccel;
public javax.swing.JButton btnLeftDecel;
public javax.swing.JButton btnRightAccel;
public javax.swing.JButton btnRightDecel;
public javax.swing.JButton btnSend;
public javax.swing.JComboBox cboxPorts;
private javax.swing.JComboBox jComboBox1_log;
private javax.swing.JComboBox jComboBox_controllers;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTextArea jTextArea1;
public javax.swing.JLabel lblLeft;
public javax.swing.JLabel lblRight;
public java.awt.TextField textSend;
public javax.swing.JTextArea txtLog;
// End of variables declaration//GEN-END:variables
}