[英]How do I create more than one form in Java?
When I start my program, it loads the main form with buttons that does it's necessary functions.当我启动我的程序时,它会加载带有按钮的主窗体,这些按钮执行它的必要功能。 I'd like to know how to create a button that, once clicked, will open another form with it's own buttons and functions.
我想知道如何创建一个按钮,单击该按钮后,将打开另一个具有自己的按钮和功能的表单。
For example:例如:
Main Form has the buttons: 'Log In', 'Quit'
主窗体有按钮:“登录”、“退出”
I would like to create another form when you click on the 'Log In' button...
当您单击“登录”按钮时,我想创建另一个表单...
And yes, I know I can use String username = JOptionPane.showInputDialog("Input Username");
是的,我知道我可以使用
String username = JOptionPane.showInputDialog("Input Username");
for it, but I would like to create my own Log In form.为此,但我想创建自己的登录表单。
Any help would be much appreciated...任何帮助将非常感激...
First, write the following LogInForm class.首先,编写以下 LogInForm 类。
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class LogInForm extends JPanel
{
JTextField username, password;
JButton login;
public LogInForm()
{
this.setLayout(new FlowLayout());
username = new JTextField("Username");
this.add(username);
password = new JTextField("Password");
this.add(password);
login = new JButton("log in");
this.add(login);
}
}
Then write the following class to do the job.然后编写以下类来完成这项工作。
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MainForm extends JPanel
{
private JButton quit, logIn;
public MainForm()
{
this.setLayout(new FlowLayout());
quit = new JButton("quit");
this.add(quit);
logIn = new JButton("login");
this.add(logIn);
ActionHandler handler = new ActionHandler();
logIn.addActionListener(handler);
}
private class ActionHandler implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
if(event.getSource() == logIn)
{
JFrame logInFrame = new JFrame();
LogInForm logInForm = new LogInForm();
logInFrame.getContentPane().add(logInForm);
logInFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
logInFrame.setSize(400,300);
logInFrame.setVisible(true);
}
}
}
public static void main(String[] args)
{
JFrame mainFrame = new JFrame();
MainForm panel = new MainForm();
mainFrame.getContentPane().add(panel);
mainFrame.setSize(300,200);
mainFrame.setVisible(true);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.