Java 具有Q&;系列化的多项选择测试GUI;A.

Java 具有Q&;系列化的多项选择测试GUI;A.,java,swing,user-interface,persistence,Java,Swing,User Interface,Persistence,我正在为学校做一个Java编程项目。我需要设计一个GUI,它将接受问题和答案并将它们存储在一个文件中。它应该能够包含无限数量的问题。我们已经讨论了二进制I/O 如何将他们提供的输入写入文件?我如何让他们从这个GUI添加多个问题 package multiplechoice; import java.awt.*; import javax.swing.*; public class MultipleChoice extends JFrame { public MultipleChoic

我正在为学校做一个Java编程项目。我需要设计一个GUI,它将接受问题和答案并将它们存储在一个文件中。它应该能够包含无限数量的问题。我们已经讨论了二进制I/O

如何将他们提供的输入写入文件?我如何让他们从这个GUI添加多个问题

package multiplechoice;
import java.awt.*;
import javax.swing.*;

public class MultipleChoice extends JFrame {
     public MultipleChoice() {
   /*
    * Setting Layout
    */
    setLayout(new GridLayout(10,10));

    /*
     * First Question
     */

     add(new JLabel("What is the category of the question?: "));
     JTextField category = new JTextField();
     add(category);

     add(new JLabel("Please enter the question you wish to ask: "));
     JTextField question = new JTextField();
     add(question);

     add(new JLabel("Please enter the correct answer: "));
     JTextField correctAnswer = new JTextField();
     add(correctAnswer);

     add(new JLabel("Please enter a reccomended answer to display: "));
     JTextField reccomendedAnswer = new JTextField(); 
     add(reccomendedAnswer);

     add(new JLabel("Please enter a choice for multiple choice option "
             + "A"));
     JTextField A = new JTextField();
     add(A);

     add(new JLabel("Please enter a choice for multiple choice option "
             + "B"));
     JTextField B = new JTextField();
     add(B);

     add(new JLabel("Please enter a choice for multiple choice option "
             + "C"));
     JTextField C = new JTextField();
     add(C);

     add(new JLabel("Please enter a choice for multiple choice option "
             + "D"));
     JTextField D = new JTextField();
     add(D);

     add(new JButton("Compile Questions"));
     add(new JButton("Next Question"));


 }

public static void main(String[] args) {
    /*
     * Creating JFrame to contain questions
     */
    FinalProject frame = new FinalProject();
   // FileOutputStream output = new FileOutputStream("Questions.dat");


    JPanel panel = new JPanel();

 //   button.setLayout();
 //   frame.add(panel);

    panel.setSize(100,100);

   // button.setPreferredSize(new Dimension(100,100)); 
    frame.setTitle("FinalProject");
    frame.setSize(600, 400);
    frame.setLocationRelativeTo(null); // Center the frame
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
}
}
第一: 在java中,基本上有两种写入文件的方法

  • ObjectOutputStream(FileOutputStream(“blah”))
  • PrintWriter(“废话”)
  • 第二: 三个或三个以上;使用一个


    这就是我在阅读
    JTextField A=newjtextfield()时想到的
    JTextField B=新的JTextField()

    他们在课程中介绍了哪些I/O?我觉得奇怪的是,学校要求你在你似乎不知道该怎么做的情况下把问答连载起来。请注意,在两次运行之间有3到4个位置,以及至少12种方法来保存(存储和检索)信息/O@AndrewThompson除非学校希望他们将对象序列化(确切地说,使用java序列化机制)为文件。因此,二进制I/O就足够了。这当然需要创建一个
    Q&a
    类型的对象,该对象从UI构造,然后可以转储到文件“they have covered binary I/O”(从注释复制到问题)中。这对我来说似乎很奇怪,因为“二进制I/O”通常被视为与“文本I/O”(我们需要考虑编码,如UTF-8或CP-1252)完全不同。这反过来似乎更倾向于Nick的观点(1),而不是我倾向于用于基本(人类可读)输出的
    PrintWriter
    。我天生就不喜欢对象序列化,因为它可能无法在不同的Java版本中读取。虽然在这种情况下,这可能不会被认为是一个问题。你是想把这篇文章作为对博比的回复吗?“我天生就不喜欢对象序列化,因为有一个巨大的警告,即它可能无法在不同的Java版本中读取。”我在这一点上运气不错。另一方面,如果你想用另一种语言获取数据,你几乎是索尔。我打算给你们两个回复,因为我主要是指你现有答案中的要点。对于“其他语言”的好点,我可能会考虑XML序列化用于这种类型的结构(特别是多选择问题),但是它似乎超出了课程的直接范围(也许?)。安德烈汤普森说:“如果我做这个作业,我会使用ObjutOutsStudio。”如果我真的想制作一个有用的应用程序,我会使用SQLite支持的Python烧瓶。