String gibFarbe() - gibt nix?!

Toastbot

Mitglied
Eine hoffentlich schnell beantwortete kleine Frage:

Ich habe hier ein Skript, das erstellt ein Fenster, da gibt man ein Hexacode ein, welcher dann als String weitergegeben werden soll.

Sollte auch funktionieren, hab extra zur Überprüfung unter das Eingabe Fenster ein Ausgabe Fenster gelegt was mir "farbe" ausgeben soll.

Problem in meiner Hauptklasse wo ich die eingegebene Farbe gerne weiter nutzen würde, kommt die veränderte Farbe nicht an - Die Frage, wieso?

Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.text.NumberFormat;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;


public class AppWindow extends JFrame {

	JTextField 	textfield_farbe;

	JTextField 	textfield_aktFarbe;

	JButton		button;

	String farbe;


	public AppWindow() {
		this.getContentPane().setLayout(null);

		this.initWindow();

		this.addWindowListener(new WindowListener() {

			public void windowClosed(WindowEvent arg0) {


			}

			public void windowActivated(WindowEvent e) {


			}

			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}

			public void windowDeactivated(WindowEvent e) {


			}

			public void windowDeiconified(WindowEvent e) {


			}

			public void windowIconified(WindowEvent e) {


			}

			public void windowOpened(WindowEvent e) {


			}



		});

	}

	protected void initWindow() 
	{
		textfield_farbe = new JTextField();

		textfield_aktFarbe = new JTextField();

		button = new JButton("Farbe ändern");

		button.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent arg0) {
				buttonBerechneClicked();
			}

		});
		textfield_farbe.setBounds(5,10,400,25);
		textfield_aktFarbe.setBounds(5,80,400,25);

		button.setBounds(250,110,150,30);
		this.getContentPane().add(textfield_farbe);
		this.getContentPane().add(textfield_aktFarbe);
		this.getContentPane().add(button);


		this.pack();
	}

	public void buttonBerechneClicked()
	{
		farbe = (textfield_farbe.getText());
		textfield_aktFarbe.setText(farbe);
	}

	public String gibFarbe()
	{
		return farbe;
	}
}

Und hier der kleine Teil wo ich in mein anderes Script die Farbe abfrage:

Java:
	AppWindow bekommFarbe = new AppWindow();
	String farbe = bekommFarbe.gibFarbe();

Dadurch sollte ich dann in meinem Code weiter mit farbe die eingegebene Farbe benutzen können, undzwar so das wenn ich die Farbe dann wieder ändere, das sich die farbe mit ändert, dafür hab ich gesagt soll man eine Tastedrücken um farbe nochmal abzufragen.
In dem MouseEvent steht dann das drinne:
Java:
farbe = bekommFarbe.gibFarbe();

Und kleine zusatzfrage (Nicht mit der Frage oben zutun, aber für den gleichen Code ;) ) - Kann ich in einem System.out.println("...") auch " mit ausgeben, und wenn ja wie? (Sinn dahinter, die Konsole soll mir ein Code ausgeben den ich dann direkt weiter nutzen kann, und der Code beinhaltet Strings, aber deren " werden als unterbrecher für den System.out.println("...") angesehen, selbstverständlich ^^

Liebe Grüße und schon mal vielen Dank!
 

javampir

Bekanntes Mitglied
hi,
erst mal zu deiner zweiten frage: ja ganz einfach:
Java:
System.out.println("\"Hallo\", sagte der Text, \"Ich bin ein Text.\"");
zur ersten: ich seh jetzt leider keinen schnitzer auf die schnelle.
javampir
 

Toastbot

Mitglied
Java:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;
 




import javax.swing.JFrame;
import javax.swing.JPanel;
 
public class Paint {
	
	int meter=32;
	AppWindow bekommFarbe = new AppWindow();
	String farbe = bekommFarbe.gibFarbe();
 
