到sun网站上去搜索一下
有一个这方面的工具包
可以打开现在基本都存在的图形格式文件
还有很例子
具体是什么我忘记的了。

解决方案 »

  1.   

    那 BMP怎么画呀
    还有呀,怎么把二进制的图片直接导入程序呀
    有没有谁能给小弟个例子?
      

  2.   

    zhou1977(短笛) ;   谢谢!既然很简单,能否给个例子,要求画好后,保存为JPG或PNG
    ,感激不尽!
      

  3.   

    用jai,取下载装一个用下面的代码,改一改
    //     BufferedImage image=new BufferedImage(drawpanel.getWidth(),drawpanel.getHeight(),BufferedImage.TYPE_3BYTE_BGR);
    //     drawpanel.paintAll(image.createGraphics());
    //     try
    //     {
    //     com.sun.media.jai.codec.ImageCodec.createImageEncoder("JPEG",new FileOutputStream ("d:\\cwAB007131.jpg"), null).encode(image);
    //     }
    //     catch (Exception ee){}    
      

  4.   

    to: HJJH(Thunderbird) 
        非常感激,可是看不大懂,又都是注解,能否给各完整的APPLET例子,可以编译的,JAI是一个软件吗?我很急的,别笑话我,谢谢了!
      

  5.   

    to: HJJH(Thunderbird) 
        非常感激,可是看不大懂,又都是注解,能否给各完整的APPLET例子,可以编译的,JAI是一个软件吗?我很急的,别笑话我,谢谢了!
      

  6.   

    你等一下,我把软件发给你,你的mail?
      

  7.   

    给你的信都退回来了!我也没有办法jai 在java.sun.com可以下载
    下面是一个完整代码package bgi.mumerdisplay;
    import java.awt.*;
    import java.awt.geom.Line2D;
    import java.io.*;
    import java.lang.*;
    import java.awt.event.*;
    import java.awt.image.*;
    import javax.swing.*;
    import java.util.*;public class DrawPanel extends JPanel
    {
    String filename = new String();
    Vector queryStart = new Vector();
    Vector sbjctStart = new Vector();
    Vector queryEnd = new Vector();
    Vector sbjctEnd = new Vector();
    Vector overLap = new Vector();
    Vector sbjctRev = new Vector();
    int xMax, yMax;
    int MUM_xStart,MUM_yStart,MUM_yEnd;
    int MUM_oneAixbp = 100;

    public DrawPanel()
    {
    this.setBackground(Color.black);
    //this.setPreferredSize(new Dimension(50,50));
    }
    public void paintComponent(Graphics g)
    {
    super.paintComponent(g);

    Graphics2D g2d=(Graphics2D)g;

    g2d.setColor(new Color(113,101,250));
    g2d.setStroke(new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER));
    g2d.drawLine(MUM_xStart,MUM_yStart,Math.round(xMax / MUM_oneAixbp) + MUM_xStart,MUM_yStart);
    g2d.drawLine(MUM_xStart,MUM_yEnd,Math.round(yMax / MUM_oneAixbp) + MUM_xStart,MUM_yEnd);
    int j = MUM_xStart + 10;
    g2d.setColor(Color.white);
    g2d.setStroke(new BasicStroke(1, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER));
    while(j <= (Math.round(xMax / MUM_oneAixbp) + MUM_xStart))
    {
    if(j % 10 == 0)
    {
    g2d.drawLine(j, MUM_yStart - 6, j, MUM_yStart);

    }
    if((j-10) % 50 == 0)
    {
    g2d.drawLine(j, MUM_yStart - 9, j, MUM_yStart);
    g2d.drawString((j-10)*MUM_oneAixbp+"", j-2, MUM_yStart - 12);
    }
    j ++;
    }
    j = MUM_xStart + 10;
    while(j <= (Math.round(yMax / MUM_oneAixbp) + MUM_xStart))
    {
    if(j % 10 == 0)
    {

    g2d.drawLine(j, MUM_yEnd + 6, j, MUM_yEnd);
    }
    if((j-10) % 50 == 0)
    {
    g2d.drawLine(j, MUM_yEnd + 9, j, MUM_yEnd);
    g2d.drawString(((j-10)*MUM_oneAixbp)+"", j-2, MUM_yEnd + 26);
    }
    j ++;
    }


    g2d.setStroke(new BasicStroke(5, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER));
    int qs,qe,ss,se,lap;
    for(int i = 0; i < queryEnd.size(); i ++)
    {
    lap = 0;
    if(Integer.parseInt(overLap.get(i).toString()) < 0)
    {
    lap = Integer.parseInt(overLap.get(i).toString());
    }
    qs = Math.round((Integer.parseInt(queryStart.get(i).toString())+lap) / MUM_oneAixbp)+MUM_xStart;
    qe = Math.round(Integer.parseInt(queryEnd.get(i).toString()) / MUM_oneAixbp)+MUM_xStart;
    ss = Math.round((Integer.parseInt(sbjctStart.get(i).toString())+lap) / MUM_oneAixbp)+MUM_xStart;
    se = Math.round(Integer.parseInt(sbjctEnd.get(i).toString()) / MUM_oneAixbp)+MUM_xStart;

    if(i % 2 == 0)
    {
    g2d.setColor(Color.red);
    }
    else
    {
    g2d.setColor(Color.green);
    }
    g2d.setStroke(new BasicStroke(1, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER));
    g2d.fillRect(qs,MUM_yStart-3,qe-qs,7);
    g2d.fillRect(ss,MUM_yEnd-3,se-ss,7);

    g2d.drawLine(qs,MUM_yStart,ss,MUM_yEnd);
    g2d.drawLine(qe,MUM_yStart,se,MUM_yEnd);
    if(Integer.parseInt(sbjctRev.get(i).toString()) == 0)
    {
    g2d.setColor(Color.yellow);
    g2d.fillRect(ss,MUM_yEnd-3,se-ss,7);
    }

    }

    }
    public void setOneAixbp(int aix)
    {
    MUM_oneAixbp = aix;

    this.repaint();
    }

    public void setFileName(String s) throws Exception
    {
    this.filename = s; queryStart.clear();
    queryEnd.clear();
    sbjctStart.clear();
    sbjctEnd.clear();
    this.readMUMerFile();
    }
    private void readMUMerFile() throws Exception
    {
    int mum = 0;
    BufferedReader br=new BufferedReader(new FileReader(filename));
    int line=0;
    int N = 0;
    while(br.ready())
    {
    String s=br.readLine();
    int consistent = s.indexOf(">Consistent");
    int other = s.indexOf(">Other");
    int start = s.indexOf("Start1");
    int b = s.indexOf("1");
    if(consistent == 0)
    {
    mum = 1;
    }
    if(other == 0)
    {
    mum = 0;
    }
    if(mum == 1)
    {
    if((start == -1) && (b != -1))
    {
    StringTokenizer st = new StringTokenizer(s);
    int tokenIndex=0;
    while(st.hasMoreTokens())
    {
    String token=st.nextToken();
    switch(tokenIndex)
    {
    case 0:  queryStart.addElement(token);break;
    case 1:  sbjctStart.addElement(token);break;
    case 3:  overLap.addElement(token);break;
    case 6:  
    {
    queryEnd.addElement(token);
    N ++;
    break;
    }
    case 7:  sbjctEnd.addElement(token);break;
    case 9:  sbjctRev.addElement(token);break;
    default: break;
    }

    tokenIndex++;
    if(tokenIndex > 9)
    {
    break;
    }
    }
    }
    }
    }
    br.close();
    int[] xend = new int[N];
    int[] yend = new int[N];
    for(int i = 0; i < queryEnd.size(); i ++)
    {
    xend[i] = Integer.parseInt(queryEnd.get(i).toString());
    yend[i] = Integer.parseInt(sbjctEnd.get(i).toString());
    }
    Arrays.sort(xend);
    Arrays.sort(yend);
    xMax = xend[N-1];
    yMax = yend[N-1];

    MUM_xStart = 10;
    MUM_yStart = 200;
    MUM_yEnd = 300; this.repaint();
    }

    public int getAixbp()
    {
    return MUM_oneAixbp;
    }
    public int getXWidth()
    {
    int len = (int)(xMax / MUM_oneAixbp);
    return len;
    }
    public int getYWidth()
    {
    int len = (int)(yMax / MUM_oneAixbp);
    return len;
    }
    public int getxMax()
    {
    return xMax;
    }
    }