Glade icm met java werkt niet.

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • WernerL
  • Registratie: December 2006
  • Nu online
Ik ben gisteren weer eens begonnen met java. :-)
Nu wil ik alleen GEEN lelijke awt of swing componenten gebruiken. Ik dacht dus, volgens mij werkt glade ook wel met java en kan ik gtk apps in java schrijven. Blijkbaar kan QT ook met qt jambi. Maar ik heb dus liever gtk zodat alle linux gebruikers mijn apps kunnen gebruiken zonder qt te hoeven installeren als ze een niet-kde desktop hebben.

Hoedanook, dit is mijn code geworden:

code:
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
39
40
41
42
package org.testing;

import java.io.FileNotFoundException;

import org.gnome.glade.Glade;
import org.gnome.glade.XML;

import org.gnome.gtk.Gtk;
import org.gnome.gtk.Label;
import org.gnome.gtk.Window;

public class test {

    /**
     * @param args
     * @throws FileNotFoundException 
     */
    
    private test() throws FileNotFoundException
    {
         final XML glade;
         final Window top;
         
         glade = Glade.parse("test.glade", "window1");
         
         top = (Window) glade.getWidget("window1");
         
         top.show();

    }
    
    public static void main(String[] args) throws FileNotFoundException {
        // TODO Auto-generated method stub
        
        Gtk.init(args);
        
        new test();
        
        Gtk.main();
    }

}


Nu krijg ik het op geen enkele wijze werkend. Ik heb ook al andere voorbeelden geprobeerd die op internet te vinden zijn. Elke keer eindig ik met deze foutmelding:
(java:3181): Gtk-WARNING **: Unable to locate theme engine in module_path: "clearlooks",

(java:3181): Gtk-WARNING **: Unable to locate theme engine in module_path: "murrine",

(java:3181): Gtk-WARNING **: Unable to locate theme engine in module_path: "clearlooks",

(java:3181): Gtk-WARNING **: Unable to locate theme engine in module_path: "murrine",

(java:3181): libglade-WARNING **: Expected <glade-interface>. Got <interface>.

(java:3181): libglade-WARNING **: did not finish in PARSER_FINISH state
Exception in thread "main" java.lang.RuntimeException: Cannot make a Java proxy for the NULL pointer!
at org.freedesktop.bindings.Proxy.<init>(Proxy.java:49)
at org.gnome.glib.Object.<init>(Object.java:73)
at org.gnome.glade.XML.<init>(XML.java:49)
at org.gnome.glade.Glade.parse(Glade.java:150)
at org.testing.test.<init>(test.java:24)
at org.testing.test.main(test.java:37)
En ik weet niet wat ik daar dan mee aanmoet. Google heeft me niet echt opweg weten te helpen.

Zijn er mischien meer mensen die al eens gtk apps met glade in java hebben gemaakt ? Wat doe ik fout? :-)

En mischien ook wel handig om te weten is dat ik een kde4.1 desktop heb. Ik heb dus niks van gnome geinstalleerd staan. Ik wil gewoon een gtk app maken zonder de GUI zelf te moeten programmeren.

[ Voor 3% gewijzigd door WernerL op 13-12-2008 14:02 ]

Roses are red, violets are blue, unexpected '{' on line 32.


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Waarom zou je als je Swing lelijk vindt er niet gewoon een skin overheen gooien? Dan werkt het gelijk ook onder Windows zonder GTK+ te moeten installeren als ik het goed snap.. Ik doel dus op iets als skinLF of gtkswing (geen ervaring mee).

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • WernerL
  • Registratie: December 2006
  • Nu online
Niet iedereen heeft dezelfde gtk theme geinstalleerd staan. :-)
als ik iets lelijk vind is als een applicatie er anders uit moet zien als 'de rest'.
Dan kan ik er wel een theme over swing heengooien maar dan nog ziet het er niet uit zoals mijn gtk theme. En als iemand anders een donker theme heeft en ik geef swing een heel licht theme denkt ie ook 'gadver, wat is dit...' :D

