1

GridGagLayout画像をフォーマットで表示するにはどうすればよいですか?

カードゲーム(正確には3カードポーカー)を作っていますハートの3などのカード名はなんとか表示できましたが、JLabel画像の表示方法や配置方法がわかりません好きになりたいところ..

JLabel label = new JLabel("Deal");
c.fill = GridBagConstraints.HORIZONTAL;
c.gridwidth = 3;
c.gridx = 0;
c.gridy = 2;
pane.add(label, c);

画像ファイルは、ドライブのどこに保存すればよいですか?それともプロジェクト フォルダーのどこに保存すればよいでしょうか?

編集: ちょっと thx 私はちょっと自分でそれを理解しますが、私がしたことを確認するために:

card=new ImageIcon("G:\\CS3\\png cards\\Card Back.png");
c1 = new JLabel(card);
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 0.5;
c.gridx = 1;
c.gridy = 0;
pane.add(c1, c);

これは私が欲しい画像を表示します。今はうまく機能しているように見えますが、このコーディングに問題はありますか?

4

1 に答える 1

2

項目をレイアウトする方法については、Java グリッドバッグ チュートリアルを参照してくださいhttp://download.oracle.com/javase/tutorial/uiswing/layout/gridbag.html

ただし、基本的な概念は、コンポーネントを追加すると、グリッド上の位置が割り当てられ、そのグリッド内で複数のセルを使用できるということです。時には退屈になる可能性があることに注意してください。

画像を追加するにはいくつかの方法がありますが、おそらく私が知っている最もクリーンな方法は、BufferedImage を作成し、その画像を画像アイコンとして jpanel に追加することです。

InputStream imageStream = this.getClass().getResourceAsStream("resources/image.jpeg")
BufferedImage image = ImageIO.read(imageStream);
JLabel picLabel = new JLabel(new ImageIcon(image))

次に、画像である JLabel を取得し、これをペインに追加できます。

pane.add(picLabel);

最後に、画像の保存に関しては、プロジェクトにリソース フォルダーを作成する必要があります。クラス パスが正しく設定されている場合は、getResourceAsStream()クラスのメソッドを使用して画像を取得できます。

于 2011-05-26T02:31:21.250 に答える