hey, mit folgendem Code lade ich ein hintergrund bild in ein panel:
(das panel liegt auf einem JFrame, hat aber exakt die selbe Dimension wie das JFrame selber auch)
Das Problem ist anscheinend, dass bei mir alles korrekt ist, bei Windows-Usern (Ich benutze Linux ubuntu), aber vielleicht auch einfach bei jedem System mit anderen Einstellungen (kann ich nicht testen), das ganze "verschoben" ist.
konkretes Beispiel:
Das bild zeigt ein Haus. Wenn ich mit der Maus auf die Türklinke zeige und mir die Koordinaten ausgeben lasse, bekomme ich den Punkt (x,y).
Wenn nun ein anderer User genau auf die gleiche Stelle zeigt, kommt bei ihm der Punkt (x, y+-?).
Das heisst: Der x-Wert ist der selbe wie bei mir, nur der y-Wert nicht!
Ich hab mal gehört dass z.B. auch der Fenstertitel Platz im Panel einnimmt. Eventuell beeinflusst das die Platzierung des Bildes im Panel/Frame, da bei verschiedenen Systemen diese Titelleiste anders eingestellt ist.
Nun, die Frage ist aber: Wie implementiere ich das Bild so, dass es bei jedem User gleich liegt? Das ist nämlich sehr wichtg für mein Projekt.
Da ich nicht genau weiss, was ihr so braucht, poste ich hier nochmal den kompletten Panel-Konstruktor, sowie auch den Frame-Konstruktor, in dem das Panel liegt:
Dank euch
Code:
MediaTracker mt = new MediaTracker(this);
img = Toolkit.getDefaultToolkit().getImage("MEIN_HINTERGRUNDBILD.png");
mt.addImage(img, 0);
try {
mt.waitForAll();
} catch (InterruptedException e) {
e.printStackTrace();
}
(das panel liegt auf einem JFrame, hat aber exakt die selbe Dimension wie das JFrame selber auch)
Das Problem ist anscheinend, dass bei mir alles korrekt ist, bei Windows-Usern (Ich benutze Linux ubuntu), aber vielleicht auch einfach bei jedem System mit anderen Einstellungen (kann ich nicht testen), das ganze "verschoben" ist.
konkretes Beispiel:
Das bild zeigt ein Haus. Wenn ich mit der Maus auf die Türklinke zeige und mir die Koordinaten ausgeben lasse, bekomme ich den Punkt (x,y).
Wenn nun ein anderer User genau auf die gleiche Stelle zeigt, kommt bei ihm der Punkt (x, y+-?).
Das heisst: Der x-Wert ist der selbe wie bei mir, nur der y-Wert nicht!
Ich hab mal gehört dass z.B. auch der Fenstertitel Platz im Panel einnimmt. Eventuell beeinflusst das die Platzierung des Bildes im Panel/Frame, da bei verschiedenen Systemen diese Titelleiste anders eingestellt ist.
Nun, die Frage ist aber: Wie implementiere ich das Bild so, dass es bei jedem User gleich liegt? Das ist nämlich sehr wichtg für mein Projekt.
Da ich nicht genau weiss, was ihr so braucht, poste ich hier nochmal den kompletten Panel-Konstruktor, sowie auch den Frame-Konstruktor, in dem das Panel liegt:
Code:
public class ActionPanel extends JPanel implements MouseListener, MouseMotionListener {
public ActionPanel(final RunThread thread, Dimension size) {
setPreferredSize(size);
setLayout(null);
addMouseListener(this);
addMouseMotionListener(this);
MediaTracker mt = new MediaTracker(this);
img = Toolkit.getDefaultToolkit().getImage("guipic.png");
mt.addImage(img, 0);
try {
mt.waitForAll();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Code:
public class Main extends JFrame {
public Main(String title, Dimension size) {
super(title);
setPreferredSize(size);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setLayout(new BorderLayout());
add(new ActionPanel(new RunThread(), size),BorderLayout.NORTH);
pack();
setLocationRelativeTo(null);
}
Dank euch