java - I can't see my JPanel and its components in the JApplet -



java - I can't see my JPanel and its components in the JApplet -

i want set jpanel in japplet, problem can't see :( i've overridden paintcomponent of jpanel in order have background image, can't see anything. when remove paintcomponenet method had overriden, , set color background of panel, seems jpanel fills japplet , still no component visible :-s i've tried different layouts. set panel in center of panel fills japplet nil changed, , still no component , no background image visible :(

import java.awt.borderlayout; import java.awt.graphics; import javax.swing.imageicon; import javax.swing.japplet; import javax.swing.jlabel; import javax.swing.jpanel; import javax.swing.jscrollpane; import javax.swing.jtextarea; public class main extends japplet implements runnable{ private jtextarea display; private thread outputthread; jpanel boardpanel; private clientviewmanager view; @override public void init() { seek { javax.swing.swingutilities.invokeandwait(new runnable() { public void run() { creategui(); } }); } grab (exception e) { system.err.println("creategui didn't complete"); } } private void creategui() { display = new jtextarea(4, 30); display.seteditable(false); getcontentpane().add(new jscrollpane(display), borderlayout.south); setfocusable(true); setvisible(true); setname("ce tanks"); setsize(600, 600); setlocation(100, 100); boardpanel = new jpanel(); boardpanel.setlayout(null); boardpanel.setbackground(new java.awt.color(128, 255, 255)); getcontentpane().add(boardpanel, borderlayout.center); } public void start() { outputthread = new thread(this); outputthread.start(); } public void run() { view = new clientviewmanager(); boardpanel.add(view); boardpanel.repaint(); repaint(); } } class clientviewmanager extends jpanel { private int rows=8; private int columns=8; public clientviewmanager() { super(null); jlabel lb= new jlabel("lb.jpg"); lb.setlocation(10, 10); lb.setsize(50, 50); lb.setopaque(false); lb.setvisible(true); this.add(lb); } public void paintcomponent(graphics g) { g.drawimage(new imageicon("ground.jpg").getimage(), 0, 0, columns * 50, rows * 50, this); } }

the code above can compiled. cant add together keylistener neither jpanel nor japplet. used java.awt.keyeventdispatcher , in dispatchkeyevent(keyevent e) printed in console but, printed 3 times. :(

i've overridden paintcomponent of jpanel inorder have background image,

but didn't add together custom component applet:

//boardpanel = new jpanel(); boardpanel = new clientviewmanager();

also:

get rid of setvisible(). not required of controls in program. default components except top level container (jframe, jdialog etc) visible. in case of japplet, don't need create visible part of process of displaying applet. get rid of setsize() , setlocation() can't command position of applet way. don't read image file in paintcomponent() method. not efficient method invoked whenever swing determines component needs repainted. jlabels opaque default there not need invoke setopaque method. when doing custom painting should override getpreferredsize() method of component homecoming proper size of custom painting layout managers can utilize information. works in case because added panel center of borderlayout. seek adding panel north see happens.

edit:

now see adding clientviewmanager. i'm not sure why trying thread 1 time 1 time again there several problems.

when add/remove components visble gui basic code is:

panel.add(...); panel.revalidate(); panel.repaint();

however still won't work because using null layout , size of panel 0. utilize proper layout manager , implement getpreferredsize() method suggest above , component displayed properly.

java swing

Comments

Popular posts from this blog

iphone - Dismissing a UIAlertView -

intellij idea - Update external libraries with intelij and java -

javascript - send data from a new window to previous window in php -