CCB Premier Import

This commit is contained in:
Christian Cunat-Brulé
2018-07-23 10:52:48 +02:00
commit f55475a23f
765 changed files with 209793 additions and 0 deletions

112
ComboBox/src/Fenetre.java Normal file
View File

@@ -0,0 +1,112 @@
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Fenetre extends JFrame{
private Panneau pan = new Panneau();
private JButton bouton = new JButton("Go");
private JButton bouton2 = new JButton("Stop");
private JPanel container = new JPanel();
private JLabel label = new JLabel("Choix de la forme");
private int compteur = 0;
private boolean animated = true;
private boolean backX, backY;
private int x, y;
private Thread t;
private JComboBox combo = new JComboBox();
public Fenetre(){
this.setTitle("Animation");
this.setSize(300, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
container.setBackground(Color.white);
container.setLayout(new BorderLayout());
container.add(pan, BorderLayout.CENTER);
bouton.addActionListener(new BoutonListener());
bouton2.addActionListener(new Bouton2Listener());
bouton2.setEnabled(false);
JPanel south = new JPanel();
south.add(bouton);
south.add(bouton2);
container.add(south, BorderLayout.SOUTH);
combo.addItem("ROND");
combo.addItem("CARRE");
combo.addItem("TRIANGLE");
combo.addItem("ETOILE");
combo.addActionListener(new FormeListener());
JPanel top = new JPanel();
top.add(label);
top.add(combo);
container.add(top, BorderLayout.NORTH);
this.setContentPane(container);
this.setVisible(true);
}
private void go(){
x = pan.getPosX();
y = pan.getPosY();
while(this.animated){
if(x < 1) backX = false;
if(x > pan.getWidth() - 50) backX = true;
if(y < 1) backY = false;
if(y > pan.getHeight() - 50) backY = true;
if(!backX) pan.setPosX(++x);
else pan.setPosX(--x);
if(!backY) pan.setPosY(++y);
else pan.setPosY(--y);
pan.repaint();
try {
Thread.sleep(3);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
//Classe <20>coutant notre bouton
public class BoutonListener implements ActionListener{
public void actionPerformed(ActionEvent arg0) {
animated = true;
t = new Thread(new PlayAnimation());
t.start();
bouton.setEnabled(false);
bouton2.setEnabled(true);
}
}
class Bouton2Listener implements ActionListener{
public void actionPerformed(ActionEvent e) {
animated = false;
bouton.setEnabled(true);
bouton2.setEnabled(false);
}
}
class PlayAnimation implements Runnable{
public void run() {
go();
}
}
class FormeListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
//La m<>thode retourne un Object puisque nous passons des Object dans une liste
//Il faut donc utiliser la m<>thode toString() pour retourner un String (ou utiliser un cast)
pan.setForme(combo.getSelectedItem().toString());
}
}
}

90
ComboBox/src/Panneau.java Normal file
View File

@@ -0,0 +1,90 @@
import java.awt.Color;
import java.awt.Font;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;
public class Panneau extends JPanel {
private int posX = -50;
private int posY = -50;
private String forme = "ROND";
public void paintComponent(Graphics g){
//On choisit une couleur de fond pour le rectangle
g.setColor(Color.white);
//On le dessine de sorte qu'il occupe toute la surface
g.fillRect(0, 0, this.getWidth(), this.getHeight());
//On red<65>finit une couleur pour le rond
g.setColor(Color.red);
//On d<>l<EFBFBD>gue la m<>thode de dessin <20> la m<>thode draw()
draw(g);
}
private void draw(Graphics g){
if(this.forme.equals("ROND")){
g.fillOval(posX, posY, 50, 50);
}
if(this.forme.equals("CARRE")){
g.fillRect(posX, posY, 50, 50);
}
if(this.forme.equals("TRIANGLE")){
//Calcul des sommets
//Le sommet 1 se situe <20> la moiti<74> du c<>t<EFBFBD> sup<75>rieur du carr<72>
int s1X = posX + 25;
int s1Y = posY;
//Le sommet 2 se situe en bas <20> droite
int s2X = posX + 50;
int s2Y = posY + 50;
//Le sommet 3 se situe en bas <20> gauche
int s3X = posX;
int s3Y = posY + 50;
//Nous cr<63>ons deux tableaux de coordonn<6E>es
int[] ptsX = {s1X, s2X, s3X};
int[] ptsY = {s1Y, s2Y, s3Y};
//Nous utilisons la m<>thode fillPolygon()
g.fillPolygon(ptsX, ptsY, 3);
}
if(this.forme.equals("ETOILE")){
//Pour l'<27>toile, on se contente de tracer des lignes dans le carr<72>
//correspondant <20> peu pr<70>s <20> une <20>toile...
//Mais ce code peut <20>tre am<61>lior<6F> !
int s1X = posX + 25;
int s1Y = posY;
int s2X = posX + 50;
int s2Y = posY + 50;
g.drawLine(s1X, s1Y, s2X, s2Y);
int s3X = posX;
int s3Y = posY + 17;
g.drawLine(s2X, s2Y, s3X, s3Y);
int s4X = posX + 50;
int s4Y = posY + 17;
g.drawLine(s3X, s3Y, s4X, s4Y);
int s5X = posX;
int s5Y = posY + 50;
g.drawLine(s4X, s4Y, s5X, s5Y);
g.drawLine(s5X, s5Y, s1X, s1Y);
}
}
public void setForme(String form){
this.forme = form;
}
public int getPosX() {
return posX;
}
public void setPosX(int posX) {
this.posX = posX;
}
public int getPosY() {
return posY;
}
public void setPosY(int posY) {
this.posY = posY;
}
}