Tạo component kéo thả với JAVA full

Trong bài viết này bạn sẽ được học cách làm thế nào để cho một component có khả năng kéo đi được bằng cách sử dụng java. Chương trình cung cấp tính năng kéo thả từ một component này sang một component khác. Cụ thể trong chương trình này sẽ cho phép các phần tử Label và TextBox di chuyển đi được để kéo thả. Khi bạn kéo Label đi và thả vào TextBox thì nội dung của Label sẽ được chép vào ô nhập TextBox. Hình minh họa dưới đây cho thấy ứng dụng của chúng ta thực hiện điều này.



Có một số hàm API được dùng để làm cho các phần tử có thể kéo thả được trong chương trình này bao gồm có:

-TransferHandler: Đây là một lớp của gói javax.swing.*; Lớp này được sử dụng để chuyển các phần tử swing khả chuyển từ chỗ này ra chỗ khác. Lớp này rất hữu ích cho việc sao chép nội dung từ phần tử này sang phần tử khác thông qua clipboard.

+Trong lớp này có một phương thức setTransferHandler() để component có thể chuyển những phần nào đó của nó trong phương thức TransferHandler() như là tham số để chỉ ra thuộc tính của component mà nó được kéo thả. Chương trình của chúng ta thực hiện việc lấy text của Label để kéo thả vào TextBox

+Phương thức exportAsDrag() của lớp TransferHandler khởi tạo component để kéo thả giữa các swing component với nhau. Phương thức này nhận 3 đối số: JComponent, sự kiện Active, và một Action cần thực hiện, trong trường hợp ở đây, hằng COPY của lớp TransferHandler dùng để sao chép đoạn text từ Label vào trong TextBox.

-MouseListener: Đây là một giao diện để nhận các sự kiện khác nhau của chuột. Các sự kiện chuột có thể là : nhấn hay nhả chuột, ... được điều khiển thông qua MouseEvent được sinh ra bởi giao diện MouseListener.

Sau đây là mã của chương trình:



Chúc các bạn thành công!

Post a Comment

أحدث أقدم