- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法设置 titledpane 的动画速度?我什么也没找到。事实上有两个问题。第一的:展开的动画比内容本身的展开更快。您会看到圆圈的速度比第二个标题 Pane 中的条向下移动的速度稍慢。
第二:如何改变两者的速度。我需要它们以相同的速度,因为它看起来很奇怪。
这是一个用于测试目的的小示例:封装测试;
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Scene;
import javafx.scene.control.TitledPane;
import javafx.scene.layout.VBox;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Line;
import javafx.stage.Stage;
public class TestClass extends Application{
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
VBox vb = new VBox();
{
TitledPane tp = new TitledPane();
System.out.println(tp.getContextMenu());
tp.setContent(new Circle(100));
tp.setText("asfadf");
tp.expandedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
System.out.println("expand " + newValue);
}
});
vb.getChildren().add(tp);
}
vb.getChildren().add(new Line(0, 0, 100, 0));
{
TitledPane tp = new TitledPane();
tp.setContent(new Circle(100));
tp.setText("asfadf");
tp.expandedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
System.out.println("expand " + newValue);
}
});
vb.getChildren().add(tp);
}
vb.setStyle("-fx-background-color: gray");
Scene scene = new Scene(vb,500,500);
primaryStage.setScene(scene);
primaryStage.show();
}
}
最佳答案
简短回答:没有 API 可以更改持续时间。
但是,无论如何,有两种方法可以实现它:
持续时间在静态最终字段com.sun.javafx.scene.control.TitledPaneSkin.TRANSITION_DURATION
中定义。使用反射,您可以更改其值但这非常糟糕。不仅因为这是一种肮脏的黑客行为,还因为 TitledPaneSkin
是 Oracle 内部 API,无论如何都可能会发生变化。此外,这不能解决不同速度的问题:
private static void setTitledPaneDuration(Duration duration) throws NoSuchFieldException, IllegalAccessException {
Field durationField = TitledPaneSkin.class.getField("TRANSITION_DURATION");
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(durationField, durationField.getModifiers() & ~Modifier.FINAL);
durationField.setAccessible(true);
durationField.set(TitledPaneSkin.class, duration);
}
为了安全起见,您可以使用 titledPane.setSkin()
创建并使用自己的皮肤(首先复制现有皮肤)。通过这种方式,您还可以修复不同的速度,这基本上是由线性插值与缓动插值引起的 - 但这是相当多的工作。
关于animation - Javafx titledpane 动画速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33298363/
有没有办法将 TitledPane 标题的大小设置为 GridPane 的大小? 这是 TitledPane 的代码 // --- GridPane container fin
关于 JavaFX: How to change the focus traversal policy? Alexander Kirov 展示了如何为 JavaFX 应用程序自定义焦点遍历策略。它工作
是否可以在 TitledPane 的标签上添加 JavaFX.Button? 已找到解决方案!来源:javawiki.sowas.com/doku.php?id=javafx:titledpane-w
我正在使用 TitledPanes ScrollPanes 和 TableViews,并且我遇到了问题,当我折叠 titledPane 时,水平 TableView 的 >ScrollBar 重置。
我有一个 TitledPane ,里面有 ListView ,当我折叠 titledPane 并展开它后,列表不再可见,但它仍然在某处。如果我调整 titledPane 的大小(通过调整应用程序窗口的
我需要在运行时根据一些传入值更改 TitledPane 标题背景,否则重置它。 我所有的 TitledPane 都在附加到场景的 CSS 上设置了样式。 换个背景没问题。问题是当鼠标在背景更改后进入标
我有两个不同的组件:TableView 和表格旁边的 TitledPane。我想做的是重新调整表格 View 的尺寸,但仅在标题 Pane 展开或折叠时进行。当 titledpane 折叠时,表格 V
我想知道,如何在展开和折叠 TitledPane 时调整 Scene 的大小。 我试过只有 1 个 TitledPane 1 个标题 Pane package fxinswing; import ja
有没有办法设置 titledpane 的动画速度?我什么也没找到。事实上有两个问题。第一的:展开的动画比内容本身的展开更快。您会看到圆圈的速度比第二个标题 Pane 中的条向下移动的速度稍慢。 第二:
我遇到了一个奇怪的问题/错误,第一次单击时 TitledPane 不会展开,它需要多次单击才能展开。除此之外,嵌套的 TitledPanes 根本不会展开,除非您多次单击它们并在选项卡之间切换。 所以
我有一个 View ,其中 SplitPane 中有两个垂直方向的 TitledPane。我希望当我折叠其中一个时,将另一个的大小调整为场景的高度。这是我的 .fxml 文件的代码:
是否可以完全删除 TitledPane 的标题? 我设法使用 css 文件中的以下代码使其不可见: .titled-pane > .title{ -fx-background-color: r
有没有办法在 javafx 中设置 TitledPane 之间的边距? 我创建了多个带标题的 Pane 并将它们放在一个 VBox 中。我希望它在每个带标题的 Pane 之间有一个间隙。 我查了set
我已经设法使用 setGraphic 在 TitledPane 中放置一个按钮,但我希望它位于右侧;这是代码: @Override public void start(Stage primaryS
我正在尝试将自定义工具栏添加到通用 TitledPane 中。我的代码似乎可以工作(下面是最小的示例),但我在布局方面遇到问题。具体来说:我使用 setGraphic() 添加工具栏,但它似乎具有固定
有人知道如何在 JavaFX 中以编程方式折叠 TitledPane 吗?我知道 setExpanded 和 setCollapsible 方法可用,但它仅启用该属性。我想在没有任何鼠标交互的情况下折
所以,这是我现在拥有的代码: SplitPane sp = new SplitPane(); final StackPane sp1 = new StackPane(); fi
我目前有一行添加到 JFrame 的 JPanel。我需要这些面板能够展开和折叠,以尽量减少 JFrame 上的困惑。 现在,我只是创建 JPanel,然后将它们添加到 JFrame。 public
我有这个代码: public void start(Stage primaryStage){ TitledPane titledPane = new TitledPane("TITLE", n
我想在 TitledPane 的标题中添加一个小图标。因此,我设置了一个空标题并添加了一个包含 Label 和 ImageView 的 HBox 作为图形。通过这种方式,图标显示在靠近文本末尾的位置。
我是一名优秀的程序员,十分优秀!