Methoden, um den Mauszeiger zu verstecken

This commit is contained in:
ngb
2022-01-08 22:16:06 +01:00
parent f1e422e98a
commit 14ee43eb8e
3 changed files with 35 additions and 4 deletions

View File

@@ -29,6 +29,7 @@ public class Raindrops extends Zeichenmaschine {
public void setup() {
setSize(400, 600);
setTitle("ZM: Raindrops");
hideCursor();
drawing.setFontSize(64);
}

View File

@@ -62,6 +62,8 @@ public class Raindrops extends Zeichenmaschine {
* Initialisierung des Spiels und der benötigten Objekte.
*/
public void setup() {
hideCursor();
// Hintergrund blaugrau
background.setColor(129, 174, 206);

View File

@@ -5,10 +5,7 @@ import schule.ngb.zm.util.ImageLoader;
import javax.swing.*;
import javax.swing.event.MouseInputListener;
import java.awt.Graphics2D;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.MouseInfo;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.File;
@@ -186,6 +183,10 @@ public class Zeichenmaschine extends Constants implements MouseInputListener, Ke
// Gibt an, ob nach Ende des Hauptthreads das Programm beendet werden soll,
// oder das Zeichenfenster weiter geöffnet bleibt.
private boolean quitAfterTeardown = false;
// Mauscrusor
private Cursor invisibleCursor = null;
private boolean cursorVisible = true;
//@formatter:on
@@ -682,6 +683,33 @@ public class Zeichenmaschine extends Constants implements MouseInputListener, Ke
}
}
/**
* Zeigt den Mauszeiger wieder an, falls er zuvor {@link #hideCursor() versteckt}
* wurde.
*/
public final void showCursor() {
// Übernommen aus processing.awt.PSurfaceAWT von Processing4
if (!cursorVisible) {
cursorVisible = true;
canvas.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
}
/**
* Macht den Mauszeiger unsichtbar.
*/
public final void hideCursor() {
// Übernommen aus processing.awt.PSurfaceAWT von Processing4
if (invisibleCursor == null) {
BufferedImage cursorImg =
new BufferedImage(16, 16, BufferedImage.TYPE_INT_ARGB);
invisibleCursor =
canvas.getToolkit().createCustomCursor(cursorImg, new Point(8, 8), "blank");
}
canvas.setCursor(invisibleCursor);
cursorVisible = false;
}
/*
* Methoden, die von Unterklassen überschrieben werden können / sollen.
*/