私は2つのコントローラFXMLDocumentController
とFXMLOpenedCodeController
を持っています。私はFXMLDocumentController
から.txtファイルの内容を読んでいるので、そのテキストをFXMLOpenedCodeController
のテキストエリアに置いて欲しい。コードはFXMLDocumentController
から実行中および読み込み中ですが、FXMLOpenedCodeController
のウィンドウを開くと、.txtコンテンツの読み取り内容はテキストエリアに表示されません。私のsystem.out.println
はString mineに内容がありますが、FXMLOpenedCodeController
のテキストエリアには表示されていません。誰でも助けてください。ありがとうございました。別のコントローラから1つのコントローラのテキストエリアにアクセスするJavaFX
FXMLDocumentControllerコード
public class FXMLDocumentController implements Initializable {
@FXML
private MenuItem open;
@FXML
private MenuItem about;
@Override
public void initialize(URL url, ResourceBundle rb) {
open.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle (ActionEvent event){
try {
showSingleFileChooser();
} catch (IOException ex) {
Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
}
private void showSingleFileChooser() throws IOException {
//Stage s = new Stage();
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("ZEBRA file open...");
FileChooser.ExtensionFilter exfil = new FileChooser.ExtensionFilter("TXT files (*.txt)", "*.txt");
fileChooser.getExtensionFilters().add(exfil);
File selectedFile = fileChooser.showOpenDialog(stage);
if(selectedFile != null){
FXMLLoader fxmlLoader = new FXMLLoader();
fxmlLoader.setLocation(getClass().getResource("FXMLOpenedCode.fxml"));
AnchorPane frame = (AnchorPane) fxmlLoader.load();
FXMLOpenedCodeController c = fxmlLoader.getController();
//c.codeExecute = codeExecute;
c.codeExecute.appendText(readFile(selectedFile));
String mine;
mine = readFile(selectedFile);
//c.codeExecute.appendText(mine);
System.out.println(mine);
Parent root = FXMLLoader.load(getClass().getResource("FXMLOpenedCode.fxml"));
Scene scene = new Scene(root);
stage4.initModality(Modality.APPLICATION_MODAL);
stage4.setTitle("Compile Code");
stage4.setScene(scene);
stage4.show();
}
}
private void newWindow() throws IOException{
Parent root = FXMLLoader.load(getClass().getResource("FXMLNew.fxml"));
Scene scene = new Scene(root);
stage3.initModality(Modality.APPLICATION_MODAL);
stage3.setTitle("Enter code to run here");
stage3.setScene(scene);
stage3.show();
}
private String readFile(File selectedFile) throws FileNotFoundException, IOException {
StringBuilder content = new StringBuilder();
BufferedReader buffRead = null;
buffRead = new BufferedReader(new FileReader(selectedFile));
String text;
while((text = buffRead.readLine())!=null){
content.append(text);
}
return content.toString();
}
}
とFXMLOpenedCodeController
のコードが動作するように私は@FXML
とprivate
を除去public TextArea codeExecute;
があります。
は、それが働いたありがとう..... – user2218840