Alguém saberia me dizer por que esse applet realiza a soma quando roda em JRE 5.0 e não retorna nada quando roda em JRE 1.1.4??? Obs: Estou compilando com o comando “javac -target 1.1 -source 1.2 NewApplet1.java”
Lá vai o código
/*
* NewApplet.java
*
*/
import java.applet.Applet;
import java.awt.*;
import java.awt.event.ActionListener;
public class NewApplet1 extends Applet implements ActionListener {
public double vf, teq;
public int pztotal;
private java.awt.Button button1;
private java.awt.TextField jPztotal;
private java.awt.TextField jVf;
private java.awt.Panel panel1;
private java.awt.TextField result;
/** Initializes the applet NewApplet */
public void init() {
initComponents();
}
private void initComponents() {
panel1 = new java.awt.Panel();
jVf = new java.awt.TextField();
jPztotal = new java.awt.TextField();
button1 = new java.awt.Button();
result = new java.awt.TextField();
setLayout(null);
panel1.setLayout(null);
panel1.setBackground(new java.awt.Color(255, 255, 255));
panel1.add(jVf);
jVf.setBounds(160, 70, 90, 20);
panel1.add(jPztotal);
jPztotal.setBounds(160, 100, 90, 20);
button1.setLabel("Soma");
button1.addActionListener(this);
panel1.add(button1);
button1.setBounds(180, 160, 57, 24);
panel1.add(result);
result.setBounds(160, 130, 90, 20);
add(panel1);
panel1.setBounds(0, 0, 440, 300);
}
public void actionPerformed(java.awt.event.ActionEvent evt) {
vf = Double.parseDouble(jVf.getText());
pztotal = Integer.parseInt(jPztotal.getText());
teq = vf+pztotal;
result.setText(Double.toString(teq));
}
}
Dica: se você TEM de rodar applets em JRE 1.1.8 (JVM da Microsoft), arranje o jvc.exe da Microsoft.
(Existe flutuando na Internet um “Microsoft SDK for Java 4.0” que não está disponível no site da Microsoft.)
Esse compilador é um lixo, mas pelo menos pega esses problemas estúpidos do tipo “parseDouble só apareceu na versão 1.2 do JDK”.
Obs. O arquivo é grande demais para eu lhe mandar via email ou deixá-lo disponível, e de qualquer maneira acho que deve ser fácil achá-lo, já que ele foi disponibilizado de graça pela Microsoft.
Nessa applet, existirão 3 textField, onde eu gostaria de fazer algo similar ao que é a jFormattedTextField do swing, ou seja, após o usuário digitar todo o número, e passar para a próxima textField, o número digitado deve ser formatado a partir de um numberFormat. Isso é para evitar aquelas confusões com vírgula e ponto, e para o usuário ter certeza do número de casas decimais que serão usados no cálculo.
Estou pensando em tentar fazer isso com FocusListener, e depois transformar a string já formatada em Double, ou Integer, por algum meio (qual???). Será que isso vai rodar no microsof VM? Alguém tentaria de maneira diferente?