Hallo Leute, bin neu in der GUI Programmierung und habe ein paar Probleme.
Ich möchte ein Programm schreiben das über zwei Buttons (plus und minus button) und ein Label verfügt, das sich zwischen diesen beiden Buttons befindet.
Durch drücken des Plus-Buttons soll ein Zahlenwert erhöht werden, durch drücken des Minus-Button vermindert werden. Das Label soll zur Ausgabe des Wertes dienen.
Hier mein Anfang:
[Java]
package gui.plusminus;
import javax.swing.*;
import java.awt.*;
import javax.swing.*;
public class PlusMinus extends JFrame
{
private int sum;
private JLabel label;
PlusMinus(int min, int max, int amount)
{
super("PlusMinus");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLayout(new GridLayout(0, 1));
JButton plus = new JButton("+");
add(plus);
PlusHandler pl = new PlusHandler();
plus.addActionListener(pl);
label = new JLabel();
add(label);
JButton minus = new JButton("-");
add(minus);
MinusHandler mi = new MinusHandler();
minus.addActionListener(mi);
setLocation(100,50);
setSize(270,90);
setVisible(true);
}
public static void main(String[] args)
{
new PlusMinus(3, 9, 6);
}
}
[/Java]
Das Programm soll über zwei Eventhandler verfügen, die sich um die jeweiligen Buttons kümmern.
[Java]
package gui.plusminus;
import javax.swing.*;
import javax.swing.*;
import java.awt.event.*;
class PlusHandler implements ActionListener
{
public void actionPerformed(ActionEvent evt)
{
System.out.println("Wasser");
//label.setText("Wurst");
}
}
[/Java]
und
[Java]
package gui.plusminus;
import javax.swing.*;
import javax.swing.*;
import java.awt.event.*;
public class MinusHandler implements ActionListener
{
public void actionPerformed(ActionEvent evt)
{
System.out.println("Wurst");
//label.setText("Wurst");
}
}
[/Java]
Es sollen keine inneren Klassen, also auch keine anonymen Klassen, keine static und public-Attribute verwendet werden.
Es soll zudem ein Minimun und Maximum geben, mit dem nachher noch etwas gemacht werden soll, z. B. Buttons sperren, was aber jetzt mal egal ist. Das Label soll durch den Konstruktor am Anfang auf Minimum gesetzt werden.
Die drei Klassen sind in drei unterschiedlichen Dateien abgelegt aber im selben Package.
Das hochzählen bzw. runterzählen hab ich noch nicht implementiert, mein Problem ist, das ich nicht weiß wie ich auf das Label zugreifen soll, weil es in der Plusminus Klasse private ist, und ich in den beiden HandlerKlassen darauf zugreifen muss.
Es ist eine Hausaufgabe, deswegen wäre es nett wenn mir erstmal jemand verbal erklären könnte was ich falsch gemacht hab, bwz was ich verbessern kann, wie es richtig geht.
Vielen Dank im Voraus und viele Grüße,
Kenelope
Ich möchte ein Programm schreiben das über zwei Buttons (plus und minus button) und ein Label verfügt, das sich zwischen diesen beiden Buttons befindet.
Durch drücken des Plus-Buttons soll ein Zahlenwert erhöht werden, durch drücken des Minus-Button vermindert werden. Das Label soll zur Ausgabe des Wertes dienen.
Hier mein Anfang:
[Java]
package gui.plusminus;
import javax.swing.*;
import java.awt.*;
import javax.swing.*;
public class PlusMinus extends JFrame
{
private int sum;
private JLabel label;
PlusMinus(int min, int max, int amount)
{
super("PlusMinus");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLayout(new GridLayout(0, 1));
JButton plus = new JButton("+");
add(plus);
PlusHandler pl = new PlusHandler();
plus.addActionListener(pl);
label = new JLabel();
add(label);
JButton minus = new JButton("-");
add(minus);
MinusHandler mi = new MinusHandler();
minus.addActionListener(mi);
setLocation(100,50);
setSize(270,90);
setVisible(true);
}
public static void main(String[] args)
{
new PlusMinus(3, 9, 6);
}
}
[/Java]
Das Programm soll über zwei Eventhandler verfügen, die sich um die jeweiligen Buttons kümmern.
[Java]
package gui.plusminus;
import javax.swing.*;
import javax.swing.*;
import java.awt.event.*;
class PlusHandler implements ActionListener
{
public void actionPerformed(ActionEvent evt)
{
System.out.println("Wasser");
//label.setText("Wurst");
}
}
[/Java]
und
[Java]
package gui.plusminus;
import javax.swing.*;
import javax.swing.*;
import java.awt.event.*;
public class MinusHandler implements ActionListener
{
public void actionPerformed(ActionEvent evt)
{
System.out.println("Wurst");
//label.setText("Wurst");
}
}
[/Java]
Es sollen keine inneren Klassen, also auch keine anonymen Klassen, keine static und public-Attribute verwendet werden.
Es soll zudem ein Minimun und Maximum geben, mit dem nachher noch etwas gemacht werden soll, z. B. Buttons sperren, was aber jetzt mal egal ist. Das Label soll durch den Konstruktor am Anfang auf Minimum gesetzt werden.
Die drei Klassen sind in drei unterschiedlichen Dateien abgelegt aber im selben Package.
Das hochzählen bzw. runterzählen hab ich noch nicht implementiert, mein Problem ist, das ich nicht weiß wie ich auf das Label zugreifen soll, weil es in der Plusminus Klasse private ist, und ich in den beiden HandlerKlassen darauf zugreifen muss.
Es ist eine Hausaufgabe, deswegen wäre es nett wenn mir erstmal jemand verbal erklären könnte was ich falsch gemacht hab, bwz was ich verbessern kann, wie es richtig geht.
Vielen Dank im Voraus und viele Grüße,
Kenelope