• Lunes 23 de Diciembre de 2024, 03:58

Autor Tema:  ¿ Porque No Funciona Este Codigo ?  (Leído 1048 veces)

franc

  • Miembro MUY activo
  • ***
  • Mensajes: 157
    • Ver Perfil
¿ Porque No Funciona Este Codigo ?
« en: Viernes 20 de Mayo de 2005, 13:48 »
0
Tengo problemas con este codigo, nose porque no sale la rejilla.

Si llamo al metodo pintaRejilla desde el Frame, me da nullPointerException... si lo llamo desde dentro del Panel no me dibuja nada.

Lo que quiero es coger Graphics desde otra funcion que no sea PainComponent.

Código: Text
  1.  
  2. import javax.swing.*;
  3. import java.awt.*;
  4.  
  5. public class NodosFrame extends JFrame {
  6.   NodosPanel nodosPanel = new NodosPanel();
  7.   public NodosFrame(){
  8.     Container cp = getContentPane();
  9.     cp.setLayout(new BorderLayout());
  10.     cp.add(nodosPanel, BorderLayout.CENTER);
  11.     nodosPanel.pintaRejilla();
  12.   }
  13. }
  14.  
  15. class NodosPanel extends JPanel{
  16.   final int ANCHO=600;
  17.   final int ALTO=600;
  18.  
  19.   public NodosPanel(){
  20.     setPreferredSize(new Dimension(600,ALTO));
  21.   }
  22.   public void paintComponent(Graphics g){
  23.     super.paintComponent(g);
  24.     setBackground(Color.BLACK);
  25.     //pintaRejilla();
  26.   }
  27.   public void pintaRejilla(){
  28.     Graphics g = getGraphics();
  29.     g.setColor(Color.WHITE);
  30.    
  31.     for (int i=0;i<ANCHO;i+=20){
  32.       g.drawLine(i, 0, i+1, ALTO);
  33.       g.drawLine(0, i, ANCHO, i);
  34.     }
  35.   }  
  36. }
  37.  
  38.  


Help me :(

fuhrer

  • Miembro MUY activo
  • ***
  • Mensajes: 329
  • Nacionalidad: mx
    • Ver Perfil
    • http://admin.busquenoseninternet.com
Re: ¿ Porque No Funciona Este Codigo ?
« Respuesta #1 en: Viernes 20 de Mayo de 2005, 22:09 »
0
Hola que tal.

Lo único que debes hacer para que funcione es:

Código: Text
  1.  
  2. public void paintComponent(Graphics g){
  3.     super.paintComponent(g);
  4.     setBackground(Color.BLACK);
  5.     pintaRejilla(g);
  6.     }
  7. public void pintaRejilla(Graphics g){
  8.     g.setColor(Color.WHITE);    
  9.     for (int i=0;i<ANCHO;i+=20){
  10.       g.drawLine(i, 0, i+1, ALTO);
  11.       g.drawLine(0, i, ANCHO, i);
  12.       }
  13.     }  
  14.  
  15.  

Hasta luego.