OpenLLM-France/wikimedia huggingface dataset:
# Programmation Java Swing/Menus

* Introduction
* Composants
** Arbre
* Fenêtres
* Menus
* Actions
* Types de données et constantes
* Gestion de la disposition des composants
* Gestion des évènements
* Gestion des actions asynchrones
* Apparence de l'interface
* Contenu en HTML
* Créer un composant
** Une case à cocher à trois états
** Dessin d'un composant
** Dessin d'une étoile
** Dessin de texte et effets
* Créer une image
* Introduction
* Composants
** Arbre
* Fenêtres
* Menus
* Actions
* Types de données et constantes
* Gestion de la disposition des composants
* Gestion des évènements
* Gestion des actions asynchrones
* Apparence de l'interface
* Contenu en HTML
* Créer un composant
** Une case à cocher à trois états
** Dessin d'un composant
** Dessin d'une étoile
** Dessin de texte et effets
* Créer une image
[ Modifier le sommaire ]

## Types de menu

Swing supporte deux types de menu :
* les menus de type javax.swing.JMenu attaché à une fenêtre via sa barre de menu javax.swing.JMenuBar généralement située en haut de la fenêtre.
* les menus de type javax.swing.JPopupMenu attaché à tout composant, dont l'affichage est, par exemple, déclenché par un clic droit de la souris.

## Création d'un menu

Ces deux types de menu (javax.swing.JMenu et javax.swing.JPopupMenu) s'utilisent de la même façon. Un menu est initialement vide, et l'ajout d'un item se fait en appelant l'une des méthodes suivantes :

### add(JMenuItem item)

    Ajouter un item de menu.

### add(Action action)

    Ajouter un item de menu créé à partir d'une action.
La seconde méthode est préférable car une même action peut être attachée à différents composants (menu, bouton, ...) ce qui simplifie la gestion de son état (état activé ou désactivé, texte, icône, raccourci clavier, ...) dont la modification de répercute sur tous les composants liés.
Il est possible d'ajouter d'autres éléments à un menu :
* La méthode addSeparator permet d'ajouter un séparateur entre deux items de menu.
* La méthode add(JMenuItem item) accepte aussi un autre menu afin d'ajouter un sous-menu, car la classe javax.swing.JMenu dérive de javax.swing.JMenuItem.
Exemple :

## Gestion d'un menu contextuel

Un menu contextuel (classe javax.swing.JPopupMenu) a la particularité de s'afficher à l'endroit où l'utilisateur a déclenché son affichage (Par exemple, clic droit avec la souris sous Windows ou Linux, ou la touche Menu).

### Le déclenchement

Le déclenchement de l'ouverture du menu dépend de la plateforme : il peut se faire lors de l'appui du bouton de souris, ou lors de son relâchement (comme sous Windows par exemple). La classe MouseEvent possède une méthode isPopupTrigger permettant de tester si l'évènement est celui qui déclenche l'ouverture du menu pour la plateforme.
L'affichage du menu contextuel doit se faire avec la méthode show(JComponent, int, int) pour que le comportement du menu soit correct : mise en évidence de l'item survolé, gestion de la disparition du menu en cliquant ailleurs, ... L'utilisation des méthodes setLocation et setVisible n'est pas recommandée car le menu peut ne pas fonctionner correctement.
# Programmation Kylix
## Sommaire

* Introduction
# Programmation Java Swing/Sommaire

* Introduction
* Composants
** Arbre
* Fenêtres
* Menus
* Actions
* Types de données et constantes
* Gestion de la disposition des composants
* Gestion des évènements
* Gestion des actions asynchrones
* Apparence de l'interface
* Contenu en HTML
* Créer un composant
** Une case à cocher à trois états
** Dessin d'un composant
** Dessin d'une étoile
** Dessin de texte et effets
* Créer une image
# Programmation Kylix/Introduction

