9
votes

Jtabbedpane personnaliser l'onglet look

Je veux personnaliser le look des onglets dans Jtabbedpane.
Je tiens à partir du comportement le plus simple et le plus simple: pas de frontières, couleur unie.
Le problème est qu'un non-reproché reste toujours: les onglets se chevauchent de marge de marge.

Entrez la description de l'image Ici

Vous voyez que puisque le deuxième onglet est sélectionné, il est" amené à l'avant ". Ceci est réalisé par une légère recouvrement de marge. Y a-t-il un moyen (non délicat) de désactiver ce comportement?

Code simple, testable (juste corriger les importations): xxx

}


0 commentaires

4 Réponses :


4
votes

Correction correcte serait d'implémenter Look & Senteur personnalisé uniquement. Mais si vous voulez jouer avec xxxtabbedpaneui , peut-être peut-être Ce message peut vous aider avec ça.

pour Nimbus sera préférable de vérifier AEphyr Dépôt de code


3 commentaires

J'ai commencé à partir de ce post. Mais dans cette implémentation de l'assurance-chômage, il n'y a que des méthodes de PaintXXX et de CalculateTabwidth et de CalculateTabheight et non d'onglets. J'ai donc appris que la logique de placement d'onglets doit être contenue ailleurs.


Qu'est-ce que Pas d'onglet PLACEMENT Vous pouvez peindre cela à partir de la (s) frontière (s) supérieure (s) ... au bas, onglet Pacer est sur le dessus?


Désolé, mkorbel, je ne comprends pas. Pourriez-vous paraphraser?



1
votes

Vous pouvez remplacer PaintContentBorderTopEdge dans MyTabbedPaneui afin qu'il ne pense pas que les onglets sont sélectionnés. Ce n'est pas une jolie solution, mais le piratage des cours d'interface utilisateur se prête rarement à un de mon expérience :) xxx


0 commentaires

2
votes

première solution (partielle). J'ai localisé le code "positionnement". de
C'est la méthode CalculateTabrects Code> dans TabbedPanelayOUT CODE>, une classe intérieure de BasicaBbedpanui. La méthode est extrêmement complexe, mais la bonne nouvelle est que la partie qui "augmente devant" l'onglet est bien commentée et isolée dans sa propre méthode excédable! C'est padselectedtab code>.
de
Créez une classe qui ne fait que pour augmenter le composant est aussi simple que:

@Override
    protected LayoutManager createLayoutManager() {
        //return super.createLayoutManager();
         return new MyTabbedPaneLayout();
    }


0 commentaires

2
votes

Vous pouvez mettre des balises HTML dans le premier paramètre comme suit:

myjtabbedpane.addtab ("

Test ", nouvel JPanel ());


0 commentaires