随着代码变得越来越复杂,在一个窗口通常有许多面板,在这些面板里有许多组件,一般会将这些面板写在单独的类里面,但一些组件可能需要获取当前窗口JFrame对象,可以用当前组件来获取窗口。
如下面例子,为一个按钮设置监听,直接用该按钮button.getRootPane().getParent()来获得frame
saveButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JButton button=(JButton) e.getSource();
showFileSaveDialog(button.getRootPane().getParent(), savePathArea);
}
});