如何在NetBeans GUI构建器中使用卡布局?

时间:2009-11-13 12:59:57

标签: java swing netbeans cardlayout gui-editor

有谁知道如何使用NetBeans GUI构建器工具中的卡布局?我想根据JRadioButton选项显示面板,所以我想使用卡片布局来展示它。

3 个答案:

答案 0 :(得分:15)

以下a very simple tutorial可能会让您朝着正确的方向前进。我希望它有所帮助。

答案 1 :(得分:3)

太阳tutorial似乎是开始了解卡片布局的好地方。

关于NetBeans 本身,只需将卡片布局分配给您要分配给的组件(例如JPanel),为其命名,然后为JPanel子组件(其他JPanels)例如),指定他们的cardName属性。要从一个切换到另一个,请在事件中对其进行编码。

答案 2 :(得分:1)

card.next(yourPanel);将遍历mainpanel中的所有组件,然后转到第一个组件。要显示一个有自己愿望的组件,请尝试关注(想想如果有5个组件而你是2并希望先显示,那么你必须在 Vincent Ramdhanie的示例中完成其余的工作, JRL的答案是好的,根据它快速跳转到你想要的,但这是另一种方式。

import javax.swing.JLabel;
import javax.swing.JPanel;

public class myJFrame extends javax.swing.JFrame {

    private JPanel panel1, panel2;
    /**
     * Creates new form myJFrame
     */
    public myJFrame() {
        initComponents();
        panel1=new JPanel();
        panel2=new JPanel();

        JLabel lb1=new JLabel("This is panel 1");
        JLabel lb2=new JLabel("This is panel 2");
        panel1.add(lb1);
        panel2.add(lb2);
//make more if you want
//        contentPanel.add(panel1);//show any of the panel first

    }
  private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        buttonPanel1 = new javax.swing.JButton();
        buttonPanel2 = new javax.swing.JButton();
        contentPanel = new javax.swing.JPanel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        buttonPanel1.setText("Panel 1");
        buttonPanel1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                buttonPanel1ActionPerformed(evt);
            }
        });

        buttonPanel2.setText("Panel 2");
        buttonPanel2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                buttonPanel2ActionPerformed(evt);
            }
        });
  ....
  }
  private void buttonPanel2ActionPerformed(java.awt.event.ActionEvent evt) {

        contentPanel.removeAll();
        contentPanel.add(panel2);
        contentPanel.repaint();
        contentPanel.revalidate();
    }

    private void buttonPanel1ActionPerformed(java.awt.event.ActionEvent evt) {
        contentPanel.removeAll();
        contentPanel.add(panel1);
        contentPanel.repaint();
        contentPanel.revalidate();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /*
         * Create and display the form
         */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new myJFrame().setVisible(true);
            }
        });
    }

    private javax.swing.JButton buttonPanel1;
    private javax.swing.JButton buttonPanel2;
    private javax.swing.JPanel contentPanel;
    private javax.swing.JPanel jPanel1;

}

当您拥有树并在树选择上显示面板或组件时,将使用此方法。它直接显示该组件。在树上添加value change listener并获取选择项并显示相应的面板。