Я не очень хорошо знаком с JApplet, а также с рисованием и перекрашиванием(). Любая помощь приветствуется.
У меня есть внешний класс «A», который расширяет JApplet и рисует что-то в его paint(). У меня также есть частный класс «B», который находится внутри A, а также расширяет JApplet и рисует что-то в его paint(). Paint() A вызывает paint() B, поэтому при запуске A рисуются как A, так и B.
Я использую mouselistener, чтобы определить, когда щелкнули мышью, и именно тогда B должен перерисовать() и нарисовать что-то новое и удалить старое.
Однако, когда я нажимаю кнопку мыши, я вижу, что repaint() в B ничего не делает. Я вывожу на консоль пару отладочных сообщений и могу сказать, что при вызове функции B repaint() ничего не происходит, т. е. программа должна снова пройти через функцию paint() B, но этого не происходит.
Вот общая структура, и снова приветствуется любая помощь.
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class A extends JApplet {
private class B extends JApplet implements MouseListener{
public B() { }
public void paint (Graphics g) {
// g.drawline ...
//System.out...
}
public void mousePressed(MouseEvent e) {
//System.out....
repaint();
}
public void mouseReleased(MouseEvent e) {
//System.out....
repaint();
}
// ... rest of mouse listener interface
}
public void init() {
// setSize() ...
}
public void paint(Graphics g) {
// g.drawRectange ...
// Draw other stuff
B b = new B();
B.paint(g)
}
}
private class B extends JApplet implements MouseListener{ public B() { }
(но добавьтеimplements MouseListener
во внешний апплет), и он должен работать как положено (AFAIU). Что приводит к вопросу... Почему вы пытаетесь это сделать? - person Andrew Thompson   schedule 18.11.2018System.out.println()
печатаются, но контент не перезагружается. Также включите код, который показывает/загружает ваш апплет. - person Progman   schedule 18.11.2018[mcve]
в комментарии автоматически расширяется до минимального воспроизводимый пример. - person Andrew Thompson   schedule 19.11.2018