Java,Swing - cannot draw lines on a JFrame -
i'm trying draw vertical lines separate days in week on jframe. code seems fine no error when run it, output frame picture below. missing anything?
public class weektoview extends jframe{ public weektoview(){ settitle("sheffield dental care"); //set title toolkit toolkit = toolkit.getdefaulttoolkit(); dimension screendimensions = toolkit.getscreensize(); setlocation(new point(screendimensions.width*1/4, screendimensions.height*1/4)); //set location based on screen size jpanel container = new jpanel(); jscrollpane scrpane = new jscrollpane(container); getcontentpane().add(scrpane); double size[][] = {{150, 150, 150, 150, 150}, // columns {100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100}}; // rows container.setlayout(new tablelayout(size)); string daysinweek[] = {"monday", "tuesday", "wednesday", "thursday", "friday"}; jlabel daysinweeklabels[] = new jlabel[daysinweek.length]; (int = 0; < daysinweek.length; i++) { daysinweeklabels[i] = new jlabel(daysinweek[i],swingconstants.center); } container.add(daysinweeklabels[0], "0,0"); container.add(daysinweeklabels[1], "1,0"); container.add(daysinweeklabels[2], "2,0"); container.add(daysinweeklabels[3], "3,0"); container.add(daysinweeklabels[4], "4,0"); setsize(780,600); //set size based on screen size setdefaultcloseoperation(jframe.exit_on_close); setresizable(false); //unresizable setvisible(true); } public void paintcomponent(graphics g) { super.paint(g); graphics2d g2 = (graphics2d) g; g2.setrenderinghint(renderinghints.key_antialiasing, renderinghints.value_antialias_on); g2.drawline(getwidth()/5,0,getwidth()/5,getheight()); g2.drawline(getwidth()*2/5,0,getwidth()*2/5,getheight()); g2.drawline(getwidth()*3/5,0,getwidth()*3/5,getheight()); g2.drawline(getwidth()*4/5,0,getwidth()*5/5,getheight()); } }
there no paintcomponent()
method in jframe. whenever attempt override method should use @override
before method name. compile error if don't override method correctly.
you override paint()
in general don't try custom painting in paint()
method of jframe
.
instead custom painting done overriding paintcomponent()
method of panel add frame.
better yet can use jtable
, provides row/column based component.
Comments
Post a Comment