Welcher Button wurde zuerst gedrückt?

Tacofan

Aktives Mitglied
Hallo Leute,

habt ihr eine Idee wie man das machen könnte welcher Button zuerst gedrückt wurde?

Habe mehrere Buttons und muss schauen welcher zuerst gedrückt wurde, welcher als zweites usw.
 
überleg mal jeder button hat einen listener und was macht dieser???

schau mal, DAS IST KEINE IDEALE LÖSUNG soll nur ein denkanstoss sein OK?!

Java:
package eu.sicusoft.demos;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Enumeration;
import java.util.LinkedList;
import java.util.ListIterator;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class ButtonKlicks {

    private static JButton btnLeft, btnRight, btnUp, btnDown;
    private static LinkedList<String> listButton;
    static int count = 0;
  

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    listButton = new LinkedList<>();
                  
                    btnRight = new JButton("RIGHT");
                    btnRight.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                            ++count;
                            getList(e.getActionCommand());
                        }
                    });
                    btnLeft = new JButton("LEFT");
                    btnLeft.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                            ++count;
                            getList(e.getActionCommand());
                        }
                    });
                    btnUp = new JButton("UP");
                    btnUp.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                            ++count;
                            getList(e.getActionCommand());
                        }
                    });
                    btnDown = new JButton("DOWN");
                    btnDown.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                            ++count;
                            getList(e.getActionCommand());
                        }
                    });
                  
                  
                    JFrame f = new JFrame("ButtonKlickDemo");
                    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    f.getContentPane().add(btnUp, BorderLayout.NORTH);
                    f.getContentPane().add(btnDown, BorderLayout.SOUTH);
                    f.getContentPane().add(btnLeft, BorderLayout.WEST);
                    f.getContentPane().add(btnRight, BorderLayout.EAST);
                    f.pack();
                    f.setVisible(true);
                  
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    private static void getList(String in){
        listButton.add(count+" - "+in);
        System.out.println(listButton.getLast());
    }

}
 
Hey 🙂
Erstell doch eine HashMap mit der Zeit, wann er gedrückt wurde, und den Button. Dann, wenn der Button gedrückt wird füllst du die HashMap mit den Werten und zum Schluss vergleichst du, welcher Button am frühsten geglickt wurde.

Dann kannst du ggf. auch noch angeben, wie groß der Zeitunterschied war.

LG 😀

PS: Wenn das mit dem Zeitunterschied nicht wichtig ist, würde ich auch einfach eine ArrayList machen.
Dann könntest du beim Klicken der ArrayList eine Zahl, Button1 -> 1 usw., hinzufügen und schließlich eine forEach-Schleife machen, um die Reihenfolge auszugeben.
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben