February 25th, 2010 by mbahsomo

Tutorial ini adalah penjelasan dari demo42 pada OpenSwing.

Pertama kali yang dibutuhkan adalah lib OpenSwing yang dapat anda download di http://oswing.sourceforge.net

yang kedua adalah editor terserah menggunakan apa saja boleh.

langsung saja penjelasannya seperti ini.

Untuk mengaktifkan sub grid dalam grid OpenSwing kita tinggal mengaktifkan meng enable propetiesnya.

grid.setSingleExpandableRow(true);

setelah itu buat entity yang anda butuhkan.

Yang membuat scrip pada saat grid tree di clik dapat memanggil panel adalah seperti di bawah ini :

grid.setExpandableRowController(new ExpandableRowController() {
 @Override
 public boolean isRowExpandable(VOListTableModel model, int rowNum) {
 return true;
}

 @Override
public JComponent getComponentToShow(VOListTableModel model, int rowNum) {
 EntityKamu vo = (EntityKamu) model.getObjectForRow(rowNum);
 PanelController c = new PanelController(conn, vo);
 GridPanel p = c.getPanel();
 p.setPreferredSize(new Dimension(590,480));
 p.setBorder(BorderFactory.createEtchedBorder());
 return p;
}

 @Override
public Component getFocusableComponent(JComponent showedComponent) {
 GridPanel p = (GridPanel) showedComponent;
 return p.getGrid();
}
 });

yang membuat panel tampil adalah pada event getComponentToShow, dengan mengirimkan parameter koneksi, dan entity.

untuk demo sampean bisa coba sendiri pada demo42 OpenSwing

Forum : http://forum.do-event.com/viewtopic.php?f=9&t=56

Semoga membantu

Hasil

Hasil

February 23rd, 2010 by mbahsomo

bagi pengguna java saat menggunakan JTable mungkin anda ingin memasukkan combo ke dalam jtable anda.

Kali ini saya akan menunjukkan bagaimana cara memasukkan sebuah Object JComboBox Kedalam JTabel siap !!!!!.

Yang pertama buat sebuah class dengan nama mComboEditor :


package demoCombo;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
/**
 *
 * @author mbahsomo
 */
public class mComboEditor extends  DefaultCellEditor{
 public mComboEditor(ComboBoxModel item) {
 super(new JComboBox(item));
 }
}

Kemudian buat sebuah JFrame dengan sebuah JTable Di dalamnya :

package demoCombo;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;

/**
 *
 * @author mbahsomo
 */
public class LatihanTabel extends javax.swing.JFrame {

 /** Creates new form LatihanTabel */
 public LatihanTabel() {
 initComponents();
 jTable1.getColumnModel().getColumn(1).setCellEditor(new mComboEditor(getIsiCombo()));
 }

 private ComboBoxModel getIsiCombo(){
 DefaultComboBoxModel model = new DefaultComboBoxModel();
 for(int a = 1 ; a <= 10 ; a++){
 model.addElement("Isi Combo Ke " + a );
 }
 return model ;
 }
 /** This method is called from within the constructor to
 * initialize the form.
 * WARNING: Do NOT modify this code. The content of this method is
 * always regenerated by the Form Editor.
 */
 @SuppressWarnings("unchecked")
 // <editor-fold defaultstate="collapsed" desc="Generated Code">
 private void initComponents() {

 jScrollPane1 = new javax.swing.JScrollPane();
 jTable1 = new javax.swing.JTable();

 setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 setTitle("Latihan Combo");

 jTable1.setModel(new javax.swing.table.DefaultTableModel(
 new Object [][] {
 {null, null},
 {null, null},
 {null, null},
 {null, null}
 },
 new String [] {
 "Text Biasa", "Combo"
 }
 ));
 jScrollPane1.setViewportView(jTable1);

 javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
 getContentPane().setLayout(layout);
 layout.setHorizontalGroup(
 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
 .addContainerGap(15, Short.MAX_VALUE)
 .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 398, javax.swing.GroupLayout.PREFERRED_SIZE)
 .addContainerGap())
 );
 layout.setVerticalGroup(
 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 .addGroup(layout.createSequentialGroup()
 .addContainerGap()
 .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 256, javax.swing.GroupLayout.PREFERRED_SIZE)
 .addContainerGap(14, Short.MAX_VALUE))
 );

 java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
 setBounds((screenSize.width-431)/2, (screenSize.height-308)/2, 431, 308);
 }// </editor-fold>

 /**
 * @param args the command line arguments
 */
 public static void main(String args[]) {
 java.awt.EventQueue.invokeLater(new Runnable() {
 public void run() {
 new LatihanTabel().setVisible(true);
 }
 });
 }

 // Variables declaration - do not modify
 private javax.swing.JScrollPane jScrollPane1;
 private javax.swing.JTable jTable1;
 // End of variables declaration

}

