
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
public class sinav implements ActionListener
{
JLabel jlab_soru;
JRadioButton[] jrbs=new JRadioButton[5];
DefaultListModel verilencevap,sorular;
int soruindex=0;
sinav()
{
JFrame jfrm = new JFrame("Sınav Soruları");
jfrm.setSize(400,210);
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jfrm.setLayout(new GridLayout(3,1));
jlab_soru= new JLabel("Soru 1: xyz");
JPanel jp1= new JPanel();
jp1.add(jlab_soru);
jp1.setLayout(new GridLayout(1,1)); // sola dayali
JPanel jp2= new JPanel();
jp2.setLayout(new GridLayout(3,2));
ButtonGroup bg = new ButtonGroup();
for(int i=0;i<5;i++)
{
jrbs[i] = new JRadioButton("A"+i);
jp2.add(jrbs[i]);
bg.add(jrbs[i]);
}
JPanel jp3= new JPanel();
jp3.setLayout(new GridLayout(1,2));
JButton jbtn_geri= new JButton("<< Geri");
JButton jbtn_ileri= new JButton("İleri >>");
jbtn_geri.addActionListener(this);
jbtn_geri.setActionCommand("geri");
jbtn_ileri.addActionListener(this);
JPanel jp3_1 = new JPanel();
JPanel jp3_2 = new JPanel();
jp3_1.add(jbtn_geri);
jp3_2.add(jbtn_ileri);
jp3.add(jp3_1);
jp3.add(jp3_2);
jfrm.add(jp1);
jfrm.add(jp2);
jfrm.add(jp3);
soruyukle();
sorugetir(0);
jfrm.setVisible(true);
}
public int secenek()
{
for(int i=0;i<jrbs.length;i++)
{
if(jrbs[i].isSelected())
return (i+1); // gelen secenek 1-5 arasinda
}
return 0;
}
public void soruyukle()
{
Connection conn = baglan();
try{
verilencevap = new DefaultListModel();
sorular = new DefaultListModel();
String sql="select soru,A,B,C,D,E,cevap from sorular;";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
while(rs.next())
{
String veri=rs.getString("soru")+";"+rs.getString("A")+";"+rs.getString("B")+";"+rs.getString("C")+";"+rs.getString("D")+";"+rs.getString("E")+";"+rs.getString("cevap");
//System.out.println(veri);
verilencevap.addElement("0");
sorular.addElement(veri);
}
}
catch(Exception ex)
{
}
try{
conn.close();
}
catch(Exception ex)
{
}
}
public void sorugetir(int index)
{
int sorusayisi=sorular.getSize();
if(index>-1 && index<=sorusayisi)
{
int secim=secenek(); // secilen radiobutton bilgisi alindi
verilencevap.setElementAt(secim+"",soruindex);
}
if(index>-1 && index<sorusayisi)
{
soruindex=index;
String soru =sorular.getElementAt(index).toString();
String[] parca=soru.split(";");
jlab_soru.setText("Soru "+(index+1)+": "+parca[0]);
String[] harf ={"A)","B)","C)","D)","E)"};
for(int i=0;i<5;i++)
{
jrbs[i].setText(harf[i]+" "+parca[i+1]); // secenekler yukleniyor
if(verilencevap.getElementAt(index).equals((i+1)+""))
jrbs[i].setSelected(true);
}
if(verilencevap.getElementAt(index).equals("0"))
jrbs[0].setSelected(true);
}
if(index>=sorusayisi)
{
String sonuclar="";
for(int i=0;i<sorusayisi;i++)
{
String vcevap=verilencevap.getElementAt(i).toString();
String soru =sorular.getElementAt(i).toString();
String[] parca=soru.split(";");
String gcevap=parca[6]; // cevap
sonuclar+=(i+1)+") ";
if(gcevap.equals(vcevap))
sonuclar+=" Doğru\n";
else
sonuclar+=" Yanlış\n";
}
JOptionPane.showMessageDialog(null,sonuclar,"Sonuçlar",1);
}
}
public Connection baglan()
{
Connection conn=null;
try{
Class.forName("org.sqlite.JDBC");
conn=DriverManager.getConnection("jdbc:sqlite:hafta8.db");
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null,"Bağlantı yapılamadı!","Hata",0);
}
return conn;
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getActionCommand().equals("geri"))
{
sorugetir(soruindex-1);
}
else
{
sorugetir(soruindex+1);
}
}
public static void main(String[] aaa)
{
new sinav();
}
}
Java2 2015 Hafta-8 Eklentiler
Hocam kilit noktalara biraz daha açıklama satırı yazarsanız güzel olur 🙂
anlamadığınız yerleri sorarsanız cevaplarım
Veritabanını da koyma imkanınız var mı hocam.elle oluşturduğum vt de bazı hatalar alıyorum
Yazının sonunda link var oradan indirebilirsiniz