public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if (e.getSource() == next) { // 显示下一题 currentQuestion++; if (currentQuestion < questions.size()) { showQuestion(questions.get(currentQuestion)); next.setEnabled(false); } else { // 所有题目已经回答完毕,显示得分和结果 questionPanel.setVisible(false); answerPanel.setVisible(false); buttonPanel.setVisible(false); text1.setText("Score: " + score + "/" + questions.size()); resultPanel.setVisible(true); } } else if (e.getSource() == submitButton) { // 检查答案是否正确,并更新得分和结果 Question question = questions.get(currentQuestion); int selectedAnswerIndex = -1; for (int i = 0; i < 4; i++) { if (answerButtons[i].isSelected()) { selectedAnswerIndex = i; } } if (selectedAnswerIndex == question.getCorrectAnswerIndex()) { score++; text1.setText("Correct!"); } else { text1.setText("Incorrect. The correct answer is: " + question.getCorrectAnswer()); } next.setEnabled(true); answerGroup.clearSelection(); } } }怎么删除submitt,让问题全部结束之后自动显示分数?
时间: 2024-01-26 11:01:55 浏览: 70
你可以在`if (currentQuestion < questions.size()) { ... }`的else语句块中添加一段代码,用来自动提交最后一题并显示分数。具体的实现方式可以参考下面的代码:
```java
if (currentQuestion < questions.size() - 1) {
// 显示下一题
currentQuestion++;
showQuestion(questions.get(currentQuestion));
next.setEnabled(false);
} else {
// 提交最后一题的答案
submitButton.doClick();
// 所有题目已经回答完毕,显示得分和结果
questionPanel.setVisible(false);
answerPanel.setVisible(false);
buttonPanel.setVisible(false);
text1.setText("Score: " + score + "/" + questions.size());
resultPanel.setVisible(true);
}
```
这段代码中,我们在判断当前问题是否是最后一题时,将`questions.size()`减去了1。这是因为我们需要在判断最后一题时自动提交答案,所以我们需要在最后一题之前就显示得分和结果。当然,你也可以在最后一题提交答案之后再显示得分和结果,这取决于你的具体需求。
相关问题
package 软件本科9班小罗; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.Statement; import java.sql.*; import javax.swing.*; public class Java06 extends JFrame implements ActionListener{ JButton Button; JLabel s1; JTextField text; JTextArea ta; Connection conn; java.sql.Statement stat1; java.sql.Statement stat2; ResultSet rs1,rs2; public Java06() { super("中英文查询"); Button=new JButton("查询"); Button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { chazhao(); } }); s1=new JLabel("输入要查询的单词:"); text =new JTextField("word",20); ta = new JTextArea("工作",7,36); JPanel panel=new JPanel(); panel.add(s1); panel.add(text); panel.add(Button); JPanel panel2=new JPanel(); panel2.add(ta); Container con=getContentPane(); con.add(panel,BorderLayout.NORTH); con.add(panel2); setSize(400,200); } public void chazhao() { String i; try { Class.forName("com.mysql.jdbc.Driver");//加载连接驱动; conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/sys?serverTimezone=UTC", "root", "123456"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block System.out.println("加载驱动失败"); } catch (SQLException e) { System.out.println("获取连接失败"); } String sql1="select 中文 from book where 英文="+"\""+text+"\""; String sql2="select 英文 from book where 中文="+"\""+text+"\""; try { stat1=conn.createStatement(); rs1=stat1.executeQuery(sql1); stat2=conn.createStatement(); rs2=stat2.executeQuery(sql2); while(rs1.next()) { System.out.println(rs1.getString("中文")); } while (rs2.next()) { System.out.println(rs2.getString("英文")); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { new Java06().setVisible(true); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getSource()==Button) { String text=ta.getText(); ta.setText(text);; } } }这个代码中哪里有错呀,运行不了,还连接不成数据库
有几个可能的错误:
1. 缺少 MySQL JDBC 驱动jar包。你需要下载并导入MySQL JDBC驱动jar包,以便程序能够连接到MySQL数据库。
2. 数据库连接字符串错误。你目前的连接字符串是`jdbc:mysql://localhost:3306/sys?serverTimezone=UTC`,其中`localhost`应该是你本地MySQL服务器的IP地址或主机名。你需要修改连接字符串以正确指定MySQL服务器。
3. SQL查询语句错误。你的查询语句可能有问题。你需要检查语句是否正确,并且确定你的数据库中是否有名为“book”的表。
4. 代码中的其他潜在错误。在代码中有其他的潜在错误,例如未处理异常或变量命名错误。你需要仔细检查代码并修复任何错误。
package my; import javax.swing.*; import java.awt.event.*; public class ButtonClickEvent extends JFrame{ JButton btn; public static void main(String[] args) { // TODO Auto-generated method stub ButtonClickEvent frame=new ButtonClickEvent(); } public ButtonClickEvent() { super("Window Title"); btn=new JButton("Click here"); getContentPane().add("Center",btn); ButtonListener listen=new ButtonListener(); btn.addActionListener(listen); setSize(200,300); setVisible(true); } class ButtonListener implements ActionListener{ public void actionPerformed(ActionEvent e) { JButton source=(JButton)e.getSource(); source.setText("Button clicked"); } } }如何改为两个命令按钮
您可以将原来的按钮代码复制并稍作修改来创建第二个按钮,然后将它们分别添加到 JFrame 的内容面板中。修改后的代码如下:
```java
package my;
import javax.swing.*;
import java.awt.event.*;
public class ButtonClickEvent extends JFrame{
JButton btn1, btn2;
public static void main(String[] args) {
ButtonClickEvent frame=new ButtonClickEvent();
}
public ButtonClickEvent() {
super("Window Title");
btn1=new JButton("Click here");
getContentPane().add("Center",btn1);
ButtonListener listen1=new ButtonListener();
btn1.addActionListener(listen1);
btn2=new JButton("Or click here");
getContentPane().add("South",btn2); // 添加到南侧
ButtonListener listen2=new ButtonListener();
btn2.addActionListener(listen2);
setSize(200,300);
setVisible(true);
}
class ButtonListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
JButton source=(JButton)e.getSource();
source.setText("Button clicked");
}
}
}
```
这个示例代码中,我们在 JFrame 的内容面板中添加了两个按钮,分别是 `btn1` 和 `btn2`。它们分别添加在中心和南侧位置,以便能够在界面上区分它们的位置。同时,我们创建了两个相同的按钮监听器 `ButtonListener` 用于监听这两个按钮的点击事件。
阅读全文