这是窗口的构造函数
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