2012-04-20 11 views
10

मैं जावा में join.me बनाना चाहता हूं।जावा - माउस ड्रैगिंग द्वारा चित्र स्क्रॉल करें

मैंने स्क्रीन कैप्चर किया है लेकिन अब मैं माउस खींचकर छवि में स्क्रॉल करना चाहता हूं।

यहाँ मैं क्या कर दिया है की एक स्क्रीन है: सभी की enter image description here

पहले, मैं माउस छवि खींचकर स्क्रॉल बार बदलना चाहते हैं। क्या यह संभव है? फिर मैं उन स्क्रॉल बार को हटाना चाहता हूं।

आज, उपयोगकर्ता ज़ूम बदल सकते हैं और ज़ूम इन/आउट करने के लिए अपने माउस व्हील का उपयोग कर सकते हैं।

क्या आप मेरी मदद कर सकते हैं?

धन्यवाद।


संपादित करें: मैं जिस तरह का उपयोग कर स्क्रॉल पट्टी को छिपाने के लिए मिल गया है:

this.jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); 
this.jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER); 

उत्तर

22

अंत में, मैं इसे अपने आप से किया था। यहाँ समाधान अगर किसी को इसकी जरूरत है:

एक नया वर्ग निम्न कोड के साथ HandScrollListener नामित बनाएँ:

import java.awt.Cursor; 
import java.awt.Point; 
import java.awt.Rectangle; 
import java.awt.event.MouseAdapter; 
import java.awt.event.MouseEvent; 

import javax.swing.JLabel; 
import javax.swing.JViewport; 

public class HandScrollListener extends MouseAdapter 
{ 
    private final Cursor defCursor = Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR); 
    private final Cursor hndCursor = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR); 
    private final Point pp = new Point(); 
    private JLabel image; 

    public HandScrollListener(JLabel image) 
    { 
     this.image = image; 
    } 

    public void mouseDragged(final MouseEvent e) 
    { 
     JViewport vport = (JViewport)e.getSource(); 
     Point cp = e.getPoint(); 
     Point vp = vport.getViewPosition(); 
     vp.translate(pp.x-cp.x, pp.y-cp.y); 
     image.scrollRectToVisible(new Rectangle(vp, vport.getSize())); 
     pp.setLocation(cp); 
    } 

    public void mousePressed(MouseEvent e) 
    { 
     image.setCursor(hndCursor); 
     pp.setLocation(e.getPoint()); 
    } 

    public void mouseReleased(MouseEvent e) 
    { 
     image.setCursor(defCursor); 
     image.repaint(); 
    } 
} 
फिर अपने फ्रेम डाल में

:

HandScrollListener scrollListener = new HandScrollListener(label_to_move); 
jScrollPane.getViewport().addMouseMotionListener(scrollListener); 
jScrollPane.getViewport().addMouseListener(scrollListener); 

यह काम करना चाहिए!

+0

यदि मैं कर सकता तो मैं आपको एक से अधिक बार ऊपर उठाऊंगा। साझा करने के लिए धन्यवाद!! –

संबंधित मुद्दे