138 rivejä
3,2 KiB
Java
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);
|
|
}
|
|
}
|