JFrame ,JLabel , JPanel,
JFrame 创造窗口,但窗口一开始是不可见的,要通过setVisible(true);设置为可见,向窗口上添加组件
一开始不将布局设为null的话,只能显示一个组件,通过add添加组件,setBounds定义组件位置,有一个·
将窗口居中的方法,setLocationRelativeTo(null)居中,获取窗口的绘画,g前,为了把g传给其它组件,
应该先把窗口设置为true可见,不然,g=null,会发生空指针异常,正确顺序
this.setVisible(true); g=this.getGraphics( );
JLabel ,是一个组件,上面可以放图片和文字,
JPanel 是一个面板,面板上可以放组件,可以放图片,
JFrame ,JLabel,JPanel 都有 自己的paint( Graphics g)方法,他们通过调用自己的paint方法绘制自己,你不必调用他们,
他们是自己调用的,你可以重写他们,来完成你想要做的事情,
假设 :你的窗口上有一个面板,你重写了面板的paint()方法
你可以通过 this.setVisible(true); g=this.getGraphics( ); 获得 窗口的g把它传给 面板,让面板在 窗口上绘图,此时,面板里的
位置坐标是相对窗口的, 你也可以 调用 面板的repaint( )方法,repaint( )会自动调用paint( )方法,并且 paint的g 不为空,
它指向面板,此时坐标位置是相对面板的。
TimeUnit.MILLISECONDS.sleep(100); // 沉睡 throws InterruptedException
g.clearRect(x, y, x1, y1); // 清除g.对象x.y坐标处,x1 y1大小位置清空
类中 内部类要先于构造方法执行
JLabel,setIcon(img); // 把jlabel中图片换为img img声明 ImageIcon img=new ImageIcon("witerwhiter3.png");
// g.drawImage 画出图片
1. ImageIcon img=new ImageIcon("22.png");
2. public void paint(Graphics g) {
g.drawImage(img.getImage(),0,0,null);
}
可以重写多个不同的paint方法,根据自己情况调用
// 窗口 添加键盘监听事件
1. jt.addKeyListener(new my());
2. class my implements KeyListener{
@Override
public void keyPressed(KeyEvent e) {
}
@Override//松开按键做的事public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
}
// 组件 JLabel 输出图片与g.drawImage输出图片的不同
JLabel 只有一个对象,移动 Jlabel图pain也会自己动,不需要清除原来的地方的图pain
g.drawImage 画图就像在画板上画图一样,你在那个地方画了,你不擦,它就一直在那里。