JavaBeans problem z getterami i setterami

0

witam, mam do zrobienia prosty komponent w technologii JavaBeans. Komponencik działa aaale nie mam pojecia jak zrobic gettery i settery dzieki ktorym moglbym modyfikowac wlasciwosci poszczegolnych Jbuttonow, JLabelow itd. Prosze o pomoc.

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.;
import javax.swing.
;

/**
*

  • @Author Admin
    */
    public class Bmi extends JPanel implements Serializable
    {
    private float waga=0;
    private float wzrost=0;
    private float wiek=0;
    private float BMI=0;
    private int BMI1=0;
    private int wybor=0;
    private float zaw_tluszczu=0;
    private int zaw_tluszczu1=0;

    private Color background = new Color(255,255,255); // colour of background

    //buttons
    private JLabel podajWage = new JLabel("Podaj wagę [kg]: ");
    JTextField wprowadzWage = new JTextField(20);
    JLabel podajWzrost = new JLabel("Podaj wzrost [cm]: ");
    JTextField wprowadzWzrost = new JTextField(20);
    JLabel podajWiek = new JLabel("Wiek: ");
    JTextField wprowadzWiek = new JTextField(20);
    JLabel plec = new JLabel("Płeć: ");
    JComboBox wyborPlci = new JComboBox();
    JButton oblicz = new JButton("Oblicz");
    JLabel bmi = new JLabel("BMI: ");
    JTextArea wynikBMI = new JTextArea();
    JLabel zawTl = new JLabel("Zawartość tłuszczu: ");
    JTextArea wynikZawTl = new JTextArea();
    JTextArea wyswietlacz = new JTextArea();

    public Bmi()
    {
    setLayout(null);
    setSize(200,200);

     podajWage.setBounds(10, 60, 110, 20);
     add(podajWage);
     wprowadzWage.setBounds(120, 62, 80, 20);
     add(wprowadzWage);
     podajWzrost.setBounds(10,110,110,20);
     add(podajWzrost);
     wprowadzWzrost.setBounds(120, 110, 80, 20);
     add(wprowadzWzrost);
     podajWiek.setBounds(10,160,110,20);
     add(podajWiek);
     wprowadzWiek.setBounds(120,160,80,20);
     add(wprowadzWiek);
     plec.setBounds(10, 210, 100, 20);
     add(plec);
     wyborPlci.setBounds(120, 210, 80, 20);
     wyborPlci.addItem("kobieta");
     wyborPlci.addItem("mężczyzna");
     add(wyborPlci);
     oblicz.setBounds(10, 260, 100, 20);
     add(oblicz);
     bmi.setBounds(300, 60, 110, 20);
     add(bmi);
     wynikBMI.setBounds(330, 60, 80, 20);
     wynikBMI.setEditable(false);
     add(wynikBMI);
     zawTl.setBounds(450, 60, 120, 20);
     add(zawTl);
     wynikZawTl.setBounds(580,60,80,20);
     wynikZawTl.setEditable(false);
     add(wynikZawTl);
     wyswietlacz.setBounds(300, 100, 364, 200);
     wyswietlacz.setEditable(false);
     add(wyswietlacz);
     setVisible(true);
    
    oblicz.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent e)
        {
            getBMI_obliczaj_bmi();
        }
    });
    

    }

    public void getBMI_obliczaj_bmi()
    {
    ...

    }

}

0

Użyj jakiegoś IDE (np. Eclipse), to ci samo wygeneruje gettery i settery.
Przykład

public float getWaga()
{
    return waga;
}
public void setWaga(float waga)
{
    this.waga=waga;
}
0

no ok, to sie tyczy prywatnego pola, ale co z przyciskami ?? : > jak za pomoca setterow i getterow edytować ich wlasciwosci ?? niby mam NetBeansa, generowanie setXXX() i getXXX() rozwiaze caly problem ?? : > chyba nie do konca..

0

zła wiadomość, to nie jest JavaBean. Zadaniem ziarna jest separacja danych i sposobu ich wyświetlania. Komponent powinien być tak stworzony, że można go użyć wiele razy bez konieczności ingerencji w jego kod.

public class BmiBean implements Serializable{
    private float waga=0;
    private int wzrost=0;
    private int wiek=0;
    private float bmi=0;   
// metody get i set

//konstruktor z Serializable:
   public BmiBean(){
      this(0,0.,0);
   }
   public BmiBean(int wiek, float waga, int wzrost){
// ustawiasz pola
   }

// metoda biznesowa
   public float obliczBMI(){
     // oblicza jeżeli jeszcze nie obliczał wcześniej lub jeżeli zmieniły się parametry i zapamiętuje!
     return bmi;
   }
}
0

dzieki za podpowiedz, zmienie budowe by bylo ok, ale wciaz nie wiem jak zrobic te settery : (

0
public class SimpleBean implements Serializabe{
  private int i;

  public void setI(int i){
     this.i = i
  }
// reszta kodu
}

W twoim przypadku setter powinien jeszcze oznaczać obiekt jako dirty (dodatkowe pole boolean), w celu przeliczenia BMI od nowa.

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