{"id":2350,"date":"2013-09-22T12:21:33","date_gmt":"2013-09-22T10:21:33","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=2350"},"modified":"2013-09-22T12:21:33","modified_gmt":"2013-09-22T10:21:33","slug":"durch-null-cursor-flackern-des-mauszeigers-bei-animationen-vermeiden","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2013\/09\/durch-null-cursor-flackern-des-mauszeigers-bei-animationen-vermeiden\/","title":{"rendered":"Durch Null-Cursor Flackern des Mauszeigers bei Animationen vermeiden"},"content":{"rendered":"<p>Einige Betriebssysteme haben bei Java-Animationen das Problem, dass der Mauszeiger unruhig flackert. Zur L\u00f6sung kann man einen Cursor ohne Pixel an die Stelle der Grafik setzen.<\/p>\n<p>Es ist Sache der grafischen Oberfl\u00e4che, den Mauszeiger mit dem Hintergrund zu verbinden. Um ein unruhiges Bild zu vermeiden, greifen wir zu einem Trick und schalten den Mauszeiger einfach ab. Dazu soll <b>createCustomCursor()<\/b> einen neuen Cursor mit transparentem Image-Objekt erzeugen. Da wir kein leeres transparentes GIF-Bild nutzen wollen, legen wir einfach mit der Klasse <b>BufferedImage<\/b> ein Bild im Speicher an. Das Argument muss dabei <b>TYPE_INT_ARGB<\/b> sein, sonst ist das Bild nicht transparent. Damit ist die Arbeit getan, der letzte Schritt besteht darin, den Cursor mit <b>setCursor()<\/b> einer Komponente zuzuweisen. Im Fall einer Animation w\u00e4re das zum Beispiel ein <b>JComponent<\/b>, im folgenden Beispiel wird das eine Schaltfl\u00e4che sein:<\/p>\n<pre>import javax.swing.*;\nimport java.awt.*;\nimport java.awt.image.*;\n\npublic class NullCursor\n{\n public static void main( String[] args )\n {\n  JFrame f = new JFrame();\n  f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );\n\n  JButton b = new JButton( &quot;Kein Cursor&quot; );\n  f.add( b, BorderLayout.PAGE_START );\n\n  b.setCursor( Toolkit.getDefaultToolkit().createCustomCursor(\n    new BufferedImage( 16, 16, BufferedImage.TYPE_INT_ARGB ),\n    new Point(0,0), &quot;&quot; ) );\n\n  f.setSize( 200, 200 );\n  f.setVisible( true );\n }\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Einige Betriebssysteme haben bei Java-Animationen das Problem, dass der Mauszeiger unruhig flackert. Zur L\u00f6sung kann man einen Cursor ohne Pixel an die Stelle der Grafik setzen. Es ist Sache der grafischen Oberfl\u00e4che, den Mauszeiger mit dem Hintergrund zu verbinden. Um ein unruhiges Bild zu vermeiden, greifen wir zu einem Trick und schalten den Mauszeiger einfach [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[1],"tags":[],"class_list":["post-2350","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2350","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=2350"}],"version-history":[{"count":1,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2350\/revisions"}],"predecessor-version":[{"id":2351,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2350\/revisions\/2351"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=2350"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=2350"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=2350"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}