Package memory.chants

Source Code of memory.chants.BordureDouble

package memory.chants;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
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.JPanel;
import javax.swing.border.Border;
import javax.swing.border.CompoundBorder;
import javax.swing.border.TitledBorder;

/**
* Une bordure composée de deux bordures :
* une première bordure extérieure est une cadre noir avec un texte en haut à gauche
* une deuxième bordure n'a pas de cadre mais comporte en bas au centre un autre texte.
* @author Patrice
*
*/
public class BordureDouble extends CompoundBorder
{
  //les titres des bordures
  private String titreHaut, titreBas;
  //les bordures
  private TitledBorder bordureHaut, bordureBas;
  //le cadre extérieur
  private static Border cadre = BorderFactory.createLineBorder(Color.black);
  //la bordure sans cadre
  private static Border vide = BorderFactory.createEmptyBorder();
  //la police pour écrire le nom de l'oiseau
  private static Font policeTitreHaut = new Font("Dialog",Font.BOLD,12);
  private static Font policeTitreBas = new Font("Dialog", Font.ITALIC + Font.BOLD,12);
 
 
 
  /**
   * un constructeur avec deux titres
   *
   * @param args
   */
  public BordureDouble(String t1, String t2)
  {
    //la bordure extérieure avec le texte en haut
    titreHaut = t1;
   
    bordureHaut = BorderFactory.createTitledBorder(cadre,t1);
        bordureHaut.setTitleJustification(TitledBorder.LEFT);
        bordureHaut.setTitleFont(policeTitreHaut);
        bordureHaut.setTitleColor(Color.BLACK);
        outsideBorder = bordureHaut;
       
        //la bordure intérieure avec le texte
    titreBas = t2;
        bordureBas = BorderFactory.createTitledBorder(vide,t2);
        //... en bas
        bordureBas.setTitlePosition(TitledBorder.BOTTOM);
        //... droite
        bordureBas.setTitleJustification(TitledBorder.RIGHT);
        bordureBas.setTitleColor(Color.BLACK);
        bordureBas.setTitleFont(policeTitreBas);
        insideBorder = bordureBas;
  }
 

 
  /**
   * @return the titreHaut
   */
  public String getTitreHaut()
  {
    return titreHaut;
  }
  /**
   * @param titreHaut the titreHaut to set
   */
  public void setTitreHaut(String titreHaut)
  {
    this.titreHaut = titreHaut;
    bordureHaut.setTitle(titreHaut);
  }



  /**
   * @return the titreBas
   */
  public String getTitreBas()
  {
    return titreBas;
  }



  /**
   * @param titreBas the titreBas to set
   */
  public void setTitreBas(String titreBas)
  {
    this.titreBas = titreBas;
    bordureBas.setTitle(titreBas);
  }



  public static void main(String[] args)
  {
    JFrame fenetre = new JFrame("test de bordure double");
    fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel panneau = new JPanel();
    panneau.setBackground(Color.LIGHT_GRAY);
    BordureDouble bd = new BordureDouble("Essai","pour voir");
    panneau.setBorder(bd);
    panneau.setPreferredSize(new Dimension(600,400));
    JButton bouton = new JButton("CLIC");
    bouton.addActionListener(new ActionListener()
    {
      @Override
      public void actionPerformed(ActionEvent e)
      {
        JPanel p = (JPanel) ((JButton)e.getSource()).getParent();
        BordureDouble bd = (BordureDouble) p.getBorder();
        bd.setTitreHaut(bd.getTitreHaut().equals("pair") ? "impair" : "pair");
        bd.setTitreBas(bd.getTitreBas().equals("une fois") ? "deux fois" : "une fois");
        p.repaint();
       
      }});
    panneau.add(bouton);
    fenetre.add(panneau);
    fenetre.pack();
    fenetre.setVisible(true);
  }

}
TOP

Related Classes of memory.chants.BordureDouble

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.