GTK 4 bindings for Java. It uses Java Native Access (JNA) to access GTK libraries.
package examples;
import ch.bailu.gtk.gio.ApplicationFlags;
import ch.bailu.gtk.gtk.Application;
import ch.bailu.gtk.gtk.ApplicationWindow;
import ch.bailu.gtk.gtk.Button;
import ch.bailu.gtk.type.Strs;
public class HelloWorld {
public static void main(String[] args) {
var app = new Application("com.example.hello",
ApplicationFlags.FLAGS_NONE);
app.onActivate(() -> {
// Create a new window
var window = new ApplicationWindow(app);
// Create a new button
var button = new Button();
// Set button label
button.setLabel("Hello, World!");
// When the button is clicked, close the window
button.onClicked(window::close);
window.setChild(button);
window.show();
});
// Start application main loop
var result = app.run(args.length, new Strs(args));
// Terminate with exit code
System.exit(result);
}
}
./gradlew generate or make gen
Compiles and runs the code generator. This will generate Java code from GIR files.
generator/src/resources/gir/*java-gtk/build/generated/src/main/java/[...]/*.java./gradlew build or make
Creates library, javadoc and run tests
libray/build/libs/./gradlew run or make run
Run the default demo application.
There are more demo applications in examples/src/main/java/examples including GeoClue2 and Adwaita samples.
make install
Compile Java library, generate JAR archive and copy JAR archive as artifact to local Maven repository (~/.m2/repository).
Library and Javadoc is available via JitPack.
// build.gradle.kts
plugins {
application
}
repositories {
maven { url = uri("https://jitpack.io") }
}
dependencies {
implementation("com.github.bailuk:java-gtk:0.6.1")
}
application {
mainClass.set("examples.HelloWorld")
}
generator/: Kotlin application that generates Java code from GIR files (xml parser -> model builder -> writer). GIR files are taken from Debian dev packages.java-gtk/ : java-gtk library depends on generated Java code.examples/ : Some examples to test the bindings. Mostly ported from https://gitlab.gnome.org/GNOME/gtk/-/tree/main/demos/gtk-demo.Kotlin
55.4%
Java
42.4%
GTK 4 bindings for Java. It uses Java Native Access (JNA) to access GTK libraries.
package examples;
import ch.bailu.gtk.gio.ApplicationFlags;
import ch.bailu.gtk.gtk.Application;
import ch.bailu.gtk.gtk.ApplicationWindow;
import ch.bailu.gtk.gtk.Button;
import ch.bailu.gtk.type.Strs;
public class HelloWorld {
public static void main(String[] args) {
var app = new Application("com.example.hello",
ApplicationFlags.FLAGS_NONE);
app.onActivate(() -> {
// Create a new window
var window = new ApplicationWindow(app);
// Create a new button
var button = new Button();
// Set button label
button.setLabel("Hello, World!");
// When the button is clicked, close the window
button.onClicked(window::close);
window.setChild(button);
window.show();
});
// Start application main loop
var result = app.run(args.length, new Strs(args));
// Terminate with exit code
System.exit(result);
}
}
./gradlew generate or make gen
Compiles and runs the code generator. This will generate Java code from GIR files.
generator/src/resources/gir/*java-gtk/build/generated/src/main/java/[...]/*.java./gradlew build or make
Creates library, javadoc and run tests
libray/build/libs/./gradlew run or make run
Run the default demo application.
There are more demo applications in examples/src/main/java/examples including GeoClue2 and Adwaita samples.
make install
Compile Java library, generate JAR archive and copy JAR archive as artifact to local Maven repository (~/.m2/repository).
Library and Javadoc is available via JitPack.
// build.gradle.kts
plugins {
application
}
repositories {
maven { url = uri("https://jitpack.io") }
}
dependencies {
implementation("com.github.bailuk:java-gtk:0.6.1")
}
application {
mainClass.set("examples.HelloWorld")
}
generator/: Kotlin application that generates Java code from GIR files (xml parser -> model builder -> writer). GIR files are taken from Debian dev packages.java-gtk/ : java-gtk library depends on generated Java code.examples/ : Some examples to test the bindings. Mostly ported from https://gitlab.gnome.org/GNOME/gtk/-/tree/main/demos/gtk-demo.Kotlin
55.4%
Java
42.4%