awtを使用して作成されたJavaアプレットがあります。
パネルオブジェクトにテキストを描画すると、すべてうまくいきます。ただし、ウィンドウのサイズを変更すると、すべてのテキストが消えます。
この動作は、jvmやプラットフォームによって異なります。
Microsoft JVMとの互換性を維持する必要があるため、swingに移動することはできません。
update(Graphics g)
そこでテキストを上書きしてレンダリングする必要があります。このメソッドは、ウィンドウを再描画する必要があるときに呼び出されます。
コードを見ずに推測する必要がありますが、paint()
メソッドでテキストの描画が行われていない可能性はありますか?AWTペインティングの仕組みの詳細については、これをお読みください。
ComponentListenerをアタッチしてみてください。ComponentListenerは、componentResized()内からpaint()を呼び出します。
何かのようなもの:
class MyPanel extents Panel implements ComponentListner {
public MyPanel() {
addComponentListener(this);
}
public void componentResized(ComponentEvent e) {
paint(getGraphics());
}
}
更新: paint()を直接呼び出すのではなく、おそらく'repaint()'を呼び出す必要があります。