En juillet 2020, je recherchais un logiciel en cours de développement utilisant Java Swing pour avoir une fonction qui transite l'écran (change l'écran) lorsqu'un bouton est enfoncé comme un site Web, mais en utilisant une fonction appelée CardLayout, l'écran est affiché. Il semble que la transition soit possible, alors je voudrais la résumer.
Tout d'abord, définissez le JFrame de base.
PanelChangeTest.java
import javax.swing.*;
public class PanelChangeTest extends JFrame{
public static void main(String[] args) {
PanelChangeTest frame = new PanelChangeTest();
frame.setTitle("Test de transition d'écran");
frame.setSize(900, 600);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Je vais essayer.
javac PanelChangeTest.java && java PanelChange
J'ai pu l'exécuter en toute sécurité.
Ajoutez ensuite un panneau. La procédure est la suivante
--Définissez trois panneaux (panel01, panel02, panel03) pour la transition d'écran. --Définissez et stockez le panneau parent (cardPanel) qui stocke les trois panneaux. --Définissez un bouton pour la transition d'écran.
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("Test de transition d'écran");
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);
//Panneau pour la disposition des cartes
cardPanel = new JPanel();
layout = new CardLayout();
cardPanel.setLayout(layout);
cardPanel.add(panel01, "panel01");
cardPanel.add(panel02, "panel02");
cardPanel.add(panel03, "panel03");
//Bouton de déplacement de la carte
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);
//Placez le cardPanel et le bouton de déplacement de la carte dans JFrame
Container contentPane = getContentPane();
contentPane.add(cardPanel, BorderLayout.CENTER);
contentPane.add(btnPanel, BorderLayout.PAGE_END);
}
}
Je vais essayer.
javac PanelChangeTest.java && java PanelChange
Le panneau et le bouton ajoutés s'affichent. Cependant, à ce stade, vous ne pouvez pas changer d'écran en appuyant sur le bouton en bas de l'écran.
Ajoutez une fonction de transition d'écran pour que l'écran puisse être changé en appuyant sur le bouton en bas de l'écran.
.addActionListener (this);
et .setActionCommand (" panel name ");
pour chacun des trois boutons pour ajouter des fonctionnalités aux boutons.
--ʻActionPerformed () `définit pour passer à l'écran correspondant à chaque bouton.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("Test de transition d'écran");
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);
//Panneau pour la disposition des cartes
cardPanel = new JPanel();
layout = new CardLayout();
cardPanel.setLayout(layout);
cardPanel.add(panel01, "panel01");
cardPanel.add(panel02, "panel02");
cardPanel.add(panel03, "panel03");
//Bouton de déplacement de la carte
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);
//Placez le cardPanel et le bouton de déplacement de la carte dans 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);
}
}
Je vais essayer.
javac PanelChangeTest.java && java PanelChange
Le même écran que précédemment était affiché. Cliquez sur le bouton "panel02" en bas de l'écran.
Commuté sur panel02. De même, cliquez sur "panneau 03".
Basculé vers panel03. Le bouton en haut de l'écran sert à afficher le nom du panneau, ce code n'a donc pas de fonction de bouton.
Cette fois, j'ai testé la transition d'écran de l'interface graphique avec Java Swing.
C'était juste un test, donc c'était aussi simple que 3 méthodes dans un seul fichier. Être pratique
--Séparez les panneaux d'affichage. --Faites un bouton pour la transition de l'écran vers une méthode
J'ai senti qu'il était nécessaire de configurer des méthodes de classe hautement personnalisables tout en conservant la lisibilité.
Recommended Posts