2012-03-21 10 views
0

私はここで新しく、javaにはまったく新しいです。 問題が発生しました。 私は、PNGを作成し、ユーザーが選択したフォルダに保存しようとする非常に単純なプログラムを持っています。 byteimageはAAプライベートバイト[]である:Eclipseコードはうまく動作しません。

byteimage = bcd.createPNG(300, 140, ColorSpace.TYPE_RGB, Color.BLACK, Color.BLACK); 

SETPATH()

private void setPath() { 

    JFileChooser pathchooser = new JFileChooser(); 
    pathchooser.setMultiSelectionEnabled(false); 
    pathchooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
    pathchooser.setApproveButtonMnemonic(KeyEvent.VK_ENTER); 
    pathchooser.showDialog(this, "OK"); 

    File f = pathchooser.getSelectedFile(); 
    if (f != null) { 
     filepath = f.getAbsolutePath(); 
     pathfield.setText(filepath); 
     } 
} 

バイトメソッドをPNG形式に参照ボタンのアクションリスナーの内側と呼ばれていることは次のようになります。

public void byteToPNG(String filename) { 
     try { 
     InputStream in = new ByteArrayInputStream(byteimage); 
     BufferedImage bufferedimg = ImageIO.read(in); 
     ImageIO.write(bufferedimg, "png", new File(filename)); 
    } catch (IOException e) { 
     System.out.println(e.getMessage()); 
    } 
} 

この方法は次のように呼び出されます。

textfield.getText()は、pngの実際の名前を設定します。 がコンストラクタの内部には、デフォルトのファイルパスが設定されている:

filepath = System.getProperty("user.dir"); 
pathfield.setText(filepath); 

コードは、Eclipseから細かい実行され、それが所望の位置にPNG画像を生成します。 残念ながら、jarとしてエクスポートした後は起動しますが、pngを生成するボタンが押されても何も起こりません。 InputStreamまたはBufferedImageに問題があると思っていますが、少し困惑しています。

答えて

0

byteToPNGに渡される文字列fileNameが絶対パスでない(つまり、 "C:/ foo/bar/etc"という形式で書かれている)場合、破損したjarファイルの原因となる可能性があります。また、次のコマンドを使用して端末でjarファイルを実行することもできます。 java -jar myJarFile.jar。 これにより、すべてのアプリケーション出力(例外を含む)が印刷される実行中のjarアプリケーションの横にコンソールウィンドウが開いたままになります。

+0

あなたの答えをありがとう。文字列のファイル名は絶対で、私は端末でjarを実行しようとします。 – johnpeterman

関連する問題