    public static void main(String[] args) {
        new Paint();
        
        File file = new File("RPG-Objekt-Graphic.log");
        try {
            System.setOut(new PrintStream(new FileOutputStream(file,true)));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

		AppWindow theAppWindow = new AppWindow();
		theAppWindow.setNewObjekt();
		theAppWindow.setBounds(10, 10, 420, 180);
		theAppWindow.show();
    }
 
    public Paint() {
        JFrame frame = new JFrame("Paint - Für RPG Game Codes");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationByPlatform(true);
        JPanel sketch = new Sketchboard();
        frame.add(sketch);
 
        frame.pack();
        frame.setVisible(true);
    }
 
    class Sketchboard extends JPanel {
        private static final long serialVersionUID = 1L;
 
        private List<Shape> shapes;
 
        public Sketchboard() {
            shapes = new ArrayList<>();
            addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent e) {
                    super.mouseClicked(e);
                    switch (e.getButton()) {
                    case MouseEvent.BUTTON1:
                        shapes.add(new Square((int)e.getX()/meter, (int)e.getY()/meter));
                        System.out.println("g2d.fillRect(cX*meter+"+(int)e.getX()/meter+"*pixel, cY*meter+"+(int)e.getY()/meter+"*pixel, 1*pixel, 1*pixel);");
                        break;
                        
                    case MouseEvent.BUTTON2:
                        break;
                       
                    case MouseEvent.BUTTON3:
                    	farbe = bekommFarbe.gibFarbe();
                    	System.out.println("g2d.setColor(new Color(Integer.parseInt( \""+farbe+"\" , 16)));");
                        break;
                       
                    }
                    repaint();
                }
            });
        }
        
        @Override
        public Dimension getPreferredSize() {
            return new Dimension(16*meter, 16*meter);     
        }
 
        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            for (Shape s : shapes) {
                s.draw(g);
            }
            g.drawLine(1*meter,0*meter,1*meter,16*meter);
            g.drawLine(2*meter,0*meter,2*meter,16*meter);
            g.drawLine(3*meter,0*meter,3*meter,16*meter);
            g.drawLine(4*meter,0*meter,4*meter,16*meter);
            g.drawLine(5*meter,0*meter,5*meter,16*meter);
            g.drawLine(6*meter,0*meter,6*meter,16*meter);
            g.drawLine(7*meter,0*meter,7*meter,16*meter);
            g.drawLine(8*meter,0*meter,8*meter,16*meter);
            g.drawLine(9*meter,0*meter,9*meter,16*meter);
            g.drawLine(10*meter,0*meter,10*meter,16*meter);
            g.drawLine(11*meter,0*meter,11*meter,16*meter);
            g.drawLine(12*meter,0*meter,12*meter,16*meter);
            g.drawLine(13*meter,0*meter,13*meter,16*meter);
            g.drawLine(14*meter,0*meter,14*meter,16*meter);
            g.drawLine(15*meter,0*meter,15*meter,16*meter);
            
            g.drawLine(0*meter,1*meter,16*meter,1*meter);
            g.drawLine(0*meter,2*meter,16*meter,2*meter);
            g.drawLine(0*meter,3*meter,16*meter,3*meter);
            g.drawLine(0*meter,4*meter,16*meter,4*meter);
            g.drawLine(0*meter,5*meter,16*meter,5*meter);
            g.drawLine(0*meter,6*meter,16*meter,6*meter);
            g.drawLine(0*meter,7*meter,16*meter,7*meter);
            g.drawLine(0*meter,8*meter,16*meter,8*meter);
            g.drawLine(0*meter,9*meter,16*meter,9*meter);
            g.drawLine(0*meter,10*meter,16*meter,10*meter);
            g.drawLine(0*meter,11*meter,16*meter,11*meter);
            g.drawLine(0*meter,12*meter,16*meter,12*meter);
            g.drawLine(0*meter,13*meter,16*meter,13*meter);
            g.drawLine(0*meter,14*meter,16*meter,14*meter);
            g.drawLine(0*meter,15*meter,16*meter,15*meter);
        }
    }
 
    abstract class Shape {
 
        protected int x, y;
 
        public Shape(int x, int y) {
            this.x = x;
            this.y = y;
        }
 
        abstract void draw(Graphics g);
    }
 
    class Square extends Shape {
 
        public Square(int x, int y) {
            super(x, y);
        }
        @Override
        void draw(Graphics g) {
    		g.setColor(new Color(Integer.parseInt(farbe, 16)));
            g.fillRect(x*meter, y*meter, meter, meter);
        }
    }
 /*
    class Circle extends Shape {
        
        public Circle(int x, int y) {
            super(x, y);
        }
        
        public static final int CIRCLERADIUS = 5;
 
        @Override
        void draw(Graphics g) {
            g.drawOval(x, y, CIRCLERADIUS, CIRCLERADIUS);
        }
    }
    */
}

Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.text.NumberFormat;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;


public class AppWindow extends JFrame {

	JTextField 	textfield_farbe;

	JTextField 	textfield_aktFarbe;

	JButton		button;

	String farbe = "000000";


	public AppWindow() {
		this.getContentPane().setLayout(null);

		this.initWindow();

		this.addWindowListener(new WindowListener() {

			public void windowClosed(WindowEvent arg0) {


			}

			public void windowActivated(WindowEvent e) {


			}

			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}

			public void windowDeactivated(WindowEvent e) {


			}

			public void windowDeiconified(WindowEvent e) {


			}

			public void windowIconified(WindowEvent e) {


			}

			public void windowOpened(WindowEvent e) {


			}



		});

	}

	protected void initWindow() 
	{
		textfield_farbe = new JTextField();

		textfield_aktFarbe = new JTextField();

		button = new JButton("Farbe ändern");

		button.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent arg0) {
				buttonBerechneClicked();
			}

		});
		textfield_farbe.setBounds(5,10,400,25);
		textfield_aktFarbe.setBounds(5,80,400,25);

		button.setBounds(250,110,150,30);
		this.getContentPane().add(textfield_farbe);
		this.getContentPane().add(textfield_aktFarbe);
		this.getContentPane().add(button);


		this.pack();
	}

	public void buttonBerechneClicked()
	{
		farbe = (textfield_farbe.getText());
		textfield_aktFarbe.setText(farbe);
		textfield_farbe.setText("");
    	System.out.println("g2d.setColor(new Color(Integer.parseInt( \""+farbe+"\" , 16)));");
	}

	public String gibFarbe()
	{
		return farbe;
	}

	public void setNewObjekt() {
		System.out.println("Neues Objekt");
	}
}
 

