2

私は次のことを行うJavaプログラムを開発しようとしています。

  • クライアントのネットワーク図の背景画像を使用します
  • 帯域幅グラフの画像をそれぞれのクライアントに配置します
  • 帯域幅のスナップショットを常に生成する別のプログラムから取得したグラフの画像を5秒ごとに更新します

これで背景画像を設定できるようになり、タイマーを使って画像を更新できると確信しています。私が計画しようとしているのは、背景画像に表示されているそれぞれのクライアントにこれらの画像をどのように配置するかです。私はいくつかの調査を行いましたが、いくつかの選択肢があるようですが、問題が発生する前に、正しい選択肢を選択していることを確認したいと思います。

GridBagLayoutを使用することが私にとっての選択であるように思われますが、より経験豊富な人々のためにセカンドオピニオンを希望します。GridBagLayoutを使用することが正しい選択である場合、このレイアウトマネージャーを理解するのに役立つ優れたチュートリアルをお勧めしますか?私はJava、特にGUI指向のJavaの経験が限られていることを覚えておいてください。

編集:私が概念を十分に説明していない場合は、私に知らせてください。

4

3 に答える 3

2

これをチェックしてください - http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

GridLayout はあなたのニーズを満たす可能性が高く、使いやすいです - 私が作る仮定は、帯域幅グラフのイメージが同じ/固定されているということです ...

ここで例を探して ください http://www.roseindia.net/tutorialsearch/?t=java+gridlayout+color

「GridLayout」というキーワードでググってみると結構ヒットしますね…

于 2012-08-03T00:33:21.573 に答える
1

高度なレイアウトを行う場合は、MigLayoutを確認する必要があります。

これは非常に柔軟なレイアウトマネージャーであり、既存のSwingレイアウトマネージャーのいずれか/すべての代わりとして機能します。難しい/複雑なレイアウトをしたい場合は、使用する価値があります。

これは、HTMLテーブルレイアウトツールのように感じられ、複数列のスパンなどと任意のスケーリングルールを有効にします。

クイックスタートガイド」は多くの例で非常に優れています。プロジェクトのMigLayoutを評価する場合は、それを確認することをお勧めします。

于 2012-08-03T01:45:32.303 に答える
1

「帯域幅グラフ」画像がBG画像の上にある場合は、OverlayLayoutを参照してください

コンポーネントを互いに重ねて配置するためのレイアウトマネージャー。..

OTOH代わりに、このためのレイアウト戦略は使用しません。

  1. BufferedImageBGのサイズを作成します。
  2. BGを画像にペイントします。
  3. ラベルに画像を表示します。
  4. グラフをペイントするときが来たらGraphics、ラベル内の画像のインスタンスを取得し、それにペイントします。グラフが常に同じサイズと形状であり、透明度がない場合は、単純にグラフをペイントできます。それ以外の場合は、最初にBGを描画します。
于 2012-08-03T02:12:26.597 に答える