如何创建具有多个页面的swing应用程序

之前我使用servlet创建了一个小应用程序,其中第一页显示用户注册页面,该页面使用“提交”按钮捕获用户的名字和姓氏等基本信息。

假设在第一页中输入的用户名是“Scott”,然后一旦用户提交表单,则在第二页中我创建了欢迎消息“Welcome Scott”。 然后我提供了一个选项,通过连接到数据库来查看先前已注册到应用程序的用户列表。

现在我想在Swing应用程序中实现相同的function。 我是Swings的新手,所以我试图从各种来源学习它,但我无法找到一个可以在多个框架/面板之间导航的示例。

对于我在程序下面创建的第一页显示文本字段和提交按钮:

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.JLabel; import javax.swing.JTextField; public class UserRegistration extends JFrame { JButton button; public UserRegistration() { setSize(300,300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new FlowLayout()); final JLabel label = new JLabel("Please enter details: "); JLabel firstName = new JLabel("First Name"); JLabel lastName = new JLabel("Last Name"); final JTextField firstNameTxt = new JTextField(20); final JTextField lastNameTxt = new JTextField(20); button = new JButton("Submit"); JButton button1 = new JButton("Cancel"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { dispose(); UserDetails user = new UserDetails(); user.showDetails(); user.setVisible(true); } }); add(label); add(firstName); add(firstNameTxt); add(lastName); add(lastNameTxt); add(button); add(button1); setVisible(true); } public static void main(String args[]) { new UserRegistration(); } } 

从第1帧到第2帧我使用这些行:

  dispose(); UserDetails user = new UserDetails(); user.showDetails(); user.setVisible(true); 

现在第二页我无法找到如何获取用户输入的参数,这是我坚持的代码:

 import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class UserDetails extends JFrame { //private JFrame mainFrame; private JLabel headerLabel; private JLabel statusLabel; private JPanel controlPanel; public UserDetails() { prepareGUI(); } private void prepareGUI() { //mainFrame = new JFrame("Java Swing Examples"); setSize(800, 800); setLayout(new GridLayout(3, 5)); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowEvent) { System.exit(0); } }); headerLabel = new JLabel("This is Header", JLabel.CENTER); statusLabel = new JLabel("This is Status", JLabel.CENTER); statusLabel.setSize(350, 100); controlPanel = new JPanel(); controlPanel.setLayout(new FlowLayout()); System.out.println(controlPanel); add(headerLabel); add(controlPanel); add(statusLabel); //setVisible(true); } public void showDetails() { // Here I want display the welcome message and also to add all the registered user details. } } 

请帮我看看如何创建一个包含多个页面的应用程序?

Swing提供CardLayout类来提供您所需的内容。 它允许您加载两个或更多组件(JPanels)并允许共享相同的显示。 它可以像向导一样在卡片之间导航。 请查看本教程: CardLayout