2009-02-12 27 views
10

Tôi tương đối mới với java (đặc biệt là xoay) và gần đây đã làm cho một số ứng dụng khá đơn giản, học tập như tôi đi. Phiên bản mới nhất có nhiều thành phần biểu mẫu như JLabels, JTextFields, JButtons, v.v. Tất cả đều được đặt trong NetBeans bằng cách sử dụng trình tạo hình ảnh. Tôi phải nói rằng tôi không thực sự dùng NetBeans và thực sự chỉ đang thiết kế GUI và sao chép mã thẳng vào Eclipse.GroupLayout: Có đáng học không?

Câu hỏi của tôi là: Có đáng để hiểu rõ về GroupLayout và mã hóa bằng tay không (và do đó có nhiều quyền kiểm soát hơn GUI của tôi) hoặc chỉ tiếp tục như vậy?

Trả lời

11

Tôi muốn nói rằng bạn nên dành chút thời gian để hiểu GroupLayout nếu chỉ vì bạn luôn hiểu rõ IDE của bạn đang làm gì. Việc biết những gì diễn ra đằng sau hậu trường thực sự khiến bạn linh hoạt hơn, bởi vì nếu bạn gặp phải tình huống mà bạn không có quyền truy cập vào Netbeans, bạn sẽ biết cách sao chép bố cục mà nó đã tạo ra cho bạn. Bên cạnh đó, sau khi bạn đã nhận được một số tiền phong nha của kinh nghiệm, bạn có thể sẽ tiết kiệm thời gian tổng thể. Bạn thường có thể phát triển GUI đơn giản nhanh hơn bằng tay bằng cách sử dụng trình chỉnh sửa trực quan, đặc biệt là xem xét thời gian bạn cần sao chép và dán mã từ Netbeans vào Eclipse. Và tất nhiên, việc học cách sử dụng GroupLayout cũng sẽ giúp bạn dễ dàng chuyển đổi sang bất kỳ trình quản lý bố cục Java nào khác, do đó có thể dẫn đến mã đơn giản hơn và tiết kiệm được nhiều thời gian hơn.

+0

Tôi đang nghĩ điều này quá; Tôi có thể ở trong tình huống mà tôi không có sự tiện lợi khi sao chép mã từ NetBeans nhưng ở đây tôi cần tạo một GUI tương đối phức tạp - và trong trường hợp tôi cần tạo GUI đơn giản hơn, tôi không cần chuyển sang NetBeans , thay vì xây dựng nó trên một trình quản lý bố cục đơn giản hơn. – Ciaran

10

GroupLayout không thực sự được thiết kế để viết tay; nó nhiều, nhiều chi tiết hơn bất kỳ trình quản lý bố cục nào khác (ngoại trừ có thể là GridBagLayout). Vì bạn nói bạn mới sử dụng Swing, tôi khuyên bạn nên bắt đầu với trình quản lý bố cục cơ bản (BorderLayoutFlowLayout); bạn có thể sử dụng chúng trong NetBeans bằng cách nhấp chuột phải vào bảng hoặc khung và chọn "Đặt bố cục". Sau khi bạn đã quen với những điều đó, tôi khuyên bạn nên xem MiGLayout.

Để trả lời câu hỏi khác của bạn: Tôi nghĩ NetBeans có dạng thiết kế tương tự như máy tính; nó là một công cụ tuyệt vời nếu bạn đã biết những điều cơ bản, nhưng bạn sẽ không bao giờ tìm hiểu bất cứ điều gì nếu bạn chỉ sử dụng nó như một cái nạng.

+0

Tôi nghĩ SpringLayout thậm chí còn tiết lộ nhiều hơn. ;) Tôi đã sử dụng GroupLayout đi kèm với LWUIT và nó không quá tệ, nhưng cũng không dễ. Tôi thích JGoodies FormLayout, và kể từ khi MiG Layout là người kế nhiệm, tôi nhiệt liệt giới thiệu MiG. Dù sao, nó cũng tốt để biết cũng bố trí cơ bản. –

+0

Tôi đã quen thuộc với BorderLayout - nhưng thực tế GroupLayout là những gì tôi nghĩ là tốt nhất cho ứng dụng tôi hiện đang xây dựng. Đối với việc sử dụng NetBeans như một cái nạng - Tôi chỉ đơn giản là không thích IDE và tìm thấy nó không cần thiết quá phức tạp trong một số bộ phận – Ciaran

1

