2017-09-26 6 views
0

J'ai une question concernant ctabfolders dans eclipse rcp. J'ai créé une application RCP e4 avec une fenêtre comprenant un conteneur de pièces de pile, qui contient une pile. cette pile contient 1 partie. dans cette partie, il y a un ctabfolder et un ctabitem.arrondi CTabFolder depuis le début de l'application

quand je lance l'application via le fichier produit, je vois ceci: enter image description here

il y a 2 problèmes: 1. Le partCTabFolder apparaît en haut de la fenêtre, et je voudrais le retirer. 2. le CTabItem test1 n'est pas sélectionné; J'ai désactivé le drapeau "simple" avec setSimple (false), donc le CTabItem devrait être affiché avec des bordures arrondies, ce qui n'est pas le cas jusqu'à ce que je clique dessus. dans ce cas, la fenêtre apparaît comme ceci: enter image description here le problème 1 reste, mais le 2ème est résolu.

Je sais que les classes de pièces sont créées paresseusement, mais je pense que cela ne s'applique pas ici puisque la pièce est la seule et est affichée dès que la fenêtre est exécutée.

ici est le code de la méthode @PostConstruct:

@PostConstruct 
public void postConstruct(Composite parent) { 
    parent.setLayout(new FillLayout(SWT.HORIZONTAL)); 

    CTabFolder tabFolder = new CTabFolder(parent, SWT.BORDER); 
    tabFolder.setSimple(false); 
    tabFolder.setSelectionBackground(Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT)); 

    CTabItem tbtmTest = new CTabItem(tabFolder, SWT.NONE); 
    tbtmTest.setText("test1"); 

    Composite composite = new Composite(tabFolder, SWT.NONE); 
    tbtmTest.setControl(composite); 
    composite.setLayout(new GridLayout(2, false)); 
    new Label(composite, SWT.NONE); 
    new Label(composite, SWT.NONE); 
    new Label(composite, SWT.NONE); 

    Label lblHelloWolf = new Label(composite, SWT.NONE); 
    lblHelloWolf.setText("Hello World!"); 

} 

est-il possible d'obtenir des bordures arrondies CTabItem dès que la pièce est affichée? Comment se débarrasser du texte "partCTabFolder" en haut de la fenêtre?

merci

Répondre

1

L'onglet « partCTabFolder » est parce que vous avez mis votre part dans une « pile partie » - la pile de partie utilise des onglets pour chaque partie. Si vous ne le souhaitez pas, placez votre pièce directement dans la fenêtre principale ou dans un conteneur de châssis.

CTabFolder dessine uniquement l'onglet incurvé pour la pièce sélectionnée. Les autres onglets doivent simplement être légèrement arrondis. Vous pouvez d'abord faire de votre onglet l'onglet sélectionné en appelant:

tabFolder.setSelection(tbtmTest);