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