Vote AOS MADIG (Majalah Digital) buatan Pandu Aji Wirawan aka ndundupan anggota JC SMKN 1 Surabaya di acara Komputexpo 2009 pada tanggal 27 November - 1 Desember 2009 di Grand City Convention Center Surabaya agar menjadi juara nasional.
Lomba Majalah Digital yang diadakan oleh Komputek dan BYON. Majalah ini akan dimuat di majalah komputek edisi 650.
Majalah ini berjudul AOS karena tema dari majalah ini adalah Animasi Open Source. Dalam majalah ini banyak sekali informasi mengenai animasi open source di Indonesia.
untuk mendownload majalah ini tunggu setelah acara lomba di Komputexpo berakhir.
Kata Mutiara Hari ini :
"Tim yang baik tidak selalu menang. Tapi tim yang menang adalah tim yang dapat bekerjasama dengan baik.
Clock
Categories
- Dasar Pemrograman (3)
- Materi Java (7)
- News (16)
- Sejarah (4)
- Tutorial (13)
:: Web Link Instansi ::
Open Source Community
Blog Member JENI Sby
Milis Jeniviconsemkanisa
Grafik Pengunjung!!
Menurut Anda Blog ini
Sunday, November 22, 2009
Vote AOS (Animasi Open Source)
Posted by
Pandu Aji Wirawan
at
3:45 AM
0
comments
Monday, October 26, 2009
Anggota JC jadi pemateri Seminar Internasional di Kamboja
8 Oktober 2009
Anggota JC yaitu Irene Erlyn, Putri Diah.K dan Rara Indah.P sedang foto bersama dengan setelah acara seminar Internasional di salah satu Universitas di Kamboja...
Salah satu anggota JC sedang presentasi..
Posted by
JENI Community SMKN 1 Surabaya
at
6:58 PM
0
comments
Labels: News
Luar Biasa! Siswa SMKN 1 Surabaya Pencipta Kamus Negara-Negara Asean (Asean Dictionary) berbasis Mobile
Posted by
JENI Community SMKN 1 Surabaya
at
5:49 PM
0
comments
Labels: News
Monday, September 28, 2009
Membuat Tabel Model Untuk Sebuah Class menggunakan NetBeans
perlu diketahui kalo Swing dibuat menggunakan konsep MVC (Model View Controller), sehingga setiap komponen terdiri dari bagian Model, bagian View, dan bagian Controller.
- Model, merupakan bagian yang digunakan untuk menampung data
- View, merupakan bagian untuk menampilkan data
- Controller, merupakan bagian yang digunakan untuk proses manipulasi data.
jadi walaupun ini membuat rumit, tapi ini membuat mudah programmer dalam membuat sebuah aplikasi.
Dalam kasus ini, yaitu TABEL, yang merupakan Model adalah TableModel. yang merupakan View adalah JTable. dan yang merupakan controller adalah proses insert, update, delete dan event yang digunakan oleh TableModel dan JTable.
Sekarang kita akan mencoba membuat sebuah class yang akan digunakan oleh TableModel, misal class Orang :
public class Orang {
private String nama;
private String jenisKelamin;
private Date tanggalLahir;
private String alamat;
public Orang() {
}
public String getAlamat() {
return alamat;
}
public void setAlamat(String alamat) {
this.alamat = alamat;
}
public String getJenisKelamin() {
return jenisKelamin;
}
public void setJenisKelamin(String jenisKelamin) {
this.jenisKelamin = jenisKelamin;
}
public String getNama() {
return nama;
}
public void setNama(String nama) {
this.nama = nama;
}
public Date getTanggalLahir() {
return tanggalLahir;
}
public void setTanggalLahir(Date tanggalLahir) {
this.tanggalLahir = tanggalLahir;
}
}
sekarang kita buat sebuah class yang bernama TableModelOrang, yang merupakan class untuk model JTable. dan ingat class tersebut harus turunan dari interface TableModel :
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
public class TableModelOrang extends AbstractTableModel {
// Kumpulan Data Orang
private ArrayList
public TableModelOrang() {
// Mendeklarasikan Data
data = new ArrayList
}
// Menghapus Orang
public Orang remove(int index) {
Orang forReturn = data.remove(index);
// memberi tahu bahwa ada data yang dihapus
fireTableRowsDeleted(index, index);
return forReturn;
}
// Mendapatkan Orang
public Orang get(int index) {
return data.get(index);
}
// Menambah Orang
public boolean add(Orang e) {
boolean forReturn = data.add(e);
// Memberi tahu bahwa ada data yang masuk
fireTableRowsInserted(data.size() - 1, data.size() - 1);
return forReturn;
}
// Mengubah Orang
public Orang set(int index, Orang element) {
Orang forReturn = data.set(index, element);
// Memberitahu bahwa ada data yang diupdate
fireTableRowsUpdated(index, index);
return forReturn;
}
// Panjang Baris
public int getRowCount() {
return data.size();
}
// Panjang Kolom
public int getColumnCount() {
return 4;
}
// Nilai untuk cell(baris, kolom)
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
return data.get(rowIndex).getNama();
case 1:
return data.get(rowIndex).getJenisKelamin();
case 2:
return data.get(rowIndex).getTanggalLahir();
case 3:
return data.get(rowIndex).getAlamat();
default:
return null;
}
}
// Nama Kolom pada posisi ke-?
public String getColumnName(int column) {
switch (column) {
case 0:
return "Nama";
case 1:
return "Jenis Kelamin";
case 2:
return "Tanggal Lahir";
case 3:
return "Alamat";
default:
return null;
}
}
}
sekarang kita buat sebuah form yang digunakan untuk memanipulasi data. buatlah form seperti dibawah ini menggunakan NetBeans IDE:
keterangan :
- untuk nama menggunakan JTextField dan nama variablenya textNama
- untuk jenis kelamin menggunakan JComboBox dan nama variabelnya comboJenisKelamin
- untuk tangal lahir menggunakan JSpinner dan nama variablenya spinnerTanggalLahir
- untuk alamat menggunakan JTextArea dan nama variablenya areaAlamat
- untuk tombol tambah nama variablenya buttonTambah
- untuk tombol ubah nama variablenya buttonUbah
- untuk tombol hapus nama variablenya buttonHapus
- untuk tabel nama variablenya tableOrang
sekarang ubah nilai model comboJenisKelamin menjadi [Laki-Laki, Perempuan] :
setelah itu ubah nilai model untuk spinnerTanggalLahir menjadi Date :
setelah itu buatlah sebuah variable TableModelOrang :
setelah itu inisialisasikan nilai awal model tersebut sebelum pemanggilan metode initComponents(), lalu set model tersebut ke tableOrang :
sekarang coba jalankan, maka akan terlihat seperti ini :
sekarang beri ActionListener ke tombolTambah dengan cara klik kanan tombolnya lalu pilih Events -> Action -> actionPerformed:
private voidOrang orang = buttonTambahActionPerformed(java.awt.event.ActionEvent evt) { Orang orang = new Orang();
orang.setNama(textNama.getText());
orang.setJenisKelamin((String) comboJenisKelamin.getSelectedItem());
orang.setTanggalLahir((Date) spinnerTangalLahir.getValue());
orang.setAlamat(areaAlamat.getText());
// menambahkan ke model
modelOrang.add(orang);
}
Sekarang beri aksi untuk tombol Ubah :
private void buttonUbahActionPerformed(java.awt.event.ActionEvent evt) {
if (tableOrang.getSelectedRowCount() == 0) {
// Data Table tak ada yang terseleksi
javax.swing.JOptionPane.showMessageDialog(this, "Silahkan Seleksi Data Tabel Dulu!");
} else {
Orang orang = new Orang();
orang.setNama(textNama.getText());
orang.setJenisKelamin((String) comboJenisKelamin.getSelectedItem());
orang.setTanggalLahir((Date) spinnerTangalLahir.getValue());
orang.setAlamat(areaAlamat.getText());
// Mengubah Data yang terseleksi
int index = tableOrang.convertRowIndexToModel(tableOrang.getSelectedRow());
modelOrang.set(index, orang);
}
}
Sekarang beri aksi untuk tombolHapus :
private void buttonHapusActionPerformed(java.awt.event.ActionEvent evt) {
if (tableOrang.getSelectedRowCount() == 0) {
// Data Table tak ada yang terseleksi
javax.swing.JOptionPane.showMessageDialog
(this, "Silahkan Seleksi Data Tabel Dulu!");
} else {
if (javax.swing.JOptionPane.showConfirmDialog(this, "Anda Yakin?") ==
javax.swing.JOptionPane.OK_OPTION) {
// menghapus data yang terseleksi
int index = tableOrang.convertRowIndexToModel
(tableOrang.getSelectedRow());
modelOrang.remove(index);
}
}
}
sekarang coba jalankan formnya :
see you at next trixxx……Rock with Java!!!!!!
Posted by
JENI Community SMKN 1 Surabaya
at
12:45 AM
0
comments
Labels: Tutorial
Membuat Aplikasi Search dengan JAVA
private javax.swing.JFileChooser browse;
private javax.swing.JButton browse_btn, search_btn, reset_btn;
private javax.swing.JTextField browse_text, search_text;
private javax.swing.JTextArea area_search;
private javax.swing.JScrollPane pane_area;
private PanelFind panel;
private java.util.concurrent.ExecutorService tread;
private java.io.File dir;
private String keyword;
private RunFind findNow;
public FindFiles(){
super(”FindFiles”);
browse = new javax.swing.JFileChooser(”.”);
browse.setAcceptAllFileFilterUsed(false);
browse.setFileSelectionMode(javax.swing.JFileChooser.DIRECTORIES_ONLY);
browse_btn = new javax.swing.JButton(”Browse”);
browse_btn.addActionListener(new Aksi() );
search_btn = new javax.swing.JButton(”Search”);
search_btn.addActionListener(new Aksi() );
reset_btn = new javax.swing.JButton(”Reset”);
reset_btn.addActionListener(new Aksi() );
browse_text = new javax.swing.JTextField();
browse_text.setForeground(java.awt.Color.BLACK);
browse_text.setEnabled(false);
search_text = new javax.swing.JTextField();
area_search = new javax.swing.JTextArea();
area_search.setEditable(false);
pane_area = new javax.swing.JScrollPane(area_search);
tread = java.util.concurrent.Executors.newCachedThreadPool();
panel = new PanelFind(this);
add(panel);
setLocation(200,200);
pack();
setResizable(false);
setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
}
public void browse(){
int valid = browse.showOpenDialog(this);
if(valid == javax.swing.JFileChooser.APPROVE_OPTION){
dir = browse.getSelectedFile();
browse_text.setText(dir.getPath());
}else{
return ;
}
}
public void search(){
keyword = search_text.getText();
area_search.setText(”");
if(keyword.length()<1){ dir ="=" findnow =" new" ex =" java.util.concurrent.Executors.newCachedThreadPool();">
public void reset(){
keyword = “”;
dir = null;
search_text.setText(”");
browse_text.setText(”");
area_search.setText(”");
}
public static void main (String[] args) {
FindFiles baru = new FindFiles();
baru.setVisible(true);
}
private class Aksi implements java.awt.event.ActionListener{
public void actionPerformed(java.awt.event.ActionEvent event){
String command = event.getActionCommand();
if(command.equals(”Browse”)){
browse();
}else if(command.equals(”Reset”)){
reset();
}else if(command.equals(”Search”)){
search();
}
}
}
private class PanelFind extends javax.swing.JPanel{
private javax.swing.JFrame parent;
private java.awt.GridBagLayout layout;
private java.awt.GridBagConstraints constrait;
public PanelFind(javax.swing.JFrame parent){
this.parent = parent;
layout = new java.awt.GridBagLayout();
constrait = new java.awt.GridBagConstraints();
constrait.insets = new java.awt.Insets(5,5,5,5);
constrait.fill = java.awt.GridBagConstraints.BOTH;
setLayout(layout);
addComp(browse_text,0,0,2,1,0,0);
addComp(browse_btn,2,0,1,1,0,0);
addComp(search_text,0,1,1,1,200,0);
addComp(reset_btn,1,1,1,1,0,0);
addComp(search_btn,2,1,1,1,0,0);
addComp(pane_area,0,2,3,1,0,400);
}
public void addComp(javax.swing.JComponent comp, int kolom, int baris, int lebar, int tinggi, int lebarmanual, int tinggimanual){
constrait.gridx = kolom;
constrait.gridy = baris;
constrait.gridwidth = lebar;
constrait.gridheight = tinggi;
constrait.ipadx = lebarmanual;
constrait.ipady = tinggimanual;
layout.setConstraints(comp, constrait);
add(comp);
}
}
private class RunFind implements Runnable{
private String key;
private int count;
private FindFiles parent;
public RunFind(FindFiles parent){
this.key = keyword.startsWith(”.”) ? keyword : “.”+keyword;
this.count = 0;
this.parent = parent;
}
public synchronized void AddFiletoArea(java.io.File folder){
if(folder.isDirectory()){
java.io.File[] files = folder.listFiles();
for(java.io.File i : files){
AddFiletoArea(i);
try{
Thread.sleep(1);
}catch(InterruptedException e){
}
}
}else{
if(folder.getName().toUpperCase().endsWith(key.toUpperCase())){
area_search.append(folder.getPath()+”\n”);
count += 1;
}
}
}
public void run(){
parent.setEnabled(false);
java.io.File[] files = dir.listFiles();
for(java.io.File i : files){
AddFiletoArea(i);
try{
Thread.sleep(1);
}catch(InterruptedException e){
}
}
area_search.append(”—-FINISH—-\n”);
area_search.append(”There Are “+count+” Files Found”);
parent.setEnabled(true);
}
}
}
Posted by
JENI Community SMKN 1 Surabaya
at
12:28 AM
0
comments
Labels: Tutorial
