Java 获取JPanel的大小
我试图从(0,0)到面板中心画一条线。未绘制线,因为DrawingPanel构造函数中的getWidth()和getHeight()返回0。我想这是因为框架还不可见。那我怎么才能知道面板的尺寸呢Java 获取JPanel的大小,java,jframe,jpanel,size,Java,Jframe,Jpanel,Size,我试图从(0,0)到面板中心画一条线。未绘制线,因为DrawingPanel构造函数中的getWidth()和getHeight()返回0。我想这是因为框架还不可见。那我怎么才能知道面板的尺寸呢 import java.awt.*; import javax.swing.*; public class DrawingApplication extends JFrame { static int CenterX; static int CenterY; public
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);
}
}
有几种方法。最简单的是:
ComponentListener
更新大小,并在触发ComponentShowed
或ComponentResistized
时更新大小JPanel
时获取大小即可