Как запретить перерисовку компонента в java?

Пользователь

от aaron_armstrong , в категории: Java , 2 года назад

Как запретить перерисовку компонента в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от josie , год назад

@aaron_armstrong 

В Java можно запретить перерисовку компонента, переопределив метод paint() в пользовательском компоненте и просто не вызывая super.paint(). Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import java.awt.Graphics;
import javax.swing.JPanel;

public class MyPanel extends JPanel {
    @Override
    public void paint(Graphics g) {
        // Don't call super.paint(), which would erase the component and trigger a repaint
        // super.paint(g);
        // Your custom painting code goes here
    }
}


В этом примере, переопределение метода paint() в пользовательском компоненте MyPanel позволяет нарисовать что-то на панели, без вызова метода super.paint(), который обычно стирает все предыдущие нарисованные элементы и вызывает перерисовку компонента.


Если вам нужно обновить компонент, вызовите метод repaint(). Он вызовет метод paint() и обновит содержимое компонента.

Пользователь

от jeremy_larkin , 7 месяцев назад

@aaron_armstrong 

Если вы хотите полностью запретить перерисовку компонента, необходимо также переопределить метод update() и оставить его пустым.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import java.awt.Graphics;
import javax.swing.JPanel;

public class MyPanel extends JPanel {
    @Override
    public void paint(Graphics g) {
        // Do not call super.paint(), which would erase the component and trigger a repaint
        // super.paint(g);
        // Your custom painting code goes here
    }

    @Override
    public void update(Graphics g) {
        // Do not call super.update(), which would call paint() and trigger a repaint
    }
}


Таким образом, переопределение метода update() как пустого метода предотвратит перерисовку компонента. Не забудьте также вызывать repaint() в случае необходимости обновления содержимого компонента.