Tôi đang tìm một số hướng dẫn về các phương pháp hay nhất cho một ứng dụng sử dụng Java Swing để được cấu trúc. Tôi là một anh chàng webapp bình thường và cố gắng theo MVC. MVC có điển hình cho các ứng dụng Swing không? Nếu vậy, làm thế nào?Cấu trúc chương trình Java Swing
Trả lời
Bạn có thể tìm thấy điều này rất đơn giản 0.123.hữu ích.
Làm theo MVC là một ý tưởng rất hay. Theo như tôi biết không có khung Java Swing chính thức làm điều đó, tất cả chúng đều tập trung vào khía cạnh "Xem" của vấn đề.
Về cơ cấu ứng dụng và MVC - khung tốt nhất mà tôi biết là Griffon. Nó không phải là Java - nó là Groovy, nhưng đó là những gì làm cho nó hấp dẫn hơn và khá dễ học. Griffon cho một ứng dụng Swing giống như Grails cho một ứng dụng web.
Check it out tại http://griffon.codehaus.org/
Swing có một thiết lập tương đối tốt cho một kiến trúc MVC, nhưng thực sự nó kết hợp quan điểm và điều khiển. Các thành phần trong Swing có thể có các trình lắng nghe gắn liền với chúng, đó là khía cạnh bộ điều khiển, và sau đó từ bên trong các bộ nghe này (nằm trong các thành phần), bạn có thể sửa đổi khung nhìn và mô hình cho phù hợp. Vì vậy, để trả lời câu hỏi của bạn, có, Swing sẽ giúp với một cách tiếp cận MVC cho một ứng dụng Java.
Trong Swing, bạn vẫn có hai phần riêng biệt cho VC: thành phần và người nghe. Lý do tôi nói chúng được kết hợp là bởi vì mỗi thành phần có thể có người nghe tương ứng riêng của nó. Những người nghe thường làm các thao tác, và là khía cạnh điều khiển. Các thành phần được thiết kế để không chỉ được xem trên màn hình, mà còn truyền thông tin cho những người nghe này. Các nút bấm, nét chính, thay đổi tiêu điểm, đóng cửa sổ, vv đều được báo cáo cho người nghe của thành phần tương ứng theo thành phần. Dưới đây là một đoạn mã đơn giản cho một nút với một người nghe hành động, trong đó đăng ký một nút bấm.
ActionListener buttonListener = new ActionListener() {
public void actionPerformed(ActionEvent event) {
// Controller code
}
};
JButton button = new JButton("A Button");
button.addActionListener(buttonListener);
Các ActionListener
về cơ bản là bộ điều khiển, nhưng nó phụ thuộc vào button
nhận đầu vào từ người dùng. Đây là nơi Swing muddles sự khác biệt giữa xem và điều khiển từ một quan điểm MVC tinh khiết, nhưng cùng lúc đó, sự khác biệt vẫn còn đó:
Listeners là điều khiển (trừ trực tiếp giải thích các đầu vào)
Components là xem (nhưng giải thích đầu vào và vượt qua nó với bộ điều khiển)
Hy vọng rằng sẽ giúp :)
Tôi không nghĩ người nghe là bộ điều khiển. Chúng đơn giản có thể được sử dụng trong một bộ điều khiển để đáp ứng các sự kiện thành phần. –
Đó là ý của tôi. Về mặt MVC, họ không, nhưng họ có thể nghĩ theo cách đó. Bộ điều khiển lấy đầu vào và sửa đổi mô hình. Người nghe có thể không nhất thiết phải lấy đầu vào, nhưng họ chắc chắn có thể được sử dụng để thao tác mô hình và, như là với một số giải thích của MVC, sửa đổi xem. Tất cả phụ thuộc vào một phần trách nhiệm của bộ điều khiển mà bạn muốn đặt trọng lượng nhiều hơn. – peppertherj
Đã có sự JSR (296) trong đó mô tả một khuôn khổ cho việc xây dựng Swing GUI, nhưng có vẻ như nó bị lãng quên về, hãy kiểm tra các bài viết sau đây mặc dù:
http://java.dzone.com/news/jsr-296-end-jframe
tôi đã tìm ra sau khuôn khổ, ban đầu dựa trên nó, mà trông đầy hứa hẹn:
- GUTS GUI - http://kenai.com/projects/guts/pages/Guts-gui
- BSAF - http://kenai.com/projects/bsaf
Sẽ quan tâm đến việc tìm hiểu cách chúng hoạt động trong thực tế. Hy vọng họ giúp đỡ.
Cũng có điều này (nhưng có vẻ không hoạt động) - http://github.com/hamnis/SAFF – Jon
- 1. Cấu trúc của Chương trình Ruby
- 2. Nhận cấu trúc hoàn chỉnh của một chương trình?
- 3. Cấu trúc cơ bản của chương trình Haskell
- 4. Swing/AWT - Tạo GUI theo chương trình
- 5. Java bảng Swing cây
- 6. Kiến trúc và thiết kế GUI trong Java (Swing)
- 7. Cấu trúc lập trình Java Swing: người nghe có phải là nguồn gốc của hầu hết các thành phần Swing không?
- 8. Sử dụng cấu trúc C trong Java
- 9. Cấu trúc nhiều cột Java
- 10. Chương trình GUI Java - Chương trình sơn
- 11. Chạy chương trình java từ một chương trình java khác
- 12. Tạo cấu trúc dữ liệu như cấu trúc dữ liệu trong Java
- 13. Kiến trúc MVC và Swing
- 14. Trình chọn phông chữ Java Swing
- 15. Nhúng trình duyệt Firefox vào Java Swing
- 16. Có API cấu trúc lại Eclipse nào mà tôi có thể gọi theo chương trình không?
- 17. Cấu trúc dữ liệu Trie - Java
- 18. Cọ vẽ cấu trúc dữ liệu (Java)
- 19. Java: cấu trúc băm liên tục lớn?
- 20. Cấu trúc thư mục giao diện Java?
- 21. Java - cấu trúc thay đổi int enums
- 22. Cấu trúc dữ liệu Java Tham chiếu
- 23. Java câu hỏi cấu trúc dữ liệu
- 24. Cấu trúc tệp Java trong bộ nhớ?
- 25. Java Swing FlowLayout Alignments
- 26. C: sử dụng rất nhiều cấu trúc có thể làm chậm chương trình?
- 27. Bản vẽ "Cấu trúc và Giải thích các Chương trình Máy tính" là gì?
- 28. Java Swing Text Editor
- 29. Java Swing JMenu Mnemonic
- 30. Cấu trúc và lập trình đại số
Thực ra những ngày này Griffon là Java nhiều hơn Groovy (ít nhất là trong việc thực hiện của nó). Nó cho phép bạn viết một ứng dụng với Groovy hoặc Java hoặc thậm chí cả hai cùng một lúc. – aalmiray
Tôi thực sự đang chờ hỗ trợ đầy đủ (tạo mã quá) của Scala. Mà có thể thực sự tốt đẹp. Tôi nghĩ rằng bạn đang làm việc trên một cái gì đó như thế :) –
Nó đã có. Cài đặt nguyên mẫu scala và bạn đang kinh doanh. 'Griffon cài đặt-nguyên mẫu http: // svn.codehaus.org/Griffon/nguyên mẫu/scala/trunk/scala/scala-Griffon-archetype.zip' ' Griffon tạo ứng dụng mẫu -archetype = scala' Hãy coi chừng chế độ applet chưa được hỗ trợ. Bạn sẽ tìm thấy bạn có thể viết bất kỳ tạo phẩm griffon (Model, View, Controller, Service) với Scala. Bạn thậm chí có thể sử dụng scala-swing trong Views. – aalmiray