0

私には2つのクラスがあります。MetaDataExtractor(GUI)およびMetaData。

MetaDataには、画像からメタデータを抽出するメソッドがあります。MetaDataExtractorは、JTextPaneにデータを表示するように設計されています。(クラス名を失礼します。少し混乱することはわかっています。私はJavaにかなり慣れていません)。

MetaDataExtractor:

LongitudeField.setText("" + MetaDataTags.getLongitude());

メタデータ:

public String getLongitude() {
    try {
        Metadata metadata = ImageMetadataReader.readMetadata(jpegFile);
        if (metadata.containsDirectory(GpsDirectory.class)) {
            GpsDirectory gpsDir = (GpsDirectory) metadata.getDirectory(GpsDirectory.class);
            GpsDescriptor gpsDesc = new GpsDescriptor(gpsDir);
            String Longitude = "" + gpsDesc.getGpsLongitudeDescription();

        }
    } catch (ImageProcessingException ex) {
        Logger.getLogger(MetaData.class.getName()).log(Level.SEVERE, null, ex);
        System.out.println("Error 1");
    } catch (IOException ex) {
        Logger.getLogger(MetaData.class.getName()).log(Level.SEVERE, null, ex);
        System.out.println("Error 2");
    }        
    return longitude;
}

JTextPaneに表示する経度を設定すると、「null」が返されます。ただし、コマンドラインで印刷するように設定すると、経度が正しく印刷されますか?

簡単な解決策なら失礼します。私はまだJavaに慣れています。

4

1 に答える 1

0

Javaは大文字と小文字を区別し、最初にtry&catchステートメントの外で変数を宣言します。

EclipseなどのIDEを使用して、このような構文エラーを減らします。

だからあなたは持っているべきです:

public String getLongitude() {
    String longitudeDesc ="";
    try {
        Metadata metadata = ImageMetadataReader.readMetadata(jpegFile);
        if (metadata.containsDirectory(GpsDirectory.class)) {
            GpsDirectory gpsDir = (GpsDirectory) metadata.getDirectory(GpsDirectory.class);
            GpsDescriptor gpsDesc = new GpsDescriptor(gpsDir);
            longitudeDesc = "" + gpsDesc.getGpsLongitudeDescription();

        }
    } catch (ImageProcessingException ex) {
        Logger.getLogger(MetaData.class.getName()).log(Level.SEVERE, null, ex);
        System.out.println("Error 1");
    } catch (IOException ex) {
        Logger.getLogger(MetaData.class.getName()).log(Level.SEVERE, null, ex);
        System.out.println("Error 2");
    }        
    return longitudeDesc ;
}
于 2012-06-05T14:54:27.023 に答える