2017-09-02 30 views
-2

JPanelに.dxfファイルを解析しようとしています。基本的に私はJPanel.i上のdxfファイルのグラフィカルなプレゼンテーションがKabejaとYcadについて語られましたが、どちらも私が必要としているものではありません。JPanelでdxfファイルを表示

+0

からKabejaのLIBSを使用しています。そのCAD図面をJavaでレンダリングする方法を尋ねています。これには、DXFの複雑なファイル構造を解析し、AutoCADの機能をシミュレートすることが含まれます。これは記念碑的な仕事です。あなたはKabejaとYCadを拒否しました。いずれにしても、(ライブラリの推薦を求める)質問はここでは話題になっているので、そのすべては疑問です。 [help]にアクセスして[ask]を読んでください。 –

+0

あなたは投票をするのではなく、質問を無視したほうがよいでしょう。 – chrisgeeq

+0

質問のリポジトリとして役立つ StackOverflowの目的と究極の目標を誤解していると思われ、多くの人々に便利な 回答があります。遠方の の2番目の目標は、あなたの特定の質問に答えることとあなたを助けることです。 SOの主な目標と一致するように質問が書かれているときは、多くの反応を得てupvotesと答えを引きつけるのは です。 それがそれらの目標と一致しない場合、SO "方法"は下方向に移動するため、 は将来の検索では表示されません。 ...(続き) –

答えて

0

この方法では、dxfファイルから画像を保存できます。その後、ファイルから画像を読み取り、JPanelで表示することができます。

コード.DXFは、CAD図面の説明であるhttp://kabeja.sourceforge.net/

import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.util.HashMap; 
import org.kabeja.dxf.DXFDocument; 
import org.kabeja.parser.DXFParser; 
import org.kabeja.parser.Parser; 
import org.kabeja.parser.ParserBuilder; 
import org.kabeja.svg.SVGGenerator; 
import org.kabeja.xml.SAXSerializer; 
import org.xml.sax.SAXException; 

public void parseFile(String sourceFile, String destinationPath, int width, int height) throws FileNotFoundException, java.io.IOException, org.kabeja.parser.ParseException, SAXException { 
    lastWidth = width; 
    lastHeight = height; 

    FileOutputStream o = new FileOutputStream(destinationPath); 
    InputStream in = new FileInputStream(sourceFile);//your stream from upload or somewhere 
    Parser dxfParser = ParserBuilder.createDefaultParser(); 
    dxfParser.parse(in, DXFParser.DEFAULT_ENCODING); 
    DXFDocument doc = dxfParser.getDocument(); 
    SVGGenerator generator = new SVGGenerator(); 

    SAXSerializer out = new org.kabeja.batik.tools.SAXPNGSerializer(); 
    out.setOutput(o); 
    HashMap mHashMap = new HashMap(); 
    mHashMap.put("width", Integer.toString(width)); 
    mHashMap.put("height", Integer.toString(height)); 
    generator.generate(doc, out, mHashMap); 

    in.close(); 
    o.close(); 
}