1

5 つのボタンを持つアプリケーションがあります。

i) 正方形 ii) 長方形 iii) 円 iv) 三角形 v) 透明

最初の 4 つのボタンのいずれかをクリックすると、描画キャンバス (JPanel) に図形が描画されます。

描画された形状はShapesと呼ばれる ArrayList に保存されます。ここで、ユーザーが任意の図形をクリックして画面上にドラッグできるようにします。

これは、私のプロジェクトがクラスに関してどのように編成されているかです。

i) 正方形 ii) 長方形 iii) 円 iv) 三角形 v) 描画キャンバス (形状が描画される JPanel 用) vi) アプリケーション (ユーザー インターフェース用)

これは私がこれまでに行ったことです:

最初のメソッドは、マウス カーソルが描画された形状内にあるかどうかを確認します。2 番目のメソッドは正方形を描画します。

上記のマウス イベント ハンドラーは、キャンバス上で形状をドラッグすることになっています。ただし、シェイプはドラッグされていません。どうすればこの問題を解決できますか?

ノート

形状は、4 つのボタンのいずれかをクリックすると描画されるので、arraylist に正しく追加されます。うまくいかないのはドラッグです。

4

1 に答える 1

0

このようなタスクのために数年前に書いた私のカスタマイザー フレームワークを見ることができます: マウスでコンポーネントを移動およびサイズ変更し、さらにカスタマイズできるようにします。「スナップ・トゥ・グリッド」機能搭載!

JXIconCustomizerShapeIconを使用した形状の移動もサポートしています。

多分あなたはそれが便利だと思うでしょう。(オープンソースです!)

チュートリアルを書き始めました (まだ作成中です!):

http://softsmithy.sourceforge.net/lib/docs/tutorial/swing/customizer/index.html

コンポーネントの追加については、次を参照してください。

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/CustomizerBar.html

プロパティをカスタマイズするには、次を使用します。

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JCustomizerPropertyTable.html

JCustomizerPane の SelectionManager に登録し、JCustomizer オブジェクトの CustomizableProperties-property を設定します。

JCustomizer のサブクラスも見てください。

例えばある

画像と形状のカスタマイザー:

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JXIconCustomizer.html

インライン編集を備えたラベル カスタマイザー:

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JLabelCustomizer.html

行カスタマイザー:

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JLine2DCustomizer.html

また、メニューおよびツールバーのアクションをサポートするクラスが多数あります。(一部の「Java ルック アンド フィール グラフィックス リポジトリ」アクションのサポートを含む。)

*.swing および *.swing.action パッケージを見てください。

見つからない場合は私に聞いてください。

ホームページ:

http://www.softsmithy.org

ダウンロード:

http://sourceforge.net/projects/softsmithy/files/softsmithy/

メイヴン:

<dependency>  
    <groupid>org.softsmithy.lib</groupid>  
    <artifactid>softsmithy-lib-core</artifactid>  
    <version>0.2</version>  
</dependency> 

API:

http://softsmithy.sourceforge.net/lib/docs/api/index.html

于 2012-11-20T16:20:37.770 に答える