gpt4 book ai didi

java - 在 paintComponent 之前获取组件尺寸?

转载 作者:行者123 更新时间:2023-11-30 11:03:05 25 4
gpt4 key购买 nike

我正在绘制我自己的扩展 JPanel 的组件:

protected void paintComponent(Graphics g) {

这很好用。

我需要做很多准备组件的工作。这项工作取决于组件的尺寸。

组件的尺寸似乎只能在 paintComponent() 函数中使用。所以我现在这样做:

if(firstTime){
//do init
firstTime=false
}
//draw

在我的 paintComponent() 函数中。我不喜欢这个解决方案。

有没有一种方法可以在调用 paintComponent() 函数之前获取尺寸?(它在构造函数中似乎无效)

最佳答案

有一个选项可以改为绘制到 BufferedImage。显然(或者至少,我希望这是显而易见的)我们在创建图像时给了图像一个尺寸。

我们得到一个像这样的 Graphics2D 对象:

Graphics2D g = bi.creatGraphics();

图像可以显示在JLabel中:

JLabel label == new JLabel(new ImageIcon(bi));  // now add the label to something..

在新的绘画调用后刷新标签:

label.repaint();

但就像@HovercraftFullOfEels 一样,我怀疑这是最好的方法。

关于java - 在 paintComponent 之前获取组件尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30546967/

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