2015-04-30 35 views

回答

0
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.AdjustmentEvent; 
import java.awt.event.AdjustmentListener; 

public class JScrollBarTest { 
    public static void main(String[] args) { 
     JFrame fr=new JFrame(); 

     JLabel l=new JLabel("test"); 
     l.setPreferredSize(new Dimension(500, 500)); 
     JScrollPane scroll=new JScrollPane(l); 
     fr.add(scroll); 
     scroll.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() { 
      @Override 
      public void adjustmentValueChanged(AdjustmentEvent e) { 
       JScrollBar sc=scroll.getVerticalScrollBar(); 
       System.out.println(sc.getVisibleAmount()); 
       System.out.println(sc.getMaximum()); 
       System.out.println(sc.getValue()); 
       System.out.println("------"); 
       if (sc.getVisibleAmount()+sc.getValue()==sc.getMaximum()) { 
        System.out.println("Bottom event"); 
       } 
      } 
     }); 

     fr.setSize(100, 100); 
     fr.setLocationRelativeTo(null); 
     fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     fr.setVisible(true); 
    } 
} 
+0

' setPreferredSize' ...真的...... – MadProgrammer

+0

這只是在JScrollPane中實現空間的簡單方法:-)當然我知道ppixel完美的佈局並不好。假設我正在用背景圖像爲繪畫應用程序編寫畫布。 – StanislavL

+0

你可以重寫'JLabel'的'getPreferredSize'方法... – MadProgrammer