2012-04-20 19 views
10

Java'da bir join.me like yapmak istiyorum.Java - Fare sürüklerken resim kaydırma

Ekran yakalama bölümünü yaptım ama şimdi fareyi sürükleyerek görüntüde kaydırma yapmak istiyorum. İşte

i yaptık şeyin bir ekranıdır: Herşeyden enter image description here

Birincisi, resmi sürükleyerek fare tarafından kaydırma çubukları değiştirmek istiyor. Mümkün mü? Ardından bu kaydırma çubuklarını kaldırmak istiyorum.

Bugün, kullanıcılar yakınlaştırmayı değiştirebilir ve yakınlaştırma/uzaklaştırma yapmak için fare tekerleğini kullanabilir.

Yardımcı olabilir misiniz?

Teşekkürler.


Düzenleme: kullanarak kaydırma çubuğunu gizlemek için bir yol buldum:

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

cevap

22

Son olarak, kendim yaptım. İşte birisi gerekirse bir çözümdür:

aşağıdaki kodla HandScrollListener adında yeni bir sınıf oluşturun: çerçeve koymak içinde Sonra

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); 

O çalışmalı!

+0

Eğer yapabilirsem size bir defadan fazla yardımcı olurum. Paylaşım için teşekkürler!! –

İlgili konular