1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
| package affichage_compet;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class WindowParam extends JFrame implements ActionListener
{
//definition des couleurr avec valeur d'origine blanche
private String p_nom,p_club,nom_compet;//police de caractere et nom de la compet
private Color couleur_text=Color.white,couleur_ligne=Color.white,couleur_com=Color.white;
private JTextField jtnom_compet;
private JTextField text_chemin,text_back;
private JButton chemin,background,go,arret;
private JButton couleur1;//couleur correspondante au texte
private JButton couleur2;//couleur correspondante au ligne
private JButton couleur3;//couleur correspondante au commentaire
private JPanel pcouleur1,pcouleur2,pcouleur3;
private GetData recup_data;
private WindowAffich frame_affichage;
private Thread ta,tr;
private Image img ;//image de fond d'ecran de l'affichage
private int tps_rafraichissement;//definie le temps de rafraichssement de l'affichage
private String pathname_compet;//chemin du repertoire de travail
public WindowParam()
{
//initialisation des parametres d'affichage
//ouverture de limage de fond d'ecran
Toolkit tk = Toolkit.getDefaultToolkit();
img = tk.getImage("back.jpg");
//initialisation des polices de caracteres
p_nom= "Albertus MT Lt";
p_club= "Monotype Corsiva";
nom_compet="";
tps_rafraichissement=5;
//*************************************************************************//
//*********creation de la fenetre d'affichage******************************//
//*************************************************************************//
//creation des bouttons
background= new JButton("Charger");
chemin= new JButton("Charger");
couleur1= new JButton("choisir");
couleur2= new JButton("choisir");
couleur3= new JButton("choisir");
go= new JButton("affichage");
arret= new JButton("stop");
//panel contenant les boutons go et arret
JPanel panel_aff= new JPanel();
panel_aff.add(go);
panel_aff.add(arret);
//panel contenant les infos sur le nom de la compet
JPanel panel_nomcompet= new JPanel();
jtnom_compet = new JTextField("nom compet",30);
panel_nomcompet.add(new JLabel("nom de la competition à afficher"));
panel_nomcompet.add(jtnom_compet);
//panel contenant les infos du fond d'ecran
JPanel panel_back= new JPanel();
panel_back.add(new JLabel("choix du fond d'écran"));
text_back = new JTextField("votre fond d'ecran",25);
panel_back.add(text_back);
//panel contenant les infos du repertoire courant
JPanel panel_chemin= new JPanel();
panel_chemin.add(new JLabel("repertoire de travail"));
text_chemin = new JTextField("votre repertoire de travail",25);
panel_chemin.add(text_chemin);
//panel contenant les infos sur couleur 1
JPanel panel_couleur1= new JPanel();
panel_couleur1.add(new JLabel("couleur du texte"));
JPanel pcouleur1 = new JPanel();
pcouleur1.setBackground(couleur_text);
panel_couleur1.add(pcouleur1);
//panel contenant les infos sur couleur 2
JPanel panel_couleur2= new JPanel();
panel_couleur2.add(new JLabel("couleur des lignes"));
JPanel pcouleur2 = new JPanel();
pcouleur2.setBackground(couleur_ligne);
panel_couleur2.add(pcouleur2);
//panel contenant les infos sur couleur 1
JPanel panel_couleur3= new JPanel();
panel_couleur3.add(new JLabel("couleur des commentaires"));
JPanel pcouleur3 = new JPanel();
pcouleur3.setBackground(couleur_com);
panel_couleur3.add(pcouleur3);
JPanel panel_b= new JPanel();
panel_b.setLayout(new GridLayout(5,1));
panel_b.add(panel_chemin);
panel_b.add(chemin);
panel_b.add(panel_back);
panel_b.add(background);
panel_b.add(panel_couleur1);
panel_b.add(couleur1);
panel_b.add(panel_couleur2);
panel_b.add(couleur2);
panel_b.add(panel_couleur3);
panel_b.add(couleur3);
//panel geral de la fenetre
JPanel panel_general = new JPanel();
panel_general.setLayout(new GridLayout(3,1));
panel_general.add(panel_nomcompet);
panel_general.add(panel_b);
panel_general.add(panel_aff);
//declaration des objets pouvant admettre un evenement.
chemin.addActionListener(this);
background.addActionListener(this);
couleur1.addActionListener(this);
couleur2.addActionListener(this);
couleur3.addActionListener(this);
arret.addActionListener(this);
go.addActionListener(this);
this.getContentPane().add(panel_general);
//*************************************************************************//
//*********creation de la recuperation des données*************************//
//*************************************************************************//
recup_data = new GetData();
tr=new Thread(recup_data);
//*************************************************************************//
//*********creation de la fenetre d'affichage des resultats****************//
//*************************************************************************//
//calcul de la dimension de l ecran
Dimension tailleEcran = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
int hauteur_ecran = (int)tailleEcran.getHeight();
int largeur_ecran = (int)tailleEcran.getWidth();
//lance l'affichage des données de la competition
frame_affichage = new WindowAffich(hauteur_ecran, largeur_ecran,recup_data);
frame_affichage.setLocation(0,0);
frame_affichage.setSize(largeur_ecran,hauteur_ecran);
frame_affichage.setUndecorated(true);//remove contour frame
ta=new Thread(frame_affichage);
}
//gestion des actions sur la fenetre de definition des parametres d'affichage.
public void actionPerformed(ActionEvent e)
{
JButton clicked_button = (JButton) e.getSource();
if( clicked_button== couleur1 )
{//choix de la couleur de texte
couleur_text = JColorChooser.showDialog(null,"choix de la couleur du texte affiché",couleur_text);
}
else if( clicked_button== couleur2 )
{//choix de la couleur des lignes
couleur_ligne = JColorChooser.showDialog(null,"choix de la couleur des lignes affichées",couleur_text);
}
else if( clicked_button== couleur3 )
{//choix de la couleur des commentaires
couleur_com = JColorChooser.showDialog(null,"choix de la couleur des commentaires affichés",couleur_text);
}
else if( clicked_button== go )
{//lancer affichage compet
this.affichage();
}
else if( clicked_button== arret )
{//lancer affichage compet
this.arret();
}
else if( clicked_button== background)
{//recherche du background
//creation du filtre de choix de fichier
MonFiltre filtre = new MonFiltre(new String[]{"gif", "jpg","jpeg"},"les fichiers image (*.gif,*.jpeg)");
JFileChooser choix = new JFileChooser();
choix.addChoosableFileFilter(filtre);
int retour = choix.showOpenDialog(this);
if(retour == JFileChooser.APPROVE_OPTION)
{
// un fichier a été choisi ( sortie par OK)
//ouverture de limage de fond d'ecran
Toolkit tk = Toolkit.getDefaultToolkit();
img = tk.getImage(choix.getSelectedFile().getAbsolutePath());
text_back.setText(choix.getSelectedFile().getName());
}
}
else if( clicked_button== chemin)
{//recherche du background
//creation du filtre de choix de fichier
MonFiltre filtre_compet = new MonFiltre(new String[]{"egw"},"les fichiers engarde");
JFileChooser choix = new JFileChooser();
choix.addChoosableFileFilter(filtre_compet);
int retour = choix.showOpenDialog(this);
if(retour == JFileChooser.APPROVE_OPTION)
{
// un fichier a été choisi ( sortie par OK)
//recuperation du repertoire courant
pathname_compet=choix.getSelectedFile().getAbsolutePath();
int index;
index=pathname_compet.indexOf("competition.egw");
pathname_compet=pathname_compet.substring(0,index);
text_chemin.setText(pathname_compet);
recup_data.getpath(pathname_compet);
}
}
}
//lancement del'affichage de la competition
private void affichage()
{
nom_compet=jtnom_compet.getText();
//chargement de parametre d'affichage
frame_affichage.update_param(pathname_compet,tps_rafraichissement,couleur_ligne,couleur_text,couleur_com,img,p_nom,p_club,nom_compet);
//affichage de la fenetre d'affichage
frame_affichage.setVisible(true);
//mise en route de la thread gerant l'affichage
ta.start();
tr.start();
}
//arret de l'affichage compet
//arret de la thread et rend non visible la fenetre d'affichage
private void arret()
{
//fenetre affichage invisible
frame_affichage.setVisible(false);
//arret de la thread
ta.interrupt();
tr.interrupt();
}
} |
Partager