Как работать с макетом карты в построителе графического интерфейса пользователя NetBeans? - PullRequest
6 голосов
/ 13 ноября 2009

Кто-нибудь знает, как работать с макетом карты в средстве построения графического интерфейса пользователя NetBeans? Я хочу показывать панели в соответствии с выбором JRadioButton, поэтому я хочу выложить это с использованием макета карты.

Ответы [ 3 ]

15 голосов
/ 13 ноября 2009

Вот очень простое руководство , которое может начать вас в правильном направлении. Я надеюсь, что это полезно.

3 голосов
/ 13 ноября 2009

The Sun учебник , кажется, хорошее место, чтобы начать изучать макеты карт.

Что касается NetBeans per se , просто назначьте макет карты компоненту, который вы хотите назначить (например, JPanel), дайте ему имя, а затем для дочерних компонентов JPanel (например, других JPanel ), укажите их cardName свойство. Чтобы переключаться с одного на другое, вы кодируете его в событии.

1 голос
/ 24 июля 2013

card.next(yourPanel); перебирает все компоненты вашего mainpanel, а затем переходит к первому. Чтобы показать компонент с вашим собственным желанием, попробуйте следующее (подумайте, если есть 5 компонентов, и вы находитесь на 2 и хотите сначала показать, то вам нужно пройти через все остальное в примере *1004* * Винсента Рамдхани Ответ 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, получите элемент выбора и покажите соответствующую панель.

...