0

私は次のJPanelを持っています:

import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.JPanel;

public class Watcher extends JPanel {
    private static final long serialVersionUID = 1L;
    final CardLoader canvas;
    private AvatarLoader avatarPic; 
    private String username;

    public Watcher(String username){    
        this.username = username;
        avatarPic = new AvatarLoader(username);

        canvas = new CardLoader();
        canvas.setSize(new Dimension(200, 135));

        this.setLayout(new BorderLayout());
        this.add(avatarPic, BorderLayout.CENTER);
        this.add(canvas, BorderLayout.SOUTH);

        canvas.setVisible(true);
    }

    public void load(){
        canvas.connect();
        canvas.setGamerCardURL(this.username);
    }
}

Canvas は SWT-Browser ですが、JFrame のサイズを変更した後にのみ表示されます。

revalivate()/validate() および repaint() を使用して、あらゆる組み合わせを試しました。

直接表示されるはずです。誰かが私を助けてくれることを願っています。

4

1 に答える 1

0

JFrame が表示された後にサイズを変更しています。そのため、「サイズ変更」され、キャンバスが表示されます;)

于 2012-12-26T14:05:15.853 に答える