2013-07-19 2 views
2

Я создаю GUI и есть этот код:Короткий способ записи настроек JFrame

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

Есть более короткий путь, чтобы написать это? Я в основном прошу из любопытства, поскольку я всегда стараюсь изучать новые вещи.

Я думаю, что я столкнулся с чем-то подобным, но я не могу заставить его работать в моем приложении.

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

ответ

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)..... 
+1

Спасибо! Я понимаю, что это в основном непрактично, но приятно знать, что есть способ :) ' – Goatcat

2

Вы не можете. Ваш первый вызов frame.add() ничего не возвращает (void). Невозможно для вызова метода с цепочкой. Может быть создан заводский класс с такими методами, как createAndShowFrame(JComponent component).

Смежные вопросы