eclipse - This code is not drawing the die that its supposed too..any tips? (Java, see both classes) -


this code supposed create die based on the input gathered user, on how many dots on face of die, , dies location.

this main class import javax.swing.jframe;

import java.awt.color; import java.util.scanner;  public class rollthedie {     public static void main(string[] args)     {         final int window_height = 350;         final int window_width = 300;          system.out.println("hi! let's play dice!\n");          scanner kb = new scanner( system.in );          system.out.print("enter number on face of die:");         int num = kb.nextint();          system.out.print("enter location of die:");         int x = kb.nextint();         int y = kb.nextint();          system.out.println("i hope had fun! bye!");          jframe diewindow = new jframe();         diewindow.setbackground(color.gray);         diewindow.setsize(window_height, window_width);         diewindow.setdefaultcloseoperation(jframe.exit_on_close);         diewindow.settitle("roll die");          die newdie = new die(num,x,y);         diewindow.add(newdie);         diewindow.setvisible(true);       } } 

this die class import java.awt.color; import java.awt.graphics; import javax.swing.jpanel;

public class die extends jpanel {     /**      *       */     private static final long serialversionuid = 1l;     int xcoordinate;     int ycoordinate;     int num;       graphics pen, pane;      private static final int die_length = 60;        //set's size     private static final int die_width = 60;        //of die     private static final int die_height = 60;     private static final int dot_length = 10;     private static final int dot_width = 10;     private static final color line_color = color.black;     private static final color die_color = color.white;     private static final color dot_color = color.black;     private static final int die_vert = 10;     private static final int die_hori = 10;       public die(int dienum, int x, int y)     {         xcoordinate = x;         ycoordinate = y;          num = dienum;     }      public void paintdie(graphics pen)     {          //creates square         pen.drawrect(getx(), gety(), die_width, die_height);         pen.setcolor(line_color);         pen.fillrect(xcoordinate, ycoordinate, die_length, die_width);         if (num <= 0)             drawblank();         else if (num == 1)             drawone();         else if (num == 2)             drawtwo();         else if (num == 3)             drawthree();         else if (num == 4)             drawfour();         else if (num == 5)             drawfive();         else if (num == 6)             drawsix();        }      private void drawblank ()     {         pane.setcolor(die_color);         pane.fillrect(xcoordinate, ycoordinate, die_length, die_width);      }      private void drawdot (int x, int y)     {         pane.setcolor(dot_color);         pane.filloval(x, y, dot_length, dot_width);      }     private void drawone ()     {          drawblank();         drawdot(xcoordinate, ycoordinate);      }     private void drawtwo ()     {         drawblank();         pane.filloval((xcoordinate - die_hori), (ycoordinate + die_vert), dot_length, dot_width);         pane.filloval((xcoordinate + die_hori), (ycoordinate - die_vert), dot_length, dot_width);      }     private void drawthree ()     {         drawblank();         drawone();         drawtwo();      }      private void drawfour ()     {         drawblank();         drawdot((xcoordinate - die_hori),(ycoordinate + die_vert));         drawdot((xcoordinate + die_hori),(ycoordinate + die_vert));         drawdot((xcoordinate - die_hori),(ycoordinate - die_vert));         drawdot((xcoordinate + die_hori),(ycoordinate - die_vert));      }      private void drawfive ()     {         drawblank();         drawfour();         drawone();       }      private void drawsix()     {         drawblank();         drawfour();         drawdot((xcoordinate - die_hori), ycoordinate);         drawdot((xcoordinate + die_hori) , ycoordinate);      }  } 

your class has paintdie(graphics g) method contains code drawing things, never called, makes sense nothing seen. in addition, jpanel class not have paintcomponent(graphics g) method override drawing should done. without this, nothing drawn.

try changing paintdie paintcomponent:

@override protected void paintcomponent(graphics pen) {    super. paintcomponent(pen);    // ... etc } 

don't forget add @override annotation know in fact overriding parent method.


Comments

Popular posts from this blog

user interface - How to replace the Python logo in a Tkinter-based Python GUI app? -

objective c - Greedy NSProgressIndicator Allocation -

how to set an OCR language in Google Drive -