3

我有一个欢迎(或菜单)窗口(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
        }

我的问题是,我怎样才能使用像这样的匿名类呢?

提前致谢!

4

1 回答 1

2

我正在为您发布一个示例,希望它对您有所帮助。

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,但是您已经要求提供框架,所以我用它们创建了它。希望它会帮助您询问我是否在某个地方错了,或者您无法理解。

于 2012-08-12T05:26:33.347 回答