Zeichnen

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hey Leute,
Hab ein Problem, ich möchte ne Anwendung machen, wo mal auf klick bestimmte Grafiken etc hinzufügen kann und diese verschieben kann... Hab da schon an Panels gedacht (in die die Grafiken kommen) aber weiß gerade nicht wirklich wie das gehn soll. Kann mir jemand sagen wonach ich suchen muss/wie ich das anstellen soll?

Danke
 
G

Gast2

Gast
auf was willst du klicken ? auf die grafik oder auf einen button??? und wo hinzufügen??? zu einem bestehenden frame??? und wo rechts,mitte,links????

um ein bild in einem panel anzuzeigen kannst du die paintComponent überschreiben und deine bilder mit g.drawImgae(image,........); zeichnen
 
G

Gast

Gast
Es soll die Grafik per klick verschoben werden können (so Drag n Drop mäßig). Die neuen Grafiken sollen da erscheinen wo der User klickt(wenn da noch keine ist). Perfekt wäre es, wenn man erstellte/vorhandene Grafiken zB per Rechtsklick löschen könnte...
 
G

Gast

Gast
Also wenn ich das mit Panels löse soll das Panel in dem die Grafik ist verschoben werden können.
 
G

Gast2

Gast
weiß zwar nicht was du genau machen willst ... aber ich denk du brauchst ein MouseMotionListener

damit kannst du dein bild solange irgendwo hinziehen bist du es loslässt... bzw. dadurch bekommst du die Koordinaten wo du es losgelassen hast
 
G

Gast

Gast
Kann schon sein... Wie kann ich denn überhaupt Bilder verschieben? Bin ich mit Panels auf dem richtigem Weg??
 
M

Michael...

Gast
Gast hat gesagt.:
Bin ich mit Panels auf dem richtigem Weg??
Ja. Ich würde das mit den Bildern erst mal weglassen ist ja schliesslich das Panel, das verschoben wird. Die Bilder kann man dann jederzeit reinzeichnen.
Allerdings brauchst Du dann einen Container für die Panels/Bilder mit einem dazu passenden LayoutManager. Zu Beginn kann man ja mit einem "NullLayout" arbeiten. Ich würde aber empfehlen sich einen eigenen zu schreiben.
 
G

Gast2

Gast
Wie kann ich denn überhaupt Bilder verschieben?

MouseMotionListener...

Sind alle Bilder gleich groß??? wie ist die anordnung der bilder??? z.B. wie bei einem memory spiel oder sowas????
wenn du die bilder einfach irgendwo hinziehen willst wo du willst musst du sowieso ein nulllayout verwenden...
 
G

Gast

Gast
Die Bilder haben verschiedene größen ich würde sagen so maximal 50*50px in nem JFrame welches ne größe von 1000*600 hat.
 
G

Gast2

Gast
ja gibt es eine bestimmte anordnung???? einen abstabnd zwischen 2 bilder???

wenn du z.B wie 10 auf bilder hast kannst du erstmal leere panels erstellen lassen und dann die bilder iin immer einen freien panel schieben aber wie gesagt ich weiß nicht wie ich es mir vorstellen soll....

also wie gesagt um JPanles zu verschieben brauchst du einen MouseMotionListener damit kannst du die Koordinaten heruasfinden wo losgelassen wurde und da kannst du dein panel dann hinsetzen(setLocation(x,y))...
 
G

Gast

Gast
Es gibt keine abstände. Die Bilder sind frei platzierbar... Und es sind auch neue hinzufügbar... Ich setz ich jetzt mal mit dem MouseMotionListener außeinander...
 
G

Gast

Gast
Hab jetzt 1 Panel, was ich frei bewgen kann... Kann mir aber nicht vorstellen, wie ich das mit nem zweiten machen soll...
 
G

Gast

Gast
Hierder Code:

Code:
import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.*;

