(Taschenrechner) jButtons mit gleicher Funktion zusammenfassen

Lord.Djerun

Mitglied
Moin zusammen,

ich habe ein mehr oder weniger großes Problem mit Java.
Wir haben in der Berufsschule grade das Projekt eines Taschenrechners in Netbeans..
Ist aber keine Hausaufgabe, wollte nur auf Arbeit meine Zeit mal sinnvoll nutzen & was für die Schule tun, damit ich im nächsten Block mal wirklich was hab mit dem ich Arbeiten kann:rtfm:
Habe hier im Forum schon die SuFu genutzt & einiges dazu gefunden, nur leider nicht das was mir hilft :noe:

In der Schule hab ich das ganze eigentlich auch schon gehabt (nur halt hingepinselt was der Lehrer gesagt hat & keinen Ton verstanden).
Ich habe die Button 0-9 welche ja alle die selbe Funktion haben, nämlich eine Zahl in mein Textfield eintragen.
Dazu würde ich gerne alle Button zusammenfassen & dann nur über das .getActionCommand die Zahl einfügen.

Das ganze hieß irgendwie jButton = (new) jButton oder so.
Komme nur leider nichtmehr dahinter wie genau ich das schreiben musste.

Ich hoffe ihr könnt mir da helfen :)

Gruß Djerun
 
Zuletzt bearbeitet:

HarleyDavidson

Bekanntes Mitglied
Im Grunde musst du ja einen ActionListener schreiben (danach mal suchen und du wirst fündig) und diesen mit den Zahlen-Buttons registrieren.
Dem ActionListener wird immer ein ActionEvent übergeben, über das man herausfinden kann, welcher Button genau den ActionListener ausgelöst hat.
So musst du nur einen Listener schreiben der für alle Buttons gilt (würde übrigens auch mit den restlichen Buttons funktionieren ;))
 

Lord.Djerun

Mitglied
Im Grunde musst du ja einen ActionListener schreiben (danach mal suchen und du wirst fündig) und diesen mit den Zahlen-Buttons registrieren.

Genau da liegt ja mein Problem..
Java:
private void ColorChangeEntered(java.awt.event.MouseEvent evt) {                                    
      Button0.setBackground(Color.red);
    }

Jetzt setzt er ja bei 0 den Hintergrund auf rot.
Aber ich möchte eben, dass da ungefähr sowas steht:
[Java]private void ColorChangeEntered(java.awt.event.MouseEvent evt) {
jButton.getActionCommand.setBackground(Color.red);
} [/code]

Mir ist auch bewusst, dass beim 2. das ganze wenig sinn macht.
Erstmal möchte ich eben nur diesen jButton deklarieren, dass er alle anderen jButton in meinem Frame beinhaltet..

Ich hoffe man versteht noch was ich will ???:L
 

HarleyDavidson

Bekanntes Mitglied
Ich habe hier mal was kleines runtergeschrieben, sollte selbsterklärend sein:

Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class ButtonTest
{
    public static JLabel label;
    public static void main (String[] args)
    {
        new ButtonTest().work();        
    }

    private void work()
    {
        JButton button1 = new JButton("1");
        JButton button2 = new JButton("2");
        JButton button3 = new JButton("3");
        JButton button4 = new JButton("4");
        JButton button5 = new JButton("5");
        
        button1.addActionListener( new MyButtonListener());
        button2.addActionListener( new MyButtonListener());
        button3.addActionListener( new MyButtonListener());
        button4.addActionListener( new MyButtonListener());
        button5.addActionListener( new MyButtonListener());
        
        label = new JLabel("Es wurde noch kein Button gedrückt.");
        
        JFrame frame = new JFrame("ButtonTest!");
        frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
        frame.setLayout( new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS));
        
        frame.add( button1);
        frame.add( button2);
        frame.add( button3);
        frame.add( button4);
        frame.add( button5);
        frame.add( label);
        
        frame.pack();
        frame.setVisible( true );
    }
    
    public class MyButtonListener implements ActionListener
    {

        @Override
        public void actionPerformed( ActionEvent e )
        {
            JButton pressedButton = (JButton) e.getSource();
            label.setText( "Es wurde Button "+pressedButton.getText()+" gedrückt!");
        }
        
    }
}
 

Lord.Djerun

Mitglied
Soo danke für deine Hilfe, hat mir zwar nicht direkt geholfen, aber den nötigen Anstoß gegeben, damit ich drauf gekommen bin.

Java:
JButton Button = new JButton();
das war genau die Zeile die ich gesucht hab :oops:
 

Lord.Djerun

Mitglied
im Endeffekt hat mir "nur" ein Import gefehlt, warum auch immer :bahnhof:
Aber jetzt kann ich mich wenigstens gekonnt mit den ActionCommands rumärgern wie ich das ja vorhatte :rtfm:
 

Ähnliche Java Themen

Neue Themen


Oben