Language java






Les achitecture type
  language java      
     type et déclaration
   Valeurs       
   definition      
   exemples/description      
public class "nom du programme" annonce le fichier permet de nommer le fichier et de le retrouver lors de l'instruction.
int ...
Char ...
déclaration des variables permet de définir de quel façon le programme va pouvoir le différentes vaibles utilisées dans le programme.
public static void main (string[] args)
{
début type du programme main est le début du programme
{
}
instructions coeur du programme
} fin chlore le programme ;)
sudo apt-get install libmysql-java export CLASSPATH=$CLASSPATH:/usr/share/java/mysql-connector-java.jar importer le driver connexion java ;)





les "type de constantes"
  Constantes Variables;       
     type et déclaration
   Valeurs       
   definition      
   exemples/description      
Int I,J; N (réel) 235 à -235 entier
Double a, c; Réel 235 à -235 décimaux
Booléen b; boléen Vraix-Faux 0-1/oui-non/Vraix-Faux
char c; caractère alphabet [a-z] vérifier les caractère numérique
String s; Chaine "bonjour" et "[...]" permet de calculer des enchainements de variables





les Operateurs
   Language Java      
   grandeur  
   traduction      
   definition      
   exemples/description      
+ - * / / % Arithmétiques + - * / div modulo la division / est entière si les opérandes sont des entiers, sinon c'esy une division réelle
&& || ! Logiques et ou non ---------------------------
== < > <= >= != relationels = < > « » ‡ ---------------------------
s1.equals(s2) cas particulier égalité entre deux chaines fonctino prédéfinie pour les chaines





les variables
   Language Java      
   grandeur  
   traduction      
   definition      
   exemples/description      
double a,c: réel égalité entre deux chaines fonctino prédéfinie pour les chaines





entrée et sorties
  Language Java       
  type et déclaration 
  definition      
  exemples/description      
System.out.println(""); écrire "" affiche un message à l'utilisateur
System.out.println("valeur de la variable"); écrire "valeur de la variable a=" +a ressort une donnée injecté au programme





instruction conditionelles
  Language Java       
  type et déclaration 
  definition      
  exemples/description      
if [conditions]
{

instruction

}
si cette condition permet de rentrer une condition.
if [conditions]
{

instruction

}
else
{

instruction

}
si cette ou ces conditions alors permet de rentrer une condition.





instructions itératives (boucles)
  Language Java       
  type et déclaration 
  definition      
  exemples/description      
