gpt4 book ai didi

Java 组件调整大小 - 检测用户是否调整了窗口大小或以编程方式调整了窗口大小

转载 作者:行者123 更新时间:2023-12-01 18:50:54 30 4
gpt4 key购买 nike

我有一个 JFrame,在其中删除和添加组件,每次执行此操作时,我都会相应地调整框架的大小。我添加了一个组件监听器,但当然它会由用户调整窗口大小以及我的 setSize() 方法触发。
有没有办法从 ComponentEvent 中查看是用户调整了窗口大小还是我通过 setSize() 调整了窗口大小?
我发现的可能的解决方案是:
1. 使用一个标志 - boolean 调整大小 - 我在 setSize() 之前将其设置为 true,之后设置为 false。
2. 添加mouseDragged监听器并比较拖动前后的大小。
第二个绝对不是一个好的选择。第一个可以工作,但我想知道是否可以以简单的方式找到用户是否是调整窗口大小的人。

最佳答案

I resize the frame accordingly

使用 pack() 有什么问题吗?

I remove and add components and each time I do this,

那么您应该在此处设置 boolean 值:

programResize == true:
panel.add(...);
frame.setSize(...); // this should cause the ComponentListener to fire
// the ComponentListener would then use programResize == false;

或者更好的选择可能是:

component.removeComponentListener(...);
panel.add(...);
frame.setSize(...);
component.addComponentListener(...);

我更喜欢这种方法,因为基于手动更新的所有逻辑都是自包含在一个地方,并且不需要定义 boolean 变量。

关于Java 组件调整大小 - 检测用户是否调整了窗口大小或以编程方式调整了窗口大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15966223/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com