Java - JViewport


Klasa JViewport se koristi za implementaciju pomicanja. JViewport je dizajniran da podrži i logičko pomicanje i pomicanje zasnovano na pikselima. Podređeno polje prikaza, koje se zove pogled (view), pomjera se pozivanjem metode JViewport.setViewPosition().



Ugnježdene klase

Modifikator i tip Klasa Opis
protected class JViewport.AccessibleJViewport Ova klasa implementuje podršku pristupačnosti za klasu Jviewport.
protected class JViewport.ViewListener Slušalac za pogled.


Polja

Modifikator i tip Polje Opis
static int BACKINGSTORE_SCROLL_MODE Uvlači sadržaj okvira za prikaz u sliku van ekrana.
protected Image backingStoreImage Slika prikaza koja se koristi za pozadinu.
static int BLIT_SCROLL_MODE Koristi graphics.copyArea za implementaciju pomicanja.
protected boolean isViewSizeSet Tačno (true) kada su određene dimenzije okvira za prikaz.
protected Point lastPaintPosition Posljednji viewPosition koji smo slikali, tako da znamo koliki je dio pozadinske slike važeći.
protected boolean scrollUnderway Oznaka scrollUnderway se koristi za komponente kao što je JList.
static int SIMPLE_SCROLL_MODE Ovaj način rada koristi vrlo jednostavnu metodu ponovnog iscrtavanja cjelokupnog sadržaja okna za pomicanje svaki put kada se skroluje.


Konstruktori

Konstruktor Opis
JViewport() Kreira JViewport.


Metode

Modifikator i tip Metoda Opis
void addChangeListener(ChangeListener l) Dodaje ChangeListener na listu koja se obavještava svaki put kada se promijeni veličina, pozicija ili veličina okvira prikaza.
protected LayoutManager createLayoutManager() Podklase mogu ovo nadjačati da instaliraju drugačiji menadžer rasporeda (ili null) u konstruktoru.
protected Jviewport.ViewListener createViewListener() Stvara slušaoca za pogled.
int getScrollMode() Vraća trenutni način pomicanja.
Component getView() Vraća JViewport jedno dijete ili null.
Point getViewPosition() Vraća koordinate prikaza koje se pojavljuju u gornjem lijevom uglu okvira za prikaz, ili 0,0 ako nema pogleda.
Dimension getViewSize() Ako veličina pogleda nije eksplicitno postavljena, vraća željenu veličinu, u suprotnom vraća trenutnu veličinu pogleda.
void setExtentSize(Dimension newExtent) Postavlja veličinu vidljivog dijela pogleda koristeći koordinate pogleda.
void setScrollMode(int mode) Koristi se za kontrolu načina pomicanja sadržaja prozora za prikaz.
void setViewSize(Dimension newSize) Postavlja veličinu prikaza.


Primjer Java JViewport

// Importovanje potrebnh biblioteka
import java.awt.BorderLayout;  
import java.awt.Color;  
import java.awt.Dimension;  
import javax.swing.JButton;  
import javax.swing.JFrame;  
import javax.swing.JLabel;  
import javax.swing.JScrollPane;  
import static javax.swing.WindowConstants.EXIT_ON_CLOSE;
import javax.swing.border.LineBorder;


public class Main {  
    public static void main(String[] args) {  
        // Kriranje Frame-a za prikaz uzorka
        JFrame frame = new JFrame("Uzorak okna sa karticama");  
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        
        // Label koji se nalazi u Frame-u
        JLabel label = new JLabel("Label");  
        label.setPreferredSize(new Dimension(1000, 1000));  
        JScrollPane jScrollPane = new JScrollPane(label);  
        
        // Kreiranja ScrollBar-a za horizontalno i vertikano pomjeranje
        JButton jButton1 = new JButton();  
        jScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);  
        jScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);  
        jScrollPane.setViewportBorder(new LineBorder(Color.RED));  
        jScrollPane.getViewport().add(jButton1, null);  
        
        // Dodavanje elemenata u Frame i podešavanje veličine
        frame.add(jScrollPane, BorderLayout.CENTER);  
        frame.setSize(400, 150);  
        frame.setVisible(true);  
        frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }  
}

Prikaz koda iz gornjeg primjera izgledaće ovako: