Página 1 de 1

como conecto las librerias WxWidget a Java

Publicado: Vie, 17 Dic 2010, 18:29
por cl2raul
Hola, esto de java es una magnifica opción siempre q este libre...
pero estamos en tiempos de ver contenido y pacotillas gráficas no la viejas y enredas consolas, por lo q vi en foros WxWidget es una librería de componentes gráficos para C++, java y pascal... y descargue una...

que maravilla en windows logre unir WxWidget con CodeBloc (gcc) con éxitos, lo q sucede es q las llamadas a las funciones de estas eran muy complejas y la falta de tutoriales en español-ingles es poco (de ejemplos concretos y avanzados)... bueno pero en java no logre nada de nada... alguien sabe como hacerlos unir...

pregunta ignorante: puedo crear mis propios componentes a partir de los q ya existen y con el diseño q yo quiera darles, puedo solo actualizar los diseños de los componentes?

Re: como conecto las librerias WxWidget a Java

Publicado: Mar, 21 Dic 2010, 10:49
por yosle
Bueno mi corta experiencia en Wx es principalmente en su binding para python (WXpython), también he hecho algunas pruebas con C++ pero la API es la misma para todos los lenguajes, solo cambia la forma den la que se declaran las clases y llaman los métodos en función del lenguaje. Si usas Linux,puedes revisar la documentación que viene en los paquetes en lo que consigues alguna bibliografía mas completa.

wx2.8-doc, wx2.8-examples

En este caso yo uso la version 2.8, asi que uso la documentación de la misma version, Nota: Como WX es una libreria originalmente para C++, los ejemplos y la doc esta en C++, nunca he usado Wx en java pero supongo que debe ser muy parecido, por ejemplo no resulta muy dificil "traducir" de C++ a Python.

por eso te recomiendo C++ o Python para aprender WX.Sobre la pregunta que haces, WX tiene gran cantidad de componentes y si, puedes crear componentes propios basados en los standard o hecho de cero por ti , al menos eso es lo que dice la documentación , hasta donde yo he llegado nunca he necesitado algo para la interfaz que no tenga un widget.

Ahora bien , Java y WX:
Segun estuve averiguando el binding para java es muy reciente y esta en versión de prueba,(lo cual explica porque no lo tengo en mi repo y supongo que en los de la mayoria)

http://jwx.sourceforge.net/index.html
jwx! is a Java binding to the wxWidgets GUI framework. The development of jwx! is still under alpha stage. Current development version provides quite large number of Core GUI classes of the wxWidgets-2.6.3 and several sample apps to demonstrate the
capabilities of jwx! and wxWidgets.
ya esta disponible en el sitio oficial, la documentación y referencia de la librería, pero aparentemente el Tutorial esta todavía bajo desarrollo.Mientras aquí te va el hola mundo.Aunque actualmente java no es mi interes te agradecería que postearas si logras algun avance, a lo mejor te pueda ayudar en algo.

si ya tienes el JDK y jwx instalados, puedes probar este hola mundo, como veras (particularidades de Java aparte ) es muy similar a los ejemplos de C++ ,el ejemplo usa un icono desde una imagen png, pero puedes omitir esa linea.

Minimal.java

Código: Seleccionar todo

package demo;

public class Minimal {

static class MyApp extends wx.App {

public MyApp() {
super();
        }

public boolean onInit() {

            MyFrame frame = new MyFrame("Aplicacion minima con jwx! ");
            frame.show();

return true;
        }
    }

static class MyFrame extends wx.Frame {

public MyFrame(String title) {

super(null, 0, title);

            setIcon(new wx.Icon("src/demo/mondrian.png"));

            wx.MenuBar mb = new wx.MenuBar();

            wx.Menu fileMenu = new wx.Menu();
            wx.Menu helpMenu = new wx.Menu();

            fileMenu.append(wx.ID.EXIT, "E&xit\tAlt-X", "Quit this program");
            helpMenu.append(wx.ID.ABOUT, "&About...\tF1", "Show about dialog");

            mb.append(fileMenu, "&File");
            mb.append(helpMenu, "&Help");

            setMenuBar(mb);

            createStatusBar(2);

            connect(wx.ID.EXIT,     wx.Core.EVT_MENU,   "onExit");
            connect(wx.ID.ABOUT,    wx.Core.EVT_MENU,   "onAbout");
        }

private void onAbout(wx.Event evt) {
            wx.MessageBox.show("This is the About Dialog of the Minimal sample.\n"+
"Welcome to jwx! " + wx.Version.VERSION_STRING);
        }

private void onExit(wx.Event evt) {
            close();
        }
    }

public static void main(String [] args) {
        MyApp app = new MyApp();
        app.run(args);
    }
}

,