décalage du Cursor en marge sur JFrame plein écran
Bonjour,
En attribuant un curseur sur une JFrame plein écran, j'ai eu la désagréable surprise de m'apercevoir que le curseur n'est pas pris en compte sur une bordure de 2, 3 pixels à droite et à gauche.
Voici un exemple du problème :
Il vous suffit de mettre le pointeur complétement à droite ou à gauche pour constater (ça ne le fait pas verticalement). Cliquez sur le frame pour quitter.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| import java.awt.Component;
import java.awt.Cursor;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
@SuppressWarnings("serial")
public class Test extends JFrame {
public static void main(String[] args) {
GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
Test frame = new Test();
device.setFullScreenWindow(frame);
}
public Test() {
setCursor(this, Cursor.CROSSHAIR_CURSOR);
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
System.exit(0);
}
});
setVisible(true);
}
public static void setCursor(Component component, int curseur) {
component.setCursor(Cursor.getPredefinedCursor(curseur));
}
} |
Comment régler ça ?
Petite précision, je suis sous Linux Ubuntu, je sais pas si c'est le même comportement sous Win.