public class move extends JFrame{
	JPanel movable;
	public move(){
		super("JPanels frei bewegen und platzieren");
		setSize(1000, 500);
		JPanel main = new JPanel();
		main.setLayout(null);
		add(main);
		
		movable = new JPanel();
		movable.setBounds(490, 390, 20, 20);
		movable.setBackground(Color.blue);
		main.add(movable);
		setVisible(true);
		addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                movePanel(e.getX(),e.getY());
            }
        });

        addMouseMotionListener(new MouseAdapter() {
            public void mouseDragged(MouseEvent e) {
                movePanel(e.getX(),e.getY());
            }
        });
		
	}
	public void movePanel(int x, int y){
		movable.setBounds(x, y, 20, 20);
	}
	
	public static void main(String[] args){
		new move();
	}
}
 
G

Gast

Gast
Wie kann ich da ein zweites ebenfalls per Mausklick frei platzierbares JPanel hinzufügen??
 
G

Gast

Gast
Hab jetzt ne lösung... kann mir jemand sagen, warum die Panels sich nicht so schnell wie dei Maus bewegen?? die hängen immer hinterher...

move Klasse (meine haupts klasse)
Code:
import java.awt.Color;

import javax.swing.*;

public class move extends JFrame{

   public move(){
      super("JPanels frei bewegen und platzieren");
      setSize(1000, 500);
      JPanel main = new JPanel();
      main.setLayout(null);
      add(main);
      
      JPanel movable = new moveablePanel(20, 20, 50, 50);
      movable.setBackground(Color.blue);
      main.add(movable);
      
      JPanel movable1 = new moveablePanel(30, 30, 100, 100);
      movable1.setBackground(Color.red);
      main.add(movable1);
      
      JPanel movable2 = new moveablePanel(40, 40, 200, 200);
      movable2.setBackground(Color.yellow);
      main.add(movable2);
      
      setVisible(true);
      /**
      addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                movePanel(e.getXOnScreen()-15,e.getYOnScreen()-40);
            }
        });

        addMouseMotionListener(new MouseAdapter() {
            public void mouseDragged(MouseEvent e) {
                movePanel(e.getX()-15,e.getY()-40);
            }
        });
      **/
   }
   /**
   public void movePanel(int x, int y){
      movable.setBounds(x, y, 20, 20);
   }
   **/
   public static void main(String[] args){
      new move();
   }
}

movablePanel Klasse
Code:
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;

public class moveablePanel extends JPanel {
	int width, height;
	public moveablePanel(int width, int height, int startX, int startY){
		this.width = width;
		this.height = height;
		this.setBounds(startX, startY, width, height);
		addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                movePanel(e.getXOnScreen(),e.getYOnScreen());
            }
        });

        addMouseMotionListener(new MouseAdapter() {
            public void mouseDragged(MouseEvent e) {
                movePanel(e.getX(),e.getY());
            }
        });
	}
	private void movePanel(int x, int y){
		setBounds(x, y, width, height);
	}
}
 
G

Gast2

Gast
ja genau gleich du musst halt herausfinden welches du gerade angeklickt hast udn dass musst du verschieben...
 
G

Gast

Gast
Hab schon siehe letzter Post du warst wahrscheinlich am schreiben... nur die Panels sind langsamer als die Maus...
 
G

Gast2

Gast
Klassennamen schreibt man groß weiß gar nicht waurm du auf alles und jeden einen Listener draufsetzt...
 
G

Gast2

Gast
Code:
package test;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;


public class Main extends JFrame{

	JPanel main;
	JButton add;
	
