Hallo,
Ich habe ein Problem mit meinem Code:
Das ist nur eine Klasse meines Projekts...Insgesamt wird ein Gitter gezeichnet und Kästchen eingefärbt. Diese Kästchen sollen dann wandern etc.
Wenn ich nun auf ein Kästchen Klicke, färbt es sich wie gehabt (mit JLabel und 2DGraphics gemacht). Allerdings wird spätestens nach dem 3. Click nicht mehr das Kästchen gefärbt, auf das ich geclickt habe, sondern ein anderes(die Y-Koord. bleibt gleich nur die X-K. verändert sich)
Ich würde mich über Lösungsvorschläge oder allgemeine Verbesserungen freuen!
Ich habe ein Problem mit meinem Code:
Java:
package packag;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class Mouse implements MouseListener {
@Override
public void mouseClicked(MouseEvent e) {
int x = e.getX();
int y = e.getY();
for (int i = 0; i <= 9; i++) {
if ((x - i) % 10 == 0) {
x = x - i;
}
}
for (int i = 0; i <= 9; i++) {
if ((y - i) % 10 == 0) {
y = y - i;
}
}
System.out.println("X: "+(x-10)+"Y: "+(y-30));
if (Var.pxlx.contains(x-10)) {
if (Var.pxly.contains(y-30)) {
if (Var.pxlx.indexOf(x-10) == Var.pxly.indexOf(y-30)) {
} else {
Var.pxlx.add(x-10);
Var.pxly.add(y-30);
}
}else{
Var.pxlx.add(x-10);
Var.pxly.add(y-30);
}
}else{
Var.pxlx.add(x-10);
Var.pxly.add(y-30);
}
System.out.println(Var.pxlx.get(0));
System.out.println(Var.pxlx.get(1));
System.out.println(Var.pxlx.get(2));
System.out.println(Var.pxly.get(0));
System.out.println(Var.pxly.get(1));
System.out.println(Var.pxly.get(2));
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}
Java:
package packag;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import javax.swing.JLabel;
public class Label extends JLabel {
private static final long serialVersionUID = 1L;
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
for (int i = 0; i <= Var.jf1.getSize().getWidth(); i += Var.distance) {
Var.lbl1.setBounds(0, 0, (int) Var.jf1.getSize().getWidth(), (int) Var.lbl1.getSize().getHeight());
g.drawLine(i, 0, i, (int) Var.lbl1.getSize().getHeight());
}
for (int i = 0; i <= Var.jf1.getSize().getHeight(); i += Var.distance) {
Var.lbl1.setBounds(0, 0, (int) Var.jf1.getSize().getWidth(), (int) Var.lbl1.getSize().getHeight());
g.drawLine(0, i, (int) Var.lbl1.getSize().getWidth(), i);
}
for (int i = 0; i <= Var.pxlx.size() && i <= Var.pxly.size(); i++) {
if (Var.pxlx.size() == 0) {
} else {
try {
g.fillRect((int) Var.pxlx.get(i), (int) Var.pxly.get(i), 10, 10);
} catch (java.lang.IndexOutOfBoundsException e) {
}
}
}
repaint();
}
}
Das ist nur eine Klasse meines Projekts...Insgesamt wird ein Gitter gezeichnet und Kästchen eingefärbt. Diese Kästchen sollen dann wandern etc.
Wenn ich nun auf ein Kästchen Klicke, färbt es sich wie gehabt (mit JLabel und 2DGraphics gemacht). Allerdings wird spätestens nach dem 3. Click nicht mehr das Kästchen gefärbt, auf das ich geclickt habe, sondern ein anderes(die Y-Koord. bleibt gleich nur die X-K. verändert sich)
Ich würde mich über Lösungsvorschläge oder allgemeine Verbesserungen freuen!