Guten Tag,
und zwar möchte ich im Tooltip den Wert eines Arrays anzeigen lassen und das soll erscheinen sobald man mit der Maus über einen bestimmten Bereich ist.
Den Wert des Array Feldes soll man per Laufzeit ändern können.
Zur zeit sieht das so aus:
Das Problem ist, dass er beim Mouse Event Mouse die veränderten Array Werte nicht annimmt bzw immer noch die Werte 0 hat. Was mache ich hier falsch?
und zwar möchte ich im Tooltip den Wert eines Arrays anzeigen lassen und das soll erscheinen sobald man mit der Maus über einen bestimmten Bereich ist.
Den Wert des Array Feldes soll man per Laufzeit ändern können.
Zur zeit sieht das so aus:
Java:
import javax.swing.*;
import javax.imageio.*;
import java.awt.*;
import java.net.*;
import java.io.*;
import java.awt.event.*;
import javax.swing.ToolTipManager;
public class PicturePanel extends JPanel
{
private Image background;
int xpos, ypos;
String[] arrayR = new String [7];
public PicturePanel() {
super(new GridBagLayout());
ToolTipManager.sharedInstance().registerComponent(this);
try {
background = ImageIO.read(getClass().getResource("background.png"));
}
catch(IllegalArgumentException iae) {
JOptionPane.showMessageDialog(this, "Grafikdatei nicht gefunden!\n"+iae.getMessage());
System.exit(-1);
}
catch(IOException ioe) {
JOptionPane.showMessageDialog(this, "Fehler beim Einlesen einer Grafikdatei!\n"+ioe.getMessage());
System.exit(-1);
}
for (int i=0;i<7 ;i++ ) {
if (arrayR[i] == null)
{
arrayR[i] = "0";
}
}
addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent event){
xpos = event.getX();
ypos = event.getY();
System.out.println(xpos + " " + ypos);
if ((xpos >= 60) && (xpos <= 87) && (ypos >= 63) && (ypos <= 75))
{
arrayR[0] = JOptionPane.showInputDialog(null,"Geben Sie die Größe vom Widerstand R1 ein:","Widerstandeingabe", JOptionPane.PLAIN_MESSAGE);
}
if ((xpos >= 185) && (xpos <= 213) && (ypos >= 63) && (ypos <= 75))
{
arrayR[1] = JOptionPane.showInputDialog(null,"Geben Sie die Größe vom Widerstand R1 ein:","Widerstandeingabe", JOptionPane.PLAIN_MESSAGE);
}
new Berechnungen(arrayR);
}
}) ;
addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseMoved(MouseEvent event){
xpos = event.getX();
ypos = event.getY();
if ((xpos >= 60) && (xpos <= 87) && (ypos >= 63) && (ypos <= 75))
{
setToolTipText("<html>R1"+"<br>"+arrayR[1]+" Ohm"+"</html>");
}
else
if ((xpos >= 185) && (xpos <= 213) && (ypos >= 63) && (ypos <= 75))
{
setToolTipText("<html>R2"+"<br>"+arrayR[2]+" Ohm"+"</html>");
}
else
if ((xpos >= 315) && (xpos <= 344) && (ypos >= 63) && (ypos <= 75))
{
setToolTipText("<html>R3"+"<br>"+arrayR[3]+" Ohm"+"</html>");
}
else
if ((xpos >= 448) && (xpos <= 476) && (ypos >= 63) && (ypos <= 75))
{
setToolTipText("<html>R4"+"<br>"+arrayR[4]+" Ohm"+"</html>");
}
else
if ((xpos >= 578) && (xpos <= 606) && (ypos >= 63) && (ypos <= 75))
{
setToolTipText("<html>R5"+"<br>"+arrayR[5]+" Ohm"+"</html>");
}
else
if ((xpos >= 0) && (xpos <= 0) && (ypos >= 0) && (ypos <= 0))
{
setToolTipText("<html>R6"+"<br>"+arrayR[6]+" Ohm"+"</html>");
}
else
{
setToolTipText("");
}
}
});
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if(background != null) {
g.drawImage(background, 0, 0, this);
}
}
}
Das Problem ist, dass er beim Mouse Event Mouse die veränderten Array Werte nicht annimmt bzw immer noch die Werte 0 hat. Was mache ich hier falsch?