2012-06-22 40 views
6

Có cách nào để trình xử lý sự kiện cho đối tượng JFrame phát hiện khi người dùng nhấp vào cửa sổ tối đa hóa hoặc thu nhỏ các nút không?Cách phát hiện cửa sổ JFrame thu nhỏ và tối đa hóa sự kiện?

Am sử dụng các đối tượng JFrame như sau:

JFrame frame = new JFrame("Frame");

+1

Bạn có mục tiêu cụ thể không? – trashgod

+0

Có, tôi cần biết khi nào cửa sổ được thay đổi kích thước để tôi có thể vẽ lại các thành phần bên trong khung. –

+1

Các phương thức 'validate() và' repaint() 'sẽ được gọi tự động khi khung được thay đổi kích thước, nhưng bạn có thể cần cập nhật các cấu trúc dữ liệu khác; xem thêm ['AnimationTest'] (http://stackoverflow.com/a/3256941/230513). – trashgod

Trả lời

4

Có, bạn có thể thực hiện việc này bằng cách triển khai các phương thức "WindowListener" cụ thể là windowIconified (WindowEvent e) theo windowDeiconified (WindowEvent e). Để biết thêm chi tiết, hãy truy cập this

4
  1. Tạo khung và thêm một người biết lắng nghe:

JFrame frame = new JFrame(); 
 
frame.addWindowStateListener(new WindowStateListener() { 
 
    public void windowStateChanged(WindowEvent arg0) { 
 
     frame__windowStateChanged(arg0); 
 
    } 
 
});

  1. Thực hiện nghe:

public void frame__windowStateChanged(WindowEvent e){ 
 
    // minimized 
 
    if ((e.getNewState() & Frame.ICONIFIED) == Frame.ICONIFIED){ 
 
     _print("minimized"); 
 
    } 
 
    // maximized 
 
    else if ((e.getNewState() & Frame.MAXIMIZED_BOTH) == Frame.MAXIMIZED_BOTH){ 
 
     _print("maximized"); 
 
    } 
 
}

Các vấn đề liên quan