通过不使用JPanel和JFrame,如果函数返回true,我仍然可以打开一个新窗口吗?我怎么能添加JPanel或JFr



这是窗口的构造函数

setLayout(new FlowLayout());
    username = new JTextField("Username");
    password = new JTextField("Password");
    loginlogo = new JLabel(logo6);
    login = new JButton("LOGIN");
    login.setActionCommand("connect");
    login.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            //on clicking connect: the real meat of the log in page
            usernamestring = username.getText();
            passwordstring = password.getText();
            logindataurl = ("URL/aphpscript.php?u=" + username + "&p=" + password);
            try {
                userdatabase = new URL(logindataurl);
                in = new BufferedReader(new InputStreamReader(userdatabase.openStream()));
                checkusername = in.read();
                in.close();
            } catch (MalformedURLException e) {
                new error_messagebox("Malformed URL Exception", e.toString());
            } catch (IOException e) {
                new error_messagebox("Input/Output Exception reading url ", e.toString());
            }

        }
    });
    add(loginlogo, BorderLayout.NORTH);
    add(username,BorderLayout.EAST);
    add(password,BorderLayout.WEST);
    add(login,BorderLayout.SOUTH);

在main

中是这样调用的
login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    login.setSize(500,350);
    login.setIconImage(logo3);
    login.setVisible(true);

但是在main中如果一个语句返回true,我想进入下一个框,在这个阶段,我意识到有JPanel和JFrame这样的东西,

如果有两种类型的容器,我真的不明白它们是干什么用的,但我听说如果某个函数允许的话,这是使用动作监听器转到另一个窗口的方式,我真的不理解面板和框架的存在了,

是否有一个简单的工作?或者我必须对代码做大的修改吗?

JFrame是包含Java应用程序的Swing组件。把它想象成出现在你电脑上的窗口。JFrame可以有一个菜单栏。

JPanel是一个Swing组件,它包含其他Swing组件,如标签(JLabel)、文本输入字段(JTextArea)和按钮(JButton)。

JFrame应该有一个主JPanel。根据您希望如何安排Swing组件,您可能需要额外的jpanel。

您的代码似乎正在组合登录。您通常会使用JDialog来执行登录。

气流是这样的

  • 通过调用swingutility . invokelater (Runnable)启动Swing GUI

  • 定义你的JFrame, JPanel和所有的Swing组件

  • 显示JFrame

  • 显示登录JDialog

  • 如果凭据是有效的,允许访问GUI

Oracle Swing教程将帮助你理解Swing

最新更新