Hallo, ich habe in einer Klasse Rechen_Gui ein jTextfield1 und 2 Buttons erstellt. Außerdem eine Klasse Rechenverfahren, die Rechenoperationen enthält (im Moment erst die Funktion public int hochzaehlen() ). Ich möchte die Operationen in diese Klasse auslagern und möglichst wenig in der Klasse Rechen_Gui tun.
Bei Betätigung des Buttons wird der Inhalt des Textfeldes ausgelesen, in der Klassenvariable zahl gespeichert und an die Methode des Rechenverfahren-Objektes rV übergeben. Die Methode soll den hochgezählten Wert zurückgeben. Der Wert soll dann im jTextfield1 ausgegeben werden. Leider klappt das nicht - ich vermute, dass mein Zugriff über die Referenz rV nicht erfolgreich ist.
Wie kann ich in der Klasse Rechen_Gui die Methoden der Klasse Rechenverfahren benutzen?
hier noch die andere Klasse:
ein Auszug der Fehlermeldungen...
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Rechen_Gui.jButton1_plus1_ActionPerformed(Rechen_Gui.java:69)
at Rechen_Gui$1.actionPerformed(Rechen_Gui.java:45)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
Ich habe so lange rumprobiert und steige da nicht durch...
Kann hier jdn. weiterhelfen?
Daniel
Bei Betätigung des Buttons wird der Inhalt des Textfeldes ausgelesen, in der Klassenvariable zahl gespeichert und an die Methode des Rechenverfahren-Objektes rV übergeben. Die Methode soll den hochgezählten Wert zurückgeben. Der Wert soll dann im jTextfield1 ausgegeben werden. Leider klappt das nicht - ich vermute, dass mein Zugriff über die Referenz rV nicht erfolgreich ist.
Wie kann ich in der Klasse Rechen_Gui die Methoden der Klasse Rechenverfahren benutzen?
Java:
public class Rechen_Gui extends JFrame {
// Anfang Attribute
private JTextField jTextField1 = new JTextField();
private JButton jButton1_plus1 = new JButton();
private JButton jButton2_minus1 = new JButton();
private JLabel lZahlEingeben = new JLabel();
private Rechenverfahren rV = new Rechenverfahren();
public int zahl=0;
// Ende Attribute
public Rechen_Gui (String title) {
super (title);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
int frameWidth = 300;
int frameHeight = 300;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
Container cp = getContentPane();
cp.setLayout(null);
// Anfang Komponenten
jTextField1.setBounds(96, 64, 81, 41);
cp.add(jTextField1);
jButton1_plus1.setBounds(32, 144, 81, 41);
jButton1_plus1.setText("jButton1_plus1");
jButton1_plus1.setMargin(new Insets(2, 2, 2, 2));
jButton1_plus1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton1_plus1_ActionPerformed(evt);
}
});
cp.add(jButton1_plus1);
jButton2_minus1.setBounds(168, 144, 81, 41);
jButton2_minus1.setText("jButton2_minus1");
jButton2_minus1.setMargin(new Insets(2, 2, 2, 2));
jButton2_minus1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton2_minus1_ActionPerformed(evt);
}
});
cp.add(jButton2_minus1);
lZahlEingeben.setBounds(96, 32, 81, 25);
lZahlEingeben.setText("zahlEingeben");
cp.add(lZahlEingeben);
// Ende Komponenten
setResizable(false);
setVisible(true);
}
// Anfang Methoden
public void jButton1_plus1_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
zahl= Integer.getInteger(jTextField1.getText());
jTextField1.setText(String.valueOf(rV.hochzaehlen(zahl)));
}
public void jButton2_minus1_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
}
// Ende Methoden
public static void main(String[] args)
{
new Rechen_Gui("Rechen_Gui");
}
}
}
hier noch die andere Klasse:
Code:
public class Rechenverfahren {
public Rechenverfahren() {
}
// Anfang Methoden
public int hochzaehlen(int zahl){
zahl= zahl+1;
return zahl;
}
public int herunterzaehlen(int z)
{
z=z-1;
return z;
ein Auszug der Fehlermeldungen...
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Rechen_Gui.jButton1_plus1_ActionPerformed(Rechen_Gui.java:69)
at Rechen_Gui$1.actionPerformed(Rechen_Gui.java:45)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
Ich habe so lange rumprobiert und steige da nicht durch...
Kann hier jdn. weiterhelfen?
Daniel
Zuletzt bearbeitet: