我有两节课。 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。
答案 0 :(得分:0)
Java区分大小写,首先在try& amp;抓住声明。
使用像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 ;
}