Harry Kane

Top Contributor
So was hatte ich schon vermutet:
Du legst zwei Instanzen der Klasse AppWindow an. Eine (theAppWindow) wird angezeigt, aus der anderen (bekommFarbe) holst du dir die Farbe.
Lösung: im Konstruktor von Paint theAppWindow ersetzen durch bekommFarbe.

Abgesehen davon: verwende NIEMALS Namen von Java-Standardklassen für eigene Klassen. In deinem Fall betrifft das die Klassen Shape und Paint.
 

Toastbot

Mitglied
Hab es auf bekommFarbe geändert, klingt auch verständlich.
Ergebniss, er will das ich bekommFarbe in ein static verwandle. - Getan
Und es funktioniert trotzdem nicht :/

P.s. Auch wenn ich die 3 teile aus dem Konstruktor in mein Paint() setze...
 
Zuletzt bearbeitet:

Harry Kane

Top Contributor
Jedes Square-Objekt verwendet dieselbe Farbe. Um das zum umgehe, musst du einfach deine Squar-Objekten eine private Eigenschaft fillPaint vom Typ Paint verpassen.
Ich halte es übrigens für schlecht, daß bei jedem draw deine Square oder sonstwas Objekte die Farbe zum Zeichnen erst aus einem String parsen müssen. Das ist absolut unnötiger Aufwand.
 

Toastbot

Mitglied
Erstmal vorab danke, du machst mir Hoffnung :D

Verstehe nur nicht ganz in wie fern der Aufwand unnötig ist.
Es ist ein Zeichenprogramm welches mir Code ausgeben soll, welchen ich dann wiederrum in ein anderes meiner Skripte packen kann (Ja ich weis ich kann auch .gif o.ä. einbinden, aber ich habe irgendwie lust das so zu machen :p ). Wenn beim Zeichnen sich nun die Farbe ändern soll weil ich z.B. eine schwarze umrandung gemacht hab und die dann Rot ausmalen will, dann geb ich FF0000 in mein zweitfenster ein und (soll) dann in rot weitermalen.

Wie kann ich das denn einfache bzw. mit weniger Aufwand ermöglichen? :)

-Bin immer offen für Tipps, Tricks und "Weiterbildungen" bin halt noch relativ neu in Java -
 

Toastbot

Mitglied
Hab es versucht, glaube aber das ich was falsch gemacht habe:

Java:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;






import javax.swing.JFrame;
import javax.swing.JPanel;

public class Painter {

	int meter=32;
	static AppWindow bekommFarbe = new AppWindow();
	String farbe = bekommFarbe.gibFarbe();

	private Painter fillPainter;

	public static void main(String[] args) {
		new Painter();

		File file = new File("RPG-Objekt-Graphic.log");
		try {
			System.setOut(new PrintStream(new FileOutputStream(file,true)));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}

		//AppWindow theAppWindow = new AppWindow();
		bekommFarbe.setNewObjekt();
		bekommFarbe.setBounds(10, 10, 420, 180);
		bekommFarbe.show();            

		//	new Anzeige();
	}

	public Painter() {

		farbe = bekommFarbe.gibFarbe();
		JFrame frame = new JFrame("Paint - Für RPG Game Codes");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLocationByPlatform(true);
		JPanel sketch = new Sketchboard();
		frame.add(sketch);

		frame.pack();
		frame.setVisible(true);
	}


	class Sketchboard extends JPanel {
		private static final long serialVersionUID = 1L;

		private List<Shape> shapes;

		public Sketchboard() {
			shapes = new ArrayList<>();
			addMouseListener(new MouseAdapter() {
				@Override
				public void mouseClicked(MouseEvent e) {
					super.mouseClicked(e);
					switch (e.getButton()) {
					case MouseEvent.BUTTON1:

						farbe = bekommFarbe.gibFarbe();
						shapes.add(new Square((int)e.getX()/meter, (int)e.getY()/meter));
						System.out.println("g2d.fillRect(cX*meter+"+(int)e.getX()/meter+"*pixel, cY*meter+"+(int)e.getY()/meter+"*pixel, 1*pixel, 1*pixel);");
						break;

					case MouseEvent.BUTTON2:
						break;

					case MouseEvent.BUTTON3:
						farbe = bekommFarbe.gibFarbe();
						System.out.println("g2d.setColor(new Color(Integer.parseInt( \""+farbe+"\" , 16)));");
						break;

					}
					repaint();
				}
			});
		}

		@Override
		public Dimension getPreferredSize() {
			return new Dimension(16*meter, 16*meter);    
		}

