Rumah >Java >javaTutorial >Bagaimana untuk Mengendalikan Acara Papan Kekunci dan Tetikus dengan Cekap dalam Mod Eksklusif Skrin Penuh Java?

Bagaimana untuk Mengendalikan Acara Papan Kekunci dan Tetikus dengan Cekap dalam Mod Eksklusif Skrin Penuh Java?

DDD
DDDasal
2024-12-20 00:49:08320semak imbas

How to Efficiently Handle Keyboard and Mouse Events in Java's Full-Screen Exclusive Mode?

Mengendalikan Acara Papan Kekunci dan Tetikus dalam Mod Eksklusif Skrin Penuh dengan Java

Dalam mod pemaparan pasif, acara daripada pengguna boleh dikendalikan menggunakan antara muka KeyListener dan ActionListener. Walau bagaimanapun, apabila menggunakan mod skrin penuh, pendekatan berbeza diperlukan.

Untuk mengendalikan acara dalam mod skrin penuh sambil memastikan pemaparan yang cekap, anda boleh melaksanakan langkah berikut:

Contoh Ujian Skrin Penuh

Pertimbangkan kelas FullScreenTest berikut, yang menyediakan contoh cara mengendalikan acara dalam skrin penuh mod:

public class FullScreenTest extends JPanel {

    // Set up a JFrame for full screen exclusive mode
    private JFrame f = new JFrame("FullScreenTest");

    // Initialize an exit action and add it to the JFrame's root pane
    private Action exit = new AbstractAction(EXIT) {
        @Override
        public void actionPerformed(ActionEvent e) {
            // Close the JFrame when the exit action is triggered
            f.dispatchEvent(new WindowEvent(f, WindowEvent.WINDOW_CLOSING));
        }
    };

    private JButton b = new JButton(exit);
    
    // Create a FullScreenTest instance and add it to the JFrame
    public FullScreenTest() {
        // Add a button to the JPanel and set it as the default button for the JFrame
        this.add(b);
        f.getRootPane().setDefaultButton(b);
    
        // Register a KeyStroke for the exit action (in this case, the 'Q' key)
        this.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_Q, 0), EXIT);
    
        // Associate the exit action with the EXIT key
        this.getActionMap().put(EXIT, exit);
        
        // Add a MouseAdapter to handle mouse movement and display tooltips
        this.addMouseMotionListener(new MouseAdapter() {
            @Override
            public void mouseMoved(MouseEvent e) {
                FullScreenTest.this.setToolTipText(
                    "("+ e.getX() + "," + e.getY() + ")");
            }
        });
    }
    
    // Display the JFrame in full screen exclusive mode
    private void display() {
        GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice dev = env.getDefaultScreenDevice();
        
        // Configure the JFrame for full screen mode
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setBackground(Color.darkGray);
        f.setResizable(false);
        f.setUndecorated(true);
        f.add(this);
        f.pack();
        
        // Set the JFrame to be the full screen window
        dev.setFullScreenWindow(f);
    }
    
   // Create a main method and run the application in the EventQueue
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
        @Override
        public void run() {
            new FullScreenTest().display();
            }
        });
    }
}

Dalam contoh ini:

  • Kami mencipta JFrame dan menyediakannya untuk mod eksklusif skrin penuh.
  • Kami menggunakan KeyListener dan InputMap untuk mengendalikan peristiwa penting dalam mod skrin penuh.
  • Kami menggunakan MouseListener dan MouseAdapter untuk mengendalikan pergerakan dan paparan tetikus petua alat dalam mod skrin penuh.
  • Kami menggunakan ciri butang lalai JFrame untuk menyediakan cara mudah bagi pengguna untuk keluar dari mod skrin penuh.

Dengan menggunakan pendekatan ini , anda boleh mengendalikan acara papan kekunci dan tetikus dengan cekap dalam mod skrin penuh sambil mengekalkan prestasi optimum untuk pemaparan grafik anda.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Acara Papan Kekunci dan Tetikus dengan Cekap dalam Mod Eksklusif Skrin Penuh Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn