java swing 中的 MusicXML 文件 - 可视化表示和动态编辑
MusicXML files in java swing - visual representation and dynamic editing
我正在开发一个带有 java swing 的桌面应用程序,它应该能够显示框架中 MusicXML 文件中定义的视觉内容(音符、谱号、小节)。我发现的所有 .xml 解析器只允许我创建树。我也无法使用 JEditorPane 显示内容。
我可以这样做还是需要先将其动态转换为其他格式,例如 .pdf?如果是这样 - 我怎样才能在 java 中做到这一点?
使用 JTextArea
让用户编辑原始 XML。使用 SwingWorker
, as shown here 在后台加载文件以减轻任何延迟的影响。
@Override
protected Integer doInBackground() {
BufferedReader in = null;
try {
in = new BufferedReader(new FileReader("build.xml"));
String s;
try {
while ((s = in.readLine()) != null) {
publish(s);
}
} catch (IOException ex) {
ex.printStackTrace(System.err);
}
} catch (FileNotFoundException ex) {
ex.printStackTrace(System.err);
} finally {
try {
in.close();
} catch (IOException ex) {
ex.printStackTrace(System.err);
}
}
return status;
}
By visual representation, I meant that I needed a way to display this type of visual output.
你可能会看看JMusicXML
project, which has "some Java awt/swing
graphics player." More resources may be found here。
我正在开发一个带有 java swing 的桌面应用程序,它应该能够显示框架中 MusicXML 文件中定义的视觉内容(音符、谱号、小节)。我发现的所有 .xml 解析器只允许我创建树。我也无法使用 JEditorPane 显示内容。
我可以这样做还是需要先将其动态转换为其他格式,例如 .pdf?如果是这样 - 我怎样才能在 java 中做到这一点?
使用 JTextArea
让用户编辑原始 XML。使用 SwingWorker
, as shown here 在后台加载文件以减轻任何延迟的影响。
@Override
protected Integer doInBackground() {
BufferedReader in = null;
try {
in = new BufferedReader(new FileReader("build.xml"));
String s;
try {
while ((s = in.readLine()) != null) {
publish(s);
}
} catch (IOException ex) {
ex.printStackTrace(System.err);
}
} catch (FileNotFoundException ex) {
ex.printStackTrace(System.err);
} finally {
try {
in.close();
} catch (IOException ex) {
ex.printStackTrace(System.err);
}
}
return status;
}
By visual representation, I meant that I needed a way to display this type of visual output.
你可能会看看JMusicXML
project, which has "some Java awt/swing
graphics player." More resources may be found here。