		@Override
		protected void paintComponent(Graphics g) {
			super.paintComponent(g);
			for (Shape s : shapes) {
				s.draw(g);

				g.setColor(new Color(Integer.parseInt("000000", 16)));
			}
			g.drawLine(1*meter,0*meter,1*meter,16*meter);
			g.drawLine(2*meter,0*meter,2*meter,16*meter);
			g.drawLine(3*meter,0*meter,3*meter,16*meter);
			g.drawLine(4*meter,0*meter,4*meter,16*meter);
			g.drawLine(5*meter,0*meter,5*meter,16*meter);
			g.drawLine(6*meter,0*meter,6*meter,16*meter);
			g.drawLine(7*meter,0*meter,7*meter,16*meter);
			g.drawLine(8*meter,0*meter,8*meter,16*meter);
			g.drawLine(9*meter,0*meter,9*meter,16*meter);
			g.drawLine(10*meter,0*meter,10*meter,16*meter);
			g.drawLine(11*meter,0*meter,11*meter,16*meter);
			g.drawLine(12*meter,0*meter,12*meter,16*meter);
			g.drawLine(13*meter,0*meter,13*meter,16*meter);
			g.drawLine(14*meter,0*meter,14*meter,16*meter);
			g.drawLine(15*meter,0*meter,15*meter,16*meter);

			g.drawLine(0*meter,1*meter,16*meter,1*meter);
			g.drawLine(0*meter,2*meter,16*meter,2*meter);
			g.drawLine(0*meter,3*meter,16*meter,3*meter);
			g.drawLine(0*meter,4*meter,16*meter,4*meter);
			g.drawLine(0*meter,5*meter,16*meter,5*meter);
			g.drawLine(0*meter,6*meter,16*meter,6*meter);
			g.drawLine(0*meter,7*meter,16*meter,7*meter);
			g.drawLine(0*meter,8*meter,16*meter,8*meter);
			g.drawLine(0*meter,9*meter,16*meter,9*meter);
			g.drawLine(0*meter,10*meter,16*meter,10*meter);
			g.drawLine(0*meter,11*meter,16*meter,11*meter);
			g.drawLine(0*meter,12*meter,16*meter,12*meter);
			g.drawLine(0*meter,13*meter,16*meter,13*meter);
			g.drawLine(0*meter,14*meter,16*meter,14*meter);
			g.drawLine(0*meter,15*meter,16*meter,15*meter);
		}
	}

	abstract class Shape {

		protected int x, y;

		public Shape(int x, int y) {
			this.x = x;
			this.y = y;
		}

		abstract void draw(Graphics g);
	}

	class Square extends Shape {

		public Square(int x, int y) {
			super(x, y);
		}
		@Override
		void draw(Graphics g) {
			g.setColor(new Color(Integer.parseInt(fillPainter.farbe, 16)));
			g.fillRect(x*meter, y*meter, meter, meter);
		}
	}
	/*
        class Circle extends Shape {

            public Circle(int x, int y) {
                super(x, y);
            }

            public static final int CIRCLERADIUS = 5;

            @Override
            void draw(Graphics g) {
                g.drawOval(x, y, CIRCLERADIUS, CIRCLERADIUS);
            }
        }
	 */
}

Gibt folgende Fehlermeldung aus:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Painter$Square.draw(Painter.java:160)
at Painter$Sketchboard.paintComponent(Painter.java:103)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent._paintImmediately(Unknown Source)
at javax.swing.JComponent.paintImmediately(Unknown Source)
at javax.swing.RepaintManager$3.run(Unknown Source)
at javax.swing.RepaintManager$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.access$1000(Unknown Source)
at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Hab bestimmt etwas falsch gemacht so wie ich mich kenne ^^,
 

Harry Kane

Top Contributor
Die Fehlermeldung ist doch eindeutig:
In Zeile 160 von deiner Painter-Klasse fliegt die Exception. Das einzige verdächtige, was dort passiert ist
Code:
fillPainter.farbe
. Schauen wir uns an wo fillPainter initialisiert wird, stellt sich raus: nirgends.
Was soll übrigens eine Instanz von Painter als private Variable einer "äußeren" Painter-Instanz? Das braucht man bei Singletons, aber hier nicht.
Ausserdem greifen auch in der neuen Version alle Shapes notwendigerweise auf dieselbe Farbe zu. Ein Anliegen, nämlich unterschiedliche Farben für unterschiedliche Shapes, ist damit natürlich nicht umsetzbar. Was hast du dir denn von dieser Umstellung versprochen?
Ausserdem ist es nach wie vor so, daß sich die Shapes ihre Farbe aus einem separaten Objekt holen. Was spricht dagegen, die Farbe in den Shapes zu speichern?
Vor einiger Zeit habe ich schon mal eine kleine Beispielanwendung geschrieben. Hier ist eine etwas erweiterte Version:
Java:
public class DrawBoard implements ActionListener {

    private JTextField xText = new JTextField(3);
    private JTextField yText = new JTextField(3);
    private JTextField wText = new JTextField(3);
    private JTextField hText = new JTextField(3);
    private JTextField color = new JTextField(6);
    private JCheckBox filled = new JCheckBox("Filled");
    private JButton createButton = new JButton("Create");
    private DrawPanel dp;

    public static void main(String[] args) {
        DrawBoard db = new DrawBoard("Edit Panel");
    }

