Tôi muốn nhận được hiệu ứng như nếu JTabbedPane sẽ được quay 90 độ ngược chiều kim đồng hồ (chỉ các tab chứ không phải nội dung bên trong các tab). Cách tốt nhất để thực hiện điều đó trong Java là gì?Làm cách nào để tạo các tab dọc trong Java?
Trả lời
Trong giải pháp này:
http://oreilly.com/pub/a/mac/2002/03/22/vertical_text.html
Văn bản được vẽ theo chiều dọc và cố gắng làm biểu tượng trên tab. Bằng cách này bạn không cần phải sửa đổi JTabbedPane bạn chỉ cần sử dụng một biểu tượng tùy chỉnh trong tab.
Tất nhiên bạn cũng sẽ phải chỉ định vị trí tab ở bên trái.
Bạn có thể xác định vị trí trong các nhà xây dựng:
http://download.oracle.com/javase/6/docs/api/javax/swing/JTabbedPane.html#JTabbedPane%28int%29
hoặc trong setter:
http://download.oracle.com/javase/6/docs/api/javax/swing/JTabbedPane.html#setTabPlacement%28int%29
Bạn có thể thử setTabPlacement(SwingConstants.LEFT)
hoặc this component
Tôi không thấy liên kết đó giúp ích như thế nào. Cộng với vị trí tab sẽ không tạo văn bản dọc. – jzd
Như tôi đã hiểu, tác giả cần các tab dọc nhưng văn bản ngang, tôi đã quyết định từ @ này (chỉ các tab nhưng không phải nội dung bên trong các tab) @ –
Là một thay thế, hãy xem xét JToolBar
với orientation
thiết lập để VERTICAL
trong một BorderLayout
, EAST
hoặc WEST
. Nó khá dễ dàng rotate text trong nút Icon
.
Bạn có thể thử và mở rộng các lớp tabpane, trong phương pháp sơn quá tải, có đối tượng đồ họa, nói g2d
là lập luận của phương pháp sơn quá tải:
super(g2d.rotate(Pi/2));
như một khởi
và một số ví dụ cho rằng http://www.java2s.com/Code/Java/Swing-JFC/TabbedPane.htm + 1 – mKorbel
@mKorbel: Tôi không tìm thấy các ví dụ về tab dọc ở đó. – bancer
@bancer thực sự chuyển đổi yêu cầu của bạn sang mã mà bạn hiển thị ở đây, có thể là về hack nhỏ, bạn có thể Chỉnh sửa câu hỏi gốc của bạn, sau đó chúng tôi xem xét nó – mKorbel