All pastes #456423 Raw Edit

Something

public text v1 · immutable
#456423 ·published 2007-04-24 20:15 UTC
rendered paste body
/*
 *
 * Component.java
 *
 * Created on 21 avril 2007, 15:47
 *
 * Permet la création d'un composant dans l'IHM
 * Etend javax.swing.JPanel pour créer un panel "composant"
 */

package graphique;
import java.awt.image.ImageObserver;
import java.awt.image.ImageProducer;
import java.text.AttributedCharacterIterator;
import org.eclipse.swt.layout.FillLayout;
import simulateur.*;
import javax.swing.*;
import java.awt.*;
import org.eclipse.swt.*;
import java.lang.Math;



/**
 *
 * @author maxence
 */
public class Component extends javax.swing.JPanel {
    private GATE m_gate;            //La porte
    private int m_nb_input;             //Le nombre d'entrée du composant
    
    /** Creates a new instance of Component */
    public Component(String comp,int nb_input) {
        super();

        
        //Création de la porte
        if (comp == "and"){ 
            m_gate = new AND_GATE();             
        } else if (comp == "or"){ 
            m_gate = new OR_GATE();
        } else if (comp == "nand"){ 
            m_gate = new NAND_GATE();    
        } else if (comp == "not"){ 
            m_gate = new NOT_GATE();     
        } else {
            m_gate = null;
        }
        m_nb_input = nb_input;
        create_panel();
        doLayout();

    }
    
    /**
     * create_panel : crée le panel pour le composant
     */
    private void create_panel(){
        //Taille du panel 
        this.setLayout(null);
        setPreferredSize(new Dimension  (70,40)); 
        
//        this.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
        this.setBackground(new Color (255,50,25));
//        
        
        this.setLocation(60,60);
        setOpaque(true);
        //1) Ajout de l'image du composant
       
        //2) Ajout des entrées/sorties
        //On dessine  des boutons pour chaque entrée / sortie
        //La sortie
        
         JLabel output = new JLabel("");
         output.setSize(6,6);
         output.setBackground(new Color(255,51,51));
         output.setForeground(new Color(15,15,155));
         output.setOpaque(true);
         
         output.setLocation(this.getPreferredSize().width-6,java.lang.Math.round(getPreferredSize().height/2)-3);
         
         //Les entrées
         //Si il y a une seule entrée, on la place au milieu, sinon à 1/3
         JLabel input1 = new JLabel("");
         input1.setSize(6,6);
         input1.setBackground(new Color(255,51,51));
         input1.setForeground(new Color(15,15,155));
         input1.setOpaque(true);
         
         
         if (m_nb_input == 1){
         input1.setLocation(0,java.lang.Math.round(getPreferredSize().height/2)-3);
         } else { //On rajoute la deuxième entrée
         input1.setLocation(0,java.lang.Math.round(getPreferredSize().height/3)-3);             
         JLabel input2 = new JLabel("");
         input2.setSize(6,6);
         input2.setBackground(new Color(255,51,51));
         input2.setForeground(new Color(15,15,155));
         input2.setOpaque(true);
         input1.setLocation(0,java.lang.Math.round(2*getPreferredSize().height/3)-3);             
         add(input2);
         }
         
         
         //add(new JButton("prout"));
         add(input1);
         add(output);
       
         
//         this.add("North", new Button(" bouton haut "));
//this.add("South", new Button(" bouton bas "));
//this.add("West", new Button(" bouton gauche "));
//this.add("East", new Button(" bouton droite "));
//this.add("Center", new Button(" bouton milieu "));

         
         

         
    }
    
}