Swing GroupLayout布局類
GroupLayout類的分層組組件為了放置他們在一個容器。
類聲明
以下是聲明 javax.swing.GroupLayout類:
public class GroupLayout extends Object implements LayoutManager2
字段域
以下是javax.swing.GroupLayout類的字段域:
-
static int DEFAULT_SIZE -- 表示組件或間隙的大小應該用於特定的範圍值。
-
static int PREFERRED_SIZE -- 表示組件或間隙的首選大小應該用於特定的範圍值。
類構造函數
S.N. | 構造函數 & 描述 |
---|---|
1 |
GroupLayout(Container host) Creates a GroupLayout for the specified Container. |
類方法
S.N. | 方法 & 描述 |
---|---|
1 |
void addLayoutComponent(Component component, Object constraints) Notification that a Component has been added to the parent container. |
2 |
void addLayoutComponent(String name, Component component) Notification that a Component has been added to the parent container. |
3 |
GroupLayout.ParallelGroup createBaselineGroup(boolean resizable, boolean anchorBaselineToTop) Creates and returns a ParallelGroup that aligns it's elements along the baseline. |
4 |
GroupLayout.ParallelGroup createParallelGroup() Creates and returns a ParallelGroup with an alignment of Alignment.LEADING. |
5 |
GroupLayout.ParallelGroup createParallelGroup(GroupLayout.Alignment alignment) Creates and returns a ParallelGroup with the specified alignment. |
6 |
GroupLayout.ParallelGroup createParallelGroup(GroupLayout.Alignment alignment, boolean resizable) Creates and returns a ParallelGroup with the specified alignment and resize behavior. |
7 |
GroupLayout.SequentialGroup createSequentialGroup() Creates and returns a SequentialGroup. |
8 |
boolean getAutoCreateContainerGaps() Returns true if gaps between the container and components that border the container are automatically created. |
9 |
boolean getAutoCreateGaps() Returns true if gaps between components are automatically created. |
10 |
boolean getHonorsVisibility() Returns whether component visiblity is considered when sizing and positioning components. |
11 |
float getLayoutAlignmentX(Container parent) Returns the alignment along the x axis. |
12 |
float getLayoutAlignmentY(Container parent) Returns the alignment along the y axis. |
13 |
LayoutStyle getLayoutStyle() Returns the LayoutStyle used for calculating the preferred gap between components. |
14 |
void invalidateLayout(Container parent) Invalidates the layout, indicating that if the layout manager has cached information it should be discarded. |
15 |
void layoutContainer(Container parent) Lays out the specified container. |
16 |
void linkSize(Component... components) Forces the specified components to have the same size regardless of their preferred, minimum or maximum sizes. |
17 |
void linkSize(int axis, Component... components) Forces the specified components to have the same size along the specified axis regardless of their preferred, minimum or maximum sizes. |
18 |
Dimension maximumLayoutSize(Container parent) Returns the maximum size for the specified container. |
19 |
Dimension minimumLayoutSize(Container parent) Returns the minimum size for the specified container. |
20 |
Dimension preferredLayoutSize(Container parent) Returns the preferred size for the specified container. |
21 |
void removeLayoutComponent(Component component) Notification that a Component has been removed from the parent container. |
22 |
void replace(Component existingComponent, Component newComponent) Replaces an existing component with a new one. |
23 |
void setAutoCreateContainerGaps(boolean autoCreateContainerPadding) Sets whether a gap between the container and components that touch the border of the container should automatically be created. |
24 |
void setAutoCreateGaps(boolean autoCreatePadding) Sets whether a gap between components should automatically be created. |
25 |
void setHonorsVisibility(boolean honorsVisibility) Sets whether component visiblity is considered when sizing and positioning components. |
26 |
void setHonorsVisibility(Component component, Boolean honorsVisibility) Sets whether the component's visiblity is considered for sizing and positioning. |
27 |
void setHorizontalGroup(GroupLayout.Group group) Sets the Group that positions and sizes components along the horizontal axis. |
28 |
void setLayoutStyle(LayoutStyle layoutStyle) Sets the LayoutStyle used to calculate the preferred gaps between components. |
29 |
void setVerticalGroup(GroupLayout.Group group) Sets the Group that positions and sizes components along the vertical axis. |
30 |
String toString() Returns a string representation of this GroupLayout. |
方法繼承
這個類從以下類繼承的方法:
-
java.lang.Object
GroupLayout 實例
選擇使用任何編輯器創建以下java程序在 D:/ > SWING > com > yiibai > gui >
SwingLayoutDemo.javapackage com.yiibai.gui; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class SwingLayoutDemo { private JFrame mainFrame; private JLabel headerLabel; private JLabel statusLabel; private JPanel controlPanel; private JLabel msglabel; public SwingLayoutDemo(){ prepareGUI(); } public static void main(String[] args){ SwingLayoutDemo swingLayoutDemo = new SwingLayoutDemo(); swingLayoutDemo.showGroupLayoutDemo(); } private void prepareGUI(){ mainFrame = new JFrame("Java SWING Examples"); mainFrame.setSize(400,400); mainFrame.setLayout(new GridLayout(3, 1)); headerLabel = new JLabel("",JLabel.CENTER ); statusLabel = new JLabel("",JLabel.CENTER); statusLabel.setSize(350,100); mainFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowEvent){ System.exit(0); } }); controlPanel = new JPanel(); controlPanel.setLayout(new FlowLayout()); mainFrame.add(headerLabel); mainFrame.add(controlPanel); mainFrame.add(statusLabel); mainFrame.setVisible(true); } private void showGroupLayoutDemo(){ headerLabel.setText("Layout in action: GroupLayout"); JPanel panel = new JPanel(); // panel.setBackground(Color.darkGray); panel.setSize(200,200); GroupLayout layout = new GroupLayout(panel); layout.setAutoCreateGaps(true); layout.setAutoCreateContainerGaps(true); JButton btn1 = new JButton("Button 1"); JButton btn2 = new JButton("Button 2"); JButton btn3 = new JButton("Button 3"); layout.setHorizontalGroup(layout.createSequentialGroup() .addComponent(btn1) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup( GroupLayout.Alignment.LEADING) .addComponent(btn2) .addComponent(btn3) ) ) ); layout.setVerticalGroup(layout.createSequentialGroup() .addComponent(btn1) .addComponent(btn2) .addComponent(btn3) ); panel.setLayout(layout); controlPanel.add(panel); mainFrame.setVisible(true); } }
編譯程序,使用命令提示符。到 D:/ > SWING 然後輸出以下命令。
D:SWING>javac comyiibaiguiSwingLayoutDemo.java
如果冇有錯誤出現,這意味著編譯成功。使用下麵的命令來運行程序。
D:SWING>java com.yiibai.gui.SwingLayoutDemo
驗證下麵的輸出