Archive for October, 2009

Background Image in JDesktopPane

Saturday, October 31st, 2009

Bingung bagaimana caranya menambahkan background image ke dalam JDesktopPane di NetBeans IDE ? Nah kalau bingung, sekarang buatlah sebuah project dahulu di NetBeans IDE kemudian buatlah 1 buah Java Class dengan nama JImageDesktopPane (nama class terserah keinginan masing-masing :) ) kemudian pastekan kode dibawah ini :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jdesktoppanebackground;
 
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JDesktopPane;
 
/**
 *
 * @author Martinus Ady H <mrt .itnewbies@gmail.com>
 */
public class JImageDesktopPane extends JDesktopPane {
 
    private Image image;
 
    public JImageDesktopPane() {
    }
 
    @Override
    protected void paintComponent(Graphics g) {
        try {
            image = new javax.swing.ImageIcon(getClass().getResource("netbeans6ns0.png")).getImage();
 
            if (g != null) {
                g.drawImage(image,
                        (this.getSize().width - image.getWidth(null)) / 2,
                        (this.getSize().height - image.getHeight(null)) / 2,
                        null);
            }
        } catch (NullPointerException npe) {
            System.out.println("Can't find images !!");
        }
    }
}
</mrt>

Baris paling penting diatas terdapat pada baris ke 25, karena pada baris ke 25 kita mencoba mengambil gambar yang ingin kita jadikan sebagai Background Image dan sedangkan method paintComponent(Graphics g) pada baris 23-37 ini kita gunakan jika kita ingin mengubah-ubah tampilan dari JComponent di Java Swing :)

Nah jika sudah selesai, sekarang simpan gambar dibawah ini dengan nama netbeans6ns0.png pada direktori project
netbeans6ns0
Save Image As Gambar Ini

(more…)

Solving Problem in com.sun.tools.javac.code.Symbol$CompletionFailure: class file for javax.persistence.TemporalType not found

Friday, October 30th, 2009

Bingung dengan judul diatas ? Saya sendiri sebenarnya juga bingung karena kejadian yang saya alami ini juga kadang-kadang saja terjadi :( . Dan seperti-nya ini berkaitan dengan project yang menggunakan JPA (menggunakan TopLink atau Hibernate JPA di NetBeans IDE) , ceritanya saya mendapatkan pesan error seperti dibawah ini ketika melakukan proses kompilasi project :

/home/martinus/JDKBUG/project-jdkbug-gen/com.artivisi.jdkbug.domain/dist/com.artivisi.jdkbug.domain.jar(com/artivisi/jdkbug/domain/SampleDomain.class): warning: Cannot find annotation method 'name()' in type 'javax.persistence.Table': class file for javax.persistence.Table not found
/home/martinus/JDKBUG/project-jdkbug-gen/com.artivisi.jdkbug.domain/dist/com.artivisi.jdkbug.domain.jar(com/artivisi/jdkbug/domain/SampleDomain.class): warning: Cannot find annotation method 'mappedBy()' in type 'javax.persistence.OneToMany': class file for javax.persistence.OneToMany not found
An exception has occurred in the compiler (1.6.0_16). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport)  after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report.  Thank you.
com.sun.tools.javac.code.Symbol$CompletionFailure: class file for javax.persistence.TemporalType not found
/home/martinus/JDKBUG/project-jdkbug-gen/com.artivisi.jdkbug.ui/nbproject/build-impl.xml:349: The following error occurred while executing this line:
/home/martinus/JDKBUG/project-jdkbug-gen/com.artivisi.jdkbug.service/nbproject/build-impl.xml:365: The following error occurred while executing this line:
/home/martinus/JDKBUG/project-jdkbug-gen/com.artivisi.jdkbug.service/nbproject/build-impl.xml:168: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 1 second)

Nah aneh-nya library Hibernate-JPA sudah saya tambahkan pada project-domain dan project-service-impl, kalau saya melakukan proses kompilasi di project-domain dan di project-service-impl masalah ini tidak timbul. Tapi kalau melakukan proses kompilasi dari UI, baru deh muncul itu pesan error :(

Coba googling cuma mendapatkan 3 link saja, yang sepertinya menandakan bahwa jarang yang mendapatkan pesan error seperti di atas :( Setelah membaca Bug ID 6550655 ternyata solusinya gampang, yaitu tambahkan library TopLink atau Hibernate JPA di setiap project yang membutuhkan project-domain :)

Semoga berguna buat teman-teman yang mengalami kasus yang sama :D :)

Mengenal Opsi Verbose Pada Perintah Java

Saturday, October 17th, 2009

Pasti teman-teman sekarang sudah tahu kan bagaimana cara menjalankan aplikasi yang ditulis dengan menggunakan bahasa pemrograman Java ? Yaps cara-nya sih sangat sederhana, kita tinggal mengetikkan perintah java [nama_class] untuk menjalankan sebuah class di java dan mengetikkan perintah java -jar [nama_app.jar] untuk menjalankan sebuah file jar di java :) Nah sekarang jika sudah tahu, pernahkah teman-teman melihat opsi apa saja yang terdapat pada perintah java ??? Kalau ada yang bingung bagaimana cara menampilkan opsi yang terdapat pada perintah java, cobalah jalankan perintah java tanpa memberikan parameter apapun dan jika benar maka kita akan mendapatkan tampilan seperti dibawah ini :

