modification background + serveur

This commit is contained in:
Elise Barnabe 2021-01-28 15:11:11 +01:00
parent f5b3031ec4
commit e38338000f
16 changed files with 143 additions and 90 deletions

BIN
chatGit/background.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,7 +1,7 @@
{
"serveur":{
"actif": 1,
"url": "http://localhost:8080/test/toto",
"url": "https://srv-gei-tomcat.insa-toulouse.fr/barnabeFoussats/toto",
"port": 8080
},
"config":{

View file

@ -174,7 +174,7 @@ public class Agent implements PropertyChangeListener{
public boolean connectInscription(String pseudo, String login) throws IOException, InterruptedException {
MessagePseudo msg_connexion = new MessagePseudo(this.localAddress, this.broadcast, this.user.getPort(), App.portDest, 0, "", this.user.getId());
BOut.send(msg_connexion, this.broadcast, App.portDest);
Thread.sleep(5000);
Thread.sleep(2000);
ArrayList<MessagePseudo> msg_recus = BIn.getListMessage();
for(int i =0; i<msg_recus.size(); i++) {
handleMessage(msg_recus.get(i));
@ -200,7 +200,7 @@ public class Agent implements PropertyChangeListener{
public boolean connectConnexion(String pseudo, String login) throws IOException, InterruptedException {
MessagePseudo msg_connexion = new MessagePseudo(this.localAddress, this.broadcast, this.user.getPort(), App.portDest, 0, "", this.user.getId());
BOut.send(msg_connexion, this.broadcast, App.portDest);
Thread.sleep(5000);
Thread.sleep(2000);
ArrayList<MessagePseudo> msg_recus = BIn.getListMessage();
for(int i =0; i<msg_recus.size(); i++) {
handleMessage(msg_recus.get(i));

View file

@ -47,13 +47,7 @@ public class FenetreInscription implements ActionListener {
panel = new JPanel(new GridLayout(7,1));
//Ajouter les elements
this.addWidgets();
//Set the default button.
//frame.getRootPane().setDefaultButton(inscription);
//frame.getRootPane().setDefaultButton(connexion);
//frame.setLayout(new BorderLayout());
//On ajoute le bouton au content pane de la JFrame
//frame.getContentPane().add(inscription, BorderLayout.CENTER);
//frame.getContentPane().add(connexion, BorderLayout.SOUTH);
frame.getRootPane().setDefaultButton(inscription);
//Ajouter le panel a la window
frame.getContentPane().add(panel, BorderLayout.CENTER);
//L'utilisateur ne pourra pas aggrandir la fenetre

View file

@ -4,14 +4,17 @@ import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.awt.Image;
import java.awt.SystemColor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
import java.io.IOException;
import java.util.Vector;
@ -53,7 +56,7 @@ public class FenetreMenu {
frame = new JFrame("Fenêtre menu");
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frame.setSize(new Dimension(100, 100));
frame.setSize(new Dimension(500, 800));
wa = new WindowAdapter(){
public void windowClosing(WindowEvent e){
@ -76,8 +79,20 @@ public class FenetreMenu {
//Creation d'un JPanel
panel = new JPanel(new GridLayout(3,1));
panel.setForeground(SystemColor.menuText);
panel.setOpaque(false);
// Ajouter tout les elements a la fenetre
this.addWidgets();
try {
final Image backgroundImage = javax.imageio.ImageIO.read(new File("background.jpg"));
frame.setContentPane(new JPanel(new BorderLayout()) {
@Override public void paintComponent(Graphics g) {
g.drawImage(backgroundImage, 0, 0, null);
}
});
} catch (IOException e) {
throw new RuntimeException(e);
}
// ajouter le panel a la fenetre
frame.getContentPane().add(panel, BorderLayout.CENTER);
// Afficher la fenetre
@ -95,18 +110,18 @@ public class FenetreMenu {
private void addWidgets() throws IOException {
jlabel = new JLabel(new ImageIcon("panda.png"), JLabel.CENTER);
texte = new JLabel("Bienvenue sur ce magnifique chat " + agent.getUser().getPseudo());
texte.setFont(new Font("Century Schoolbook", Font.PLAIN, 40));
texte.setHorizontalAlignment(SwingConstants.CENTER);
liste = new JLabel("Active users", JLabel.LEFT);
jlabel.setOpaque(false);
texte = new JLabel();
texte.setOpaque(false);
texte.setFont(new Font("Century Schoolbook", Font.PLAIN, 60));
texte.setText("<html><font color = #F7F9F9>Bienvenue sur le tchat</font></html>");
texte.setHorizontalAlignment(SwingConstants.CENTER);
liste = new JLabel("Active users", JLabel.LEFT);
liste.setOpaque(false);
JMenu contenu = new JMenu("Actions");
contenu.setForeground(Color.BLUE);
contenu.setHorizontalAlignment(SwingConstants.CENTER);
JButton refresh = new JButton("Refresh");
refresh.setForeground(Color.GRAY);
refresh.setHorizontalAlignment(SwingConstants.CENTER);
//JMenuItem usersActifs = new JMenuItem("Active users");
JMenuItem modifierPseudo = new JMenuItem("Modify your pseudo");
@ -118,7 +133,6 @@ public class FenetreMenu {
menu.add(contenu);
menu.add(refresh);
frame.setJMenuBar(menu);
/*liste déroulante des utilsateurs actifs,
@ -155,33 +169,7 @@ public class FenetreMenu {
}
});
/*actions pour refresh*/
/* refresh.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String users = agent.getList().actifUsers();
for(String pseudo : users.split("\n")) {
if (!v.contains(pseudo)) {
v.add(pseudo);
}
}
JComboBox cb = new JComboBox(v);
cb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
Object selected = cb.getSelectedItem();
int idDest = agent.getDb().getIdFromPseudo(selected.toString());
try {
agent.createChat(idDest, selected.toString());
} catch (IOException e) {
System.out.println("Creation tcp chat impossible");
e.printStackTrace();
}
new FenetreChat(agent, selected.toString());
}
});
}});*/
frame.getContentPane().add(refresh, BorderLayout.NORTH);
panel.add(BorderLayout.CENTER, jlabel);
panel.add(BorderLayout.SOUTH , texte );
panel.add(BorderLayout.WEST, cb);
@ -190,50 +178,14 @@ public class FenetreMenu {
/*actions pour modifier le pseudo*/
modifierPseudo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JLabel Text = new JLabel("Enter your new pseudo", SwingConstants.CENTER);
JTextField field = new JTextField(2);
JButton cancel = new JButton("Cancel");
cancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
frame.dispose();
try {
new FenetreMenu(agent);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}});
JButton ok = new JButton("Continue");
frame.getRootPane().setDefaultButton(ok);
ok.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String newPseudo = field.getText();
try {
if(agent.changerPseudo(newPseudo)) {
JOptionPane.showMessageDialog(frame, "Your new pseudo is "+newPseudo);
frame.dispose();
new FenetreMenu(agent);
}else {
JOptionPane.showMessageDialog(frame, "Pseudo already, use choose another one");
}
} catch (HeadlessException | IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
};
}
});
JPanel panel1 = new JPanel(new GridLayout(4,1));
panel1.add(cancel);
panel1.add(Text);
panel1.add(field);
panel1.add(ok);
frame.getContentPane().removeAll();
frame.getContentPane().add(panel1,BorderLayout.CENTER);
frame.setVisible(true);
}
});
modifierPseudo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
frame.dispose();
new FenetreModifPseudo(agent);
}
});
deco.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

View file

@ -0,0 +1,107 @@
package gui;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.JOptionPane;
import java.io.IOException;
import controller.*;
public class FenetreModifPseudo implements ActionListener {
JFrame frame;
JPanel panel;
JTextField pseudofield;
JLabel Text;
JButton ok;
JButton Cancel;
Agent agent;
/*
* Constructeur d'une fenetre d'affichage pour la connexion d'un utilisateur.
* Cette fenetre sera munie d'un bouton de connexion et d'une zone de saisie de pseudo.
*/
public FenetreModifPseudo(Agent agent) {
this.agent = agent;
//creer une instance JFrame
frame = new JFrame("Modification pseudo");
//sortir quand lutilisateur ferme le frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// fixer les dimensions de la fenetre
frame.setSize(new Dimension(120, 40));
//Creer le JPanel
panel = new JPanel(new GridLayout(4,1));
//Ajouter les elements
this.addWidgets();
//Set the default button.
frame.getRootPane().setDefaultButton(ok);
//Ajouter le panel a la window
frame.getContentPane().add(panel, BorderLayout.CENTER);
//L'utilisateur ne pourra pas aggrandir la fenetre
this.frame.setResizable(false);
//Afficher la fenetre
frame.pack();
frame.setVisible(true);
}
private void addWidgets() {
// Créer Zone d'insertion de texte pour le pseudo
this.pseudofield = new JTextField(2);
// creation d'un label qui contiendra un txt au centre
this.Text = new JLabel("Type your new pseudo", SwingConstants.CENTER);
//Ajout d'un bouton Connexion
this.ok = new JButton("Continue");
this.Cancel = new JButton("Cancel");
this.ok.addActionListener(this);
this.Cancel.addActionListener(this);
//On associe au bouton Connexion des actions a realiser
this.ok.addActionListener(this);
// On ajouter les differents elements au panel
panel.add(pseudofield);
panel.add(Text);
panel.add(ok);
panel.add(Cancel);
//ajouter un effet de bord transparent au composant Jlabel
Text.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
}
public void actionPerformed(ActionEvent event) {
Object source = event.getSource();
if(source == ok){
String newPseudo = pseudofield.getText();
try {
if(agent.changerPseudo(newPseudo)) {
JOptionPane.showMessageDialog(frame, "Your new pseudo is "+newPseudo);
frame.dispose();
new FenetreMenu(agent);
}else {
JOptionPane.showMessageDialog(frame, "Pseudo already, use choose another one");
}
} catch (HeadlessException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
};
}else if(source == Cancel) {
frame.dispose();
try {
new FenetreMenu(agent);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}