Wie kann Java auf ein User-Input warten?

Guten Tag,

ich programmiere gerade ein kleines Java-Projekt.

Dort hat bis jetzt auch alles geklappt, doch nun weiß ich nicht mehr weiter.

Ich habe für den Start meines Programms dieses GUI erzeugt:

Wie da ja schon steht, soll der User 'W' drücken, damit das Spiel anfängt. Doch ich weiß nicht, wie ich das programmieren kann. Ich habe schon eine Klasse (KeyHandler) angelegt, die KeyListener implementiert und die ich schon meinem Programm hinzugefügt habe, doch passieren tut dabei nichts.

Ich habe auch schon eine Ahnung warum: Die Variable 'commands.isRunning' wird direkt überprüft (und danach nicht mehr) und deshalb der If-Teil überschprungen. Wie kann jetzt Java auf einen User-Input warten, damit die Variable nicht sofort überprüft wird?

Hier ist meine Draw Klasse:

(commands.isRunning ist gerade noch false, soll aber durch das 'W' true werden. Die Methode, die dadurch aufgerufen werden soll, steht in der Klasse Commands)

public class Draw extends JPanel implements Variables {

    Commands commands = new Commands();
    KeyHandler keyHandler = new KeyHandler();

    Player player = new Player();
    Donut donut = new Donut();

    Draw() {
        this.addKeyListener(keyHandler);
        this.setPreferredSize(new Dimension(SCREEN_WIDTH, SCREEN_HEIGHT));
        this.setBackground(Color.black);
        this.setFocusable(true);
    }

    public void paintComponent(Graphics g) {
        super.paintComponent(g);

        commands.printStartText(g);
        
        if (commands.isRunning() == true) {

            // Draw Grid
            for (int i = 0; i < SCREEN_HEIGHT / UNIT_SIZE; i++) {
                g.drawLine(i * UNIT_SIZE, 0, i * UNIT_SIZE, SCREEN_HEIGHT);
                g.drawLine(0, i * UNIT_SIZE, SCREEN_HEIGHT, i * UNIT_SIZE);
            }

            // Place Player
            player.placePlayer(g);

            // Place Donut
            donut.placeDonut(g);

            // Place Barrier

            // Place Gadget

            // Set Default Color
            g.setColor(Color.darkGray);

        }
    }
}

Und hier die KeyHandler Klasse:

public class KeyHandler implements KeyListener {

    Commands commands = new Commands();

    @Override
    public void keyTyped(KeyEvent e) {
        // TODO Auto-generated method stub
    }

    @Override
    public void keyPressed(KeyEvent e) {

        switch (e.getKeyCode()) {
        case KeyEvent.VK_W:
            commands.startGame();
            break;

        case KeyEvent.VK_A:

            break;
        case KeyEvent.VK_S:

            break;
        case KeyEvent.VK_D:

            break;
        }
    }

    @Override
    public void keyReleased(KeyEvent e) {
        // TODO Auto-generated method stub

    }
}

Auch habe ich schon 'System.in.read' hinter 'commands.printStartText(g);' platziert, doch da wurde dann nur ein weißes Bild angezeigt.

Ich hoffe ihr könnt mir helfen!

Schon mal vielen Dank im voraus.

Bild zum Beitrag
Computer, Technik, programmieren, Java, Informatik, GUI
Wie mit Timeshift BS neu installieren?

Guten Nachmittag!

Ich verwende seit Anfang 2020 Linux, ein BS von dem ich sehr überzeugt bin. Ich möchte bald mal eine neue Festplatte in meinen DELL Latitude E6520 besorgen, die ich schon besorgt habe (500 GB Samsung SSD), momentan ist eine 640 GB Samsung HDD verbaut, die schon 10 Jahre alt ist und hin und wieder unschöne Geräusche von sich gibt. Seit einigen Wochen höre ich bspw. beim Ausschalten ein lautes Klicken, welches ich auf den Lesekopf zurückführe. Hin und wieder hört man auch im Betrieb ein lautes Geräusch.

Ich habe Timeshift bei Linux Mint 20.2 Uma (Anfangs 20.1 Ulyssa) von Anfang an in Verwendung (habe es bei jedem Systemstart). Das Problem ist: Ich weiß zwar, es erstellt BackUps, sichert Daten,...

Als ich noch Nur-Windows-Nutzer war, hätte ich die Festplatte aus-, die neue eingebaut und dann einfach die alte mit einem USB-SATA (ja so einen hab ich) Stecker angeschlossen und die Daten kopiert. Aber..

1.) Linux verschlüsselt ja die Daten (zumindest die persönlichen) soweit ich weiß...so wie ein gesperrtes Handy, wenn man es an den Rechner ansteckt.

2.) Es muss doch einfacher gehen. Ich meine..wozu verwende ich Timeshift, wenn ich nicht mal richtig weiß, wie man Daten wiederherstellt?

Zu meiner Frage/Bitte: Könnte mir bitte Jemand erklären, wie ich auf schnellstem/einfachsten Wege die neue Festplatte einbauen und dann nachher gleich wieder Linux mit all meinen Daten+Einstellungen starten könnte. (Sprich: Was muss ich bei der Neuinstallation auf die neue Festplatte machen, damit alles wieder so wird wie vorher)

Entschuldigt, dass die Frage so lang ist. Danke im Voraus!

Computer, Betriebssystem, Technik, Linux, Rechner, Linux Mint, Technologie
NFT wie Bitcoin nur primitiver?

Hallo Freunde.

Ich wollte mal eure Meinung zu NFT hören, bzw wissen, was ihr dazu sagt.

Ich finde, dass NFT in unserer inflationsgesegneten, kapitalistischen Welt mittlerweile ein noch dümmerer Weg der Wertschöpfung ist.

Der tatsächliche materielle Wert entspricht eigentlich Null, wohingegen früher Tauschgeschäfte zu Geld und anderen Währungsformen führte.

Wobei immer wieder der Materielle Wert der Währung gesunken ist.

Nun finde ich es äußerst Absurd, Währungen ihres materiellen Wertes Komplett zu entziehen, denn was wenn Hyperinflation, was wenn Wirtschaftskrise…?

Zwar bezweifle ich, NFT‘s als Währung bezeichnen zu können, jedoch finde ich es tatsächlich sehr abstrakt, eine Reelle Währung für nichteinmal Luft, einzutauschen.

Der Wert entsteht nur durch die subjektive Auffassung des Wertempfindens eines jeden einzelnen, wobei dieses Empfindungsvermögen meiner Meinung nach beim modernen Menschen gestört ist.

Ich vergleiche das sehr gerne mit einem anderen abstrakten Beispiel - dass ein bestimmtes Wort aus dem Mund eines bestimmten Menschen gekauft werden kann, indem er es ausspricht, und es dann demjenigen gehört, der es zugeflüstert bekommt. Jeder will wissen was es ist, jeder will es haben, muss aber Unsummen für dieses Wort zahlen.

Das geht in meinen Kopf nicht rein - Gemälde sind wenigstens einmalige Kunstwerke die es kein zweites Mal gibt. Von einem NFT erstellt man einen Screenshot und fertig.

Irgendwie finde ich das Krank.

Freue mich auf eure Antworten.

LG

Computer, Technik, Geld, NFT, Wirtschaft und Finanzen, NFT system

Meistgelesene Beiträge zum Thema Computer