Попытка использовать метод paintComponent для рисования некоторых строк с помощью другого метода, называемого drawMyString. Кажется, что drawMyString будет рисовать строки только после завершения paintComponent, что означает, что если я хочу нарисовать две строки, то сначала он будет рисовать две пустые строки.
Это код, над которым я работал:
public class DrawStrings extends JComponent {
private int row=0;
public DrawStrings() throws HeadlessException {
setPreferredSize(new Dimension(700, 400));}
public static void main(String[] args) {
JFrame frame = new JFrame("DrawStrings");
frame.add(new DrawStrings());
frame.pack();
frame.setVisible(true);
}
private void drawMyString(Graphics g, String text){
g.drawString(text, 0, row);
row +=20;
}
@Override protected void paintComponent(final Graphics g) {
g.setColor(Color.BLACK);
g.setFont(new Font("serif", Font.PLAIN, FONT_SIZE));
drawRow(g,"this is row number 1");
drawRow(g,"this is row number 2");
}
}
Ожидаемый результат:
>> this is row number 1
>> this is row number 2
Фактический объем производства:
>>
>>
>> this is row number 1
>> this is row number 2
Как это происходит и как это исправить, сохраняя функцию drawMyStrings?