Objekte auf JPanel bewegen???

Status
Nicht offen für weitere Antworten.

Wolfone

Mitglied
Also...der Titel gibt nicht hundertprozentig mein Problem wieder.

Ich erläuter das mal (oder versuchs zumindest^^...bin ein ziemlicher java-einsteiger):

Also ich habe die Aufgabe mit JFrame und JPanel quasi die basis für ein dynamisches Schiffeversenken zu erstellen. Das muss grafisch nicht aufwendig sein, sollte aber folgende Kriterien erfüllen: Feld 600x600 pixel, mausklick setzt ein schiff (kann auch ein viereck oder so sein), die schiffe sollen auswählbar sein, ein klick nach dem auswählen eines schiffes soll einen richtungsvektor setzen, in dessen richtung die bewegung des schiffes geht, mit + und - soll das ausgewählte schiff schneller bzw langsamer werden, verlässt ein schiff den panelbereich soll es an der entgegengesetzten stelle wieder eintreten, jedes schiff soll einen eigenen thread bekommen (das soll angeblich die animation flüssiger machen...ich hab davon ehrlich gesagt keine ahnung...)

also mit diesem ganzen grafischen kram bin ich gar nicht vertraut...wenn ich bis jetzt was programmieren musste war das delphi in der schule oder an der uni programme zur umsetzung numerischer/linearalgebraischer verfahren--> ich fühl mich im moment noch ziemlich überfordert.

das einzige was mir halbwegs klar ist ist, wie die klassenstruktur auszusehen hat (glaube ich T_T); bis jetzt sieht das wie folgt aus:

class Spiel --> die Hauptklasse
public class Spiel_Frame extends JFrame
public class Spiel_Panel extends JPanel
public class Ship extends Thread (hab wie gesagt keine ahnung wie ich das ausnutzen soll bzw generell nicht wie ich diesen setzen und bewegen/beschleunigen-teil machen soll)


wär cool, wenn mir da jemand behilflich sein könnte, da ich nur noch bis zum 26. Zeit habe.

mfg Wolfone


edit: das is das was ich bis jetzt hab...ich kriegs ja noch nichtmal hin rote rechtecke auf blauem grund zu erzeugen bei mausklick...aaaaaahhhhhhhh!!!


Code:
import javax.swing.*;
import java.awt.event.*;


public class Spiel {


	public static void main(String[] args) {
       Spiel_Frame gui = new Spiel_Frame ();       
    
	}
    
}

Code:
import java.awt.*;
import java.applet.*;
import javax.swing.*;


public class Spiel_Frame extends JFrame  { 
	private Spiel_Panel Wasser;
	public Spiel_Frame (){
		this.setTitle("Schiffeversenken");
		this.setSize(600,600);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
		this.setResizable(false);
		this.setLocation(100,100);
		Wasser = new Spiel_Panel();
		this.getContentPane().add (Wasser, BorderLayout.CENTER);		
	}
	
}


Code:
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.applet.*;
import javax.swing.*;

public class Spiel_Panel extends JPanel implements MouseListener  {

	
	public void paint (Graphics g){
		g.setColor(Color.BLUE);
		g.fillRect(0,0,600,600);
		
	}
	public void mouseClicked(MouseEvent e) {
		int xkoordinate = getX();
		int ykoordinate = getY();
		new Ship(xkoordinate,ykoordinate){};
	}

	public void mouseEntered(MouseEvent e) {
		
	}

	public void mouseExited(MouseEvent e) {
		
	}
	
	public void mousePressed(MouseEvent e) {
	
	}

	public void mouseReleased(MouseEvent e) {
		
	}
}



Code:
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.*;


public class Ship extends Thread{
	 int position_x, position_y;
	 public void paint (Graphics g){
			g.setColor(Color.BLACK);
			g.fillRect(position_x,position_y,20,20);			
		}
     Ship (int xkoordinate, int ykoordinate){
    	 position_x = xkoordinate;
    	 position_y = ykoordinate;   		 
    	}
}
 
Zuletzt bearbeitet:

André Uhres