	public Main()
	{
		super("Test");
		main = new JPanel();
		main.setLayout(null);
		
		setSize(1000,1000);
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		add = new JButton("add");
		add.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent e) {
				MovePanel panel = new MovePanel(100,100);
				main.add(panel);
				main.repaint();
				main.validate();
				
			}
			
		});
		
	
		
		add(main,BorderLayout.CENTER);
		add(add,BorderLayout.SOUTH);
		setVisible(true);
		
	}
	
	class MovePanel extends JPanel
	{
		public MovePanel(int x, int y)
		{
			setBackground(Color.BLACK);
			setSize(100,100);
			setLocation(x,y);
			addMouseMotionListener(new MouseMotionListener(){

				@Override
				public void mouseDragged(MouseEvent e) {
					setLocation(e.getXOnScreen(), e.getYOnScreen());
					
				}

				@Override
				public void mouseMoved(MouseEvent e) {
					// TODO Auto-generated method stub
					
				}
				
			});
			
			
		}
	}
	
	public static void main(String[] args) {
		
		SwingUtilities.invokeLater(new Runnable(){

			@Override
			public void run() {
				new Main();
				
			}
			
		});
		
	}

}
 
G

Gast

Gast
Hab das mit den Action Listenern mal irgendwo so gelernt... wusste nicht das das auch anders geht. Danke.
 
G

Gast2

Gast
ich denk mal die reihenfolge in der du deine panels addest ... ich denke besser wäre die componente zu removen...
oder deine panels in eine ArrayList speichern...
 
G

Gast

Gast
Danke. Das mit der ArrayList ist ne Idee! Ich werd mir das heute abend mal angucken!
 
G

Gast

Gast
Das Problem ist aber, dass die Instanz der Klasse bleibt. Kann man die auch irgendwie schließen? oder geht das bei Java automatisch?
 
G

Gast2

Gast
was heißt für dich instanz?? sobald sie irgendwann null ist oder kein zugriff mehr drauf hast geht der GC irgendwann drüber...
 
G

Gast