    public DrawBoard(String titel) {
        JFrame frame = new JFrame(titel);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel editPanel = new JPanel();
        editPanel.add(new JLabel("x"));
        editPanel.add(xText);
        editPanel.add(new JLabel("y"));
        editPanel.add(yText);
        editPanel.add(new JLabel("w"));
        editPanel.add(wText);
        editPanel.add(new JLabel("h"));
        editPanel.add(hText);
        editPanel.add(new JLabel("F"));
        editPanel.add(color);
        color.addActionListener(this);
        editPanel.add(createButton);
        editPanel.add(filled);
        createButton.addActionListener(this);
        filled.addActionListener(this);
        frame.getContentPane().add(editPanel, BorderLayout.NORTH);
        dp = new DrawPanel();
        dp.addRectangle(new Rectangle(0, 0, 100, 100));
        dp.addRectangle(new Rectangle(50, 50, 60, 60));
        dp.addRectangle(new Rectangle(150, 150, 20, 20));
        frame.getContentPane().add(dp);
        frame.pack();
        frame.setVisible(true);
    }

    public void actionPerformed(ActionEvent ae) {
        if (ae.getSource() == createButton) {
            try {
                int x = Integer.parseInt(xText.getText());
                int y = Integer.parseInt(yText.getText());
                int w = Integer.parseInt(wText.getText());
                int h = Integer.parseInt(hText.getText());
                dp.addRectangle(new Rectangle(x, y, w, h));
            } catch (NumberFormatException e) {
                e.printStackTrace();
            }
        }
        if (ae.getSource() == filled) {
            dp.setRectsFilled(filled.isSelected());
        }
        if (ae.getSource() == color) {
            Color c = new Color(Integer.parseInt(color.getText(), 16));
            dp.setFillColor(c);
        }
    }
}

class DrawPanel extends JPanel {

    private Drawable selected;

    private Dimension preferredSize = new Dimension(0, 0);

    private MovingAdapter ma = new MovingAdapter();

    private ArrayList<Drawable> rects = new ArrayList<Drawable>();

    private boolean rectsFilled;

    private Color fillColor = Color.red;

    public DrawPanel() {
        super();
        addMouseListener(ma);
        addMouseMotionListener(ma);
    }

    public void setFillColor(Color color) {
        this.fillColor = color;
    }

    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        for (Drawable d : rects) {
            d.draw(g2);
        }
    }

    public Dimension getPreferredSize() {
        return preferredSize;
    }

    public void addRectangle(Rectangle rect) {
        rects.add(new Drawable(rect, this.fillColor));
        calculateSize();
        Window window = SwingUtilities.getWindowAncestor(this);
        if (window != null) {
            window.pack();
        }
        repaint();
    }

    public void setRectsFilled(boolean flag) {
        this.rectsFilled = flag;
        repaint();
    }

    private void calculateSize() {
        if (rects.size() < 1) {
            return;
        }
        int xMax = 0;
        int yMax = 0;
        for (Drawable rect : rects) {
            Rectangle2D bounds = rect.getBounds();
            xMax = Math.max(xMax, (int) bounds.getMaxX());
            yMax = Math.max(yMax, (int) bounds.getMaxY());
        }
        preferredSize.width = xMax + 2;
        preferredSize.height = yMax + 2;

    }

    class MovingAdapter extends MouseAdapter {

        private int x;
        private int y;

        public void mousePressed(MouseEvent e) {
            x = e.getX();
            y = e.getY();
            selected = null;
            for (int i = rects.size() - 1; i >= 0; i--) {
                if (rects.get(i).getBounds().contains(x, y)) {
                    selected = rects.get(i);
                    break;
                }
            }
        }

        public void mouseClicked(MouseEvent e) {
            if (e.isControlDown()) {
                boolean found = false;
                x = e.getX();
                y = e.getY();
                for (int i = rects.size() - 1; i >= 0; i--) {
                    if (rects.get(i).getBounds().contains(x, y)) {
                        rects.get(i).setFillColor(fillColor);
                        found = true;
                    }
                }
                if(found) repaint();
            }
        }

        public void mouseDragged(MouseEvent e) {
            if (selected == null) {
                return;
            }
            int dx = e.getX() - x;
            int dy = e.getY() - y;
            selected.setOffset(dx, dy);
            repaint();
            x = x + dx;
            y = y + dy;
        }
    }

    class Drawable {

        private Shape shape;
        private Color fillColor;

        Drawable(Shape shape, Color fillColor) {
            this.shape = shape;
            this.fillColor = fillColor;
        }

        public void draw(Graphics2D g2) {
            g2.setColor(fillColor);
            g2.fill(shape);
        }

        public void setFillColor(Color c) {
            this.fillColor = c;
        }

        public Rectangle2D getBounds() {
            return this.shape.getBounds2D();
        }

        public void setOffset(int x, int y) {
            this.shape = AffineTransform.getTranslateInstance(x, y).createTransformedShape(shape);
        }
    }
}
 

Toastbot

Mitglied
ICH HAB ES HINBEKOMMEN x)

Danke vielmals für die Tipps und die Hilfe :D

Hier falls es sich noch jemand angucken/benutzen möchte :)

Java:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;






import javax.swing.JFrame;
import javax.swing.JPanel;

public class Painter {

	int meter=32;
	static AppWindow bekommFarbe = new AppWindow();
	String farbe = bekommFarbe.gibFarbe();
	static String name = bekommFarbe.gibName();
	//File newFile = bekommFarbe.gibFile();

