在 javaFX 中,为什么当我将鼠标悬停在按钮上时,按钮有时会随机缩小?
为什么会发生这种情况以及如何阻止它。
这是我所描述的按钮的代码,但我不知道您是否需要它。它似乎也发生在其他按钮上,并且并不总是发生在同一个按钮上。
btnNext = new Button(">");
btnNext.setOnAction(e -> {
switch (view) {
case MONTH:
setDisplay(target.plusMonths(1));
break;
case WEEK:
setDisplay(target.plusWeeks(1));
break;
}
});
这只发生在我点击它然后离开之后。当程序第一次启动时,它是正常大小。
最佳答案
当控件缩小时,通常是一个好兆头,表明其他东西正在窃取它的空间。在正常情况下,Scene
会询问所有后代节点需要多少空间来渲染自身 - 这就是 prefWidth
和 prefHeight
所做的。
当存在空间限制时,大多数 Pane
子类(回想一下 Pane
子类根据特定规则管理其子类)将尝试减小一个或多个 Pane 的大 child 子们。如果您不希望特定的Node
缩小到低于其计算的大小,那么您必须指定minWidth
和/或 minHeight
,或将它们设置为USE_PREF_SIZE
。将它们中的一个或两个设置为 USE_PREF_SIZE
告诉父节点该节点不得收缩。
但是,如果您为所有节点指定USE_PREF_SIZE
,那么父节点就会遇到麻烦 - 它被告知要收缩,但它无法收缩任何东西。我不知道到底会发生什么,但最有可能的是,整个用户界面看起来很奇怪。
关于JavaFX - 为什么按钮有时会缩小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51180996/