在Java中使用SceneBuilder时,我必须使用ObjectOutputStream方法。
String FILENAME = "au_studentlist.txt";
FileOutputStream outfile = new FileOutputStream(FILENAME, true);
ObjectOutputStream outstream = new ObjectOutputStream(outfile);
outstream.write("\n StudentID: " + txtStudentID.getText() + "\n First Name: " + txtFName.getText())
我收到了txt.getText()代码行的错误。错误是说我无法对非静态文本字段进行静态引用。
我不知道这意味着什么。
我甚至不知道我的ObjectOutputStream代码是否正确。
答案 0 :(得分:0)
您收到错误消息,因为您正在访问的字段(txtStudentID
和/或txtFName
)属于某个类的实例,但这是静态方法。静态方法无法访问类实例的字段,因此您可能希望将其移动到实例方法中。我不能完全确定在没有看到更多代码的情况下建议什么。你想在哪里使用ObjectOutputStream
?
作为旁注,您需要使用outstream.writeUTF
代替outstream.write
。
修改强> 这样的事情应该有效:
public void initialize()
{
// ...
btnSave.setOnAction(event -> {
String FILENAME = "au_studentlist.txt";
FileOutputStream outfile = new FileOutputStream(FILENAME, true);
ObjectOutputStream outstream = new ObjectOutputStream(outfile);
outstream.writeUTF("\n StudentID: " + txtStudentID.getText() + "\n First Name: " + txtFName.getText() + "\n Last Name: " + txtLName.getText() + "\n Major: " + cboMajor.getValue() + "\n State: " + cboState.getValue() + "\n Expected Graduation Date: " + dtExpGraduationDate.getValue().toString());
});
}