IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

onglet avec une croix de fermeture


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 71
    Par défaut onglet avec une croix de fermeture
    bonjour,
    comment peut on faire un onglet fermable lorsqu'on clique sur une croix situee sur l'onglet

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Soit tu utilise la beta de java 1.6 et c'est prévu dedans, sinon :
    http://www.javaworld.com/javaworld/j...abbedpane.html

  3. #3
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Je ne sais plus où je l'ai récupéré, mais voici ce que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    import java.awt.Color;
    import java.awt.Component;
    import java.awt.Graphics;
    import java.awt.Rectangle;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
     
    import javax.swing.Icon;
    import javax.swing.JTabbedPane;
     
     
    /**
     * A JTabbedPane which has a close ('X') icon on each tab.
     * 
     * To add a tab, use the method addTab(String, Component)
     * 
     * To have an extra icon on each tab (e.g. like in JBuilder, showing the file
     * type) use the method addTab(String, Component, Icon). Only clicking the 'X'
     * closes the tab.
     */
    public class JTabbedPaneWithCloseIcons extends JTabbedPane implements MouseListener {
     
     
    	public JTabbedPaneWithCloseIcons() {
    		super();
    		addMouseListener(this);
    	}
     
    	public void addTab(String title, Component component, Icon extraIcon) {
    		super.addTab(title, new CloseTabIcon(extraIcon), component);
    	}
     
    	public void mouseClicked(MouseEvent e) {
    		int tabNumber = getUI().tabForCoordinate(this, e.getX(), e.getY());
    		if (tabNumber < 0)
    			return;
     
    		if (getIconAt(tabNumber) != null) {
    			Rectangle rect = ((CloseTabIcon) getIconAt(tabNumber)).getBounds();
    			if (rect.contains(e.getX(), e.getY())) {
    				this.removeTabAt(tabNumber);
    			}
    		}
    	}
     
    	public void mouseEntered(MouseEvent e) {
    	}
     
    	public void mouseExited(MouseEvent e) {
    	}
     
    	public void mousePressed(MouseEvent e) {
    	}
     
    	public void mouseReleased(MouseEvent e) {
    	}
    }
     
     
     
     
    /**
     * The class which generates the 'X' icon for the tabs. The constructor accepts
     * an icon which is extra to the 'X' icon, so you can have tabs like in
     * JBuilder. This value is null if no extra icon is required.
     */
    class CloseTabIcon implements Icon {
    	private int x_pos;
    	private int y_pos;
    	private int width;
    	private int height;
    	private Icon fileIcon;
     
     
    	public CloseTabIcon(Icon fileIcon) {
    		this.fileIcon = fileIcon;
    		width = 16;
    		height = 16;
    	}
     
    	public void paintIcon(Component c, Graphics g, int x, int y) {
    		this.x_pos = x;
    		this.y_pos = y;
     
    		Color col = g.getColor();
     
    		g.setColor(Color.black);
    		int y_p = y + 2;
    		g.drawLine(x + 1, y_p, x + 12, y_p);
    		g.drawLine(x + 1, y_p + 13, x + 12, y_p + 13);
    		g.drawLine(x, y_p + 1, x, y_p + 12);
    		g.drawLine(x + 13, y_p + 1, x + 13, y_p + 12);
    		g.drawLine(x + 3, y_p + 3, x + 10, y_p + 10);
    		g.drawLine(x + 3, y_p + 4, x + 9, y_p + 10);
    		g.drawLine(x + 4, y_p + 3, x + 10, y_p + 9);
    		g.drawLine(x + 10, y_p + 3, x + 3, y_p + 10);
    		g.drawLine(x + 10, y_p + 4, x + 4, y_p + 10);
    		g.drawLine(x + 9, y_p + 3, x + 3, y_p + 9);
    		g.setColor(col);
    		if (fileIcon != null) {
    			fileIcon.paintIcon(c, g, x + width, y_p);
    		}
    	}
     
    	public int getIconWidth() {
    		return width + (fileIcon != null ? fileIcon.getIconWidth() : 0);
    	}
     
    	public int getIconHeight() {
    		return height;
    	}
     
    	public Rectangle getBounds() {
    		return new Rectangle(x_pos, y_pos, width, height);
    	}
    }

Discussions similaires

  1. Flex 4.5 - FORMULAIRE avec une CROIX ROUGE
    Par infolivier dans le forum Flex
    Réponses: 1
    Dernier message: 05/12/2011, 22h52
  2. [XL-2007] Imprimer plusieurs onglets avec une seule requete
    Par Leithz dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/05/2011, 12h59
  3. Ajout d'une croix de fermeture à une dialogBox
    Par zinou57 dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 12/02/2010, 17h06
  4. Fermeture d'une Form avec la croix
    Par arbtec dans le forum C#
    Réponses: 2
    Dernier message: 14/10/2008, 09h25
  5. Panel avec une croix pour fermer
    Par Sacha999 dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 11/10/2008, 15h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo