当前位置:  技术问答>java相关

各位老大,怎样写一个类来装图片,没有滚去条,

    来源: 互联网  发布时间:2015-09-12

    本文导语:  各位老大,怎样写一个类来装图片,没有滚去条,但是能装任何大小的图片。 谢谢! | package oasui; import javax.swing.JPanel; import java.awt.Image; import java.awt.Graphics; import java.awt.Toolkit; import java.a...

各位老大,怎样写一个类来装图片,没有滚去条,但是能装任何大小的图片。

谢谢!

|
package oasui;

import javax.swing.JPanel;
import java.awt.Image;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.MediaTracker;
import java.awt.Dimension;
import java.awt.Point;

public class ImageControl extends JPanel
{
  private Image m_Image = null;               //图象对象
  private MediaTracker m_Tracker = null;
  private boolean m_bFitSize = true;          //是否自动调整到与该控件适合的尺寸
  private Point m_Pos = new Point(0,0);       //显示起始位置

  public ImageControl()
  {
    super();
  }

  public ImageControl(byte[] imageData) throws Exception
  {
    super();
    LoadImage(imageData);
  }

  public ImageControl(String sFile) throws Exception
  {
    super();
    LoadImage(sFile);
  }

  public boolean LoadImage(byte[] imageData) throws Exception
  {
    Image image = Toolkit.getDefaultToolkit().createImage(imageData);
    if(image == null)
      throw new Exception("读取图形数据错误!");

    m_Image = image;
    if(m_Tracker != null)
      m_Tracker = null;
    m_Tracker = new MediaTracker(this);
    m_Tracker.addImage(m_Image,0);

    return true;
  }

  public boolean LoadImage(String sFile) throws Exception
  {
    Image image = Toolkit.getDefaultToolkit().createImage(sFile);
    if(image == null)
      throw new Exception("读取图形数据错误!");

    m_Image = image;
    if(m_Tracker != null)
      m_Tracker = null;
    m_Tracker = new MediaTracker(this);
    m_Tracker.addImage(m_Image,0);

    return true;
  }

  protected void paintComponent(Graphics g)
  {
    try
    {
      super.paintComponent(g);
      if(m_Image != null)
      {
        if(!m_Tracker.checkID(0))
          m_Tracker.waitForID(0);

        if(m_bFitSize)
          g.drawImage(m_Image,1,1,
                      getWidth() - 2,getHeight() - 2,
                      null);
        else
          g.drawImage(m_Image,m_Pos.x,m_Pos.y,null);
      }
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }
  }

  public Dimension getImageSize()
  {
    if(m_Image == null)
      return new Dimension(0,0);
    try
    {
      if(!m_Tracker.checkID(0))
        m_Tracker.waitForID(0);

      return new Dimension(m_Image.getWidth(null),
                           m_Image.getHeight(null));
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }

    return new Dimension(0,0);
  }

  public void setFitSize(boolean bFitSize)
  {
    m_bFitSize = bFitSize;
  }

  public boolean getFitSize()
  {
    return m_bFitSize;
  }

  public void setPos(Point pos)
  {
    m_Pos.x = pos.x;
    m_Pos.y = pos.y;
  }

  public Point getPos()
  {
    return (Point)m_Pos.clone();
  }

  public void clear()
  {
    m_Tracker = null;
    m_Image = null;
  }
}

|
不懂 
滚去条?
装任何大小的图片??

什么环境啊?

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 各位老大,小弟初入linux行业,遇到以下问题,请各位老大解答之~
  • 一个老大男的一个老大难
  • 哪位老大给个linux的交流Q群号啊……
  • 各位老大们,在jbuilder6.0中怎么设置
  • 关于JavaBean 和 Tag 的问题?在线等待,谢谢各位老大的帮忙!!
  • 各位老大,请教一个问题,十万火急!!!
  • 我是新手,各位老大请赐教!
  • 那位老大用C++做unix系统编程啊?谈一下经验
  • 哪位老大有redhat enterprise 3的下载地址?小弟愿奉献100分!!
  • 哪位老大介绍一下linux漏洞的书?
  • 一个虚拟机的问题,哪位老大解答一下?
  • 各位老大,都晒晒您在linux上用的是什么影音播放器?支持图形界面吗?
  • 关于JavaBean 和标签库Tag的问题???在线等待谢谢各位老大的帮助!来者有分!!
  • 急!!!!!! 哪位老大能帮忙找找 getCustomDatum 的替代方法。
  • 各位老大救救我吧,再搞不定我今晚就要通霄了呜呜。。。
  • 各位老大,哪儿有linux最新版下载
  • 请各位老大帮帮忙!!!
  • 哪位老大装lids成功过?
  • 各位老大,如何更好的控制JButton,只有21分,都给了
  • 各位老大,让我的JFrame在屏幕上居中,应用哪个方法?!小弟感激不尽!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3