2011-10-13 53 views
4

我正在學習一些Java的GUI東西,我想我在這裏錯過了一些東西。 我有一些組件使用BoxLayout垂直列出,比如一些高於其他的JButton。現在我想分開他們在他們之間畫一條線。我必須使用圖形庫還是有一些Swing方式來將組件與行分開?Java獨立組件與行

直接問題:如何繪製一條線來分離組件(如JButtons)以及哪種方法是推薦的方法?

謝謝!

+0

*「行分開組件「* DYM a [LineBorder](http://download.oracle.com/javase/7/docs/api/javax/swing/border/LineBorder.html),或者你的意思是連接一個組件和下一個,就像一個流程圖? –

+0

它真的JSeparator如下所述,但有沒有辦法讓LineBorder具有全寬,但1或2px的高度就像行? – johnsmith

回答

10

JSeparator,顯示爲here,在本文中通常使用。它適用於大多數佈局。另外,請考慮How to Use Borders

附錄JSeparator用戶界面代表對於給定的外觀&感覺,通常以BasicSeparatorUI爲藍本,特別簡單。這是paint()實現繪製前景色的一個像素線和背景色的相鄰一個像素線。線條與組件的邊界一樣寬(或高),取決於方向。佈局管理器確定間距,因此您需要查看A Visual Guide to Layout Managers

+0

正是我在找什麼。謝謝!但是,分隔符與其他組件之間存在較大的空間。我想佈局給包括分隔符在內的所有組件提供了相同的高度。 – johnsmith

+2

+1,用於JSeparator和邊界。我們不知道佈局在做什麼,因爲我們不知道您使用的佈局。張貼您的[SSCCE](http://www.sscce.org),證明問題。那麼也許我們可以提供更多的幫助。 – camickr

+0

只是爲了記錄:邊界問題是 - 根據定義 - 它們是在容器周圍,意味着多於一個容器以某種方式複合形式。缺點是子組件的交叉容器對齊丟失 – kleopatra

3

的JSeparator返回怪異尺寸的提示,對於最大尊重佈局管理像BoxLayout的最棘手的一點是它的無界最大,也看到了recent discussion(這大約是垂直分割,相同的水平,雖然)