我试图制作基于短信的游戏,我向用户询问一系列与调查工作方式类似的问题。我想制作一个带有可以询问这些问题的框的GUI和另一个框,以便他们可以输入他们的答案。我对此进行了一些研究,但我不确定如何将他们输入的文本作为答案,因为根据他们如何回答问题,会发生不同的操作。所以我的问题是如何创建一个可以保存我的打印语句的文本框和另一个用户可以输入答案的文本框。
答案 0 :(得分:0)
如果您使用Swing:对于您的问题,您可以使用JLabel
并通过构造函数或setText()
方法在其中设置文本。
对于用户答案,您可以使用JTextField
或JTextArea
对象(取决于用户输入的预期大小)并调用getText()
方法将用户输入检索为字符串
答案 1 :(得分:0)
print语句将输出打印到控制台而不是打印到应用程序,因此您可以使用string receivedStr= "abc\\efg";
string actualStr = receivedStr.Replace("\\", "\");
函数替换打印语句。
loadQuestion()
设置您的用户界面。
向您的按钮添加操作,从答案框中取出文本并进行验证。
public void LoadQuestion(String question)
{
label1.setText(question);//label1 is the questions label which sets the string question to the label
}
//==setting up the labels
JButton answerButton;
JPanel panel;
JLabel label1,label2;
final JTextField text2;
JLabel scoreLabel;
int score = 0;
Quiz()
{
label1 = new JLabel();
label1.setText("Questions:");//questions label
scoreLabel = new JLabel("SCORE: ");
label2 = new JLabel();
label2.setText("Answer:");//answer label
text2 = new JTextField(15);//answer textfield
answerButton=new JButton("ANSWER");
panel=new JPanel(new GridLayout(3,1));
panel.add(scoreLabel);
panel.add(label1);
panel.add(label2);
panel.add(text2);
panel.add(answerButton);
add(panel,BorderLayout.CENTER);
answerButton.addActionListener(this);
setTitle("QUIZ");
}
应用程序的总代码在这里:
public void actionPerformed(ActionEvent ae)
{
String answer =text2.getText();
if(answer.equals(" "))
{
JOptionPane.showMessageDialog(this,"Correct Answer");
score++;
scoreLabel.setText("SCORE: "+score);
}
else{
JOptionPane.showMessageDialog(this,"Wrong Answer");
scoreLabel.setText("SCORE: "+score);
}
}
修改强>
设置答案
只要您加载问题设置答案,请在用户点击答案按钮时进行比较,如果它与import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Quiz extends JFrame implements ActionListener
{
JButton answerButton;
JPanel panel;
JLabel label1,label2;
final JTextField text2;
JLabel scoreLabel;
int score = 0;
Quiz()
{
label1 = new JLabel();
label1.setText("Questions:");//questions label
scoreLabel = new JLabel("SCORE: ");
label2 = new JLabel();
label2.setText("Answer:");//answer label
text2 = new JTextField(15);//answer textfield
answerButton=new JButton("ANSWER");
panel=new JPanel(new GridLayout(3,1));
panel.add(scoreLabel);
panel.add(label1);
panel.add(label2);
panel.add(text2);
panel.add(answerButton);
add(panel,BorderLayout.CENTER);
answerButton.addActionListener(this);
setTitle("QUIZ");
}
public void LoadQuestion(String question)
{
label1.setText(question);
}
public void actionPerformed(ActionEvent ae)
{
String answer =text2.getText();
if(answer.equals(" "))
{
JOptionPane.showMessageDialog(this,"Correct Answer");
score++;
scoreLabel.setText("SCORE: "+score);
}
else{
JOptionPane.showMessageDialog(this,"Wrong Answer");
scoreLabel.setText("SCORE: "+score);
}
}
}
class QuizDemo
{
public static void main(String arg[])
{
try
{
Quiz frame=new Quiz();
frame.setSize(300,100);
frame.setVisible(true);
}
catch(Exception e)
{JOptionPane.showMessageDialog(null, e.getMessage());}
}
}
相同,则为correct
答案。