How can I set distance between elements ordered vertically?

前端 未结 4 824
孤独总比滥情好
孤独总比滥情好 2021-01-17 13:03

I have code like that:

    JPanel myPanel = new JPanel();
    myPanel.setLayout(new BoxLayout(myPanel, BoxLayout.Y_AXIS));

    JButton button = new JButton(         


        
相关标签:
4条回答
  • 2021-01-17 13:10
        JPanel myPanel = new JPanel();
        myPanel.setLayout(new BoxLayout(myPanel, BoxLayout.Y_AXIS));
    
        JButton button = new JButton("My Button");
        JLabel label = new JLabel("My label!!!!!!!!!!!");
    
        myPanel.add(button);
        myPanel.add(Box.createVerticalStrut(20));
        myPanel.add(label);
    

    will be one way of doing it.

    0 讨论(0)
  • 2021-01-17 13:14

    You may want to consider GridLayout instead of BoxLayout, it has attributes Hgap and Vgap that let you specify a constant seperation between components.

    GridLayout layout = new GridLayout(2, 1);
    layout.setVgap(10);
    myPanel.setLayout(layout);
    myPanel.add(button);
    myPanel.add(label);
    
    0 讨论(0)
  • 2021-01-17 13:19

    Use the Box class as an invisible filler element. This is how Sun recommends you do it.

    BoxLayout tutorial.

    0 讨论(0)
  • 2021-01-17 13:31

    If you're definitely intending to use BoxLayout to layout your panel, then you should have a look at the How to Use BoxLayout Sun Learning Trail, specifically the Using Invisible Components as Filler section. In short, with BoxLayout you can create special invisible components that act as spacers between your other components:

    container.add(firstComponent);
    container.add(Box.createRigidArea(new Dimension(5,0)));
    container.add(secondComponent);
    
    0 讨论(0)
提交回复
热议问题