私はNETBEANSを使用しており、決定/ブール値に基づいて特定のアイコン/イメージを表示する必要があるいくつかのJLabelを持っています。私はすべてのJLabelのためにマウスリスナーを追加し、各自のコードをコピー&ペーストする必要はありません。むしろ、私は、JLabelの名前としてx、yを使い、x、yに基づいてアイコンを設定する方が好きです。私は何の問題XYを取得していないが)この(xy.setIcon(新しいイメージアイコン(ヒット)のような何かをする方法を見つけ出すように見えることはできません;。ここに私のコードですマウスクリックのx、yに基づいて動的にJLabelアイコンを変更します。
/**
* Mathematical coordinates of player1Fleet.
* Used to realign ships from Ship Class
* for use on game board.
*/
public void mouseClicked(MouseEvent e) {
Launch1();
}
public void FleetP1() {
for (Ship s : player1Fleet) {
int size = s.getSize();
for (int i = 0; i < size; i++) {
player1Ships.add((((s.getXCoordinate(i) + 1) * 45) + 90) + "" + (((s.getYCoordinate(i) + 1) * 45) + 180));
}
}
// Verification of Math
System.out.println(player1Ships);
}
/**
* Determine Hit or Miss based on location of Cross-hairs
* for player 1/West on game board.
* @return
*/
//public boolean setStrike1(){
public boolean Launch1() {
w93.setIcon(null);
player1Ships.clear();
FleetP1();
boolean strike1 = false;
boolean Launch = false;
for (int i = 0; i < this.player1Ships.size(); i++) {
if (this.player1Ships.get(i).equals(LblCrossHairs.getX() + "" + LblCrossHairs.getY())) {
strike1 = true;
//break;
}
if (strike1) {
strike1 = true;
(LblCrossHairs.getX() + "" + LblCrossHairs.getY()).setIcon(new ImageIcon(Hit));
//Launch = theAttack.Strike1(strike1);
//w93.setIcon(new ImageIcon(Hit));
URL url = this.getClass().getResource("MissleHit.au");
AudioClip ac = Applet.newAudioClip(url);
ac.play();
System.out.println("HIT");
break;
} else {
strike1 = false;
(LblCrossHairs.getX() + "" + LblCrossHairs.getY()).setIcon(new ImageIcon(Hit));
//w93.setIcon(new ImageIcon(Miss));
URL url = this.getClass().getResource("MissileMiss.au");
AudioClip ac = Applet.newAudioClip(url);
ac.play();
System.out.println("MISS");
}
}
TxtClick.setText(LblCrossHairs.getX() + "" + LblCrossHairs.getY() + ".setIcon");
return strike1;
}
すべてのあなたのために事前にありがとうございます助ける。これは私がすべてのJLabelのためのマウスリスナーを追加し、各1のコードをコピー&ペーストする必要がありますする必要はありません最後の2日間
*あなたの*あなたの質問は何ですか?あなたの質問は何ですか?*すぐに役立つようにするには、[SSCCE](http://sscce.org/)を投稿してください。 –