为了移动节点,什么时候使用转换,什么时候重新定位?在一天结束时,他们似乎做了同样的事情(视觉上);移动节点;第一种方法是对原点进行翻译(x,y保持不变),第二种方法是改变x,y的coords。所以假设我想移动屏幕中特定点上的一个节点…我应该使用node.relocate(x,y)还是node.setTranslatex(x),node.setTranslatey(y)?
为了说明我的意思,我做了一个你可以玩的示例程序:屏幕上的一个矩形,它的位置由4个滑块决定(其中2个控制布局x,y,另外两个控制平移x,y)。
/* imports are missing */
public class TransReloc extends Application{
@Override
public void start(Stage primaryStage) throws Exception {
Group root = new Group();
Rectangle rect = new Rectangle(100, 50, Color.BLUE);
root.getChildren().add(rect);
VBox controlGroup = new VBox();
Slider relocX = new Slider(-100, 100, 0 );
Slider relocY = new Slider(-100, 100, 0 );
Slider transX = new Slider(-100, 100, 0 );
Slider transY = new Slider(-100, 100, 0 );
rect.layoutXProperty().bind(relocX.valueProperty());
rect.layoutYProperty().bind(relocY.valueProperty());
rect.translateXProperty().bind(transX.valueProperty());
rect.translateYProperty().bind(transY.valueProperty());
controlGroup.getChildren().addAll(relocX, relocY, transX, transY);
root.getChildren().add(controlGroup);
controlGroup.relocate(0, 300);
Scene scene = new Scene(root, 300, 400, Color.ALICEBLUE);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Layout
坐标由布局管理器使用,如StackPane或VBox来控制它们的子位置。组(和窗格)将子布局留给开发人员,因此与translate
功能没有区别。
因此,通常您应该只更改translate
坐标以进行精细的位置调优,而将layout
留给布局管理器(实际上,您不能为非组/窗格布局管理器中的节点更改layoutX和layoutY)
例如,尝试运行下一个代码和调整大小窗口,查看StackPane如何重新计算layoutbounds
public void start(Stage primaryStage) throws Exception {
StackPane root = new StackPane();
Rectangle rect = new Rectangle(100, 50, Color.BLUE);
root.getChildren().add(rect);
Scene scene = new Scene(root, 300, 300, Color.ALICEBLUE);
rect.layoutXProperty().addListener( (e) -> {
System.out.println(rect.getLayoutX() + ":" + rect.getLayoutY());
});
primaryStage.setScene(scene);
primaryStage.show();
}
问题内容: res.location()方法的用途是什么?我可以使用res.redirect()重定向到特定的URL,如果在res.redirect()之前使用res.location(),则看不到任何更改。 问题答案: 它们的描述非常相似,但功能更多。看到差异的最简单方法是查看源代码。 只需设置响应头即可。它不会设置响应状态代码或关闭响应,因此您可以根据需要编写响应正文,然后必须自己调用。 另一
我正在制作一个程序,并使用用户输入。当我得到一个字符串时,我总是使用. nextLine(),但我也使用了. Next(),它做同样的事情。有什么区别呢? 有什么区别?
问题内容: 我已经对Stack Overflow进行了彻底的搜索,但是找不到此问题的答案。我正在尝试使用适用于Python(3.6.2)的GoogleTranslate API(googletrans2.2.0),并试图将一组非英语文档翻译成英语。我让GoogleTranslate进行语言检测。这是我的代码: 我每次都要等待10秒,从而限制了对API的调用。我也一次只喂API 15k个字符,以保持
类的这两种方法之间有什么区别: 和 文档并不能清楚地区分它们之间的区别。
请帮助我理解在哪里使用常规连接以及连接在哪里提取。 例如,如果我们有这两个查询 而且 它们之间有什么区别吗?如果是,何时使用哪一种?
在Java 7之前,JVM内存中有一个名为PermGen的区域,JVM以前在这里保存它的类。在Java 8中,它被移除并被称为元空间的区域所取代。 PermGen和Metaspace之间最重要的区别是什么? 我知道的唯一区别是,并且忽略了VM参数。