1

申し訳ありませんが、これはおそらく基本的すぎてここにいることはできませんが、これは私が約 1 か月間苦労してきたテーマであり、他にどこに行くべきかわかりません (私が知る限り、「 noobオーバーフロー」、笑)。

次のようなクラスを作成しようとしています。

1.  put an image on a window (a JFrame, JPanel or other container)
2.  be able to support keyboard and mouse listeners
3.  could have multiple instances in the same container

とにかく、Google、YouTube、Javaの公式サイト(URLを忘れてすみません)、そしてもちろんここStack Overflowなど、いつもの場所をすべて試しましたが、私と同じようなものを少しでも見つけることができませんでしたしようとしています。

もちろん、出来ない可能性も考えました。JButton や JLabel のように機能する標準の「JImage」や「JGraphic」は存在しないようです。何らかの理由で、グラフィックには (非常に複雑な) プロセスと手順の完全に異なるリストが必要です。例として、Java アプリで画像を「実際に」描画する方法- 60 行以上のコードと 2 つのクラスが必要でした。なんらかの理由で 1 つのインスタンスしか作成できないため、そのプロジェクトは最終的に機能しませんでした (メイン メソッドで 2 ~ 4 を作成したとしても、最後に追加するように指示したインスタンスのみが表示されます)。

とにかく、私がここで「車輪の再発明」をしようとしているのではなく、実際に (Java で) 可能であると仮定すると、誰かがその方法についてアイデアを持っていますか (または少なくともそれを研究するためのより良いサイトを知っています)。 ? 残念ながら、私が訪れたサイトのほとんどは、画像の内部動作をすべて知っていると想定する傾向があります (ピクセルが何であるかは知っていますが、それだけです。バッファー、ラスターなどはまだ私を超えています)。分かりやすく解説してくれるサイトがあれば絶対にいいですよね、そういうサイトがあれば。前もって感謝します。

4

1 に答える 1

5

普通の古い JLabel を使用するだけです。

あなたの要件について:

ウィンドウ (JFrame、JPanel、またはその他のコンテナー) に画像を配置します。

JLabel に目的の画像の ImageIcon を指定すると、それが表示されます。これは、JPanel や JFrame などの他のコンテナに簡単に配置できます。

キーボードとマウスのリスナーをサポートできる

JLabel などの JComponent を拡張するすべてのコンポーネントは、MouseListener、MouseMotionListener の使用を許可し、キー バインディングを介してキーボード入力をリッスンできます。

同じコンテナに複数のインスタンスを持つことができます

任意のコンテナに好きなだけ追加できます。使用中のレイアウト マネージャーを認識し、尊重してください。

于 2013-07-14T03:01:13.000 に答える