154 rindas
3,3 KiB
Java
154 rindas
3,3 KiB
Java
package ui;
|
||
|
||
import java.awt.BorderLayout;
|
||
import java.awt.EventQueue;
|
||
import java.awt.Toolkit;
|
||
import java.awt.Dimension;
|
||
|
||
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;
|
||
|
||
import nom.GestionnaireNom;
|
||
|
||
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) {
|
||
System.out.println("Erreur : run NomUI");
|
||
e.printStackTrace();
|
||
dispose();
|
||
}
|
||
}
|
||
|
||
|
||
|
||
/**
|
||
* 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();
|
||
|
||
nommer(nom);
|
||
}
|
||
|
||
}
|
||
});
|
||
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);
|
||
}
|
||
|
||
|
||
|
||
/**
|
||
* M<>thode
|
||
*/
|
||
|
||
// On choisit son Username
|
||
private void nommer(String nom) {
|
||
// 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.equals(GestionnaireNom.instance().getNom()) ) ) {
|
||
dispose();
|
||
|
||
Thread t = new Thread(new ListUI2());
|
||
t.start();
|
||
|
||
}
|
||
else {
|
||
//Sinon on essaye de prendre un nom
|
||
if (GestionnaireNom.instance().verifierDisponibiliteNom(nom)) {
|
||
//Celui-ci ne peut pas <20>tre "vide"
|
||
if (!nom.isBlank()) {
|
||
GestionnaireNom.instance().nommer2(nom); //enlever le 2 <20> la fin //TODO
|
||
dispose();
|
||
|
||
Thread t = new Thread(new ListUI2());
|
||
t.start();
|
||
}
|
||
|
||
else {
|
||
nameLabel.setText("Enter a valid username");
|
||
}
|
||
}
|
||
else {
|
||
nameLabel.setText("Username already taken");
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
}
|