![]() |
|
|
Themen-Optionen |
|
|
Nach oben #2 |
|
Projektleiter
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.091
|
Code:
while(true) {
if(exitKeyPressed()) break;
}
__________________
Patrick Gotthardts Weblog. |
|
|
|
|
|
Nach oben #3 |
|
Gast
Beiträge: n/a
|
also irgendwie verstehe ich das nicht so ganz. ich hab das folgendermaßen realisiert:
ein file mit ... while(true){...} ... und dann ein file mit keylistener. etwa so ... public void keyPressed(KeyEvent e) { if(e.getKeyCode() == KeyEvent.VK_Q) { //hier wird eine variable, z.b. ende, auf true gesetzt } } ... dann, wenn ich deinen vorschlag richtig verstanden hab könnte ich folgendes machen: while(true) { if(ende) break; } das tut aber nicht. und ich denke, dass es daran liegt, dass es gar nicht zu der abfrage kommt, ob die taste gedrückt wurde und somit ende = true gesetzt wurde. lieg ich da richtig? oder hab ich einfach deinen vorschlag falsch verstanden? |
|
|
|
Nach oben #4 |
|
Projektleiter
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.091
|
Wofür brauchst du überhaupt die Schleife? Warum machst du "ende" nicht direkt zur Bedingung der Schleife?
Und könntest du eventuell mal etwas mehr Code posten?
__________________
Patrick Gotthardts Weblog. |
|
|
|
|
|
Nach oben #5 |
|
Gast
Beiträge: n/a
|
danke für deine antworten. mehr code also,mal schauen...
hier das erste file, mit der while schleife: package test11112005; import java.io.*; import java.awt.*; import java.awt.event.*; /** * * @author stalm110 */ public class Test2 extends Component{ private static Test2 einTest; private TastenAbhoerer einAbhoerer; //private double zeitSpanneGD10; //private double zeitSpanneGD30; private int i = 0; private boolean exitKey = false; /** Creates a new instance of Test */ public Test2() { } /** * @param args the command line arguments */ public static void main(String[] args) { einTest = new Test2(); // einTest.zeitSpanneGD10 = Double.valueOf(args[0]); //einTest.zeitSpanneGD30 = Double.valueOf(args[1]); einTest.start(); } public void beenden(boolean b) { exitKey = b; } public void start(){ //zeitSpanneGD10 = 1.1718; //zeitSpanneGD30 = 1.1742; String file = "C:/DatenAlex/capture/test11112005a.csv"; FileReader fr = null; double array10[] = new double[1]; double array30[] = new double[1]; int lock = 0; double aktGD10; double aktGD30; einAbhoerer = new TastenAbhoerer(einTest); addKeyListener(einAbhoerer); try { BufferedReader in = new BufferedReader( fr = new FileReader(file) ); while(i < 10) { if(exitKey) { break; } String line = in.readLine(); if(line == null) { i = i + 1; try { synchronized(einTest) { einTest.wait(10000); } } catch(InterruptedException e) { System.out.println("Warten fehl geschlagen!"); } continue; } String[] splitArray = line.split(";"); if(splitArray.length > { //System.out.println("Hallo"); if(splitArray[0].compareTo("OFFER") == 0 && splitArray[2].compareTo("1") == 0) { System.out.println(splitArray[7] + "_" + splitArray[8]); } } } } catch ( IOException e ) { System.err.println( e ); } finally { if ( fr != null ) try { fr.close(); } catch ( IOException e ) { } } } } und hier der keylistener: package test11112005; import java.awt.*; import java.awt.event.*; public class TastenAbhoerer extends KeyAdapter { private Test2 aTest; public TastenAbhoerer(Test2 pTest) { aTest = pTest; } public void keyPressed(KeyEvent e) { if(e.getKeyCode() == KeyEvent.VK_Q) { aTest.beenden(true); } } } sorry, dass so wenig komentare drin sind im prinzip macht es folgendes: daten aus einer datei einlesen... wenn String line = in.readLine() "leeres objekt" also == null, dann zehn sekunden warten und einen erneuten versuch unternehmen die daten einzulesen. irgendwelche ideen? |
|
|
|
Nach oben #7 |
|
Projektleiter
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.091
|
Wenn readLine "null" liefert, dann deshalb, weil du die ganze Datei bereits eingelesen hast. Bist du sicher, dass das, was du da machst, richtig ist? Ich kann es mir nämlich nur schwer vorstellen.
PS: In Zukunft bitte den BBCode "code" oder "php" für Programmcodes verwenden, dann bleiben die Einrückungen erhalten. Danke.
__________________
Patrick Gotthardts Weblog. |
|
|
|
|
|
Nach oben #8 | |
|
Gast
Beiträge: n/a
|
Zitat:
hab meinen code jetzt auf das wesentliche vereinfacht. es tut zwar immer noch nicht, aber es ist schon viel übersichtlicher... meiner meinung nach funktioniert es deswegen nicht weil es gar nicht während der ausführung der while schleife dazu kommt den strang mit der keypressed methode abzuarbeiten und somit den zustand von ende zu ändern. was meint ihr denn dazu? wie könnte es funktionieren? hier der aktuelle stand: Code:
import java.awt.*;
import java.awt.event.*;
/**
*
* @author test
*/
public class Abbruch extends Component {
private static Abbruch aAbbruch;
private boolean ende = false;
/** Creates a new instance of Abbruch */
public Abbruch() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
aAbbruch = new Abbruch();
aAbbruch.start();
}
public void start()
{
addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_Q)
{
System.out.println("Taste gedrückt!");
ende = true;
}
}
});
while(true)
{
if(ende)
{
break;
}
}
}
}
|
|
|
|
|
Nach oben #9 |
|
Projektleiter
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.091
|
Pack die while-Schleife in einen eigenen Thread, dann müsste es funktionieren.
PHP-Code:
__________________
Patrick Gotthardts Weblog. |
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Java Tutorial interaktiv, von gailer-net.de | JavaJim | Literatur | 1 | 31.08.2006 15:35 |
| endlosschleife (+ftp) | N!cKY | PHP-Programmierung | 5 | 30.03.2006 16:55 |
| Application aus Application heraus starten / beenden | `B | Allgemeine Java-Programmierung | 2 | 17.04.2005 16:44 |