Hola gente, espero esten bien.
Veran, he retomado un curso de java que tenia pendiente, y estoy en la parte de eventos.
El problema con esto es lo siguiente.
Yo tengo estas clases.
Clase Main:
Código Java:
Ver originalpackage OOP;
import java.awt.*;
import javax.swing.JFrame;
public class Main{
public static void main
(String[] args
){
// Frame Position and Icon //
int w = 600;
int h = 350;
int x
= (Toolkit.
getDefaultToolkit().
getScreenSize().
width/2)-(w
/2); int y
= (Toolkit.
getDefaultToolkit().
getScreenSize().
height/2)-(h
/2); Image icon
= Toolkit.
getDefaultToolkit().
getImage("src/favicon.png"); // Init our Frame //
Frame MyFrame
= new Frame(x, y, w, h,
"My First Java Windows", icon,
JFrame.
EXIT_ON_CLOSE); // Extra Opts //
MyFrame.setResizable(false);
// Add new Prints //
Prints FirstPrint = new Prints();
MyFrame.add(FirstPrint);
// Show Frame //
MyFrame.setVisible(true);
}
}
Clase para crear el frame:
Código Java:
Ver originalpackage OOP;
import java.awt.*;
import javax.swing.*;
private int x;
private int y;
private int width;
private int height;
this.x = x;
this.y = y;
this.width = w;
this.height = h;
this.setTitle(title);
this.setIconImage(icon);
this.setBounds(this.x, this.y, this.width, this.height);
this.setDefaultCloseOperation(o);
}
}
Clase para crear laminas:
Código Java:
Ver originalpackage OOP;
import java.awt.*;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;
public class Prints
extends JPanel{
super.paintComponent(G);
try {
BG
= ImageIO.
read(new File("src/bg.png")); G2.drawImage(BG, 0, 0, null);
System.
out.
println("No se pudo mostrar la imagen bg.png"); }
G2.
setColor(new Color(255,
255,
255)); G2.setFont(Title);
G2.drawString("New Title", 80, 45);
G2.
drawImage(Toolkit.
getDefaultToolkit().
getImage("src/favicon.png"),
20,
15,
null); G2.
setColor(new Color(180,
180,
180)); G2.drawLine(565, 80, 20, 80);
}
}
Bien, se supone que la "Lamina" sera donde uno añadira los componentes y tal como se ve en la clase
Main luego se añade con el metodo
add
Y el problema viene aqui, cuando me doy cuenta de que para crear una lamina me veo obligado a crear una clase aparte... porque si creo un nuevo
objeto de tipo
Prints se me crea todo lo que esta dentro del metodo
paintComponent
entonces la pregunta es: ¿como puedo usar una clase para crear laminas vacias?
para que vean lo que mas o menos buscaria:
Código Java:
Ver originalPrints FirstPrint = new Prints();
FirstPrint.drawString("Primer lamina", 20, 20);
Prints SecondPrint = new Prints();
SecondPrint.drawString("Segunda lamina", 20, 40);
MyFrame.add(FirstPrint);
MyFrame.add(SecondPrint);
De esa manera yo no me veo forzado a crear una clase para añadir toda una parte de textos y demas y luego otra clase para añadir toda otra parte de botones
Espero que puedan ayudarme, porque no veo el sentido de andar creando clases por cada lamina que necesite.
saludos!