public class RunQuiz { public static void main(String[] args) {} Question q = new Question(); }为什么看不到窗口?
时间: 2024-02-15 19:02:59 浏览: 25
您的代码有一个问题,它在 `main` 方法中没有执行任何语句,因此不会创建 `Question` 实例。您需要将创建 `Question` 实例的语句放在 `main` 方法中,例如:
```
public class RunQuiz {
public static void main(String[] args) {
Question q = new Question(); // 创建 Question 实例
}
}
```
这样运行 `main` 方法时,将创建 `Question` 实例并显示窗口。
相关问题
public class Question extends JFrame { public Question() { super.setTitle("Quiz Game"); super.setSize(100, 150); super.setLocation(300, 200); this.setVisible(true); this.setDefaultCloseOperation(EXIT_ON_CLOSE); JPanel panel = new JPanel(); this.add(panel); JTextField textField = new JTextField(); // panel.add(textField, BorderLayout.SOUTH); panel.add(textField, new GridLayout(1, 3)); } }public class RunQuiz { public static void main(String[] args) {} Question q = new Question(); }这样写为什么不弹出窗口
你的代码有两个问题:
1. `main` 方法为空,而且没有调用 `Question` 类的构造函数。所以当你运行这个程序时,它什么也不会做。你需要在 `main` 方法中调用 `Question` 类的构造函数。
2. 在 `Question` 类的构造函数中,你需要将窗口设置为可见的,但是你的代码中没有设置。你需要在构造函数中添加 `this.setVisible(true);` 来让窗口显示出来。
以下是修改后的代码:
```
public class Question extends JFrame {
public Question() {
super.setTitle("Quiz Game");
super.setSize(100, 150);
super.setLocation(300, 200);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel panel = new JPanel();
this.add(panel);
JTextField textField = new JTextField();
panel.add(textField, new GridLayout(1, 3));
this.setVisible(true);
}
}
public class RunQuiz {
public static void main(String[] args) {
Question q = new Question();
}
}
```
现在运行 `RunQuiz` 类,你应该能够看到弹出的窗口。
public QuestionInfo(int QuestionId,String Question, String optionA,String optionB,String optionC,String optionD,int subject,String answer){ //赋值 this.QuestionId=QuestionId; this.Question=Question; this.optionA=optionA; this.optionB=optionB; this.optionC=optionC; this.optionD=optionD; this.subject=subject; this.answer=answer; } //创建一个无参构造方法 public QuestionInfo(){} } package tiku; public class tikuglxt { public static void main(String[] args) { System.out.println("********欢迎使用题库管理系统 **********\n "); drmr dm=new drmr(); dm.drjm(); } }优化这串代码加入文件类实现导入试卷功能
好的,我理解你的问题是要我优化这段代码,加入文件类实现导入试卷功能,那么我会给你提供一些优化建议。
首先,我们需要创建一个试卷类来存储试卷信息,包括试卷名称、试卷题目等。然后,我们可以创建一个文件类来读取试卷文件,将试卷信息读入到试卷类中。
下面是示例代码:
试卷类:
```
public class ExamPaper {
private String name; // 试卷名称
private List<QuestionInfo> questions; // 试题列表
public ExamPaper(String name) {
this.name = name;
questions = new ArrayList<>();
}
// 添加试题
public void addQuestion(QuestionInfo question) {
questions.add(question);
}
// 获取试卷名称
public String getName() {
return name;
}
// 获取试题列表
public List<QuestionInfo> getQuestions() {
return questions;
}
}
```
文件类:
```
public class ExamPaperFile {
// 从文件中读取试卷
public static ExamPaper readExamPaperFromFile(String fileName) throws IOException {
ExamPaper examPaper = null;
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line;
while ((line = reader.readLine()) != null) {
if (line.startsWith("试卷名称:")) {
String name = line.substring(line.indexOf(":") + 1);
examPaper = new ExamPaper(name);
} else if (line.startsWith("题目:")) {
String question = line.substring(line.indexOf(":") + 1);
String optionA = reader.readLine();
String optionB = reader.readLine();
String optionC = reader.readLine();
String optionD = reader.readLine();
int subject = Integer.parseInt(reader.readLine());
String answer = reader.readLine();
QuestionInfo questionInfo = new QuestionInfo(0, question, optionA, optionB, optionC, optionD, subject, answer);
examPaper.addQuestion(questionInfo);
}
}
reader.close();
return examPaper;
}
}
```
在主方法中,我们可以调用文件类的方法来读取试卷:
```
public static void main(String[] args) {
System.out.println("********欢迎使用题库管理系统 **********\n ");
drmr dm = new drmr();
// 读取试卷
ExamPaper examPaper = null;
try {
examPaper = ExamPaperFile.readExamPaperFromFile("exam.txt");
} catch (IOException e) {
e.printStackTrace();
}
// 输出试卷信息
System.out.println("试卷名称:" + examPaper.getName());
List<QuestionInfo> questions = examPaper.getQuestions();
for (QuestionInfo question : questions) {
System.out.println("题目:" + question.getQuestion());
System.out.println("A." + question.getOptionA());
System.out.println("B." + question.getOptionB());
System.out.println("C." + question.getOptionC());
System.out.println("D." + question.getOptionD());
System.out.println("答案:" + question.getAnswer());
System.out.println("科目:" + question.getSubject());
System.out.println();
}
}
```
注意,这里假设试卷文件的格式如下:
```
试卷名称:Java基础考试
题目:Java中,下面哪个关键字不是访问控制符?
A.private
B.public
C.protected
D.final
答案:D
科目:1
题目:Java中,下面哪个关键字用于定义常量?
A.private
B.public
C.protected
D.final
答案:D
科目:1
```
当然,这只是一个简单的示例,实际应用中还需要考虑更多的情况,比如文件不存在、文件格式错误等。