2011-10-04 46 views
16

Tôi có một ứng dụng Java hiển thị danh sách từ cơ sở dữ liệu. Bên trong lớp là đoạn mã sau để mở hộp thoại mới cho nhập dữ liệu:Trình nghe Java trên hộp thoại đóng

@Action 
public void addNewEntry() { 
    JFrame mainFrame = ADLog2App.getApplication().getMainFrame(); 
    addNewDialog = new AddNewView(mainFrame, true); 
    addNewDialog.setLocationRelativeTo(mainFrame); 
    addNewDialog.addContainerListener(null); 
    ADLog2App.getApplication().show(addNewDialog); 
} 

Làm thế nào để bạn thêm một người biết lắng nghe để những lớp học chính để phát hiện khi cửa sổ addNewDialog được đóng lại, để tôi có thể gọi một phương thức làm mới và làm mới danh sách từ cơ sở dữ liệu.

+0

Bạn có ý nghĩa gì với "lớp chính"? Lớp định nghĩa 'addNewEntry'? 'JFrame'? Cái gì là 'AddNewView'? Thư viện đó là gì? –

+1

Bạn đã xem xét danh sách Windowlisteners chưa? http://download.oracle.com/javase/1.4.2/docs/api/java/awt/event/WindowListener.html – Simiil

+0

Xin lỗi, 'AddNewView' là JDialog đang được mở. – Woodsy

Trả lời

38

Nếu AddNewViewWindow chẳng hạn như Dialog hoặc JDialog, bạn có thể sử dụng Window.addWindowListener(...). Đó là, trong lớp học chính của bạn, bạn làm

addNewDialog.addWindowListener(someWindowListener); 

nơi someWindowListener là một số WindowListener (ví dụ một WindowAdapter) mà ghi đè/implemetnns windowClosed.

Một ví dụ hoàn thiện hơn, sử dụng một lớp vô danh, có thể trông giống như

addNewDialog.addWindowListener(new WindowAdapter() { 
    @Override 
    public void windowClosed(WindowEvent e) { 
     refreshMainView(); 
    } 
}); 

liên kết liên quan:

+0

Các liên kết tuyệt vời. Đối với những người dùng JavaDocs. Cho đến khi những lần như [báo cáo lỗi 7090875] (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7090875) (một RFE) được giải quyết, bất kỳ cơ hội nào bạn ném '7' vào bất kỳ tìm kiếm nào cho tài liệu cho một lớp (hoặc liên kết với tài liệu phiên bản 7)? –

+0

Vâng. Có lẽ đã đến lúc bắt đầu đề cập đến v7 ... Đã không xảy ra suy nghĩ của tôi. Tôi sẽ làm điều đó từ bây giờ. Cảm ơn. – aioobe

+0

Cảm ơn bạn. Càng sớm mọi người bắt đầu liên kết với v. 7 tài liệu, Google càng sớm càng trả lại các liên kết đó qua liên kết câu 6. Tất nhiên, nếu RFE được thực hiện, tất cả sẽ trở thành tranh luận. –

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