您的位置:首页 > 其它

swing 个人理解记录

2018-03-24 23:33 155 查看
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 画图就像在画板上画图一样,你在那个地方画了,你不擦,它就一直在那里。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: