Resize Rectangle Problem

rbrose

Mitglied
Hallo zusammen,

ich habe mir eine Funktion gebaut um ein Rectangle in der Größe zu verändern. Es klappt super für SOUTH, EAST und SOUTH_EAST. Für die anderen Punkte wird irgendwie doppelt so viel vergrößert bzw. proportional. Ich sitze hier und finde das Problem nicht :-(

Kann mir vielleicht jemand helfen? Habe ein Video gemacht und es vielleicht schneller zu verstehen was ich meine.
Hier das Video: RapidShare: 1-CLICK Web hosting - Easy Filehosting 338 kb

Hier der Mouse event Code:

Java:
	@Override
	public void mousePressed(MouseEvent e) {
		System.out.println("Curspr: " + cursor);
		if(ToolBar.SELECTOR.equals(ToolBar.selectedItem) &&  selectedTextBox.getCursor(e) == 13) {
			for(Components inddItem: drawObjects) {
				if(selectedTextBox != null) {
					selectedTextBox.setSelected(false);
					selectorMode = false;
				}
				
				if(inddItem.contains(e.getPoint())) {
					selectedTextBox = (TextBox) inddItem;
					selectedTextBox.setSelected(true);
					selectorMode = true;
					break;
				}
				repaint();
		}
			
		} else if(ToolBar.TEXTBOX.equals(ToolBar.selectedItem)) {
			TextBox newTextBox = new TextBox(e.getX(),e.getY(),0,0);
			newTextBox.setSelected(true);
			
			selectedTextBox = newTextBox;
			texboxCreateMode = true;
			
			drawObjects.add(newTextBox);
			repaint();	
		}
		
		if(selectedTextBox != null) {
			diffX = selectedTextBox.x - e.getX();
			diffY = selectedTextBox.y - e.getY();
			
			cursor = selectedTextBox.getCursor(e);
		    startPos = e.getPoint();
		}
		
	}

	@Override
	public void mouseReleased(MouseEvent e) {
		if(selectedTextBox != null && texboxCreateMode) {
			selectedTextBox.setSize((int)(e.getX() - selectedTextBox.getX()), (int)(e.getY() - selectedTextBox.getY()));
			selectedTextBox.setSelected(false);
			selectedTextBox.setColor(Color.BLACK);
			texboxCreateMode = false;
		}
		startPos = null;
		repaint();		
	}

	@Override
	public void mouseDragged(MouseEvent e) {
		if(selectedTextBox != null  && texboxCreateMode) {
			selectedTextBox.setSize((int)(e.getX() - selectedTextBox.getX()), (int)(e.getY() - selectedTextBox.getY()));
			repaint();
		} 
		else if (startPos != null && selectorMode) {

		        int x = selectedTextBox.x;
		        int y = selectedTextBox.y;
		        int w = selectedTextBox.width;
		        int h = selectedTextBox.height;

		        int dx = e.getX() - startPos.x;
		        int dy = e.getY() - startPos.y;
		 
		        switch (cursor) {
		          case Cursor.N_RESIZE_CURSOR:
		            if (!(h - dy < 50)) {
		            	selectedTextBox.setBounds(x, y + dy, w, h - dy);
		              repaint();
		            }
		            break;

		          case Cursor.S_RESIZE_CURSOR:
		            if (!(h + dy < 50)) {
		              selectedTextBox.setBounds(x, y, w, h + dy);
		              startPos = e.getPoint();
		              repaint();		            }
		            break;

		          case Cursor.W_RESIZE_CURSOR:
		            if (!(w - dx < 50)) {
		            	selectedTextBox.setBounds(x + dx, y, w - dx, h);
		            	 repaint();		            }
		            break;

		          case Cursor.E_RESIZE_CURSOR:
		            if (!(w + dx < 50)) {
		            	selectedTextBox.setBounds(x, y, w + dx, h);
		              startPos = e.getPoint();
		              repaint();		            }
		            break;

		          case Cursor.NW_RESIZE_CURSOR:
		            if (!(w - dx < 50) && !(h - dy < 50)) {
		            	selectedTextBox.setBounds(x + dx, y + dy, w - dx, h - dy);
		            	 repaint();		            }
		            break;

		          case Cursor.NE_RESIZE_CURSOR:
		            if (!(w + dx < 50) && !(h - dy < 50)) {
		            	selectedTextBox.setBounds(x, y + dy, w + dx, h - dy);
		              startPos = new Point(e.getX(), startPos.y);
		              repaint();		            }
		            break;

		          case Cursor.SW_RESIZE_CURSOR:
		            if (!(w - dx < 50) && !(h + dy < 50)) {
		            	selectedTextBox.setBounds(x + dx, y, w - dx, h + dy);
		              startPos = new Point(startPos.x, e.getY());
		              repaint();		            }
		            break;

		          case Cursor.SE_RESIZE_CURSOR:
		            if (!(w + dx < 50) && !(h + dy < 50)) {
		            	selectedTextBox.setBounds(x, y, w + dx, h + dy);
		              startPos = e.getPoint();
		              repaint();		            }
		          break;

		          case Cursor.MOVE_CURSOR:
		        	selectedTextBox.setLocation(e.getX() + diffX,e.getY() + diffY);
		            repaint();
		          }


		          setCursor(Cursor.getPredefinedCursor(cursor));
		        }
		
	}

	@Override
	public void mouseMoved(MouseEvent e) {
		if(selectedTextBox != null && selectedTextBox.isSelected()) {
			setCursor(Cursor.getPredefinedCursor(selectedTextBox.getCursor(e)));
		}
		
	}


Meiner Meingung muss der Fehler irgndwie im

Java:
		        int dx = e.getX() - startPos.x;
		        int dy = e.getY() - startPos.y;

liegen.


Vielen Dank für eure Hilfe im voraus.
 

Marco13

Top Contributor
Statt des Videos wäre ein KSKB vieeel hilfreicher. Eine Systematik beim Neusetzen der "startPos" habe ich nicht erkannt - könnte dort der Fehler liegen?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H JDialog in Größe ändern - Resize-Cursor bleibt betreten der Komponente AWT, Swing, JavaFX & SWT 1
M Swing Component Resize AWT, Swing, JavaFX & SWT 7
Z JavaFX Pane für wechselnde Sub-Panes mit Auto-Resize AWT, Swing, JavaFX & SWT 2
J Resize Node im BorderPane AWT, Swing, JavaFX & SWT 7
L Swing Komponenten erst nach Resize sichtbar AWT, Swing, JavaFX & SWT 2
Yjuq JavaFX Custom Control - Image resize AWT, Swing, JavaFX & SWT 0
robinab JavaFX TableView column resize nach setItems() AWT, Swing, JavaFX & SWT 0
G Resize JFrame AWT, Swing, JavaFX & SWT 8
J Button vergrößert sich bei Fenster resize AWT, Swing, JavaFX & SWT 22
B JavaFX Scene Builder: resize funktioniert (meist) nicht AWT, Swing, JavaFX & SWT 6
B Resize von Image nach Resize von Button AWT, Swing, JavaFX & SWT 1
HaukeG JavaFX JavaFX Resize und DragAndDrop eines Pane AWT, Swing, JavaFX & SWT 4
D JList&JButton erst nach Resize des JFRame sichtbar AWT, Swing, JavaFX & SWT 2
E JavaFX ScrollBar in TableView bei Column Resize AWT, Swing, JavaFX & SWT 2
T Bild drehen ohne Resize AWT, Swing, JavaFX & SWT 3
P ScrollPane nach zeichnen dynamisch resize AWT, Swing, JavaFX & SWT 7
J resize - Label bleibt erst schwarz AWT, Swing, JavaFX & SWT 4
M Kein resize nach Component.setVisible() AWT, Swing, JavaFX & SWT 2
W Zeichnen in einem JFrame nach Resize AWT, Swing, JavaFX & SWT 7
lumo SWT Resize und aktualisierung der gui AWT, Swing, JavaFX & SWT 6
M Seltsames Problem mit Resize eines Fensters und seiner Komponenten AWT, Swing, JavaFX & SWT 2
frankred Swing Canvas nach "Window-resize" neu Zeichnen lassen wegen Anzeigefehler AWT, Swing, JavaFX & SWT 4
TiME-SPLiNTER JLabel mit Icon & JFrame Resize AWT, Swing, JavaFX & SWT 5
J JTextArea verschwindet bei resize vom JFrame AWT, Swing, JavaFX & SWT 2
T JFrame resize AWT, Swing, JavaFX & SWT 2
1 Swing manual resize table column to min size AWT, Swing, JavaFX & SWT 2
W SWT Resize Tree-Element AWT, Swing, JavaFX & SWT 3
J Swing JFrame resize-Möglichkeiten AWT, Swing, JavaFX & SWT 10
A SWT Group und Column mit Resize ändern AWT, Swing, JavaFX & SWT 5
lumo Swing Resize löst probleme...? AWT, Swing, JavaFX & SWT 12
A Swing JPanel mit GridBagLayout Resize-problem AWT, Swing, JavaFX & SWT 1
hdi Swing JFrame Resize nicht in "Echtzeit" AWT, Swing, JavaFX & SWT 4
S Swing JTabbedPane: Resize des JFrame bei Tab wechsel AWT, Swing, JavaFX & SWT 8
B JInternalFrame resize event AWT, Swing, JavaFX & SWT 2
T nach resize transparent weg AWT, Swing, JavaFX & SWT 4
I SWT komponenten resize AWT, Swing, JavaFX & SWT 4
S JFrame instante Resize AWT, Swing, JavaFX & SWT 3
J resize eines Bildes automatisch berechnen lassen? AWT, Swing, JavaFX & SWT 2
D JInternalFrame iconified Position nach parent-resize AWT, Swing, JavaFX & SWT 2
F Resize in ScrollPane AWT, Swing, JavaFX & SWT 4
M nachträglicher resize von frame AWT, Swing, JavaFX & SWT 6
A resize ohne anddauerndes repaint AWT, Swing, JavaFX & SWT 2
T schönes Resize bei eigenem JFrame AWT, Swing, JavaFX & SWT 5
A resize ohne neu zu zeichnen AWT, Swing, JavaFX & SWT 8
C Swing und resize AWT, Swing, JavaFX & SWT 5
R Resize Problem bei JComponent AWT, Swing, JavaFX & SWT 2
P Resize von ScrollPane Inhalten AWT, Swing, JavaFX & SWT 2
A jtable resize AWT, Swing, JavaFX & SWT 6
R resize ImageIcon AWT, Swing, JavaFX & SWT 7
A GUI Komponenten verlieren Proportion bei resize (GBL) AWT, Swing, JavaFX & SWT 4
S Resize Event? AWT, Swing, JavaFX & SWT 2
K Image Resize + zu Byte [] konvertieren AWT, Swing, JavaFX & SWT 5
E Ärger mit ScrollPane, JTable und der Resize-Einstellung AWT, Swing, JavaFX & SWT 2
R JTable, automatischer resize der Zellen nach einer Eingabe AWT, Swing, JavaFX & SWT 4
J JFrame resize in Echtzeit AWT, Swing, JavaFX & SWT 3
B TableLayout - Resize Probleme AWT, Swing, JavaFX & SWT 2
R Autoresize eines Panel nach resize des Frames? AWT, Swing, JavaFX & SWT 3
U Was genau bewirkt Rectangle in 2dGraphics? AWT, Swing, JavaFX & SWT 1
R AWT Rectangle mit Angle AWT, Swing, JavaFX & SWT 10
K 2048 Umsetzung mit Gridpane / Stackpane und / Rectangle AWT, Swing, JavaFX & SWT 0
N JavaFX Group: Gezieltes entfernen eines Objects (Rectangle) AWT, Swing, JavaFX & SWT 0
J JavaFX Rectangle innerhalb eines Rectangle oder Panes positionieren? AWT, Swing, JavaFX & SWT 1
U JavaFX GridPane - Circle auf Rectangle versetzten AWT, Swing, JavaFX & SWT 1
G Rectangle Breite richtet such an die Breite vom Text AWT, Swing, JavaFX & SWT 1
L JavaFX Rectangle mit Dock-Mechanismus AWT, Swing, JavaFX & SWT 3
K JavaFX TableView mit Rectangle AWT, Swing, JavaFX & SWT 3
F Problem mit der FXML Rectangle Shape AWT, Swing, JavaFX & SWT 2
T Rectangle Transparent und darunter liegende Objekte Bedienbar AWT, Swing, JavaFX & SWT 0
J Rectangle g.fillRec() X/Y Punkt AWT, Swing, JavaFX & SWT 5
TheSorm Rectangle drehen AWT, Swing, JavaFX & SWT 9
S Rectangle Border Color AWT, Swing, JavaFX & SWT 13
P drawString in einem Rectangle AWT, Swing, JavaFX & SWT 4
P Rectangle verschieben AWT, Swing, JavaFX & SWT 11
P ImageIcon auf Rectangle AWT, Swing, JavaFX & SWT 3
P Rectangle on JPanel zentrieren AWT, Swing, JavaFX & SWT 20
O 2D-Grafik Rectangle mit double Werten zeichnen AWT, Swing, JavaFX & SWT 3
T Rectangle Namen geben? Alternativen auch gerne gesehen. AWT, Swing, JavaFX & SWT 2
D 2D-Grafik Form der GrafikObjekte ändern, Ellipse -> Rectangle AWT, Swing, JavaFX & SWT 2
K AWT Rectangle klappt nicht AWT, Swing, JavaFX & SWT 7
Schandro Den größten passenden java.awt.Font zu einem Rectangle berechnen AWT, Swing, JavaFX & SWT 2
I Text innerhalb von Rectangle rendern AWT, Swing, JavaFX & SWT 3
H Rectangle[] ? AWT, Swing, JavaFX & SWT 5
I Rectangle mit floating values AWT, Swing, JavaFX & SWT 2
D Markieren mit Rectangle ? AWT, Swing, JavaFX & SWT 9
T PLAF MetalButtonUI Rectangle beseitigen AWT, Swing, JavaFX & SWT 4
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
H 2D-Grafik Problem mit Paint AWT, Swing, JavaFX & SWT 1
S Layout - Problem AWT, Swing, JavaFX & SWT 1
Tassos JavaFX/Problem mit der Maussteuerung in Stackpane AWT, Swing, JavaFX & SWT 7
sserio Java Fx - Problem AWT, Swing, JavaFX & SWT 3
A Problem Spiel auf Panel der GUI zu bringen AWT, Swing, JavaFX & SWT 1
A JavaFX Controller Problem AWT, Swing, JavaFX & SWT 1
TheWhiteShadow JavaFX ListView Problem beim Entfernen von Elementen AWT, Swing, JavaFX & SWT 1
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3
Umb3rus JavaFX Problem mit PropertyValueFactory: can not read from unreadable property AWT, Swing, JavaFX & SWT 1
T Problem mit paintComponent() AWT, Swing, JavaFX & SWT 17
AmsananKING Java Menü-Problem AWT, Swing, JavaFX & SWT 1
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
G Instance OF Problem AWT, Swing, JavaFX & SWT 9
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben