Cześć, Java nie jest moją mocną stroną. Mam problem, gdyż nie wiem jak sprawdzić w funkcji oblicz() czy pole Checkboxa jest zaznaczone. getState() nie działa.
Dodam, że obliczenia na razie nie mają większego sensu, gdyż dopiero testuję działanie.
Chodzi o linijkę 126. Wrzucam kod:
/**
*
*/
package dzielo;
import java.awt.*;
import java.awt.event.*;
/**
* @author Piotrek
*
*/
public class Dzielo extends Frame implements WindowListener, ActionListener, ItemListener{
Label imie, nazwisko, ilosc_przepracowanych_godzin, stawka_godzinowa, koszt_uzyskania_przychodu;
Label wysokosc_placy_brutto, wysokosc_podatku, wysokosc_placy_netto, wynik1, wynik2, wynik3;
TextField toPole1, toPole2, toPole3, toPole4;
Button toOblicz, toKoniec;
CheckboxGroup grupa;
Checkbox dwadziescia_procent, piecdziesiat_procent;
/**
*
*/
public Dzielo() {
// TODO Auto-generated constructor stub
super("Dzielo");
this.setSize(900, 750);
setVisible(true);
repaint();
this.addWindowListener(this);
this.setLayout(null);
imie = new Label("Imie:");
imie.setBounds(120, 100, 180, 30);
add(imie);
toPole1 = new TextField();
toPole1.setBounds(300, 100, 180, 30);
add(toPole1);
nazwisko = new Label("Nazwisko:");
nazwisko.setBounds(120, 150, 180, 30);
add(nazwisko);
toPole2 = new TextField();
toPole2.setBounds(300, 150, 180, 30);
add(toPole2);
ilosc_przepracowanych_godzin = new Label("Ilosc przepracowanych godzin:");
ilosc_przepracowanych_godzin.setBounds(120, 200, 180, 30);
add(ilosc_przepracowanych_godzin);
toPole3 = new TextField();
toPole3.setBounds(300, 200, 180, 30);
add(toPole3);
stawka_godzinowa = new Label("Stawka godzinowa:");
stawka_godzinowa.setBounds(120, 250, 180, 30);
add(stawka_godzinowa);
toPole4 = new TextField();
toPole4.setBounds(300, 250, 180, 30);
add(toPole4);
koszt_uzyskania_przychodu = new Label("Koszt uzyskania przychodu:");
koszt_uzyskania_przychodu.setBounds(120, 300, 180, 30);
add(koszt_uzyskania_przychodu);
CheckboxGroup grupa = new CheckboxGroup();
Checkbox dwadziescia_procent = new Checkbox("20%", grupa, true);
dwadziescia_procent.setBounds(300, 300, 50, 30);
add(dwadziescia_procent);
Checkbox piecdziesiat_procent = new Checkbox("50%", grupa, false);
piecdziesiat_procent.setBounds(350, 300, 50, 30);
add(piecdziesiat_procent);
wysokosc_placy_brutto = new Label("Wysokosc placy brutto:");
wysokosc_placy_brutto.setBounds(120, 350, 180, 30);
add(wysokosc_placy_brutto);
wynik1 = new Label("wynik1");
wynik1.setBounds(300, 350, 180, 30);
add(wynik1);
wysokosc_podatku = new Label("Wysokosc podatku:");
wysokosc_podatku.setBounds(120, 400, 180, 30);
add(wysokosc_podatku);
wynik2 = new Label("wynik2");
wynik2.setBounds(300, 400, 180, 30);
add(wynik2);
wysokosc_placy_netto = new Label("Wysokosc placy netto:");
wysokosc_placy_netto.setBounds(120, 450, 180, 30);
add(wysokosc_placy_netto);
wynik3 = new Label("wynik3");
wynik3.setBounds(300, 450, 180, 30);
add(wynik3);
toOblicz = new Button("Oblicz");
add(toOblicz);
toOblicz.setBounds(500, 500, 60, 40);
toKoniec = new Button("Koniec");
add(toKoniec);
toKoniec.setBounds(500, 550, 60, 40);
toKoniec.setSize(60, 40);
toOblicz.addActionListener(this);
toKoniec.addActionListener(this);
dwadziescia_procent.addItemListener(this);
piecdziesiat_procent.addItemListener(this);
}
public void oblicz() {
double liczba1, liczba2, iloczyn;
liczba1 = Double.parseDouble(toPole3.getText());
liczba2 = Double.parseDouble(toPole4.getText());
if (dwadziescia_procent.getState())
iloczyn = liczba1 * liczba2 * 2;
else
iloczyn = liczba1 * liczba2;
wynik1.setText(String.valueOf(iloczyn));
}
public void actionPerformed(ActionEvent e) {
if ((Button)e.getSource() == toOblicz)
{
oblicz();
}
if((Button)e.getSource() == toKoniec)
{
System.exit(0);
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Dzielo();
}
public void windowActivated(WindowEvent e) {
}
public void windowClosed(WindowEvent e) {
}
public void windowClosing(WindowEvent e) {
System.exit(0);
}
public void windowDeactivated(WindowEvent e) {
}
public void windowDeiconified(WindowEvent e) {
}
public void windowIconified(WindowEvent e) {
}
public void windowOpened(WindowEvent e) {
}
public void itemStateChanged(ItemEvent e) {
}
}
Błędy jakie mi wywala to:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at dzielo.Dzielo.oblicz(Dzielo.java:127)
at dzielo.Dzielo.actionPerformed(Dzielo.java:138)
at java.awt.Button.processActionEvent(Unknown Source)
at java.awt.Button.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)