JButton 打开新框架,即不同 class

JButton to open new frame, that is in different class

我正在尝试从我的 SecondFrame 按钮打开新框架。我想要的框架是 QueueFrame。但是我已经放置了动作事件但是当我按下按钮时似乎没有动作。这是我的 Deneme4 class

    public class Deneme4 extends JFrame {
    public static void main(String a[]) throws FileNotFoundException {
    SecondFrame frame = new SecondFrame();

}}

当我这样做时 运行 我的第一帧出现了,这是第二帧没有问题但是在第二帧中我有 b3 和 b4 我希望每个打开不同的 class,现在我试过了用 b4 打开我的 QueueFrame 但它什么也没做

第二帧:

public class SecondFrame extends JFrame {

private JButton b3;
private JButton b4;

public SecondFrame() {

    JFrame secondframe = new JFrame();
    b3 = new JButton("Queue");
    b4 = new JButton("Stack");

    b3.setBounds(150, 100, 180, 100);
    b4.setBounds(150, 300, 180, 100);

    secondframe.add(b3);
    secondframe.add(b4);

    secondframe.setLayout(null);
    secondframe.setSize(500, 750);
    secondframe.setVisible(true);
    secondframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

private void b4ActionPerformed(ActionEvent e) throws FileNotFoundException{

    QueueFrame queues = new QueueFrame();
    queues.setVisible(true);
    Scanner s = new Scanner(new File("list.txt"));
    Queue queue = new Queue();
    while (s.hasNext()) {
        queue.setMessageOutput((Queue.MessageOutput) queues);
        queue.enqueue(s.nextInt());
    }
    s.close();
    queue.queueSize();
    queue.getHead();
}}

MadProgrammer 是怎么说的...阅读并学习如何编写:ActionListener 的,因为你不能依赖表单编辑器,这是一种不好的做法。

好吧,您唯一需要做的就是编写一个正确的 ActionListener,首先是您的 class 的名称,然后是您的方法的名称。

yourButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
SecondFrame Sf = new SecondFrame();
Sf.frame();}});