	public static void main(String[] args) {
		new Painter();

		File file = new File(name+".log");
		try {
			System.setOut(new PrintStream(new FileOutputStream(file,true)));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}

		//AppWindow theAppWindow = new AppWindow();
		bekommFarbe.setNewObjekt();
		bekommFarbe.setBounds(10, 10, 420, 180);
		bekommFarbe.show();            

		//	new Anzeige();
	}

	public Painter() {

		farbe = bekommFarbe.gibFarbe();
		JFrame frame = new JFrame("Paint - Für RPG Game Codes");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLocationByPlatform(true);
		JPanel sketch = new Sketchboard();
		frame.add(sketch);

		frame.pack();
		frame.setVisible(true);
	}
	
	public String fababe() {
		return farbe;
	}


	class Sketchboard extends JPanel {
		private static final long serialVersionUID = 1L;

		private List<Shape> shapes;

		public Sketchboard() {
			shapes = new ArrayList<>();
			addMouseListener(new MouseAdapter() {
				@Override
				public void mouseClicked(MouseEvent e) {
					super.mouseClicked(e);
					switch (e.getButton()) {
					case MouseEvent.BUTTON1:

						farbe = bekommFarbe.gibFarbe();
						shapes.add(new Square((int)e.getX()/meter, (int)e.getY()/meter));
						System.out.println("g2d.fillRect(cX*meter+"+(int)e.getX()/meter+"*pixel, cY*meter+"+(int)e.getY()/meter+"*pixel, 1*pixel, 1*pixel);");
						break;

					case MouseEvent.BUTTON2:
						break;

					case MouseEvent.BUTTON3:
						farbe = bekommFarbe.gibFarbe();
						shapes.add(new Square2((int)e.getX()/meter, (int)e.getY()/meter));
						//File file = new File(name+".log");
						//t.println("g2d.setColor(new Color(Integer.parseInt( \""+farbe+"\" , 16)));");
						System.out.println("g2d.fillRect(0, 0, 16*pixel, 16*pixel);");
						
						break;

					}
					repaint();
				}
			});
		}

		@Override
		public Dimension getPreferredSize() {
			return new Dimension(16*meter, 16*meter);    
		}

		@Override
		protected void paintComponent(Graphics g) {
			super.paintComponent(g);
			for (Shape s : shapes) {
				s.draw(g);

				g.setColor(new Color(Integer.parseInt("000000", 16)));
			}
			g.drawLine(1*meter,0*meter,1*meter,16*meter);
			g.drawLine(2*meter,0*meter,2*meter,16*meter);
			g.drawLine(3*meter,0*meter,3*meter,16*meter);
			g.drawLine(4*meter,0*meter,4*meter,16*meter);
			g.drawLine(5*meter,0*meter,5*meter,16*meter);
			g.drawLine(6*meter,0*meter,6*meter,16*meter);
			g.drawLine(7*meter,0*meter,7*meter,16*meter);
			g.drawLine(8*meter,0*meter,8*meter,16*meter);
			g.drawLine(9*meter,0*meter,9*meter,16*meter);
			g.drawLine(10*meter,0*meter,10*meter,16*meter);
			g.drawLine(11*meter,0*meter,11*meter,16*meter);
			g.drawLine(12*meter,0*meter,12*meter,16*meter);
			g.drawLine(13*meter,0*meter,13*meter,16*meter);
			g.drawLine(14*meter,0*meter,14*meter,16*meter);
			g.drawLine(15*meter,0*meter,15*meter,16*meter);

			g.drawLine(0*meter,1*meter,16*meter,1*meter);
			g.drawLine(0*meter,2*meter,16*meter,2*meter);
			g.drawLine(0*meter,3*meter,16*meter,3*meter);
			g.drawLine(0*meter,4*meter,16*meter,4*meter);
			g.drawLine(0*meter,5*meter,16*meter,5*meter);
			g.drawLine(0*meter,6*meter,16*meter,6*meter);
			g.drawLine(0*meter,7*meter,16*meter,7*meter);
			g.drawLine(0*meter,8*meter,16*meter,8*meter);
			g.drawLine(0*meter,9*meter,16*meter,9*meter);
			g.drawLine(0*meter,10*meter,16*meter,10*meter);
			g.drawLine(0*meter,11*meter,16*meter,11*meter);
			g.drawLine(0*meter,12*meter,16*meter,12*meter);
			g.drawLine(0*meter,13*meter,16*meter,13*meter);
			g.drawLine(0*meter,14*meter,16*meter,14*meter);
			g.drawLine(0*meter,15*meter,16*meter,15*meter);
		}
	}

	abstract class Shape {

		protected int x, y;

		public Shape(int x, int y) {
			this.x = x;
			this.y = y;
		}

		abstract void draw(Graphics g);
	}

	class Square extends Shape {
		
		private String farbie = fababe();

		public Square(int x, int y) {
			super(x, y);
		}
		@Override
		void draw(Graphics g) {
			g.setColor(new Color(Integer.parseInt(farbie, 16)));
			g.fillRect(x*meter, y*meter, meter, meter);
		}
	}
	class Square2 extends Shape {

