Olá,
Estou fazendo uma applet/aplicação que utiliza a api de comunicação serial da sun.
Quando eu a rodo como aplicação ela executa normalmente, mas quando a utilizo como applet ela gera um erro de inicialização de variável.
Alguém já passou por isso.
Abaixo está o código que estou testando:
Valew
import javax.swing.JApplet;
import java.awt.Frame;
import java.awt.Graphics;
import java.util.Enumeration;
import javax.comm.*;
public class JanelaPrincipal extends JApplet {
private String[] portas;
private Enumeration listaDePortas;
private javax.swing.JPanel jContentPane = null;
public static void main(String[] args) {
Frame frame = new Frame();
JanelaPrincipal applet = new JanelaPrincipal();
applet.start();
frame.add("Center", applet);
frame.setSize(400,300);
frame.show();
}
public JanelaPrincipal() {
super();
init();
}
public void init() {
this.setSize(300,200);
this.setContentPane(getJContentPane());
}
public void start() {
detectarPortas();
}
public void paint (Graphics g) {
for (int i = 0; i <= portas.length; i++) {
g.drawString("-> " + portas[i],5,(15*i)+15);
}
}
private javax.swing.JPanel getJContentPane() {
if(jContentPane == null) {
jContentPane = new javax.swing.JPanel();
jContentPane.setLayout(new java.awt.BorderLayout());
}
return jContentPane;
}
// Detecta as portas disponíveis e guarda no vetor String
protected void detectarPortas(){
int i = 0;
portas = new String[10];
listaDePortas = CommPortIdentifier.getPortIdentifiers();
while (listaDePortas.hasMoreElements()) {
CommPortIdentifier ips =
(CommPortIdentifier)listaDePortas.nextElement();
portas[i++] = ips.getName();
}
}
}