扩展JFrame而不是创建新的JFrame的利弊是什么?
例如:
public class Test extends JFrame {
setVisible(true);
}或
public class Test {
JFrame test = new JFrame():
test.setVisible(true);
}发布于 2012-05-04 04:22:31
您不应该扩展一个类,除非您想实际扩展它的功能,在您已经展示的示例中,您应该使用选项2,因为选项1是对extending特性的滥用。
换句话说,只要问题的答案是Test 是NO**,它就不应该扩展JFrame。
发布于 2012-05-04 04:24:17
不扩展JFrame (或任何Swing组件)的优点:
int getX()和int getY()方法。尝试一下,您将看到一些不太有趣的异常behaviors.。
发布于 2012-05-04 04:33:40
如果扩展JFrame,我希望修改/自定义当前的Jframe类,因此子类可以使用这个定制的实现。
如果我不想在JFrame类中做任何更改,只需使用,就像您在代码中给出的第二个片段中的那样。使用时,我的意思是在一个JComponent中创建其他JPanel (按钮/标签)等等,并创建一个对象测试,并将JFrame contentPane设置为这个对象。有点像
public class Test extends JPanel {
public class() {
// add buttons/label here
}
...
private static void createAndShowGUI() {
JFrame frame = new JFrame();
Test object = new Test();
frame.setContentPane(object.setOpaque(true));
frame.setVisible(true);
}
...
}https://stackoverflow.com/questions/10442665
复制相似问题