Swing kun je wel een windows look and feel geven geloof ik, maar toch... dan is mijn app windows-only. :')

[ Voor 12% gewijzigd door WernerL op 13-12-2008 16:41 ]

Roses are red, violets are blue, unexpected '{' on line 32.


Acties:
  • 0 Henk 'm!

Verwijderd

WernerL schreef op zaterdag 13 december 2008 @ 16:41:
Swing kun je wel een windows look and feel geven geloof ik, maar toch... dan is mijn app windows-only. :')
Swing kan je ook de native look geven die rendert met de native theme engine, maar die emulatie is niet perfect. Het beste is om per platform direct de native tools te gebruiken. Dan kan je ook platforn-specifieke integratie doorvoeren.

Acties:
  • 0 Henk 'm!

  • kw4h
  • Registratie: Februari 2008
  • Laatst online: 22-09 09:00
Verwijderd schreef op zaterdag 13 december 2008 @ 17:52:
[...]

Swing kan je ook de native look geven die rendert met de native theme engine, maar die emulatie is niet perfect. Het beste is om per platform direct de native tools te gebruiken. Dan kan je ook platforn-specifieke integratie doorvoeren.
Doet Eclipse SWT dit niet? Volgens mij spreekt die de native interface aan van het OS waar je je op dat moment op bevindt.

Acties:
  • 0 Henk 'm!

Verwijderd

kw4h schreef op zaterdag 13 december 2008 @ 20:16:
[...]

Doet Eclipse SWT dit niet? Volgens mij spreekt die de native interface aan van het OS waar je je op dat moment op bevindt.
Ja, en java-gnome werkt op dezelfde manier, via JNI. Maar java-gnome is letterlijk gtk en glade, terwijl SWT een abstractie is. SWT zal ook widgets zelf renderen als ze niet bestaan op het native platform. Eigenlijk lijken SWT en Swing tegenwoordig wel op elkaar.

Ik zie trouwens geen fout in de code. Het werkt op m'n Gnome-systeem prima. Misschien dat je een gtk theme engine moet installeren? Hij is daar naar opzoek voordattie een null tegenkomt. KDE heeft zelf volgens mij een gtk theme engine aan boord.

Acties:
  • 0 Henk 'm!

  • WernerL
  • Registratie: December 2006
  • Nu online
Ik gebruik eclipse als ontwikkel omgeving. SWT werkt blijkbaar ook goed zie ik. :D
Nu hoop dat ik daar wel een GUI designer voor is. Anders moet ik nog elke knop via code op de juiste positie gaan zetten. Weinig zin in.

Roses are red, violets are blue, unexpected '{' on line 32.


Acties:
  • 0 Henk 'm!

Verwijderd

WernerL schreef op zaterdag 13 december 2008 @ 22:18:
Ik gebruik eclipse als ontwikkel omgeving. SWT werkt blijkbaar ook goed zie ik. :D
Nu hoop dat ik daar wel een GUI designer voor is. Anders moet ik nog elke knop via code op de juiste positie gaan zetten. Weinig zin in.
Ik heb vorig jaar voor een practicum-opdracht Swing gebruikt in Eclipse, met de Visual Editor plugin. Het is nogal een onding, erg traag, vaak weirde errors, maar de opdracht kwam er mee af. De GUI-editor van Netbeans is wat beter, maar dan zit je dus met de Netbeans IDE. Van beide weet ik niet of ze naast Swing ook SWT aankunnen.

Sowieso is zowel Swing als SWT een heel ander model dan Glade, waar je een html-achtige xml-file krijgt die wordt geïnterpreteerd. Bij Swing en SWT wordt de GUI gewoon hard in de class-files geprogrammeerd. Ik vind die scheiding tussen GUI en programma-code van Glade een stuk netter.

Glade is trouwens best een handige designer. Ik heb zo-even als testje de GUI van Nautilus nagebouwd. De code erachter is wat te veel voor vandaag. ;)
Pagina: 1