0

アプレット ゲームを作成しましたが、コンテンツの一部を変更するときに、ウィンドウのサイズを変更 (最大化または最小化) して、変更したアプレットを表示する必要があります。

ラベルなどを追加しても、ペイント方法を使用していないため、サイズ変更が必要です(再ペイントは使用しません)。

サイズを変更せずに変更されたコンテンツを表示する方法を教えてください...

同じ問題があるサンプルコードを次に示します。

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JApplet;

public class Appl extends JApplet implements ActionListener{

    Button b = new Button();
    public void init()
    {
        setLayout(new FlowLayout());
        setSize(300,300);
        setVisible(true);
        add(b);
        b.addActionListener(this);
    }



    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==b)
        {
            add(new Label("Button clicked"));
            repaint();
        }
    }
}
4

1 に答える 1

1

私の記憶が正しければ、コンテンツの変更後に repaint メソッドを呼び出すだけで、表示されるはずです。

アプレットのサイズを変更すると、常に Repaint が暗黙的に呼び出されます。

編集: 与えられた例では、Japplet コンテナーに検証メソッドを適用するとうまくいきます。これにより、追加されたコンポーネントも再描画されます。再描画はペイント メソッドを呼び出すだけです。それを試してみてください :-)

于 2012-09-13T08:15:15.323 に答える