Saltar al contenido
CrossFly es 100% open sourceSíguenos en GitHub
CrossFlyCrossFly
Empezar

Esta página fue traducida automáticamente del portugués y puede contener errores. La versión en portugués es la canónica.

Errores de runtime

Formato: síntoma → causa → corrección.

MainWindow no carga (error de reflexión / “class not found”)

Causa: la clase raíz no extiende Window o no tiene constructor público sin argumentos. Corrección:

public class MainWindow extends Window {
   public MainWindow() { }   // constructor sin-args (obligatorio para la reflexión)
   @Override public void onShow() throws Exception { super.onShow(); /* … */ }
}

(Anatomía de proyecto)

“FrameBuffer not disposed! Must call Image.apply after Image.getGraphics!”

Causa: dibujaste off-screen en una Image y no confirmaste (commit). Corrección: dibuja con Image.getPaint() y finaliza con paint.finish() (o image.applyChanges()), todo dentro de Main.runOnPaintThreadAndWait(...):

Main.runOnPaintThreadAndWait(() -> {
   Paint p = img.getPaint();
   // … dibujar en p …
   p.finish();               // confirma (equivalente a img.applyChanges())
});

⚠️ Divergencia: el mensaje de error cita getGraphics()/apply() (nombres antiguos); los métodos reales son getPaint() y finish()/applyChanges(). (Cap. 18)

Componente modificado en un hilo de fondo cuelga/corrompe la UI

Causa: toda manipulación de UI es en la paint thread. Corrección: vuelve con Component.onUI(r) / Main.runOnPaintThread(r).

new Thread(() -> { var v = calc(); Component.onUI(() -> label.setText(v)); }).start();

(El paint thread)

UI montada en el constructor aparece vacía / con bounds erróneos

Causa: en el constructor, la pantalla/bounds aún no están listos. Corrección: monta en onShow() con super.onShow(). (Cap. 7)

Excepción en onAction “desaparece” sin colgar la app

Causa: los handlers son capturados por Debug.handle y tragados — no se propagan. Corrección: no cuentes con la propagación; loguea (Debug.log/Debug.handle) y revisa el DebugConsole.txt. (Errores y logging)

Ver también

¿Te resultó útil esta página?