setResizable(false)不会阻止JavaFX中的Popup可调整大小

时间:2014-09-25 15:53:37

标签: javafx popup resizable

有人可以帮我解决这个问题吗? 这个问题依旧...... 我需要你的帮助。

我希望我的应用程序中的弹出窗口不可调整大小,但我还没有找到解决方案。

我有不能调整大小的Windows弹出窗口。

我尝试在ScenneBuilder中设置Maxheight,MinHeight,MaxWidth和MinWidth但没有工作。弹出窗口仍可调整大小。

我的问题的关键点是打开一个不需要调整大小的窗口的类是从构造函数加载的,而不是在构造函数中使用 stage 。使用FMLLoader加载此窗口。如何在此构造函数中放置一个阶段?我所做的所有尝试都没有奏效。

这是构造函数类:

public FrmRequirement(CivilRecord cr) {
        this.civilRecord = cr;
        URL url = getClass().getResource(this.getClass().getSimpleName()+".fxml");
        FXMLLoader fxmlLoader = new FXMLLoader(url);
        fxmlLoader.setRoot(this);
        fxmlLoader.setController(this);
        try {
            fxmlLoader.load();
            } catch (Exception e) {
                log.severe(e.getMessage());
            }
        } 

如何在此构造函数中放置一个Stage来调用方法setResizable(false)?

还有另一种方法可以在不使用setResizable(false)的情况下设置不可调整大小的窗口吗?

我试着把代码放在方法初始化中,但认为没有用,因为初始化方法是在构造函数之后处理的。

这是弹出类:

public class FrmRequirement extends AnchorPane实现了Initializable {

 private CivilRecord civilRecord;
 @FXML
 private Label lb_inform;
 @FXML
 private TextArea txa_requeriment;
 @FXML
 private Button bt_confirm;
 @FXML
 private Button bt_cancel;

 private Requirement requirement;

 private QualityControlFacade facade = new QualityControlFacade();

    private UUID idUser = Session.getUser().getId();

    private static final Logger log = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);

    @Override
    public void initialize(URL location, ResourceBundle resources) {

   }

  public FrmRequirement(CivilRecord cr) {
  this.civilRecord = cr;
  URL url = getClass().getResource(this.getClass().getSimpleName()+".fxml");
  FXMLLoader fxmlLoader = new FXMLLoader(url);
  fxmlLoader.setRoot(this);
  fxmlLoader.setController(this);
  try {
  fxmlLoader.load();
  } catch (Exception e) {
  log.severe(e.getMessage());
        }
    }

主要课程:

public class Main extends Application {

    private static final Logger log = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);

        @Override
        public void start(Stage primaryStage) {
        try {
            startMain(primaryStage);
        } catch(Exception e) {
            log.severe(e.getMessage());
        }
     }

    private void startMain(Stage primaryStage) {
        try {

            LoginAction action = new LoginAction() {

                @Override
                public void loginSuccess(Stage stage) {
                    try {
                        UserAccount user =  Session.getUser();
                        if("server".equals(user.getUserName()))
                            mountMenu2();
                        else
                            mountMenu();

                        //Screen screen = Screen.getPrimary();
                        //Rectangle2D bounds = screen.getVisualBounds();

                        MainWindow page = new MainWindow();
                        page.setHeaderImage(ImgResourceSolution.class.getResourceAsStream("logo.png"));
                        Scene scene = new Scene(page);
                        URL url = CssResourceSolution.class.getResource("application.css");
                        scene.getStylesheets().add(url.toExternalForm());
                        stage.setScene(scene);
                        stage.centerOnScreen();
                        stage.setMaximized(true);
                        //stage.setX(bounds.getMinX());
                        //stage.setY(bounds.getMinY());
                        //stage.setWidth(bounds.getWidth());
                        //stage.setHeight(bounds.getHeight());
                    } catch (Exception e) {
                        log.severe(e.getMessage());
                    }
                }

                @Override
                public void loginFail(Stage stage) {

                }
            };
            Login page = new Login();
            page.setAction(action);
            Scene scene = new Scene(page);
            primaryStage.setScene(scene);
            primaryStage.setTitle("Sistema de Identificação Humana");
            primaryStage.getIcons().add(new Image(ImgResource.class.getResourceAsStream("icon.png")));
            primaryStage.centerOnScreen();
            primaryStage.setResizable(false);
            primaryStage.show();
        } catch(Exception e) {
            log.severe(e.getMessage());
        }
    }

    private void mountMenu(){
        try{
        List<Module> modules = mapModules();
.
.
.
.
  }
}

public static void main(String[] args) {
        SetupIhSecom.get().startup();
        launch(args);
        SetupIhSecom.get().shutdown();
    }
}

不是我写了所有的代码,只是让我离开弹出窗口没有调整大小

0 个答案:

没有答案