Java 如何通过按下这个gui中的按钮来打开另一个gui jpanel类?

Java 如何通过按下这个gui中的按钮来打开另一个gui jpanel类?,java,swing,user-interface,jbutton,actionlistener,Java,Swing,User Interface,Jbutton,Actionlistener,基本上,我一直在尝试实现记事本按钮,以打开另一个我称为记事本的gui类。我曾经尝试过使用actionlistener功能,但是没有成功的机会,你知道我该怎么做吗 import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JButton; import java.awt.La

基本上,我一直在尝试实现记事本按钮,以打开另一个我称为记事本的gui类。我曾经尝试过使用actionlistener功能,但是没有成功的机会,你知道我该怎么做吗

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;

import java.awt.Label;
import java.awt.Font;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JLayeredPane;

public class Maingui extends JFrame{

private JPanel contentPane;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
     public void run() {
    try {
        Maingui frame = new Maingui();
            frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

public Maingui() {
    setForeground(Color.RED);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 450, 300);
    contentPane = new JPanel();
    contentPane.setForeground(Color.RED);
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(null);

    JButton btnNotepad = new JButton("Notepad");
    btnNotepad.setBounds(10, 62, 414, 23);
    contentPane.add(btnNotepad);

    JButton btnWeather = new JButton("Weather");
    btnWeather.setBounds(10, 99, 414, 23);
    contentPane.add(btnWeather);

    JButton btnAddressBook = new JButton("Address Book");
    btnAddressBook.setBounds(10, 133, 414, 23);
    contentPane.add(btnAddressBook);

    JButton btnAgenda = new JButton("Agenda");
    btnAgenda.setBounds(10, 167, 414, 23);
    contentPane.add(btnAgenda);

    Label label = new Label("Montclair Panel");
    label.setFont(new Font("Aparajita", Font.PLAIN, 16));
    label.setBounds(160, 10, 121, 22);
    contentPane.add(label);

    JLayeredPane layeredPane = new JLayeredPane();
    layeredPane.setBounds(98, 62, 1, 1);
    contentPane.add(layeredPane);
}
}


}

我没有尝试,但它应该可以工作:

btnNotepad.addActionListener(new ActionListener()
{
  public void actionPerformed(ActionEvent e)
  {
    setContentPane(newPanel); //Your new JPanel
    invalidate();
    validate();
  }
}); 

您需要将actionListener添加到t btnNotepad。你试过了吗?是的,我在里面有一个,但我把它放进去了:BtnotePad.addActionListenernew ActionListener{@Override public void actionPerformedActionEvent ae{try{Notepad.main新字符串[0];}捕获异常e{e.printStackTrace;} };重新确认并重新喷漆
btnNotepad.addActionListener(new ActionListener()
{
  public void actionPerformed(ActionEvent e)
  {
    setContentPane(newPanel); //Your new JPanel
    invalidate();
    validate();
  }
});