for (i=L; i‹=10 ; i=i+1)
{

instruction

}
pour (i allant de 1 à 10pas 1) faire
instruction 1;
instruction 2;
...
finpour
pour une variable allant de n à n+x faire (attention on ne traduit pas le faire...
for (i=L; i‹=10 ; i=i-1)
{

instruction_1;
instruction_2
...

}
pour (i allant de 1 à 10pas 1) faire
instruction 1;
instruction 2;
...
finpour
pour une variable allant de n à n-x faire (attention on ne traduit pas le faire...
While (condition)
{

instruction

}
tant que (conditions) faire
instruction 1;
instruction 2;
...
fintanque
pour une variable tant qu'elle reste vraie ou fausse faire...(attention on ne traduit pas le faire...





structure
les type d'une classe

static class Liste{
private int valeur;
private Liste suivant;
public Liste(int premier,Liste reste){
valeur= premier;
suivant= reste;
}
public int tete(){
return(valeur);
}
public Liste queue(){
return(suivant);}
}
la visibilité
publicest visible dans tout le programmepublic int A
protectedest visible de la classe ainsi que de ses héritageprotected Point p
privateest visible que de la classes dans laquelle il existeint[] A





Le garbage collector java.lang.ref
les type de références
Soft Reference
Weak Reference
Hard Reference
Phantom Reference
méthodes pour obtenir des informations basiques sur la mémoire occupée par le tas
totalMemory()renvoie la quantité totale de mémoire du tas
freeMemory()
-XX:+HeapDumpOnOutOfMemoryError





les exeptions
RunTimeExeption
try{...}catch(){}permet de capturer une exeption et éviter sa propagation jusqu'au maintry{
division par zero
}catch(NumberFormatExeption nfe){
System.out.println(nfe.getMessage());
return null;}
throw new Exception("division par zero");permet d'encapsuler les exeptions try {
maMéthodeQuiRenvoitPlusieursTypesDException();
}catch (Exception e) {
// En englobe toutes les exceptions dans une exception unique
throw new Exception("Un problème est survenue", e);
}
try{...}finally{...}passe automatiquement par finally (attention aux return/break/continue) qui ducoup ne seront pas éxécutépublic int methode2(){
try{
return 3;
}finally{
return 4;
}
}
printStackTrace()de Throwable fourni l'enssemble des info des méthodes appelés au moment de l'erreur
getCause()permet d'avoir l'erreur d'originine en cas d'erreur en cascade
java.util.loggingpermet de loguer les erreurs dans des fichiers
cree ses propres exeptions
les exceptions et ordres
Objectla classe racine de toutes les classes
   ThrowablegetMessage(), toString(), printStackTrace(), etc.
    Errorerreurs graves, abandon du programme
    Exceptionanomalies récupérables
      RunTimeExceptionerreur à l’exécution
        ArithmeticExceptiondivision par zéro par exemple
        ClassCastExceptionmauvaise conversion de classes (cast)
        IndexOutOfBoundsExceptionen dehors des limites (tableau)
        NullPointerExceptionréférence nulle
        IllegalArgumentException
          NumberFormatExceptionnombre mal formé
      IOExceptionerreurs d’entrées-sorties
        FileNotFoundExceptionfichier inconnu





la généricité
public class Duo<T, S> {

//Variable d'instance de type T
private T valeur1;
//Variable d'instance de type S
private S valeur2;
//Constructeur par défaut
public Duo(){
this.valeur1 = null;
this.valeur2 = null;
}
//Constructeur avec paramètres
public Duo(T val1, S val2){
this.valeur1 = val1;
this.valeur2 = val2;
}
//Méthodes d'initialisation des deux valeurs
public void setValeur(T val1, S val2){
this.valeur1 = val1;
this.valeur2 = val2;
}
//Retourne la valeur T
public T getValeur1() { return valeur1;
}
//Définit la valeur T
public void setValeur1(T valeur1) {
this.valeur1 = valeur1; }
//Retourne la valeur S
public S getValeur2() {
return valeur2;
}
//Définit la valeur S
public void setValeur2(S valeur2) {
this.valeur2 = valeur2;
}
}
la classe générique permet de ne pas s'embetter avec les type d'objet, seul problème le clonage n'est pas permis si on change le type Duo<String, Boolean> dual = new Duo<String, Boolean>("toto", true);
System.out.println("Valeur de l'objet dual : val1 = " + dual.getValeur1() + ", val2 = " + dual.getValeur2());
Duo<Double, Character> dual2 = new Duo<Double, Character>(12.2585, 'C');
System.out.println("Valeur de l'objet dual2 : val1 = " + dual2.getValeur1() + ", val2 = " + dual2.getValeur2());





Swing (graphique)
JLabel affiche un texte statique, ou avec une mise en forme html Label label = new JLabel("Un Jmachin") ;
Jbutton un bouton qui possède un comportement graphique quand on le clique. JButton bouton = new Jbutton("bouton");
JtoggleButton bouton à deux étapes on/off JToggleButton boutonOnOff = new JToggleButton(new ImageIcon("etoile.gif"));
JcheckBox setSelected(true);
JradioButton JRadioButton choixRouge = new JradioButton("rouge");
JcomboBox Liste déroulante pour choisir un item Vector items = new Vector();
items.add("rouge");
items.add("jaune");
items.add("vert");
items.add("gris");
items.add("bleu");
items.add("orange");
items.add("violet");
JComboBox choix = new JcomboBox(items);
choix.setMaximumRowCount(4);
JtextField un texte dynamique JTextField text = new JtextField(5);
JSpinner composant de saisie de valeur numérique avec des boutons +1 et -1 spinner = new JSpinner();
PasswordField composant de saisie de mot de passe password = new JPasswordField(15);
JSlider autre composant de saisie de valeur numérique avec un curseur slider = new Jslider( Jslider.HORIZONTAL, 0, 100, 50);
JProgressBar barre de progression barre = new JProgressBar(JProgressBar.HORIZONTAL, 0, 100);
barre.setValue(33);
JColorChooser composant de choix de couleur choix = new JColorChooser();
TextArea composant de saisie de texte multi-lignestexte = new JTextArea(12,4);
texte.setLineWrap(true);
texte.append("bla bla bla bla bla bla bla bla bla bla");
FileChooser choix d'un fichier dans le système de fichiers choixFichier = new JFileChooser();
JEditorPane
JTextPane
JTable
JTree





