Hola amigos de la lista,

Estoy tratando de entenderme con java y la librería jcurses para una aplicación sencilla para la consola y quería mejorar su aspecto con esta librería pero no he logrado echarla andar y quería saber si alguien ha tenido esta experencia.

En su momento hice lo mismo con python pero con java no lo logro.

Cosas que he hecho:

- Trabajo con debian 7, 64 bits.

- Tengo instalado el openjdk: java-6-openjdk-i386, tomado del repo.

- Tengo instalado libncurses5-dev para obtener curses.h.

- Tengo instalado jcurses-linux-0.9.5b.tar.gz

- En la carpeta del proyecto, la carpeta 'jcurses' y 'META-INF'.

Procedimiento:

Compila ok,

# javac Test2.java

Este es el ejemplo que estoy tratando de correr,

import jcurses.system.*;
import jcurses.widgets.*;
import jcurses.util.*;
import jcurses.event.*;

public class Test2 extends Window implements ItemListener, ActionListener,
    ValueChangedListener, WindowListener, WidgetsConstants {
  static Test2 window = null;
  static TextField textfield = null;
  static Button button = null;

  public Test2(int width, int height) {
    super(width, height, true, "JCurses Test");
  }

  public void init() {
    DefaultLayoutManager mgr = new DefaultLayoutManager();
    mgr.bindToContainer(window.getRootPanel());
    mgr.addWidget(
        new Label("Hello World!",
                  new CharColor(CharColor.WHITE, CharColor.GREEN)),
                  0, 0, 20, 10,
                  WidgetsConstants.ALIGNMENT_CENTER,
                  WidgetsConstants.ALIGNMENT_CENTER);

    textfield = new TextField(10);
    mgr.addWidget(textfield, 0, 0, 20, 20,
        WidgetsConstants.ALIGNMENT_CENTER,
        WidgetsConstants.ALIGNMENT_CENTER);

    button = new Button("Quit");
    mgr.addWidget(button, 0, 0, 20, 30,
        WidgetsConstants.ALIGNMENT_CENTER,
        WidgetsConstants.ALIGNMENT_CENTER);

    button.setShortCut('q');
    button.addListener(this);
    window.addListener((WindowListener) this);
    window.show();
  }

  public void actionPerformed(ActionEvent event) {
    Widget w = event.getSource();
    if (w == button) {
      new Message("HowTo", "You are about to quit", "OK").show();
      window.close();
    }
  }

  public void stateChanged(ItemEvent e) {  }

  public void valueChanged(ValueChangedEvent e) {  }

  public void windowChanged(WindowEvent event) {
    if (event.getType() == WindowEvent.CLOSING) {
      event.getSourceWindow().close();
// Toolkit.clearScreen(new CharColor(CharColor.WHITE, CharColor.BLACK));
    }
  }

  public static void main(String args[]) throws Exception {
    window = new Test2(30, 20);
    window.init();
  }

}

Luego, cuando ejecuto la app,

# java Test2

Salida,

Exception in thread "main" java.lang.ExceptionInInitializerError
        at jcurses.system.InputChar.<clinit>(InputChar.java:13)
        at jcurses.widgets.Window.<clinit>(Window.java:209)
Caused by: java.lang.NullPointerException
        at jcurses.system.Toolkit.getLibraryPath(Toolkit.java:111)
        at jcurses.system.Toolkit.<clinit>(Toolkit.java:37)
        ... 2 more
Could not find the main class: Test2. Program will exit.

pero no entiendo en qué estoy fallando.

Tal vez alguien pueda hecharme una mano  :)

--
Saludos,
Luis
______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l

Responder a