I'm having a problem with my applet: it doesn't refresh when I need it to.
I'm trying to switch from one interface screen to the other when I click on the button.
I have a
public class PixelRainEditorApp extends JApplet
and in the init
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
createGUI();
}
});
private void createGUI() {
a = new A(this);
this.setSize(800, 480);
}
Then I have 2 classes A and B that extend JPanel
public A(JApplet parent) {
super(parent);
setOpaque(true);
setBackground(Color.BLACK);
this.parent.setContentPane(this);
}
when I click on a button in view A
@Override
public void actionPerformed(ActionEvent e) {
if(TAG.equalsIgnoreCase(e.getActionCommand())){
new B(this.baseParent);
}
}
and B is the same as A but with different images
public B(JApplet parent) {
super(parent);
setOpaque(true);
setBackground(Color.BLACK);
this.parent.setContentPane(this)开发者_开发技巧;
}
Now this works fine when I want to display A, but when I want to launch B when I click on a button in A, nothing happens. Its only when I resize the window that B appears... I tried to invalidate or repaint and various places in my applications but nothing happens
Any ideas ?
Jason
Just add this.parent.revalidate(); this.parent.repaint(); in th end of your calls.
精彩评论