社区首页 >问答首页 >使用宽度/高度侦听器更新控件的JavaFX

使用宽度/高度侦听器更新控件的JavaFX
EN

Stack Overflow用户
提问于 2014-05-23 04:33:02
回答 1查看 2.6K关注 0票数 0

我在我的应用程序中使用JavaFX SplitPanes,当高度和宽度发生变化时,我需要更改分隔符的位置,因为希望将分隔符位置固定在上。我的代码如下:

代码语言:javascript
代码运行次数:0
复制
scene.widthProperty().addListener(new ChangeListener<Number>() {
    @Override
    public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneWidth, Number newSceneWidth) {
         GUIController.resetMainSplitPane();
    }
});
scene.heightProperty().addListener(new ChangeListener<Number>() {
    @Override
    public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneHeight, Number newSceneHeight) {
             GUIController.resetMusicSplitPane();
    }
});

resetSplitPane方法:

代码语言:javascript
代码运行次数:0
复制
public static void resetMusicSplitPane() {
    musicSplitPane.setDividerPosition(0, 0.7);
    Util.err("height changed");
}

我确实得到了消息‘高度改变’,但是分隔符的位置有,而不是被改变了。我认为这与JavaFX执行gui更改有关,这些更改覆盖了我的更改。换句话说,我更改了分隔符的位置,但是JavaFX更改了它,因为它的执行布局会随着窗口大小的调整而改变。

EN

回答 1

Stack Overflow用户

发布于 2014-05-23 16:41:47

通常情况下,当场景被调整大小时,分割器会自动调整自己(即分割器两侧的大小增加/减小)。我能想到的唯一原因,关于为什么,你试图设置分隔位置,不是增加或减少的高度/宽度的一边的分离器。这可以通过使用

代码语言:javascript
代码运行次数:0
复制
SplitPane.setResizableWithParent(paneToBeFixed, Boolean.FALSE);

演示它如何工作的一个小例子,( Sergeyhere中给出的例子)

代码语言:javascript
代码运行次数:0
复制
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.SplitPane;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.text.Text;
import javafx.stage.Stage;


public class TestObjectArray extends Application {

