永发信息网

JBuild做考试系统平台,怎样接收单选框(A,B,C,D)值并怎样与试题数据库中的答案比较,

答案:3  悬赏:20  手机版
解决时间 2021-03-17 22:25
JBuild做考试系统平台,怎样接收单选框(A,B,C,D)值并怎样与试题数据库中的答案比较,
最佳答案
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import java.awt.Container;
import java.awt.event.ActionListener;
import javax.swing.JLabel;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.awt.event.ActionEvent;
import javax.swing.JOptionPane;

public class test2 extends JFrame implements ActionListener{
JRadioButtonMenuItem jrbm=new JRadioButtonMenuItem();
JRadioButton rb_A=new JRadioButton();
JRadioButton rb_B=new JRadioButton();
JRadioButton rb_C=new JRadioButton();
JRadioButton rb_D=new JRadioButton();
ButtonGroup bg=new ButtonGroup();
JButton action=new JButton("确 定");
Container c=new Container();
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
String sql="";
public test2(){
setTitle("考试系统");
setBounds(200,200,300,300);
String[] answer=select("1");
rb_A.setBounds(10,10,200,20);
rb_B.setBounds(10,50,200,20);
rb_C.setBounds(10,90,200,20);
rb_D.setBounds(10,130,200,20);
rb_A.setText(answer[0]);
rb_B.setText(answer[1]);
rb_C.setText(answer[2]);
rb_D.setText(answer[3]);
bg.add(rb_A);
bg.add(rb_B);
bg.add(rb_C);
bg.add(rb_D);
action.setBounds(60,200,100,30);
action.addActionListener(this);
c.add(rb_A);
c.add(rb_B);
c.add(rb_C);
c.add(rb_D);
c.add(action);
getContentPane().add(c);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}
public Connection getConn(){

try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test","sa","sa");
}catch(Exception e){
e.printStackTrace();
}
return conn;
}
public String[] select(String id){
String[] question=new String[4];

sql="select question_A,question_B,question_C,question_D from answer where id="+id;
try{
conn=getConn();
pstmt=conn.prepareStatement(sql);
rs=pstmt.executeQuery();
if(rs.next()){
question[0]=rs.getString("question_A");
question[1]=rs.getString("question_B");
question[2]=rs.getString("question_C");
question[3]=rs.getString("question_D");
}
if(rs!=null){
rs.close();
}
if(pstmt!=null){
pstmt.close();
}
if(conn!=null){
conn.close();
}
}catch(Exception e){
e.printStackTrace();
}
return question;
}

public void actionPerformed(ActionEvent e){
Object o=e.getSource();
String str="";
if(o==action){
if(rb_A.isSelected()){
str="A";
}
if(rb_B.isSelected()){
str="B";
}
if(rb_C.isSelected()){
str="C";
}
if(rb_D.isSelected()){
str="D";
}
int isTrue=check("1",str);
if(isTrue==1){
JOptionPane.showMessageDialog(null,"回答正确");
}else{
JOptionPane.showMessageDialog(null,"回答错误");
}
}
}

public int check(String id,String value){

int isTrue=0;
String choose="";
sql="select choose from answer where id="+id+"";
try{
conn=getConn();
pstmt=conn.prepareStatement(sql);
rs=pstmt.executeQuery();
if(rs.next()){
choose=rs.getString("choose").trim();
}

if(choose.equals(value)){
isTrue=1;
}
if(rs!=null){
rs.close();
}
if(pstmt!=null){
pstmt.close();
}
if(conn!=null){
conn.close();
}
}catch(Exception e){
e.printStackTrace();
}
return isTrue;

}

public static void main(String arg[]){
test2 tt=new test2();
tt.setVisible(true);

}

}

费了点时间,终于给你写好了,你看看把,我估计你是难在buttongroup读radio的值这一快了,这是我的做法,就是buuttonGroup只是确定在一个组里,读radio时用radio.selection()读出来就行了
全部回答
4个RadioButton添加到同一个RadioButtonGroup中,这样就可以保证4个中只能选取其中一个.
你可以自定义一个组件,继承于JRadioButton,添加一个属性,这个属性用来保存该RadioButton代表的选项(A/B/C/D),在判断时就可以取这个属性值与数据库比较.
这个要看你是通过jsp还是servlet来获取单选框的数值了,用jsp的话就是request("单选框name"),用servlet的话就是重写HttpServlet类的doGet方法,通过request.parameter("单选框name")获取
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求一部小说,是同性恋的,男主之一好像叫陆谦
六味地黄丸和金锁固精丸要怎么服用一般多久一
洗太热水人缺氧跟体质有关吗
老婆出轨,被我捅破,感情一落千丈,冷漠无情
填空题,方程3x一8=40的解是
左眼600度,右眼750度近视,会不会失明?
唐通线/平安路(路口)在哪里啊,我有事要去这
睡得多为什么还有黑眼圈?
患者在医院骨折手术后突然肺拴塞死亡医院有没
儿歌“过新年,真热闹,小朋友,穿新袄……”具
三星S4 开机是输入PIN码是什么情况
2015年是不是一定要参加规培才能上班,那工作
高仿小米5也能登录小米帐号吗
为什么感冒的时候爱做梦
QQ三国蜀国关隘岔路的(7,8)在那?
推荐资讯
珠海市瑞明科技有限公司这个地址在什么地方,
苹果电脑绿屏咋能请问
bb霜液体瓶底部有什么办法挤出来
古镇小酒屋在什么地方啊,我要过去处理事情
饥荒 全猎犬属性特点及打法介绍 饥荒猎犬怎么
海口科广茂家电有限公司在什么地方啊,我要过
天花板脱落,物业敷衍
汽车注册正本 去年买的一汽大众车子贷款的,
宫外孕手术费用生育报销吗
拍一百米外的鸟,大概需要多少焦段的镜头
郑玄无私文言文翻译(世说新语)
幼犬吃奶可以打预防针吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?