Projet_POO/Projet_POO/src/ui/NomUI.java
2020-12-07 20:04:58 +01:00

138 rivejä
3,2 KiB
Java

package ui;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Toolkit;
import java.awt.Dimension;
import nom.GestionnaireNom;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JLabel;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
public class NomUI extends JFrame implements Runnable{
private static final long serialVersionUID = 42L;
private JPanel contentPane;
private JTextField usernameField;
JLabel nameLabel;
/**
* Run
*/
public void run() {
try {
NomUI frame = new NomUI();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int hauteur = screenSize.height * 2/5;
int largeur = screenSize.width * 2/5;
frame.setSize(new Dimension(largeur, hauteur));
frame.setLocationRelativeTo(null);
frame.setVisible(true);
System.out.println( GestionnaireNom.instance().getId() );
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Constructeur
*/
public NomUI() {
//Titre
setTitle("Username");
//Operation par defaut
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//dimennsion
setBounds(100, 100, 450, 300);
setAlwaysOnTop(true);
//Jpanel
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
//usernameField
usernameField = new JTextField();
usernameField.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) { //Presser Entrer
if (e.getExtendedKeyCode() == KeyEvent.VK_ENTER) {
String nom = usernameField.getText();
// Si l'on se renomme on peut annuler en entrant rien ou Reprendre le même Username
if( (GestionnaireNom.instance().getNom() != null) && (nom.isBlank() || nom.toLowerCase().equals(GestionnaireNom.instance().getNom().toLowerCase()) ) ) {
dispose();
Thread t = new Thread(new ListUI());
t.start();
}
else {
//Sinon on essaye de prendre un nom
if (GestionnaireNom.instance().verifierDisponibiliteNom(nom) ) {
//Celui-ci ne peut pas être "vide"
if (!nom.isBlank()) {
GestionnaireNom.instance().nommer2(nom); //enlever le 2 à la fin //TODO
dispose();
Thread t = new Thread(new ListUI());
t.start();
}
else {
nameLabel.setText("Enter a valid username");
}
}
else {
nameLabel.setText("Username already taken");
}
}
}
}
});
usernameField.addFocusListener(new FocusAdapter() { //Focus
@Override
public void focusGained(FocusEvent e) {
String s = usernameField.getText();
if ( s.equals("Username") ) {
usernameField.setText("");
}
}
});
// UsernameField (suite)
usernameField.setText("Username");
usernameField.setBounds(109, 90, 206, 54);
contentPane.add(usernameField);
usernameField.setColumns(10);
// nameLabel
nameLabel = new JLabel("Choose a username");
nameLabel.setBounds(109, 149, 206, 31);
contentPane.add(nameLabel);
}
}