Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/09/2012, 22:29
Avatar de cgasparico
cgasparico
 
Fecha de Ingreso: septiembre-2012
Ubicación: Escuintla, Guatemala
Mensajes: 19
Antigüedad: 12 años, 4 meses
Puntos: 0
Pregunta revision de codigo

Hola...
Estoy creando el tablero del juego Serpiente y Escaleras, pero me quede trabada. Ya cree el dado, pero al momento de compilar y que me aparezca la ventana del juego, NO aparece el dado. No se en donde estoy fallando, ya repase el codigo infinidad de veces y no le veo el problema. Espero puedan ayudarme...
Aca el codigo:
Ese es el main

Código PHP:
import javax.swing.JFrame;

 
public class 
Proyecto1 {
    
    public static 
void main(String[] args) {
        
        new 
Window();
        
Dado content = new Dado();
}

Y este es el de la clase Window

Código PHP:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class 
Window extends JFrame {
    
JButton JButtonImportar;
    
JButton JButtonPlayJButtonPause// boton de play
    
        
    
JMenuBar barra// barra de menu principal
    
JMenu archivo
    
JMenuItem iniciosalir;
    
    public 
Window(){
         
JButtonImportar = new JButton("Archivos");
         
JButtonPlay = new JButton("Play");
         
JButtonPause = new JButton("Pausa");
         
         
JButtonPlay.setSize(150,50);
         
JButtonImportar.setSize(150,50);
                  
         
JButtonPlay.setLocation(800,100);
         
JButtonImportar.setLocation(800,20);
         
this.add(JButtonPlay);
         
this.add(JButtonImportar);
         
         
this.setLayout(null);
         
         
barra = new JMenuBar();
         
archivo = new JMenu("Archivo");
         
inicio = new JMenuItem("Iniciar");
         
salir = new JMenuItem("Salir");
     
         
setJMenuBar(barra);
         
barra.add(archivo);
         
archivo.add(inicio);
         
archivo.add(salir);
         
         
this.setJMenuBar(barra);
         
this.getContentPane().setBackground(Color.BLACK);
         
         
this.setSize(1000,700);
         
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         
this.setLocationRelativeTo(null);
         
this.setVisible(true);
         
         
salir.addActionListener(new ActionListener(){
             public 
void actionPerformed(ActionEvent e){
                 if(
JOptionPane.showConfirmDialog(null,"¿Está seguro que desea salir del programa?","Salir",JOptionPane.YES_NO_CANCEL_OPTION)==JOptionPane.YES_OPTION){
                     
System.exit(0);
                 }
             }
         });
         
/*inicio.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                if(dado.isRunning()){
                    dado.stop();
                    JButtonPause.setText("Iniciar");
                    inicio.setText("Iniciar");
                }else{
                    dado.start();
                    JButtonPause.setText("Pausa");
                    inicio.setText("Pausa");
                }
            }
        });
                           
         JButtonPause.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                if(dado.isRunning()){
                    dado.stop();
                    JButtonPause.setText("Iniciar");
                    inicio.setText("Iniciar");
                }else{
                    dado.start();
                    JButtonPause.setText("Pausa");
                    inicio.setText("Pausa");
                }
            }
        });*/

//Clase Dado
class Dado extends JPanel{
    private 
int dado1 1//El valor inicial del dado.
    
    
private Timer timer;
    
    public 
Dado(){
        
        
setLayout(new BorderLayout(2,2));
        
setBackground(Color.BLUE);
        
setBorder(BorderFactory.createLineBorder(Color.BLUE,2));
        
        
JPanel dicePanel = new JPanel(){
            public 
void paintComponent(Graphics g){
                
super.paintComponent(g);
                
drawDado(gdado1100100);
            }
        };
        
dicePanel.setPreferredSize(new Dimension(300,300));
        
dicePanel.setBackground(new Color(200,200,255));
        
add(dicePanelBorderLayout.CENTER);
        
        
JButton lanzar = new JButton("Lanzar");
        
lanzar.addActionListener(new ActionListener(){
            public 
void actionPerformed(ActionEvent evt){
                
roll();
            }
        });
        
add(lanzarBorderLayout.SOUTH);
    }
    
//Dibujar el dado en la posicion especificada
        
void drawDado(Graphics gint valint xint y){
            
g.setColor(Color.white);
            
g.fillRect(xy3535);
            
g.setColor(Color.black);
            
g.drawRect(xy3434);
            
            if (
val 1//punto superior izquierdo
                
g.fillOval(x+3y+31010);
            
            if (
val 3//punto superior derecho
                
g.fillOval(x+23y+231010);
            
            if (
val == 6//punto medio izquierdo
                
g.fillOval(x+3y+131010);
            
            if (
val == 1//punto medio (numeros impares)
                
g.fillOval(x+23y+131010);
            
            if (
val 3//punto inferior izquierdo
                
g.fillOval(x+3y+231010);
            
            if (
val 1//punto inferior derecho
                
g.fillOval(x+23y+231010);
        }
        private 
void roll(){
            if (
timer != null)
                return;
            
timer = new Timer(100, new ActionListener(){
                
int frames 1;
                
                public 
void actionPerformed(ActionEvent evt){
                    
dado1 = (int)(Math.random()*6) + 1;
                    
repaint();
                    
frames++;
                    
                    if (
frames == 10){
                        
timer.stop();
                        
timer null;
                    }
                }
            });
            
timer.start();
        }
    } 
//Fin Clase Dado

     
//Fin Clase Window