Java 在JButton中使用匿名ActionListener隐藏JFrame

Java 在JButton中使用匿名ActionListener隐藏JFrame,java,swing,jframe,actionlistener,anonymous-inner-class,Java,Swing,Jframe,Actionlistener,Anonymous Inner Class,我有一个欢迎(或菜单)窗口(JFrame),每个可能的操作都有一些按钮(JButton)。每一个都应该启动一个新窗口并隐藏欢迎窗口。我知道我可以用setVisible(false)来实现这一点。但我还不能让它工作 这是我的一个代码示例: _startBtn.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e){

我有一个欢迎(或菜单)窗口(JFrame),每个可能的操作都有一些按钮(JButton)。每一个都应该启动一个新窗口并隐藏欢迎窗口。我知道我可以用
setVisible(false)来实现这一点。但我还不能让它工作

这是我的一个代码示例:

    _startBtn.addActionListener(new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e){
            System.out.println("_startBtn pressed");
            // Code to hide this JFrame and initialize another
        }
我的问题是,如何使用像这样的匿名类来实现它


提前谢谢

我给你举了一个例子,希望能对你有所帮助

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;


public class windows_test {
    JFrame login = null;
    JFrame inner_frame = null;

    public windows_test() {
        login = new JFrame();
        login.setBounds(10, 10, 300, 300);
        login.setLayout(new BorderLayout());

        JButton button = new JButton("Login");
        login.add(button, BorderLayout.CENTER);

        login.setVisible(true);

        button.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent arg0) {
                if (inner_frame == null) {
                    inner_frame = new JFrame();
                }
                inner_frame.setLayout(new FlowLayout(FlowLayout.CENTER));
                inner_frame.add(new JButton("inner frame"));
                inner_frame.setVisible(true);
                login.setVisible(false);
                inner_frame.setBounds(10, 10, 300, 300);
            }
        });
    }
}

我建议您使用jpanel而不是jframes,但是您已经要求使用框架,所以我已经用它们创建了它。希望它能帮助您询问我是否在某个地方错了,或者您无法理解。

“我有一个欢迎(或菜单)窗口(JFrame),每个可能的操作都有一些按钮(JButton)。每个按钮都应该启动一个新窗口并隐藏欢迎窗口。”请参阅重新设计GUI,而不是制造这样的混乱(多个框架)可靠地工作-它会更快。”…我还不能让它工作。”我们可以猜测原因,但你可以省去我们的麻烦,告诉我们。尽管@AndrewThompson给出的建议在这种情况下确实有效。但是如果你仍然想坚持你不太好的方法,这里有一个同样的方法。根据你的建议,我将把设计更改为一个带有CardLayout管理的JFrame。我希望它能满足我的需要。现在我有一些其他的问题(因为我以前从未使用过),但我不认为我应该在这里发布。好的选择(单帧)!也可以单独问一个问题。我将密切关注后续问题,但如果有人在我看到之前插嘴并提供了一个极好的答案,请不要感到惊讶。:)