[Java Swing] Bildschirmübergang durch CardLayout

Ich möchte eine GUI erstellen, mit der Sie den Bildschirm mit einer Schaltfläche wechseln können! !!

Ab Juli 2020 suchte ich nach einer Software, die mit Java Swing entwickelt wird, um eine Funktion zu haben, die den Bildschirm wechselt (den Bildschirm wechselt), wenn eine Schaltfläche wie eine Website gedrückt wird. Mit einer Funktion namens CardLayout wird der Bildschirm jedoch angezeigt. Es scheint, dass ein Übergang möglich ist, deshalb möchte ich ihn zusammenfassen.

Umgebung


Definieren Sie JFrame

Definieren Sie zunächst den grundlegenden JFrame.

PanelChangeTest.java


import javax.swing.*;

public class PanelChangeTest extends JFrame{

    public static void main(String[] args) {
        PanelChangeTest frame = new PanelChangeTest();
        frame.setTitle("Bildschirmübergangstest");
        frame.setSize(900, 600);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

Ich werde es versuchen.

javac PanelChangeTest.java && java PanelChange

PanelChangeTest001.png

Ich konnte es sicher ausführen.


Fügen Sie Schaltflächen für Bedienfelder und Bildschirmübergänge hinzu

Fügen Sie dann ein Panel hinzu. Das Verfahren ist wie folgt

PanelChangeTest.java


import java.awt.*;
import javax.swing.*;

public class PanelChangeTest extends JFrame{

    JPanel cardPanel;
    CardLayout layout;

    public static void main(String[] args) {
        PanelChangeTest frame = new PanelChangeTest();
        frame.setTitle("Bildschirmübergangstest");
        frame.setSize(900, 600);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

    public PanelChangeTest() {
        
        // panel01
        JPanel panel01 = new JPanel();
        JButton btn01 = new JButton("panel01");
        panel01.add(btn01);

        // panel02
        JPanel panel02 = new JPanel();
        panel02.setBackground(Color.DARK_GRAY);
        JButton btn02 = new JButton("panel02");
        panel02.add(btn02);

        // panel03
        JPanel panel03 = new JPanel();
        panel03.setBackground(Color.LIGHT_GRAY);
        JButton btn03 = new JButton("panel03");
        panel03.add(btn03);

        //Panel für Kartenlayout
        cardPanel = new JPanel();
        layout = new CardLayout();
        cardPanel.setLayout(layout);

        cardPanel.add(panel01, "panel01");
        cardPanel.add(panel02, "panel02");
        cardPanel.add(panel03, "panel03");

        //Kartenbewegungstaste
        JButton firstButton = new JButton("panel01");
        JButton secondButton = new JButton("panel02");
        JButton thirdButton = new JButton("panel03");

        JPanel btnPanel = new JPanel();
        btnPanel.add(firstButton);
        btnPanel.add(secondButton);
        btnPanel.add(thirdButton);

        //Platzieren Sie die Schaltfläche cardPanel und Kartenbewegung in JFrame
        Container contentPane = getContentPane();
        contentPane.add(cardPanel, BorderLayout.CENTER);
        contentPane.add(btnPanel, BorderLayout.PAGE_END);
    }
}

Ich werde es versuchen.

javac PanelChangeTest.java && java PanelChange

PanelChangeTest002.png

Das hinzugefügte Bedienfeld und die Schaltfläche werden angezeigt. Zu diesem Zeitpunkt können Sie den Bildschirm jedoch nicht ändern, indem Sie die Taste am unteren Bildschirmrand drücken.


Implementierung der Bildschirmübergangsfunktion

Fügen Sie eine Bildschirmübergangsfunktion hinzu, damit der Bildschirm durch Drücken der Taste am unteren Bildschirmrand umgeschaltet werden kann.

--Write implementiert ActionListener im Klassennamen, um das Verhalten beim Klicken auf die Schaltfläche zu steuern. --Schreiben Sie .addActionListener (this); und .setActionCommand (" Panel-Name "); für jede der drei Schaltflächen, um den Schaltflächen Funktionen hinzuzufügen.

PanelChangeTest.java


import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class PanelChangeTest extends JFrame implements ActionListener{

    JPanel cardPanel;
    CardLayout layout;

    public static void main(String[] args) {
        PanelChangeTest frame = new PanelChangeTest();
        frame.setTitle("Bildschirmübergangstest");
        frame.setSize(900, 600);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

    public PanelChangeTest() {
        
        // panel01
        JPanel panel01 = new JPanel();
        JButton btn01 = new JButton("panel01");
        panel01.add(btn01);

        // panel02
        JPanel panel02 = new JPanel();
        panel02.setBackground(Color.DARK_GRAY);
        JButton btn02 = new JButton("panel02");
        panel02.add(btn02);

        // panel03
        JPanel panel03 = new JPanel();
        panel03.setBackground(Color.LIGHT_GRAY);
        JButton btn03 = new JButton("panel03");
        panel03.add(btn03);

        //Panel für Kartenlayout
        cardPanel = new JPanel();
        layout = new CardLayout();
        cardPanel.setLayout(layout);

        cardPanel.add(panel01, "panel01");
        cardPanel.add(panel02, "panel02");
        cardPanel.add(panel03, "panel03");

        //Kartenbewegungstaste
        JButton firstButton = new JButton("panel01");
        firstButton.addActionListener(this);
        firstButton.setActionCommand("panel01");

        JButton secondButton = new JButton("panel02");
        secondButton.addActionListener(this);
        secondButton.setActionCommand("panel02");

        JButton thirdButton = new JButton("panel03");
        thirdButton.addActionListener(this);
        thirdButton.setActionCommand("panel03");

        JPanel btnPanel = new JPanel();
        btnPanel.add(firstButton);
        btnPanel.add(secondButton);
        btnPanel.add(thirdButton);
     
        //Platzieren Sie die Schaltfläche cardPanel und Kartenbewegung in JFrame
        Container contentPane = getContentPane();
        contentPane.add(cardPanel, BorderLayout.CENTER);
        contentPane.add(btnPanel, BorderLayout.PAGE_END);
    }

    public void actionPerformed(ActionEvent e) {
        String cmd = e.getActionCommand();

        layout.show(cardPanel, cmd);
    }
}

Ich werde es versuchen.

javac PanelChangeTest.java && java PanelChange

PanelChangeTest003.png

Der gleiche Bildschirm wie zuvor wurde angezeigt. Klicken Sie unten auf dem Bildschirm auf die Schaltfläche "panel02".

PanelChangeTest004.png

Auf panel02 umgeschaltet. Klicken Sie ebenfalls auf "Panel 03".

PanelChangeTest005.png

Auf panel03 umgeschaltet. Die Schaltfläche am oberen Bildschirmrand dient zur Vereinfachung der Anzeige des Bedienfeldnamens, sodass dieser Code keine Funktion als Schaltfläche hat.


Zusammenfassung

Dieses Mal habe ich den Bildschirmübergang der GUI mit Java Swing getestet.

Es war nur ein Test, also war es so einfach wie 3 Methoden in einer Datei. Praktisch sein

Ich hielt es für notwendig, hochgradig anpassbare Klassenmethoden unter Wahrung der Lesbarkeit zu konfigurieren.


Referenzseite

Lassen Sie uns programmieren: Verwenden wir Swing

Recommended Posts

[Java Swing] Bildschirmübergang durch CardLayout
Bildschirmübergang mit Swing, Java
[Android Studio] Bildschirmübergang über die Schaltfläche [Java]
Bildschirmübergangsmethode
JavaFX8-Bildschirmübergang
Java Swing, SWT, JavaFX
Android-Entwicklung ~ Bildschirmübergang (Absicht) ~
Objektorientierte Zusammenfassung von Anfängern (Java)
Bildschirmübergang Memorandum zur Informationsübertragung
Animationseinstellungen zum Zeitpunkt des Bildschirmübergangs