Kylix est un environnement de développement intégré pour le langage Pascal sous Linux.
Edité par Borland. La première version est sortie début 2001, un peu jeune une deuxième a suivi très vite et la dernière qui est la troisième version (Kylix 3) est sortie en juillet 2002.
Kylix est un produit très proche de Delphi, même principe, même interface, qui fonctionne sous Linux et qui permet de créer des programmes pour ce système. Le même code source peut-être compilé sous Linux et Windows (respectivement avec Kylix et Delphi) grâce à l'utilisation de la bibliothèque objet CLX qui s'appuie sur la bibliothèque graphique Qt.
Il existe une version en téléchargement gratuit qui permet d'écrire des programmes en GPL.
Il est à noter que Kylix n'est pas sous licence openSource et ne fonctionne que sur plateforme x86 De plus, il reste dans une logique très monolithique, et s'intègre donc mal aux outils traditionnels et à la culture Unix. Cet outil n'a eu aucun succès auprès de la communauté Linux.
# Programmation Java Swing/Gestion des actions asynchrones

* Introduction
* Composants
** Arbre
* Fenêtres
* Menus
* Actions
* Types de données et constantes
* Gestion de la disposition des composants
* Gestion des évènements
* Gestion des actions asynchrones
* Apparence de l'interface
* Contenu en HTML
* Créer un composant
** Une case à cocher à trois états
** Dessin d'un composant
** Dessin d'une étoile
** Dessin de texte et effets
* Créer une image
* Introduction
* Composants
** Arbre
* Fenêtres
* Menus
* Actions
* Types de données et constantes
* Gestion de la disposition des composants
* Gestion des évènements
* Gestion des actions asynchrones
* Apparence de l'interface
* Contenu en HTML
* Créer un composant
** Une case à cocher à trois états
** Dessin d'un composant
** Dessin d'une étoile
** Dessin de texte et effets
* Créer une image
[ Modifier le sommaire ]
La création d'une interface graphique pour une application en Java entraîne la création de threads pour gérer les tâches de fond comme la gestion des évènements qui créer une boucle de réception d'évènements et leur distribution aux composants visibles.
Les actions déclenchées par l'utilisateur peuvent prendre beaucoup de temps : recherche de fichiers, calculs complexes, ... Lorsque de telles actions sont appelées directement depuis les écouteurs d'évènements, l'interface graphique est bloquée durant les secondes ou minutes d'exécution. Pour éviter ce problème, il faut gérer correctement les appels à ces actions de manière asynchrone.

## Action asynchrone

Pour éviter qu'une action dont l'exécution est longue empêche l'utilisateur d'utiliser l'interface graphique, il faut créer un thread spécifique.
Exemple : Une action longue exécutée par clic sur un bouton :
La méthode demarrerAction crée et démarre un thread pour exécuter l'action et retourne sans attendre la fin d'exécution afin de ne pas bloquer l'interface graphique :

## Mise à jour de l'interface

Une action asynchrone peut avoir besoin de mettre à jour l'interface graphique : indiquer que l'action est terminée, afficher le fichier ou l'image chargée ou le résultat d'un calcul, ... Pour cela, les méthodes des composants doivent être appelées par le thread de gestion des évènements afin d'éviter les conflits. Il suffit pour cela d'appeler la méthode statique invokeLater de la classe javax.swing.SwingUtilities.
# Programmation objet et géométrie/Points 3D avec CaRScript

CaRMetal est un logiciel de géométrie plane. Néanmoins il permet de simuler la géométrie dans l'espace, hormis les problèmes d'incidence, il autorise par exemple la création d'un point d'intersection de deux droites non coplanaires.
Même s'il est possible de créer un point dans l'espace en donnant ses trois coordonnées, ce point dans CaRMetal reste un objet 2D. CaRScript permet de s'affranchir de cette limitation en créant l'objet point3D.

# L'objet Point3D

