ฉันต้องทำเกมสำหรับโครงการโรงเรียนในระบบ CS ฉันต้องการสร้างมันเพื่อให้บุคคลสามารถป้อนชื่อของตนได้ และแผงต่อๆ ไปทั้งหมดจะมีชื่อของพวกเขาอยู่บนนั้น ฉันกำลังใช้เค้าโครงการ์ด ซึ่งใช้งานได้เป็นส่วนใหญ่ เมื่อฉันรันเกมและป้อนชื่อ มันจะทำงานบนการ์ดใบนั้นโดยเฉพาะ อย่างไรก็ตาม เมื่อฉันไปที่การ์ดใบถัดไป ซึ่งชื่อสตริงควรปรากฏ มันจะปรากฏเป็นค่าว่าง ความสงสัยของฉันคือโปรแกรมสร้างการ์ดทั้งหมดก่อนที่จะได้รับโอกาสในการยอมรับการป้อนชื่อและดังนั้นจึงล้มเหลว ครูของฉันก็ไม่รู้เหมือนกันว่าต้องทำอย่างไร
นี่คือส่วนของรหัส:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class NovelCards extends JFrame {
private String name;
private CardLayout cards;
private JTextField txt = new JTextField(10);
private JLabel label = new JLabel();
public NovelCards() {
super("Novel");
masterPanel = new JPanel();
cards = new CardLayout();
txt.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
name = txt.getText();
label.setText(name);
}
});
button2 = new JButton("Next");
button2.addActionListener(new NextListener());
JPanel card2 = new JPanel();
card2.add(button2);
card2.add(txt);
card2.add(label);
card2.add(new JLabel(" Enter your name "));
JButton button3 = new JButton("Next");
button3.addActionListener(new NextListener());
JPanel card3 = new JPanel();
card3.add(new JLabel("Hello there, " + name + "!"));
card3.add(button3);
masterPanel.setLayout(cards);
masterPanel.add("2",card2);
masterPanel.add("3",card3);
this.setContentPane(masterPanel);
cards.show(masterPanel, "1");
}
public class NextListener implements ActionListener{
public void actionPerformed(ActionEvent event){
cards.next(masterPanel);
}
นี่คือรูปถ่ายบางส่วนของโปรแกรมขณะทำงาน
นี่คือหน้าจอป้อนชื่อหลังจากเลือกชื่อแล้วกด Enter:
และนี่คือการ์ดใบต่อไป:
ขอบคุณล่วงหน้าสำหรับความช่วยเหลือ! (ฉันจะโพสต์ภาพโดยตรง แต่ฉันมีชื่อเสียงไม่เพียงพอ)