{"id":523,"date":"2018-11-15T14:04:21","date_gmt":"2018-11-15T13:04:21","guid":{"rendered":"https:\/\/freizone.net\/java-einfach-lernen\/?p=523"},"modified":"2020-05-11T19:29:40","modified_gmt":"2020-05-11T17:29:40","slug":"verschoenerungen-ii-icons","status":"publish","type":"post","link":"https:\/\/freizone.net\/java-einfach-lernen\/2018\/11\/15\/verschoenerungen-ii-icons\/","title":{"rendered":"Versch\u00f6nerungen II &#8211; Icons"},"content":{"rendered":"<p>Um Icons verwenden zu k\u00f6nnen m\u00fcssen wir zun\u00e4chst welche haben. Eine sch\u00f6ne Seite f\u00fcr freie Icons ist das <a href=\"http:\/\/tango.freedesktop.org\/Tango_Icon_Library\">Tango Icon Project<\/a> von Wiki-Commons.\u00a0 <a href=\"http:\/\/tango.freedesktop.org\/releases\/tango-icon-theme-0.8.90.tar.gz\">Hier<\/a> der direkte Link zum Download des Iconpakets.<br \/>\nSobald wir das das Iconpaket entpackt haben, finden wir darin Ordner mit den Icons in verschiedenen Gr\u00f6\u00dfen. Wir ben\u00f6tigen den Ordner 16&#215;16. Bevor wir den Inhalt nutzen k\u00f6nnen, m\u00fcssen wir in Eclipse einen sogenannten Resource-Ordner hinzuf\u00fcgen. Wir gehen dabei wie folgt vor:<br \/>\n&#8211; rechter Mausklick auf unser Projekt &#8222;MiniMalen&#8220;<br \/>\n&#8211; Neu-&gt;Ordner<br \/>\n&#8211; als Name geben wir &#8222;bilder&#8220; ein<br \/>\n&#8211; rechter Mausklick auf den gerade erstellten Ordner-&gt;importieren w\u00e4hlen<br \/>\n&#8211; Dateisystem w\u00e4hlen, dann Weiter klicken<br \/>\n&#8211; oben rechts auf durchsuchen klicken<br \/>\n&#8211; den gew\u00fcnschten ordner mit den ressourcen w\u00e4hlen, in unserem Fall ist das der 16&#215;16 Ordner des Tango Icon Themes, dann Ok.<br \/>\n&#8211; Die gew\u00fcnschten Bilder abhaken -&gt; Fertigstellen<\/p>\n<p>Die gew\u00fcnschten Bilder befinden sich nun in unserem Ordner bilder. Das Bild was wir ben\u00f6tigen hei\u00dft system-shutdown.png. Diesem geben wir einen anderen passenden Namen, z.B. schalter.png. Au\u00dferdem kopieren und spiegeln es vertikal\u00a0 (z.B. mit Photoshop oder IrfanView). Dann geben wir ihm den Namen schalterselected. Ich hab das schon f\u00fcr euch erledigt. Nachfolgend k\u00f6nnt ihr die beiden Grafiken downloaden:<br \/>\n<a href=\"http:\/\/a-einfach-lernen\/wp-content\/uploads\/sites\/5\/2018\/11\/schalter.png\">schalter.png<\/a><br \/>\n<a href=\"http:\/\/a-einfach-lernen\/wp-content\/uploads\/sites\/5\/2018\/11\/schalterselected.png\">schalterselected.png<\/a><\/p>\n<p>Jetzt wollen wir unserem fuellen-JRadionButton mit einem Icon versehen. Hierzu ben\u00f6tigen wir zwei Schritte:<br \/>\n&#8211; Wir erstellen ein Objekt vom Typ ImageIcon und laden die Ressource.<br \/>\n&#8211; Wir setzen die Gr\u00f6\u00dfe des ImageIcon fest.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">ImageIcon fuellenIcon = new ImageIcon( getClass().getResource(\"bilder\/schalter.png\" ) );\r\nfuellenIcon.setImage( fuellenIcon.getImage().getScaledInstance( 16, 16, Image.SCALE_SMOOTH ) );<\/pre>\n<p>getClass() gibt den Pfad unseres MiniMalen-Pakets zur\u00fcck. In diesem Pfad m\u00fcssen wir dann noch mit getResource() die Ressource ausw\u00e4hlen. Da sich das Icon im Ordner bilder befindet m\u00fcssen wir bilder\/ vor den Dateinamen schreiben.<\/p>\n<p>Da wir auch ein Icon f\u00fcr den selektierten Zustand unseres Icons haben wollen, ben\u00f6tigen wir diesen Code nochmal nur mit einem ImageIcon fuellenIconAktiviert, also:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">ImageIcon fuellenIconAktiviert = new ImageIcon( getClass().getResource(\"bilder\/schalterselected.png\" ) );\r\nfuellenIconAktiviert.setImage( fuellenIconAktiviert.getImage().getScaledInstance(16, 16,Image.SCALE_SMOOTH) );<\/pre>\n<p>statt dem Text geben wir bei der Erstellung der JCheckBox einfach unser Icon an:<br \/>\n<code>  fuellen = new JCheckBox(fuellenIcon);<\/code><br \/>\nAusserdem m\u00fcssen wir der Checkbox noch ein Icon zuweisen welches im selektiertem Zustand gezeigt wird:\u00a0<code>fuellen.setSelectedIcon(fuellenIconAktiviert);<\/code><\/p>\n<p>Jetzt m\u00fcssen wir noch daf\u00fcr sorgen das der F\u00fcllen-Schalter eine Auswirkung auf die Werkzeugspitzen hat, das diese dementsprechend auch dargestellt werden. Also gef\u00fcllt oder ungef\u00fcllt. Hier d\u00fcrfen wir nicht vergessen unserer CheckBox noch einen ActionListener hinzuzuf\u00fcgen: <code>fuellen.addActionListener(this);<\/code><br \/>\nDann erg\u00e4nzen wir die ActionPerformed:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">if ( fuellen.isSelected() ) {\r\nkreisBtn.setText( \"\\u25cf\" );\r\nquadratBtn.setText( \"\\u25a0\" );\r\n} else {\r\nkreisBtn.setText( \"\\u25cb\" );\r\nquadratBtn.setText( \"\\u25a1\" );\r\n}<\/pre>\n<p>Voila! Sieht doch schon besser aus!<\/p>\n<p>Nun machen wir dasselbe noch mit dem Pinsel und dem Radierer. Wobei wir die JToggleButtons in JRadioButtons umwandeln. Diese eignen sich besser f\u00fcr Icons.<br \/>\nHier die Grafiken:<br \/>\n<a href=\"https:\/\/freizone.net\/java-einfach-lernen\/wp-content\/uploads\/sites\/5\/2018\/11\/pinsel.png\">pinsel.png<\/a><br \/>\n<a href=\"https:\/\/freizone.net\/java-einfach-lernen\/wp-content\/uploads\/sites\/5\/2018\/11\/pinselselect.png\">pinselselect.png<\/a><br \/>\n<a href=\"https:\/\/freizone.net\/java-einfach-lernen\/wp-content\/uploads\/sites\/5\/2018\/11\/radierer.png\">radierer.png<\/a><br \/>\n<a href=\"https:\/\/freizone.net\/java-einfach-lernen\/wp-content\/uploads\/sites\/5\/2018\/11\/radiererselected.png\">radiererselected.png<\/a><\/p>\n<p>Dann sollte unsere StartFenster.java ungef\u00e4hr so aussehen:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">package miniMalen;\r\n\r\nimport java.awt.BorderLayout;\r\nimport java.awt.Color;\r\nimport java.awt.Component;\r\nimport java.awt.Dimension;\r\nimport java.awt.Graphics;\r\nimport java.awt.Graphics2D;\r\nimport java.awt.Image;\r\nimport java.awt.Insets;\r\nimport java.awt.event.ActionEvent;\r\nimport java.awt.event.ActionListener;\r\nimport java.awt.image.BufferedImage;\r\nimport java.io.File;\r\nimport java.io.IOException;\r\nimport javax.imageio.ImageIO;\r\nimport javax.swing.BorderFactory;\r\nimport javax.swing.ImageIcon;\r\nimport javax.swing.JButton;\r\nimport javax.swing.JCheckBox;\r\nimport javax.swing.JColorChooser;\r\nimport javax.swing.JFileChooser;\r\nimport javax.swing.JFrame;\r\nimport javax.swing.JMenu;\r\nimport javax.swing.JMenuBar;\r\nimport javax.swing.JMenuItem;\r\nimport javax.swing.JRadioButton;\r\nimport javax.swing.JSeparator;\r\nimport javax.swing.JSpinner;\r\nimport javax.swing.JToggleButton;\r\nimport javax.swing.JToolBar;\r\nimport javax.swing.SpinnerNumberModel;\r\n\r\npublic class StartFenster extends JFrame implements ActionListener {\r\n\r\n  public static void main(String[] s) {\r\n    new StartFenster();\r\n  }\r\n\r\n  private Tafel tafel;\r\n\r\n  private JMenuBar menuBar;\r\n  private JMenu menuDatei;\r\n  private JMenuItem mneu, mladen, mspeichern, mBeenden;\r\n\r\n  private JToolBar topmenu;\r\n  private JToolBar seitenleiste;\r\n\r\n  JToggleButton kreisBtn;\r\n  JToggleButton quadratBtn;\r\n  JCheckBox fuellen;\r\n  private JSpinner linienstaerke;\r\n\r\n  private JRadioButton pinselBtn;\r\n  private JRadioButton radiererBtn;\r\n  private JButton farbwaehlerIcon;\r\n  private JButton farbwaehlerIconHG;\r\n\r\n  private Color vgfarbe = Color.BLACK;\r\n  private Color hgfarbe = Color.WHITE;\r\n  private Color aktuelleFarbe = Color.BLACK;\r\n\r\n  public StartFenster() {\r\n    initialisiereStartFenster();\r\n  }\r\n\r\n  private void initialisiereStartFenster() {\r\n    this.setDefaultCloseOperation(EXIT_ON_CLOSE);\r\n    this.setBounds(0, 0, 500, 500);\r\n    this.setLocationRelativeTo(null);\r\n    this.setAlwaysOnTop(true);\r\n    this.setBackground(Color.white);\r\n    this.setTitle(\"Tafel\");\r\n    this.setLayout(new BorderLayout());\r\n\r\n    menuBar = new JMenuBar();\r\n    this.setJMenuBar(menuBar);\r\n\r\n    menuDatei = new JMenu();\r\n    menuDatei.setText(\"Datei\");\r\n    menuDatei.setMnemonic('d');\r\n    menuDatei.addActionListener(this);\r\n    menuBar.add(menuDatei);\r\n\r\n    mneu = new JMenuItem();\r\n    mneu.setText(\"Neu\");\r\n    mneu.setMnemonic('n');\r\n    mneu.setToolTipText(\"Neues Bild erstellen\");\r\n    mneu.setIcon(null);\r\n    mneu.addActionListener(this);\r\n    menuDatei.add(mneu);\r\n\r\n    JSeparator sep1 = new JSeparator();\r\n    menuDatei.add(sep1);\r\n\r\n    mladen = new JMenuItem();\r\n    mladen.setText(\"Laden\");\r\n    mladen.setMnemonic('l');\r\n    mladen.setToolTipText(\"Datei laden\");\r\n    mladen.setIcon(null);\r\n    mladen.addActionListener(this);\r\n    menuDatei.add(mladen);\r\n\r\n    mspeichern = new JMenuItem();\r\n    mspeichern.setText(\"Speichern\");\r\n    mspeichern.setMnemonic('s');\r\n    mspeichern.setToolTipText(\"Bild speichern\");\r\n    mspeichern.setIcon(null);\r\n    mspeichern.addActionListener(this);\r\n    menuDatei.add(mspeichern);\r\n\r\n    JSeparator sep2 = new JSeparator();\r\n    menuDatei.add(sep2);\r\n\r\n    mBeenden = new JMenuItem();\r\n    mBeenden.setText(\"Beenden\");\r\n    mBeenden.setMnemonic('e');\r\n    mBeenden.setToolTipText(\"Programm beenden\");\r\n    mBeenden.setIcon(null);\r\n    mBeenden.addActionListener(this);\r\n    menuDatei.add(mBeenden);\r\n\r\n    topmenu = new JToolBar();\r\n    topmenu.setPreferredSize(new Dimension(300, 30)); \/\/ PreferredSize = bevorzugte Gr\u00f6\u00dfe\r\n    topmenu.setFloatable(false);\r\n\r\n    kreisBtn = new JToggleButton(\"\\u25cf\");\r\n    kreisBtn.setSelected(true);\r\n    kreisBtn.addActionListener(this);\r\n    kreisBtn.setFocusable(false);\r\n    kreisBtn.setMaximumSize(new Dimension(30, 30));\r\n    kreisBtn.setMinimumSize(new Dimension(30, 30));\r\n\r\n    quadratBtn = new JToggleButton(\"\\u25a0\");\r\n    quadratBtn.addActionListener(this);\r\n    quadratBtn.setFocusable(false);\r\n    quadratBtn.setMaximumSize(new Dimension(30, 30));\r\n    quadratBtn.setMinimumSize(new Dimension(30, 30));\r\n    topmenu.add(kreisBtn);\r\n    topmenu.add(quadratBtn);\r\n\r\n    ImageIcon fuellenIcon = new ImageIcon(getClass().getResource(\"bilder\/schalter.png\"));\r\n    fuellenIcon.setImage(fuellenIcon.getImage().getScaledInstance(16, 16, Image.SCALE_SMOOTH));\r\n    ImageIcon fuellenIconAktiviert = new ImageIcon(getClass().getResource(\"bilder\/schalterselected.png\"));\r\n    fuellenIconAktiviert.setImage(fuellenIconAktiviert.getImage().getScaledInstance(16, 16, Image.SCALE_SMOOTH));\r\n\r\n    fuellen = new JCheckBox(fuellenIcon);\r\n    fuellen.setSelectedIcon(fuellenIconAktiviert);\r\n    fuellen.setSelected(true);\r\n    fuellen.addActionListener(this);\r\n    topmenu.add(fuellen);\r\n\r\n    seitenleiste = new JToolBar();\r\n    seitenleiste.setPreferredSize(new Dimension(30, 200)); \/\/ PreferredSize = bevorzugte Gr\u00f6\u00dfe\r\n    seitenleiste.setSize(24, 200);\r\n    seitenleiste.setMinimumSize(new Dimension(24, 200));\r\n    seitenleiste.setMaximumSize(new Dimension(24, 200));\r\n    seitenleiste.setFloatable(false);\r\n    seitenleiste.setOrientation(JToolBar.VERTICAL);\r\n    seitenleiste.setBorder(null);\r\n    seitenleiste.setBorderPainted(false);\r\n    Insets nullMargin = new Insets(0, 0, 0, 0);\r\n    seitenleiste.setMargin(nullMargin);\r\n\r\n    ImageIcon pinselIcon = new ImageIcon(getClass().getResource(\"bilder\/pinsel.png\"));\r\n    pinselIcon.setImage(pinselIcon.getImage().getScaledInstance(16, 16, Image.SCALE_SMOOTH));\r\n    ImageIcon pinselIconAktiviert = new ImageIcon(getClass().getResource(\"bilder\/pinselselect.png\"));\r\n    pinselIconAktiviert.setImage(pinselIconAktiviert.getImage().getScaledInstance(16, 16, Image.SCALE_SMOOTH));\r\n\r\n    pinselBtn = new JRadioButton(pinselIcon, true); \/\/ in RadioButton umgewandelt\r\n    pinselBtn.setIcon(pinselIcon);\r\n    pinselBtn.setSelectedIcon(pinselIconAktiviert);\r\n    pinselBtn.setAlignmentX(CENTER_ALIGNMENT);\r\n    pinselBtn.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));\r\n    pinselBtn.setPreferredSize(new Dimension(16, 16));\r\n    pinselBtn.addActionListener(this);\r\n    pinselBtn.setMargin(nullMargin);\r\n\r\n    ImageIcon radiererIcon = new ImageIcon(getClass().getResource(\"bilder\/radierer.png\"));\r\n    radiererIcon.setImage(radiererIcon.getImage().getScaledInstance(16, 16, Image.SCALE_SMOOTH));\r\n    ImageIcon radiererIconAktiviert = new ImageIcon(getClass().getResource(\"bilder\/radiererselected.png\"));\r\n    radiererIconAktiviert.setImage(radiererIconAktiviert.getImage().getScaledInstance(16, 16, Image.SCALE_SMOOTH));\r\n\r\n    radiererBtn = new JRadioButton(radiererIcon, false); \/\/ radioButton\r\n    radiererBtn.setIcon(radiererIcon);\r\n    radiererBtn.setSelectedIcon(radiererIconAktiviert);\r\n    radiererBtn.setAlignmentX(CENTER_ALIGNMENT);\r\n    radiererBtn.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));\r\n    radiererBtn.setPreferredSize(new Dimension(16, 16));\r\n    radiererBtn.addActionListener(this);\r\n    \/\/ radiererBtn.setMargin(nullMargin);\r\n\r\n    farbwaehlerIcon = new JButton() {\r\n      public void paintComponent(Graphics g) {\r\n        super.paintComponent(g);\r\n        g.setColor(vgfarbe);\r\n        g.fillRect(20, 20, 20, 20);\r\n      }\r\n    };\r\n\r\n    farbwaehlerIcon.setBackground(vgfarbe);\r\n    farbwaehlerIcon.setForeground(vgfarbe);\r\n    farbwaehlerIcon.setPreferredSize(new Dimension(20, 20));\r\n    farbwaehlerIcon.setAlignmentX(CENTER_ALIGNMENT);\r\n    \/\/ farbwaehlerIcon.setMargin(ohne);\r\n    \/\/ farbwaehlerIcon.setBorder(BorderFactory.createEmptyBorder(0, 0, 5, 0));\r\n    farbwaehlerIcon.addActionListener(this);\r\n\r\n    farbwaehlerIconHG = new JButton() {\r\n      public void paintComponent(Graphics g) {\r\n        super.paintComponent(g);\r\n        g.setColor(hgfarbe);\r\n        g.fillRect(20, 20, 20, 20);\r\n      }\r\n    };\r\n    farbwaehlerIconHG.setPreferredSize(new Dimension(20, 50));\r\n    farbwaehlerIconHG.addActionListener(this);\r\n    farbwaehlerIconHG.setBackground(hgfarbe);\r\n    farbwaehlerIconHG.setForeground(hgfarbe);\r\n    farbwaehlerIconHG.setAlignmentX(CENTER_ALIGNMENT);\r\n\r\n    seitenleiste.add(pinselBtn);\r\n    seitenleiste.add(radiererBtn);\r\n    seitenleiste.addSeparator();\r\n    seitenleiste.add(farbwaehlerIcon);\r\n    seitenleiste.add(farbwaehlerIconHG);\r\n\r\n    SpinnerNumberModel nummern = new SpinnerNumberModel(10.0, 1.0, 99.0, 1.0); \/\/ default, Minimum, Maximum,\r\n                                          \/\/ Schrittweite\r\n    linienstaerke = new JSpinner(nummern);\r\n    linienstaerke.setMinimumSize(new Dimension(50, 30)); \/\/ setzt die Mindestgr\u00f6\u00dfe ( Breite, H\u00f6he )\r\n    linienstaerke.setMaximumSize(new Dimension(50, 30)); \/\/ setzt die Maximalgr\u00f6\u00dfe\r\n\r\n    topmenu.add(linienstaerke);\r\n    this.add(topmenu, BorderLayout.PAGE_START);\r\n    this.add(seitenleiste, BorderLayout.WEST);\r\n\r\n    tafel = new Tafel(this);\r\n    this.add(tafel);\r\n\r\n    sichtbar();\r\n  }\r\n\r\n  private void sichtbar() {\r\n    this.setVisible(true);\r\n\r\n  }\r\n\r\n  public double getLinienstaerke() {\r\n    double staerke = (double) this.linienstaerke.getValue();\r\n    return staerke;\r\n  }\r\n\r\n  public Color getFarbe() {\r\n    System.out.println(this.aktuelleFarbe);\r\n    return this.aktuelleFarbe;\r\n  }\r\n\r\n  public Color getHGfarbe() {\r\n    return this.hgfarbe;\r\n  }\r\n\r\n  @Override\r\n  public void actionPerformed(ActionEvent e) {\r\n    Object source = e.getSource();\r\n    System.out.println(source);\r\n    if (source == farbwaehlerIcon) {\r\n      vgfarbe = JColorChooser.showDialog(this, \"Vordergrundfarbe w\u00e4hlen\", vgfarbe);\r\n      farbwaehlerIcon.setBackground(vgfarbe);\r\n      aktuelleFarbe = vgfarbe;\r\n      farbwaehlerIcon.repaint();\r\n    } else if (source == farbwaehlerIconHG) {\r\n      hgfarbe = JColorChooser.showDialog(this, \"Hintergrundfarbe w\u00e4hlen\", vgfarbe);\r\n      farbwaehlerIconHG.setBackground(hgfarbe);\r\n      aktuelleFarbe = hgfarbe;\r\n      farbwaehlerIconHG.repaint();\r\n    }\r\n    if (source == pinselBtn) {\r\n      pinselBtn.setSelected(true);\r\n      radiererBtn.setSelected(false);\r\n      aktuelleFarbe = vgfarbe;\r\n    }\r\n\r\n    if (source == radiererBtn) {\r\n      radiererBtn.setSelected(true);\r\n      pinselBtn.setSelected(false);\r\n      aktuelleFarbe = hgfarbe;\r\n    }\r\n    if (source == kreisBtn) {\r\n      kreisBtn.setSelected(true);\r\n      quadratBtn.setSelected(false);\r\n    }\r\n\r\n    if (source == quadratBtn) {\r\n      quadratBtn.setSelected(true);\r\n      kreisBtn.setSelected(false);\r\n    }\r\n\r\n    if (fuellen.isSelected()) {\r\n      kreisBtn.setText(\"\\u25cf\");\r\n      quadratBtn.setText(\"\\u25a0\");\r\n    } else {\r\n      kreisBtn.setText(\"\\u25cb\");\r\n      quadratBtn.setText(\"\\u25a1\");\r\n    }\r\n\r\n    if (source == mneu)\r\n      tafel.neuesBild();\r\n\r\n    if (source == mladen)\r\n      loadPicture();\r\n\r\n    if (source == mspeichern)\r\n      savePicture(erstelleIMG(tafel));\r\n\r\n    if (source == mBeenden)\r\n      this.dispose();\r\n\r\n  }\r\n\r\n  public BufferedImage erstelleIMG(Component bild) \/\/ gibt ein img der zeichenfl\u00e4che an die Funktion savePicture\r\n                            \/\/ zur\u00fcck\r\n  {\r\n    BufferedImage img = new BufferedImage(bild.getWidth(), bild.getHeight(), BufferedImage.TYPE_INT_RGB);\r\n    Graphics2D g = img.createGraphics();\r\n    bild.paintAll(g);\r\n    g.dispose();\r\n    return img;\r\n  }\r\n\r\n  private void loadPicture() {\r\n    JFileChooser chooser = new JFileChooser();\r\n    chooser.setDialogType(JFileChooser.OPEN_DIALOG);\r\n\r\n    int rueckgabeWert = chooser.showOpenDialog(this);\r\n\r\n    if (rueckgabeWert == JFileChooser.APPROVE_OPTION) {\r\n      File file = chooser.getSelectedFile();\r\n      try {\r\n        tafel.image = ImageIO.read(file);\r\n      } catch (IOException e) {\r\n        e.printStackTrace();\r\n      }\r\n      tafel.bildGeladen = true;\r\n      tafel.repaint();\r\n    }\r\n\r\n  }\r\n\r\n  public void savePicture(BufferedImage img) \/\/\r\n  {\r\n    JFileChooser chooser = new JFileChooser();\r\n    chooser.setDialogType(JFileChooser.SAVE_DIALOG);\r\n\r\n    int rueckgabeWert = chooser.showSaveDialog(this);\r\n\r\n    if (rueckgabeWert == JFileChooser.APPROVE_OPTION) {\r\n\r\n      File file = chooser.getSelectedFile();\r\n      \/\/ String bildpfad = file.getAbsolutePath();\r\n\r\n      try {\r\n        ImageIO.write(img, \"png\", file);\r\n      } catch (IOException e) {\r\n        e.printStackTrace();\r\n      }\r\n    }\r\n  }\r\n\r\n  public void dispose() {\r\n    System.out.println(\"Tsch\u00fc\u00df\");\r\n    System.exit(0);\r\n  }\r\n\r\n}\r\n<\/pre>\n<p>Fertig!<br \/>\nNun sind wir am Ende dieses Tutorials angekommen. Wenn es euch gefallen hat, freue ich mich um einen Like. Auch konstruktive Kritik bzw. Verbesserungsvorschl\u00e4ge sind gern gesehen.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Um Icons verwenden zu k\u00f6nnen m\u00fcssen wir zun\u00e4chst welche haben. Eine sch\u00f6ne Seite f\u00fcr freie Icons ist das Tango Icon Project von Wiki-Commons.\u00a0 Hier der direkte Link zum Download des Iconpakets. Sobald wir das das Iconpaket entpackt haben, finden wir darin Ordner mit den Icons in verschiedenen Gr\u00f6\u00dfen. Wir ben\u00f6tigen den Ordner 16&#215;16. Bevor wir [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/posts\/523"}],"collection":[{"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/comments?post=523"}],"version-history":[{"count":10,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/posts\/523\/revisions"}],"predecessor-version":[{"id":591,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/posts\/523\/revisions\/591"}],"wp:attachment":[{"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/media?parent=523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/categories?post=523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/tags?post=523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}