Ci-dessous on trouve
* l'utilisation d'une varibale globale numPt, incrémentée à chaque création de point 3D; elle simule le nommage automatique des objets par CaRMetal
* une occurrence du polyporphisme: Selon que l'objet point3D a été appelé avec trois arguments (les coordonnées) ou quatre (le nom en plus), l'instanciation ne se déroule pas de la même manière;
* une propriété appelée CM qui est le nom du point 3D;
* Des propriétés cachées (emplacement de l'affichage des variables dans CaRMetal)
* Le fait que les coordonnées du point 3D sont évidemment, des propriétés de celui-ci.
Il va de soi que ce script doit tourner sur une figure de l'espace, laquelle fournit le repère et la possibilité de faire tourner la figure avec le clic-droit-glisser.

# Distance dans l'espace

Ci-dessous un exemple d'utilisation : le script crée deux points 3D, que l'on retrouve dans la feuille de dessin. Les coordonnées peuvent être modifiées dans CaRMetal par l'intermédiaire des expressions, qui peuvent également être transformées en curseur.

# Liens externes

* Les fichiers source de cette page :
# Programmation orientée aspect/Introduction

La programmation orientée aspect cherche à séparer syntaxiquement les différentes fonctionnalités d'une application dans des aspects. Idéalement, chaque aspect traite un ensemble cohérent de fonctionnalités.
La programmation orientée aspect est notamment apparue en réaction au problème de la décomposition dominante, qui se produit en Programmation orientée objet.
# Programmation orientée aspect

* Introduction
* Aspects
* Point d'action
* Condition d'exécution
* Conclusion
# Enseignement de l'anglais/Animals, les animaux
## domestic animals : les animaux domestiques; pet : les animaux familiers

* a dog : un chien
* a cat : un chat
* a goldfish : un poisson rouge
* a guinea pig : un cochon d'Inde / cobaye
* a rabbit : un lapin
* a mouse : une souris
* a parrot : un perroquet

## farm animals : les animaux de la ferme

* a cow : une vache
* a bull : un taureau
* an ox (pl. two oxen) : un bœuf
* a calf (pl. two calves) : un veau
* a sheep (pl. two sheep) : un mouton
* an ewe : une brebis. Attention on dit a ewe à cause de la prononciation, devant le son /ju:/ on ne peut mettre an (ex: a university, a union...)
* a lamb : un agneau
* a goat : une chèvre
* a pig : un porc
* the sow : la truie
* a horse : un cheval
* a mare : une jument
* a chicken : un poulet
* a hen : une poule
* a duck : un canard
* a goose (pl. geese) : une oie

## Wild animals : les animaux sauvages

* a bear : un ours
* a camel : un chameau
* a zebra : un zèbre
* an elephant : un éléphant
* a tiger : un tigre
* a panther : une panthère
* a lion : un lion
* a leopard : un léopard
* a monkey : un singe
* a giraffe : une girafe
* a hippopotamus : l'hippopotame
* a rhinoceros : un rhinocéros
* a snake : un serpent
* a pheasant : un faisan
* a hind : une biche
* a deer : un cerf

## a bird : un oiseau

* an eagle : un aigle
* a blackbird : un merle
* a swallow : une hirondelle
* a sparrow : un moineau
* a raven : un corbeau
* a nightingale : un rossignol
* a robin-redbreast : un rouge-gorge
* a thrush : une grive
* a magpie : une pie
* a hummingbird: un colibri

## a fish : un poisson

* a shark : un requin
* a whale : une baleine
* an octopus : une pieuvre
* a swordfish : un espadon
* a trout : une truite
* a catfish : un poisson-chat

## Application

Test de vocabulaire
Retour Enseignement de l'anglais
# Enseignement de l'anglais/Army, l'armée
## a soldier : un soldat

* a regiment : un régiment
* an officer : un officier
* a general : un général
* a colonel : un colonel
* a major : un commandant
* a lieutenant : un lieutenant
* a sergeant : un sergent
* a corporal : un caporal

## war : la guerre

* a civil war : une guerre civile
* a fight : un combat
* an assault : un assaut
* a battle : une bataille
* a defeat : une défaite
* a retreat : une retraite
* a disaster : un désastre
* a battlefield : un champ de bataille

## a weapon : une arme

* a gun, a rifle : un fusil
* a revolver : un revolver
* a pistol : un pistolet
* a bullet : une balle
* a sword : une épée
* a bow : un arc
* an arrow : une flèche
* an axe : une hache
* a spear : une lance
* a coat of mail : une cotte de mailles
* a helmet : un casque
* a shield : un bouclier
* an armour : une armure

## the land forces (ou ground forces): l'armée de terre

* a tank : un char
* to aim : viser
* ammo : munitions
* armament : armement
* "at ease!": "repos!"
Retour Enseignement de l'anglais
# Enseignement de l'allemand/ss et ß
## Qu'est-ce que c'est, un ß ?

Le ß (dit : Eszett ; très rarement : Doppel-S, Straßen-S) se compose des consonnes 
 et <z> qui sont unies sur une seule.

## Le principe

* En allemand, une voyelle est principalement prononcée comme courte, si elle est suivie par deux consonnes, sinon c'est une voyelle longue.
* Comme dans la langue française, un 
 ne se sonorise pas s'il est suivi par une autre consonne (attention : dans plusieurs régions germanophones, le s n'est jamais prononcé comme voisé).

