Witam,
w jaki sposób mógłbym odwołać się do obiektu w innym kontrolerze.
W moim programie po wybraniu utworzenia nowej bazy włącza się panel z formatką do tworzenia tajże bazy, tam podajemy wszelkie dane, w tym czasie przyciski do innych opcji mają być zablokowane. Problem występuję w momencie gdy chcę po utworzeniu bazy i dodaniu do niej wszystkich danych aktywować przyciski. Problem w tym że formatka i przyciski, które mają być blokowane, odsługiwane są w innych kontrolerach.
W jaki sposób mógłbym odwołać się z kontrolera do obsługi formatki, do przycisku z innego kontrolera?
Poniżej zamieszczam kody do obu kontrolerów.
package controllers;
import java.io.IOException;
import database.Database;
import javafx.collections.FXCollections;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.control.Button;
import javafx.scene.control.ChoiceBox;
import javafx.scene.layout.Pane;
import javafx.scene.layout.Region;
public class MainController {
@FXML
Pane firstPane;
@FXML
Region shadowRegion;
@FXML
Pane mainPane;
@FXML
Region selectedOption;
@FXML
Button newBargain;
@FXML
ChoiceBox<String> databaseList;
@FXML
public void initialize(){
Database db = new Database();
db.Connector();
databaseList.setItems(FXCollections.observableArrayList( db.ShowDB()));
db.CloseConn();
databaseList.getSelectionModel().selectFirst();
}
@FXML
public void nowyRachunek() {
firstPane.setVisible(false);
firstPane.setDisable(true);
shadowRegion.setVisible(false);
shadowRegion.setDisable(true);
selectedOption.setVisible(true);
selectedOption.setLayoutX(1250);
selectedOption.setLayoutY(400);
newBargain.setDisable(true);
FXMLLoader loader = new FXMLLoader(this.getClass().getResource("/fxml/NewAccount.fxml"));
Pane Pane = null;
try {
Pane = loader.load();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mainPane.getChildren().add(Pane);
}
@FXML
public void newBargain() {
selectedOption.setVisible(true);
selectedOption.setLayoutX(10);
selectedOption.setLayoutY(20);
}
@FXML
public void showDatabase() {
System.out.println(databaseList.getValue());
}
}
package controllers;
import database.Database;
import javafx.fxml.FXML;
import javafx.scene.control.DatePicker;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import obiekty.BazaDanych;
import obiekty.DziennikTransakcji;
import rozne.ActualDate;
public class AccountController {
@FXML
private TextField nazwaKonta;
@FXML
private DatePicker dataWprowadzenia;
@FXML
private TextField winien;
@FXML
private TextField ma;
@FXML
private TextArea komentarz;
@FXML
private TextField opis;
@FXML
private TextField nazwaBazy;
@FXML
void addNewAccount() {
ActualDate actualDate = new ActualDate();
BazaDanych bd = new BazaDanych();
bd.setNazwa(nazwaBazy.getText());
Database db = new Database();
db.Connector();
db.CreateDB(bd.getNazwa());
db.ChooseDB(bd.getNazwa());
db.CreateTabel();
DziennikTransakcji dt = new DziennikTransakcji(bd, "001", "002", opis.getText(), Integer.parseInt(ma.getText()),
"sad", komentarz.getText(), false, actualDate.getDate("dd-MM-yyy HH:mm"),
dataWprowadzenia.getValue().toString());
db.InputDziennik(dt);
db.CloseConn();
System.out.println("Nazwa DB= " + nazwaBazy.getText());
System.out.println("id tranzakcji= " + dt.getId_transakcji());
System.out.println("id kod rodzaju= " + dt.getKod_rodzaju());
System.out.println("id kod tytulu= " + dt.getKod_tytułu());
System.out.println(" opis= " + dt.getOpis());
System.out.println(" wartosc= " + dt.getWartosc());
System.out.println("id XML= " + dt.getPolecenie_XML());
System.out.println(" komentarz= " + dt.getKomentarz());
System.out.println("data aktualizacji= " + dt.getData_a());
System.out.println(" data wprowadzenia= " + dt.getData_w());
}
}