Hvorfor kører dette ikke??
Til min store frustration kører dette ikke... jeg mistede klassen i nat under flere kørselstests. Nu har jeg kopieret koden ind fra et andet indlæg jeg lavede den anden dag og modificeret den så den burde være up-to-date... men den vil ikke køre!! Nogen der kan løse det, og evt. komme med et forslag til en bedre GUI?import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.text.NumberFormat;
public class BMI extends Applet implements ActionListener {
//Deklarationer af instansvariabler
private TextField højdeFelt;
private TextField vægtFelt;
Label meddel1, meddel2, omdømme;
private Image vægtklasse;
Panel hp, vp, mp;
//Panel lp = new Panel(); /// instancevariable i stedet for
//Panel vp = new Panel();
//Panel mp = new Panel();
public void init () { //Initialiserer GUI
setLayout(new GridLayout(3,1)); //Som LayoutManager bruger vi GridLayout
setBackground(new Color(51,51,51)); //Sort
setForeground(new Color(255,153,0)); //Orange
højdeFelt = new TextField(4);
vægtFelt = new TextField(3);
hp.add(new Label("Højde i meter (fx 1.82):"));
hp.add(højdeFelt);
hp = new Panel();
vp.add(new Label("Vægt i kilo:"));
vp.add(vægtFelt);
vp = new Panel();
meddel1 = new Label("Skriv din højde og vægt i tekstfelterne!"); // Meddel1+2 føjes til midterpanel for at lave et blikfang
meddel2 = new Label("BMI-værdien og et udsagn udregnes og udskrives");
mp = new Panel();
højdeFelt.addActionListener(this); // Ved tilføjelse af Action Listener, tildeles Enter-tasten automatisk denne
vægtFelt.addActionListener(this);
mp.add(meddel1); mp.add(meddel2);
add(hp); add(vp); add(mp);
play(getDocumentBase(),"BlueDust.au"); //Afspil lyd ved opstart
//vægtklasse = getImage(getDocumentBase(),"nok1.jpg");
//new Figurer(JOptionPane.getFrameForComponent(this), true).show();
new Figurer(new javax.swing.JFrame(), true).show(); //foretager et kald til Java SWING-klassen om at oprette et JFrame objekt
}
public void actionPerformed (ActionEvent e) {
double højde =0, vægt = 0;
Graphics g = vp.getGraphics();
vp.update(g);
int x = vp.getWidth() - 80;
int y = ( vp.getHeight() / 2 ) - 25;
g.setColor(Color.red);
try {
højde = Double.valueOf(højdeFelt.getText()).doubleValue();
vægt = Double.valueOf(vægtFelt.getText()).doubleValue();
double bmi = vægt/(højde*højde);
String omdømme = "";
if (bmi < 18.5) {
omdømme = "undervægtig";
meddel2.setForeground(Color.red); //Undervægtig: rød
play(getDocumentBase(),"BlueDust.au");
}
if (bmi > 18.4 && bmi < 25) {
meddel2.setForeground(Color.green); //Normalvægt: grøn
omdømme = "normalvægt";
g.fillRect(x, y, 50, 50);
}
if (bmi >= 25 && bmi < 30) {
omdømme = "overvægtig";
meddel2.setForeground(Color.yellow); //Overvægtig: gul
play(getCodeBase(),"BlueDust.au"); //afspil lyd ved overvægtighed
g.fillOval(x, y, 25, 50);
}
else {
omdømme = "SVÆRT overvægtig";
meddel2.setForeground(Color.red); //Svært overvægtig: rød
// omdome.setForeground(new Color(255,0,0)); //Farv rød
g.fillOval(x, y, 50, 50);
}
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(1);
meddel1.setText("Dit BMI er " + nf.format(bmi));
meddel2.setText("hvilket betyder " + omdømme); //udskriv omdømmet
}
//Tag højde for hvis brugeren har indtastet bogstaver i stedet for tal, eller helt undlader at taste i felterne
catch (NumberFormatException ex) {
//Graphics g = vp.getGraphics();
vp.update(g);
meddel1.setText("Fejlagtig indtastning, forsøg igen!");
meddel2.setText("");
}
}
}
