Pages : 1
#1 Le 27/10/2008, à 11:02
- rniamo
quelques question [Java] [résolu]
bonjour,
je fais un "mini"-projet en java et je me pose quelques question (surtout par rapport au C/C++) :
1) peux t-on définir une "constante" debug en java ou comment gérer quelque chose du type "if (debug)" sans forcément passer par une variable ?
2) existe -t il quelquechose pour connaitre un retour à la ligne dans un fichier propre (sans savoir si c'est du windows ou linux) ?
d'avance merci pour vos réponses.
Dernière modification par rniamo (Le 27/10/2008, à 19:49)
< Quelques un des mes programmes | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
\ ^__^
\ (o o)\_______
(___)\ )\
Hors ligne
#2 Le 27/10/2008, à 11:06
- verbose
Re : quelques question [Java] [résolu]
1) Je ne vois pas du tout ce que tu veux dire
2) La classe BufferedReader possède une méthode readLine() qui est capable de reconnaître les caractères de saut de ligne, quelque soit le système.
Hors ligne
#3 Le 27/10/2008, à 12:13
- rniamo
Re : quelques question [Java] [résolu]
1) en C ou C++ je fais un #define DEBUG (ou pas) et parès dans le code je fait un #ifdef DEBUG etc... En résumé à la compilation je n'ai pas de variable debug en plus mais j'ai les lignes de debuggage. En java je ne sais pas faire.
2) J'utilise Scanner et la méthode hasNextLine(), le problème est que je triate des fichier de la forme suivante :
blabla
colonne1colonne2colonne3
colonne1colonne2colonne3
la largeur des colonnes est fixe mais selon que je traite sous linux ou windows mon fichier la ligne fait 57 (windows) ou 58 (linux) caractères.
< Quelques un des mes programmes | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
\ ^__^
\ (o o)\_______
(___)\ )\
Hors ligne
#4 Le 27/10/2008, à 12:27
- verbose
Re : quelques question [Java] [résolu]
1) Ce n'est pas possible en Java, il n'y a pas de commande de préprocesseur.
2) Bizarre, est-ce que tu utilises bien la méthode nextLine() ?
Hors ligne
#5 Le 27/10/2008, à 13:12
- rniamo
Re : quelques question [Java] [résolu]
pour le 2 je vais retester
j'ai oublié une question : est-ce qu'on peut faire comme en c++ et définir le corps des méthodes dasn un fichier séparé de a définition de la classe en java ?
< Quelques un des mes programmes | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
\ ^__^
\ (o o)\_______
(___)\ )\
Hors ligne
#6 Le 27/10/2008, à 13:34
- quicky
Re : quelques question [Java] [résolu]
non tu ne peux pas separer implementation et declaration...
Hors ligne
#7 Le 27/10/2008, à 15:14
- rniamo
Re : quelques question [Java] [résolu]
ok, donc dés que j'ai coder la partie analyse je test sous win, j'ai cependant un problème :
j'ai un interface, quand je clique sur OK je créé un objet qui fait l'analyse. J'ai deux questions
1) faut-il faire cette analyse (qui peut être longue) dans un thread ?
2) Comment bien gérer ce genre de thread : j'ai essayé de faire en sorte que se soit l'objet lui même qui gère le thread et pas l'interface mais j'ai parfois un blocage (ça dure longtemps, trés longtemps ) .
Voici le code :
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package pR;
import java.lang.InterruptedException;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
/**
*
* @author rniamo
*/
public class Traitement extends Thread {
private final static int LARGEUR_LIGNE=58;
private final static int NOMBRE_COLONNES=5;
private final static int LARGEUR_COLONNE_1=9;
private final static int LARGEUR_COLONNES=12;
private static char SEPARATEUR=';';
private Scanner TRTscanner=null;
private String TRTanalyse="";
// traitement lancé en thread via .start()
private String TRTanalyse(String ligne) {
String strOut=ligne;
return strOut;
}
@Override
public synchronized void run() {
TRTanalyse="";
while (TRTscanner.hasNextLine()) {
String line=TRTscanner.nextLine();
TRTanalyse+=TRTanalyse(line)+'\n';
}
notifyAll();
}
public Traitement(String nomFichier) throws FileNotFoundException {
try {
if (TRTscanner!=null)
TRTscanner.close();
TRTscanner=new Scanner(new File(nomFichier));
}
catch(FileNotFoundException e) {
throw e;
}
start();
}
public Traitement(File fichier) throws FileNotFoundException {
try {
if (TRTscanner!=null)
TRTscanner.close();
TRTscanner=new Scanner(fichier);
}
catch(FileNotFoundException e) {
throw e;
}
start();
}
public synchronized void TRTenregistre(String nomFichier) throws IOException, InterruptedException {
System.out.println("av") ;
try {
wait();System.out.println("ap") ;
FileWriter fwOut=new FileWriter(nomFichier);
fwOut.write(TRTanalyse);
fwOut.close();
}
catch(InterruptedException ie) {
throw ie;
}
catch(IOException ioe) {
throw ioe;
}
}
public synchronized void TRTenregistre(File fichier) throws IOException, InterruptedException {
try {
wait();
FileWriter fwOut=new FileWriter(fichier);
fwOut.write(TRTanalyse);
fwOut.close();
}
catch(InterruptedException ie) {
throw ie;
}
catch(IOException ioe) {
throw ioe;
}
}
@Override
public void finalize() {
if (TRTscanner!=null)
TRTscanner.close();
}
}
< Quelques un des mes programmes | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
\ ^__^
\ (o o)\_______
(___)\ )\
Hors ligne
#8 Le 27/10/2008, à 16:31
- rniamo
Re : quelques question [Java] [résolu]
j'ai réussi en lancer mon analyse dans un thread sans faire hériter mon objet traitement de thread. C'est plus logique et plus simple.
< Quelques un des mes programmes | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
\ ^__^
\ (o o)\_______
(___)\ )\
Hors ligne
#9 Le 27/10/2008, à 16:39
- nalian34
Re : quelques question [Java] [résolu]
pour le 1)
tu peux dans la ligne de commande de lancement du programme utiliser l'option -D
par exemple : java -Ddebug=true MonProgramme
ensuite tu peux récupérer la valeur de debug comme ceci :
System.getProperty("debug");
je n'ai pas testé mais je pense que c'est ça
Hors ligne
#10 Le 27/10/2008, à 17:21
- rniamo
Re : quelques question [Java] [résolu]
je n'arrive pas à utiliser cette option, j'ai toujours null...
Sinon en passant, je suis obliger d'itiliser this.nomMéthode() dans une classe ou nomMéthode() suffit (comme en c++) ?
< Quelques un des mes programmes | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
\ ^__^
\ (o o)\_______
(___)\ )\
Hors ligne
#11 Le 27/10/2008, à 17:29
- nalian34
Re : quelques question [Java] [résolu]
tu peux utiliser nomMéthode() pas de soucis
Hors ligne
#12 Le 27/10/2008, à 17:34
- nalian34
Re : quelques question [Java] [résolu]
je n'arrive pas à utiliser cette option, j'ai toujours null...
moi ça marche, je viens d'essayer :
-Ddebug=true
en argument de la VM
pas d'espace entre -D et debug=true
c'est bien -Ddebug=true
et ensuite System.getProperty("debug");
Dernière modification par anirelles (Le 27/10/2008, à 17:36)
Hors ligne
#13 Le 27/10/2008, à 17:40
- rniamo
Re : quelques question [Java] [résolu]
c'est vrai, je m'étais trompé dans mon IDE de case (argument au lieu de VM Option.
merci.
< Quelques un des mes programmes | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
\ ^__^
\ (o o)\_______
(___)\ )\
Hors ligne
#14 Le 27/10/2008, à 18:41
- rniamo
Re : quelques question [Java] [résolu]
petite question (et après je vais tester sous win) :
comment définir la proportion des objet dans une fenêtre (JButton et JtextField) :
je veux que mon bouton prenne 20% et le JTextField 80% de la zone, comment faire ? (je les mets dans une Box horizontale)
edit : quand on définit une clase avec une méthode abstract, la classe doit elle avoir le mot clef abstract obligatoirement ? (mon IDE : netbeans m'a demandé de l'ajouter)
Dernière modification par rniamo (Le 27/10/2008, à 19:23)
< Quelques un des mes programmes | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
\ ^__^
\ (o o)\_______
(___)\ )\
Hors ligne
#15 Le 27/10/2008, à 19:46
- nalian34
Re : quelques question [Java] [résolu]
pour la question sur les boutons je ne peux pas t'aider.
oui, une classe avec une méthode abstract doit forcément être déclarée en abstract
Hors ligne
#16 Le 27/10/2008, à 19:48
- rniamo
Re : quelques question [Java] [résolu]
ok. merci à tous pour votre aide.
< Quelques un des mes programmes | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
\ ^__^
\ (o o)\_______
(___)\ )\
Hors ligne