Java語言在界面布局方面,提供了多種布局方式,其中樹形布局和卡片布局是比較常見的。下面我們分別來介紹一下這兩種布局。
一、樹形布局
public class JTreeDemo extends JFrame { public JTreeDemo() { setTitle("樹形控件演示"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 300, 300); JTree tree = new JTree(); getContentPane().add(tree); setVisible(true); } public static void main(String[] args) { new JTreeDemo(); } }
上面的代碼演示了如何創(chuàng)建一個(gè)簡單的樹形控件。通過JTree類,我們可以創(chuàng)建一個(gè)支持樹形結(jié)構(gòu)的控件,并可以通過設(shè)置節(jié)點(diǎn)等方式,來創(chuàng)建多層次的結(jié)構(gòu),增加控件的靈活性和可擴(kuò)展性。
二、卡片布局
public class CardLayoutDemo extends JFrame implements ActionListener { private JButton btn1, btn2; private JPanel cardPanel; public CardLayoutDemo() { setTitle("卡片布局演示"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 300, 300); btn1 = new JButton("第一個(gè)面板"); btn1.addActionListener(this); btn2 = new JButton("第二個(gè)面板"); btn2.addActionListener(this); JPanel buttonPanel = new JPanel(); buttonPanel.add(btn1); buttonPanel.add(btn2); cardPanel = new JPanel(new CardLayout()); cardPanel.add(new JLabel("第一個(gè)面板"), "1"); cardPanel.add(new JLabel("第二個(gè)面板"), "2"); getContentPane().add(buttonPanel, BorderLayout.NORTH); getContentPane().add(cardPanel, BorderLayout.CENTER); setVisible(true); } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == btn1) { CardLayout cardLayout = (CardLayout) cardPanel.getLayout(); cardLayout.show(cardPanel, "1"); } else if (e.getSource() == btn2) { CardLayout cardLayout = (CardLayout) cardPanel.getLayout(); cardLayout.show(cardPanel, "2"); } } public static void main(String[] args) { new CardLayoutDemo(); } }
上面的代碼演示了如何使用卡片布局創(chuàng)建一個(gè)多面板控件。通過CardLayout類,我們可以將多個(gè)面板組合起來,每次只顯示其中一個(gè)面板,從而實(shí)現(xiàn)多場(chǎng)景下的控件展示和切換。