Foro de elhacker.net

Programación => Java => Mensaje iniciado por: IronJony en 8 Diciembre 2014, 13:10 pm



Título: ¿Canvas o JPanel?
Publicado por: IronJony en 8 Diciembre 2014, 13:10 pm
Qué creéis que es mejor para programar juegos, JPanel o Canvas?
 :huh: :huh: :huh: :huh: :huh:


Título: Re: ¿Canvas o JPanel?
Publicado por: robertofd1995 en 8 Diciembre 2014, 14:06 pm
¿que tipo de juegos ? Si lo vas a hacer en java , tendra que ser bastante simple


Título: Re: ¿Canvas o JPanel?
Publicado por: MNicolas en 18 Diciembre 2014, 18:24 pm
 

Yo para lo que he realizado he usado un Panel que herede de JPanel y le coloco los paramentros que yo quiero.


Título: Re: ¿Canvas o JPanel?
Publicado por: 3n31ch en 21 Enero 2015, 03:39 am
Los dos te funcionan. Tienen distintos métodos para pintar, en este momento no recuerdo Canvas, pero JPanel es paintComponent(Graphics g) (no confundir con paintComponents)

Otros dos temas a tener en cuenta son los siguientes:

1) Canvas es de awt y por lo tanto se encuentras mas apegado a la clase Object, por lo que tiene menos funcionalidades, lo cual representa una menor carga para el programa (tampoco te preocupes, no es que haga mucho cambio)

2) JPanel tiene la tecnología de doble buffer, fácilmente lo puedes programar en Canvas, pero eso que te ahorras.

<A todo esto, según recuerdo si quieres puedes hasta pintar en un Component>

Nunca he hecho un juego grande, ni nada muy complejo, pero últimamente y casi siempre he utilizado JPanel y no he tenido problema alguno.


Título: Re: ¿Canvas o JPanel?
Publicado por: Usuario Invitado en 21 Enero 2015, 15:31 pm
Complementando la respuesta de @Nac-ho, usar Swing con AWT da unos resultados malos y extraños.

Por ejemplo, imagina éste código:

Código
  1. import java.awt.*;
  2. import javax.swing.*;
  3. class MixSwingAwt {
  4.  
  5.    public static void main(String[] args) {
  6.        JPanel p = new JPanel(new BorderLayout(10,10));
  7.  
  8.        String[] fruit = {"Apples", "Oranges", "Pears"};
  9.        JComboBox fruitChoice = new JComboBox(fruit);
  10.        p.add(fruitChoice, BorderLayout.NORTH);
  11.  
  12.        p.add(new TextArea(10,20));
  13.  
  14.        JOptionPane.showMessageDialog(null, p);
  15.    }
  16. }

Si lo ejecutas a primera vista se ve normal, pero si despliegas el JComboBox, te toparás con un extraño suceso:

(http://i.stack.imgur.com/4obqn.png)

Fuente: http://stackoverflow.com/questions/5737609/java-canvas-or-jpanel