2014-09-11 2 views
0

Je veux fondamentalement remplir mon MainFrame avec un SplitPanel qui prendrait tout l'espace disponible dans le MainFrame. J'ai lu qu'un moyen de faire cela est d'ajouter un BorderPanel à la MainFrame, et ajouter le SplitPane au centre du BorderPanel.Remplissez le MainFrame avec le BorderPanel

object SwingApp extends SimpleSwingApplication { 

    def top = new MainFrame { 

    peer.setUndecorated(true) //with this hack it works but I don't feel like it's the purpose of the function 

    object splitPane extends SplitPane(Orientation.Vertical, new Button(), new Button()) 

    contents = new BorderPanel { 
     import BorderPanel.Position._ 

     val center = splitPane 
     layout(center) = Center 
    } 
    } 
} 

Mon problème est que le BorderPanel semble prendre la taille minimale que possible (ici 0) quand je veux qu'il en fait remplir tout le cadre.

J'ai trouvé une solution en mettant à l'intérieur du MainFrame

peer.setUndecorate(true) 

mais il se sent sale et en lisant la doc, je ne sais pas pourquoi cela fonctionne. N'y at-il pas une meilleure façon?

Répondre

0

Vous pouvez ajouter une bordure en utilisant BorderFactory et spécifier l'épaisseur (10 ici).

panel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0), 10)); 
Questions connexes