projets:2018:stagejava
Ceci est une ancienne révision du document !
Table des matières
Stage Java: octobre 2018
Introduction
Découvrir la plateforme Java:
- son langage de programmation
- sa machine virtuelle
- l'environnement de développement
Public cible | 10 jeunes |
---|---|
Date | 22, 23, et 24 octobre |
Lieu | Au 214 |
Modalités
Une inscription est nécessaire pour pouvoir planifier. Une adhésion “Les Petits Hackers” (80 euros) sera demandée.
Planning et contenu
- Communication
Présent pour animer
Animation de l'atelier:
- Stéphane Blanc
- Christian Jacolot
Contacts
Structure | Nom Prénom | Rôle sur le projet / poste |
---|---|---|
Maison du libre | Stéphane Blanc | Logistique et animation |
Maison du libre | Christian JACOLOT | Logistique et animation |
Déroulé
- Présentation Java
- Installation Java JDK (OpenJDK)
- Présentation et installation de l'environnement de développement Eclipse
- Présentation du langage avec des exemples
Présentation Java
Présentation: stage_initiation_java.odp
Code de l'exemple:
package bzh.lph.stage; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Devine { private final static int max = 100; public static void main(String[] args) throws IOException { int nombre = (int) (Math.random() * max) + 1; // à deviner int nbCoup = 0; int i = 0; do { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Entrer un entier entre 1 et 100:"); try { i = Integer.parseInt(br.readLine()); if (i < nombre) { System.out.println("nombre trop petit"); } else if (i > nombre) { System.out.println("nombre trop grand"); } else { System.out.println("bravo, vous avez deviné"); } } catch (NumberFormatException nfe) { System.err.println("Ce n'est pas un nombre!"); } nbCoup += 1; // nbCoup = nbCoup +1; } while (i != nombre); System.out.println("Gagné en " + nbCoup + " coup(s)"); } } }
Java Interface Graphique
Présentation: stage_initiation_java_gui.odp
Code de l'exemple:
package bzh.lph.services; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; public class DevineGui { private final static int max = 100; public static void main(String[] args) { // jeu int nombre = (int) (Math.random() * max) + 1; // à deviner int nbCoup = 0; // fenêtre JFrame f = new JFrame("ma fenêtre"); f.setSize(640,480); // conteneur JPanel panel = new JPanel(); // configure le layout du conteneur panel.setLayout(new FlowLayout()); // créer les widgets JLabel msgLbl = new JLabel("Devine un nombre entre 1 et 100"); JLabel msgEntreLbl = new JLabel("Entrer un nombre: "); JTextField nombreTF = new JTextField(); nombreTF.setText("99"); JButton validationBtn = new JButton("Valider mon nombre"); // quand le bouton validation est cliqué, vérifie le nombre validationBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String textNombre = nombreTF.getText(); int i = 0; try { i = Integer.parseInt(textNombre); if (i < nombre) { JOptionPane.showConfirmDialog(f, "nombre trop petit", "Perdu", JOptionPane.OK_CANCEL_OPTION); } else if (i > nombre) { JOptionPane.showMessageDialog(f, "nombre trop grand", "Perdu", JOptionPane.OK_CANCEL_OPTION); } else { JOptionPane.showMessageDialog(f, "vous avez deviné", "Bravo", JOptionPane.OK_CANCEL_OPTION); } } catch (NumberFormatException nfe) { JOptionPane.showMessageDialog(f, "Ceci n'est pas un nombre !", "Erreur", JOptionPane.OK_CANCEL_OPTION); } // nbCoup += 1; // nbCoup = nbCoup +1; } }); // ajoute les widgets au conteneur panel.add(msgLbl); panel.add(msgEntreLbl); panel.add(nombreTF); panel.add(validationBtn); // ajoute le conteneur à la fenêtre f.getContentPane().add(panel); // la fenêtre est visible et active f.setVisible(true); } }
Java Stockage: Base de données
Présentation: stage_initiation_java_stockage.odp
Code de l'exemple:
package bzh.lph.stage; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class GestionContact { private static Connection conn = null; public static void main(String[] args) { connect(); // lireData(); // ecrireData(); // effacerData(); disconnect(); } // connection à la base de contact public static void connect() { conn = null; try { // les paramêtres de la connexion à la base de données String url = "jdbc:sqlite:contact.db"; // ouvrir la base de données conn = DriverManager.getConnection(url); System.out.println("Connexion à la base réussie."); } catch (SQLException e) { System.out.println(e.getMessage()); } } // fermer la connexion à la base de données private static void disconnect() { try { if (conn != null) { conn.close(); } } catch (SQLException ex) { System.out.println(ex.getMessage()); } } private static void lireData() { if (conn != null) { try { // créer à partir de la connexion la requête Statement stmt = conn.createStatement(); // exécuter la requête ResultSet rs = stmt.executeQuery("select * from contact"); // parcourir le résultat while (rs.next()) { int numeroContact = rs.getInt("numero"); String nomContact = rs.getString("nom"); String prenomContact = rs.getString("prenom"); System.out.println( "Numéro: " + numeroContact + ", Nom: " + nomContact + ", Prénom: " + prenomContact); } } catch (SQLException e) { System.out.println(e.getMessage()); } } } private static void ecrireData() { if (conn != null) { try { // préparer la requête String nomContact = "Blanc"; String prenomContact = "Stéphane"; String insertionContact = "INSERT INTO contact(nom, prenom) VALUES('" + nomContact + "','" + prenomContact + "')"; // créer à partir de la connexion la requête Statement stmt = conn.createStatement(); // exécuter la requête stmt.executeUpdate(insertionContact); System.out.println("Insertion de Stéphane: ok"); } catch (SQLException e) { System.out.println(e.getMessage()); } } } private static void effacerData() { if (conn != null) { try { // préparer la requête int numeroJacolot = 1; String effacterRqt = "DELETE FROM contact WHERE numero = ?"; // créer une requête à partir de la connexion PreparedStatement deleteStmt = conn.prepareStatement(effacterRqt); // positionner le paramètre deleteStmt.setInt(1, numeroJacolot); // exécuter la requête deleteStmt.executeUpdate(); System.out.println("Christian a été effacé: ok"); } catch (SQLException e) { System.out.println(e.getMessage()); } } } }
mvn archetype:create -DgroupId=net.mdl29.test -DartifactId=resttest -DarchetypeArtifactId=maven-archetype-quickstart
projets/2018/stagejava.1547304208.txt.gz · Dernière modification : 2024/04/16 22:26 (modification externe)