Java-gnome

**java-gnome** adalah sekumpulan pengikat bahasa untuk bahasa pemrograman Java untuk digunakan di lingkungan desktop GNOME. Java-gnome menyediakan sekumpulan pustaka yang memungkinkan pengembang untuk membangun program GTK menggunakan bahasa pemrograman Java. Berbeda dengan pengikat bahasa untuk GTK lainnya, java-gnome hanya tersedia untuk distribusi Linux saja.

## Pengembangan
Pertama kali dirilis di bulan Oktober 08 1999 dengan versi 0.2. Java-gnome menyediakan pengikat pertama untuk Gnome dan GTK. Hingga versi 2.0, java-gnome ditulis oleh sebuah tim proyek. Versi  4.0 saat ini awalnya  merupakan proyek internal dari Operational Dynamics, sebuah grup konsultan manajemen perubahan.

Dari tahun 1999, yang sering disebut seri 2.X adalah proyek utamanya. Setelah ditinggalkan oleh tim utamanya untuk beberapa waktu, proyeknya diberikan kepada pengembang baru ditahun 2006, karena terdapat beberapa masalah pengembangan yang datang dari banyak isu pemeliharaan.

Rilis terakhir dari versi 2.0 (yang dilanjutkan dari proyek yang sama dari versi 0.2) adalah versi 2.16.2 (disebut seri 2.x). Cakupan dari seri ini tidak pernah berhasil melewati GTK 2.6. Pembaruan ini dipanggil sebagai "akhir masa pakai" untuk proyek lawas dan tidak lagi dirawat. Semua kontribusi tambalan untuk versi dibawah 4.0 sudah tidak lagi diterima.

Kedua pembaharuan 2.0 dan 4.0 memiliki gaya koding yang mirip, sedangkan ruang paket, kelas, dan nama metode nya berbeda. Internal dari proyek tersebut telah diganti dari versi 4.0, jadi mereka tidak dapat diakses secara publik.

Sekarang, proyek ini sedang dipelihara oleh "peretas Java-gnome". Pemimpin dari tim terbaru ini adalah Andrew Cowie, salah satu arsitek utama untuk proyek java-gnome.

## Fungsi
Java-gnome menggunakan bahasa pemrograman Java dan sistem kelas berbasis Java untuk membuat bagian antarmuka grafis. Masing-masing paket terimplementasi mempunyai fungsi yang berbeda. Beberapa paket yang digunakan di versi 4.0 diantarnya:

* GTK - Perangkat widget itu sendiri.
* GDK - Berisi gambar primitif tingkat rendah. Mayoritas menggambar dilakukan oleh Kairo.
* Glib dan GObject - Wadah untuk infrastruktur lainnya yang memungkinkan penggunaan OOP.
* Pango - Mesin tata letak teks.
* ATK - Toolkit aksesibilitas yang memungkinkan kontrol ekstra dengan kontrol komputer.
* GtkSourceView - Penyorot kode sumber.
* LibNotify - Pemberitahu peringatan.
* GtkSpell - Pemeriksa Ejaan.
* LibUnique - Library yang membantu mempertahankan satu instance aplikasi yang berfungsi.

## Dukungan
Java-gnome hanya didukung di distribusi Linux dan Unix, tidak seperti kebanyakan pengikat GTK lainnya, yang mendukung sistem lain. Instruksi khusus distribusi tersedia untuk:
* Gentoo Linux
* Arch Linux
* Debian Linux
* Ubuntu Linux
Instruksi setengah jadi tersedia untuk distribusi Open Solaris dan Fedora Core Linux.

## Perizinan
Java-gnome adalah perangkat lunak bebas yang dirilis dibawah persyratan dari Lisensi Publik Umum GNU versi 2.

## Contoh
Untuk mengompilasi kelas java-gnome, perlu menambahkan jar gtk-4.1.jar di classpath.  Jar tersedia di Debian (dan semua distribusi berbasis Debian) dalam paket libjava-gnome-java, yang dapat ditemukan di repositori resmi Debian. Nantinya Jar tersebut akan  terpasang di bawah jalur /usr/share/java.


```java
package org.wikipedia.javagnome.example;

import org.gnome.gdk.Event;
import org.gnome.gtk.Gtk;
import org.gnome.gtk.Widget;
import org.gnome.gtk.Window;
import org.gnome.gtk.WindowPosition;
/**
 * Java-Gnome GTK Example
 * ispired official site java-gnome.sourceforge.net
 */
public class GdkSimple extends Window {
    public GdkSimple() {
        setTitle("Example");
        connect((DeleteEvent)(source, event) -> {
            Gtk.mainQuit();
            return false;
        });
        setDefaultSize(250, 150);
        setPosition(WindowPosition.CENTER);
        show();
    }

    public static void main(String[] args) {
        Gtk.init(args);
        new GdkSimple(); 
        Gtk.main(); 
    } 
}
```


## Lihat pula

* GTK
* Bahasa pemrograman Java

## Referensi