Rumah >Java >javaTutorial >Bagaimanakah saya boleh menggunakan pemasa untuk memaparkan JDialog modales dari JFrame lain tanpa menggunakan butang?
Memanggil Satu JFrame dari Yang Lain Menggunakan Pemasa Tanpa Butang
Daripada menggunakan butang untuk mencetuskan paparan JFrame bersarang, pertimbangkan untuk menggunakan model tanpa model dialog. Teknik ini menawarkan pendekatan yang lebih bersih dan cekap.
Pelaksanaan:
1. Dialog Tanpa Model:
2. Pemasa untuk Kira detik:
3. PropertyChangeListener:
4. Dialog Paparan:
Kes Penggunaan:
Coretan kod berikut menunjukkan teknik ini:
<code class="java">import javax.swing.*; public class TimedDialogExample { // Countdown time in seconds private static final int TIME_OUT = 10; public static void main(String[] args) { SwingUtilities.invokeLater(() -> { // Create a frame JFrame frame = new JFrame("Main Frame"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 300); // Create a dialog JDialog dialog = new JDialog(frame); dialog.setSize(300, 200); // Create a timer to display the dialog after TIME_OUT seconds Timer timer = new Timer(1000, e -> { // Hide the dialog dialog.setVisible(false); // Dispatch a WINDOW_CLOSING event to close the dialog dialog.dispatchEvent(new WindowEvent(dialog, WindowEvent.WINDOW_CLOSING)); }); timer.start(); // Set the dialog's content JPanel panel = new JPanel(); panel.add(new JLabel("This is the dialog")); dialog.add(panel); // Make the frame visible frame.setVisible(true); // Display the dialog after TIME_OUT seconds timer.stop(); dialog.setVisible(true); }); } }</code>
Dengan menggunakan teknik ini, anda boleh membuka JDialog bersarang secara automatik tanpa memerlukan butang tambahan. Pendekatan ini menyediakan pengalaman pengguna yang diperkemas dan intuitif, terutamanya apabila pemasaan paparan adalah penting.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan pemasa untuk memaparkan JDialog modales dari JFrame lain tanpa menggunakan butang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!