Liebe Community,
ich sitze jetzt seit gut 2 Stunden an dem einem Problem:
Ich habe eine Klasse geschrieben die aussieht wie folgt:
Funktionsweise: Diese Klasse wird durch eine andere geöffnet, die sich jedoch ständig im Vordergrund (aber nicht aktiv) hält. Klicke ich nun auf den Frame, so speichern sich x- und y- Werte in das Feld (Array) ein (In der Konsole werden die "gespeichert"-Einträge angezeigt, auch konnte ich sie auf gleiche Weise aus dem Array lesen, das funktioniert also! ).
Wenn ich jetzt in dem aufrufenden (das, das sich im vordergrund hält) Programm einen Button drücke, wird die Methode give() aufgerufen.
Jetzt das Problem:
Es wird für alle Felder 0 ausgegeben und eben diese Fehlermeldung... Das Dokument existiert aber (jedoch lediglich mit de Eintrag "0").
Ich hoffe einer von euch weiß jetzt weiter =)
Liebe Grüße,
Snaiper
ich sitze jetzt seit gut 2 Stunden an dem einem Problem:
Ich habe eine Klasse geschrieben die aussieht wie folgt:
Java:
import java.awt.event.MouseMotionListener;
import java.awt.event.MouseEvent;
import javax.swing.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.FileReader;
//import com.sun.awt.AWTUtilities;
public class Test extends JFrame {
int[] feldx;
int[] feldy;
int counter = 0;
private JButton jButton1 = new JButton();
public Test()
{
feldx = new int[20];
feldy = new int[20];
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
this.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
System.out.println("gespeichert");
if(counter < 20){
feldx[counter] = e.getX();
feldy[counter] = e.getY();
counter = counter +1;
}
else{
JOptionPane.showMessageDialog(null,"Maximal Anzahl an Positionen erreicht!");
}
}
});
}
public static void main(String args[])
{
Test myFrame = new Test();
//myFrame.setSize(400,300);
myFrame.setVisible(false);
myFrame.show();
com.sun.awt.AWTUtilities.setWindowOpacity(myFrame, 0.5f );
}
public void give() throws java.io.IOException {
try{
String path = "C://Data-Test.txt";
BufferedWriter out = new BufferedWriter(new FileWriter(path));
for(int i=0; i < 20; i++){
int m= feldx[i];
String str1 = Integer.toString(m);
out.write(str1);
System.out.println(feldx[i]);
}
out.close();
}
catch(Exception e){
System.out.println("Fehler: " + e);
}
}
}
Funktionsweise: Diese Klasse wird durch eine andere geöffnet, die sich jedoch ständig im Vordergrund (aber nicht aktiv) hält. Klicke ich nun auf den Frame, so speichern sich x- und y- Werte in das Feld (Array) ein (In der Konsole werden die "gespeichert"-Einträge angezeigt, auch konnte ich sie auf gleiche Weise aus dem Array lesen, das funktioniert also! ).
Wenn ich jetzt in dem aufrufenden (das, das sich im vordergrund hält) Programm einen Button drücke, wird die Methode give() aufgerufen.
Jetzt das Problem:
gespeichert
gespeichert
...
gespeichert
0
0
0
...
0
Fehler: java.io.IOException: Stream closed
Es wird für alle Felder 0 ausgegeben und eben diese Fehlermeldung... Das Dokument existiert aber (jedoch lediglich mit de Eintrag "0").
Ich hoffe einer von euch weiß jetzt weiter =)
Liebe Grüße,
Snaiper