У меня есть эта программа, где у меня есть холст в окне с двумя кругами в нем (вы можете переместить один из кругов, нажав на холст).Java repaint обновляет только часть моего Canvas
Он работает без проблем на окнах и прошивке, но она имеет эту проблему на убунту:
Когда я изменить выбранный круг выпадающего списка в верхнем левом углу окна, круги исчезают и только видимый в верхнем левом углу холста в области, которая была покрыта элементами списков, прямо перед тем, как я поместил выбранный круг.
Также, когда я перетаскиваю окно приложения, чтобы оно покидало экран или помещало другое окно над моим окном, круги становятся видимыми в той части холста, которая была скрыта.
Не могли бы вы объяснить, почему это происходит и что я делаю неправильно?
код моей программы здесь: http://pastie.org/private/rm0gw2awx6d7iztyabzs7q
Может быть, это потому, что я использовал холст вместо JPanel. Но когда я делаю это JPanel, он начинает делать сумасшедшие вещи, когда я перемещаю круг. – dannymo
Работает на iOS, это отличный подвиг – MadProgrammer
Вы нарушаете цепочку рисования, вы должны называть super.paint, но в случае JPanel вы должны переопределять paintComponent (и вызов super.paintComponent) – MadProgrammer