Phase 5
This commit is contained in:
parent
7dd79ff3b1
commit
d948887a72
3 changed files with 79 additions and 32 deletions
|
|
@ -1,14 +1,21 @@
|
||||||
package controleur;
|
package controleur;
|
||||||
|
import outils.connexion.AsyncResponse;
|
||||||
|
import outils.connexion.ClientSocket;
|
||||||
|
import outils.connexion.Connection;
|
||||||
|
import outils.connexion.ServeurSocket;
|
||||||
|
import vue.Arene;
|
||||||
|
import vue.ChoixJoueur;
|
||||||
import vue.EntreeJeu;
|
import vue.EntreeJeu;
|
||||||
|
|
||||||
public class Controle {
|
public class Controle implements AsyncResponse {
|
||||||
private EntreeJeu frmEntreeJeu ;
|
private EntreeJeu frmEntreeJeu ;
|
||||||
|
public String type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructeur
|
* Constructeur
|
||||||
*/
|
*/
|
||||||
private Controle() {
|
private Controle() {
|
||||||
this.frmEntreeJeu = new EntreeJeu() ;
|
this.frmEntreeJeu = new EntreeJeu(this) ;
|
||||||
this.frmEntreeJeu.setVisible(true);
|
this.frmEntreeJeu.setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -17,4 +24,41 @@ public class Controle {
|
||||||
new Controle();
|
new Controle();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void evenementEntreeJeu(String info) {
|
||||||
|
//
|
||||||
|
if(info.contains("serveur")) {
|
||||||
|
System.out.println("srv");
|
||||||
|
type = "serveur";
|
||||||
|
//
|
||||||
|
new ServeurSocket(this, 6666);
|
||||||
|
|
||||||
|
Arene areneJeu = new Arene();
|
||||||
|
areneJeu.setVisible(true);
|
||||||
|
frmEntreeJeu.dispose();
|
||||||
|
}else {
|
||||||
|
System.out.println("ip");
|
||||||
|
type = "client";
|
||||||
|
//
|
||||||
|
new ClientSocket(this, info, 6666);
|
||||||
|
|
||||||
|
|
||||||
|
//frmEntreeJeu.dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void reception(Connection connection, String ordre, Object info) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
switch (ordre){
|
||||||
|
case "connexion":
|
||||||
|
if(type.equals("client")) {
|
||||||
|
frmEntreeJeu.dispose();
|
||||||
|
Arene frmArene = new Arene();
|
||||||
|
ChoixJoueur frmChoixJoueur = new ChoixJoueur();
|
||||||
|
frmChoixJoueur.setVisible(true);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,26 +13,26 @@ import javax.swing.JOptionPane;
|
||||||
*/
|
*/
|
||||||
public class ClientSocket {
|
public class ClientSocket {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructeur : crée le socket de type client pour se connecter à un serveur (avec son ip et port d'écoute)
|
* Constructeur : crée le socket de type client pour se connecter à un serveur (avec son ip et port d'écoute)
|
||||||
* @param delegate instance de la classe vers laquelle il faut transférer les réponses
|
* @param delegate instance de la classe vers laquelle il faut transférer les réponses
|
||||||
* @param ip adresse IP du serveur
|
* @param ip adresse IP du serveur
|
||||||
* @param port numéro port d'écoute du serveur
|
* @param port numéro port d'écoute du serveur
|
||||||
*/
|
*/
|
||||||
public ClientSocket (AsyncResponse delegate, String ip, int port) {
|
public ClientSocket (AsyncResponse delegate, String ip, int port) {
|
||||||
try {
|
try {
|
||||||
Socket socket = new Socket(ip, port);
|
Socket socket = new Socket(ip, port);
|
||||||
System.out.println("connexion serveur réussie");
|
System.out.println("connexion serveur réussie");
|
||||||
// la connexion ne peut se faire que si un objet delegate existe (pour récupérer la réponse)
|
// la connexion ne peut se faire que si un objet delegate existe (pour récupérer la réponse)
|
||||||
if(delegate != null) {
|
if(delegate != null) {
|
||||||
// création d'une connexion pour ce client, pour la communication avec le serveur (envoi et réception d'informations)
|
// création d'une connexion pour ce client, pour la communication avec le serveur (envoi et réception d'informations)
|
||||||
new Connection(socket, delegate) ;
|
new Connection(socket, delegate) ;
|
||||||
}
|
}
|
||||||
} catch (UnknownHostException e) {
|
} catch (UnknownHostException e) {
|
||||||
JOptionPane.showMessageDialog(null, "serveur non disponible");
|
JOptionPane.showMessageDialog(null, "serveur non disponible");
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
JOptionPane.showMessageDialog(null, "IP incorrecte");
|
JOptionPane.showMessageDialog(null, "IP incorrecte");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,9 @@ import java.awt.EventQueue;
|
||||||
import javax.swing.JFrame;
|
import javax.swing.JFrame;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
import javax.swing.border.EmptyBorder;
|
import javax.swing.border.EmptyBorder;
|
||||||
|
|
||||||
|
import controleur.Controle;
|
||||||
|
|
||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JTextField;
|
import javax.swing.JTextField;
|
||||||
import java.awt.Font;
|
import java.awt.Font;
|
||||||
|
|
@ -16,6 +19,7 @@ public class EntreeJeu extends JFrame {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
private JPanel contentPane;
|
private JPanel contentPane;
|
||||||
private JTextField textField;
|
private JTextField textField;
|
||||||
|
private Controle control;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Launch the application.
|
* Launch the application.
|
||||||
|
|
@ -25,7 +29,7 @@ public class EntreeJeu extends JFrame {
|
||||||
/**
|
/**
|
||||||
* Create the frame.
|
* Create the frame.
|
||||||
*/
|
*/
|
||||||
public EntreeJeu() {
|
public EntreeJeu(Controle ctrl) {
|
||||||
setTitle("Urban Marginal");
|
setTitle("Urban Marginal");
|
||||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
setBounds(100, 100, 330, 160);
|
setBounds(100, 100, 330, 160);
|
||||||
|
|
@ -44,9 +48,7 @@ public class EntreeJeu extends JFrame {
|
||||||
|
|
||||||
btnNewButton.addActionListener(new ActionListener() {
|
btnNewButton.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
Arene areneJeu = new Arene();
|
ctrl.evenementEntreeJeu("serveur");
|
||||||
areneJeu.setVisible(true);
|
|
||||||
EntreeJeu.this.dispose();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
btnNewButton.setFont(new Font("Tahoma", Font.BOLD, 12));
|
btnNewButton.setFont(new Font("Tahoma", Font.BOLD, 12));
|
||||||
|
|
@ -76,9 +78,7 @@ public class EntreeJeu extends JFrame {
|
||||||
JButton btnNewButton_1 = new JButton("Connect");
|
JButton btnNewButton_1 = new JButton("Connect");
|
||||||
btnNewButton_1.addActionListener(new ActionListener() {
|
btnNewButton_1.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
ChoixJoueur choixJoueur = new ChoixJoueur();
|
ctrl.evenementEntreeJeu(textField.getText());
|
||||||
choixJoueur.setVisible(true);
|
|
||||||
EntreeJeu.this.dispose();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
btnNewButton_1.setFont(new Font("Tahoma", Font.BOLD, 12));
|
btnNewButton_1.setFont(new Font("Tahoma", Font.BOLD, 12));
|
||||||
|
|
@ -94,5 +94,8 @@ public class EntreeJeu extends JFrame {
|
||||||
btnNewButton_2.setFont(new Font("Tahoma", Font.BOLD, 12));
|
btnNewButton_2.setFont(new Font("Tahoma", Font.BOLD, 12));
|
||||||
btnNewButton_2.setBounds(211, 91, 89, 23);
|
btnNewButton_2.setBounds(211, 91, 89, 23);
|
||||||
contentPane.add(btnNewButton_2);
|
contentPane.add(btnNewButton_2);
|
||||||
|
|
||||||
|
control = ctrl;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue