在Java AWT中显示图形绘图的最简单方法是什么?

时间:2017-02-02 18:11:14

标签: java awt frame

我想使用父类,最好是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,而不是摆动顺便提一下。

1 个答案:

答案 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);
  }
}

是您的解决方案,它是第一个既是组件又是容器。