2012-01-27 3 views
3

最近C#を使用して何年もの間スイングを開始しました。スイングではControl.ResumeLayout/SuspendLayoutに対応するメソッドがありますか?C#に対応するスイングメソッドControl.SuspendLayout/ResumeLayout

私の会社で使用している古いUIを修正しようとしているため、すべての論理作業のみを完了した後にコンポーネント(具体的にはJTable)で操作する間にすべての描画を中断したい次に、コントロール(またはこの場合はJComponents)が自分自身を描画してもらいたいのですか?

コンポーネントはJFrameに含まれています。残念ながら、この段階でコードをリファクタリングすることは実際には選択肢ではないので、どんな助けも非常に非常に非常に歓迎されるでしょう。

おかげ

+0

SuspendLayoutとResumeLayoutは、.NETで描画を中断して再開しません。 –

+0

SuspendLayoutは、ResumeLayoutが呼び出されるまでレイアウトロジックを中断します。したがって、描画が通常、たとえば有効にされているためfalseに設定されている場合は発生しません。だから基本的には描画を中断しますが、ジャガイモと言うとジャガイモといいます。 – jonatzin

+0

いいえ。単に描画を中断しません。レイアウトのイベントを一時停止する*ため、描画が*頻繁に発生することはありませんが、描画を中断することは絶対にありません。 –

答えて

4

あなたは、これが再描画をブロックします(それはあなたのGUIをロックするように長い操作のために良いアイデアではありません)eventdispatchスレッド上で動作しない場合。私はあなたがなぜこれを望んでいるのか理解していません。新しいJTableが作成されている間に古いJTableを上に置くことができるときです。 JTableを作成したら、それを再描画の原因となるイベントディスパッチスレッドに追加します。

+0

さて、私は既存のJTableで作業する必要がありますし、リファクタリングは現時点ではオプションではないと言いました。しかし、私はこれを行う方法を見つけました。私は別のスレッドで作業を行い、SwingUtilitiesを呼び出します。 InvokeLater – jonatzin

関連する問題