Java 具有Q&;系列化的多项选择测试GUI;A.
我正在为学校做一个Java编程项目。我需要设计一个GUI,它将接受问题和答案并将它们存储在一个文件中。它应该能够包含无限数量的问题。我们已经讨论了二进制I/O 如何将他们提供的输入写入文件?我如何让他们从这个GUI添加多个问题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
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烧瓶。