import java.awt.Dimension; import java.awt.Image; import java.awt.Toolkit; import java.net.InetAddress; import java.net.UnknownHostException; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; /** * @author arslan * * TODO Pour changer le modèle de ce commentaire de type généré, allez à : * Fenêtre - Préférences - Java - Style de code - Modèles de code */ @SuppressWarnings("serial") public class FenetreSysteme extends JFrame { /* initialisation des controles*/ private JLabel lblLogo; private JLabel lblNom; private JLabel lblAdresse; private JLabel lblUser; private JLabel lblOS; private JLabel lblMachine; private JTextField txtNom; private JTextField txtAdresse; private JTextField txtUser; private JTextField txtOS; private JTextField txtMachine; public FenetreSysteme() throws UnknownHostException { super("Propriétés système"); Toolkit tool = Toolkit.getDefaultToolkit(); this.setSize(600,250); // Taille de la fenetre // (longueurD - longueurSize)/2 & (largeurD - largeurSize)/2 Dimension D = tool.getScreenSize(); int L = (int) (D.width-this.getWidth())/2; int l = (int) (D.height-this.getHeight())/2; // creér une image dans img puis modifier icon avec "setIconImange" Image img = tool.createImage("ressources/java.jpg"); this.setIconImage(img); this.setLocation(L,l); // la position dans l'ecran this.setResizable(false); // non redimensionnable this.setAlwaysOnTop(true); // toujours au dessus // this.setTitle("Proprietes systeme"); // titre dans la barre // ferme l'appli quand on ferme la fenetre this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); InitControle(); } public void InitControle() throws UnknownHostException { /* recuperation des proprietes avec la Classe InetAdress */ InetAddress P = InetAddress.getLocalHost(); String Host = P.getHostName(); String Ad = P.getHostAddress(); /* initialisation des controles*/ lblLogo = new JLabel(new ImageIcon("ressources/java.jpg")); lblNom = new JLabel ("Nom de la machine"); lblAdresse = new JLabel("Adresse IP"); lblUser = new JLabel("Utilisateur"); lblOS = new JLabel("Nom de l'OS"); lblMachine = new JLabel("Machine virtuelle"); txtNom = new JTextField(Host); // txtNom.disable(); // rend le champs inaccessible (trouver une autre methode) txtAdresse = new JTextField(Ad); /** recuperation des proprietes avec la Classe System et methode getProperty()*/ txtUser = new JTextField(System.getProperty("user.name")); txtOS = new JTextField(System.getProperty("os.name")); txtMachine = new JTextField(System.getProperty("java.vm.vendor")+System.getProperty("java.vm.version")); /* coordonnées et tailles des libéllés*/ lblLogo.setBounds(0,30,150,150); lblNom.setBounds(160,30,150,25); lblAdresse.setBounds(160,60,150,25); lblUser.setBounds(160,90,150,25); lblOS.setBounds(160,120,150,25); lblMachine.setBounds(160,150,150,25); /* coordonnées et tailles des champs*/ txtNom.setBounds(320,30,250,25); // txtNom.setBorder(BorderFactory.createLineBorder(Color.RED)); //border rouge du cadre du champs txtNom.setEditable(false); // "grisage" du champs txtAdresse.setBounds(320,60,250,25); // txtAdresse.setBorder(BorderFactory.createLineBorder(Color.RED)); txtAdresse.setEditable(false); txtUser.setBounds(320,90,250,25); // txtUser.setBorder(BorderFactory.createLineBorder(Color.RED)); txtUser.setEditable(false); txtOS.setBounds(320,120,250,25); // txtOS.setBorder(BorderFactory.createLineBorder(Color.RED)); txtOS.setEditable(false); txtMachine.setBounds(320,150,250,25); // txtMachine.setBorder(BorderFactory.createLineBorder(Color.RED)); txtMachine.setEditable(false); /* positionnement des controles sur la CONTENT PANE*/ JPanel feuille = (JPanel) this.getContentPane(); //permet d'obtenir la content pane feuille.setLayout(null); //pour ne pas utiliser de layout par defaut feuille.add(lblLogo); feuille.add(lblNom); feuille.add(lblAdresse); feuille.add(lblUser); feuille.add(lblOS); feuille.add(lblMachine); feuille.add(txtNom); feuille.add(txtAdresse); feuille.add(txtUser); feuille.add(txtOS); feuille.add(txtMachine); } }