No sé si ya lo había comentado antes, pero me inicié con la programación en Java desde hace, digamos, un par de meses... o tal vez tres, no lo sé, pero no es mucho que digamos. En este tiempo me he estado instruyendo con varios manuales que conseguí en internet y la página de la API de Java por Sun ha sido un sitio de constante visita. Por fortuna había estudiado Java cuando tenía como 13 o 14 años pero como no tenía en qué practicar y apenas sabía algo de programación fracasé, pero ya no me resultó tan difícil recobrarme ahora que volví puesto que, aunado a aquella experiencia, llegué con más noción de la programación orientada a objetos gracias a Visual Basic y las ojeadas que le daba a C++.
El punto es que ahora resulto ser programador novicio en Java, comenzando pero viendo hacia'l frente.
Los problemas ahora vienen con Java, cosa que para mí es una noticia amigable :-)
Estos liado con un código en Java. Practico la programación gráfica de Java y me empiezo por crear figuras basadas en las clases de AWT. Por ahora lo que quiero es algo muy sencillo: crear un una ventana con un botón, sólo eso. Para la ventana uso la clase Frame
y para el botón la clase Button
. El código es pequeño cabe en un único archivo llamado Prueva.java:
import java.awt.*;
import java.awt.event.*;
public class Prueva extends Frame{
public static void main(String args[]){
Prueva app = new Prueva();
Button button = new Button("Heisann");
button.setBackground(Color.MAGENTA);
button.setSize(64, 64);
app.add(button);
app.setBackground(Color.CYAN);
app.setTitle("Hols!");
app.setSize(512, 512);
app.setVisible(true);
}
public Prueva(){
//
}
/*protected void processWindowEvent(WindowEvent e){
if (e.getID() == e.WINDOW_CLOSING) {
System.exit(0);
}
}*/
}
Lo que consigo con esto es que se cree una ventana de unos 512 x 512 con el título "Hols!" y en ella... ahí el problema. Se supone que
Button button = new Button("Heisann");
button.setBackground(Color.MAGENTA);
button.setSize(1, 1);
Era para que creara un botón de 64 * 64 y que lo pusiera donde se le de la gana, pero no es así, por el contrario aparece uno de 512 * 512, y algo que he comprendido en este ejemplo que he programado es que, según parece, el orden de los factores altera el producto. Hay una instrucción:
setVisible(boolean)
de Frame que, dependiendo de dónde la coloque, hará que se pinte de Color.CYAN todo el fondo de la ventana pero que cuando redimensione (haciendo más grande la ventana) el fondo nuevo aparezca también pintado o de color gris.Por el momento esto es lo que llevo, habrá que descubrir la solución.
El verdadero quebradero de cabeza lo explicaré más tarde pero es con los eventos de la aplicación, pero decidí corregir primero esto del tamaño del botón, es por ello que dejé como comentario lo demás.
Saludos.
No hay comentarios.:
Publicar un comentario