gpt4 book ai didi

java - 调整大小时由 LayoutManager 通知 JPanel

转载 作者:行者123 更新时间:2023-12-02 11:06:03 26 4
gpt4 key购买 nike

我有一个扩展 JPanel 的类 MyPanel
MyPanel 是一个子面板:他的大小由其父面板的 LayoutManager 动态计算。
问题是我需要在其父级的 LayoutManager 计算出其尺寸后立即通知 MyPanel
需要通知它,因为我需要根据面板的大小初始化一些变量。

如果我在 MyPanel 构造函数中调用 getSize() ,我会得到 (0,0),因为面板尚未“准备好”。
我什么时候应该调用getSize()

我想要这样的东西:

/** Lays out the panel and sets his size according to his layout */
@Override
public void onReady() {
System.out.println(getSize()); //output is (0,0);
super.onReady();
System.out.println(getSize()); //output is (600,500);
//here i can initialize my variables
}

有类似的吗?也许doLayout()

我能找到的唯一方法是在 paintComponent() 方法中调用 getSize() ...它肯定有效,因为当 paintComponent() 时面板肯定会显示 被调用,但我不能这样做,因为我需要在知道面板大小后立即初始化一些变量......但只有一次! paintComponent() 将被调用多次...

最佳答案

关于java - 调整大小时由 LayoutManager 通知 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10454643/

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