想先在jpanel上输出数据库第一条的内容,再添加jbutton并给jbutton设置监听器,通过点击jbutton显示数据库下一条内容, 输出第一条内容正常,数据库中下一条数据不为空,但点击jbutton就会报错 代码如下 public Mark(String s){ this.setVisible(true); this.setResizable(true); this.setExtendedState(JFrame.MAXIMIZED_BOTH); this.setTitle("试卷批阅"); this.setBounds(360,110,800, 600); dbconn = new QuestionBank(); conn = dbconn.getConnection(); String sql = "select * from "+s; PreparedStatement pstm = null; try { pstm = conn.prepareStatement(sql); ResultSet rs = pstm.executeQuery(); rs.next(); name = rs.getString("name"); chooseGrade = rs.getString("chooseGrade"); answer1 = rs.getString("answer1"); answer2 = rs.getString("answer2"); } catch (SQLException ex) { ex.printStackTrace(); } temp = new JPanel(); temp.setLayout(new GridLayout(2,10)); exam = new JScrollPane(temp); this.add(exam); name1 = new JPanel(); name1.setLayout(new GridLayout(6,1)); temp.add(name1); name1.add(new JLabel("姓名 "+name)); name1.add(new JLabel("选择题分数 "+chooseGrade)); name1.add(new JLabel("主观题分数")); zggr = new JTextField(); name1.add(zggr); next = new JButton("下一个"); name1.add(next); temp.add(new JTextArea(answer1)); temp.add(new JTextArea(answer2)); next.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { showAnswer(); } catch (SQLException ex) { ex.printStackTrace(); } }}); } public void showAnswer() throws SQLException { if(rs.next()){ name = rs.getString("name"); chooseGrade = rs.getString("chooseGrade"); answer1 = rs.getString("answer1"); answer2 = rs.getString("answer2"); temp.removeAll(); temp.repaint(); temp.validate(); name1 = new JPanel(); name1.setLayout(new GridLayout(6, 1)); temp.add(name1); name1.add(new JLabel("姓名 " + name)); name1.add(new JLabel("选择题分数 " + chooseGrade)); name1.add(new JLabel("主观题分数")); zggr = new JTextField(); name1.add(zggr); next = new JButton("下一个"); name1.add(next); next.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { showAnswer(); } catch (SQLException ex) { ex.printStackTrace(); } } }); temp.add(new JTextArea(answer1)); temp.add(new JTextArea(answer2)); }
String sql = "select * from "+s;
打印sql出来看看,拿到数据库里面执行一下,看看SQL语句是否合法,查询失败了。
私信我,远程帮你看看
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y