Olá, desculpa a demora.
Aqui estão as minhas classes:
public class Main {
public static void main (String[] args) throws Exception
{
String y=“COM7”;
PortsGes x= new PortsGes();
x.connect(y);
x.disconnect();
}
}
/<em>esta class é para fazer a gestão da porta COM7</em>/
public class PortsGes extends Test {
gnu.io.SerialPort serialPort;
gnu.io.CommPortIdentifier portIdentifier;
public void connect (String portName) throws Exception
{
portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
if (portIdentifier.isCurrentlyOwned()){
printOnStatusjFT(“Port in use”);
} else{
serialPort(SerialPort)portIdentifier.open(“ConfigPorts”,2000);
serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,SerialPort.PARITY_NONE); serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);
printOnStatusjFT(“Port Opened”);
InputStream in = serialPort.getInputStream();
(new Thread(new SerialReader(in))).start();
}
}
public void disconnect ()
{
serialPort.close();
printOnStatusjFT("Port Closed");
portIdentifier = null;
serialPort = null;
}
}
/* esta class faz a leitura da porta serie*/
public class SerialReader extends Test implements Runnable
{
InputStream in;
SerialReader (InputStream in)
{
this.in= in;
}
public void run ()
{
byte[] buffer = new byte[1024];
int len=1, x=1;
try
{
while((len=this.in.read(buffer))>-1)
{
printOnPesojTA(new String(buffer,0,len));
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
public class Test extends javax.swing.JFrame {
public Test() {
initComponents();
setVisible(true);
}
private void initComponents() {/* codigo automatico gerado pelo NETBeans*/
jPanel1 = new javax.swing.JPanel();
mainJPanel = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
pesojTA = new javax.swing.JTextArea();
statusjLb = new javax.swing.JLabel();
statusjTF = new javax.swing.JTextField();
stpjBut = new javax.swing.JButton();
sttjBut = new javax.swing.JButton();
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 100, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 100, Short.MAX_VALUE)
);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Teste");
setAlwaysOnTop(true);
pesojTA.setColumns(20);
pesojTA.setRows(5);
jScrollPane1.setViewportView(pesojTA);
statusjLb.setText("Status Bar");
statusjTF.setEditable(false);
stpjBut.setText("STOP");
stpjBut.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
stpjButActionPerformed(evt);
}
});
sttjBut.setText("START");
javax.swing.GroupLayout mainJPanelLayout = new javax.swing.GroupLayout(mainJPanel);
mainJPanel.setLayout(mainJPanelLayout);
mainJPanelLayout.setHorizontalGroup(
mainJPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(mainJPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(mainJPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 432, Short.MAX_VALUE)
.addComponent(statusjTF, javax.swing.GroupLayout.DEFAULT_SIZE, 432, Short.MAX_VALUE)
.addGroup(mainJPanelLayout.createSequentialGroup()
.addComponent(statusjLb)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 252, Short.MAX_VALUE)
.addComponent(sttjBut)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(stpjBut)))
.addContainerGap())
);
mainJPanelLayout.setVerticalGroup(
mainJPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, mainJPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 206, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(mainJPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(statusjLb)
.addComponent(stpjBut)
.addComponent(sttjBut))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(statusjTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
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()
.addComponent(mainJPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(mainJPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
pack();
}// </editor-fold>
private void stpjButActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
public void printOnStatusjFT(String stt ){
statusjTF.setText(stt);
}
public void printOnPesojTA(String pso){
pesojTA.setText(pso);
pesojTA.setLineWrap(true);
}
// Variables declaration - do not modify
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JPanel mainJPanel;
private javax.swing.JTextArea pesojTA;
private javax.swing.JLabel statusjLb;
private javax.swing.JTextField statusjTF;
private javax.swing.JButton stpjBut;
private javax.swing.JButton sttjBut;
// End of variables declaration
}
Obrigado pela ajuda
Tregosa