Top Contributor
mausklick setzt ein schiff (kann auch ein viereck oder so sein), die schiffe sollen auswählbar sein, ein klick nach dem auswählen eines schiffes soll einen richtungsvektor setzen, in dessen richtung die bewegung des schiffes geht, mit + und - soll das ausgewählte schiff schneller bzw langsamer werden, verlässt ein schiff den panelbereich soll es an der entgegengesetzten stelle wieder eintreten, jedes schiff soll einen eigenen thread bekommen
Hier ist ein möglicher Ansatz:
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Spiel_Panel extends JPanel implements MouseListener {

    public Spiel_Panel() {
        setLayout(null);
        setOpaque(true);
        setBackground(Color.BLUE);
        addMouseListener(this);
    }

    public void mouseClicked(final MouseEvent e) {
    }

    public void mouseEntered(final MouseEvent e) {
    }

    public void mouseExited(final MouseEvent e) {
    }

    public void mousePressed(final MouseEvent e) {
    }

    public void mouseReleased(final MouseEvent e) {
        int xkoordinate = e.getX();
        int ykoordinate = e.getY();
        Ship ship = new Ship(xkoordinate, ykoordinate);
        add(ship);
        ship.requestFocusInWindow();
        new Thread(ship).start();
    }
}
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Ship extends JButton implements Runnable, MouseListener, KeyListener {

    private int position_x,  position_y;
    private boolean right = true;
    private int speed = 1;

    public Ship(final int xkoordinate, final int ykoordinate) {
        position_x = xkoordinate;
        position_y = ykoordinate;
        setBounds(xkoordinate, ykoordinate, 20, 20);
        setMargin(new Insets(0, 0, 0, 0));
        setText(String.valueOf(speed));
        addMouseListener(this);
        addKeyListener(this);
    }

    @Override
    public void run() {
        while (true) {
            if (right) {
                position_x += speed;
            } else {
                position_x -= speed;
            }
            if (position_x > 600) {
                position_x = -19;
            }
            if (position_x < -20) {
                position_x = 600;
            }
            setLocation(position_x, position_y);
            try {
                Thread.sleep(50);
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
            repaint();
        }
    }

    public void keyTyped(final KeyEvent e) {
    }

    public void keyPressed(final KeyEvent e) {
    }

    public void keyReleased(final KeyEvent e) {
        if (e.getKeyCode() == KeyEvent.VK_SUBTRACT) {
            if (speed > 1) {
                speed--;
                setText(String.valueOf(speed));
            }
        } else if (e.getKeyCode() == KeyEvent.VK_ADD) {
            if (speed < 5) {
                speed++;
                setText(String.valueOf(speed));
            }
        }
    }

    public void mouseClicked(final MouseEvent e) {
    }

    public void mousePressed(final MouseEvent e) {
        if(hasFocus()){
            right = !right;
        }
    }

    public void mouseReleased(final MouseEvent e) {
    }

    public void mouseEntered(final MouseEvent e) {
    }

    public void mouseExited(final MouseEvent e) {
    }
}
 
Zuletzt bearbeitet:

Wolfone

Mitglied
wow!

danke für die mühe!!!

da kann ich mir sicher ein bissl was abgucken.

jetzt setz ich mich mal ein paar stündchen dran und guck was rauskommt^^.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Objekte in JPanel bewegen AWT, Swing, JavaFX & SWT 4
N Swing Alle Objekte anzeigen auch bei JPanel-Überlappung AWT, Swing, JavaFX & SWT 6
M verschieben der Objekte in JPanel nur stückchenweise möglich AWT, Swing, JavaFX & SWT 14
S JFrame-Klasse soll ein/mehrere Objekte einer JPanel-Klasse-& AWT, Swing, JavaFX & SWT 3
Juelin Objekte refresh AWT, Swing, JavaFX & SWT 3
N Graphics Objekte scalen mit Veränderung des Bildschirms AWT, Swing, JavaFX & SWT 19
berserkerdq2 Skalieren sich javafx objekte automatisch auf die Bildschirmgröße AWT, Swing, JavaFX & SWT 6
Redeason Objekte in meiner GUI verschieben AWT, Swing, JavaFX & SWT 1
_user_q Objekte vom MainController in anderen Controller verwenden und andersherum (NullPointerException) AWT, Swing, JavaFX & SWT 14
_user_q JavaFX Wie kann ich alle Objekte außer eins deaktivieren (das Gleiche mit BoxBlur)? AWT, Swing, JavaFX & SWT 11
ExceptionOfExpectation MouseListener-Objekte zu den Graphics-Objekten einfügen AWT, Swing, JavaFX & SWT 3
donnico2 Objekte in der GUI ausgeben mit Hilfe einer DAO AWT, Swing, JavaFX & SWT 1
B JavaFX Von welcher Klasse und zu welchem Zeitpunkt werden Event-Objekte erstellt? AWT, Swing, JavaFX & SWT 3
J Objekte von 2 GUIs zusammenfassen AWT, Swing, JavaFX & SWT 2
T Swing Objekte in Liste AWT, Swing, JavaFX & SWT 2
stroggi Swing Mehrere transparentes Objekte (Grafiken) über einem Bild (JLabel) darstellen AWT, Swing, JavaFX & SWT 4
C JList: Bestimmte Objekte ausschließen AWT, Swing, JavaFX & SWT 1
MaxG. Swing Dynamisch grafische Objekte erzeugen AWT, Swing, JavaFX & SWT 12
Y Objekte grafisch darstellen ohne GMF - Composite auf Canvas? AWT, Swing, JavaFX & SWT 2
D Swing Swing Objekte sehen im Entwurf anders aus als beim Ausführen AWT, Swing, JavaFX & SWT 3
L Dynamischer Aufbau einer Tabelle über Objekte AWT, Swing, JavaFX & SWT 2
H Swing + Paint: Mehrere Objekte zeichnen lassen AWT, Swing, JavaFX & SWT 3
JG12111989 mehrere Polyline-Objekte zeichnen AWT, Swing, JavaFX & SWT 3
D Objekte einer Oberfläche in eine Datei/Ordner speichern AWT, Swing, JavaFX & SWT 9
T Rectangle Transparent und darunter liegende Objekte Bedienbar AWT, Swing, JavaFX & SWT 0
J Swing/AWT | Dynamisch erzeugte Objekte ansprechen AWT, Swing, JavaFX & SWT 1
Z Möglichkeit mit Listerners die Farbe meiner Objekte zu ändern AWT, Swing, JavaFX & SWT 15
GenerationLost Bilder an bestimmten Platz einfügen/Objekte visualisieren AWT, Swing, JavaFX & SWT 1
I Objekte aus contentPane löschen funktioniert nicht AWT, Swing, JavaFX & SWT 3
C Swing Java Objekte AWT, Swing, JavaFX & SWT 4
J JavaFX Eigene ListCell Problem(Objekte werden doppelt angezeigt) AWT, Swing, JavaFX & SWT 1
A Swing Focus der Radio Buttons + text bleibt gleich und gleichzeitige ausgabe zweier Objekte in 1. Fenster AWT, Swing, JavaFX & SWT 3
A Drag and Drop eigener Objekte AWT, Swing, JavaFX & SWT 7
M SWT Durchlagen der SWT Objekte mit Tabulator AWT, Swing, JavaFX & SWT 5
Ollek JList - neuer Eintrag in ArrayList dadurch keine Anzeige der Objekte AWT, Swing, JavaFX & SWT 18
S Swing Kopie eines JPanels inkl. aller objekte darin erstellen AWT, Swing, JavaFX & SWT 5
D Swing Objekte bewegen mit MouseMotionListener AWT, Swing, JavaFX & SWT 4
P Objekte anzeigen und verschieben - wie? AWT, Swing, JavaFX & SWT 6
F Swing ArrayList in JList anzeigen und Objekte auswählen AWT, Swing, JavaFX & SWT 2
G Objekte in und aus einer JTable laden AWT, Swing, JavaFX & SWT 5
propra Mehrere Objekte gleichzeitig verschieben AWT, Swing, JavaFX & SWT 7
propra Objekte auf Zeichenfläche verschieben AWT, Swing, JavaFX & SWT 2
propra 2D-Grafik Beliebig viele Objekte auf einer Zeichenfläche zeichnen AWT, Swing, JavaFX & SWT 15
T JList und Objekte AWT, Swing, JavaFX & SWT 7
E Objekte zu Path2D zusammensetzen AWT, Swing, JavaFX & SWT 2
4 AWT bestimmte Objekte zeichnen und löschen AWT, Swing, JavaFX & SWT 8
R komplette Objekte in JTable einfügen AWT, Swing, JavaFX & SWT 18
C File-Objekte an JList übergeben und abrufen AWT, Swing, JavaFX & SWT 6
J Objekte aus Defaulttablemodel AWT, Swing, JavaFX & SWT 5
K MouseListener für Objekte auf einem Frame AWT, Swing, JavaFX & SWT 4
S Swing mit ActionListener auf Objekte einer anderen Klasse zugreifen AWT, Swing, JavaFX & SWT 3
A Swing Dynamisch Objekte erzeugen AWT, Swing, JavaFX & SWT 3
M JGraph Kante ohne Objekte AWT, Swing, JavaFX & SWT 2
P Von einem Panel auf die Objekte des anderen Panels zugreifen AWT, Swing, JavaFX & SWT 3
F Swing Objekte mit Maus verschieben AWT, Swing, JavaFX & SWT 8
T Mehrere sich bewegende Objekte in einem Frame AWT, Swing, JavaFX & SWT 14
L Dynamisch Objekte in Canvas zeichnen AWT, Swing, JavaFX & SWT 5
J SWT 4 Objekte auf einem Composite anordnen AWT, Swing, JavaFX & SWT 5
L SWT Objekte in GC? AWT, Swing, JavaFX & SWT 8
M grafische objekte erstellen und bewegen AWT, Swing, JavaFX & SWT 4
E Swing Objekte werden nicht angezeigt AWT, Swing, JavaFX & SWT 6
J Ansprechen untergeordneter Objekte AWT, Swing, JavaFX & SWT 6
C JTree Einzelne Objekte färben AWT, Swing, JavaFX & SWT 4
Airwolf89 Swing Dynamisch auf Objekte in einer GUI zugreifen AWT, Swing, JavaFX & SWT 10
S Java3D: Alle Objekte in BranchGroup löschen während Laufzeit AWT, Swing, JavaFX & SWT 3
M Objekte weitergeben AWT, Swing, JavaFX & SWT 3
1 Bubble Breaker - Objekte fallen nicht runter AWT, Swing, JavaFX & SWT 3
F "Objekte" mit "Verbindungen" grafisch darstellen AWT, Swing, JavaFX & SWT 4
G Objekte in JComboBox? AWT, Swing, JavaFX & SWT 7
P Speichern und Auswahl gezeichneter Objekte AWT, Swing, JavaFX & SWT 7
G Graphics Objekte in AWT Container einfügen AWT, Swing, JavaFX & SWT 2
D DnD ganzer Objekte(Objekt erstellen) AWT, Swing, JavaFX & SWT 2
W 2 Objekte in eine Tabellenzelle? AWT, Swing, JavaFX & SWT 3
L Objekte in Liste oder ähnliches anzeigen AWT, Swing, JavaFX & SWT 3
O Eigene GUI Objekte entwerfen? AWT, Swing, JavaFX & SWT 3
O Eigenschaften größerer GUI-Objekte verwalten AWT, Swing, JavaFX & SWT 3
A JTable, eigenes TableModel und dessen Objekte AWT, Swing, JavaFX & SWT 4
G Canvas + Swing-Objekte AWT, Swing, JavaFX & SWT 5
G Objekte in SWT List AWT, Swing, JavaFX & SWT 3
D Schriftgrößen aller Objekte ändern AWT, Swing, JavaFX & SWT 19
X Durch DrawLine verschwindet das Fenster und die Objekte AWT, Swing, JavaFX & SWT 13
N [und täglich grüsst das.] Zeichnen -> Objekte verschwinde AWT, Swing, JavaFX & SWT 2
S JList mit DefaultListModel befüllt, wie Objekte selektieren? AWT, Swing, JavaFX & SWT 3
M grafische Objekte mit Listener versehen AWT, Swing, JavaFX & SWT 3
G JTextArea Objekte in einem Array speichern? AWT, Swing, JavaFX & SWT 3
G Aus Arraylist bestimmte Objekte wiedergegeben bekommen? AWT, Swing, JavaFX & SWT 7
M Keine Buttons oder sonstige Objekte in JFrame unter Linux AWT, Swing, JavaFX & SWT 4
L Mehrere Scrollbar objekte miteinander verbinden AWT, Swing, JavaFX & SWT 3
E Swing-Fenster als Objekte im Sinne des OO-Prgrammparadigmas AWT, Swing, JavaFX & SWT 2
B Objekte auf Fenster verschieben. Bewegliche jPanels. AWT, Swing, JavaFX & SWT 5
T Frage zu JTree: Leaf Objekte vergleichen AWT, Swing, JavaFX & SWT 3
G Einzelne Objekte neu zeichnen AWT, Swing, JavaFX & SWT 8
T Objekte in JList AWT, Swing, JavaFX & SWT 4
H JApplet fehler objekte unsichtbar. AWT, Swing, JavaFX & SWT 2
M Image-Objekte in JEditorPane anzeigen? AWT, Swing, JavaFX & SWT 3
F bewegte objekte mit awt AWT, Swing, JavaFX & SWT 2
B Zwei "gleiche" Objekte auf einem Frame platzieren AWT, Swing, JavaFX & SWT 2
F Objekte beliebigen Typs zu JComboBox hinzufügen AWT, Swing, JavaFX & SWT 7
J Anordung der Objekte in der Oberfläche? AWT, Swing, JavaFX & SWT 3
V Objekte "durch" ActionListener zeichnen AWT, Swing, JavaFX & SWT 10

Ähnliche Java Themen

Neue Themen


Oben