Maison >Java >javaDidacticiel >Comment effectuer une transition entre Windows dans des applications Java à l'aide d'une minuterie sans boutons ?
Accès à une nouvelle fenêtre à partir d'une fenêtre en cours d'exécution à l'aide d'une minuterie
En programmation, la possibilité de naviguer de manière transparente entre les fenêtres d'une application est cruciale. Cet article explique comment y parvenir à l'aide d'une minuterie, éliminant ainsi le besoin d'interactions traditionnelles avec les boutons.
Énoncé du problème
La tâche à accomplir consiste généralement à ouvrir une nouvelle fenêtre. un JFrame, à partir d'une fenêtre existante à un intervalle de temps spécifié. Ceci est accompli à l'aide d'une minuterie sans utiliser de boutons pour l'interaction de l'utilisateur.
Solution
Utilisation d'une boîte de dialogue non modale avec une minuterie pour une transition basée sur le temps
Bien que l'utilisation de plusieurs cadres soit généralement déconseillée, une boîte de dialogue non modale affichée dans l'application principale peut servir de solution alternative.
Exemple de code
L'extrait de code suivant illustre cette implémentation :
<code class="java">import javax.swing.JDialog; import javax.swing.JOptionPane; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.Timer; public class TimedDialogDemo implements ActionListener, PropertyChangeListener { private int countDown; private Timer timer; private JDialog dialog; private JOptionPane optPane; public TimedDialogDemo(int initialCountDown) { this.countDown = initialCountDown; this.timer = new Timer(1000, this); // Interval in milliseconds this.dialog = new JDialog(); // JOptionPane for message display this.optPane = new JOptionPane(); this.optPane.setMessage("Closing in " + countDown + " seconds."); this.optPane.setMessageType(JOptionPane.INFORMATION_MESSAGE); this.optPane.addPropertyChangeListener(this); this.dialog.add(this.optPane); this.dialog.pack(); } public void showDialog() { this.dialog.setVisible(true); this.timer.start(); } public void hideDialog() { this.dialog.setVisible(false); this.dialog.dispatchEvent(new WindowEvent( this.dialog, WindowEvent.WINDOW_CLOSING)); } public void actionPerformed(ActionEvent e) { this.countDown--; this.optPane.setMessage("Closing in " + countDown + " seconds."); if (this.countDown == 0) { hideDialog(); } timer.restart(); } public void propertyChange(PropertyChangeEvent e) { String prop = e.getPropertyName(); if (JOptionPane.VALUE_PROPERTY.equals(prop)) { // Handle button click or OK pressed hideDialog(); } } public static void main(String[] args) { TimedDialogDemo demo = new TimedDialogDemo(10); demo.showDialog(); } }</code>
En utilisant cette technique, vous pouvez créer des transitions transparentes entre les fenêtres de votre application en fonction d'un intervalle de temps prédéfini. Cette approche offre une expérience conviviale, fournissant des notifications en temps opportun sans nécessiter d'interactions manuelles avec les boutons.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!