2

私はSwingとAWTの初心者ですが、Netbeansを使用してGUIを構築したいと考えています。私のGUIには、現在JFrame上のJPanelsとして考えている3つの領域が必要です。マウス入力をリッスンしてJava2Dシェイプを描画する「描画」パネルが必要です。描画パネルは左上に固定されます。他の2つの領域は、「プロパティ」スクロールペインと「コントローラー」スクロールペインです。コントローラペインは、ボタンを介して表示される描画要素を決定し、プロパティスクロールペインには、描画ペインでクリックされた形状オブジェクトの詳細(終点、色など)が表示されます。

作図領域の一般的な使用例は、作図領域の最初のクリックが図形の最初の座標セット、つまり線になるようなものです。そのクリックはpoint2dオブジェクトとしてキャプチャされます。2回目のクリックは2番目のpoint2Dオブジェクトになり、2つの間に線が作成されます。コントローラ領域には、「円」、「線」、「楕円」などのボタンがあります。クリックされたコントローラボタンに応じて、そのタイプの形状のみが描画領域に描画されます。コントローラとプロパティのスクロールペインは移動できません。これらはロックされ、GUIの下部と右側にそれぞれサイズ変更できます。

初心者として、私は使用するのに最適なコンポーネントに苦労しています。私はJDesktopとJInternalFrameを読んでいますが、それは本当に必要ではないようです。3つのJPanelを備えた単純なJFrameで十分ですよね?具体的には、描画フレーム用のJPanelと2つのJScrollPanelを備えたトップレベルのJFrameが必要だと思います。各クリックの座標をキャプチャするために描画ペインにマウスリスナーが必要であり、コントロールペインの各ボタンのリスナーが必要です。JPanelにマウスリスナーを配置してJava2Dシェイプを描画できますか、それとも描画を行うためにJPanel内に別の(より良い?)コンテナが必要ですか?

4

3 に答える 3

5

GraphPanelこのようなアプリケーションを構築するためのアイデアが得られるかもしれません。

グラフパネルのスクリーンショット

于 2012-06-12T18:52:42.017 に答える
4

JInternalFrames には通常、タイトルバー、ゴーアウェイ ボックスなどがあります。ここでは、モデルに適合していないようです。(ユーザーがパネルを好きな場所に移動できるようにしたり、パネルを非表示にしたりできるようにしたい場合を除きますか?) したがって、JPanels を使用したより単純な JFrame をお勧めします。

于 2012-06-12T18:44:53.330 に答える
4

描画領域、コントロール領域、およびプロパティ領域を分離するために、2 つの JSplitPanes を検討してください。JSplitPane を使用すると、分割線をマウスでクリックしてドラッグすることで、領域のサイズを変更できます。

ここに画像の説明を入力

(最上位コンポーネントには JFrame を使用します。)

初心者として、サイズ変更やスクロールが不要な場合は、サイズ変更やスクロールを行わないアプリを作成すると、はるかに簡単になります。

于 2012-06-12T19:00:24.917 に答える