我想使用父类,最好是Component(是我所知道的最高级的AWT gui类)。我不是编程的新手,但我是自学成才,并且在获取问题的示例代码方面遇到了问题。这是我的代码:
import java.awt.Frame;
public class DrawSquare extends Frame{
public DrawSquare(){
setBounds(0,0,100,100);
setVisible(true);
}
public static void main(String[]args){
new DrawSquare();
}
}
基本上我想对父类做同样的事情,以'可能'拥有更快更有效的代码。我假设Frame有更多内置选项,如边框,而Window(父类)没有,但我只能用Frame制作这个简单的代码。
我想使用AWT,而不是摆动顺便提一下。
答案 0 :(得分:0)
根据我的测试:
class C extends Component {
public C() { setSize(200, 200); setVisible(true); }
public void paint(Graphics g) {
g.drawRect(0, 0, 100, 100);
}
}
将不会显示,因为可能需要添加一些内容。
class C extends Container {
public C() { setSize(200, 200); setVisible(true); }
public void paint(Graphics g) {
g.drawRect(0, 0, 100, 100);
}
}
将不会显示,因为它是一个容器,因此需要添加其他东西。
class C2 extends Window {
public C2() { super(new Frame()); setLocation(100, 100); setSize(200, 200); setVisible(true); }
public void paint(Graphics g) {
g.drawRect(0, 0, 100, 100);
}
}
可以显示,但没有什么可以抓住它甚至没有显示在任务栏上,所以它是一个无用的东西,除非你在某处添加它。
所以
class C extends Frame {
public C() { setSize(200, 200); setVisible(true); }
public void paint(Graphics g) {
g.drawRect(0, 0, 100, 100);
}
}
是您的解决方案,它是第一个既是组件又是容器。