TShopping

 找回密碼
 註冊
搜索
查看: 2713|回復: 2

[分享] java自訂滑鼠游標

[複製鏈接]
發表於 2008-6-1 16:23:16 | 顯示全部樓層 |閱讀模式
 
Push to Facebook
在java裡要自訂游標是件輕而易舉之事.
只要在元件裡設定一個游標物件就可以了.
這聽起來很簡單,實作起來也的確是很簡單.
只有Component.setCursor(Cursor)這個單純的游標設定指令而已.
也就是說,你只要建個游標(Cursor)物件,再把物件指定給元件
滑鼠游標就這樣輕而易舉的被置換過來了.

底下我們用個小範例來示範如何如用圖檔來建個影像游標.
程式只是單純的在button事件中指定了一個元件的Cursor物件而己.
只要按一下button.TextArea元件的游標就換成了Remond的大頭照了.
想玩玩這個範例程式的效果,請執行以下 Java Web Start

範例程式碼實作如下:
代碼:
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import java.util.*;
  5. class Test extends JFrame{
  6.   private Cursor cusTand,cusRemond;
  7.   private JButton btn,btnRemond,btnTand;
  8.   private JTextArea ta;
  9.   public static void main(String[] args) {
  10.        new Test();
  11.       }
  12.    public Test() {   
  13.          btn   = new JButton("Normal");
  14.          btnRemond = new JButton("Remond");
  15.          btnTand = new JButton("Tand");
  16.          ta = new JTextArea(10,20);
  17.        Image TandImg= new ImageIcon(getClass().getResource("tand.gif")).getImage();
  18.        Image RemondImg= new ImageIcon(getClass().getResource("remond.jpg")).getImage();
  19.        cusTand = this.getToolkit().createCustomCursor(TandImg,new Point(16,16),"Tand");  
  20.        cusRemond = this.getToolkit().createCustomCursor(RemondImg,new Point(16,16),"Tand");  
  21.        Container c = getContentPane();
  22.          JPanel jp = new JPanel();
  23.        jp.add(btn);
  24.        jp.add(btnRemond);
  25.        jp.add(btnTand);
  26.      c.add(jp,BorderLayout.SOUTH);
  27.      c.add(ta,BorderLayout.CENTER);
  28.          btn.addActionListener(new ActionListener() {
  29.           public void actionPerformed(ActionEvent e) {
  30.             Performed(e);
  31.              }
  32.         });
  33.       btnRemond.addActionListener(new ActionListener() {
  34.           public void actionPerformed(ActionEvent e) {
  35.             Performed(e);
  36.              }
  37.         });
  38.       btnTand.addActionListener(new ActionListener() {
  39.           public void actionPerformed(ActionEvent e) {
  40.             Performed(e);
  41.              }
  42.         });
  43.      pack();   
  44.       setVisible(true);
  45.        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  46.       }
  47.   public void Performed(ActionEvent e){
  48.      Object obj = e.getSource();
  49.      if(obj==btnRemond)
  50.         ta.setCursor(cusRemond);
  51.      else if(obj==btnTand)
  52.         ta.setCursor(cusTand);
  53.      else
  54.         ta.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
  55.      }
  56.   }
複製代碼

 

臉書網友討論
温泉规划 該用戶已被刪除
發表於 2012-10-12 00:57:14 | 顯示全部樓層
提示: 作者被禁止或刪除 內容自動屏蔽
*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-12-6 18:50 , Processed in 0.043202 second(s), 20 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表