		public Square2(int x, int y) {
			super(x, y);
		}
		@Override
		void draw(Graphics g) {
			g.setColor(new Color(Integer.parseInt(farbe, 16)));
			g.fillRect(0, 0, 16*meter, 16*meter);
		}
	}
	/*
        class Circle extends Shape {

            public Circle(int x, int y) {
                super(x, y);
            }

            public static final int CIRCLERADIUS = 5;

            @Override
            void draw(Graphics g) {
                g.drawOval(x, y, CIRCLERADIUS, CIRCLERADIUS);
            }
        }
	 */
}

Java:
   import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.File;
import java.text.NumberFormat;
     

    import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
     
     
    public class AppWindow extends JFrame {
     
        JTextField  textfield_farbe;

        JTextField  textfield_aktFarbe;        

        JTextField  textfield_name;

        JButton     button;

        JButton     button2;
        
        File fileNew;
     
        String farbe = "000000";
        
        String name = "RPG";
     
     
        public AppWindow() {
            this.getContentPane().setLayout(null);
     
            this.initWindow();
     
            this.addWindowListener(new WindowListener() {
     
                public void windowClosed(WindowEvent arg0) {
     
     
                }
     
                public void windowActivated(WindowEvent e) {
     
     
                }
     
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
     
                public void windowDeactivated(WindowEvent e) {
     
     
                }
     
                public void windowDeiconified(WindowEvent e) {
     
     
                }
     
                public void windowIconified(WindowEvent e) {
     
     
                }
     
                public void windowOpened(WindowEvent e) {
     
     
                }
     
     
     
            });
     
        }
     
        protected void initWindow()
        {
            textfield_farbe = new JTextField();

            textfield_aktFarbe = new JTextField();
            
            textfield_name = new JTextField();

            button = new JButton("Farbe ändern");
            
            button2 = new JButton("Name ändern");
     
            button.addActionListener(new ActionListener() {
                
                public void actionPerformed(ActionEvent arg0) {
                    buttonBerechneClicked();
                }
     
            });
            button2.addActionListener(new ActionListener() {
                
                public void actionPerformed(ActionEvent arg0) {
                    buttonBerechneClicked2();
                }
     
            });
            textfield_farbe.setBounds(5,10,200,25);
            textfield_aktFarbe.setBounds(5,45,200,25);
            textfield_name.setBounds(5,100,200,25);

            button.setBounds(250,25,150,30);

            button2.setBounds(250,95,150,30);
            this.getContentPane().add(textfield_farbe);
            this.getContentPane().add(textfield_aktFarbe);
            this.getContentPane().add(textfield_name);
            this.getContentPane().add(button);
            this.getContentPane().add(button2);
     
     
            this.pack();
        }
     
        public void buttonBerechneClicked()
        {
            farbe = (textfield_farbe.getText());
            textfield_aktFarbe.setText(farbe);
            textfield_farbe.setText("");
            System.out.println("g2d.setColor(new Color(Integer.parseInt( \""+farbe+"\" , 16)));");
        }
        public void buttonBerechneClicked2()
        {
            name = (textfield_name.getText());
            //setNewObjekt();
            System.out.println("//"+name);

    		File fileNew = new File(name+".log");
        }
     
        public String gibFarbe()
        {
            return farbe;
        }
        public String gibName()
        {
            return name;
        }
        public File gibFile()
        {
            return fileNew;
        }
     
        public void setNewObjekt() {
            System.out.println("//Neues Objekt");
        }
    }
 

Harry Kane

Top Contributor
Na fein.

Mal ein bisschen konstruktive Kritik:

