0

我用一些操作创建了 FlowLayoutEx。然后尝试以标准方式将它们放入框架中。

public static void main(String args[]){

    FlowLayoutEx applet=new FlowLayoutEx();
    JFrame frame=new JFrame("HW2LayoutSettings");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.add(applet,BorderLayout.PAGE_END);
    applet.init();
    applet.start();
    frame.setSize(400,300);
    frame.pack();
    frame.setVisible(true);

}
4

2 回答 2

0

它可能确实出现了,但可能它太小或者之前抛出了异常,如果不知道你的FlowLayoutEx类是什么就不可能知道。

但是当您调用时,pack()您将窗口设置为与其组件的首选大小相对应的大小。它的意思是:

  1. 您之前的调用setSize是无用的,因为大小是由调用再次设置的pack
  2. 您的自定义组件应设置首选大小。
于 2013-11-01T13:38:28.043 回答
0

applet的首选大小(re getPreferredSize())是多少?会不会是 (0, 0)?JFrame 是否使用 BorderLayout?我认为这是默认设置,但我不确定。尝试自己设置:frame.setLayout(new BorderLayout())。不确定 BorderLayout.PAGE_END - 我总是使用 BorderLayout.CENTER(用于 JFrame 中的主要或唯一组件)。

于 2013-11-01T13:59:41.247 回答