options JButton
setToolTipText survol du curseur setToolTipText("passez le curseur dessus !");
getSize() renvoie la taile
getHeight() renvoie la hauteur
getWidth() renvoie la largeur
setPreferredSize(Dimension) optimise la dimention
setCursor change le curseur setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR))
setOpaque change l’opacité setOpaque(!bouton.isOpaque());bouton.repaint();
setBorder bordure setBorder(BorderFactory.createEmptyBorder());
setVisible(); change la visibilité setVisible(!bouton.isVisible());
setEnabled(); bouton actif/inactif setEnabled(!bouton.isEnabled());
setBackground(); change le cbackground setBackground(Color.black);
setRolloverIcon(); met un icon au survol setRolloverIcon(new ImageIcon("etoile_presque_jaune.gif"));
SetPressedIcon( ); met un icône lors du pressage setPressedIcon( new ImageIcon("etoile_jaune.gif"));





options JButton
la sourie
mouseDragged
mouseMoved
getSource()dans quel composant ça s'est passé
getActionCommand()Renvoie la chaîne de commande associée à cette action. Cette chaîne permet à un composant "modal" de spécifier l'une de plusieurs commandes, en fonction de son état. Par exemple, un seul bouton peut basculer entre "afficher les détails" et "masquer les détails". L'objet source et l'événement seraient les mêmes dans chaque cas, mais la chaîne de commande identifierait l'action prévue.
setActionCommand()change le nom de la commande de l'ActionEvent
addActionListener()ajoute un "écouteur" au composantbouton1.addActionListener(ecouteur)
removeActionListener()supprime un "écouteur" au composantbouton1.removeActionListener(ecouteur)
addWindowListener
windowDeactivated()
windowDeiconified()
windowIconified()
windowOpened()





les dessins
la sourie
dessinGraphics g = panel.getGraphics();
g.drawOval();dessine un rond
g.drawRect()dessine un rectangle g.drawRect(30,40,80,110);
g.drawString(); g.drawString("ceci est un long text",10,100);
paintComponent()public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawOval(10,20,50,50);
g.drawRect(30,40,80,110);
g.drawString("ceci est un long text",10,100);
}
setColor();changer la couleur g1.setColor(Color.red);
g1.fillRoundRect(); dessine un rectangle avec des angles arondiesg1.fillRoundRect(30,30,30,60,10,10);
create();clone un composant ainsi on le remodifie Graphics g2 = g1.create();





la sourie





les threads
implement Runnable
.start()déclenche l'éxécution du thread
Thread autreTache= new Thread(new Lent());
autreTache.start();
.interrupt()permet d'arreter un thread (attention au boucles infinies)
.join()attend la fin d'éexécution du thread (méthode bloquante)
les veroux
synchronised(variable/instance)permet de mettre un verou unique
CountDownLatch(nombre)syncronisateur de type loquet à décrémentation
new ThreadSwingDemo80();déclenche un thread
Thread[AWT-EvenQueue]thread graphique (demo swingDemo80)
countDown()
wait()
notify()
notifyAll()
tryLock()
AtomicNumber()???
CyclicBarrier
Semaphore
ReentrantLock
BlookingQueue
ConcurrentLinkedDeque