Instanzen vom Type Square holen sich ihre Farbe über ihre private Variable farbie, Instanzen vom Type Square2 verwenden direkt den Wert von farbe aus der Painter-Instanz. Beides ist aber dasselbe, da farbie durch den Aufruf von fababe() der Painter-Klasse beschafft wird, was wiederum farbe zurückgibt. Das ist unnötig kompliziert.
Zur Zeit können neue Kindklassen von Shape sinnvoll nur als innere Klassen von Painter angelegt werden, weil sie offenbar auf dessen meter-Variable zugreifen müssen.
Deine 30 drawLine() Aufrufe in der paintComponent von SketchPanel können mit Hilfe von 2 for-Schleifen realisiert werden.
AppWindow muss nicht static sein, es sei denn, du willst ein AppWindow für mehrere Painter-Instanzen nutzen. Um das static loszuwerden, musst du die calls von bekommFarbe aus der main in den Konstruktor von Painter verlagern. Statics sind zwar nicht per se schlecht, aber überflüssige statics machen auf mich immer den Eindruck, daß jemand nur das Gemecker der IDE abstellen wollte ohne wirklich zu wissen was er da tat.
Und zu guter Letzt: Nicht das ich glaube dass es dich wirklich interessiert, aber a) Farben sollten als Instanzen von Color gespeichert werden und nicht als String, der jedesmal wieder geparst werden muss, und b) eigene Klassen sollte NIE so genannt werden wie java Standardklassen. Ich würde dringend dazu raten, deine Shape-Klasse in z. B. Symbol oder so umzubenennen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb String mit Datumsangabe in Long umwandeln Java Basics - Anfänger-Themen 2
D String Groß/Kleinschreibung Ignorieren Java Basics - Anfänger-Themen 4
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
Kartoffel_1 String transformation Java Basics - Anfänger-Themen 7
H String-Operation replace() - Zeichenkette verdoppeln Java Basics - Anfänger-Themen 2
K String analysieren Java Basics - Anfänger-Themen 27
Beowend String zu Date parsen Java Basics - Anfänger-Themen 1
Beowend String auf Satzzeichen überprüfen? Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
I Sass Compiler und String erhalten? Java Basics - Anfänger-Themen 7
Avalon String in Double bzw. Währung konvertieren Java Basics - Anfänger-Themen 6
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
N String überprüfen Java Basics - Anfänger-Themen 3
E String zerlegen aus args Java Basics - Anfänger-Themen 1
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
J String Filter Java Basics - Anfänger-Themen 5
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D 2D Char Array into String Java Basics - Anfänger-Themen 2
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
I Zerlegen von String Java Basics - Anfänger-Themen 3
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
I String Java Basics - Anfänger-Themen 4
I API - zurückgegebener JSON String lesen und in Entity konvertieren Java Basics - Anfänger-Themen 2
H Zu langen String aufteilen - bequeme Methode? Java Basics - Anfänger-Themen 14
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
M Kommandozeilenparamter als EINEN String werten Java Basics - Anfänger-Themen 5
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
HolyFUT Input/Output Leerzeichen aus String entfernen - klappt nicht! Java Basics - Anfänger-Themen 13
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
Alen123 String wiederholen mit Schleifen Java Basics - Anfänger-Themen 1
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
T String splitten Java Basics - Anfänger-Themen 3
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
T Platzhalter in String? Java Basics - Anfänger-Themen 14
M String mit Variable vergleichen Java Basics - Anfänger-Themen 9
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
M Wie kann eine Methode (string) eine andere Methode (void) mit zufälligen int-Werten aufrufen? Java Basics - Anfänger-Themen 4
P9cman Vokale in einem String überprüfen mittels Rekursion Java Basics - Anfänger-Themen 8
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
R Ein Multidimensionales String Array initialisieren und Deklarieren Java Basics - Anfänger-Themen 2
H String Repräsentation eines Rechtecks mit Instanz-Methode Java Basics - Anfänger-Themen 8
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
S String mit Int input vergleichen Java Basics - Anfänger-Themen 5
C String/Char-API Java Basics - Anfänger-Themen 13
U Char zu einem String machen Java Basics - Anfänger-Themen 1
B Anzahl Nullen uns Einsen in String ermitteln Java Basics - Anfänger-Themen 3
T Leerzeichen im String entfernen Java Basics - Anfänger-Themen 6
Jose05 Nullpointerexception bei Umwandlung von String zu int Java Basics - Anfänger-Themen 2
O Ich habe einen String und soll mit matches schauen, ob ein Buchstabe zu einer geraden ANzahl im String vorkommt, wie soll das gehen? Java Basics - Anfänger-Themen 7
M String beim einlesen formatieren Java Basics - Anfänger-Themen 12
N null in String replacen Java Basics - Anfänger-Themen 16
R Compiler-Fehler JTable mit XML befüllen | The constructor JTable(Object[], String[]) is undefined Java Basics - Anfänger-Themen 10
M Eclipse kennt keine String Klasse mehr Java Basics - Anfänger-Themen 1
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
D String mit int multiplizieren? Java Basics - Anfänger-Themen 16
H Überprüfen ob String Array leer ist Java Basics - Anfänger-Themen 4
A Korrigierte <String> Liste zurückgeben Java Basics - Anfänger-Themen 22
C In String, Buchstaben ersetzen durch andere Buchstaben Java Basics - Anfänger-Themen 26
Poppigescorn String mit mehreren Wörtern füllen? Java Basics - Anfänger-Themen 4
I String Expression mit Java validieren (true / false) Java Basics - Anfänger-Themen 34
B String - Wörter finden, welches Punkt und entsprechender Pre / Suffix hat? Java Basics - Anfänger-Themen 30
T Maximale Anzahl von Konsonanten im String Java Basics - Anfänger-Themen 6
H String verschlüsseln - eigener Algorithmus Java Basics - Anfänger-Themen 104
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
J Eintrag Combobox über einen String auswählen Java Basics - Anfänger-Themen 3
K mit String.splitt(",") ganzen Satz erhalten? Java Basics - Anfänger-Themen 3
K Wie String prüfen ob drei mal das gleiche Zeichen vorkommt? Java Basics - Anfänger-Themen 7
I Validation, ob String ein Wert aus einem Enum enthält Java Basics - Anfänger-Themen 3
D String und char in String speichern Java Basics - Anfänger-Themen 5
A ObservableList<String> Java Basics - Anfänger-Themen 6
I String nach Wort suchen Java Basics - Anfänger-Themen 6
I String ersetzen, der Inhalt enthält Java Basics - Anfänger-Themen 4
L ArrayList<String> --> double[] array Java Basics - Anfänger-Themen 18

Ähnliche Java Themen

Neue Themen


Oben