<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4837068640686273747</id><updated>2012-02-16T00:49:40.695-08:00</updated><title type='text'>Boso Java</title><subtitle type='html'>This blog for sharing all about java programming, and random programming.&lt;br&gt;&lt;br&gt;


Blog ini merupakan tempat untuk sharing/berbagi semua tentang pemrograman java, tutorial tentang pemrograman VB(Visual Basic), Delphi, C++, Ruby, SEO &amp;amp; Trading</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bosojava.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bosojava.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Warrior Mojopahit</name><uri>http://www.blogger.com/profile/13371813418207523209</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4837068640686273747.post-6219342979502367917</id><published>2010-02-09T06:29:00.000-08:00</published><updated>2010-02-09T16:11:51.295-08:00</updated><title type='text'>Simple DB Explorer via Java socket</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Simple DB Explorer via Java socket&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Program dibuat sebagai Pembelajaran tentang java socket.&lt;br /&gt;&lt;br /&gt;Kelebihan:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Ringan dan simple karena hanya terdiri dari 6 class&lt;/li&gt;&lt;li&gt;Flexibel karena mampu menangani multiple database(PostgreSql,Oracle,MySql,Ms-SqlServer)&lt;/li&gt;&lt;li&gt;Mampu menganngani multiple Client.&lt;/li&gt;&lt;/ol&gt;Kekurangan:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Interface/tampilan kurang menarik.&lt;/li&gt;&lt;li&gt;masih terdapat banyak bug.&lt;/li&gt;&lt;/ol&gt;ScreenShot:&lt;br /&gt;&lt;br /&gt;DBServer&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9DRGdeQ-tfo/S3F1nWVCShI/AAAAAAAAAA4/Dq7cbemtpQ0/s1600-h/dbserver.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 169px;" src="http://3.bp.blogspot.com/_9DRGdeQ-tfo/S3F1nWVCShI/AAAAAAAAAA4/Dq7cbemtpQ0/s320/dbserver.JPG" alt="" id="BLOGGER_PHOTO_ID_5436255544082057746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;DBClient&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9DRGdeQ-tfo/S3F2IPUpt1I/AAAAAAAAABA/b2SFDZEQIjs/s1600-h/dbclient.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 130px;" src="http://1.bp.blogspot.com/_9DRGdeQ-tfo/S3F2IPUpt1I/AAAAAAAAABA/b2SFDZEQIjs/s320/dbclient.JPG" alt="" id="BLOGGER_PHOTO_ID_5436256109137082194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Yang ingin mencoba atau mengembangkan bisa download project client disini &lt;a href="http://www.ziddu.com/download/8517235/dbexplorer.part01.rar.html"&gt;part1&lt;/a&gt;,&lt;a href="http://www.ziddu.com/download/8521171/dbexplorer.part02.rar.html"&gt;part2&lt;/a&gt;,&lt;a href="http://www.ziddu.com/download/8521041/dbexplorer.part03.rar.html"&gt;part3&lt;/a&gt;,&lt;a href="http://www.ziddu.com/download/8521202/dbexplorer.part04.rar.html"&gt;part4&lt;/a&gt;,&lt;a href="http://www.ziddu.com/download/8521203/dbexplorer.part05.rar.html"&gt;part5&lt;/a&gt;,&lt;a href="http://www.blogger.com/post-edit.do"&gt;part6&lt;/a&gt;,&lt;a href="http://www.ziddu.com/download/8521298/dbexplorer.part07.rar.html"&gt;part7&lt;/a&gt;&lt;a&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4837068640686273747-6219342979502367917?l=bosojava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bosojava.blogspot.com/feeds/6219342979502367917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bosojava.blogspot.com/2010/02/simple-db-explorer-via-java-socket.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/6219342979502367917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/6219342979502367917'/><link rel='alternate' type='text/html' href='http://bosojava.blogspot.com/2010/02/simple-db-explorer-via-java-socket.html' title='Simple DB Explorer via Java socket'/><author><name>M Samsul Amin</name><uri>http://www.blogger.com/profile/13654181787193223418</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_9DRGdeQ-tfo/S3F1nWVCShI/AAAAAAAAAA4/Dq7cbemtpQ0/s72-c/dbserver.JPG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4837068640686273747.post-1972096522050314137</id><published>2009-06-24T22:11:00.000-07:00</published><updated>2009-06-24T22:11:45.495-07:00</updated><title type='text'>Dunia Lirik Hani_CT: Agnes Monica - Teruskanlah</title><content type='html'>&lt;a href="http://dunialirikhoney.blogspot.com/2009/06/agnes-monica-teruskanlah.html#comments"&gt;Dunia Lirik Hani_CT: Agnes Monica - Teruskanlah&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4837068640686273747-1972096522050314137?l=bosojava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://dunialirikhoney.blogspot.com/2009/06/agnes-monica-teruskanlah.html#comments' title='Dunia Lirik Hani_CT: Agnes Monica - Teruskanlah'/><link rel='replies' type='application/atom+xml' href='http://bosojava.blogspot.com/feeds/1972096522050314137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bosojava.blogspot.com/2009/06/dunia-lirik-hanict-agnes-monica.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/1972096522050314137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/1972096522050314137'/><link rel='alternate' type='text/html' href='http://bosojava.blogspot.com/2009/06/dunia-lirik-hanict-agnes-monica.html' title='Dunia Lirik Hani_CT: Agnes Monica - Teruskanlah'/><author><name>Rachmad HW</name><uri>http://www.blogger.com/profile/09336454156854994315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_yOh4Xju6mVA/Sh4bgKlot4I/AAAAAAAAAEk/jM97_Cm8tTo/S220/Rachmad+Hadi+Wijoyo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4837068640686273747.post-5544497817547898936</id><published>2009-06-16T15:32:00.000-07:00</published><updated>2009-06-16T16:14:15.366-07:00</updated><title type='text'>Jam Dan Calendar JAVA</title><content type='html'>Program sederhana untuk menampilkan jam dan calendar&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;* To change this template, choose Tools | Templates&lt;br /&gt;* and open the template in the editor.&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;* date.java&lt;br /&gt;*&lt;br /&gt;* Created on Jun 17, 2009, 5:55:27 AM&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;package jamcalendar;&lt;br /&gt;import javax.swing.*;&lt;br /&gt;import java.io.*;&lt;br /&gt;import java.awt.event.*;&lt;br /&gt;import java.util.*;&lt;br /&gt;/**&lt;br /&gt;*&lt;br /&gt;* @author x1m4&lt;br /&gt;*/&lt;br /&gt;public class date extends javax.swing.JFrame {&lt;br /&gt;&lt;br /&gt;   /** Creates new form date */&lt;br /&gt;   public date() {&lt;br /&gt;       initComponents();&lt;br /&gt;       setResizable(false);&lt;br /&gt;       GregorianCalendar sekarang = new GregorianCalendar();&lt;br /&gt;       infoWaktu(sekarang);&lt;br /&gt;       Jam();&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   /** This method is called from within the constructor to&lt;br /&gt;    * initialize the form.&lt;br /&gt;    * WARNING: Do NOT modify this code. The content of this method is&lt;br /&gt;    * always regenerated by the Form Editor.&lt;br /&gt;    */&lt;br /&gt;   @SuppressWarnings("unchecked")&lt;br /&gt;   // &lt;editor-fold defaultstate="collapsed" desc="Generated Code"&gt;//GEN-BEGIN:initComponents&lt;br /&gt;   private void initComponents() {&lt;br /&gt;&lt;br /&gt;       lblcalendar = new javax.swing.JLabel();&lt;br /&gt;       lbljam = new javax.swing.JLabel();&lt;br /&gt;&lt;br /&gt;       setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);&lt;br /&gt;       setTitle("jam dan calendar");&lt;br /&gt;&lt;br /&gt;       lbljam.setFont(new java.awt.Font("Tahoma", 1, 20)); // NOI18N&lt;br /&gt;       lbljam.setForeground(new java.awt.Color(255, 51, 51));&lt;br /&gt;&lt;br /&gt;       javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());&lt;br /&gt;       getContentPane().setLayout(layout);&lt;br /&gt;       layout.setHorizontalGroup(&lt;br /&gt;           layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;           .addGroup(layout.createSequentialGroup()&lt;br /&gt;               .addGap(29, 29, 29)&lt;br /&gt;               .addComponent(lblcalendar, javax.swing.GroupLayout.PREFERRED_SIZE, 226, javax.swing.GroupLayout.PREFERRED_SIZE)&lt;br /&gt;               .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)&lt;br /&gt;               .addComponent(lbljam, javax.swing.GroupLayout.PREFERRED_SIZE, 126, javax.swing.GroupLayout.PREFERRED_SIZE)&lt;br /&gt;               .addContainerGap(13, Short.MAX_VALUE))&lt;br /&gt;       );&lt;br /&gt;       layout.setVerticalGroup(&lt;br /&gt;           layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;           .addGroup(layout.createSequentialGroup()&lt;br /&gt;               .addGap(19, 19, 19)&lt;br /&gt;               .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)&lt;br /&gt;                   .addComponent(lblcalendar, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)&lt;br /&gt;                   .addComponent(lbljam, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE))&lt;br /&gt;               .addContainerGap(25, Short.MAX_VALUE))&lt;br /&gt;       );&lt;br /&gt;&lt;br /&gt;       pack();&lt;br /&gt;   }// &lt;/editor-fold&gt;//GEN-END:initComponents&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   public void infoWaktu(GregorianCalendar cal){&lt;br /&gt;       String hari[] = {" ","Minggu","Senin","Selasa",&lt;br /&gt;                       "Rabu","Kamis","Jumat","Sabtu"};&lt;br /&gt;       String bulan[] = {"Januari","Pebruari","Maret","April","Mei","Juni","Juli",&lt;br /&gt;                           "Agustus","September","Oktober","November","Desember"};&lt;br /&gt;&lt;br /&gt;       String day = hari[cal.get(Calendar.DAY_OF_WEEK)];&lt;br /&gt;       int date = cal.get(Calendar.DATE);&lt;br /&gt;       String month = bulan[cal.get(Calendar.MONTH)];&lt;br /&gt;       int year = cal.get(Calendar.YEAR);&lt;br /&gt;&lt;br /&gt;       lblcalendar.setText("Hari "+day+" Tanggal "+date+" "+month+" "+year);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   public void Jam() {&lt;br /&gt;       ActionListener taskPerformer = new ActionListener() {&lt;br /&gt;           public void actionPerformed(ActionEvent evt) {&lt;br /&gt;               String waktu[] ={"Pagi","Malam"};&lt;br /&gt;&lt;br /&gt;               String nol_jam = "";&lt;br /&gt;               String nol_menit = "";&lt;br /&gt;               String nol_detik = "";&lt;br /&gt;               // Membuat Tanggal&lt;br /&gt;               Calendar dt = Calendar.getInstance();&lt;br /&gt;&lt;br /&gt;               // Mengambil nilaj JAM, MENIT, dan DETIK Sekarang&lt;br /&gt;               int nilai_jam = dt.get(dt.HOUR_OF_DAY);&lt;br /&gt;               int nilai_menit = dt.get(dt.MINUTE);&lt;br /&gt;               int nilai_detik = dt.get(dt.SECOND);&lt;br /&gt;               String wkt = waktu[dt.get(dt.AM_PM)];&lt;br /&gt;&lt;br /&gt;               if (nilai_jam &lt;= 9) {&lt;br /&gt;                   // Menambahkan "0" didepannya&lt;br /&gt;                   nol_jam = "0";&lt;br /&gt;                   }&lt;br /&gt;               // Jika nilai MENIT lebih kecil dari 10 (hanya 1 digit)&lt;br /&gt;               if (nilai_menit &lt;= 9) {&lt;br /&gt;                   // Menambahkan "0" didepannya&lt;br /&gt;                   nol_menit = "0";&lt;br /&gt;                   }&lt;br /&gt;               // Jika nilai DETIK lebih kecil dari 10 (hanya 1 digit)&lt;br /&gt;               if (nilai_detik &lt;= 9) {&lt;br /&gt;                   // Tambahkan "0" didepannya&lt;br /&gt;                   nol_detik = "0";&lt;br /&gt;                   }&lt;br /&gt;               // Membuat String JAM, MENIT, DETIK&lt;br /&gt;               String jam = nol_jam + Integer.toString(nilai_jam);&lt;br /&gt;               String menit = nol_menit + Integer.toString(nilai_menit);&lt;br /&gt;               String detik = nol_detik + Integer.toString(nilai_detik);&lt;br /&gt;&lt;br /&gt;               // Menampilkan pada Layar&lt;br /&gt;               lbljam.setText(jam +" : "+menit+" : "+detik);&lt;br /&gt;           }&lt;br /&gt;           };&lt;br /&gt;           // Timer&lt;br /&gt;           new javax.swing.Timer(1000, taskPerformer).start();&lt;br /&gt;   }&lt;br /&gt;   /**&lt;br /&gt;   * @param args the command line arguments&lt;br /&gt;   */&lt;br /&gt;   public static void main(String args[]) {&lt;br /&gt;       java.awt.EventQueue.invokeLater(new Runnable() {&lt;br /&gt;           public void run() {&lt;br /&gt;               new date().setVisible(true);&lt;br /&gt;           }&lt;br /&gt;       });&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   // Variables declaration - do not modify//GEN-BEGIN:variables&lt;br /&gt;   private javax.swing.JLabel lblcalendar;&lt;br /&gt;   private javax.swing.JLabel lbljam;&lt;br /&gt;   // End of variables declaration//GEN-END:variables&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9DRGdeQ-tfo/Sjgm1X9Y_eI/AAAAAAAAAAM/d5Atz3Byl4Y/s1600-h/jam.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 89px;" src="http://4.bp.blogspot.com/_9DRGdeQ-tfo/Sjgm1X9Y_eI/AAAAAAAAAAM/d5Atz3Byl4Y/s320/jam.jpg" alt="" id="BLOGGER_PHOTO_ID_5348067255908892130" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4837068640686273747-5544497817547898936?l=bosojava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bosojava.blogspot.com/feeds/5544497817547898936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bosojava.blogspot.com/2009/06/jam-dan-calendar-java.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/5544497817547898936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/5544497817547898936'/><link rel='alternate' type='text/html' href='http://bosojava.blogspot.com/2009/06/jam-dan-calendar-java.html' title='Jam Dan Calendar JAVA'/><author><name>M Samsul Amin</name><uri>http://www.blogger.com/profile/13654181787193223418</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_9DRGdeQ-tfo/Sjgm1X9Y_eI/AAAAAAAAAAM/d5Atz3Byl4Y/s72-c/jam.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4837068640686273747.post-2984479193955533117</id><published>2009-06-15T16:33:00.001-07:00</published><updated>2009-06-15T17:02:47.241-07:00</updated><title type='text'>Decompile program java</title><content type='html'>&lt;p&gt;suatu kali saya browsing dan menemukan satu aplikasi java dalam bentuk jar tapi masih gak bisa masuk n di jalankan gara gara harus input user sama passwordnya dulu, ih pusing....&lt;br /&gt;trus saya coba exctract aplikasi tersebut pake winrar.. ok... tapi..&lt;br /&gt;eh ternyata udah dalam format class... gimana dong..&lt;/p&gt; &lt;p&gt;jadinya terpikir, bisa gak ya program java yang sudah di compile jadi class itu di lihat lagi codingnya...&lt;/p&gt; &lt;p&gt;setelah browsing beberapa lama akhirnya ketemu juga satu program untuk mendecompile class, namanya DJ Decompiler yang bisa di downlod di &lt;a href="http://www.4shared.com/file/28225021/65d79b22/Dj_Java_Decompiler.html" mce_href="http://www.4shared.com/file/28225021/65d79b22/Dj_Java_Decompiler.html"&gt;sini&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;setelah dicoba..&lt;br /&gt;well ,, sukses abis... ketahuan semua deh codingnya,, n sekarang udah bisa login&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4837068640686273747-2984479193955533117?l=bosojava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bosojava.blogspot.com/feeds/2984479193955533117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bosojava.blogspot.com/2009/06/decompile-program-java_15.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/2984479193955533117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/2984479193955533117'/><link rel='alternate' type='text/html' href='http://bosojava.blogspot.com/2009/06/decompile-program-java_15.html' title='Decompile program java'/><author><name>M Samsul Amin</name><uri>http://www.blogger.com/profile/13654181787193223418</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4837068640686273747.post-8546783641795385425</id><published>2009-06-12T21:52:00.000-07:00</published><updated>2009-06-12T22:03:36.272-07:00</updated><title type='text'>Memodifikasi Registry Windows Dengan Menggunakan java (Windows Registry Modification With Java)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_yOh4Xju6mVA/SjMs5fZeMHI/AAAAAAAAAGU/QgEcXanxOlQ/s1600-h/Modifikasi+registri+windows+dengan+java.zip.jpg" alt ="Memodifikasi Registry Windows Dengan Menggunakan java (Windows Registry Modification With Java)"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 218px;" src="http://1.bp.blogspot.com/_yOh4Xju6mVA/SjMs5fZeMHI/AAAAAAAAAGU/QgEcXanxOlQ/s320/Modifikasi+registri+windows+dengan+java.zip.jpg" alt ="Memodifikasi Registry Windows Dengan Menggunakan java (Windows Registry Modification With Java)" id="BLOGGER_PHOTO_ID_5346666548811411570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Untuk Download Source Code&lt;a href="http://www.ziddu.com/download/5167417/rCobaRegistry-src-rachmadhw.co.cc.zip.html" alt="CobaRegistry-src-rachmadhw.co.cc.zip"&gt; disini&lt;/a&gt; &lt;a href="http://rapidshare.com/files/243954919/rCobaRegistry-src-rachmadhw.co.cc.zip.html" alt="CobaRegistry-src-rachmadhw.co.cc.zip"&gt;mirror1&lt;/a&gt; &lt;a href="http://www.4shared.com/file/111513635/8991736a/rCobaRegistry-src-rachmadhwcocc.html" alt="CobaRegistry-src-rachmadhw.co.cc.zip"&gt;mirror2&lt;/a&gt;&lt;br /&gt;Untuk Download binary      &lt;a href="http://www.ziddu.com/download/5167369/CobaRegistry-bin-rachmadhw.co.cc.zip.html" alt="CobaRegistry-bin-rachmadhw.co.cc.zip"&gt;disini&lt;/a&gt; &lt;a href="http://rapidshare.com/files/243953866/CobaRegistry-bin-rachmadhw.co.cc.zip.html" alt="CobaRegistry-bin-rachmadhw.co.cc.zip"&gt;mirror1&lt;/a&gt; &lt;a href="http://www.4shared.com/file/111513267/1de14edf/CobaRegistry-bin-rachmadhwcocc.html" alt="CobaRegistry-bin-rachmadhw.co.cc.zip"&gt;mirror2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Saya menulias artikel ini karena beberapa hari kemarin komputer saya dijahili virus dan registry windwos xp saya di acak-acak. nah dari sini saya berfikiran apakah java juga mempunyai kemampuan untuk ngacak-acak registry windows? dan teryata Java Is Powerfull. gak salah saya memilih java sebagai bahasa pemograman kesayangan. ok sekarang kita mualai aja.&lt;br /&gt;&lt;br /&gt;Registry&lt;br /&gt;    Windows mempunyai pengaturan terhadap system maupun tampilan dan meyimpanya dalam registry, ketika sebuah nilai registry di ubah maka pengaturan yang berhubungan dengan registry tersebut juga ikut berubah.&lt;br /&gt;misal:    a. Menghiden file system&lt;br /&gt;    b. Mendisable TaskManager&lt;br /&gt;    c. Mendisable Registry Editor (bawaan Windows)&lt;br /&gt;    dll&lt;br /&gt;nah untuk mengubah registry windows juga uda menyediakan sebuah tool yaitu "regedit" Registry Editor. karena regedit temasuk dalam pengaturan windows jika registrynya diacak-acak virus dan hasilnya kita  tidak dapat menggunakannya. Untuk mengubah registry ada banyak cara selain melalui regedit, nah salah satunya menggunakan bahasa pemograman Java.&lt;br /&gt;    Agar Java dapat membaca dan menulis registry ke windows, anda perlu siapain library khusus yaitu "jRegistryKey", lib ini berserbasis JNI jadi menggunakan file *.dll. agar lib ini dapat berjalan mulus anda harus mengkopikan "jRegistryKey.dll" ke "c:/wondows/system32/" (untuk winNT/win200x anda kopikan ke "c:/winnt/system32/" ), kemudian setting path "jRegistryKey.jar" karena saya pake Netbeans jadi tinggal klik kanan pada project dan "add jar" trus pilih "jRegistryKey.jar" trus OK. setelah setting path tinggal&lt;br /&gt;import class berikut :&lt;br /&gt;ca.beq.util.win32.registry.*;&lt;br /&gt;ca.beq.util.win32.registry.RootKey;&lt;br /&gt;&lt;br /&gt;berikut cara bermain-main registry dengan Java:&lt;br /&gt;1. Membuat Registry baru&lt;br /&gt;untuk membuat registry baru anda cukup ketikkan perintah&lt;br /&gt;&lt;br /&gt;        try{&lt;br /&gt;           RegistryKey r = new RegistryKey(RootKey.HKCU, "rachmadhw.co.cc");&lt;br /&gt;           r.create();&lt;br /&gt;        }catch(RegistryException e){&lt;br /&gt;            JOptionPane.showMessageDialog(null,"Registry suda Ada");&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;RegistryKey(RootKey.HKCR, "rachmadhw.co.cc"); r.create(); mempunyai maksud, anda membuat registry pada pasisi/root HKCU(HKEY_CURRENT_USER) dengan nama registri "rachmadhw.co.cc".&lt;br /&gt;&lt;br /&gt;2. Menghapus Registry&lt;br /&gt;&lt;br /&gt;    try{&lt;br /&gt;           RegistryKey r = new RegistryKey(RootKey.HKCU, "rachmadhw.co.cc");&lt;br /&gt;           r.delete();&lt;br /&gt;        }catch(RegistryException e){&lt;br /&gt;            JOptionPane.showMessageDialog(null,"Registry tidak Ada");&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;3. Mengisikan Nilai Pada Registry&lt;br /&gt;&lt;br /&gt;    try{&lt;br /&gt;           RegistryKey r = new RegistryKey(RootKey.HKCU, "rachmadhw.co.cc");&lt;br /&gt;       RegistryValue v = new RegistryValue("Komentar", ValueType.REG_SZ,"keren brow");&lt;br /&gt;           r.setValue(v);&lt;br /&gt;        }catch(RegistryException e){&lt;br /&gt;           JOptionPane.showMessageDialog(null, "Registry Tidak ditemukan");&lt;br /&gt;        }&lt;br /&gt;RegistryKey(RootKey.HKCR, "rachmadhw.co.cc"); mempunyai maksud, anda memilih registry pada pasisi/root HKCU(HKEY_CURRENT_USER) dengan nama registri "rachmadhw.co.cc".&lt;br /&gt;&lt;br /&gt;RegistryValue v = new RegistryValue("Komentar", ValueType.REG_SZ,"keren brow");&lt;br /&gt;r.setValue(v);&lt;br /&gt;Membuat registryKey "Komentar" dengan Nilai "Keran brow".&lt;br /&gt;&lt;br /&gt;4. Membaca nilai registry&lt;br /&gt;&lt;br /&gt;    try{&lt;br /&gt;           RegistryKey r = new RegistryKey(RootKey.HKCU, "rachmadhw.co.cc");&lt;br /&gt;       if(r.hasValue("Komentar")) {&lt;br /&gt;              RegistryValue v = r.getValue("Komentar");&lt;br /&gt;              System.out.println(v.toString());&lt;br /&gt;       } // if&lt;br /&gt;        }catch(RegistryException e){&lt;br /&gt;           JOptionPane.showMessageDialog(null, "Registry Tidak ditemukan");&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;Hasilnya:  Komentar:REG_SZ:keren brow&lt;br /&gt;&lt;br /&gt;5. Untuk Mendisable TaksManager&lt;br /&gt;&lt;br /&gt;            RegistryKey r = new RegistryKey(RootKey.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies");&lt;br /&gt;            try{&lt;br /&gt;                r.createSubkey("System");&lt;br /&gt;            }catch(RegistryException re){&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;            RegistryKey r2 = new RegistryKey(RootKey.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System");&lt;br /&gt;            RegistryValue v = new RegistryValue("DisableTaskMgr", ValueType.REG_DWORD, 1);&lt;br /&gt;            r2.setValue(v);&lt;br /&gt;&lt;br /&gt;6. Untuk Mendisable registry&lt;br /&gt;&lt;br /&gt;            RegistryKey r = new RegistryKey(RootKey.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies");&lt;br /&gt;            try{&lt;br /&gt;                r.createSubkey("System");&lt;br /&gt;            }catch(RegistryException re){&lt;br /&gt;               &lt;br /&gt;            }&lt;br /&gt;            RegistryKey r2 = new RegistryKey(RootKey.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System");&lt;br /&gt;            RegistryValue v = new RegistryValue("DisableRegistryTools", ValueType.REG_DWORD, 1);&lt;br /&gt;            r2.setValue(v);&lt;br /&gt;&lt;br /&gt;7. Untuk  Hiden file system&lt;br /&gt;&lt;br /&gt;            RegistryKey r = new RegistryKey(RootKey.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced");&lt;br /&gt;            RegistryValue v = new RegistryValue("Hidden", ValueType.REG_DWORD, 0);&lt;br /&gt;            RegistryValue v1 = new RegistryValue("HideFileExt", ValueType.REG_DWORD, 0);&lt;br /&gt;            RegistryValue v2 = new RegistryValue("ShowSuperHidden", ValueType.REG_DWORD, 0);&lt;br /&gt;            r.setValue(v);&lt;br /&gt;            r.setValue(v1);&lt;br /&gt;            r.setValue(v2);&lt;br /&gt;&lt;br /&gt;8.Untuk Membuat StartUp&lt;br /&gt;&lt;br /&gt;    JFileChooser fc = new JFileChooser();&lt;br /&gt;        fc.setDialogTitle("Pilih Aplikasi");&lt;br /&gt;        fc.setFileFilter(new FileFilter() {&lt;br /&gt;            @Override&lt;br /&gt;            public boolean accept(File f) {&lt;br /&gt;                if (f.isDirectory()) {&lt;br /&gt;                return true;&lt;br /&gt;            }&lt;br /&gt;            String fileName = f.getName();&lt;br /&gt;            int i = fileName.lastIndexOf('.');&lt;br /&gt;            if ((i &gt; 0) &amp;amp;&amp;amp; (i &lt; (fileName.length() - 1))) {&lt;br /&gt;                String fileExt = fileName.substring(i + 1);&lt;br /&gt;                if ("exe".equalsIgnoreCase(fileExt)) {&lt;br /&gt;                    return true;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            return false;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            @Override&lt;br /&gt;            public String getDescription() {&lt;br /&gt;                return "exe aja";&lt;br /&gt;            }&lt;br /&gt;        });&lt;br /&gt;        fc.showOpenDialog(jtemp);&lt;br /&gt;        jtemp.setText(fc.getCurrentDirectory().getAbsolutePath());&lt;br /&gt;&lt;br /&gt;       &lt;br /&gt;        System.out.println("Tulis StartUp");&lt;br /&gt;           try{&lt;br /&gt;            RegistryKey r2 = new RegistryKey(RootKey.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run");&lt;br /&gt;            RegistryValue v = new RegistryValue("rachmad-hw.blogspot.com", ValueType.REG_SZ, jtemp.getText().trim());&lt;br /&gt;            r2.setValue(v);&lt;br /&gt;           }catch(RegistryException re){&lt;br /&gt;                System.out.println("ini kesalahan : "+ re);&lt;br /&gt;           }&lt;br /&gt;&lt;br /&gt;********************************************************************************************&lt;br /&gt;Untuk Download Source Code&lt;a href="http://www.ziddu.com/download/5167417/rCobaRegistry-src-rachmadhw.co.cc.zip.html" alt="CobaRegistry-src-rachmadhw.co.cc.zip"&gt; disini&lt;/a&gt; &lt;a href="http://rapidshare.com/files/243954919/rCobaRegistry-src-rachmadhw.co.cc.zip.html" alt="CobaRegistry-src-rachmadhw.co.cc.zip"&gt;mirror1&lt;/a&gt; &lt;a href="http://www.4shared.com/file/111513635/8991736a/rCobaRegistry-src-rachmadhwcocc.html" alt="CobaRegistry-src-rachmadhw.co.cc.zip"&gt;mirror2&lt;/a&gt;&lt;br /&gt;Untuk Download binary       &lt;a href="http://www.ziddu.com/download/5167369/CobaRegistry-bin-rachmadhw.co.cc.zip.html" alt="CobaRegistry-bin-rachmadhw.co.cc.zip"&gt;disini&lt;/a&gt; &lt;a href="http://rapidshare.com/files/243953866/CobaRegistry-bin-rachmadhw.co.cc.zip.html" alt="CobaRegistry-bin-rachmadhw.co.cc.zip"&gt;mirror1&lt;/a&gt; &lt;a href="http://www.4shared.com/file/111513267/1de14edf/CobaRegistry-bin-rachmadhwcocc.html" alt="CobaRegistry-bin-rachmadhw.co.cc.zip"&gt;mirror2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hasil exekusi :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_yOh4Xju6mVA/SjMs5hRzQ9I/AAAAAAAAAGc/vKfuRUSFcUA/s1600-h/show_hiden_file.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 218px;" src="http://3.bp.blogspot.com/_yOh4Xju6mVA/SjMs5hRzQ9I/AAAAAAAAAGc/vKfuRUSFcUA/s320/show_hiden_file.jpg" alt ="Memodifikasi Registry Windows Dengan Menggunakan java (Windows Registry Modification With Java)" id="BLOGGER_PHOTO_ID_5346666549316109266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_yOh4Xju6mVA/SjMs5Jz2wBI/AAAAAAAAAGM/53xY2R1xObI/s1600-h/input+startup.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 218px;" src="http://4.bp.blogspot.com/_yOh4Xju6mVA/SjMs5Jz2wBI/AAAAAAAAAGM/53xY2R1xObI/s320/input+startup.jpg" alt ="Memodifikasi Registry Windows Dengan Menggunakan java (Windows Registry Modification With Java)" id="BLOGGER_PHOTO_ID_5346666543016493074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_yOh4Xju6mVA/SjMs48IgaPI/AAAAAAAAAGE/vVsZhUPrR5A/s1600-h/hiden_file.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 218px;" src="http://1.bp.blogspot.com/_yOh4Xju6mVA/SjMs48IgaPI/AAAAAAAAAGE/vVsZhUPrR5A/s320/hiden_file.jpg" alt ="Memodifikasi Registry Windows Dengan Menggunakan java (Windows Registry Modification With Java)" id="BLOGGER_PHOTO_ID_5346666539345012978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_yOh4Xju6mVA/SjMsf2uebCI/AAAAAAAAAF8/i3c50jT0dCk/s1600-h/hasil+input+startUp.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 218px;" src="http://3.bp.blogspot.com/_yOh4Xju6mVA/SjMsf2uebCI/AAAAAAAAAF8/i3c50jT0dCk/s320/hasil+input+startUp.jpg" alt ="Memodifikasi Registry Windows Dengan Menggunakan java (Windows Registry Modification With Java)" id="BLOGGER_PHOTO_ID_5346666108396923938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_yOh4Xju6mVA/SjMsfxLYN8I/AAAAAAAAAF0/byipFAFoJdE/s1600-h/enable+task+manger.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 218px;" src="http://1.bp.blogspot.com/_yOh4Xju6mVA/SjMsfxLYN8I/AAAAAAAAAF0/byipFAFoJdE/s320/enable+task+manger.jpg" alt ="Memodifikasi Registry Windows Dengan Menggunakan java (Windows Registry Modification With Java)" id="BLOGGER_PHOTO_ID_5346666106907539394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_yOh4Xju6mVA/SjMsfns0JVI/AAAAAAAAAFs/IukSWnM9AyI/s1600-h/enable+registry.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 218px;" src="http://4.bp.blogspot.com/_yOh4Xju6mVA/SjMsfns0JVI/AAAAAAAAAFs/IukSWnM9AyI/s320/enable+registry.jpg" alt ="Memodifikasi Registry Windows Dengan Menggunakan java (Windows Registry Modification With Java)" id="BLOGGER_PHOTO_ID_5346666104363427154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_yOh4Xju6mVA/SjMsfTuw4KI/AAAAAAAAAFk/DHdkjOyeiLA/s1600-h/disable+task+manager.jpg" alt ="Memodifikasi Registry Windows Dengan Menggunakan java (Windows Registry Modification With Java)"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 218px;" src="http://3.bp.blogspot.com/_yOh4Xju6mVA/SjMsfTuw4KI/AAAAAAAAAFk/DHdkjOyeiLA/s320/disable+task+manager.jpg" alt ="Memodifikasi Registry Windows Dengan Menggunakan java (Windows Registry Modification With Java)" id="BLOGGER_PHOTO_ID_5346666099002892450" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_yOh4Xju6mVA/SjMsfJxbdmI/AAAAAAAAAFc/g703bzTBhnc/s1600-h/disable+registry.jpg" alt ="Memodifikasi Registry Windows Dengan Menggunakan java (Windows Registry Modification With Java)"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 218px;" src="http://1.bp.blogspot.com/_yOh4Xju6mVA/SjMsfJxbdmI/AAAAAAAAAFc/g703bzTBhnc/s320/disable+registry.jpg" alt ="Memodifikasi Registry Windows Dengan Menggunakan java (Windows Registry Modification With Java)" id="BLOGGER_PHOTO_ID_5346666096329717346" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4837068640686273747-8546783641795385425?l=bosojava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bosojava.blogspot.com/feeds/8546783641795385425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bosojava.blogspot.com/2009/06/memodifikasi-registry-windows-dengan.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/8546783641795385425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/8546783641795385425'/><link rel='alternate' type='text/html' href='http://bosojava.blogspot.com/2009/06/memodifikasi-registry-windows-dengan.html' title='Memodifikasi Registry Windows Dengan Menggunakan java (Windows Registry Modification With Java)'/><author><name>Rachmad HW</name><uri>http://www.blogger.com/profile/09336454156854994315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_yOh4Xju6mVA/Sh4bgKlot4I/AAAAAAAAAEk/jM97_Cm8tTo/S220/Rachmad+Hadi+Wijoyo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_yOh4Xju6mVA/SjMs5fZeMHI/AAAAAAAAAGU/QgEcXanxOlQ/s72-c/Modifikasi+registri+windows+dengan+java.zip.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4837068640686273747.post-2613959145573739836</id><published>2009-06-12T05:11:00.000-07:00</published><updated>2009-06-12T05:17:26.807-07:00</updated><title type='text'>Membuat Kalkulator Sederhana dengan menggunakan Java</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5iDXSxzW_Jc/SjJHAt2XGHI/AAAAAAAAABk/etIy_PknqFc/s1600-h/kalkulator+dengan+java.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 309px; height: 254px;" src="http://2.bp.blogspot.com/_5iDXSxzW_Jc/SjJHAt2XGHI/AAAAAAAAABk/etIy_PknqFc/s400/kalkulator+dengan+java.bmp" alt="" id="BLOGGER_PHOTO_ID_5346413785275373682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Langsung aja ya!!!!&lt;br /&gt;&lt;br /&gt;import javax.swing.*;&lt;br /&gt;import java.awt.*;&lt;br /&gt;import java.awt.event.*;&lt;br /&gt;&lt;br /&gt;public class Kalkulator&lt;br /&gt;   extends JFrame&lt;br /&gt;   implements ActionListener {&lt;br /&gt;&lt;br /&gt; // Deklarasi Variabel GUI&lt;br /&gt; JTextField tampil_angka = new JTextField("0");&lt;br /&gt; JPanel panalAngka = new JPanel();&lt;br /&gt; JButton tombol_1 = new JButton("1");&lt;br /&gt; JButton tombol_2 = new JButton("2");&lt;br /&gt; JButton tombol_3 = new JButton("3");&lt;br /&gt; JButton tombol_4 = new JButton("4");&lt;br /&gt; JButton tombol_5 = new JButton("5");&lt;br /&gt; JButton tombol_6 = new JButton("6");&lt;br /&gt; JButton tombol_7 = new JButton("7");&lt;br /&gt; JButton tombol_8 = new JButton("8");&lt;br /&gt; JButton tombol_9 = new JButton("9");&lt;br /&gt; JButton tombol_0 = new JButton("0");&lt;br /&gt; JButton tombol_plusMinus = new JButton("+/-");&lt;br /&gt; JButton tombol_Titik = new JButton(".");&lt;br /&gt; JButton tombol_c = new JButton("C");&lt;br /&gt; JButton tombol_kali = new JButton("*");&lt;br /&gt; JButton tombol_kurang = new JButton("-");&lt;br /&gt; JButton tombol_tambah = new JButton("+");&lt;br /&gt; JButton tombol_bagi = new JButton("/");&lt;br /&gt; JButton tombol_persen = new JButton("%");&lt;br /&gt; JButton tombol_samaDengan = new JButton("=");&lt;br /&gt; JButton tombol_ce = new JButton("CE");&lt;br /&gt;&lt;br /&gt; // Deklarasi variabel input bukan angka&lt;br /&gt; String bukan_angka = "";&lt;br /&gt; // Deklarasi variabel tampung tampilan angka pertama&lt;br /&gt; double bil_1 = 0;&lt;br /&gt; // Deklarasi variabel angka baru jika mendapat input bukan angka&lt;br /&gt; boolean angka_baru = false;&lt;br /&gt;&lt;br /&gt; public static void main(String[] args) {&lt;br /&gt;   Kalkulator frame = new Kalkulator();&lt;br /&gt;   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;   frame.setSize(310, 255);&lt;br /&gt;   frame.setVisible(true);&lt;br /&gt;   frame.setResizable(false);&lt;br /&gt; } // Akhir methode main&lt;br /&gt;&lt;br /&gt; public Kalkulator() {&lt;br /&gt;   // Layout dan titel&lt;br /&gt;   this.getContentPane().setLayout(null);&lt;br /&gt;   this.setTitle("Kalkulator");&lt;br /&gt;&lt;br /&gt;   // Menanmbahkan Panel&lt;br /&gt;&lt;br /&gt;   // Mengatur Panel&lt;br /&gt;   panalAngka.setBackground(Color.blue);&lt;br /&gt;   panalAngka.setBounds(new Rectangle(0, 0, 343, 225));&lt;br /&gt;   panalAngka.setLayout(null);&lt;br /&gt;&lt;br /&gt;   // Menambahkan Tombol-Tombol pada Panel&lt;br /&gt;   panalAngka.add(tombol_0, null);&lt;br /&gt;   panalAngka.add(tombol_1, null);&lt;br /&gt;   panalAngka.add(tombol_2, null);&lt;br /&gt;   panalAngka.add(tombol_3, null);&lt;br /&gt;   panalAngka.add(tombol_4, null);&lt;br /&gt;   panalAngka.add(tombol_5, null);&lt;br /&gt;   panalAngka.add(tombol_6, null);&lt;br /&gt;   panalAngka.add(tombol_7, null);&lt;br /&gt;   panalAngka.add(tombol_8, null);&lt;br /&gt;   panalAngka.add(tombol_9, null);&lt;br /&gt;   panalAngka.add(tombol_c, null);&lt;br /&gt;   panalAngka.add(tombol_kali, null);&lt;br /&gt;   panalAngka.add(tombol_kurang, null);&lt;br /&gt;   panalAngka.add(tombol_samaDengan, null);&lt;br /&gt;   panalAngka.add(tombol_tambah, null);&lt;br /&gt;   panalAngka.add(tombol_bagi, null);&lt;br /&gt;   panalAngka.add(tombol_persen, null);&lt;br /&gt;   panalAngka.add(tombol_ce, null);&lt;br /&gt;   panalAngka.add(tombol_plusMinus, null);&lt;br /&gt;   panalAngka.add(tombol_Titik, null);&lt;br /&gt;&lt;br /&gt;   // Menambah dan mengatur JTextField untuk menampilkan angka-angka&lt;br /&gt;   panalAngka.add(tampil_angka, null);&lt;br /&gt;   this.getContentPane().add(panalAngka, null);&lt;br /&gt;   tampil_angka.setBackground(Color.white);&lt;br /&gt;   tampil_angka.setBorder(null);&lt;br /&gt;   tampil_angka.setEditable(false);&lt;br /&gt;   tampil_angka.setText("0");&lt;br /&gt;   tampil_angka.setHorizontalAlignment(SwingConstants.RIGHT);&lt;br /&gt;   tampil_angka.setBounds(new Rectangle(7, 10, 290, 27));&lt;br /&gt;&lt;br /&gt;   /** Mengatur ukuran dan posisi Tombol-Tombol&lt;br /&gt;    *&lt;br /&gt;    *  line d = 7    8    9    C   CE&lt;br /&gt;    *  line c = 4    5    6    *    %&lt;br /&gt;    *  line b = 1    2    3    -    /&lt;br /&gt;    *  line a = 0   +/-   .    +    =&lt;br /&gt;    *&lt;br /&gt;    */&lt;br /&gt;   // Untuk Line a (0, +/-, ., +, =)&lt;br /&gt;   tombol_0.setBounds(new Rectangle(6, 183, 50, 33));&lt;br /&gt;   tombol_plusMinus.setBounds(new Rectangle(66, 183, 50, 33));&lt;br /&gt;   tombol_Titik.setBounds(new Rectangle(126, 183, 50, 33));&lt;br /&gt;   tombol_tambah.setBounds(new Rectangle(186, 183, 50, 33));&lt;br /&gt;   tombol_samaDengan.setBounds(new Rectangle(246, 183, 50, 33));&lt;br /&gt;   // Untuk Line b (1, 2, 3, -, /)&lt;br /&gt;   tombol_1.setBounds(new Rectangle(7, 140, 50, 33));&lt;br /&gt;   tombol_2.setBounds(new Rectangle(66, 140, 50, 33));&lt;br /&gt;   tombol_3.setBounds(new Rectangle(126, 140, 50, 33));&lt;br /&gt;   tombol_kurang.setBounds(new Rectangle(186, 140, 50, 33));&lt;br /&gt;   tombol_bagi.setBounds(new Rectangle(246, 140, 50, 33));&lt;br /&gt;   // Untuk Line c (4, 5, 6, *, %)&lt;br /&gt;   tombol_4.setBounds(new Rectangle(7, 97, 50, 33));&lt;br /&gt;   tombol_5.setBounds(new Rectangle(66, 97, 50, 33));&lt;br /&gt;   tombol_6.setBounds(new Rectangle(126, 97, 50, 33));&lt;br /&gt;   tombol_kali.setBounds(new Rectangle(186, 97, 50, 33));&lt;br /&gt;   tombol_persen.setBounds(new Rectangle(246, 97, 50, 33));&lt;br /&gt;&lt;br /&gt;   // Untuk Line d (7, 8, 9, C, CE)&lt;br /&gt;   tombol_7.setBounds(new Rectangle(6, 54, 50, 33));&lt;br /&gt;   tombol_8.setBounds(new Rectangle(66, 54, 50, 33));&lt;br /&gt;   tombol_9.setBounds(new Rectangle(126, 54, 50, 33));&lt;br /&gt;   tombol_c.setBounds(new Rectangle(186, 54, 50, 33));&lt;br /&gt;   tombol_ce.setBounds(new Rectangle(246, 54, 50, 33));&lt;br /&gt;&lt;br /&gt;   // Menambahkan ActionListener pada Tombol-Tombol&lt;br /&gt;   tombol_0.addActionListener(this);&lt;br /&gt;   tombol_1.addActionListener(this);&lt;br /&gt;   tombol_2.addActionListener(this);&lt;br /&gt;   tombol_3.addActionListener(this);&lt;br /&gt;   tombol_4.addActionListener(this);&lt;br /&gt;   tombol_5.addActionListener(this);&lt;br /&gt;   tombol_6.addActionListener(this);&lt;br /&gt;   tombol_7.addActionListener(this);&lt;br /&gt;   tombol_8.addActionListener(this);&lt;br /&gt;   tombol_9.addActionListener(this);&lt;br /&gt;   tombol_plusMinus.addActionListener(this);&lt;br /&gt;   tombol_Titik.addActionListener(this);&lt;br /&gt;   tombol_c.addActionListener(this);&lt;br /&gt;   tombol_ce.addActionListener(this);&lt;br /&gt;   tombol_kali.addActionListener(this);&lt;br /&gt;   tombol_kurang.addActionListener(this);&lt;br /&gt;   tombol_persen.addActionListener(this);&lt;br /&gt;   tombol_bagi.addActionListener(this);&lt;br /&gt;   tombol_samaDengan.addActionListener(this);&lt;br /&gt;   tombol_tambah.addActionListener(this);&lt;br /&gt; } // Akhir methode Kalkulator&lt;br /&gt;&lt;br /&gt; /**&lt;br /&gt;  * Methode actionPerformed(ActionEvent e)&lt;br /&gt;  * Methode untuk memproses event yang diterima dari Tombol&lt;br /&gt;  * @param e :&lt;br /&gt;  */&lt;br /&gt; public void actionPerformed(ActionEvent e) {&lt;br /&gt;   // Mengambil nama Command dari setiap tombol&lt;br /&gt;   String a = e.getActionCommand();&lt;br /&gt;&lt;br /&gt;   // Jika tombol operator yang ditekan&lt;br /&gt;   if ( (a == "=") || (a == "-") || (a == "+") || (a == "*") || (a == "/")) {&lt;br /&gt;     // Panggil methode operasi dengan input a&lt;br /&gt;     operasi(a);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   // Tetapi jika tombol titik yang ditekan&lt;br /&gt;   else if (a == ".") {&lt;br /&gt;     // Panggil Methode koma dengan input a&lt;br /&gt;     koma(a);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   // Tetapi jika tombol persen atau “+/-“ yang ditekan&lt;br /&gt;   else if (a == "%" || a == "+/-") {&lt;br /&gt;     // Panggil methode persen_negatif dengan input a&lt;br /&gt;     persen_negatif(a);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   // Tetapi jika tombol C atau CE yang ditekan&lt;br /&gt;   else if (a == "C" || a == "CE") {&lt;br /&gt;     // Panggil methode hapus dengan input a&lt;br /&gt;     hapus(a);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   // Tetapi jika tombol angka yang ditekan&lt;br /&gt;   else {&lt;br /&gt;     // Panggil methode angka dengan input a&lt;br /&gt;     angka(a);&lt;br /&gt;   }&lt;br /&gt; } // Akhir methode kalkulator&lt;br /&gt;&lt;br /&gt; /**&lt;br /&gt;  * Methode : angka&lt;br /&gt;  * Keterangan : proses jika input yang didapat adalah Angka&lt;br /&gt;  * @param a :&lt;br /&gt;  */&lt;br /&gt; public void angka(String a) {&lt;br /&gt;   // Jika angka ditekan setelah tombol operator&lt;br /&gt;   if (angka_baru) {&lt;br /&gt;     tampil_angka.setText(a);&lt;br /&gt;     angka_baru = false;&lt;br /&gt;   }&lt;br /&gt;   else {&lt;br /&gt;     // Jika tombol angka pertama kali ditekan&lt;br /&gt;     if (tampil_angka.getText().equals("0")) {&lt;br /&gt;       // Hilangkan "0" dan diisi dengan angka yang ditekan&lt;br /&gt;       tampil_angka.setText(a);&lt;br /&gt;     }&lt;br /&gt;     // Tetapi jika bukan yang pertama kali ditekan&lt;br /&gt;     else {&lt;br /&gt;       // Tambahkan String angka tersebut&lt;br /&gt;       a = tampil_angka.getText() + a;&lt;br /&gt;       // Isi dengan string yang telah didapat&lt;br /&gt;       tampil_angka.setText(a);&lt;br /&gt;     }&lt;br /&gt;   }&lt;br /&gt; } // Akhir methode angka&lt;br /&gt;&lt;br /&gt; /**&lt;br /&gt;  * Methode : operasi&lt;br /&gt;  * Keterangan : proses jika input yang didapat adalah&lt;br /&gt;  * "+"  "-"  "*"  "/"  atau "="&lt;br /&gt;  * @param a :&lt;br /&gt;  */&lt;br /&gt; public void operasi(String a) {&lt;br /&gt;   // Mengambil nilai yang ada pada teks field&lt;br /&gt;   String ambil_angka = tampil_angka.getText();&lt;br /&gt;   // Jika tombol yang ditekan bukan tombol operator&lt;br /&gt;   if (angka_baru &amp;amp;&amp;amp; bukan_angka != "=") {&lt;br /&gt;   }&lt;br /&gt;   // Tetapi jika tombol yang ditekan adalah tombol operator&lt;br /&gt;   else {&lt;br /&gt;     // Angka yang ditekan akan menjadi angka baru berikutnya&lt;br /&gt;     angka_baru = true;&lt;br /&gt;     // Jika Penjumlahan&lt;br /&gt;     if (bukan_angka == "+") {&lt;br /&gt;       bil_1 += Double.parseDouble(ambil_angka);&lt;br /&gt;       bukan_angka = a;&lt;br /&gt;     }&lt;br /&gt;     // Tetapi jika perkalian&lt;br /&gt;     else if (bukan_angka == "*") {&lt;br /&gt;       bil_1 *= Double.parseDouble(ambil_angka);&lt;br /&gt;       bukan_angka = a;&lt;br /&gt;     }&lt;br /&gt;     // Tetapi jika Pembagian&lt;br /&gt;     else if (bukan_angka == "/") {&lt;br /&gt;       bil_1 /= Double.parseDouble(ambil_angka);&lt;br /&gt;       bukan_angka = a;&lt;br /&gt;     }&lt;br /&gt;     // Tetapi jika pengurangan&lt;br /&gt;     else if (bukan_angka == "-") {&lt;br /&gt;       bil_1 -= Double.parseDouble(ambil_angka);&lt;br /&gt;       bukan_angka = a;&lt;br /&gt;     }&lt;br /&gt;     // Tetapi jika tombol "="&lt;br /&gt;     else {&lt;br /&gt;       bil_1 = Double.parseDouble(ambil_angka);&lt;br /&gt;       bukan_angka = a;&lt;br /&gt;     }&lt;br /&gt;   }&lt;br /&gt;   // Merubah hasil dari Double menjadi String&lt;br /&gt;   String koma_nol = Double.toString(bil_1);&lt;br /&gt;   // Apabila hasil yang didapatkan bilangan bulat&lt;br /&gt;   if (koma_nol.endsWith(".0")) {&lt;br /&gt;     // Hilangkan dua digit paling akhir (.0)&lt;br /&gt;     koma_nol = koma_nol.substring(0, koma_nol.trim().length() - 2);&lt;br /&gt;   }&lt;br /&gt;   // Tampilkan hasil akhir&lt;br /&gt;   tampil_angka.setText(koma_nol);&lt;br /&gt; } // Akhir methode operasi&lt;br /&gt;&lt;br /&gt; /**&lt;br /&gt;  * Methode : koma&lt;br /&gt;  * Keterangan : proses jika input yang didapat adalah&lt;br /&gt;  * "."&lt;br /&gt;  * @param a :&lt;br /&gt;  */&lt;br /&gt; public void koma(String a) {&lt;br /&gt;   String titik = tampil_angka.getText();&lt;br /&gt;   if (angka_baru) {&lt;br /&gt;     tampil_angka.setText("0.");&lt;br /&gt;     angka_baru = false;&lt;br /&gt;   }&lt;br /&gt;   else {&lt;br /&gt;     if (titik.indexOf(".") == -1) {&lt;br /&gt;       titik = titik + ".";&lt;br /&gt;     }&lt;br /&gt;   }&lt;br /&gt;   tampil_angka.setText(titik);&lt;br /&gt; } // Akhir methode koma&lt;br /&gt;&lt;br /&gt; /**&lt;br /&gt;  * Methode : persen_negatif&lt;br /&gt;  * Keterangan : proses jika input yang didapat adalah&lt;br /&gt;  * "%" atau "+/-"&lt;br /&gt;  * @param a :&lt;br /&gt;  */&lt;br /&gt; public void persen_negatif(String a) {&lt;br /&gt;   // Jika tombol "%" yang ditekan&lt;br /&gt;   if (a == "%") {&lt;br /&gt;     bil_1 = (Double.parseDouble(tampil_angka.getText())) / 100;&lt;br /&gt;   }&lt;br /&gt;   // Jika tombol "+/-" yang ditekan&lt;br /&gt;   else {&lt;br /&gt;     bil_1 = (Double.parseDouble(tampil_angka.getText())) * -1;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   // Merubah hasil dari Double menjadi String&lt;br /&gt;   String koma_nol = Double.toString(bil_1);&lt;br /&gt;   // Apabila hasil yang didapatkan bilangan bulat&lt;br /&gt;   if (koma_nol.endsWith(".0")) {&lt;br /&gt;     // Hilangkan dua digit paling akhir (.0)&lt;br /&gt;     koma_nol = koma_nol.substring(0, koma_nol.trim().length() - 2);&lt;br /&gt;   }&lt;br /&gt;   // Tampilkan hasil akhir&lt;br /&gt;   tampil_angka.setText(koma_nol);&lt;br /&gt; } // Akhir methode persen_negatif&lt;br /&gt;&lt;br /&gt; /**&lt;br /&gt;  * Methode : hapus&lt;br /&gt;  * Keterangan : proses jika input yang didapat adalah&lt;br /&gt;  * "C" atau "CE"&lt;br /&gt;  * @param a :&lt;br /&gt;  */&lt;br /&gt; public void hapus(String a) {&lt;br /&gt;   if (a == "C") {&lt;br /&gt;     tampil_angka.setText("0");&lt;br /&gt;     bukan_angka = "";&lt;br /&gt;     bil_1 = 0;&lt;br /&gt;     angka_baru = true;&lt;br /&gt;   }&lt;br /&gt;   else {&lt;br /&gt;     tampil_angka.setText("0");&lt;br /&gt;     angka_baru = true;&lt;br /&gt;   }&lt;br /&gt; } // Akhir methode hapus&lt;br /&gt;&lt;br /&gt;} // Akhir Class Kalkulator&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4837068640686273747-2613959145573739836?l=bosojava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bosojava.blogspot.com/feeds/2613959145573739836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bosojava.blogspot.com/2009/06/membuat-kalkulator-sederhana-dengan.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/2613959145573739836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/2613959145573739836'/><link rel='alternate' type='text/html' href='http://bosojava.blogspot.com/2009/06/membuat-kalkulator-sederhana-dengan.html' title='Membuat Kalkulator Sederhana dengan menggunakan Java'/><author><name>Warrior Mojopahit</name><uri>http://www.blogger.com/profile/13371813418207523209</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5iDXSxzW_Jc/SjJHAt2XGHI/AAAAAAAAABk/etIy_PknqFc/s72-c/kalkulator+dengan+java.bmp' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4837068640686273747.post-8702011583407080031</id><published>2009-06-12T04:57:00.000-07:00</published><updated>2009-06-12T04:59:05.735-07:00</updated><title type='text'>Membuat SMS Gateway Dengan Java dan Mysql (Making SMS GATEWAY with Java and Mysql) part1</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_yOh4Xju6mVA/SiSaDwDR7CI/AAAAAAAAAFE/xC2A-l6JUcg/s1600-h/sms_rac_v3_%28sms_gateway%29.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 414px; height: 178px;" src="http://3.bp.blogspot.com/_yOh4Xju6mVA/SiSaDwDR7CI/AAAAAAAAAFE/xC2A-l6JUcg/s320/sms_rac_v3_%28sms_gateway%29.bmp" alt="" id="BLOGGER_PHOTO_ID_5342564447197195298" border="0" /&gt;&lt;/a&gt;source code bisa didownload &lt;a href="http://www.ziddu.com/download/5061192/JAVA_SMS_by_rachmad-hw.blogspot.com.zip.html" alt="JAVA_SMS_by_rachmad-hw.blogspot.com.zip"&gt;disini&lt;/a&gt; &lt;a href="http://rapidshare.com/files/243016322/JAVA_SMS_by_rachmad-hw.blogspot.com.zip" alt="JAVA_SMS_by_rachmad-hw.blogspot.com.zip"&gt;mirror1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;SMS (Short Messaging Services) Data SMS (Short Messaging Services) yang kita kirim atau yang kita terima sebenarnya memiliki format tersendiri untuk dapat diterjemahkan oleh sebuah mobile phone. Format atau mode yang dipakai untuk mengirim dan menerima SMS sebenarnya ada dua yaitu mode text dan mode PDU (Protocol Data Unit). Akan tetapi, sistem mode text tidak didukung oleh semua operator GSM maupun terminal.&lt;br /&gt;&lt;br /&gt;1. Text Mode Mode ini adalah cara termudah untuk mengirim pesan. Pada mode teks pesan yang kita kirim tidak dilakukan konversi. Teks yang dikirim tetap dalam bentuk aslinya dengan panjang mencapai 160 (7 bit default alphabet) atau 140 (8 bit) karakter. Sesungguhnya, mode teks adalah hasil encode yang direpresentasikan dalam format PDU. Kelemahannya, kita tidak dapat menyisipkan gambar dan nada dering ke dalam pesan yang akan dikirim serta terbatasnya tipe encoding.&lt;br /&gt;&lt;br /&gt;2. PDU (Protocol Data Unit) Mode PDU mode adalah format message dalam heksadesimal octet dan semi-desimal octet dengan panjang mencapai 160 (7 bit default alphabet) atau 140 (8 bit) karakter. Kelebihan menggunakan mode PDU adalah kita dapat melakukan encoding sendiri yang tentunya harus pula didukung oleh hardware dan operator GSM, melakukan kompresi data, menambahkan nada dering dan gambar pada pesan yang dikirim. Beberapa tipe encoding yang umum digunakan adalah “PCCP437”, “PCDN”, “8859-1”, “IRA” dan “GSM”. Kita juga dapat menambahkan header ke dalam pesan yang akan dikirim, seperti timestamp, nomor SMSC dan meta-informasi lainnya. 2.1.1 Sistem Kerja SMS Pada saat kita mengirim pesan SMS dari handphone (mobile originated) pesan tersebut tidak langsung dikirim ke handphone tujuan (mobile terminated), akan tetapi dikirim terlebih dahulu ke SMS Center (SMSC), baru kemudian pesan tersebut diteruskan ke handphone tujuan.&lt;br /&gt;&lt;br /&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-parent:"";  margin:0in;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:12.0pt;  font-family:"Times New Roman";  mso-fareast-font-family:"Times New Roman";} p.MsoFootnoteText, li.MsoFootnoteText, div.MsoFootnoteText  {mso-style-noshow:yes;  margin:0in;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Times New Roman";  mso-fareast-font-family:"Times New Roman";} span.MsoFootnoteReference  {mso-style-noshow:yes;  vertical-align:super;} @page Section1  {size:8.5in 11.0in;  margin:1.0in 1.25in 1.0in 1.25in;  mso-header-margin:.5in;  mso-footer-margin:.5in;  mso-paper-source:0;} div.Section1  {page:Section1;}  /* List Definitions */  @list l0  {mso-list-id:1432773971;  mso-list-type:hybrid;  mso-list-template-ids:-47531580 600324328 -1731292962 24295940 -1337834834 -1933265824 2100060668 2095361420 -2055291058 -1961704522;} @list l0:level1  {mso-level-tab-stop:.75in;  mso-level-number-position:left;  margin-left:.75in;  text-indent:-.25in;} @list l0:level2  {mso-level-start-at:0;  mso-level-number-format:none;  mso-level-text:"";  mso-level-tab-stop:.25in;  mso-level-number-position:left;  margin-left:0in;  text-indent:0in;} @list l0:level3  {mso-level-start-at:0;  mso-level-number-format:none;  mso-level-text:"";  mso-level-tab-stop:.25in;  mso-level-number-position:left;  margin-left:0in;  text-indent:0in;} @list l0:level4  {mso-level-start-at:0;  mso-level-number-format:none;  mso-level-text:"";  mso-level-tab-stop:.25in;  mso-level-number-position:left;  margin-left:0in;  text-indent:0in;} @list l0:level5  {mso-level-start-at:0;  mso-level-number-format:none;  mso-level-text:"";  mso-level-tab-stop:.25in;  mso-level-number-position:left;  margin-left:0in;  text-indent:0in;} @list l0:level6  {mso-level-start-at:0;  mso-level-number-format:none;  mso-level-text:"";  mso-level-tab-stop:.25in;  mso-level-number-position:left;  margin-left:0in;  text-indent:0in;} @list l0:level7  {mso-level-start-at:0;  mso-level-number-format:none;  mso-level-text:"";  mso-level-tab-stop:.25in;  mso-level-number-position:left;  margin-left:0in;  text-indent:0in;} @list l0:level8  {mso-level-start-at:0;  mso-level-number-format:none;  mso-level-text:"";  mso-level-tab-stop:.25in;  mso-level-number-position:left;  margin-left:0in;  text-indent:0in;} @list l0:level9  {mso-level-start-at:0;  mso-level-number-format:none;  mso-level-text:"";  mso-level-tab-stop:.25in;  mso-level-number-position:left;  margin-left:0in;  text-indent:0in;} ol  {margin-bottom:0in;} ul  {margin-bottom:0in;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-parent:"";  mso-padding-alt:0in 5.4pt 0in 5.4pt;  mso-para-margin:0in;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Times New Roman";} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal" style="line-height: 150%;"&gt;&lt;b style=""&gt;&lt;/b&gt;&lt;/p&gt;&lt;span style=";font-family:&amp;quot;;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_yOh4Xju6mVA/SiSbIYiK-VI/AAAAAAAAAFM/NH8oIodNj6k/s1600-h/skema1.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 135px;" src="http://2.bp.blogspot.com/_yOh4Xju6mVA/SiSbIYiK-VI/AAAAAAAAAFM/NH8oIodNj6k/s320/skema1.bmp" alt="" id="BLOGGER_PHOTO_ID_5342565626295286098" border="0" /&gt;&lt;/a&gt;G&lt;span style=";font-family:&amp;quot;;font-size:100%;"  &gt;ambar &lt;/span&gt;&lt;span style="font-size:100%;"&gt;1&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;span&gt;Dengan adanya SMSC ini dapat mengetahui status dari pesan SMS yang telah dikirim, apakah telah sampai atau gagal diterima oleh handphone tujuan. Apabila handphone tujuan dalam keadaan aktif dan dapat menerima pesan SMS yang dikirim, ia akan mengirim kembali pesan konfirmasi ke SMSC yang menyatakan bahwa pesan telah diterima. Kemudian SMSC mengirimkannya kembali status tersebut kepada si pengirim. Jika handphone dalam keadaan mati, pesan yang dikirimkan akan disimpan pada SMSC sampai period-validity terpenuhi. 2.1.2 Koneksi ke SMSC Untuk dapat mengirim dan menerima pesan, kita harus melakukan koneksi ke SMSC. Ada beberapa cara untuk melakukan koneksi ke SMSC antara lain : · Menggunakan terminal baik berupa GSM modem atau handphone. Cara ini adalah yang paling mudah tetapi memiliki kekurangan antara lain jumlah pesan yang dikirim per menit sangat terbatas (sekitar 6-10 pesan per menit). Untuk mengantisipasi hal ini biasanya digunakan lebih dari satu terminal.&lt;br /&gt;&lt;br /&gt;· Koneksi langsung ke SMSC Dengan melakukan koneksi langsung ke SMSC kita dapat mengirim pesan dalam jumlah banyak, dapat mencapai sekitar 600 SMS per menit bergantung pada kapasitas dari SMSC itu sendiri. Untuk melakukan koneksi ke SMSC diperlukan protocol penghubung. Protocol yang umum digunakan adalah UCP, SMPP, CIMD2, OIS dan TAP. Masing–masing operator GSM menyediakan tipe protocol yang berbeda-beda.&lt;br /&gt;&lt;br /&gt;· Menggunakan software Bantu Saat ini banyak vendor telekomunikasi menawarkan software bantu untuk melakukan koneksi ke SMSC, dari yang bersifat freeware, open source sampai dengan yang komersial. Pemilihan koneksi ke SMSC biasanya disesuaikan dengan jumlah pesan SMS yang akan dikirim. Gambar dibawah ini menunjukkan skema tipe koneksi ke SMSC.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;p class="MsoNormal" style="text-align: justify; line-height: 150%;"&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: center; line-height: 150%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_yOh4Xju6mVA/SiSbxb0ulEI/AAAAAAAAAFU/5qQDY4Gyn-A/s1600-h/skema2.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 243px;" src="http://2.bp.blogspot.com/_yOh4Xju6mVA/SiSbxb0ulEI/AAAAAAAAAFU/5qQDY4Gyn-A/s320/skema2.bmp" alt="" id="BLOGGER_PHOTO_ID_5342566331553059906" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: left; line-height: 150%;"&gt;2.1.3 Mode Pengiriman dan Penerimaan SMS dengan PDU&lt;br /&gt;&lt;br /&gt;Data yang mengalir ke atau dari SMS-Center harus berbentuk PDU (Protokol Data Unit). PDU berisi bilangan-bilangan heksadesimal yang mencerminkan bahasa I/O. PDU berisi atas beberapa header. Header untuk kirim SMS ke SMS-Center berbeda dengan SMS yang diterima dari SMS-Center.&lt;br /&gt;&lt;br /&gt;A. PDU untuk kirim SMS ke SMS-Center Terdapat delapan header untuk mengirim SMS, yaitu : 1. Nomor SMS-Center Header pertama ini terbagi atas tiga subheader, yaitu :&lt;br /&gt;a. Jumlah pasangan Heksadesimal SMSC dalam bilangan heksa&lt;br /&gt;b. National/International code&lt;br /&gt;* untuk National, kode subheader-nya yaitu 81&lt;br /&gt;* untuk International, kode subheader-nya yaitu 91&lt;br /&gt;c. No SMS-Center-nya sendiri, dalam pasangan heksa dibalik-balik. Jika tertinggal satu angka heksa yang tidak memiliki pasangan, angka tersebut akan dipasangkan dengan huruf F didepannya. Contoh : untuk nomor SMSC Excelcom 62818445009 dapat diubah menjadi&lt;br /&gt;a. 07 --&gt; ada 7 pasang&lt;br /&gt;b. 91 --&gt; 1 pasang&lt;br /&gt;c. 26-18-48-54-00-F9 --&gt; 6 pasang&lt;br /&gt;Digabung menjadi : 07912618485400F9&lt;br /&gt;1. Telkomsel 62811000000 07912618010000F0&lt;br /&gt;2. Satelindo 62816125 059126181652&lt;br /&gt;3. Exelcom 62818445009 07912618485400F9&lt;br /&gt;4. Indosat-M3 62855000000 07912658050000F0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. Tipe SMS&lt;br /&gt;Untuk SEND tipe SMS = 1. Jadi bilangan heksanya adalah 01.&lt;br /&gt;3. Nomor Referensi SMS&lt;br /&gt;Nomor referensi ini dibiarkan dulu 0, jadi bilangan heksanya adalah 00. Nanti akan diberikan nomor referensi otomatis oleh ponsel atau alat SMS gateway.&lt;br /&gt;4. Nomor Ponsel Penerima&lt;br /&gt;&lt;br /&gt;a. Jumlah bilangan desimal nomor ponsel yang dituju dalam bilangan heksa.&lt;br /&gt;b. National/International code * untuk National, kode subheader-nya yaitu 81 * untuk International, kode subheader-nya yaitu 91&lt;br /&gt;&lt;br /&gt;c. Nomor ponsel yang dituju, dalam pasangan Heksa dibalik-balik. Sama dengan cara penulisan subheader SMSC.&lt;br /&gt;&lt;br /&gt;Contoh : untuk nomor ponsel yang dituju = 628129573337 dapat diubah menjadi&lt;br /&gt;a. 0C à ada 12 angka&lt;br /&gt;b. 91 c. 26-18-92-75-33-73 Digabung menjadi 0C91 261892753373&lt;br /&gt;&lt;br /&gt;5. Bentuk SMS, antara lain : 0 à 00 à dikirim sebagai SMS&lt;br /&gt;1 --&gt; 01 --&gt; dikirim sebagai telex&lt;br /&gt;2 --&gt;02 --&gt; dikirim sebagai fax 6. Skema Encoding Data I/O Ada dua skema, yaitu :&lt;br /&gt;&lt;br /&gt;a. Skema 7 bit à ditandai dengan angka 0 --&gt;00&lt;br /&gt;b. Skema 8 bit à ditandai dengan angka lebih besar dari 0 à diubah ke heksa Kebanyakan ponsel atau SMS gateway yang ada di pasaran sekarang menggunakan skema 7 bit.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;7. Jangka Waktu Sebelum SMS Expired&lt;br /&gt;Agar SMS kita pasti terkirim sampai ke ponsel penerima, sebaiknya kita tidak memberikan batasan waktu validnya.&lt;br /&gt;&lt;br /&gt;8. Isi SMS&lt;br /&gt;Header ini terdiri atas dua subheader, yaitu :&lt;br /&gt;&lt;br /&gt;a. Panjang isi (jumlah huruf dari isi)&lt;br /&gt;Misalnya : untuk kata “hello” --&gt; ada 5 huruf --&gt; 05&lt;br /&gt;b. Isi berupa pasangan bilangan heksa&lt;br /&gt;&lt;br /&gt;· Untuk ponsel/SMS gateway berskema encoding 7 bit, jika kita mengetikkan suatu huruf dari keypad-nya, berarti kita telah membuat 7 angka 1/0 berurutan.&lt;br /&gt;&lt;br /&gt;Ada dua langkah yang harus dilakukan untuk mengkonversi isi SMS, yaitu :&lt;br /&gt;1. mengubah menjadi kode 7 bit, contoh kata “hello”&lt;br /&gt;&lt;br /&gt;bit 7 1&lt;br /&gt;h --&gt;110 1000&lt;br /&gt;e --&gt;110 0101&lt;br /&gt;l --&gt; 110 1100&lt;br /&gt;l --&gt; 110 1100&lt;br /&gt;o --&gt; 110 1111&lt;br /&gt;&lt;br /&gt;mengubah kode 7 bit menjadi 8 bit, yang diwakili oleh pasangan heksa. E 8&lt;br /&gt;&lt;br /&gt;h 1 110 1000 3 2&lt;br /&gt;e 00 11 0010 9 B&lt;br /&gt;l 100 1 1011 F D&lt;br /&gt;l 1111 1101 0 6&lt;br /&gt;o 0000 0 110&lt;br /&gt;&lt;br /&gt;Dengan demikian kata “hello” hasil konversinya E8329BFD06&lt;br /&gt;Menggabungkan kedelapan header untuk mengirim kata “hello” ke ponsel nomor 628129573337 lewat SMS-Center Excelcom, tanpa membatasi jangka waktu valid, maka PDU lengkapnya adalah : 07912618485400F901000C9126189275337300000E8329BFD06&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: left; line-height: 150%;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: left; line-height: 150%;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: left; line-height: 150%;"&gt;&lt;span style="font-weight: bold;"&gt;Bersambung.............................&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href="http://technorati.com/claim/vxuat4n9fv" rel="me"&gt;Technorati Profile&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4837068640686273747-8702011583407080031?l=bosojava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bosojava.blogspot.com/feeds/8702011583407080031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bosojava.blogspot.com/2009/06/membuat-sms-gateway-dengan-java-dan.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/8702011583407080031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/8702011583407080031'/><link rel='alternate' type='text/html' href='http://bosojava.blogspot.com/2009/06/membuat-sms-gateway-dengan-java-dan.html' title='Membuat SMS Gateway Dengan Java dan Mysql (Making SMS GATEWAY with Java and Mysql) part1'/><author><name>Warrior Mojopahit</name><uri>http://www.blogger.com/profile/13371813418207523209</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_yOh4Xju6mVA/SiSaDwDR7CI/AAAAAAAAAFE/xC2A-l6JUcg/s72-c/sms_rac_v3_%28sms_gateway%29.bmp' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4837068640686273747.post-3363443828752673724</id><published>2009-06-03T21:42:00.001-07:00</published><updated>2009-06-03T21:53:28.460-07:00</updated><title type='text'>Create Image-Themed Components with Java</title><content type='html'>This hack shows how to use Swing's built-in image support to create a completely custom image-based user interface.&lt;br /&gt;&lt;br /&gt;Most Swing applications get their look from a Look and Feel (L&amp;amp;F)either a standard one provided by the VM or a custom one. L&amp;amp;Fs are a whole lot of work to build and still aren't completely custom. You can redefine a button to look like red stoplights, but then all buttons throughout your application will look like red stoplights. Sometimes all you really want is a look built entirely out of images, much like image-based web navigation.&lt;br /&gt;&lt;br /&gt;To give you an idea of where this hack is going, Figure 1-1 shows our target: a frame with a panel containing a label, a button, and a checkbox. The panel, label, and button will be completely drawn with images, using none of the standard L&amp;amp;F. The checkbox will be a standard checkbox, but it should be transparent to fit in with the image background.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5iDXSxzW_Jc/SidQ5EukOWI/AAAAAAAAAAo/O9ChUAmJ9i0/s1600-h/1.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 169px; height: 181px;" src="http://2.bp.blogspot.com/_5iDXSxzW_Jc/SidQ5EukOWI/AAAAAAAAAAo/O9ChUAmJ9i0/s400/1.bmp" alt="A component rendered with images by_bosojava" id="BLOGGER_PHOTO_ID_5343328424350202210" border="0" /&gt;&lt;/a&gt;A component rendered with images&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The first step toward image nirvana is the background. Because this type of component is quite reusable, I built a subclass of JPanel called ImagePanel, shown in A Custom subclass of JPanel&lt;br /&gt;&lt;br /&gt; public class ImagePanel extends JPanel {&lt;br /&gt;  private Image img;&lt;br /&gt;&lt;br /&gt;  public ImagePanel(Image img) {&lt;br /&gt;   this.img = img;&lt;br /&gt;   Dimension size = new Dimension(img.getWidth(null),&lt;br /&gt;          img.getHeight(null));&lt;br /&gt;   setSize(size);&lt;br /&gt;   setPreferredSize(size);&lt;br /&gt;   setMinimumSize(size);&lt;br /&gt;   setMaximumSize(size);&lt;br /&gt;   setLayout(null);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The constructor takes the image to draw and saves it for later use in the img variable. Then it calls setSize( ) and setPreferredSize() with the size of the image. This ensures that the panel will be the size of the image exactly. I had to set the preferred, maximum, and minimum sizes as wellthis is because the panel's parent and children may not be using absolute layouts.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Absolute layout means that there is no layout manager to position the components appropriately (which can be set by calling setLayout(null)).&lt;br /&gt;&lt;br /&gt;In this case, the explicit size and position will be used (via setSize( ) and setLocation( )). When a layout manager is set, the preferred, minimum, and maximum sizes may be used. To cover all of the bases, simply set all four values to the image size.&lt;br /&gt;&lt;br /&gt;Now that the panel is sized appropriately, you can paint the image by overriding paintComponent():&lt;br /&gt;&lt;br /&gt; public void paintComponent(Graphics g) {&lt;br /&gt;  g.drawImage(img,0,0,null);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;It's important to override paintComponent( ) instead of paint( ), or else the child components won't get drawn.&lt;br /&gt;&lt;br /&gt;To test it, uses an ImagePanel and the usual JFrame.&lt;br /&gt;Testing out image-based panels&lt;br /&gt;&lt;br /&gt; public class ImageTest {&lt;br /&gt;&lt;br /&gt;  public static void main(String[] args) {&lt;br /&gt;   ImagePanel panel = new ImagePanel(new&lt;br /&gt;    ImageIcon("images/background.png").getImage());&lt;br /&gt;&lt;br /&gt;   JFrame frame = new JFrame("Hack #1: Create Image-Themed Components");&lt;br /&gt;   frame.getContentPane().add(panel);&lt;br /&gt;   frame.pack();&lt;br /&gt;   frame.setVisible(true);&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt; } &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When run, the ImageTest program looks like Figure 1-2.&lt;br /&gt;&lt;br /&gt;Now that the background is done, it's time to focus on the label, Activate Reactor. This is just a static image that sits at a certain position on the background. You could use another ImagePanel, but since the Activate Reactor text is logically a JLabel, you can just create an ImageLabel subclass, as shown in&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_5iDXSxzW_Jc/SidQ-gvdjDI/AAAAAAAAAAw/C7OTW9YJ-Xk/s1600-h/2.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 171px; height: 188px;" src="http://1.bp.blogspot.com/_5iDXSxzW_Jc/SidQ-gvdjDI/AAAAAAAAAAw/C7OTW9YJ-Xk/s400/2.bmp" alt="Background only by_bosojava" id="BLOGGER_PHOTO_ID_5343328517769497650" border="0" /&gt;&lt;/a&gt;Background only&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;An image-based label&lt;br /&gt;&lt;br /&gt; public class ImageLabel extends JLabel {&lt;br /&gt;&lt;br /&gt;  public ImageLabel(ImageIcon icon) {&lt;br /&gt;   setSize(icon.getImage().getWidth(null),&lt;br /&gt;       icon.getImage().getHeight(null));&lt;br /&gt;   setIcon(icon);&lt;br /&gt;   setIconTextGap(0);&lt;br /&gt;   setBorder(null);&lt;br /&gt;   setText(null);&lt;br /&gt;   setOpaque(false);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As with the ImagePanel, set the size of the label to match the size of the image. The rest of the sizing isn't needed because the JLabel will take care of that itself. Next, set the icon to your image, which lets the JLabel take care of the image drawing. Setting the icon text gap to zero and the border and text to null will remove any extra space around my image, resulting in a perfect mesh with the background. The final setOpaque(false) tells the label not to draw its own background. If your image fills the label then this won't matter, but if the image has transparent areas (as PNG files often do), then this will let the background shine through the transparent parts.&lt;br /&gt;&lt;br /&gt;Add this code to ImageTest's main() method:&lt;br /&gt;&lt;br /&gt; ImageLabel label = new ImageLabel(new ImageIcon("images/reactor.png"));&lt;br /&gt; label.setLocation(29,37);&lt;br /&gt; panel.add(label);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The result is shown in Figure&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5iDXSxzW_Jc/SidRZiC8t6I/AAAAAAAAAA4/KoQpg1vV7T4/s1600-h/3.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 185px; height: 196px;" src="http://4.bp.blogspot.com/_5iDXSxzW_Jc/SidRZiC8t6I/AAAAAAAAAA4/KoQpg1vV7T4/s400/3.bmp" alt="A custom JLabel by_bosojava" id="BLOGGER_PHOTO_ID_5343328981976135586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;A custom JLabel&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Next comes the button. Because buttons have rollovers and states, they are a bit trickier. Again, start with a JButton subclass, as in&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5iDXSxzW_Jc/SidRdEtu8ZI/AAAAAAAAABA/fDKifI9L3Uk/s1600-h/4.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 167px; height: 181px;" src="http://4.bp.blogspot.com/_5iDXSxzW_Jc/SidRdEtu8ZI/AAAAAAAAABA/fDKifI9L3Uk/s400/4.bmp" alt="Creating an image-based button by_bosojava" id="BLOGGER_PHOTO_ID_5343329042822001042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt; Creating an image-based button&lt;br /&gt;&lt;/div&gt;&lt;br /&gt; public class ImageButton extends JButton {&lt;br /&gt;  public ImageButton(ImageIcon icon) {&lt;br /&gt;   setSize(icon.getImage().getWidth(null),&lt;br /&gt;    icon.getImage().getHeight(null));&lt;br /&gt;   setIcon(icon);&lt;br /&gt;   setMargin(new Insets(0,0,0,0));&lt;br /&gt;   setIconTextGap(0);&lt;br /&gt;   setBorderPainted(false);&lt;br /&gt;   setBorder(null);&lt;br /&gt;   setText(null);&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The code is almost the same as JLabel. The only difference is the addition of the setMargin() and setBorder() calls. Most Look and Feels use a border and margin to indicate when the button has been selected. Labels aren't selectable so they don't have those methods. In any case, these are two more properties you can simply turn off.&lt;br /&gt;&lt;br /&gt;Add this code to ImageTest's main() method:&lt;br /&gt;&lt;br /&gt;final ImageButton button = new ImageButton("images/button.png");&lt;br /&gt; button.setLocation(60,74);&lt;br /&gt; panel.add(button);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The result is shown in Figure 1-4.&lt;br /&gt;&lt;br /&gt;Image button&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now that the button is visible, you only have to add the rollovers and other states. Fortunately, this doesn't require any new coding in the subclassJButton already provides support for images representing the rollover, pressed, selected, disabled, and disabled selected states. You can add various states by using normal set methods:&lt;br /&gt;&lt;br /&gt; button.setPressedIcon(new ImageIcon("images/button-down.png"));&lt;br /&gt; button.setRolloverIcon(new ImageIcon("images/button-over.png"));&lt;br /&gt; button.setSelectedIcon(new ImageIcon("images/button-sel.png"));&lt;br /&gt; button.setRolloverSelectedIcon(new ImageIcon("images/button-sel-over.png"));&lt;br /&gt; button.setDisabledIcon(new ImageIcon("images/button-disabled.png"));&lt;br /&gt; button.setDisabledSelectedIcon(&lt;br /&gt;  new ImageIcon("images/button-disabled-selected.png"));&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;the images I used to represent each state. The rollover effect is done with an outer glow, and I used a blur for the disabled state. The red rectangle in the middle represents the selected state, and it includes its own color change and red glow mimicking a real glowing lightbulb.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5iDXSxzW_Jc/SidRiOeQwSI/AAAAAAAAABI/m2PLVld6xSc/s1600-h/5_6.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 370px; height: 188px;" src="http://2.bp.blogspot.com/_5iDXSxzW_Jc/SidRiOeQwSI/AAAAAAAAABI/m2PLVld6xSc/s400/5_6.bmp" alt="Unselected button with rollover &amp;amp; Selected button by_bosojava" id="BLOGGER_PHOTO_ID_5343329131340808482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Unselected button with rollover &amp;amp; Selected button&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;On Image Creation&lt;br /&gt;&lt;br /&gt;I created these images by drawing everything in a separate layer in Photoshop. Keeping it all separate means I could save any section of the image as it's own file, with or without effects and backgrounds. Photoshop has a great feature called slices that lets you divide the image up into malleable sections. Photoshop's companion program, ImageReady, takes slices a step further by managing slice states for you. This lets you create rollovers, in and out images, and disabled states. When you Save Optimized, ImageReady automatically saves each slice state to a different file with the appropriate name (e.g., buttondisabled-selected.png). Slices were originally created for web design, but they can be put to great use in Swing applications as well.&lt;br /&gt;&lt;br /&gt;To fully demonstrate all of the states, I have added a standard JCheckBox. Normally, it would draw a gray background (or striped on the Mac) but a simple setOpaque(false) fixes that. The call to checkbox.setSize(checkbox. getPreferredSize( )) is needed to make the checkbox size itself properly when there is no layout manager in the parent, which is the case for this panel:&lt;br /&gt;&lt;br /&gt; final JCheckBox checkbox = new JCheckBox("Disable");&lt;br /&gt; checkbox.setLocation(70,150);&lt;br /&gt; checkbox.setOpaque(false);&lt;br /&gt; checkbox.setSize(checkbox.getPreferredSize());&lt;br /&gt; panel.add(checkbox);&lt;br /&gt; checkbox.addActionListener(new ActionListener() {&lt;br /&gt;  public void actionPerformed(ActionEvent evt) {&lt;br /&gt;   button.setEnabled(!checkbox.isSelected());&lt;br /&gt;  }&lt;br /&gt; });&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;With the addition of this code to ImageTest's main() method, the imagebased showcase program is complete. shows what the running program looks like in the selected but disabled state.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_5iDXSxzW_Jc/SidRnp_r-RI/AAAAAAAAABQ/2TZYJr2Te64/s1600-h/7.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 168px; height: 181px;" src="http://3.bp.blogspot.com/_5iDXSxzW_Jc/SidRnp_r-RI/AAAAAAAAABQ/2TZYJr2Te64/s400/7.bmp" alt="Selected and disabled by_bosojava" id="BLOGGER_PHOTO_ID_5343329224628107538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Selected and disabled&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4837068640686273747-3363443828752673724?l=bosojava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bosojava.blogspot.com/feeds/3363443828752673724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bosojava.blogspot.com/2009/06/create-image-themed-components-with.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/3363443828752673724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/3363443828752673724'/><link rel='alternate' type='text/html' href='http://bosojava.blogspot.com/2009/06/create-image-themed-components-with.html' title='Create Image-Themed Components with Java'/><author><name>Warrior Mojopahit</name><uri>http://www.blogger.com/profile/13371813418207523209</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5iDXSxzW_Jc/SidQ5EukOWI/AAAAAAAAAAo/O9ChUAmJ9i0/s72-c/1.bmp' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4837068640686273747.post-229466271694540690</id><published>2009-05-27T05:44:00.001-07:00</published><updated>2009-05-27T05:44:44.802-07:00</updated><title type='text'>Membuat Piramida Bilangan dengan Java</title><content type='html'>public class PiramidaBilangan&lt;br /&gt;{&lt;br /&gt;/**Main method*/&lt;br /&gt;public static void main(String[] args)&lt;br /&gt;{&lt;br /&gt;int jumBaris;&lt;br /&gt;String data="";&lt;br /&gt;&lt;br /&gt;System.out.println("\nPROGRAM MENCETAK PIRAMIDA BILANGAN");&lt;br /&gt;System.out.println("----------------------------------\n");&lt;br /&gt;&lt;br /&gt;// Menginstruksikan user untuk memasukkan jumlah baris&lt;br /&gt;System.out.print("Hasil : \n");&lt;br /&gt;data = javax.swing.JOptionPane.showInputDialog(null,"Masukan Jumlah baris:","5");&lt;br /&gt;jumBaris = Integer.parseInt(data);&lt;br /&gt;&lt;br /&gt;for (int baris = 1; baris &lt; (jumBaris + 1); baris++) { // Mencetak spasi di urutan depan hingga posisi tengah // untuk memanipulasi tampilan for (int kolom = 1; kolom &lt; (jumBaris + 1) - baris; kolom++) System.out.print(" "); // Mencetak bilangan di urutan depan hingga posisi tengah for (int bilangan = baris; bilangan &gt;= 1; bilangan--)&lt;br /&gt;System.out.print(bilangan);&lt;br /&gt;&lt;br /&gt;// Mencetak bilangan dari posisi tengah hingga belakang&lt;br /&gt;for (int bilangan = 2; bilangan &lt;= baris; bilangan++) System.out.print(bilangan); // Memulai baris baru System.out.println(); } } }   ////**********************************untuk piramida terbalik***************************  public class PiramidaBilangan { /**Main method*/ public static void main(String[] args) { int jumBaris; String data="";  System.out.println("\nPROGRAM MENCETAK PIRAMIDA BILANGAN"); System.out.println("----------------------------------\n");  // Menginstruksikan user untuk memasukkan jumlah baris System.out.print("Hasil : \n"); data = javax.swing.JOptionPane.showInputDialog(null,"Masukan Jumlah baris:","5"); jumBaris = Integer.parseInt(data);  for (int baris = 1; baris &lt; (jumBaris + 1); baris++) { // Mencetak spasi di urutan depan hingga posisi tengah // untuk memanipulasi tampilan for (int kolom = 1; kolom &lt; bilangan =" (jumBaris"&gt;= 1; bilangan--)&lt;br /&gt;System.out.print(bilangan);&lt;br /&gt;&lt;br /&gt;// Mencetak bilangan dari posisi tengah hingga belakang&lt;br /&gt;for (int bilangan = 2; bilangan &lt;= (jumBaris + 1)-baris; bilangan++)  System.out.print(bilangan); // Memulai baris baru System.out.println(); } } }      source code download &lt;a href="http://www.ziddu.com/download/4760987/pira.zip.html"&gt;disini&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;hasil: &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_yOh4Xju6mVA/Sg1dX3CW72I/AAAAAAAAADI/2kdvIDzJqag/s1600-h/pira.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 102px;" src="http://1.bp.blogspot.com/_yOh4Xju6mVA/Sg1dX3CW72I/AAAAAAAAADI/2kdvIDzJqag/s320/pira.jpg" alt="" id="BLOGGER_PHOTO_ID_5336023797996121954" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4837068640686273747-229466271694540690?l=bosojava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bosojava.blogspot.com/feeds/229466271694540690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bosojava.blogspot.com/2009/05/membuat-piramida-bilangan-dengan-java.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/229466271694540690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/229466271694540690'/><link rel='alternate' type='text/html' href='http://bosojava.blogspot.com/2009/05/membuat-piramida-bilangan-dengan-java.html' title='Membuat Piramida Bilangan dengan Java'/><author><name>Warrior Mojopahit</name><uri>http://www.blogger.com/profile/13371813418207523209</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_yOh4Xju6mVA/Sg1dX3CW72I/AAAAAAAAADI/2kdvIDzJqag/s72-c/pira.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4837068640686273747.post-4225319606874016319</id><published>2009-05-27T05:31:00.000-07:00</published><updated>2009-05-27T05:32:31.809-07:00</updated><title type='text'>Membuat pesan pilhan dengan JOptionPane (ya dan tidak)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_yOh4Xju6mVA/ShDtk-NnbnI/AAAAAAAAADo/nuBzetTjeb4/s1600-h/OptionDialog.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 266px; height: 116px;" src="http://1.bp.blogspot.com/_yOh4Xju6mVA/ShDtk-NnbnI/AAAAAAAAADo/nuBzetTjeb4/s320/OptionDialog.jpg" alt="" id="BLOGGER_PHOTO_ID_5337026777865219698" border="0" /&gt;&lt;/a&gt;/*&lt;br /&gt;* Program ini dibuat oleh Rachmad Hadi Wijoyo&lt;br /&gt;* anda boleh mengunakan dan mendistribusikan dengan bebas&lt;br /&gt;* asalkan tidak mengubah license ini.&lt;br /&gt;* copyright by Rachmad Hadi Wijoyo &lt;rac3_hw@yahoo.com,&gt;&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;package cobacoba;&lt;br /&gt;&lt;br /&gt;import java.awt.Component;&lt;br /&gt;import java.awt.Graphics;&lt;br /&gt;import java.awt.TrayIcon.MessageType;&lt;br /&gt;import javax.swing.Icon;&lt;br /&gt;import javax.swing.JOptionPane;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;*&lt;br /&gt;* @author rahw&lt;br /&gt;*/&lt;br /&gt;public class OptionDialog {&lt;br /&gt;   public OptionDialog(){&lt;br /&gt;     &lt;br /&gt;&lt;br /&gt;       String pil[] = {"Ya","Tidak"};&lt;br /&gt;&lt;br /&gt;    if(JOptionPane.showOptionDialog(null, "Anda yakin da pengen keluar? ", "Coba ShowOptionDialog",JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null, pil, this)==JOptionPane.YES_OPTION){&lt;br /&gt;        System.exit(0);&lt;br /&gt;    }&lt;br /&gt;   }&lt;br /&gt;   public static void main(String args[]){&lt;br /&gt;       new OptionDialog();&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/rac3_hw@yahoo.com,&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4837068640686273747-4225319606874016319?l=bosojava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bosojava.blogspot.com/feeds/4225319606874016319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bosojava.blogspot.com/2009/05/membuat-pesan-pilhan-dengan-joptionpane.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/4225319606874016319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/4225319606874016319'/><link rel='alternate' type='text/html' href='http://bosojava.blogspot.com/2009/05/membuat-pesan-pilhan-dengan-joptionpane.html' title='Membuat pesan pilhan dengan JOptionPane (ya dan tidak)'/><author><name>Warrior Mojopahit</name><uri>http://www.blogger.com/profile/13371813418207523209</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_yOh4Xju6mVA/ShDtk-NnbnI/AAAAAAAAADo/nuBzetTjeb4/s72-c/OptionDialog.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4837068640686273747.post-5197154860889053793</id><published>2009-05-27T05:30:00.000-07:00</published><updated>2009-05-27T05:31:26.201-07:00</updated><title type='text'>Nengkap event Tombol yang ditekan</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_yOh4Xju6mVA/ShI8RxWZ3tI/AAAAAAAAADw/D3sqQjpYdgc/s1600-h/bacaTombol.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 283px;" src="http://1.bp.blogspot.com/_yOh4Xju6mVA/ShI8RxWZ3tI/AAAAAAAAADw/D3sqQjpYdgc/s320/bacaTombol.jpg" alt="" id="BLOGGER_PHOTO_ID_5337394784390209234" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;package cobacoba;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;* bacaTombol&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;import java.awt.BorderLayout;&lt;br /&gt;import java.awt.Container;&lt;br /&gt;import java.awt.Dimension;&lt;br /&gt;import java.awt.event.*;&lt;br /&gt;import javax.swing.*;&lt;br /&gt;&lt;br /&gt;public class bacaTombol extends JFrame&lt;br /&gt;      implements KeyListener,&lt;br /&gt;      ActionListener&lt;br /&gt;{&lt;br /&gt;  JTextArea displayArea;&lt;br /&gt;  JTextField typingArea;&lt;br /&gt;  static final String newline = System.getProperty("line.separator");&lt;br /&gt;&lt;br /&gt;  public static void main(String[] args) {&lt;br /&gt;      /* Use an appropriate Look and Feel */&lt;br /&gt;      try {&lt;br /&gt;          //UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");&lt;br /&gt;          //UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");&lt;br /&gt;          UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");&lt;br /&gt;      } catch (UnsupportedLookAndFeelException ex) {&lt;br /&gt;          ex.printStackTrace();&lt;br /&gt;      } catch (IllegalAccessException ex) {&lt;br /&gt;          ex.printStackTrace();&lt;br /&gt;      } catch (InstantiationException ex) {&lt;br /&gt;          ex.printStackTrace();&lt;br /&gt;      } catch (ClassNotFoundException ex) {&lt;br /&gt;          ex.printStackTrace();&lt;br /&gt;      }&lt;br /&gt;      /* Turn off metal's use of bold fonts */&lt;br /&gt;      UIManager.put("swing.boldMetal", Boolean.FALSE);&lt;br /&gt;&lt;br /&gt;      //Schedule a job for event dispatch thread:&lt;br /&gt;      //creating and showing this application's GUI.&lt;br /&gt;      javax.swing.SwingUtilities.invokeLater(new Runnable() {&lt;br /&gt;          public void run() {&lt;br /&gt;              createAndShowGUI();&lt;br /&gt;          }&lt;br /&gt;      });&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  /**&lt;br /&gt;   * Create the GUI and show it.  For thread safety,&lt;br /&gt;   * this method should be invoked from the&lt;br /&gt;   * event-dispatching thread.&lt;br /&gt;   */&lt;br /&gt;  private static void createAndShowGUI() {&lt;br /&gt;      //Create and set up the window.&lt;br /&gt;      bacaTombol frame = new bacaTombol("bacaTombol");&lt;br /&gt;      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;&lt;br /&gt;      //Set up the content pane.&lt;br /&gt;      frame.addComponentsToPane();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      //Display the window.&lt;br /&gt;      frame.pack();&lt;br /&gt;      frame.setVisible(true);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private void addComponentsToPane() {&lt;br /&gt;&lt;br /&gt;      JButton button = new JButton("Clear");&lt;br /&gt;      button.addActionListener(this);&lt;br /&gt;&lt;br /&gt;      typingArea = new JTextField(20);&lt;br /&gt;      typingArea.addKeyListener(this);&lt;br /&gt;&lt;br /&gt;      //Uncomment this if you wish to turn off focus&lt;br /&gt;      //traversal.  The focus subsystem consumes&lt;br /&gt;      //focus traversal keys, such as Tab and Shift Tab.&lt;br /&gt;      //If you uncomment the following line of code, this&lt;br /&gt;      //disables focus traversal and the Tab events will&lt;br /&gt;      //become available to the key event listener.&lt;br /&gt;      //typingArea.setFocusTraversalKeysEnabled(false);&lt;br /&gt;&lt;br /&gt;      displayArea = new JTextArea();&lt;br /&gt;      displayArea.setEditable(false);&lt;br /&gt;      JScrollPane scrollPane = new JScrollPane(displayArea);&lt;br /&gt;      scrollPane.setPreferredSize(new Dimension(375, 125));&lt;br /&gt;&lt;br /&gt;      getContentPane().add(typingArea, BorderLayout.PAGE_START);&lt;br /&gt;      getContentPane().add(scrollPane, BorderLayout.CENTER);&lt;br /&gt;      getContentPane().add(button, BorderLayout.PAGE_END);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public bacaTombol(String name) {&lt;br /&gt;      super(name);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  /** Handle the key typed event from the text field. */&lt;br /&gt;  public void keyTyped(KeyEvent e) {&lt;br /&gt;      displayInfo(e, "KEY TYPED: ");&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  /** Handle the key pressed event from the text field. */&lt;br /&gt;  public void keyPressed(KeyEvent e) {&lt;br /&gt;      displayInfo(e, "KEY PRESSED: ");&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  /** Handle the key released event from the text field. */&lt;br /&gt;  public void keyReleased(KeyEvent e) {&lt;br /&gt;      displayInfo(e, "KEY RELEASED: ");&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  /** Handle the button click. */&lt;br /&gt;  public void actionPerformed(ActionEvent e) {&lt;br /&gt;      //Clear the text components.&lt;br /&gt;      displayArea.setText("");&lt;br /&gt;      typingArea.setText("");&lt;br /&gt;&lt;br /&gt;      //Return the focus to the typing area.&lt;br /&gt;      typingArea.requestFocusInWindow();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  /*&lt;br /&gt;   * We have to jump through some hoops to avoid&lt;br /&gt;   * trying to print non-printing characters&lt;br /&gt;   * such as Shift.  (Not only do they not print,&lt;br /&gt;   * but if you put them in a String, the characters&lt;br /&gt;   * afterward won't show up in the text area.)&lt;br /&gt;   */&lt;br /&gt;  private void displayInfo(KeyEvent e, String keyStatus){&lt;br /&gt;&lt;br /&gt;      //You should only rely on the key char if the event&lt;br /&gt;      //is a key typed event.&lt;br /&gt;      int id = e.getID();&lt;br /&gt;      String keyString;&lt;br /&gt;      if (id == KeyEvent.KEY_TYPED) {&lt;br /&gt;          char c = e.getKeyChar();&lt;br /&gt;          keyString = "key character = '" + c + "'";&lt;br /&gt;      } else {&lt;br /&gt;          int keyCode = e.getKeyCode();&lt;br /&gt;          keyString = "key code = " + keyCode&lt;br /&gt;                  + " ("&lt;br /&gt;                  + KeyEvent.getKeyText(keyCode)&lt;br /&gt;                  + ")";&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      int modifiersEx = e.getModifiersEx();&lt;br /&gt;      String modString = "extended modifiers = " + modifiersEx;&lt;br /&gt;      String tmpString = KeyEvent.getModifiersExText(modifiersEx);&lt;br /&gt;      if (tmpString.length() &gt; 0) {&lt;br /&gt;          modString += " (" + tmpString + ")";&lt;br /&gt;      } else {&lt;br /&gt;          modString += " (no extended modifiers)";&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      String actionString = "action key? ";&lt;br /&gt;      if (e.isActionKey()) {&lt;br /&gt;          actionString += "YES";&lt;br /&gt;      } else {&lt;br /&gt;          actionString += "NO";&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      String locationString = "key location: ";&lt;br /&gt;      int location = e.getKeyLocation();&lt;br /&gt;      if (location == KeyEvent.KEY_LOCATION_STANDARD) {&lt;br /&gt;          locationString += "standard";&lt;br /&gt;      } else if (location == KeyEvent.KEY_LOCATION_LEFT) {&lt;br /&gt;          locationString += "left";&lt;br /&gt;      } else if (location == KeyEvent.KEY_LOCATION_RIGHT) {&lt;br /&gt;          locationString += "right";&lt;br /&gt;      } else if (location == KeyEvent.KEY_LOCATION_NUMPAD) {&lt;br /&gt;          locationString += "numpad";&lt;br /&gt;      } else { // (location == KeyEvent.KEY_LOCATION_UNKNOWN)&lt;br /&gt;          locationString += "unknown";&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      displayArea.append(keyStatus + newline&lt;br /&gt;              + "    " + keyString + newline&lt;br /&gt;              + "    " + modString + newline&lt;br /&gt;              + "    " + actionString + newline&lt;br /&gt;              + "    " + locationString + newline);&lt;br /&gt;      displayArea.setCaretPosition(displayArea.getDocument().getLength());&lt;br /&gt;  }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4837068640686273747-5197154860889053793?l=bosojava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bosojava.blogspot.com/feeds/5197154860889053793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bosojava.blogspot.com/2009/05/nengkap-event-tombol-yang-ditekan.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/5197154860889053793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/5197154860889053793'/><link rel='alternate' type='text/html' href='http://bosojava.blogspot.com/2009/05/nengkap-event-tombol-yang-ditekan.html' title='Nengkap event Tombol yang ditekan'/><author><name>Warrior Mojopahit</name><uri>http://www.blogger.com/profile/13371813418207523209</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_yOh4Xju6mVA/ShI8RxWZ3tI/AAAAAAAAADw/D3sqQjpYdgc/s72-c/bacaTombol.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4837068640686273747.post-1385597012119555831</id><published>2009-05-27T05:29:00.000-07:00</published><updated>2009-05-27T05:30:29.274-07:00</updated><title type='text'>Membuat Aplikasi SystemTray dengan java</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_yOh4Xju6mVA/ShI8mgjV6-I/AAAAAAAAAD4/0PTQz3dRiRs/s1600-h/tray+icon2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 252px;" src="http://4.bp.blogspot.com/_yOh4Xju6mVA/ShI8mgjV6-I/AAAAAAAAAD4/0PTQz3dRiRs/s320/tray+icon2.jpg" alt="" id="BLOGGER_PHOTO_ID_5337395140658326498" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_yOh4Xju6mVA/ShI84u16K7I/AAAAAAAAAEA/E2iWjD-wsYM/s1600-h/tray+icon.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 207px; height: 39px;" src="http://1.bp.blogspot.com/_yOh4Xju6mVA/ShI84u16K7I/AAAAAAAAAEA/E2iWjD-wsYM/s320/tray+icon.jpg" alt="" id="BLOGGER_PHOTO_ID_5337395453731941298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;untuk membuat SystemTray seperti gambar diatas ternyata  tidak sesulit yang saya kira.&lt;br /&gt;berikut source code  beserta penjelasanya.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ziddu.com/download/4809967/CobaCoba.rar.html"&gt;Dowload project&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;* Program ini dibuat oleh Rachmad Hadi Wijoyo&lt;br /&gt;* anda boleh mengunakan dan mendistribusikan dengan bebas&lt;br /&gt;* asalkan tidak mengubah license ini.&lt;br /&gt;* copyright by Rachmad Hadi Wijoyo &lt;rac3_hw@yahoo.com,&gt;&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;package cobacoba;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;*&lt;br /&gt;* @author rahw&lt;br /&gt;*/&lt;br /&gt;import java.awt.*;&lt;br /&gt;import java.awt.event.*;&lt;br /&gt;import java.net.URL;&lt;br /&gt;import javax.swing.*;&lt;br /&gt;&lt;br /&gt;public class RTray {&lt;br /&gt;  public static void main(String[] args) {&lt;br /&gt;      /* Set Look and Feel yang kita guanakan*/&lt;br /&gt;      try {&lt;br /&gt;          UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");&lt;br /&gt;          //UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");&lt;br /&gt;      } catch (UnsupportedLookAndFeelException ex) {&lt;br /&gt;          ex.printStackTrace();&lt;br /&gt;      } catch (IllegalAccessException ex) {&lt;br /&gt;          ex.printStackTrace();&lt;br /&gt;      } catch (InstantiationException ex) {&lt;br /&gt;          ex.printStackTrace();&lt;br /&gt;      } catch (ClassNotFoundException ex) {&lt;br /&gt;          ex.printStackTrace();&lt;br /&gt;      }&lt;br /&gt;      /* mematikan evek metal look and feel  */&lt;br /&gt;      UIManager.put("swing.boldMetal", Boolean.FALSE);&lt;br /&gt;&lt;br /&gt;      //Menjadwal event-dispatching thread:&lt;br /&gt;      //Memasang TrayIcon.&lt;br /&gt;      SwingUtilities.invokeLater(new Runnable() {&lt;br /&gt;          public void run() {&lt;br /&gt;              createAndShowGUI();&lt;br /&gt;              new tesSystemTray().setVisible(true);&lt;br /&gt;          }&lt;br /&gt;      });&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private static void createAndShowGUI() {&lt;br /&gt;      //Untuk memeriksa apakah sistem mendukung SystemTray&lt;br /&gt;      if (!SystemTray.isSupported()) {&lt;br /&gt;          System.out.println("Tidak mendukung SystemTray ");&lt;br /&gt;          return;&lt;br /&gt;      }&lt;br /&gt;      final PopupMenu popup = new PopupMenu();&lt;br /&gt;      final TrayIcon trayIcon =&lt;br /&gt;              new TrayIcon(createImage("/cobacoba/administrator_128.png", "tray icon"));&lt;br /&gt;      final SystemTray tray = SystemTray.getSystemTray();&lt;br /&gt;&lt;br /&gt;      // membuat popup menu components&lt;br /&gt;      MenuItem aboutItem = new MenuItem("Tentang");&lt;br /&gt;      CheckboxMenuItem cb2 = new CheckboxMenuItem("Set tooltip");&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      MenuItem exitItem = new MenuItem("Exit");&lt;br /&gt;&lt;br /&gt;      //Add components to popup menu&lt;br /&gt;      popup.add(aboutItem);&lt;br /&gt;      popup.addSeparator();&lt;br /&gt;      popup.add(cb2);&lt;br /&gt;      popup.addSeparator();&lt;br /&gt;&lt;br /&gt;      popup.add(exitItem);&lt;br /&gt;&lt;br /&gt;      trayIcon.setPopupMenu(popup);&lt;br /&gt;&lt;br /&gt;      try {&lt;br /&gt;          tray.add(trayIcon);&lt;br /&gt;          trayIcon.setImageAutoSize(true);&lt;br /&gt;      } catch (AWTException e) {&lt;br /&gt;          System.out.println("TrayIcon tidak dapat dipasang.");&lt;br /&gt;          return;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      trayIcon.addActionListener(new ActionListener() {&lt;br /&gt;          public void actionPerformed(ActionEvent e) {&lt;br /&gt;              new tesSystemTray().setVisible(true);&lt;br /&gt;          }&lt;br /&gt;      });&lt;br /&gt;&lt;br /&gt;      aboutItem.addActionListener(new ActionListener() {&lt;br /&gt;          public void actionPerformed(ActionEvent e) {&lt;br /&gt;              JOptionPane.showMessageDialog(null,&lt;br /&gt;                      "Pesan ini dijalankan dari System Tray\n"+&lt;br /&gt;                      "Program ini dibuat oleh Rachmad Hadi Wijoyo\n"+&lt;br /&gt;                       "anda boleh mengunakan dan mendistribusikan dengan bebas\n"+&lt;br /&gt;                       "asalkan tidak mengubah license ini.\n"+&lt;br /&gt;                       "copyright by Rachmad Hadi Wijoyo &lt;rac3_hw@yahoo.com,&gt;\n"&lt;br /&gt;                       );&lt;br /&gt;          }&lt;br /&gt;      });&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;      cb2.addItemListener(new ItemListener() {&lt;br /&gt;          public void itemStateChanged(ItemEvent e) {&lt;br /&gt;              int cb2Id = e.getStateChange();&lt;br /&gt;              if (cb2Id == ItemEvent.SELECTED){&lt;br /&gt;                  trayIcon.setToolTip("Sun TrayIcon");&lt;br /&gt;              } else {&lt;br /&gt;                  trayIcon.setToolTip(null);&lt;br /&gt;              }&lt;br /&gt;          }&lt;br /&gt;      });&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      exitItem.addActionListener(new ActionListener() {&lt;br /&gt;          public void actionPerformed(ActionEvent e) {&lt;br /&gt;              tray.remove(trayIcon);&lt;br /&gt;              System.exit(0);&lt;br /&gt;          }&lt;br /&gt;      });&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  //Obtain the image URL&lt;br /&gt;  protected static Image createImage(String path, String description) {&lt;br /&gt;      URL imageURL = RTray.class.getResource(path);&lt;br /&gt;&lt;br /&gt;      if (imageURL == null) {&lt;br /&gt;          System.err.println("Gambar tidak ditemukan di: " + path);&lt;br /&gt;          return null;&lt;br /&gt;      } else {&lt;br /&gt;          return (new ImageIcon(imageURL, description)).getImage();&lt;br /&gt;      }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;___________&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;* Program ini dibuat oleh Rachmad Hadi Wijoyo&lt;br /&gt;* anda boleh mengunakan dan mendistribusikan dengan bebas&lt;br /&gt;* asalkan tidak mengubah license ini.&lt;br /&gt;* copyright by Rachmad Hadi Wijoyo &lt;rac3_hw@yahoo.com,&gt;&lt;br /&gt;* anda boleh mengunakan dan mendistribusikan dengan bebas&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;* tesSystemTray.java&lt;br /&gt;*&lt;br /&gt;* Created on May 19, 2009, 11:05:11 AM&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;package cobacoba;&lt;br /&gt;&lt;br /&gt;import java.awt.event.ActionEvent;&lt;br /&gt;import java.awt.event.ActionListener;&lt;br /&gt;import javax.swing.JFrame;&lt;br /&gt;import javax.swing.Timer;&lt;br /&gt;/**&lt;br /&gt;*&lt;br /&gt;* @author rahw&lt;br /&gt;*/&lt;br /&gt;public class tesSystemTray extends javax.swing.JFrame {&lt;br /&gt;&lt;br /&gt;  /** Creates new form tesSystemTray */&lt;br /&gt;  public tesSystemTray() {&lt;br /&gt;      initComponents();&lt;br /&gt;      timerx.start();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  /** This method is called from within the constructor to&lt;br /&gt;   * initialize the form.&lt;br /&gt;   * WARNING: Do NOT modify this code. The content of this method is&lt;br /&gt;   * always regenerated by the Form Editor.&lt;br /&gt;   */&lt;br /&gt;  @SuppressWarnings("unchecked")&lt;br /&gt;  // &lt;editor-fold defaultstate="collapsed" desc="Generated Code"&gt;//GEN-BEGIN:initComponents&lt;br /&gt;  private void initComponents() {&lt;br /&gt;&lt;br /&gt;      jPanel1 = new javax.swing.JPanel();&lt;br /&gt;      jButton1 = new javax.swing.JButton();&lt;br /&gt;      jButton2 = new javax.swing.JButton();&lt;br /&gt;      jLabel1 = new javax.swing.JLabel();&lt;br /&gt;      jLabel2 = new javax.swing.JLabel();&lt;br /&gt;&lt;br /&gt;      setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);&lt;br /&gt;&lt;br /&gt;      jPanel1.setBackground(new java.awt.Color(153, 153, 255));&lt;br /&gt;&lt;br /&gt;      jButton1.setText("Sembunyi");&lt;br /&gt;      jButton1.addActionListener(new java.awt.event.ActionListener() {&lt;br /&gt;          public void actionPerformed(java.awt.event.ActionEvent evt) {&lt;br /&gt;              jButton1ActionPerformed(evt);&lt;br /&gt;          }&lt;br /&gt;      });&lt;br /&gt;&lt;br /&gt;      jButton2.setText("Keluar");&lt;br /&gt;      jButton2.addActionListener(new java.awt.event.ActionListener() {&lt;br /&gt;          public void actionPerformed(java.awt.event.ActionEvent evt) {&lt;br /&gt;              jButton2ActionPerformed(evt);&lt;br /&gt;          }&lt;br /&gt;      });&lt;br /&gt;&lt;br /&gt;      jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cobacoba/administrator_128.png"))); // NOI18N&lt;br /&gt;      jLabel1.addMouseListener(new java.awt.event.MouseAdapter() {&lt;br /&gt;          public void mouseEntered(java.awt.event.MouseEvent evt) {&lt;br /&gt;              jLabel1MouseEntered(evt);&lt;br /&gt;          }&lt;br /&gt;          public void mouseExited(java.awt.event.MouseEvent evt) {&lt;br /&gt;              jLabel1MouseExited(evt);&lt;br /&gt;          }&lt;br /&gt;      });&lt;br /&gt;&lt;br /&gt;      jLabel2.setText("copyright by Rachmad Hadi Wijoyo &lt;rac3_hw@yahoo.com,&gt;");&lt;br /&gt;&lt;br /&gt;      javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);&lt;br /&gt;      jPanel1.setLayout(jPanel1Layout);&lt;br /&gt;      jPanel1Layout.setHorizontalGroup(&lt;br /&gt;          jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;          .addGroup(jPanel1Layout.createSequentialGroup()&lt;br /&gt;              .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;                  .addGroup(jPanel1Layout.createSequentialGroup()&lt;br /&gt;                      .addGap(117, 117, 117)&lt;br /&gt;                      .addComponent(jButton1)&lt;br /&gt;                      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)&lt;br /&gt;                      .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE))&lt;br /&gt;                  .addGroup(jPanel1Layout.createSequentialGroup()&lt;br /&gt;                      .addGap(134, 134, 134)&lt;br /&gt;                      .addComponent(jLabel1))&lt;br /&gt;                  .addGroup(jPanel1Layout.createSequentialGroup()&lt;br /&gt;                      .addContainerGap()&lt;br /&gt;                      .addComponent(jLabel2)))&lt;br /&gt;              .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))&lt;br /&gt;      );&lt;br /&gt;      jPanel1Layout.setVerticalGroup(&lt;br /&gt;          jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;          .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()&lt;br /&gt;              .addGap(27, 27, 27)&lt;br /&gt;              .addComponent(jLabel1)&lt;br /&gt;              .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 86, Short.MAX_VALUE)&lt;br /&gt;              .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)&lt;br /&gt;                  .addComponent(jButton2)&lt;br /&gt;                  .addComponent(jButton1))&lt;br /&gt;              .addGap(18, 18, 18)&lt;br /&gt;              .addComponent(jLabel2)&lt;br /&gt;              .addGap(4, 4, 4))&lt;br /&gt;      );&lt;br /&gt;&lt;br /&gt;      getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);&lt;br /&gt;&lt;br /&gt;      java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();&lt;br /&gt;      setBounds((screenSize.width-408)/2, (screenSize.height-327)/2, 408, 327);&lt;br /&gt;  }// &lt;/rac3_hw@yahoo.com,&gt;//GEN-END:initComponents&lt;br /&gt;&lt;br /&gt;  private void jLabel1MouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel1MouseEntered&lt;br /&gt;      // TODO add your handling code here:&lt;br /&gt;      jLabel1.setSize(jLabel1.getSize().width+20, jLabel1.getSize().height+20);&lt;br /&gt;  }//GEN-LAST:event_jLabel1MouseEntered&lt;br /&gt;&lt;br /&gt;  private void jLabel1MouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel1MouseExited&lt;br /&gt;      // TODO add your handling code here:&lt;br /&gt;      jLabel1.setSize(jLabel1.getSize().width-20, jLabel1.getSize().height-20);&lt;br /&gt;  }//GEN-LAST:event_jLabel1MouseExited&lt;br /&gt;&lt;br /&gt;  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed&lt;br /&gt;      // TODO add your handling code here:&lt;br /&gt;      dispose();&lt;br /&gt;  }//GEN-LAST:event_jButton1ActionPerformed&lt;br /&gt;&lt;br /&gt;  private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed&lt;br /&gt;      // TODO add your handling code here:&lt;br /&gt;      System.exit(0);&lt;br /&gt;  }//GEN-LAST:event_jButton2ActionPerformed&lt;br /&gt;&lt;br /&gt;  /**&lt;br /&gt;  * @param args the command line arguments&lt;br /&gt;  */&lt;br /&gt;  public static void main(String args[]) {&lt;br /&gt;      java.awt.EventQueue.invokeLater(new Runnable() {&lt;br /&gt;          public void run() {&lt;br /&gt;              new tesSystemTray().setVisible(true);&lt;br /&gt;&lt;br /&gt;          }&lt;br /&gt;      });&lt;br /&gt;  }&lt;br /&gt;  Timer timerx = new Timer(100, new ActionListener() {&lt;br /&gt;  public void actionPerformed(ActionEvent E) {&lt;br /&gt;    if (jLabel2.getLocation().x &lt;= (-jPanel1.getWidth()-50)){       jLabel2.setLocation(jPanel1.getWidth(),jLabel2.getLocation().y );       jLabel2.setLocation(jLabel2.getLocation().x-10, jLabel2.getLocation().y);       }else{       jLabel2.setLocation(jLabel2.getLocation().x-10, jLabel2.getLocation().y);       }     }     });      // Variables declaration - do not modify//GEN-BEGIN:variables     private javax.swing.JButton jButton1;     private javax.swing.JButton jButton2;     private javax.swing.JLabel jLabel1;     private javax.swing.JLabel jLabel2;     private javax.swing.JPanel jPanel1;     // End of variables declaration//GEN-END:variables  }   &lt;a href="http://www.ziddu.com/download/4809967/CobaCoba.rar.html"&gt;Download Project&lt;/a&gt;&lt;/editor-fold&gt;&lt;/rac3_hw@yahoo.com,&gt;&lt;/rac3_hw@yahoo.com,&gt;&lt;/rac3_hw@yahoo.com,&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4837068640686273747-1385597012119555831?l=bosojava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bosojava.blogspot.com/feeds/1385597012119555831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bosojava.blogspot.com/2009/05/membuat-aplikasi-systemtray-dengan-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/1385597012119555831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/1385597012119555831'/><link rel='alternate' type='text/html' href='http://bosojava.blogspot.com/2009/05/membuat-aplikasi-systemtray-dengan-java.html' title='Membuat Aplikasi SystemTray dengan java'/><author><name>Warrior Mojopahit</name><uri>http://www.blogger.com/profile/13371813418207523209</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_yOh4Xju6mVA/ShI8mgjV6-I/AAAAAAAAAD4/0PTQz3dRiRs/s72-c/tray+icon2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4837068640686273747.post-2416073600260278271</id><published>2009-05-27T05:24:00.000-07:00</published><updated>2009-05-27T05:25:16.184-07:00</updated><title type='text'>Menjalankan Aplikasi Lain dan Perintah-perintah DOS(command prompt) menggunakan JAVA</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_yOh4Xju6mVA/ShojZwbqDzI/AAAAAAAAAEI/-IFLOPo_twI/s1600-h/run2.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5339619233605750578" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: pointer; HEIGHT: 237px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_yOh4Xju6mVA/ShojZwbqDzI/AAAAAAAAAEI/-IFLOPo_twI/s320/run2.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_yOh4Xju6mVA/ShokEm-JbDI/AAAAAAAAAEQ/GNfCURhesII/s1600-h/run3.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5339619969800432690" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: pointer; HEIGHT: 240px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_yOh4Xju6mVA/ShokEm-JbDI/AAAAAAAAAEQ/GNfCURhesII/s320/run3.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_yOh4Xju6mVA/ShomYyG8-TI/AAAAAAAAAEY/LPuGfTyAb8o/s1600-h/run_command.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5339622515410794802" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: pointer; HEIGHT: 237px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_yOh4Xju6mVA/ShomYyG8-TI/AAAAAAAAAEY/LPuGfTyAb8o/s320/run_command.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Untuk Menjalankan aplikasi melalui java cukup dengan menggunakan class Runtime.&lt;br /&gt;class tsb Bisa juga untuk menjalankan perintah-perintah Dos seperti:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;cd C:\data\&lt;/li&gt;&lt;li&gt;attrib -s -h C:\data\* /s /d&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;untuk download project &lt;a href="http://www.ziddu.com/download/4888501/PanggilAplikasi.zip.html"&gt;disini&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nah berikut Source codenya:&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;* Program ini dibuat oleh Rachmad Hadi Wijoyo&lt;br /&gt;* anda boleh mengunakan dan mendistribusikan dengan bebas&lt;br /&gt;* asalkan tidak mengubah license ini.&lt;br /&gt;* copyright by Rachmad Hadi Wijoyo &lt;rac3_hw@yahoo.com, com=""&gt;&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;* Pangil.java&lt;br /&gt;*&lt;br /&gt;* Created on May 24, 2009, 12:05:49 AM&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;package panggilaplikasi;&lt;br /&gt;&lt;br /&gt;import java.io.File;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.util.logging.Level;&lt;br /&gt;import java.util.logging.Logger;&lt;br /&gt;import javax.swing.JFileChooser;&lt;br /&gt;import javax.swing.filechooser.FileFilter;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;*&lt;br /&gt;* @author rahw&lt;br /&gt;*/&lt;br /&gt;public class Pangil extends javax.swing.JFrame {&lt;br /&gt;&lt;br /&gt;/** Creates new form Pangil */&lt;br /&gt;public Pangil() {&lt;br /&gt;initComponents();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/** This method is called from within the constructor to&lt;br /&gt;* initialize the form.&lt;br /&gt;* WARNING: Do NOT modify this code. The content of this method is&lt;br /&gt;* always regenerated by the Form Editor.&lt;br /&gt;*/&lt;br /&gt;@SuppressWarnings("unchecked")&lt;br /&gt;// &lt;editor-fold desc="Generated Code" defaultstate="collapsed"&gt;//GEN-BEGIN:initComponents&lt;br /&gt;private void initComponents() {&lt;br /&gt;&lt;br /&gt;jPanel1 = new javax.swing.JPanel();&lt;br /&gt;jLabel1 = new javax.swing.JLabel();&lt;br /&gt;jButton1 = new javax.swing.JButton();&lt;br /&gt;jButton2 = new javax.swing.JButton();&lt;br /&gt;jLabel2 = new javax.swing.JLabel();&lt;br /&gt;jLabel3 = new javax.swing.JLabel();&lt;br /&gt;jTextField1 = new javax.swing.JTextField();&lt;br /&gt;jButton3 = new javax.swing.JButton();&lt;br /&gt;&lt;br /&gt;setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);&lt;br /&gt;setUndecorated(true);&lt;br /&gt;&lt;br /&gt;jPanel1.setBackground(new java.awt.Color(153, 204, 255));&lt;br /&gt;jPanel1.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 102, 255), 5, true));&lt;br /&gt;&lt;br /&gt;jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/panggilaplikasi/administrator_128.png"))); // NOI18N&lt;br /&gt;&lt;br /&gt;jButton1.setMnemonic('j');&lt;br /&gt;jButton1.setText("Jalankan");&lt;br /&gt;jButton1.addActionListener(new java.awt.event.ActionListener() {&lt;br /&gt;public void actionPerformed(java.awt.event.ActionEvent evt) {&lt;br /&gt;jButton1ActionPerformed(evt);&lt;br /&gt;}&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;jButton2.setMnemonic('k');&lt;br /&gt;jButton2.setText("Keluar");&lt;br /&gt;jButton2.addActionListener(new java.awt.event.ActionListener() {&lt;br /&gt;public void actionPerformed(java.awt.event.ActionEvent evt) {&lt;br /&gt;jButton2ActionPerformed(evt);&lt;br /&gt;}&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;jLabel2.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N&lt;br /&gt;jLabel2.setText("Menjalankan Aplikasi ");&lt;br /&gt;&lt;br /&gt;jLabel3.setText("Cari Aplikasi");&lt;br /&gt;&lt;br /&gt;jButton3.setText("jButton3");&lt;br /&gt;jButton3.addActionListener(new java.awt.event.ActionListener() {&lt;br /&gt;public void actionPerformed(java.awt.event.ActionEvent evt) {&lt;br /&gt;jButton3ActionPerformed(evt);&lt;br /&gt;}&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);&lt;br /&gt;jPanel1.setLayout(jPanel1Layout);&lt;br /&gt;jPanel1Layout.setHorizontalGroup(&lt;br /&gt;jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;.addGroup(jPanel1Layout.createSequentialGroup()&lt;br /&gt;.addContainerGap()&lt;br /&gt;.addComponent(jLabel1)&lt;br /&gt;.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)&lt;br /&gt;.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 219, javax.swing.GroupLayout.PREFERRED_SIZE)&lt;br /&gt;.addGroup(jPanel1Layout.createSequentialGroup()&lt;br /&gt;.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)&lt;br /&gt;.addComponent(jLabel3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)&lt;br /&gt;.addComponent(jButton1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))&lt;br /&gt;.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)&lt;br /&gt;.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE))&lt;br /&gt;.addGroup(jPanel1Layout.createSequentialGroup()&lt;br /&gt;.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 209, javax.swing.GroupLayout.PREFERRED_SIZE)&lt;br /&gt;.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)&lt;br /&gt;.addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)))&lt;br /&gt;.addContainerGap(12, Short.MAX_VALUE))&lt;br /&gt;);&lt;br /&gt;jPanel1Layout.setVerticalGroup(&lt;br /&gt;jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()&lt;br /&gt;.addContainerGap()&lt;br /&gt;.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)&lt;br /&gt;.addGroup(jPanel1Layout.createSequentialGroup()&lt;br /&gt;.addComponent(jLabel2)&lt;br /&gt;.addGap(31, 31, 31)&lt;br /&gt;.addComponent(jLabel3)&lt;br /&gt;.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)&lt;br /&gt;.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)&lt;br /&gt;.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)&lt;br /&gt;.addComponent(jButton3))&lt;br /&gt;.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 156, Short.MAX_VALUE)&lt;br /&gt;.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)&lt;br /&gt;.addComponent(jButton1)&lt;br /&gt;.addComponent(jButton2)))&lt;br /&gt;.addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE))&lt;br /&gt;.addContainerGap())&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);&lt;br /&gt;&lt;br /&gt;java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();&lt;br /&gt;setBounds((screenSize.width-405)/2, (screenSize.height-300)/2, 405, 300);&lt;br /&gt;}// &lt;/EDITOR-FOLD&gt;//GEN-END:initComponents&lt;br /&gt;&lt;br /&gt;private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed&lt;br /&gt;// TODO add your handling code here:&lt;br /&gt;JFileChooser fc = new JFileChooser();&lt;br /&gt;fc.setDialogTitle("Pilih Aplikasi");&lt;br /&gt;fc.setFileFilter(new FileFilter() {&lt;br /&gt;&lt;br /&gt;@Override&lt;br /&gt;public boolean accept(File f) {&lt;br /&gt;if (f.isDirectory()) {&lt;br /&gt;return true;&lt;br /&gt;}&lt;br /&gt;String fileName = f.getName();&lt;br /&gt;int i = fileName.lastIndexOf('.');&lt;br /&gt;if ((i &gt; 0) &amp;amp;&amp;amp; (i &lt; (fileName.length() - 1))) { String fileExt = fileName.substring(i + 1); if ("exe".equalsIgnoreCase(fileExt)) { return true; } } return false; } @Override public String getDescription() { return "exe aja"; } }); fc.showOpenDialog(jTextField1); jTextField1.setText(fc.getCurrentDirectory().getPath()+"\\"+fc.getSelectedFile().getName()); }//GEN-LAST:event_jButton3ActionPerformed private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed // TODO add your handling code here: System.exit(0); }//GEN-LAST:event_jButton2ActionPerformed private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed try { if(!(jTextField1.getText().isEmpty())) jalankan(jTextField1.getText()); } catch (IOException ex) { Logger.getLogger(Pangil.class.getName()).log(Level.SEVERE, null, ex); } }//GEN-LAST:event_jButton1ActionPerformed /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Pangil().setVisible(true); } }); } public void jalankan(String pathApp) throws IOException{ String cmd = "cmd.exe /k start "; Runtime.getRuntime().exec(cmd + pathApp); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1; private javax.swing.JTextField jTextField1; // End of variables declaration//GEN-END:variables } &lt;/RAC3_HW@YAHOO.COM,&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4837068640686273747-2416073600260278271?l=bosojava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bosojava.blogspot.com/feeds/2416073600260278271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bosojava.blogspot.com/2009/05/menjalankan-aplikasi-lain-dan-perintah.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/2416073600260278271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/2416073600260278271'/><link rel='alternate' type='text/html' href='http://bosojava.blogspot.com/2009/05/menjalankan-aplikasi-lain-dan-perintah.html' title='Menjalankan Aplikasi Lain dan Perintah-perintah DOS(command prompt) menggunakan JAVA'/><author><name>Warrior Mojopahit</name><uri>http://www.blogger.com/profile/13371813418207523209</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_yOh4Xju6mVA/ShojZwbqDzI/AAAAAAAAAEI/-IFLOPo_twI/s72-c/run2.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4837068640686273747.post-5268216903643248166</id><published>2009-05-27T05:22:00.000-07:00</published><updated>2009-05-27T05:23:18.804-07:00</updated><title type='text'>Welcome</title><content type='html'>Selamat datang di blog Boso JAVA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4837068640686273747-5268216903643248166?l=bosojava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bosojava.blogspot.com/feeds/5268216903643248166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bosojava.blogspot.com/2009/05/welcome.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/5268216903643248166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4837068640686273747/posts/default/5268216903643248166'/><link rel='alternate' type='text/html' href='http://bosojava.blogspot.com/2009/05/welcome.html' title='Welcome'/><author><name>Warrior Mojopahit</name><uri>http://www.blogger.com/profile/13371813418207523209</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
