1

-こんにちは、みんな!私は波の干渉をシミュレートする Java アプレットを作成していますが、これはほぼ完成しています (ライセンスは GPL に基づきます)。ただし、AWT ペイント サイクルに関して 2 つの質問があり、答えを見つけるのに苦労しています。

  1. ボタンを押したときに表示される「about」オーバーレイを作りたいです。これを行う方法は、アプレット ウィンドウ全体に静的なメッセージと凡例オブジェクトを描画することです。問題は、remove() を使用せずに AWT コンポーネントがフォアグラウンドで描画されないようにすることです。AWT 自体の描画を一時的に停止する方法はありますか?

  2. 定在波モードでは、定在波が最大振幅に達するたびにノードとアンチノードのマーカーを計算してセカンダリ グラフィックスに描画し (すべて自分で行うことができます)、プライマリ グラフィックスに描画します (したがって、表示されます) ペイント サイクルごと。誰かがその手順を説明できますか? 2 番目のグラフィックス オブジェクトを作成し、一度描画してから、サイクルごとにプライマリ グラフィックスに描画する必要があると思います。

私の質問のいずれかに答えることができれば、私はとても感謝しています!

乾杯、ジャック・アリソン

4

1 に答える 1

0

最初の質問への回答:

paint()/paintComponent()メソッドをコードに含めた場合、これを無効にすることはできません。そこにある場合は、実行されます。ただし、フラグが true の場合にのみ描画されるようにフラグを作成できます。私が何を意味するかをお見せしましょう:

boolean flag;

...

public void paintComponent(Graphics comp) {
    if (flag) {
        Graphics2D comp2D = (Graphics2D) comp;
        //drawing statements
    }
}

public void actionPerformed(ActionEvent event) {
    flag = true;
    repaint();
}
于 2012-07-08T14:27:45.903 に答える