Java-2(2015) 8. Hafta Swing Uygulamaları
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(); } }
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