Aplikacja+ poprawki w kodzie

0

Proszę o przerobienie mojego kodu na Applet aby można było wrzucić go na stronę internetową .

 

import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.FlowLayout;
import javax.swing.JButton;
import java.text.DecimalFormat;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
//------------------------------------------------------------------------------
public class BMICalculator extends JFrame implements ActionListener {

    private JTextField bmiF;
    private JButton bmiB;
    private DecimalFormat pattern;
    private JTextField wagaF;
    private JLabel wagaL;
    private JTextField wzrostF;
    private JLabel wzrostL;
   

    public BMICalculator() {
        super("Kalkulator BMI");

        this.initVars();

        this.setFrame();
    }
//--------------------------------------------------------------------------------    
    private void initVars() {
        pattern = new DecimalFormat("#.##");
        bmiB = new JButton("Przelicz!");
        bmiF = new JTextField("0", 5);
        bmiF.setEditable(false);
        wzrostL = new JLabel("Wzrost w CM: ");
        wzrostF = new JTextField(5);
        wagaL = new JLabel("Waga w KG: ");
        wagaF = new JTextField(5);
        bmiB.addActionListener(this);
    }

    private void setFrame() {
        this.setLayout(new FlowLayout());
        this.add(wagaL);
        this.add(wagaF);
        this.add(wzrostL);
        this.add(wzrostF);
        this.add(bmiB);
        this.add(bmiF);
        this.pack();
        this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
        this.setResizable(false);
        this.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) // wyjatek 
    {

        try {

            double weight = Double.parseDouble(this.wagaF.getText());
            double height = Double.parseDouble(this.wzrostF.getText());

            // wzrost centymetrach
            height /= 100;


            double BMI = weight / (height * height);


            String BMIstring = pattern.format(BMI);


            this.bmiF.setText(BMIstring);

        /*catch an exception*/
        } catch (NumberFormatException ex) {
            System.out.println("złe dane");
        }
    }

    public static void main(String[] args) {
        new BMICalculator();
    }
}

0

ja bym zaczął od dziedziczenia po javax.swing.JApplet i zobaczył co się będzie podkreślać...

0

yy zroibłem tak lecz niewiele to pomogło program skompilował się lecz nie było appletu

0

ja bym jeszcze dorzucił przerobienie wszystkich jbuttonów jlabelów na labele i buttony itp.
a w main zrobił tak :

 
public static void main( String[] args )
  {
    BMICalculator p = new BMICalculator();
    Frame fr = new Frame( "Calculator" );
    fr.add( "Center", p );
    fr.pack();
    fr.show();
  }


o i jeszcze zamiast ActionEvent - Event
Nie wiem czy to da radę...ale próbuj :)

0

@remigio, jak nie masz pojęcia o apletach to wstrzymaj się z radami.
@autor, w dużym skrócie: Metoda main() nie ma żadnego znaczenia. To co jest w konstruktorze umieść w metodzie public void init(). Jutro będę miał trochę czasu, jeśli poczekasz, to Ci zrobię z tego aplet.

0

Kod apletu:

import javax.swing.*;
import java.awt.*;
import java.text.DecimalFormat;
import java.awt.event.*;
//----------------------------
public class BMIApplet extends JApplet implements ActionListener
{

    private JTextField bmiF;
    private JButton bmiB;
    private DecimalFormat pattern;
    private JTextField wagaF;
    private JLabel wagaL;
    private JTextField wzrostF;
    private JLabel wzrostL;
    //------------------------
    public void init()
    {
        this.initVars();
        this.setFrame();
    }
    //----------------------------
    private void initVars()
    {
        pattern = new DecimalFormat("#.##");
        bmiB = new JButton("Przelicz!");
        bmiF = new JTextField("0", 5);
        bmiF.setEditable(false);
        wzrostL = new JLabel("Wzrost w cm: ");
        wzrostF = new JTextField(5);
        wagaL = new JLabel("Waga w kg: ");
        wagaF = new JTextField(5);
        bmiB.addActionListener(this);
    }
    //------------------------
    private void setFrame() 
    {
        this.setLayout(new FlowLayout());
        this.add(wagaL);
        this.add(wagaF);
        this.add(wzrostL);
        this.add(wzrostF);
        this.add(bmiB);
        this.add(bmiF);
    }
    //------------------------
    public void actionPerformed(ActionEvent e) // wyjatek
    {
        try
        {
            double weight = Double.parseDouble(this.wagaF.getText());
            double height = Double.parseDouble(this.wzrostF.getText());
            // przeliczenie na metry
            height /= 100;
            double BMI = weight / (height * height);
            String BMIstring = pattern.format(BMI);
            this.bmiF.setText(BMIstring);

        /*catch an exception*/
        } 
        catch (NumberFormatException ex) 
        {
            System.out.println("złe dane");
        }
    }
}

Umieszczenie apletu na stronie:

<applet width="600" height="200" code="BMIApplet"">
</applet>

1 użytkowników online, w tym zalogowanych: 0, gości: 1