Sejujurnya gw gak tau mau kasih nama apa buat aplikasi ini. Daripada pusing-pusing akhirnya gw buat aja judulnya begitu (sori kalo agak-agak aneh judulnya!hehehe...). Setelah
sebelumnya gw nge–share game tebak gambar sederhana, sekarang gw mau ng–share game isian. Pada prinsipnya sama seperti pada game tebak gambar, hanya
saja game ini tidak menyediakan 3 gambar sebagai jawaban yang benar tetapi user
harus mengetikkan jawaban langsung ke dalam program.
Untuk
database dan table yang dibuat, kita gunakan database dan table yang sebelumnya
sudah kita buat (cara – caranya bisa diliat disini, tetapi table yang
kita gunakan hanya table soal_id saja). Tinggal tambahkan saja isi recordnya,
misalnya seperti contoh berikut :
Selanjutnya
tambahkan saja frame pada project sebelumnya (project PI_APLIKASI_CALISTUNG)
misal dengan nama FrameLatHtIs. Lalu bangun GUI – nya, contohnya seperti
berikut :
Untuk
menampilkan soal dan gambar jawaban gunakan label, untuk memasukkan jawaban
gunakan textfield, dan gunakan button untuk enter jawaban.
Dalam jendela inspector klik kanan pada
other components – pilih Add From Palette – pilih Swing – pilih JoptionPane.
Kemudian
masuk ke bagian source dan masukan package berikut :
import javax.swing.*;
import javax.swing.ImageIcon;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
Selanjutnya masukan perintah berikut dibawah public class FrameLatHtIs extends
javax.swing.JFrame {
Connection
konek;
String no_id;
String soal,knjwb;
int no_soal = 1, main = 0;
int
nilai;
String kode =
null;
java.net.URL
url, url2;
javax.swing.ImageIcon gambar, gambar2;
/** Creates new form FrameLatHtIs
*/
public
FrameLatHtIs() {
kondb();
setTitle("Latihan Berhitung -
Isian");
setResizable(false);
initComponents();
}
private void
kondb() {
try{
Class.forName("com.mysql.jdbc.Driver");
try{
String url ="jdbc:mysql://localhost:3306/calistung";
konek =DriverManager.getConnection(url);
System.out.println("Proses Koneksi Sukses");
}
catch(SQLException sqle){
System.out.println("Proses Koneksi Gagal");
}
}
catch (ClassNotFoundException cnfe){
System.err.println("Error loading driver: " + cnfe);
}
}
private void sqlquery() {
no_soal = (int)(Math.random()*57);
if (no_soal < 10) {
kode = "HIS0";
}
else {
kode = "HIS";
}
try {
String sql = "Select * from soal_lat where id_soal =
'"+kode+no_soal+"'";
Statement stmt = konek.createStatement();
ResultSet rslt = stmt.executeQuery (sql);
while (rslt.next()) {
soal = rslt.getString("soal_lat");
knjwb = rslt.getString("kunci_jawab");
url
= getClass().getResource("/"+soal);
url2 = getClass().getResource("/"+knjwb+".JPG");
gambar = new javax.swing.ImageIcon(url);
gambar2 = new javax.swing.ImageIcon(url2);
jLabel2.setIcon(gambar);
jLabel5.setIcon(gambar2);
}
} catch (Exception e) {
System.out.println("Gagal lagi" + e);
}
}
public void loopingmain() {
main++;
if (main == 5) {
int keluar = jOptionPane1.showConfirmDialog(null,"Adik - adik sudah
mengerjakan 5 soal\n" +
"Apakah
adik - adik mau latihan lagi ?","Main Lagi",
jOptionPane1.YES_NO_OPTION);
if (keluar == 0) {
dispose();
new
FrameLatHtIs().setVisible(true);
}
else {
dispose();
new FrameLathit().setVisible(true);
}
}
sqlquery();
}
Pada
button tambahkan event actionPerformed lalu masukan perintah berikut dalam
event tersebut :
private void
jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO
add your handling code here:
nilai = Integer.valueOf(lbnilai.getText());
if
(tfJawab.getText().equalsIgnoreCase(knjwb.substring(2))) {
nilai += 20;
lbnilai.setText(String.valueOf(nilai));
loopingmain();
}
else {
nilai += 0;
lbnilai.setText(String.valueOf(nilai));
loopingmain();
}
tfJawab.setText("");
}
Setelah selesai kembali ke bagian design
lalu dalam jendela inspector klik kanan pada JFramr – pilih Event – pilih
Window – pilih windowActived. Lalu tambahkan perintah berikut dalam event formWindowActivated
:
private
void formWindowActivated(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
sqlquery();
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
int x = (dim.width -
getSize().width)/2;
int y = (dim.height - getSize().height)
/ 2;
setLocation(x,y);
}
Setelah
selesai build programnya lalu jalankan. Nah gimana, mudah kaaaannn ???? Selamat mencoba !!! ^__^ i
Tidak ada komentar:
Posting Komentar