From 658dd49aeaab6eeab4f1b5a9dfd73e27856ff157 Mon Sep 17 00:00:00 2001 From: tgiraud Date: Mon, 7 Dec 2020 15:15:36 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20d=C3=A9but=20swing=20moche?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Application/Clavardage/src/Interface.java | 124 ++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 Application/Clavardage/src/Interface.java diff --git a/Application/Clavardage/src/Interface.java b/Application/Clavardage/src/Interface.java new file mode 100644 index 0000000..9b2fde8 --- /dev/null +++ b/Application/Clavardage/src/Interface.java @@ -0,0 +1,124 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class Interface implements ActionListener { + + private String Pseudolabeltext = ""; + final JLabel Pseudolabel = new JLabel("Pseudo: " + Pseudolabeltext); + private JTextField PseudotextField; + private JButton convertPseudo; + + //Specifies the look and feel to use. Valid values: + //null (use the default), "Metal", "System", "Motif", "GTK+" + final static String LOOKANDFEEL = null; + + public Component createComponents() { + PseudotextField = new JTextField(); + PseudotextField.setColumns(10); + PseudotextField.setText("Enter pseudo"); + + convertPseudo = new JButton("Convert Pseudo"); + convertPseudo.addActionListener(this); + + Pseudolabel.setLabelFor(PseudotextField); + + /* + * An easy way to put space between a top-level container + * and its contents is to put the contents in a JPanel + * that has an "empty" border. + */ + JPanel pane = new JPanel(new GridLayout(0, 1)); + pane.add(PseudotextField); + pane.add(Pseudolabel); + pane.add(convertPseudo); + pane.setBorder(BorderFactory.createEmptyBorder( + 30, //top + 30, //left + 10, //bottom + 30) //right + ); + + return pane; + } + + // Modify the event handler code depending on which button is pressed. + // If the 1st button is pressed, increase the numClicks value by 1, else + // increase the value by 1000. + public void actionPerformed(ActionEvent e) { + String texteUtilisateur = PseudotextField.getText(); + Pseudolabel.setText("Pseudo: " + texteUtilisateur); + } + + private static void initLookAndFeel() { + + // Swing allows you to specify which look and feel your program uses- + // -Java, + // GTK+, Windows, and so on as shown below. + String lookAndFeel = null; + + if (LOOKANDFEEL != null) { + if (LOOKANDFEEL.equals("Metal")) { + lookAndFeel = UIManager.getCrossPlatformLookAndFeelClassName(); + } else if (LOOKANDFEEL.equals("System")) { + lookAndFeel = UIManager.getSystemLookAndFeelClassName(); + } else if (LOOKANDFEEL.equals("Motif")) { + lookAndFeel = "com.sun.java.swing.plaf.motif.MotifLookAndFeel"; + } else if (LOOKANDFEEL.equals("GTK+")) { //new in 1.4.2 + lookAndFeel = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel"; + } else { + System.err.println("Unexpected value of LOOKANDFEEL specified: " + LOOKANDFEEL); + lookAndFeel = UIManager.getCrossPlatformLookAndFeelClassName(); + } + + try {UIManager.setLookAndFeel(lookAndFeel); + } catch (ClassNotFoundException e) { + System.err.println("Couldn't find class for specified look and feel:" + lookAndFeel); + System.err.println("Did you include the L&F library in the class path?"); + System.err.println("Using the default look and feel."); + } catch (UnsupportedLookAndFeelException e) { + System.err.println("Can't use the specified look and feel (" + lookAndFeel+ ") on this platform."); + System.err.println("Using the default look and feel."); + } catch (Exception e) { + System.err.println("Couldn't get specified look and feel (" + lookAndFeel + "), for some reason."); + System.err.println("Using the default look and feel."); + e.printStackTrace(); + } + } + } + + /** + * Create the GUI and show it. For thread safety, + * this method should be invoked from the + * event-dispatching thread. + */ + private static void createAndShowGUI() { + //Set the look and feel. + initLookAndFeel(); + + //Make sure we have nice window decorations. + JFrame.setDefaultLookAndFeelDecorated(true); + + //Create and set up the window. + JFrame frame = new JFrame("SwingApplication"); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + Interface app = new Interface(); + Component contents = app.createComponents(); + frame.getContentPane().add(contents, BorderLayout.CENTER); + + //Display the window. + frame.pack(); + frame.setVisible(true); + } + + public static void main(String[] args) { + //Schedule a job for the event-dispatching thread: + //creating and showing this application’s GUI. + javax.swing.SwingUtilities.invokeLater(new Runnable() { + public void run() { + createAndShowGUI(); + } + }); + } +}