2011-11-18 22 views
7

Tôi muốn một JPanel có thể được Thu gọn hoặc Mở rộng khi người dùng nhấp vào văn bản/biểu tượng trên đường viền của nó. Tôi cần loại bảng điều khiển này do sự cố không gian trong ứng dụng của tôi.Cách có JPanel có thể thu gọn/mở rộng trong Java Swing

Tôi đã đọc về lớp CollapsiblePanel nhưng không chắc chắn cách sử dụng nó .. Tôi nghĩ SwingX là cần thiết để tải xuống nhưng không tìm thấy ở bất cứ đâu.

Hơn nữa, sẽ tốt hơn nếu tôi nhận được giải pháp cho điều này trong Java Swing cơ bản.

+3

* "Tôi cần loại bảng điều khiển này do sự cố không gian trong ứng dụng của tôi." * Có nhiều cách khác để đặt nhiều điều khiển trong một GUI. 'JTabbedPane',' JSplitPane', 'CardLayout',' JDesktopPane'/'JInternalFrame' .. Thay vào đó nó có thể có ý nghĩa hơn để bật các điều khiển bổ sung trong một (có thể phương thức)' JDialog', hoặc 'JOptionPane'. –

+2

@AndrewThompson - chúng tôi đang trên Swing, do đó, chắc chắn có vô số possibilites, nhưng: JXCollapsible/JXTaskPane là sooo dễ thương :-) – kleopatra

+0

@ kleopatra Tôi đã chờ đợi cho bạn để bật và giải quyết các * * thực tế của OP câu hỏi. Chỉ cần nghĩ rằng tôi sẽ làm cho họ nhận thức rằng có rất nhiều khả năng. :) –

Trả lời

9

không chắc chắn nơi bạn nhìn, nhưng nó không phải rằng khó để tìm thấy - ngay cả cho sự lộn xộn cơ sở hạ tầng chúng ta đang ở ;-)

Đến nhà dự án của SwingX, sau đó làm theo các liên kết trong lần đầu tiên đoạn tới phần tải xuống (barebone), xuống bản phát hành \ 1.6.2. Không có gì đặc biệt đối với bản thân bản thân, chỉ là các thùng chứa để đưa các thành phần vào.

+0

Concur. Hiện đang viết lại hầu hết GUI của chúng tôi với các thành phần SwingX. Tiết kiệm khoảng một nửa mã để thích ứng với các thành phần Swing tiêu chuẩn. –

+0

Cảm ơn kleopatra .. Tôi đã nhận được thư viện SwingX ... đã nhập và đang sử dụng ngay bây giờ. Yêu JXTaskPane và JXCollapsible :) Chưa khám phá sâu về cả hai tấm cứng .. Những gì tôi đang tìm kiếm là một cái gì đó tương tự như cả "JXTaskPane" và "JXCollapsible". Tuy nhiên, ** JXTaskpane ** ** ** JXCollapsiblePane ** có thể đóng mở rộng hơn cần có một ** trigger bên ngoài ** để mở rộng và thu gọn. Đúng nếu tôi đã sai lầm. –

1

Tôi nghĩ bạn có thể sử dụng JSplitPane để khắc phục sự cố của mình. Bằng cách sử dụng các tài sản để thiết lập vị trí của divider khôn ngoan, bạn có thể đạt được những gì bạn muốn.