HOla a todos:
Resulta que quiero usar Canvas en swing y no me aparece. He hecho dos panels Panel1 y Panel2. He puesto el canvas en el panel2 pero no sale para probar que funciona he metido un boton y si sale. Os dejo el código.
POr cierto, muchas gracias por tu tiempo.
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import javax.swing.*;
public class Principal extends JPanel{
JPanel Panel_1;
JPanel Panel_2;
JLabel Coord_x;
JLabel Coord_y;
JTextField Coord_xt;
JTextField Coord_yt;
JButton Boton1;
JButton Boton2;
MiCanvas Objeto;
public Principal(){
Coord_x=new JLabel ("Coordenada X");
Coord_y=new JLabel ("Coordenada Y");
Coord_xt=new JTextField();
Coord_yt=new JTextField();
Panel_1=new JPanel();
Panel_2=new JPanel();
Boton1=new JButton("Press me");
Boton2=new JButton("Press you");
Objeto = new MiCanvas();
//Boton1.addActionLister(new MiBotonAccionado());
Panel_1.setLayout(new GridLayout(3,2));
Panel_1.add(Coord_x);
Panel_1.add(Coord_xt);
Panel_1.add(Coord_y);
Panel_1.add(Coord_yt);
Panel_1.add(Boton1);
Panel_2.setLayout(new FlowLayout());
Panel_2.add(Boton2);
Panel_2.add(Objeto);
setLayout(new BorderLayout());
add(Panel_1,"North");
add(Panel_2,"South");
}
public static void main (String args[]){
Frame miFrame=new Frame("Mi royo macabeo");
miFrame.setLayout (new FlowLayout());
miFrame.add( new Principal(),BorderLayout.CENTER );
//miFrame.pack();
miFrame.setSize( 400,150 );
miFrame.setVisible( true );
miFrame.addWindowListener( new Conclusion() );
}
}
class Conclusion extends WindowAdapter {
public void windowClosing( WindowEvent evt ) {
System.exit(0);
}
}
class MiCanvas extends Canvas {
int posicionX;
int posicionY;
String Mensaje;
public MiCanvas() {
//this.setBackground( Color.green );
this.Mensaje = new String("");
}
// Se sobrescribe el método paint()
public void paint( Graphics g ) {
g.drawString( Mensaje, posicionX,posicionY );
}
}