1

アイコンの ArrayList<> を作成し、それらのアイコンを使用してインターフェイス JLabel で出力できるかどうかを解決するための助けが必要です。私がやろうとしているのは、赤、緑、青と表示された 3 つのボタンを作成することです。ボタンを押すと、その色の四角ができます。複数回押すと、前の正方形を削除せずに複数の正方形が作成されます。

redBut.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                    icon.addIcon(new SquareIcon(50, Color.red));
                    label.setIcon(icon.getIcon(icon.getIconsSize()));
                    System.out.println(icon.getIconsSize());
                    frame.repaint();
                    frame.pack();
            }
    });

これは赤いボタンです。ご覧のとおり、これを押すと、新しいアイコンが ArrayList に追加されます。その後、arraylist の特定のインデックスにあるアイコンを取得して、そのアイコンにラベルを設定しようとしました。また、arraylist のサイズを調べて 1 を引いてインデックス番号を取得します (arraylist は 0 から始まるため)。 .

println を使用して、実際に arraylist に追加されているかどうかをテストします。

しかし、私はまだそれをインターフェースに表示させることはできませんか? また、複数のアイコンで動作しますか?


編集:
ボタンを複数回クリックすると、ウィンドウに複数の正方形が表示されるようにしようとしています(JFramesと呼ばれると思いますか?)。とにかく、アイコンを一度だけ作成し、ボタンをクリックするたびに新しい JLabel を作成し、それらをリストに保存してから、JLabels にアイコンの 1 つを入力できると言っていますか?

4

1 に答える 1

2

あなたは次のように述べています:

アイコンの ArrayList<> を作成し、それらのアイコンを使用してインターフェイス JLabel で出力できるかどうかを解決するための助けが必要です。

おそらく、これはあなたの問題を解決する最善の方法ではありません...

私がやろうとしているのは、赤、緑、青と表示された 3 つのボタンを作成することです。ボタンを押すと、その色の四角ができます。複数回押すと、前の正方形を削除せずに複数の正方形が作成されます。

提案:

  • アイコンの ArrayList は必要ないと思います。
  • ここでも、3 つの Icon オブジェクトと変数、redIcon、greenIcon、および blueIcon のみを作成します。
  • 青い JButton が押されるたびに、blueIcon で新しい JLabel を作成し、ラベルを表示している JPanel に追加します。
  • revalidate()含まれている JPanel にコンポーネントを追加または削除した後、含まれている JPanel でandを呼び出すことを忘れないでくださいrepaint()revalidate()は、追加された新しいコンポーネントを含むすべてのコンポーネントを再レイアウトするように JPanel に指示し、この呼び出しrepaint()は、クリーンアップが必要なコンテナー上の「汚れた」領域をペイントするのに役立ちます。
  • 複数の JLabels で同じ ImageIcon を複数回再利用できることに注意してください。
于 2013-11-09T16:28:18.277 に答える