martinus@martinusadyh:~/Latihan/Java$ java
Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)

where options include:
    -d32          use a 32-bit data model if available

    -d64          use a 64-bit data model if available
    -client	  to select the "client" VM
    -server	  to select the "server" VM
    -hotspot	  is a synonym for the "client" VM  [deprecated]
                  The default VM is server,
                  because you are running on a server-class machine.

    -cp 
    -classpath 
                  A : separated list of directories, JAR archives,
                  and ZIP archives to search for class files.
    -D=
                  set a system property
    -verbose[:class|gc|jni]
                  enable verbose output
    -version      print product version and exit
    -version:
                  require the specified version to run
    -showversion  print product version and continue
    -jre-restrict-search | -jre-no-restrict-search
                  include/exclude user private JREs in the version search
    -? -help      print this help message
    -X            print help on non-standard options
    -ea[:
...|:]
    -enableassertions[:
...|:]
                  enable assertions
    -da[:
...|:]
    -disableassertions[:
...|:]
                  disable assertions
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:
[=
]
                  load native agent library
, e.g. -agentlib:hprof
                    see also, -agentlib:jdwp=help and -agentlib:hprof=help
    -agentpath:
[=
]
                  load native agent library by full pathname
    -javaagent:[=
]
                  load Java programming language agent, see java.lang.instrument
    -splash:
                  show splash screen with specified image
martinus@martinusadyh:~/Latihan/Java$

(more…)

Konfigurasi User Home Direktori Apache di Slackware 13.0

Friday, October 9th, 2009

Karena pingin ngoprek WordPress, akhirnya timbul deh kebutuhan untuk mengkonfigurasi Apache dan PHP di Slackware 13.0 (karena paket Apache dan PHP sudah ter-install secara default pada Slackware 13.0) Tulisan ini banyak yang saya ambil dari tulisan om Somat yang Slackware dan apache dan Slackware dan php dengan beberapa perubahan yang saya sesuaikan dengan kondisi di Slackware saya :D

Konfigurasi Apache
Langkah yang saya lakukan yaitu sama persis seperti tulisan om Somat di Slackware dan apache yaitu beri akses execute pada file /etc/rc.d/rc.httpd dan jalankan apache-nya dengan perintah /usr/sbin/apachectl -k start
seperti dibawah ini :

root@martinusadyh:/etc/rc.d# chmod +x rc.httpd
root@martinusadyh:/etc/rc.d# /usr/sbin/apachectl -k start

Konfigurasi Apache dan PHP
Nah pada langkah ini, yang saya lakukan sedikit berbeda dengan yang om Somat lakukan :D . Karena packages PHP sudah terinstall, maka saya tinggal menambahkan 2 baris dibawah ini pada file /etc/httpd/httpd.conf :

373
374
AddType application/x-httpd-php .php
DirectoryIndex index.html index.php index.shtml

Konfigurasi Apache dan User Home Directories
Agar kita bisa tidak perlu repot-repot melakukan copy paste ke direktori /var/www/htdocs, nyalakan konfigurasi User home directories dengan meng-enable baris Include /etc/httpd/extra/httpd-userdir.conf pada file /etc/httpd/httpd.conf seperti dibawah ini:

448
Include /etc/httpd/extra/httpd-userdir.conf

Setelah selesai, buat sebuah direktori dengan nama public_html di home kemudian buatlah sebuah script php seperti dibawah ini :

1
2
3
<?php
phpinfo();
?>

Restart apache-nya dengan menjalankan perintah berikut :

/usr/sbin/apachectl -k restart

Sekarang coba browsing ke localhost/~namauser/php-info.php harusnya di browser muncul informasi tentang php :)

Link-link terkait :
- Slackware dan apache
- Slackware dan php

Installing MySQL WorkBench di Slackware 13.0

Wednesday, October 7th, 2009

Hari ini saya ada kebutuhan untuk membuat sebuah database diagram (ER) untuk tujuan dokumentasi pribadi (maklum klo cuma ditulis dikertas, lama-lama kertas-nya sobek-sobek :( ) Karena database yang biasa saya gunakan adalah MySQL maka pilihan saya jatuh pada MySQL WorkBench :) Mungkin untuk pengguna distro yang mempunyai package manajemen seperti DEB dan RPM tidak begitu kesulitan, karena MySQL sudah menyediakan package binary yang sudah siap untuk di install :) Sedangkan untuk pengguna distro lain seperti Slackware, mari kita bikin sendiri binary package-nya via kompilasi dari source again :D :)

Nah untung-nya lagi saya menemukan link ini. yang menjelaskan bagaimana cara meng-install MySQL WorkBench. Dan dibawah ini cuplikan bagaimana cara installasi-nya di Slackware 13.0 :

> has anyone, or could someone made a build script for mysql-workbench?
>

I did one, you can find it here:

http://hba.ath.cx/projects/slackbuilds/testing/mysql-workbench-oss-5.1.18/

But as Niels Horn has mentioned, “it has too many dependencies… ”
from gnome, so i installed first gnome from http://gnomeslackbuild.org
in slackware-13.0, then lua from SBo’s repository and finally i
builded mysql-workbench using my SlackBuild. But seriously… gnome
still sucks for me. I’m gonna reinstall slackware and then try to get
mysql-workbench but without all the gnome thing.

-hba

Posting asli ini bisa dibaca disini
(more…)