swing 个人理解记录

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 画图就像在画板上画图一样,你在那个地方画了,你不擦,它就一直在那里。

猜你喜欢

转载自blog.csdn.net/qq_38966984/article/details/79682677