Swing: Zeichnen mit Drag and Drop

Status
Nicht offen für weitere Antworten.
B

Bernd1983

Gast
hi so ich versuchs jetzt stückenweise ein Programm zu lösen:

ich soll ein Rechteck zeichnen mit Mousclicks und maus ziehen. mein Rechteck verfügt zurzeit über vier Variablen: Konstruktor new Quad(x,y,width,heigth);Genaue Angabe:

Painting shall be possible through dragging the mouse. The first click defines the start position:

code in einer swing Klasse:

ok kein Problem
Code:
 class MyMouseListener implements MouseListener
  {
     public void mouseClicked(MouseEvent me) {};
     
     public void mousePressed(MouseEvent me) {
         Point po=me.getPoint();
         x=po.x;
         y=po.y;
     }

then while holding the mouse button and moving the mouse the extent of the figure is set.



Code:
public void mouseReleased(MouseEvent me){
     
  }

und von Klasse MouseMotionListener

pubic void mouseDragged(MouseEvent me){ }[/code]


ok wie realisiere ich nun diese zwei Methoden lt. Angabe? Bitte um Tipps
 

JFreak

Bekanntes Mitglied
Du könntest z. B. eine interne Point-Variable machen, also z. B.
Code:
private Point start;
. Wenn die Maustaste gedrückt wird, schreibst du die Startkoordinaten darein, und wenn sie wieder losgelassen wird, erzeugst du ein Rechteck damit und den akt. Koordinaten.
 
B

Bernd1983

Gast
ja danke

aber das hab ich schon so gemacht.

ich möchte ja die Angabe erfüllen: also klicken und dann du ziehen und wieder loslassen die Breite und Höhe des Rechtecks bestimmen.
 

JFreak

Bekanntes Mitglied
Ich verstehe dein Problem nicht... Du hast doch Ausgangs- und Zielkoordinaten. Daraus kannst du doch Höhe und Breite bestimmen.
 
B

Bernd1983

Gast
mein Problem ist:

wie sieht die mouseDragged() Methode aus in meinem Programm.?

habs mal so gemacht:

Code:
public void mouseDragged( MouseEvent e ) {
         width= e.getX();
         height=e.getY();
       }

da bekomm ich zwar irgendein Rechteck, aber das kann dann nicht mit meinem ziehen zusammenhängen.

und beim 2.mal ausführen eine Meldung: Error occurred during initialization of VM
Could not reserve enough space for object heap

??
 

Leroy42

Top Contributor
Deine mouseDragged-Methode muß die Mauskoordinaten
in einer Instanzvariablen speicher und repaint-aufrufen.

Die (dadurch von der GUI aufgerufene) paintComponent-
Methode zeichnet dann, anhand der gespeicherten Anfangs-
und Endkoordinaten, das Dreieck.
 
B

Bernd1983

Gast
@leroy42

danke, aber 1. width und higth sind ja Instanzvariablen des Objektes Quad.???

verstehe leider dein statement nicht
 
B

Bernd1983

Gast
@wieselAc

ja ok hab jetzt mein bsp so angelehnt. funzt nicht. es wird halt irgend ein rechteck gezeichnet

Code:
int x,y,width,height;
    private boolean move; 
    Graphics z;
    FigurePanel figurePanel=null;
  JButton green;
  JButton test;
  JMenuBar jmenubar;
  JMenu menu;
  //JMenuItem item1;
  JRadioButtonMenuItem jradiomenu;
  
  
  SwingDemo(){
     move=false;
      getContentPane().setLayout(new BorderLayout());
      green=new JButton("rechteck?");
      figurePanel=new FigurePanel();
     
      getContentPane().add(figurePanel,BorderLayout.CENTER);
   
      getContentPane().addMouseListener(new MyMouseListener());
  
     
  }
  
   class MyMouseListener implements MouseListener
  {
     public void mouseClicked(MouseEvent me) {};
     
     public void mousePressed(MouseEvent me) {
         Point po=me.getPoint();
         x=po.x;
         y=po.y;
     }
     
     public void mouseReleased(MouseEvent me){
     if(me.isMetaDown()){
        
         Figure fig=new Quad(x,y,width,height);
         figurePanel.figur=fig;
         move=false;
        figurePanel.repaint();
     }
     }
     
     public void mouseEntered(MouseEvent me) {}
        
     public void mouseExited(MouseEvent me) {}
  }
   
   class MyMouseMotionListner implements MouseMotionListener{
       public void mouseMoved( MouseEvent e ) { }
       public void mouseDragged( MouseEvent e ) {
           if (e.isMetaDown()) {
               move = true;
               width=e.getX();
               height=e.getY();
               repaint();
           } 
       }
   }
 

Tobias

Top Contributor
Code:
width=e.getX();
               height=e.getY();

Weil das ja auch die verkehrten Werte sind! Du mußt die x bzw y-Koordinate des Startpunktes abziehen!

mpG
Tobias
 
B

Bernd1983

Gast
habs geändert.

ich bekomme leider nur ganz kleine punkte angezeigt.
 
B

Bernd1983

Gast
ok ich idiot

hatte es schon lange. habe aber nur die addMousMotion als Kommentar gesetzt.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J SWING UI Designer und zeichnen Java Basics - Anfänger-Themen 4
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
W Zeichnen in Swing Java Basics - Anfänger-Themen 7
I Was in Swing, was in AWT zeichnen & Textfeld formatierba Java Basics - Anfänger-Themen 4
B Swing Rechteck zeichnen Java Basics - Anfänger-Themen 14
E Zeichnen mit Swing Java Basics - Anfänger-Themen 6
G Maven Swing: Wie verwende ich WindowListener ? Java Basics - Anfänger-Themen 2
C Threads und Swing Java Basics - Anfänger-Themen 9
A Swing: Raumshiff Java Basics - Anfänger-Themen 3
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
nbergmann Wo ist javax.swing.JOptionPane gespeichert? Java Basics - Anfänger-Themen 4
StevenGG Java swing "New Integer" Java Basics - Anfänger-Themen 5
O ImageIcon, Swing Java Basics - Anfänger-Themen 1
O Swing JPanel Java Basics - Anfänger-Themen 4
F Swing - Fehler - Paint Methode Java Basics - Anfänger-Themen 7
M Input/Output Java Swing: Prüft ob Text aus JTextField ausschließlich Integer enthält Java Basics - Anfänger-Themen 15
mobaer Swing Timer stoppen Java Basics - Anfänger-Themen 3
M Wie kann ich hier ein Textfeld hinzufügen Java Swing? Java Basics - Anfänger-Themen 1
M SpielMenü mit Swing Java Basics - Anfänger-Themen 3
M Wie kann ich eine Eingabe im Java-Swing übergeben? Java Basics - Anfänger-Themen 1
N javax swing JOptionPane Hilfe Java Basics - Anfänger-Themen 3
H Swing Button hat falsche Größe Java Basics - Anfänger-Themen 5
C Der Swing Layout-Manager hasst mich Java Basics - Anfänger-Themen 4
M Java swing im Browser starten Java Basics - Anfänger-Themen 0
M JavaFX in Swing-Applikationen einbetten Java Basics - Anfänger-Themen 5
Z Threads SWING mit EventQueue.invokeLater Java Basics - Anfänger-Themen 1
P JDK installieren javac behauptet Javax.swing existiert nicht Java Basics - Anfänger-Themen 8
K Ascii Converter mit Swing Java Basics - Anfänger-Themen 4
b1ck Interface Verständnisfrage zum GUI mit "swing" Java Basics - Anfänger-Themen 1
N Erste Schritte Karte in SWING Application Java Basics - Anfänger-Themen 4
D Mehrfacherfassung in Swing GUI Java Basics - Anfänger-Themen 12
D Datum aus Swing in MySQL DB speichern Java Basics - Anfänger-Themen 22
R warum kann System.out.println(..) etwas, was Swing-Elemente Nicht können ? Java Basics - Anfänger-Themen 11
J Input/Output Charset Swing- Eingaben? Java Basics - Anfänger-Themen 8
S JUnit - Swing- Anwendung wird nicht neu gestartet Java Basics - Anfänger-Themen 0
Q Threads Threads in Swing Anwendungen Java Basics - Anfänger-Themen 5
B Swing intstalliert Eclips{}, mackiert Rot Java Basics - Anfänger-Themen 6
U Java Swing Timer mit ButtonKlick starten u. nach 12 Sekunden Befehl ausführen Java Basics - Anfänger-Themen 7
S Input/Output In Java Swing auf Button warten? Java Basics - Anfänger-Themen 9
N Problem mit Swing Textfeld und Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 6
G Performance - höhere Anzahl Swing Elemente Java Basics - Anfänger-Themen 5
B Java Swing "Zeichenfläche" Java Basics - Anfänger-Themen 1
O Alternative zum swing-Timer Java Basics - Anfänger-Themen 5
F Swing Applet: mehrere Komponenten hinzufügen Java Basics - Anfänger-Themen 1
F Platzieren von Komponenten in Swing Applet funktioniert nicht Java Basics - Anfänger-Themen 3
P Hintergrundbild in Swing einfügen Java Basics - Anfänger-Themen 3
C Swing frage Java Basics - Anfänger-Themen 8
T Rechenprogramm mit Swing Java Basics - Anfänger-Themen 3
K Swing Darstellungsproblem Java Basics - Anfänger-Themen 11
G Verständnisproblem mit swing Java Basics - Anfänger-Themen 6
P Swing - Blackscreen Java Basics - Anfänger-Themen 10
Y Random-Objekt und Swing Java Basics - Anfänger-Themen 4
M Klassen Hilfe bei SWING Java Basics - Anfänger-Themen 5
S GUI Problem: Swing Java Basics - Anfänger-Themen 8
M Javax.swing - Timer(2 Button) Java Basics - Anfänger-Themen 17
J Timer - Swing Java Basics - Anfänger-Themen 5
B Erste Schritte Primefaces -> Swing Gui Java Basics - Anfänger-Themen 7
T Swing, SWT oder JavaFX Java Basics - Anfänger-Themen 8
S Programmoberfläche mit Java-Swing - Herangehensweise Java Basics - Anfänger-Themen 20
E Fragen zu paintXXX in Swing Java Basics - Anfänger-Themen 7
D Erste Schritte bash-Befehl mit Swing ausführen Java Basics - Anfänger-Themen 8
A Alternative zum manuellen Swing programmieren?? Java Basics - Anfänger-Themen 4
S Android fuer Swing-Kenner..? Java Basics - Anfänger-Themen 6
J Swing Timer Java Basics - Anfänger-Themen 3
B Seltsamer Fehler in SWING anwendung Java Basics - Anfänger-Themen 2
D GPS Tracker Swing Java Basics - Anfänger-Themen 2
L Erste Schritte Swing oder SWT Paint mit Grafikkarte? Java Basics - Anfänger-Themen 7
B Einstieg in swing GUI Java Basics - Anfänger-Themen 7
S Swing Eingabe Erzwingen Java Basics - Anfänger-Themen 3
S Swing JTable Java Basics - Anfänger-Themen 7
Z Input/Output Programm mit Swing umsetzen Java Basics - Anfänger-Themen 6
K Eclipse wie Swing per Drag und Drop erstellen Java Basics - Anfänger-Themen 2
V Dropdown Button in einer GUI (Java Swing) Java Basics - Anfänger-Themen 12
S Swing, Gridbaglayout Panel in Panel;funzt nicht!! Java Basics - Anfänger-Themen 3
O swing komponenten werden nicht angezeigt Java Basics - Anfänger-Themen 6
S Swing, Panel über Hintergrundbild!! Java Basics - Anfänger-Themen 6
P Im Fenster bleiben (swing) Java Basics - Anfänger-Themen 16
M Einfacher Swing Wizard Java Basics - Anfänger-Themen 3
E Swing FileWrite?? Java Basics - Anfänger-Themen 3
S Umlaute in Swing-GUI Java Basics - Anfänger-Themen 8
K Drop-down Menü (swing) Java Basics - Anfänger-Themen 4
M Timer-Thread in Swing öffnet jedes Mal ein neues Fenster Java Basics - Anfänger-Themen 6
M Swing Klasse auch per Kommandozeile starten? Java Basics - Anfänger-Themen 2
S JAVA Swing Eventlistener Java Basics - Anfänger-Themen 11
P Swing - Welche Klasse für ausgeben von Ergebnissen? Java Basics - Anfänger-Themen 3
V Swing Componenten werden auf Mac nicht angezeigt Java Basics - Anfänger-Themen 19
J Überfordert mit Swing Java Basics - Anfänger-Themen 5
B Baum > Baum-Swing Java Basics - Anfänger-Themen 4
B Bei Swing weg vom North-West-South-East-Prinzip Java Basics - Anfänger-Themen 2
K Swing Fenster jede sec.neuzeichnen Java Basics - Anfänger-Themen 14
F Werteübergabe in Swing Formularen (gui Builder) Java Basics - Anfänger-Themen 9
L Swing GridBagLayout Java Basics - Anfänger-Themen 3
K Bild als Hintergrund in einem Swing Fenster Java Basics - Anfänger-Themen 21
J unterschied zwischen awt und swing Java Basics - Anfänger-Themen 6
C Swing i.V.m. Threads Java Basics - Anfänger-Themen 2
J XML Viewer for Swing Java Basics - Anfänger-Themen 6
Y Anfänger Hausaufgabe... Swing Java Basics - Anfänger-Themen 6
B Swing Applikation mit mehreren Klassen Java Basics - Anfänger-Themen 2
C Swing, Buttons Wert zuweisen Java Basics - Anfänger-Themen 3
Luk10 Swing timer und Threads Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben