From 7e51fe541a879ab426c330ee02af6953dd7355df Mon Sep 17 00:00:00 2001 From: Yorick Date: Thu, 12 Mar 2015 23:00:44 +0000 Subject: [PATCH] Scrolling works, had boundaries, only draws an object when image is drawn, woo --- Applicatie/Panel.java | 14 ++++++++++++-- Listeners/Mouse.java | 2 +- Listeners/MouseWheel.java | 14 +++++++++++--- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/Applicatie/Panel.java b/Applicatie/Panel.java index fddaf71..62ab697 100644 --- a/Applicatie/Panel.java +++ b/Applicatie/Panel.java @@ -81,6 +81,17 @@ public class Panel extends JPanel { } + public int getPanelInfoLength() + { + int panelInfoLength = 0; + for(BufferedImage image : panelInfo) + { + panelInfoLength += image.getWidth(); + } + + return panelInfoLength; + } + public DrawObject createNewDrawObject(int index) { switch(index) @@ -112,12 +123,11 @@ public class Panel extends JPanel { // g2.drawImage(podiumImage, 0, 0, null); for(BufferedImage image : panelInfo) { - g2.drawImage(image, panelInfox - scrollfactor, panelInfoy, null); + g2.drawImage(image, panelInfox + scrollfactor, panelInfoy, null); panelInfox += image.getWidth(); } panelInfox = 0; - g2.setClip(new Rectangle2D.Double(0,150, getWidth(), getHeight())); AffineTransform oldTransform = g2.getTransform(); g2.setTransform(getCamera()); diff --git a/Listeners/Mouse.java b/Listeners/Mouse.java index 52a8dbe..6bf8217 100644 --- a/Listeners/Mouse.java +++ b/Listeners/Mouse.java @@ -34,7 +34,7 @@ public class Mouse extends MouseAdapter { int last = 0; for(BufferedImage image : panel.getPanelInfo()) { - if(e.getX() < last + image.getWidth() - panel.getScrollfactor()) + if(e.getX() >= panel.getScrollfactor() && e.getX() < last + image.getWidth() + panel.getScrollfactor()) { DrawObject tempDrawObj = panel.createNewDrawObject(i); tempDrawObj.setPosition(clickPoint); diff --git a/Listeners/MouseWheel.java b/Listeners/MouseWheel.java index 2018823..6ff9a6f 100644 --- a/Listeners/MouseWheel.java +++ b/Listeners/MouseWheel.java @@ -9,7 +9,7 @@ import Applicatie.Panel; public class MouseWheel implements MouseWheelListener { private Panel panel; - private int scrollfactor, min, max; + private int scrollfactor; public MouseWheel(Panel panel) { @@ -35,11 +35,19 @@ public class MouseWheel implements MouseWheelListener { if(e.getPreciseWheelRotation() < 0) { - panel.setScrollfactor(panel.getScrollfactor() - scrollfactor); + if(panel.getScrollfactor() + scrollfactor + panel.getPanelInfoLength() < panel.getWidth()) + { + panel.setScrollfactor(panel.getScrollfactor() + scrollfactor); + } + } else { - panel.setScrollfactor(panel.getScrollfactor() + scrollfactor); + if(panel.getScrollfactor() - scrollfactor >= 0) + { + panel.setScrollfactor(panel.getScrollfactor() - scrollfactor); + } + } }