0
Я пытаюсь нарисовать линию от (0,0) до центра панели. Никакая строка не нарисована, потому что getWidth() и getHeight() в конструкторе DrawingPanel возвращают 0. Я предполагаю, что это связано с тем, что кадр еще не отображается. Как я могу получить размер панели тогда?Получить размер JPanel
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);
}
}