Сделать панель открытой, когда я нажимаю кнопку - PullRequest
0 голосов
/ 21 декабря 2011

Кто-нибудь знает, как заставить кнопку GUI открывать новый JPanel в Java?его нет в Google.его, чтобы показать о панели.спасибо за помощь!

Ответы [ 4 ]

6 голосов
/ 21 декабря 2011

Полагаю, JDialog - это то, что вам нужно.

См. Подробности: Как создавать диалоги

Вот пример:

enter image description here

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class CreateDialogFromOptionPane {

    public static void main(final String[] args) {
        JFrame parent = new JFrame();
        JButton button = new JButton();

        button.setText("Click me to show dialog!");
        parent.add(button);
        parent.pack();
        parent.setVisible(true);

        button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                JOptionPane optionPane = new JOptionPane("Is this what you need?", JOptionPane.QUESTION_MESSAGE,JOptionPane.YES_NO_OPTION);
                JDialog dialog = optionPane.createDialog("Dialog");
                dialog.setVisible(true);
            }
        });
    }
}
2 голосов
/ 21 декабря 2011

сначала вам нужно создать обработчик событий для вашей кнопки, затем в вашем обработчике вы должны создать свою панель и сделать ее видимой.если вы хотите больше всплывающих окон, вы должны использовать как:

JOptionPane.showMessageDialog(frame, "This is my message");

, который создаст предупреждающее сообщение, вы также можете создать свой собственный диалог костюма, я бы предложил прочитать это

2 голосов
/ 21 декабря 2011

Я думаю, что с помощью CardLayout вы можете решить, что

1 голос
/ 21 декабря 2011

Вы можете отобразить панель, используя неокрашенный JDialog

    public static void main(String args[])
    {
         final JDialog bwin = new JDialog();
         bwin.addWindowFocusListener(new WindowFocusListener()
         {
             @Override
             public void windowLostFocus(WindowEvent e)
             {
               bwin.setVisible(false);
               bwin.dispose();
             }

             @Override
             public void windowGainedFocus(WindowEvent e)
             {
             }
         }); 

        bwin.setUndecorated(true);

        JLabel label = new JLabel("About");

        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());
        panel.add(label);
        panel.setPreferredSize(new Dimension(200,200));

        bwin.add(panel);
        bwin.pack();
        bwin.setVisible(true);
    }
...