Java 如何将信息从一帧传送到另一帧?
我正在做一个程序,处理顾客进入餐厅并使用该程序点餐的问题。在第一个框架中,它会询问客户的姓名,在第二个框架中,它会询问订单是什么。我已经构建了5个框架,最后一个框架应该显示他的订单摘要,其中包括客户需要支付的总金额和他/她的姓名。我怎样才能做到这一点 我只是一个初学者,当谈到编码,我可能不知道一些术语,你将使用,所以请温柔^_^ 这里是第1帧、第2帧和第5帧。我认为这应该足够了,因为第2帧、第3帧和第4帧非常相似。框架2是食物,框架3是饮料,框架4是甜点。请注意,Frame5尚未完成,可能会根据您的答案而更改。请帮帮我 Frame1.javaJava 如何将信息从一帧传送到另一帧?,java,swing,frame,Java,Swing,Frame,我正在做一个程序,处理顾客进入餐厅并使用该程序点餐的问题。在第一个框架中,它会询问客户的姓名,在第二个框架中,它会询问订单是什么。我已经构建了5个框架,最后一个框架应该显示他的订单摘要,其中包括客户需要支付的总金额和他/她的姓名。我怎样才能做到这一点 我只是一个初学者,当谈到编码,我可能不知道一些术语,你将使用,所以请温柔^_^ 这里是第1帧、第2帧和第5帧。我认为这应该足够了,因为第2帧、第3帧和第4帧非常相似。框架2是食物,框架3是饮料,框架4是甜点。请注意,Frame5尚未完成,可能会根据
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Frame1 extends JFrame implements ActionListener {
FlowLayout fl=new FlowLayout();
JLabel lb1=new JLabel("WE WELCOME YOU TO THE FINEST RESTAURANT IN TOWN!");
JButton b1=new JButton("Start!");
Icon ic1=new ImageIcon("logo.jpg");
JTextField tf1=new JTextField(10);
JLabel lb2=new JLabel(ic1);
JLabel lb3=new JLabel("Please press next to start ordering. ");
public Frame1() {
super("CHIONG'S 2 GO ORDERING SYSTEM");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500,200);
setLocationRelativeTo(null);
setLayout(fl);
add(lb2);
add(lb1);
add(lb3);
add(tf1);
add(b1);
b1.addActionListener(this);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
setVisible(false);
Frame2 f2=new Frame2();
}
public static void main(String[] args) {
Frame1 f1=new Frame1();
}
}
Frame2.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Frame2 extends JFrame implements ActionListener{
FlowLayout fl=new FlowLayout();
Icon ic1=new ImageIcon("logo.jpg");
JLabel lb2=new JLabel(ic1);
JCheckBox menu1=new JCheckBox("Adobo - 50", false);
JCheckBox menu2=new JCheckBox("Chicken Nuggets - 50", false);
JCheckBox menu3=new JCheckBox("Chicken, Bacon, and Spinach Spaghetti - 70", false);
JCheckBox menu4=new JCheckBox("Salt-and-Pepper Chicken with Spring Quinoa Pilaf - 70", false);
JCheckBox menu5=new JCheckBox("Chipotle Chicken Fajitas - 70", false);
JCheckBox menu6=new JCheckBox("Green Bean-and-Barley Chicken Casserole - 70", false);
JCheckBox menu7=new JCheckBox("Roasted Chicken and Winter Squash - 70", false);
JCheckBox menu8=new JCheckBox("Chicken and Corn Bread Pancakes with Spicy Syrup - 80", false);
JCheckBox menu9=new JCheckBox("Skillet Chicken with Creamy Cilantro Lime Sauce - 80", false);
JCheckBox menu0=new JCheckBox("Greek Chicken with Tomato-and-Rice Salad - 80", false);
JLabel lb1=new JLabel(" ");
JButton jb0=new JButton("Back");
JButton jb1=new JButton("Next");
public Frame2() {
super("Please select your order/s.");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(480,420);
setLocationRelativeTo(null);
setLayout(fl);
add(lb2);
add(menu1);
add(menu2);
add(menu3);
add(menu4);
add(menu5);
add(menu6);
add(menu7);
add(menu8);
add(menu9);
add(menu0);
//add(lb1);
add(jb0);
add(jb1);
jb0.addActionListener(this);
jb1.addActionListener(this);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand()=="Back") {
this.dispose();
Frame1 f1=new Frame1();
} else {
this.dispose();
Frame3 f3=new Frame3();
}
}
}
Frame5.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Frame5 extends JFrame implements ActionListener {
FlowLayout fl=new FlowLayout();
Icon ic1=new ImageIcon("logo.jpg");
JLabel lb2=new JLabel(ic1);
//JCheckBox menu1=new JCheckBox("Thank you for ordering!", false);
//JLabel lb3=new JLabel(" ");
JLabel lb1=new JLabel("Thank you for ordering!!! Enjoy your meal and please come back again!!!");
//JLabel lb0=new JLabel(" ");
JButton jb0=new JButton("Back");
JButton jb1=new JButton("Finish");
public Frame5() {
super("Thank you.");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(480,200);
setLocationRelativeTo(null);
setLayout(fl);
add(lb2);
//add(menu1);
//add(lb3);
add(lb1);
//add(lb0);
add(jb0);
add(jb1);
jb0.addActionListener(this);
jb1.addActionListener(this);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand()=="Back") {
this.dispose();
Frame4 f4=new Frame4();
} else {
this.dispose();
Frame1 f1=new Frame1();
}
}
}
“我已经构建了5个框架”-我建议使用
CardLayout
,请参阅。“最后一个框架应显示其订单的摘要,其中包括客户需要支付的总金额和他/她的姓名。我如何才能做到这一点?”-这表明您需要某种型号的产品,可以在不同视图之间存储您需要收集的所有信息。我们可以查看@MadProgrammer。非常感谢您的回复。看起来cardlayout非常适合在这种情况下使用,不幸的是,我没有足够的时间从头开始学习和编写代码,因为我的技能还不太好,因为这个项目(学校项目)的截止日期是明天。根据您的评论,您的意思是说不可能使用这种代码将用户在第一帧上输入的内容转换为最后一帧吗?@MadProgrammer我将您的链接添加到书签中,以便稍后我可以对其进行研究。顺便说一句。“因为此项目(学校项目)的截止日期是明天。”看来你最需要的是更好的时间管理技能。“在到期前24小时”不是向SO提出问题的时候。一些提问的人在这么长的时间内没有得到第一个答案,甚至没有得到评论。我更喜欢帮助有更好时间管理技能的人。祝你好运!