Gast
Der "Verweis"/die Zugriffsvariable für die Klasse oder macht Java das automatisch?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Mandelbrot mit BigDecimal erstellen und in der UI zeichnen, funktionierte nicht. AWT, Swing, JavaFX & SWT 1
H JavaFX Canvas neu zeichnen anstoßen AWT, Swing, JavaFX & SWT 34
H Transparent zeichnen mit drawImage in paintComponent Methode AWT, Swing, JavaFX & SWT 3
N JavaFX Unicode zeichnen in javafx Label verwenden AWT, Swing, JavaFX & SWT 2
G 2D-Grafik Grafik in zwei verschiedenen Fenstern gleichzeitig zeichnen AWT, Swing, JavaFX & SWT 9
S Event Handling Neu zeichnen nur wenn Berechnung fertig ist AWT, Swing, JavaFX & SWT 4
W JavaFX Ich kann keinen Kreis richtig zeichnen AWT, Swing, JavaFX & SWT 8
CptK Funktionsgraphen effizient zeichnen und nur Teile von JPanel erneuern AWT, Swing, JavaFX & SWT 2
G Dreieck aus Pixeln zeichnen AWT, Swing, JavaFX & SWT 8
N Mit KeyListener ein rechteck zeichnen AWT, Swing, JavaFX & SWT 9
B 2D-Grafik paintcomponent Probleme beim zeichnen AWT, Swing, JavaFX & SWT 10
Z Swing Graph zeichnen lassen AWT, Swing, JavaFX & SWT 16
O Kann kei neues Panel zum zeichnen aufrufen... AWT, Swing, JavaFX & SWT 4
L Swing zeichnen AWT, Swing, JavaFX & SWT 14
S GUI Kreuz zeichnen und Position ausgeben AWT, Swing, JavaFX & SWT 3
S GUI Kreis zeichnen AWT, Swing, JavaFX & SWT 13
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
L Swing Ein Rechteck in ein Grid Zeichnen AWT, Swing, JavaFX & SWT 5
L JavaFX Animation, erst zeichnen dann anzeigen AWT, Swing, JavaFX & SWT 4
K Mehrere Linien zeichnen AWT, Swing, JavaFX & SWT 8
E Transparent zeichnen AWT, Swing, JavaFX & SWT 2
S AWT Probleme beim Zeichnen AWT, Swing, JavaFX & SWT 3
T Tic Tac Toe - GUI Linien zeichnen AWT, Swing, JavaFX & SWT 14
C Applet Zeichnen über Button-Click AWT, Swing, JavaFX & SWT 13
Soloeco Graph zeichnen AWT, Swing, JavaFX & SWT 1
G Zeichnen Programm AWT, Swing, JavaFX & SWT 1
I Graph mit Swing zeichnen AWT, Swing, JavaFX & SWT 8
H Swing + Paint: Mehrere Objekte zeichnen lassen AWT, Swing, JavaFX & SWT 3
W Swing JPanel nur einmal nach mehreren Änderungen neu zeichnen AWT, Swing, JavaFX & SWT 1
D Quadrat, Rechteck zeichnen AWT, Swing, JavaFX & SWT 3
K Probleme beim zeichnen mit paintComponent() AWT, Swing, JavaFX & SWT 1
JG12111989 mehrere Polyline-Objekte zeichnen AWT, Swing, JavaFX & SWT 3
A Swing JRadioButton zeichnen nicht AWT, Swing, JavaFX & SWT 4
J Swing Vertikales Zeichnen eines Strings mit Java2D AWT, Swing, JavaFX & SWT 1
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
P 2D-Grafik Bogen(Arc) zwischen zwei Punkten zeichnen AWT, Swing, JavaFX & SWT 2
F Java Swing Rechteck in JPanel zeichnen AWT, Swing, JavaFX & SWT 7
KilledByCheese Swing 2D JLabel Array Maze zeichnen AWT, Swing, JavaFX & SWT 2
S Parallele Linien zeichnen AWT, Swing, JavaFX & SWT 5
J Linien auf JPanel zeichnen AWT, Swing, JavaFX & SWT 3
P AWT Canvas freihändig zeichnen AWT, Swing, JavaFX & SWT 1
llabusch Linien in JPanel zeichnen AWT, Swing, JavaFX & SWT 6
S passende PaintComponent ? Zeichnen in TextArea mit Scrollpane ? AWT, Swing, JavaFX & SWT 2
I Applet BlueJ Applet - Bild mit if-Schleife zeichnen lassen AWT, Swing, JavaFX & SWT 16
L JavaFX JavafX Timelime zeichnen und schön stylen? AWT, Swing, JavaFX & SWT 2
I JFrame neu zeichnen, nicht überzeichnen! AWT, Swing, JavaFX & SWT 2
I Spielsteine zeichnen und entfernen AWT, Swing, JavaFX & SWT 3
H JavaFX Freezes beim Zeichnen mit Canvas AWT, Swing, JavaFX & SWT 3
H Swing BufferedImage zeichnen AWT, Swing, JavaFX & SWT 1
M JFreeChart neu zeichnen sich Wenn Jtable sich ändert AWT, Swing, JavaFX & SWT 5
S 2D-Grafik MouseDragged Linien zeichnen AWT, Swing, JavaFX & SWT 4
M Zeichnen ohne vorherige Linien zu löschen AWT, Swing, JavaFX & SWT 2
T Problem beim Zeichnen von Rechteck AWT, Swing, JavaFX & SWT 3
T Swing / Kreis zeichnen AWT, Swing, JavaFX & SWT 2
I Text zur Linie zeichnen AWT, Swing, JavaFX & SWT 1
I Pfeil zeichnen am Ende einer Linie AWT, Swing, JavaFX & SWT 1
D 2D-Grafik Inhalt eines Graphics in anderes Graphics zeichnen.... AWT, Swing, JavaFX & SWT 3
F Zeichnen des Button AWT, Swing, JavaFX & SWT 4
B Zeichnen mit paintComponent? Oder anders? AWT, Swing, JavaFX & SWT 15
C Swing Aus verschiedenen Klassen zeichnen. AWT, Swing, JavaFX & SWT 2
C Swing BufferedImage zeichnen und JLabels setzen. AWT, Swing, JavaFX & SWT 17
M Kein Zeichnen der Figuren auf JPanel AWT, Swing, JavaFX & SWT 4
J JButton neu zeichnen lassen AWT, Swing, JavaFX & SWT 9
S Quadrat auf Frame zeichnen AWT, Swing, JavaFX & SWT 2
P Image oder Icon auf Tooltip zeichnen AWT, Swing, JavaFX & SWT 4
C Graphics Objekt in Zeitschleife zeichnen AWT, Swing, JavaFX & SWT 4
X Swing JPanel mehrere Ebenen zeichnen AWT, Swing, JavaFX & SWT 13
G Zeichnen auf eine schwergewichtige Komponente? AWT, Swing, JavaFX & SWT 0
G Mehrere Strings um Kreis zeichnen und positionieren AWT, Swing, JavaFX & SWT 0
P SWT Nebula Gallery - Bildbereiche zeichnen AWT, Swing, JavaFX & SWT 3
A Swing Paint mit Button Clear den Hintergrund säubern um wieder zeichnen zu können AWT, Swing, JavaFX & SWT 2
A 2D-Grafik Zeichnen einer sich bewegenden Box mit BufferStrategy zieht Spur AWT, Swing, JavaFX & SWT 2
T AWT Bild laden und transparent zeichnen AWT, Swing, JavaFX & SWT 2
Helgon Swing Mit Swing zeichnen / NetBeans GUI AWT, Swing, JavaFX & SWT 11
M JLabel über JButtons zeichnen AWT, Swing, JavaFX & SWT 4
J JApplet und Zeichnen AWT, Swing, JavaFX & SWT 8
P 2D-Grafik NPE beim Zeichnen auf Graphics g AWT, Swing, JavaFX & SWT 8
4 Swing Graphen selber zeichnen AWT, Swing, JavaFX & SWT 2
T Über mehrere Panel zeichnen AWT, Swing, JavaFX & SWT 2
T Zeichnen von getSubimage funktioniert nicht AWT, Swing, JavaFX & SWT 7
M Bilder zeichnen, NullPointer Exception AWT, Swing, JavaFX & SWT 3
N JPanel neu zeichnen AWT, Swing, JavaFX & SWT 10
D Zeichnen eines Barplots AWT, Swing, JavaFX & SWT 2
bluerob Problem beim Image zeichnen via andere Klasse AWT, Swing, JavaFX & SWT 7
M Swing JFrame in einem Panel zeichnen AWT, Swing, JavaFX & SWT 3
M Suche Javabibliothek zum Zeichnen mathematischer Funktionen AWT, Swing, JavaFX & SWT 11
M Swing Warum öffnen sich beim Zeichnen mit Swing plötzlich zwei Fenster? AWT, Swing, JavaFX & SWT 5
P ScrollPane nach zeichnen dynamisch resize AWT, Swing, JavaFX & SWT 7
M Swing In GUI-Builder-JFrame mit Menü Schreiben und Zeichnen AWT, Swing, JavaFX & SWT 4
N 2D-Grafik 2 Probleme beim zeichnen AWT, Swing, JavaFX & SWT 18
S Swing Bild auf jPanel nach Änderung von JComboBox zeichnen AWT, Swing, JavaFX & SWT 4
C Funktionen zeichnen AWT, Swing, JavaFX & SWT 16
P JPanel neu zeichnen AWT, Swing, JavaFX & SWT 10
M Auf einem Hintergrundbild zeichnen AWT, Swing, JavaFX & SWT 2
S Eigene JComponent Image zeichnen AWT, Swing, JavaFX & SWT 3
T Oval auf ein JPanel zeichnen AWT, Swing, JavaFX & SWT 3
L Zeichnen in zwei Fenstern AWT, Swing, JavaFX & SWT 8
S Font laden, Wort zeichnen und animieren..? AWT, Swing, JavaFX & SWT 2
S Bild von Punkt zu Punkt zeichnen AWT, Swing, JavaFX & SWT 8
U Pixel zeichnen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben