如何在JFrame中将FlowLayout更改为BoxLayout

时间:2015-01-21 13:51:20

标签: java swing layout-manager boxlayout flowlayout

我已经为此做了一点努力,因为我的生活无法到达任何地方。我试图将按钮和标签设置在彼此之上而不是并排设置。我想我必须将FlowLayout的布局形式更改为BoxLayout,但我无法弄清楚如何做到这一点。这是我到目前为止所做的。

import javax.swing.JFrame;

public class VoteCounter
{
    //----------------------------------------------
    // Creates the main program frame.
    //----------------------------------------------
    public static void main(String[] args)
{
    JFrame frame = new JFrame("Vote Counter");

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().add(new VoteCounterPanel());
    frame.pack();
    frame.setVisible(true);
}
}

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

frame.setLayout(new BoxLayout(frame, BoxLayout.PAGE_AXIS));
很简单。

有关详细信息,请参阅:http://docs.oracle.com/javase/tutorial/uiswing/layout/box.html

答案 1 :(得分:1)

JPanel的默认布局是FlowLayout。您可以更改面板的布局,如:

JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(null,BoxLayout.Y_AXIS));

以下是使用BoxLayout的示例:

choosing the best Layout for this jframe

此外,您可以使用BoxLayout设置空格:

https://stackoverflow.com/a/22525005/3378204

希望它会对你有所帮助。