java - swing, build and make GUI, empty screen -
i have swing program. first create frame , frame insert jpanel, contains graphical components. somehow, i'm not able draw bottom panel. have empty window.
@override public void run() { frame.setdefaultcloseoperation(jframe.exit_on_close); frame.add(new buildgui()); frame.pack(); frame.getcontentpane(); frame.setlocationrelativeto(null); frame.setvisible(true); frame.getcontentpane().validate(); frame.getcontentpane().repaint(); } . . . public class buildgui extends jpanel { public void buildgui() { bottompanel = new jpanel(); bottompanel.setlayout(new gridbaglayout()); // build gui here, add components bottompanel frame.add(bottompanel); } @override public dimension getpreferredsize() { // works return new dimension(800, 800); } @override protected void paintcomponent(graphics g) { // here want draw app gui super.paintcomponent(g); } }
thanks
i have feeling you're messing classes methods. lot of useless code seems have sneaked code.
the first point comes fact don't start class name capital. better class name be: buildgui
, little bit dubious panel. next you're calling constructor of method frame.add(new buildgui())
, won't call void buildgui()
method.
the second point comes frame.getcontentpane()
returns content pane of frame. because content pane isn't being stored, code nothing , can omitted.
my solution (staying close possible yours), follows:
@override public void run() { mypanel panel = new mypanel(); panel.buildgui(); frame.add(panel); frame.pack(); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.setvisible(true); } ... public class mypanel extends jpanel { public void buildgui() { bottompanel = new jpanel(); bottompanel.setlayout(new gridbaglayout()); // build gui here, add components bottompanel this.add(bottompanel); } }
Comments
Post a Comment