Ich habe nicht in Java für eine lange Zeit programmiert, so dass ich sehr verwirrt bin. Ich weiß, dass der Code ziemlich unorganisiert ist und nicht sehr OO, aber ich frage mich, warum mein "Laser Dot" Bild nicht allein das "Map Tracker" Bild bewegt. Ich benutze es als Test für ein GPS-Tracker-Projekt, das ich machen werde. Ich möchte nur, dass das rote Punktbild sich entlang des Kartenbildes bewegen kann.setLocation() Funktion erlaubt mir nicht, den Standort eines JLabel auf einem anderen JLabel zu ändern
import java.awt.*;
import java.awt.geom.Line2D;
import java.awt.image.*;
import java.io.*;
import javax.imageio.ImageIO;
import javax.swing.*;
public class Main extends JFrame{
public static void main(String[] args) {
BufferedImage img = null;
BufferedImage redDot = null;
try {
System.out.println(new File("C:/Users/User/Downloads/MapTracker.jpg").exists());
img = ImageIO.read(new File("C:/Users/User/Downloads/MapTracker.jpg"));
redDot = ImageIO.read(new File("C:/Users/User/Downloads/LaserDot.png"));
} catch (IOException e) {
e.printStackTrace();
}
JFrame frame = new JFrame();
frame.setTitle("Window");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(1366,768);
int w = img.getWidth(null);
int h = img.getHeight(null);
ImageIcon icon = new ImageIcon(img);
JLabel label = new JLabel(icon);
label.setLayout(null);
JLabel dot = new JLabel();
frame.add(label);
Graphics2D g = (Graphics2D) img.getGraphics();
label.add(dot);
dot.setLocation(1000,300);
dot.setBounds(100,100,500,500);
g.drawImage(redDot, 0, 0, null);
g.setStroke(new BasicStroke(2));
g.setColor(Color.BLACK);
g.draw(new Line2D.Double(0.0,0.0,500.0,500.0));
System.out.println("Image Drawn");
}
}
Die Zeichnungslinie kann ignoriert werden. Es ist nicht relevant für mein Problem.
Kannst du try/catch-Block setzen, um die Ausnahme durch eine der Methoden zu finden? – Omer