首先需要注意的就是JFrame这个类,如果在main类整直接new一个出来是没有任何的变化,需要设置一个setvisible为true来显示出来。
public class AlgorFrame extends JFrame {
private int canvasWith;
private int canvasHeight;
public AlgorFrame(String title, int cancasWidth, int canvasHeight) {
super(title);
this.canvasHeight = canvasHeight;
this.canvasWith = cancasWidth;
this.setSize(cancasWidth, canvasHeight);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
这是一个标准的模板,设置窗口大小不可重新改变,关闭窗口时整个程序同时关闭。
JFrame是最上层的一个窗口,如果要绘制的话是不可以在窗口本身绘制的。MenuBar就是最大化最小化关闭等等的操作。Content Pane其实是一个容器,可以装载其他的组件,最常用的就是面板,Jpanel就是一个面板,后面的绘制都会画在Jpanel上。也就是说想要画上东西就需要在Jframe上加入Jpanel。这个时候窗口大小和画布大小就是两个不一样的大小了,如果想要窗口大小自适应画布大小,就可以调用pack这个函数自适应。
在Jpanel类里面有一个paintComponent方法,这个方法