¿Canvas o JPanel?

Iniciado por IronJony, 8 Diciembre 2014, 13:10 PM

0 Miembros y 1 Visitante están viendo este tema.

IronJony

Qué creéis que es mejor para programar juegos, JPanel o Canvas?
:huh: :huh: :huh: :huh: :huh:

robertofd1995

¿que tipo de juegos ? Si lo vas a hacer en java , tendra que ser bastante simple

MNicolas

 

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

3n31ch

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.

Usuario Invitado

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 (java) [Seleccionar]

import java.awt.*;
import javax.swing.*;
class MixSwingAwt {

   public static void main(String[] args) {
       JPanel p = new JPanel(new BorderLayout(10,10));

       String[] fruit = {"Apples", "Oranges", "Pears"};
       JComboBox fruitChoice = new JComboBox(fruit);
       p.add(fruitChoice, BorderLayout.NORTH);

       p.add(new TextArea(10,20));

       JOptionPane.showMessageDialog(null, p);
   }
}


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


Fuente: http://stackoverflow.com/questions/5737609/java-canvas-or-jpanel
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein