我有一个接口,可以拍摄两个视频并同时播放,用户可以在任何时候在上面显示的3个文本框中为视频添加评论。我想要做的是用时间戳保存这些框中保存的文本。我有一个类来创建一个已保存的对象 - 它通过单击保存按钮获取3个文本输入和视频位置。我不确定的是,一旦我把它输回到我的班级,如何保存输入。
以下是我点击按钮点击课程的代码:
Save.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent i) {
Saved saved = new Saved();
saved.setPosition(mediaPlayerComponent2.getMediaPlayer().getPosition() * 1000);
saved.setGap(textArea.getText());
saved.setForces(textArea1.getText());
saved.setFindings(textArea2.getText());
try {
File file = new File("text.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Saved.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
// output printed
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(saved, file);
jaxbMarshaller.marshal(saved, System.out);
} catch (JAXBException e) {
e.printStackTrace();
}
}
});
这是我创建Saved对象的类:
@XmlRootElement
public class Saved {
float position;
String gap;
String forces;
String findings;
public float getPosition(){
return position;
}
@XmlAttribute
public void setPosition(float position){
this.position = position;
}
public String getgap() {
return gap;
}
@XmlElement
public void setGap(String gap) {
this.gap = gap;
}
public String forces() {
return forces;
}
@XmlElement
public void setForces(String forces) {
this.forces = forces;
}
public String findings() {
return forces;
}
@XmlElement
public void setFindings(String findings) {
this.findings = findings;
}
}
答案 0 :(得分:1)
根据评论:
首先,您尝试编组非静态内部类,这可以通过将其更改为静态嵌套类或“外部”类来解决。
然后JAXB无法识别gap
,forces
和findings
的getter。
因此,将getgap()
,forces()
,findings
更改为getGap()
,getForces()
,getFindings()
。
另请注意,findings()
会返回forces
的值。