その中に aと 2JFXDrawer
をSalesDrawer
含む aを使用しています。の内容には、別のコントローラーがあります。のボタンをクリックすると表示されるように設定したい 2 つのアンカー ペインで構成される を含むコントローラ ファイル。これまで、一連の静的ブール変数を使用していましたが、JFXDrawer のボタンをクリックすると、変数の 1 つが true に設定されていることを確認していました。次に 、オブジェクトを使用してこれらの変数のどれが true かを確認し、必要なアンカー ペインを表示に設定しました。これを行うより良い方法はありますか?VBox
JFXButtons
JFXDrawer
SalesDrawerController.java
SalesController.java
JFXDrawer
JFXDrawer
SalesController.java
TimerTask
SalesDrawerController.java
public class SalesDrawerController implements Initializable {
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
@FXML
private void button1Hit(MouseEvent event) {
SalesController.SD[0]=true;
}
@FXML
private void button2Hit(MouseEvent event) {
SalesController.SD[1]=true;
}
}
SalesController.java
public class SalesController implements Initializable {
public static boolean SD[]= {false,false};
static boolean tock=true;
@FXML
private AnchorPane eq_newpane;
@FXML
private AnchorPane eq_delpane;
@FXML
private JFXHamburger SalesHam;
@FXML
private JFXDrawer SalesDraw;
public void initialize(URL url, ResourceBundle rb) {
eq_newpane.setVisible(true);
eq_delpane.setVisible(false);
eq_newpane.setDisable(false);
eq_delpane.setDisable(true);
VBox box = FXMLLoader.load(getClass().getResource("/fxml/SalesDrawer.fxml"));
SalesDraw.setSidePane(box);
HamburgerBackArrowBasicTransition transition = new HamburgerBackArrowBasicTransition(SalesHam);
transition.setRate(-1);
SalesHam.addEventHandler(MouseEvent.MOUSE_PRESSED,(e)->{
transition.setRate(transition.getRate()*-1);
transition.play();
if(SalesDraw.isShown()){
SalesDraw.close();
SalesDraw.toBack();
}
else{
SalesDraw.toFront();
SalesDraw.open();
}
});
threadtock();
}
public void threadtock() {
final java.util.Timer timer = new java.util.Timer();
final TimerTask delayedThreadStartTask;
delayedThreadStartTask = new TimerTask() {
public void run() {
try
{
if(tock){
if(SD[0])
{
eq_newpane.setVisible(true);
eq_delpane.setVisible(false);
eq_newpane.setDisable(false);
eq_delpane.setDisable(true);
}
else if(SD[1]){
eq_delpane.setVisible(true);
eq_newpane.setVisible(false);
eq_newpane.setDisable(true);
eq_delpane.setDisable(false);
}
if(tock)
{
threadtock();
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
};
timer.schedule(delayedThreadStartTask, 500);
};
}