2

我正在创建一个 GUI 并拥有以下代码:

frame.add(container);
frame.pack();
frame.setLocation(200, 200);
frame.setVisible(true);

有没有更短的方法来写这个?我主要是出于好奇而询问,因为我一直在努力学习新事物。

我想我遇到过这样的事情,但我无法让它在我的应用程序中工作。

frame.add(container).setLocation(200,200).pack().setVisible();
4

2 回答 2

3

您可以为此覆盖 JFrame。但我不觉得你想做的事有什么好处。

public MyFrame extends JFrame{


  public JFrame add(Container container){
    super.add(container);
    return this;
  }

  public JFrame setLocation(int x, int y){
    super.setLocation(x,y);
    return this;
  }
  //and so on
}

然后像这样使用它。

MyFrame frame = new MyFrame();
frame.add(somecontainer).setLocation(200,200).....
于 2013-07-19T09:15:44.157 回答
2

你不能。您的第一次调用 frame.add() 不返回任何内容(void)。因此链式方法调用不可能。可能是创建一个带有方法的工厂类,如createAndShowFrame(JComponent component).

于 2013-07-19T09:09:26.983 回答