Одна вещь, которую я заметил, это то, что ваши getWidth()
и getHeight()
вызовы используются для установки экстента. До тех пор, пока вы на самом деле не закончите вызывать setExtent()
, getWidth()
и getHeight()
вернут 0. Вы должны делать свои собственные вычисления, чтобы определить, насколько широким и высоким является ваше Поле, а затем установить его для экстента (до тех пор, пока они меньше, чем максимальная ширина и максимальная высота, передаваемые в layout()
. Кроме того, нет необходимости вызывать paint()
из конструктора, поскольку менеджер, в котором он находится, сделает этот вызов для вас, когда это необходимо. окрашены.