    @Override
    public void start(Stage stage) {
        final SplitPane root = new SplitPane();

        final Pane paneFixed = new StackPane();
        paneFixed.getChildren().add(new Text("Fixed"));

        SplitPane.setResizableWithParent(paneFixed, Boolean.FALSE);

        Pane paneFree = new StackPane();
        paneFree.getChildren().add(new Text("Free"));

        root.getItems().addAll(paneFixed, paneFree);

        Scene scene = new Scene(root, 300, 200);
        stage.setScene(scene);
        stage.show();

    }
    public static void main(String[] args) {
        launch(args);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23829381

复制
相关文章
超简单网页自动刷新插件介绍
个别场景需要手动刷新页面等待某个结果,刷太频繁,很累,时间长不刷又怕错过,肿么办?
明明如月学长
2021/08/31
4.9K1
超简单网页自动刷新插件介绍
网页刷新方法集合
本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。
Java架构师必看
2021/03/22
6790
JSP 防止网页刷新重复提交数据
if session("ok")=true then    response.write "错误,正在提交"    response.end end if
阳光岛主
2019/02/19
11.6K0
怎么自动刷新jwt?
如果用户一直在操作,当jwt颁发的token凭证到了过期时间需要有一个机制能自动延长过期时间。除非用户长时间没有操作,那是需要强制重新登录的。
蛋蛋编程手记
2022/07/27
3.3K0
网页|利用touch实现下拉刷新
下拉刷新在常见的手机app上大多都有运用。下拉刷新即向下拉重新加载、刷新。下拉刷新在下拉到松手的过程中,经历了三个状态分别是:当前手势滑动位置与初始位置差值大于零时,提示正在进行下拉刷新操作。之后当下拉到一定值时,显示松手释放后的操作提示。最后当下拉到达设定最大值松手时,执行回调,提示正在进行更新操作。如下图则为下拉刷新的实现效果:
算法与编程之美
2020/07/16
1.7K0
网页|利用touch实现下拉刷新
自动刷新页面
script> <!--  var limit="0:15" if (document.images){ var parselimit=limit.split(":") parselimit=parselimit[0]*60+parselimit[1]*1 } function beginrefresh(){ if (!document.images) return if (parselimit==1) window.location.reload() else{  parselimit-=1 curmin
张善友
2018/01/19
2.4K0
前端自动刷新工具
Browsersync能让浏览器实时、快速响应您的文件更改(html、js、css、sass、less等)并自动刷新页面。更重要的是 Browsersync可以同时在PC、平板、手机等设备下进项调试。
李维亮
2021/07/09
1.1K0
网页自动提交
昨天的视频python模拟在线测试1。 核心代码: timer = setInterval(function() { // 时间到自动提交试卷 if (count==0){ clearInterval(timer) alert("时间到,已自动交卷") } count--; tag3.innerHTML = showNum(count % 60) tag2.innerHTML = showNum(parseInt(count
叶子陪你玩
2021/12/01
1.6K0
网页自动提交
怎样编写健壮的代码
怎样编写健壮的代码 怎样编写健壮的代码.png 代码的几种特性 鲁棒性Robust(健壮性) 系统在异常和危险情况下生存的关键 容错性 可移植性 反例: 脆弱、僵化、顽固且粘滞性高 如何构建高效、健壮
一个会写诗的程序员
2019/07/08
1.8K0
javascript_时间自动刷新
=========================================================
Hongten
2018/09/13
1.7K0
javascript_时间自动刷新
Weex iOS端的自动刷新和调试
最近开始接触weex。目前weex尚不成熟,官方文档有些粗糙,初学者难免碰壁。这里分享两条我的初学经验,供参考。
全栈程序员站长
2022/07/20
1.2K0
Weex iOS端的自动刷新和调试
如何判断是关闭还是刷新网页
我们在写js代码的时候,经常要判断网页是否被关闭了,如果是被关闭了,就执行某段代码,这个可以用HTML的onbeforeunload事件来执行一段js代码,但是如果网页只是被刷新的话,也同样会触发onbeforeunload事件,下面这段js代码可以判断是否关闭 //判断是关闭还是刷新 if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey) {     alert("你关闭了浏览器"); } 这段代码就是判断触发onbeforeunload事件时,鼠标是否点击了关闭按钮,或者按了ALT+F4来关闭网页,如果是,则认为系统是关闭网页,否则在认为系统是刷新网页
源哥
2018/08/28
3K0
通过MySQL自动同步刷新Redis
在服务端开发过程中,一般会使用MySQL等关系型数据库作为最终的存储引擎,Redis其实也可以作为一种键值对型的数据库,但在一些实际场景中,特别是关系型结构并不适合使用Redis直接作为数据库。这俩家伙简直可以用“男女搭配,干活不累”来形容,搭配起来使用才能事半功倍。本篇我们就这两者如何合理搭配以及他们之间数据如何进行同步展开。 一般地,Redis可以用来作为MySQL的缓存层。为什么MySQL最好有缓存层呢?想象一下这样的场景:在一个多人在线的游戏里,排行榜、好友关系、队列等直接关系数据的情景下,如果直接
逸鹏
2018/04/11
7.9K0
通过MySQL自动同步刷新Redis
Bus集成webhooks实现自动刷新
内网穿透网站:https://natapp.cn/ 我需要将127.0.0.1:8848利用内网穿透映射成为公网地址,所以注意如下配置:
别团等shy哥发育
2023/02/25
9190
Bus集成webhooks实现自动刷新
网页自动跳转_网页跳转到其他网站
关闭浏览器,然后删除c:/program files/Internet Explorer/3348201013.dat
全栈程序员站长
2022/11/10
2.1K0
vue监听页面刷新事件_vue监听数据变化自动刷新
注意:有返回值(’ ‘,true,false…都可以)才能弹出显示,或者有需要执行的事件也行。
全栈程序员站长
2022/11/01
5.8K0
[开发技巧]·html实现返回页面并自动刷新
在进行APP开发或作制作网站时,有时候会遇到你下一级页面操作过以后会改变上一级页面的结果。这时候就需要我们去刷新上一级页面。 一般可以采取三种方式:
小宋是呢
2019/06/27
6.1K0
springboot+idea热部署(自动刷新)
spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。
全栈程序员站长
2022/09/14
1.6K0
springboot+idea热部署(自动刷新)
用Python写网页的自动签到
2.下载chromedriver驱动; 找到符合自己浏览器版本的chromedriver驱动,下载解压后,将chromedriver.exe文件放到Python目录下的Scripts目录下,也可以添加环境变量到Path中。
用户2590762
2021/08/11
2.5K0
点击加载更多

相似问题

当窗口调整大小时,如何使div不收缩?

13

在Chrome中调整flexbox大小时避免滚动条?

10

Flexbox元素在调整窗口大小时重叠

23

CSS Flexbox:沿交叉轴收缩并显示滚动条

30

当窗口调整大小时,画布拒绝展开或收缩。

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文