2009-01-10 37 views
55

嘗試在Java/Swing中構建GUI應用程序。我主要習慣於在Windows上用VB等工具「繪畫」GUI(或者更確切地說,Gupta SQLWindows ......想知道有多少人知道這是什麼;-))。Java Swing中是否存在「Group Box」等價物?

我無法找到一個組框在Swing等效...

隨着一組框,你有一個方形盒子(通常與標題)周圍幾個相關的小部件。一個例子是圍繞幾個單選按鈕的組框(標題解釋了單選按鈕的內容,例如標有「男」和「女」單選按鈕的「性別」的組框)。

我搜索了一下......我發現的唯一方法是添加一個子窗格,在子窗格上設置邊框,然後將「組」中的所有窗口小部件添加到子窗格中,窗格。有沒有更好的方法來做到這一點?

+0

也許你可以解釋一個組框是什麼。 – Geo 2009-01-10 20:20:54

+0

我想他是指你在許多對話框中看到的控制組,例如,在圍繞一些小部件(例如單選按鈕)的方框中,您可以看到該控制組。 – Uri 2009-01-10 20:23:36

回答

110

創建一個JPanel,並添加您的單選按鈕到它。不要忘記將JPanel的佈局設置爲適當的。

然後調用panel.setBorder(BorderFactory.createTitledBorder(name));

1

不AFAIK,至少沒有標準擺動小部件。

在VB中你有一個組件,它本質上是一個面板+邊框。

在Swing中,您有一個JPanel,它是容器小部件,只有在需要時才創建並設置邊界對象。人們可以爭辯說,以一種更優雅的方式,因爲你不支付你不使用的東西(例如,邊框)

-1

我回應的基礎是Uri的評論,其中解釋了OP所指的Group Box

Uri:我想他是指你在許多對話框中看到的控制組,例如你在一些小部件(如單選按鈕)周圍有一個正方形。

據我所知,每JComponent可以爲自己設置一個邊框,所以你不需要第二個面板。

+0

我想圍繞一些JComponents邊框。另外,在組框中只有一個元素通常是不好的做法。 – Thorsten 2009-01-10 20:37:20

+0

您可以在JPanel中添加多個組件。 – Geo 2009-01-10 20:49:28

3

A組框只是一套 '邏輯分組部件' 的。 這個在鞦韆世界是JPanel

將你的小工具添加到JPanel

將其邊框類型設置爲「標題邊框」並給出標題,與VB6「框架」的名稱相同。

Voila。你有你的組框。

6

其他人已經關於JPanel和使用TitledBorder,這很好。

但是,在使用Swing LayoutManagers進行遊戲時,您可能會發現煩惱不同的JPanel中的組件無法正確對齊(每個面板都有自己的LayoutManager)。

由於這個原因,在Swing GUI中不使用TitledBorders是一個很好的做法(在Web上檢查「JGoodies」以獲取更多詳細信息),而是通過JLabel跟隨水平JSeparator在JPanel中分離各組組件。

Ref。 「First Aid for Swing

2

自從您提出單選按鈕後,以下是JRadioButton javadocs的引用。

單選按鈕的實現 - 可以選擇或取消選擇的項目,並將其狀態顯示給用戶。與ButtonGroup對象一起使用來創建一組按鈕,一次只能選擇一個按鈕。 (創建一個ButtonGroup對象並使用它的add方法在組中包含JRadioButton對象。)

注意:ButtonGroup對象是一個邏輯分組 - 不是物理分組。要創建一個按鈕面板,您仍然應該創建一個JPanel或類似的容器對象,併爲其添加一個邊框以將其從周圍組件中設置。

相關問題