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