Ok Sekarang tinggal jalankan program dan silakan di explorasi sendiri :D

February 16th, 2010 by mbahsomo

Assalamu’ alaikum wr wb

Ini adalah soal ujian untuk mahasiswa Politeknik Indoensia kelas IM A dan B.

Untuk soal silakan di download di sini.

Untuk Materi latihan bisa di download disini.

Wa’alaikum salma wr wb.

February 14th, 2010 by mbahsomo

Beberapa hari yang lalu saya iseng mencari plugin netbens dan menemukan beberapa plugin yang bagus. Salah satunya adalah

JComponentPack

wih keren juga tuh komponen jika ingin download silakan masuk ke sini : http://www.zfqjava.com/download.html

Tapi sayang itu demo.

Sebelumnya saya juga minta maaf kepada pembuat [http://www.zfqjava.com] karena saya iseng membuat license nya walaupun masih muncul tulisan license not found cuman bisa di coba.

Caranya download file license.jar lalu kopikan ke folder lib hasil downloatan kamu.

download license.jar [sudah saya coba pada versi 3.0 berjalan lancar]

February 12th, 2010 by mbahsomo

Saat kita membuat sebuah program terkadang kita ingin mengambil event pada sebuah object. Sekarang kita akan membahas event yang terdapat pada Grid OpenSwing. Karena pada OpenSwing Menggunakan Metode MVC [Model View Controoler], sehingga pada beberapa komponennya pun banyak yang menggunakan metode itu.

Termasuk pada Grid [Bukan Jtable] untuk mengolah sebuah grid kita harus menggunakan class Controller yang akan menghandle semua propses pada Grid tersebut. Sekarang kita akan coba melihat event – event apa saja yang terdapat dan dapat di handle oleh class GridController pada OpenSwing.

  1. LoadData
  2. InserRecord
  3. deleteRecords
  4. dll

Ada banyak event yang bisa di tangani termasuk event enter pda grid. Tetapi ternyata tidak da evnt KeyPress pada grid. saat kita mau mengambil eventKey pada grid ternyata tidak bisa. Nah jalan keluarnya adalah dengan menambahkan event tersebut pada Controller grid.

Berikut langkah – langkahnya :

  1. Download source Openswing di http://opswing.sourceforge.net
  2. Extrack File.
  3. Kemudian edit file Grid.java dan GridController.java

Dua file tersebut terletak pada package org.openswing.swing.table.client.

Edit Grid.java :

public void keyReleased(KeyEvent e) {
 gridController.keyReleased(getSelectedRow(), Grid.this.model.getObjectForRow(getSelectedRow()),e);
 if (Grid.this.grids.getCurrentNestedComponent() != null) {
 if (Grid.this.grids.getCurrentNestedComponent() instanceof Grid
 && e instanceof KeyEvent
 && ((KeyEvent) e).getKeyCode() == e.VK_TAB) {
 return;
 }
 Grid.this.grids.getCurrentNestedComponent().dispatchEvent(e);
 //              e.consume();
 repaint();
 return;
 }

 if (getMode() == Consts.READONLY) {
 controlDown = e.isControlDown();
 } else {
 controlDown = false;
 }
}

lihat script pada baris ke dua.

gridController.keyReleased(getSelectedRow(),  Grid.this.model.getObjectForRow(getSelectedRow()),e);

pada event tersebut saya menambahkan tiga buah parameter pada event keyRelease

  1. Baris grid yang sedang aktif.
  2. Nilai berupa object data.
  3. keyEvent.

kemudian tambahkan method keyReleased pada GridController

public void keyReleased(int rowNumber,  ValueObject persistentObject, java.awt.event.KeyEvent evt) {}

Sekarang tinggal clean and build agar bisa menjadi jar dan masukkan hasil kompilan ke project kamu dan coba munculkan event pada GridController kamu.

Sekian semoga membantu

Forum : http://forum.do-event.com/viewtopic.php?f=31&t=51

February 7th, 2010 by mbahsomo

source code :

#include <iostream.h>
#include <conio.h>
int data[100];
int jml;

//Method Untuk mengosongkan data
void kosong(){
	for(int a = 0 ; a < 100 ; a++){
		data[a] = 0;
	}
	jml = 0;
	cout << "\nPengosongan data selesai\n";
}

//Method untuk mencetak data
void cetak(){
	cout << "================= Data Dalam Array =================\n";
	for(int a = 0 ; a < jml ; a++){
		cout << data[a] << "," ;
	}
	cout << "\n====================================================\n";
}

//Method untuk pengurutan data
void urut(){
	int temp;
    for(int i=0; i<jml ; i++){
        for(int j=0; j<(jml-i); j++){
            if(j+1<=jml-1){
                    if(data[j] > data[j+1]){
                        temp=data[j];
                        data[j]=data[j+1];
                        data[j+1]=temp;
                    }
            }
        }
    }
}

//Method untuk memasukkan data ke array
void inputdata(){
	cout << "Masukkan banyak data yang anda inginkan = ";
	cin >> jml;
	for(int a=0 ; a<jml ; a++){
		cout << "Masukkan data ke " << a << " = ";
		cin >> data[a];  //Simpan data ke array
	}
	//cetak();
}

void main(){
	int pilihan = 0;
	do{
		cout << endl;
		cout << "========================================\n";
		cout << " 1. Input data \n";
		cout << " 2. Pengurutan data \n";
		cout << " 3. Kosongkan data \n";
		cout << " 4. Keluar \n";
		cout << "========================================\n\n";
		cout << "Masukkan menu yang anda pilih = ";
		cin >> pilihan;
		if(pilihan > 0 && pilihan < 4){
			switch (pilihan){
				case 1:
					//Panggil fungsi untuk input data
					inputdata();
					break;
				case 2:
					//Urutkan data
					urut();
					//Cetak data
					cetak();
					break;
				case 3:
					//Kosongkan array
					kosong();
					break;
			}
		}else if(pilihan > 4){
			cout << "Data yang anda masukkan salah\n";
		}
	}while(pilihan != 4);
}
Tags:
Posted in Other Programing | 2 Comments »
January 29th, 2010 by mbahsomo
January 13th, 2010 by mbahsomo

Bagi kamu – kamu yang suka develop program web terutama yang terbiasa menggunakan linux, pasti sudah kenal dengan yang namanya gedit, terutama di ubuntu. Tidak ada salah nya anda yang terbiasa dengan windows untuk mencoba editor ini untuk membuat programweb kamu atau untuk edit file css, javascrip.

Yang jelas pada editor ini gratis jadi jangan takut nanti di tutut onleh undang – undang HAKI.

Untuk mendownload silakan masuk ke sini  : http://ftp.gnome.org/pub/gnome/binaries/win32/gedit/2.29/gedit-setup-2.29.2-1.exe .

Berikut screen shotnya :

January 9th, 2010 by mbahsomo

Saaat membuat report dengan Ireport 3.7 wah betul kata seoarang teman ada error wah mulai deh explorasi apa ya kira – kira yang error. error nya kurang lebih menyebutkan ada lib yang kurang yaitu lib nya grovy, ok download deh grovy trus jalankanlagi wah error lagi ada yang kurang lagi yaitu lib nya asm ok cari download juga asm. dan bla … sukses .

bagi yang males download libnya bisa download dari sini

Forum : http://forum.do-event.com/viewtopic.php?f=9&t=36

Semoga membantu

January 7th, 2010 by mbahsomo

Berikut source nya


ListSelectionModel rowSM = tabel1.getSelectionModel();
rowSM.addListSelectionListener(new ListSelectionListener(){
 public void valueChanged(ListSelectionEvent e) {
 tabelValueChanged(e);
 }
});

public void tabelValueChanged(ListSelectionEvent e) {
 if (e.getValueIsAdjusting()) {
 return;
 }
 ListSelectionModel rowSM = (ListSelectionModel) e.getSource();
 int selectedIndex = rowSM.getMinSelectionIndex();
 //isi event kamu
 }

Silakan di coba