Q similaire à ToolTip flicker in Java if outside JFrame ?
Une info-bulle légère constamment mise à jour fonctionne bien, mais dès qu'elle sort des limites de la fenêtre ou qu'elle devient plus lourde (en désactivant les popups légers), c'est la ville du scintillement.
J'ai essayé l'astuce "-Dsun.awt.noerasebackground=true" qui fonctionne à l'intérieur d'une fenêtre, mais au prix de quelques artefacts de peinture sur d'autres composants (cet exemple est juste un panneau vide). En dehors des limites d'une fenêtre, cela n'aide pas, il y a toujours des quantités horribles de scintillement.
Quelqu'un sait-il comment résoudre ce problème ? Ou est-ce que ce n'est pas possible actuellement ?
L'exemple se trouve dans ce code -->
import java.awt.BorderLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.ToolTipManager;
public class JTooltipFlickerTest extends JFrame {
JPanel panel;
static public void main (final String[] args) {
new JTooltipFlickerTest ();
}
public JTooltipFlickerTest () {
super ();
//ToolTipManager.sharedInstance().setLightWeightPopupEnabled(false);
//ToolTipManager.sharedInstance().setReshowDelay(0);
setTitle (this.getClass().toString());
setSize (1024, 768);
this.getContentPane().setLayout (new BorderLayout());
SwingUtilities.invokeLater (
new Runnable () {
@Override
public void run() {
panel = new JPanel ();
final MouseAdapter ma = new MouseAdapter () {
public void mouseMoved (final MouseEvent e) {
panel.setToolTipText ("x: "+e.getX()+", y: "+e.getY());
}
};
panel.addMouseMotionListener(ma);
//panel.setDoubleBuffered(true);
//panel.createToolTip().setDoubleBuffered(true);
JTooltipFlickerTest.this.getContentPane().add (panel, "Center");
JTooltipFlickerTest.this.setVisible (true);
}
}
);
}
}