Guten Tag,
ich habe 2 Klassen, einmal PicturePanel und einmal Berechnungen.
Ich möchte vom PicturePanel zu Berechnungen Werte übergeben, dass klappt auch.
Möchte aber berechnete Werte von Berechnungen wieder zur PicturePanel Klasse wieder übergeben, die dort dann benutzt werden.
Hier meine 1 Klasse:
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=0.0, Uges=0.0, I=0.0;
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!
"+iae.getMessage());
System.exit(-1);
}
catch(IOException ioe) {
JOptionPane.showMessageDialog(this, "Fehler beim Einlesen einer Grafikdatei!
"+ioe.getMessage());
System.exit(-1);
}
for (int i=0;i<7 ;i++ ) {
if (arrayR** == null)
{
arrayR** = "0.0";
}
}
addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent event){
try {
xpos = event.getX();
ypos = event.getY();
System.out.println(xpos + " " + ypos);
// Voltmeter Gesamt
if ((xpos >= 466) && (xpos <= 492) && (ypos >= 188) && (ypos <= 212))
{
Uges = Double.parseDouble(JOptionPane.showInputDialog(null,"Geben Sie die Gesamt Spannung (Uges) ein:","Widerstandeingabe", JOptionPane.PLAIN_MESSAGE));
}
// Ventilator
else
if ((xpos >= 917) && (xpos <= 948) && (ypos >= 119) && (ypos <= 150))
{
Rven = Double.parseDouble(JOptionPane.showInputDialog(null,"Geben Sie die Größe des Ventilator Widerstandes ein:","Widerstandeingabe", JOptionPane.PLAIN_MESSAGE));
}
// Widerstände
if ((xpos >= 90) && (xpos <= 118) && (ypos >= 86) && (ypos <= 100))
{
arrayR[0] = JOptionPane.showInputDialog(null,"Geben Sie die Größe vom Widerstand R1 ein:","Widerstandeingabe", JOptionPane.PLAIN_MESSAGE);
}
else
if ((xpos >= 239) && (xpos <= 267) && (ypos >= 86) && (ypos <= 100))
{
arrayR[1] = JOptionPane.showInputDialog(null,"Geben Sie die Größe vom Widerstand R2 ein:","Widerstandeingabe", JOptionPane.PLAIN_MESSAGE);
}
else
if ((xpos >= 387) && (xpos <= 415) && (ypos >= 86) && (ypos <= 100))
{
arrayR[2] = JOptionPane.showInputDialog(null,"Geben Sie die Größe vom Widerstand R3 ein:","Widerstandeingabe", JOptionPane.PLAIN_MESSAGE);
}
else
if ((xpos >= 536) && (xpos <= 564) && (ypos >= 86) && (ypos <= 100))
{
arrayR[3] = JOptionPane.showInputDialog(null,"Geben Sie die Größe vom Widerstand R4 ein:","Widerstandeingabe", JOptionPane.PLAIN_MESSAGE);
}
else
if ((xpos >= 685) && (xpos <= 712) && (ypos >= 86) && (ypos <= 100))
{
arrayR[4] = JOptionPane.showInputDialog(null,"Geben Sie die Größe vom Widerstand R5 ein:","Widerstandeingabe", JOptionPane.PLAIN_MESSAGE);
}
else
if ((xpos >= 833) && (xpos <= 862) && (ypos >= 86) && (ypos <= 100))
{
arrayR[5] = JOptionPane.showInputDialog(null,"Geben Sie die Größe vom Widerstand R6 ein:","Widerstandeingabe", JOptionPane.PLAIN_MESSAGE);
}
new Berechnungen(arrayR, Rven, Uges);
} catch(Exception e) {
}
}
}) ;
addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseMoved(MouseEvent event){
xpos = event.getX();
ypos = event.getY();
// Voltmeter Gesamt
if ((xpos >= 466) && (xpos <= 492) && (ypos >= 188) && (ypos <= 212))
{
setToolTipText("<html>Uges"+"<br>"+Uges+" Ohm"+"</html>");
}
// Ventilator
else
if ((xpos >= 917) && (xpos <= 948) && (ypos >= 119) && (ypos <= 150))
{
setToolTipText("<html>Ventilator"+"<br> Rven = "+ Rven +" Ohm"+"<br> P = "+ "" +" W"+"</html>");
}
// Widerstände
else
if ((xpos >= 90) && (xpos <= 118) && (ypos >= 86) && (ypos <= 100))
{
setToolTipText("<html>R1"+"<br>"+arrayR[0]+" Ohm"+"</html>");
}
else
if ((xpos >= 239) && (xpos <= 267) && (ypos >= 86) && (ypos <= 100))
{
setToolTipText("<html>R2"+"<br>"+arrayR[1]+" Ohm"+"</html>");
}
else
if ((xpos >= 387) && (xpos <= 415) && (ypos >= 86) && (ypos <= 100))
{
setToolTipText("<html>R3"+"<br>"+arrayR[2]+" Ohm"+"</html>");
}
else
if ((xpos >= 536) && (xpos <= 564) && (ypos >= 86) && (ypos <= 100))
{
setToolTipText("<html>R4"+"<br>"+arrayR[3]+" Ohm"+"</html>");
}
else
if ((xpos >= 685) && (xpos <= 712) && (ypos >= 86) && (ypos <= 100))
{
setToolTipText("<html>R5"+"<br>"+arrayR[4]+" Ohm"+"</html>");
}
else
if ((xpos >= 833) && (xpos <= 862) && (ypos >= 86) && (ypos <= 100))
{
setToolTipText("<html>R6"+"<br>"+arrayR[5]+" Ohm"+"</html>");
}
// Amperemeter
else
if
(
((xpos >= 167) && (xpos <= 192) && (ypos >= 81) && (ypos <= 104)) ||
((xpos >= 316) && (xpos <= 339) && (ypos >= 81) && (ypos <= 104)) ||
((xpos >= 465) && (xpos <= 489) && (ypos >= 81) && (ypos <= 104)) ||
((xpos >= 612) && (xpos <= 636) && (ypos >= 81) && (ypos <= 104)) ||
((xpos >= 764) && (xpos <= 784) && (ypos >= 81) && (ypos <= 104)) ||
((xpos >= 900) && (xpos <= 925) && (ypos >= 81) && (ypos <= 104))
)
{
setToolTipText("<html>I"+"<br>"+I+" Ampere"+"</html>");
}
// Voltmeter
else
if ((xpos >= 82) && (xpos <= 117) && (ypos >= 10) && (ypos <= 35))
{
setToolTipText("<html>U1"+"<br>"+ ""+" V"+"</html>");
}
else
if ((xpos >= 241) && (xpos <= 265) && (ypos >= 10) && (ypos <= 35))
{
setToolTipText("<html>U2"+"<br>"+ ""+" V"+"</html>");
}
else
if ((xpos >= 389) && (xpos <= 415) && (ypos >= 10) && (ypos <= 35))
{
setToolTipText("<html>U3"+"<br>"+ ""+" V"+"</html>");
}
else
if ((xpos >= 536) && (xpos <= 564) && (ypos >= 10) && (ypos <= 35))
{
setToolTipText("<html>U4"+"<br>"+ ""+" V"+"</html>");
}
else
if ((xpos >= 686) && (xpos <= 712) && (ypos >= 10) && (ypos <= 35))
{
setToolTipText("<html>U5"+"<br>"+ ""+" V"+"</html>");
}
else
if ((xpos >= 835) && (xpos <= 861) && (ypos >= 10) && (ypos <= 35))
{
setToolTipText("<html>U6"+"<br>"+ ""+" V"+"</html>");
}
// Spannung Ventilator
else
if ((xpos >= 918) && (xpos <= 945) && (ypos >= 163) && (ypos <= 185))
{
setToolTipText("<html>Uven"+"<br>"+ ""+" V"+"</html>");
}
else
{
setToolTipText("");
}
}
});
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if(background != null) {
g.drawImage(background, 0, 0, this);
}
}
}
Hier meine 2 Klasse:
{
public Berechnungen(String[] arrayR, double Rven, double Uges) {
double arrayU[] = new double[7];
double
Rges = Rven,
I = 0.0,
Uven = 0.0,
Lven = 0.0;
for (int i=0;i<7 ;i++ ) {
Rges = Rges + (Double.parseDouble(arrayR**));
}
I = Uges / Rges;
for (int i=0;i<7 ;i++ ) {
arrayU** = (Double.parseDouble(arrayR**) * Uges) / Rges;
}
Uven = (Rven * Uges) / Rges;
Lven = Rven * Math.pow(Uges, 2);
}
}```
Möchte die Werte: arrayU, Lven, Uven und I wieder PicturePanel zurückgeben.
Wie stelle ich das an?