Guten Tag,
und zwar führt mein Programm ToolTips aus, sobald ich über einen gewissen Bereich im Panel bin.
Leider ist das etwas unübersichtlich, weil da noch viele Bereiche dazu kommen. Funktionieren tut meins ja, aber ich würde gerne mal erfragen, ob jemand eine Idee hätte wie ich das besser und übersichtlicher darstellen kann, vllt auch mit weniger Programmcode?
Hier mein code:
und zwar führt mein Programm ToolTips aus, sobald ich über einen gewissen Bereich im Panel bin.
Leider ist das etwas unübersichtlich, weil da noch viele Bereiche dazu kommen. Funktionieren tut meins ja, aber ich würde gerne mal erfragen, ob jemand eine Idee hätte wie ich das besser und übersichtlicher darstellen kann, vllt auch mit weniger Programmcode?
Hier mein code:
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;
double Rven=12, Uges=12;
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();
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, Rven, Uges);
}
}) ;
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[0]+" Ohm"+"</html>");
}
else
if ((xpos >= 185) && (xpos <= 213) && (ypos >= 63) && (ypos <= 75))
{
setToolTipText("<html>R2"+"<br>"+arrayR[1]+" Ohm"+"</html>");
}
else
if ((xpos >= 315) && (xpos <= 344) && (ypos >= 63) && (ypos <= 75))
{
setToolTipText("<html>R3"+"<br>"+arrayR[2]+" Ohm"+"</html>");
}
else
if ((xpos >= 448) && (xpos <= 476) && (ypos >= 63) && (ypos <= 75))
{
setToolTipText("<html>R4"+"<br>"+arrayR[3]+" Ohm"+"</html>");
}
else
if ((xpos >= 578) && (xpos <= 606) && (ypos >= 63) && (ypos <= 75))
{
setToolTipText("<html>R5"+"<br>"+arrayR[4]+" Ohm"+"</html>");
}
else
if ((xpos >= 0) && (xpos <= 0) && (ypos >= 0) && (ypos <= 0))
{
setToolTipText("<html>R6"+"<br>"+arrayR[5]+" Ohm"+"</html>");
}
else
{
setToolTipText("");
}
}
});
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if(background != null) {
g.drawImage(background, 0, 0, this);
}
}
}