gpt4 book ai didi

java - 获取 JPanel 的大小

转载 作者:行者123 更新时间:2023-12-02 04:18:06 27 4
gpt4 key购买 nike

我试图从 (0,0) 到面板中心画一条线。没有绘制线条,因为 DrawingPanel 构造函数中的 getWidth() 和 getHeight() 返回 0。我猜这是因为框架还不可见。那么我怎样才能得到面板的尺寸呢?

import java.awt.*;
import javax.swing.*;


public class DrawingApplication extends JFrame {
static int CenterX;
static int CenterY;

public DrawingApplication(){
setTitle("Drawing Application");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setExtendedState(JFrame.MAXIMIZED_BOTH);
DrawingPanel pnlDraw = new DrawingPanel();
add(pnlDraw);
}

public static void main(String[] args) {
DrawingApplication drawingApp = new DrawingApplication();
drawingApp.setVisible(true);
}
}


class DrawingPanel extends JPanel {
int CenterX, CenterY;

public DrawingPanel(){
CenterX = getWidth()/2;
CenterY = getHeight()/2;
}

public void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D) g;
super.paintComponent(g);
g2.drawLine(0, 0, CenterX, CenterY);
}
}

最佳答案

有几种方法。最简单的是这些:

  1. 使用 ComponentListener 更新大小,并在触发 componentShowncomponentResized 时更新大小。
  2. 只需在每次绘制 JPanel 时获取尺寸即可。

关于java - 获取 JPanel 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33086940/

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