如何在Gui中创建一个可以保存我的打印语句的文本框?

时间:2015-06-01 02:14:55

标签: java user-interface

我试图制作基于短信的游戏,我向用户询问一系列与调查工作方式类似的问题。我想制作一个带有可以询问这些问题的框的GUI和另一个框,以便他们可以输入他们的答案。我对此进行了一些研究,但我不确定如何将他们输入的文本作为答案,因为根据他们如何回答问题,会发生不同的操作。所以我的问题是如何创建一个可以保存我的打印语句的文本框和另一个用户可以输入答案的文本框。

2 个答案:

答案 0 :(得分:0)

如果您使用Swing:对于您的问题,您可以使用JLabel并通过构造函数或setText()方法在其中设置文本。

对于用户答案,您可以使用JTextFieldJTextArea对象(取决于用户输入的预期大小)并调用getText()方法将用户输入检索为字符串

答案 1 :(得分:0)

print语句将输出打印到控制台而不是打印到应用程序,因此您可以使用string receivedStr= "abc\\efg"; string actualStr = receivedStr.Replace("\\", "\"); 函数替换打印语句。

loadQuestion()

设置您的用户界面。

  • 维持分数的分数标签。
  • 问题标签,其中包含要显示的问题。
  • 答案TextBox,它接受用户的回答。
  • 提交按钮,验证答案。

向您的按钮添加操作,从答案框中取出文本并进行验证。

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答案。