Ссылка на другую панель, как только я нажал кнопку - PullRequest
1 голос
/ 20 мая 2011

Теперь у меня есть 3 файла Java, которые есть.У меня есть 2 кнопки на TrainAndCOnductor.Моя цель состоит в том, чтобы, когда я нажму на 1-ю кнопку, она откроет панель «Проводник».

public class JavaApplication1 {

    public static void main(String[] args) {
        TheConductor form = new TheConductor();
        form.setVisible(true);
    }
}
//Train And Conductor
    public class TrainAndConductor extends javax.swing.JFrame {

    /** Creates new form TrainAndConductor */
    public TrainAndConductor() {
        initComponents();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jButton1.setText("Train Driver");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setText("Conductor");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jButton1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 282, Short.MAX_VALUE)
            .addComponent(jButton2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 282, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jButton2))
        );

        pack();
    }// </editor-fold>

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        add(TheConductor);
        TheConductor.setVisible(true);

//The Conductor
public class TheConductor extends javax.swing.JFrame {

    /** Creates new form TheConductor */
    public TheConductor() {
        initComponents();
    }

Ответы [ 2 ]

3 голосов
/ 20 мая 2011

Это зависит от того, как организован ваш макет.Вы можете использовать JTabbedPane или CardLayout для достижения этой цели.

2 голосов
/ 20 мая 2011

Попробуйте это:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
   secondPanel.setVisible(true);
}

, и если вы не добавляете его раньше, вы должны добавить его следующим образом:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
   add(secondPanel);
   secondPanel.setVisible(true);
}

Попробуйте это:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    TheConductor conduct = new TheConductor();
    add(conduct);
    conduct.setVisible(true);
}
...