GroupLayout在javax.swing包中。
GroupLayout使用組的概念。 一個組由元素組成。 組的元素可以是組件,間隙或另一組。
間隙是兩個組件之間的不可見區(qū)域。
有兩種類型的組:
當組中的元素被依次串聯(lián)放置時,它被稱為順序組。
當組中的元素并行放置時,它被稱為并行組。
GroupLayout類包含三個內(nèi)部類:Group,SequentialGroup和ParallelGroup。
Group是一個抽象類,其他兩個類繼承自Group類。
我們可以使用GroupLayout類的工廠方法來創(chuàng)建它們的對象。
我們可以使用GroupLayout類的工廠方法來創(chuàng)建它們的對象。...
以下代碼演示了如何使用GroupLayout在JFrame中并排顯示兩個按鈕。
import java.awt.Container; // w w w . ja v a 2s. c o m import javax.swing.GroupLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("GroupLayout"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container contentPane = frame.getContentPane(); GroupLayout groupLayout = new GroupLayout(contentPane); contentPane.setLayout(groupLayout); JLabel label = new JLabel("Label"); JButton b2 = new JButton("Second Button"); groupLayout.setHorizontalGroup(groupLayout.createSequentialGroup() .addComponent(label).addComponent(b2)); groupLayout.setVerticalGroup(groupLayout .createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(label) .addComponent(b2)); frame.pack(); frame.setVisible(true); } }
以下代碼演示了如何使用GroupLayout在JFrame中并排顯示兩個按鈕。...
import java.awt.Container; //w ww .j a v a 2 s.c o m import javax.swing.GroupLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("GroupLayout"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container contentPane = frame.getContentPane(); GroupLayout groupLayout = new GroupLayout(contentPane); contentPane.setLayout(groupLayout); JLabel label = new JLabel("Label"); JButton b2 = new JButton("Second Button"); groupLayout.setHorizontalGroup(groupLayout.createSequentialGroup() .addComponent(label).addGap(5, 10, 50).addComponent(b2)); groupLayout.setVerticalGroup(groupLayout .createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(label) .addComponent(b2)); frame.pack(); frame.setVisible(true); } }
以下代碼在b1和b2之間添加了RELATED首選間隙:
import java.awt.Container; //w w w .java 2s. c om import javax.swing.GroupLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.LayoutStyle; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("GroupLayout"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container contentPane = frame.getContentPane(); GroupLayout groupLayout = new GroupLayout(contentPane); contentPane.setLayout(groupLayout); JLabel label = new JLabel("Label"); JButton b2 = new JButton("Second Button"); groupLayout.setHorizontalGroup(groupLayout.createSequentialGroup() .addComponent(label).addPreferredGap(LayoutStyle.ComponentPlacement.RELATED).addComponent(b2)); groupLayout.setVerticalGroup(groupLayout .createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(label) .addComponent(b2)); frame.pack(); frame.setVisible(true); } }
import static javax.swing.GroupLayout.Alignment.BASELINE; import static javax.swing.GroupLayout.Alignment.LEADING; import static javax.swing.GroupLayout.Alignment.TRAILING; // ww w . j av a 2 s . c o m import java.awt.Container; import javax.swing.GroupLayout; import javax.swing.JButton; import javax.swing.JFrame; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("GroupLayout"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container contentPane = frame.getContentPane(); GroupLayout groupLayout = new GroupLayout(contentPane); groupLayout.setAutoCreateGaps(true); groupLayout.setAutoCreateContainerGaps(true); contentPane.setLayout(groupLayout); JButton b1 = new JButton("Button 1"); JButton b2 = new JButton("Button Second"); JButton b3 = new JButton("3"); JButton b4 = new JButton("4"); groupLayout.setHorizontalGroup(groupLayout .createSequentialGroup() .addGroup( groupLayout.createParallelGroup(LEADING).addComponent(b1) .addComponent(b3)) .addGroup( groupLayout.createParallelGroup(TRAILING).addComponent(b2) .addComponent(b4))); groupLayout.setVerticalGroup(groupLayout .createSequentialGroup() .addGroup( groupLayout.createParallelGroup(BASELINE).addComponent(b1) .addComponent(b2)) .addGroup( groupLayout.createParallelGroup(BASELINE).addComponent(b3) .addComponent(b4))); frame.pack(); frame.setVisible(true); } }
更多建議: