Если у вас есть только одна панель в кадре и ничего больше, попробуйте это:
Возможно, это происходит из-за цикла while в JPanel. (Не знаете, почему? нахождение фактической причины. Будет обновляться при поиске.) Если вы замените его на метод paintComponent(g)
все работает нормально:
public BSTest() {
//--- your code as it is
add(panel, BorderLayout.CENTER);
//-- removed panel.drawStuff();
}
public class DrawPanel extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.BLACK);
System.out.println("W:" + getSize().width + ", H:" + getSize().height);
g2d.fillRect(0, 0, getSize().width, getSize().height);
}
}
//your code as it is.