| 
 | 
 
 
在java裡要自訂游標是件輕而易舉之事.  
只要在元件裡設定一個游標物件就可以了.  
這聽起來很簡單,實作起來也的確是很簡單.  
只有Component.setCursor(Cursor)這個單純的游標設定指令而已.  
也就是說,你只要建個游標(Cursor)物件,再把物件指定給元件  
滑鼠游標就這樣輕而易舉的被置換過來了.  
 
底下我們用個小範例來示範如何如用圖檔來建個影像游標.  
程式只是單純的在button事件中指定了一個元件的Cursor物件而己.  
只要按一下button.TextArea元件的游標就換成了Remond的大頭照了.  
想玩玩這個範例程式的效果,請執行以下 Java Web Start  
 
範例程式碼實作如下:  
代碼: - import javax.swing.*; 
 
 - import java.awt.*; 
 
 - import java.awt.event.*; 
 
 - import java.util.*; 
 
 - class Test extends JFrame{ 
 
 -   private Cursor cusTand,cusRemond; 
 
 -   private JButton btn,btnRemond,btnTand; 
 
 -   private JTextArea ta; 
 
 -   public static void main(String[] args) { 
 
 -        new Test(); 
 
 -       } 
 
 -    public Test() {    
 
 -          btn   = new JButton("Normal"); 
 
 -          btnRemond = new JButton("Remond"); 
 
 -          btnTand = new JButton("Tand"); 
 
 -          ta = new JTextArea(10,20); 
 
 -        Image TandImg= new ImageIcon(getClass().getResource("tand.gif")).getImage(); 
 
 -        Image RemondImg= new ImageIcon(getClass().getResource("remond.jpg")).getImage(); 
 
 -        cusTand = this.getToolkit().createCustomCursor(TandImg,new Point(16,16),"Tand");  
 
 -        cusRemond = this.getToolkit().createCustomCursor(RemondImg,new Point(16,16),"Tand");  
 
 -        Container c = getContentPane(); 
 
 -          JPanel jp = new JPanel(); 
 
 -        jp.add(btn); 
 
 -        jp.add(btnRemond); 
 
 -        jp.add(btnTand); 
 
 -      c.add(jp,BorderLayout.SOUTH); 
 
 -      c.add(ta,BorderLayout.CENTER); 
 
 -          btn.addActionListener(new ActionListener() { 
 
 -           public void actionPerformed(ActionEvent e) { 
 
 -             Performed(e); 
 
 -              } 
 
 -         }); 
 
 -       btnRemond.addActionListener(new ActionListener() { 
 
 -           public void actionPerformed(ActionEvent e) { 
 
 -             Performed(e); 
 
 -              } 
 
 -         }); 
 
 -       btnTand.addActionListener(new ActionListener() { 
 
 -           public void actionPerformed(ActionEvent e) { 
 
 -             Performed(e); 
 
 -              } 
 
 -         }); 
 
 -      pack();    
 
 -       setVisible(true); 
 
 -        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 
 -       } 
 
 -   public void Performed(ActionEvent e){ 
 
 -      Object obj = e.getSource(); 
 
 -      if(obj==btnRemond) 
 
 -         ta.setCursor(cusRemond); 
 
 -      else if(obj==btnTand) 
 
 -         ta.setCursor(cusTand); 
 
 -      else 
 
 -         ta.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); 
 
 -      } 
 
 -   } 
 
  複製代碼 |   
 
 
 
 |