如何从JButton打开另一个表单

问题描述 投票:-1回答:1

这是一个非常基本的Java语法问题。我在自己的类中有一个名为frmMainMenu的表单,它有一个标记为“Schedule”的按钮。当您单击“计划”时,我希望它打开另一个表单。那个是在一个名为frmSchedule的独立类中。

在frmMainMenu的ActionListener部分,我有这个:

public void actionPerformed(ActionEvent e) {
       System.out.println("TEST");
       frmSchedule window2 = new frmSchedule();
}

它在控制台中打印“TEST”一词(所以我知道代码在正确的位置)。但是,它不会打开Schedule表单。我也尝试过这样做,但也没有用:

public void actionPerformed(ActionEvent e) {
       System.out.println("TEST");
       new frmSchedule();
}

这是frmSchedule的代码:

import java.awt.BorderLayout;
import java.awt.EventQueue;

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

public class frmSchedule extends JFrame {

    private JPanel contentPane;


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

        JButton btnNewButton = new JButton("Trials");
        btnNewButton.setBounds(128, 100, 89, 23);
        contentPane.add(btnNewButton);
    }

}

我想我只是找不到代码的方法来告诉它打开第二个表单。

java eclipse swing windowbuilder
1个回答
1
投票

正如MadProgrammer指出的那样,它可能有助于使其可见;)

public void actionPerformed(ActionEvent e) {
       System.out.println("TEST");
       frmSchedule window2 = new frmSchedule();
       window2.setVisible(true);
}

另外,如果你不知道你在做什么布局,你应该看看:what does frame.setLayout(null)do?(frame is a JFrame)

© www.soinside.com 2019 - 2024. All rights reserved.