Hầu hết các trình quản lý bố cục phức tạp hơn không được viết tay. Bạn có thể làm điều đó, nhưng có thể bạn sẽ gặp khó khăn trong việc hiểu bố cục của riêng mình một vài tháng kể từ bây giờ. GroupLayout không là ngoại lệ, tệ hơn là nó không trực quan chút nào, bạn phải mâu thuẫn với tâm trí của bạn buộc bố cục của bạn thành các thuật ngữ GroupLayout.

Đó là ý kiến ​​của tôi rằng những người quản lý bố cục này không đáng học hỏi. GridBagLayout là điều tồi tệ nhất. Nó có nhiều lựa chọn hơn bạn có thể tìm ra, và họ dường như không bao giờ làm những gì bạn nghĩ. MiGLayout rất mạnh mẽ, hợp lý trực quan và hầu hết là những gì bạn nghĩ, nhưng tôi vẫn cho rằng nó quá mạnh mẽ và quá phức tạp đối với nó, và tốt cho chính lập trình viên. GroupLayout không phải là mạnh mẽ, không phải là trực quan, và không có giá trị rắc rối. Lời khuyên của tôi từ những năm sắp đặt Java GUI và duy trì chúng là học và sử dụng trình quản lý bố cục mạnh nhất mà bạn có thể làm chủ trong hai giờ và bạn sẽ không bao giờ quên, sau đó bố trí GUI của bạn với các thùng chứa lồng nhau bằng cách sử dụng bố cục này quản lý và BorderLayout/GridLayout/FlowLayout/BoxLayout cơ bản.

+2

http://madbean.com/anim/totallygridbag/ –

+4

-1 GroupLayout có vẻ rất trực quan với tôi. Chắc chắn, nó là tiết, nhưng đây là Java chúng ta đang nói về. Chỉ cần đọc tài liệu và làm theo [ví dụ này] (http://download.oracle.com/javase/tutorial/uiswing/layout/group.html). Sau đó, bắt đầu sử dụng nó trên các dự án GUI "thực tế". Tôi nghĩ bạn sẽ thấy nó thực sự không tệ như lúc đầu. – bcat

+2

-1 Tôi đồng ý với @bcat. Tôi cũng muốn đưa vấn đề trực tiếp đến lời khuyên trong đoạn cuối. Kết quả tốt nhất luôn đến từ sự thành thạo kéo dài hơn hai giờ. Tôi sẽ không bao giờ quên cách sử dụng 'GroupLayout' miễn là tôi tiếp tục sử dụng nó. Tôi cũng không hiểu làm thế nào 'GroupLayout' có thể có thể phức tạp hơn việc sử dụng ** lồng chứa lồng nhau **. Đây là cách tôi sẽ làm điều đó nếu ai đó nói với tôi để làm cho nó phức tạp. –

3

GroupLayout đáng để học cách sử dụng theo chương trình.

Tôi sử dụng GroupLayout làm bố cục mặc định trên hầu hết mọi bảng điều khiển mà tôi tạo trong đó sử dụng các thành phần Swing tiêu chuẩn. Tôi thấy rằng kết quả luôn luôn rất dễ chịu cho mắt và thay đổi kích thước rất tốt.Tôi luôn đặt các tùy chọn này:

groupLayout.setAutoCreateGaps(true); 
groupLayout.setAutoCreateContainerGaps(true); 

Sử dụng bố cục này lặp đi lặp lại không chỉ cho tôi cái nhìn tuyệt nhất bố trí, nhưng nó mang lại cho tôi những kinh nghiệm ở mức độ thấp cần thiết để có thể đặt cùng một số tấm phức tạp với một số các thành phần không xác định tại thời gian biên dịch. Tôi cũng tìm thấy, khi số lượng các thành phần là động, tôi có thể bố trí tất cả các thành phần và sau đó bật và tắt chúng với setVisible(boolean) mà không cần tạo lại các nhóm ngang và dọc.

0

Nếu bạn có khuynh hướng theo Kiểu chương trình VB, bạn dành nhiều thời gian cho GroupLayouts. Nếu không, hãy cố gắng hiểu GridBagLayout Manager với các ví dụ phù hợp. Nó là tốt nhất cho những người muốn mọi thành phần gui nên được dưới sự kiểm soát bút của chúng tôi (Chúng ta nên viết và không phải là IDE). Một nhà phát triển java tốt nên dành thời gian trong các đối tượng gui và các đối tượng kinh doanh và phải biết cách tách chúng ra. L.Sankaranarayanan.

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