## Où est-ce que ss ou ß s'emploient ?

Un mot s'écrit avec <ss> ou <ß> en fonction de la prononciation de la voyelle précédente : si elle est prononcée comme courte, le son prend un <ss>, si elle est prononcée comme longue, la consonne prend un <ß>. Dans les deux cas, la consonne ne se sonorise pas.
On a donc : Die Straße (la rue), mais die Terrasse (la terrasse) Der Schoß (le bercail), mais das Schloss (le château)
Das Floß (le radeau), mais die Flosse (la nageoire) Der Fuß (le pied), mais der Fluss (le fleuve).

## Cas particuliers

* Dans l'ancienne orthographe, le <ß> était employé au lieu des plusieurs consonnes 
 qui, aujourd'hui, sont écrites comme <ss> (par exemple Fluß au lieu de Fluss).
* Certains mot qui sont empruntés à d'autres langues (par exemple Terrasse du français) s'étaient toujours écrits avec <ss> (dans l'allemand, ces mots conservent souvent leur orthographe originale).
* Certains verbes prennent <ß> dans la forme du prétérit [par exemple : essen -> aß (manger) ; sitzen -> saß (être assis(e))], quelques rares transforment un <ß> à <ss> [par exemple : genießen -> genoss (profiter de) ; schließen -> schloss (fermer à clé)].
* Le verbe müssen (devoir) — autrefois conjugué de la manière suivante : muß, mußte, gemußt — ne perd plus /ss/ et se conjugue de la manière suivante : muss, musste, gemusst.
* Le ß ne se transforme pas en <ss> après des diphthongues comme <ei>, <au>, <eu>, etc. puisqu'elles ne sont jamais prononcées comme longues.

## Créer un ß sur un clavier Azerty

* Sous Windows, pour faire un ß sur un clavier Azerty, il faut faire alt+225 avec le pavé numérique, ou, de la même façon, alt+0223. Sinon, si le clavier a été défini en allemand dans le panneau de configuration, il suffit de taper "ss".
* Sous Mac, pour faire un ß sur un clavier Azerty, il faut faire alt+b.

## Créer un ß sur un clavier Qwertz

* Sous Mac, pour faire un ß sur un clavier Qwertz, il faut faire alt+s.
# Enseignement de l'anglais/Articles
## L'article indéfini

En anglais, l'article indéfini correspond à a ou an. On l'utilise pour introduire un nom que l'on ne connaît pas ou que l'on rencontre pour la première fois. Exemple : There is a tree. Il y a un arbre.
On emploie généralement an pour un nom commençant par une voyelle et a pour un nom commençant par une consonne. Exemple : I've seen an animal. J'ai vu un animal. It was a dog. C'était un chien.
Cependant, avant un h aspiré, on garde a. Exemple : a horrible war. Quand le h n'est pas aspiré (hour, honest, honour), on utilise an. Si un mot commence par une voyelle et que la prononciation est difficile, on emploie a. Exemple : a university. a European.

### Pluriel

a/an n'a pas de pluriel. Exemple : I've eaten apples. J'ai mangé des pommes.

### Emplois particuliers

* Pour introduire une profession ou un statut. Exemple : She is a nurse. Elle est infirmière. His father is an invalid. Son père est invalide.
* Après such ou what. Exemple : What a beautiful day. Quelle belle journée.
* Dans des expressions. Exemple : I have a headache. J'ai mal à la tête.
* Après une préposition. Exemple : as a bomb. comme une bombe.

## L'article défini

En anglais, l'article défini est the, aussi bien devant une voyelle qu'une consonne. On l'utilise pour quelque chose qui a déjà été ou qui va être mentionné, pour une situation, ou pour une chose connue de tous. Exemple : I The teacher is not here. Le professeur n'est pas là. Can you open the window ? Peux-tu ouvrir la fenêtre ? the sea. la mer.

### Pluriel

On emploie également the au pluriel. Exemple : Where are the children ? Où sont les enfants ?

## La généralité

Lorsque l'on parle de quelque chose de général, on n'emploie pas d'article (Ø) (là où en français on utiliserait la, le, les). I like mountains. J'aime la montagne. Science is the future. La science est l'avenir. Poverty, racism, food : la pauvreté, le racisme, la nourriture.
Attention à bien différencier la généralité d'un particulier. I like music. J'aime la musique (la musique en général). I didn't like the music I heard yesterday. Je n'ai pas aimé la musique que j'ai entendue hier (une musique particulière).

## Noms propres

On ne place pas d'articles devant un nom propre.
* de personnes. Exemple : Queen Elisabeth et non the Queen Elisabeth. King Albert et non the King Albert.
* de lieux. Oxford Street. the Oxford Street
* de villes, de bâtiments. London Airport.
* les sports. I like soccer.
* les noms de pays au singulier. France, Japon...
Les noms de pays au pluriel sont précédés de the. Exemple : the Netherlands, the United States.
* un nom de langue. Exemple : I learn English.
* les noms de jour, de mois. Exemple : I go out on Saturday. Je sors le samedi.

## Application

Exercices sur les articles
Retour Enseignement de l'anglais
# Enseignement de l'allemand/ck et tz
## Pourquoi est-ce que ck et tz sont employés en allemand ?

En allemand, une voyelle accentuée dépend du nombre des consonnes qui la suivent concernant sa prononciation longue ou courte. Elle est prononcée comme longue, si elle est suivie par une seule consonne, et comme courte, si elle est suivie par deux ou plusieurs consonnes (tuyau : la prononciation des mots étrangers en allemand est le plus souvent conservée).
Pour ce faire, les consonnes sont d'ordinaire doublées (comme dans nennen [nommer], erstatten [restituer], schleppen [traîner] ). Mais on ne le fait pas avec k et z, on les remplace avec ck et tz.

## Exceptions

On n'emploie pas tz et ck lorsque la voyelle précédente et marquée comme longue. On n'emploie pas non plus tz et ck si la consonne z ou k suit à un l, m, n ou r.
Dans les écoles allemandes, les petits élèves apprennent un pense-bête afin de mémoriser ce fait :

### Nach l, m, n und r, das merk' dir ja, folgt nie tz und nie ck.

    Après l, m, n et r, c'est bien comme ça, ne vient jamais de tz ou de ck.
Exemples :
* sitzen (être assis) mais siezen (vouvoyer)
* packen (faire les valises) mais parken (parquer)
* Patzer (faute) mais Panzer (tank)
* Fackel (torche) mais Falke (faucon)
# Enseignement de l'anglais/Adjectifs
## Les adjectifs possessifs

En anglais, les adjectifs possessifs s'accordent en fonction du possesseur. Exemple : He washes his car. Il lave sa voiture.
| 1ère personne du singulier | my | mon, ma, mes |
| 2ème personne du singulier | your | ton, ta, tes |
| 3ème personne du singulier (masculin) | his | son, sa, ses |
| 3ème personne du singulier (féminin) | her | son, sa, ses |
| 3ème personne du singulier (neutre) | its | son, sa, ses |
| 1ère personne du pluriel | our | notre, nos |
| 2ème personne du pluriel | your | votre, vos |
| 3ème personne du pluriel | their | leur, leurs |

## Les adjectifs épithètes

* Les adjectifs épithètes ne prennent pas de -s au pluriel. Exemple : the poor girls : les pauvres filles
* L'adjectif épithète se place toujours avant le nom qu'il qualifie, même quand il y en a plusieurs. Exemple : red shoes : des chaussures rouges. a nice yellow car : une jolie voiture jaune.
* Lorsqu'il y a plusieurs adjectifs, ils se suivent dans l'ordre suivant : taille / âge / couleur / origine / matière / fonction. Heureusement il est rare qu'autant d'adjectifs qualifient un nom. Les adjectifs n'appartenant pas à ces catégories se placent devant. Exemple : a small blue German car : une petite voiture bleue allemande -> small (taille), blue (couleur), German (origine) a young French player : un jeune joueur français. -> young (âge), French (origine)
* Un adjectif exprimant un jugement subjectif se place en tête. Exemple : a pleasant young girl : une sympathique jeune fille.
* Last, next et first précèdent les nombres. Exemple : the last ten months : les dix derniers mois. the first two weeks : les deux premières semaines.

## Les adjectifs composés

Retour Enseignement de l'anglais
# Enseignement de l'anglais/Ago

"Ago", placé en fin de phrase, permet de traduire l'expression française "il y a + durée ".
Exemple : J'ai passé l'aspirateur il y a 2 jours = I did the hoovering two days ago .
Attention de ne pas confondre avec l'expression " il y a + description " , traduire par " there is" ou "there are" , selon que le sujet est singulier ou pluriel.
# Enseignement de l'anglais/Allowed or forbidden

To be allowed :
être permis, être autorisé
ex. : Dogs are allowed : Les chiens sont autorisés.
To be forbidden :
être interdit
ex. : Smoking is forbidden / It's forbidden to smoke : Fumer est interdit / Il est interdit de fumer.
# Auto-éditer un wikilivre/Auto-référencer/LivreTest/LivreTest.compilé
## LivreTest
### Tests de référencement
#### Article maître du livre

    LivreTest

#### Contenus

    Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleUn
    Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleDeux
    Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleTrois
# Auto-éditer un wikilivre/Auto-référencer/LivreTest/LivreTest.contenu
## Article maître du livre

    Le lien suivant est nécessaire pour les livres qui n'ont pas leur page à la racine de wikibooks. On peut éviter cette ligne avec la commande : annexer Utilisateur:Goelette_Cardabela/Sandbox/LivreTest en remplacement de annexer LivreTest, au risque de saturer le buffer de la ligne de commandes et de provoquer un dysfonctionnement de l'application annexer.
Utilisateur:Goelette_Cardabela/Sandbox/LivreTest

## Contenus

ArticleUn ArticleDeux ArticleTrois
# Auto-éditer un wikilivre/Annexer (Version orignale)/Contenu
## Annexer (Version originale)
### Sripts de la version originale

    Article de référence
       LivreTest.contenu
       LivreTest.compilé
    Auto-éditer_un_wikilivre/Auto-référencer/header.inc.sh
    lister.sh
    télécharger.sh
    ajouter_sclt.sh
    ajouter_sclic.sh
    ajouter_sclip.inc.sh
    sclipwb.sh
    sclipco.sh
    annexer.sh

### Sripts des utilitaires

    cp-localsrc-2-localbin
    Manuel linux annexer_fr.1
    Manuel annexer_fr.html
    makeman_annexer.sh