Thực tế OpenCloud không yêu cầu máy chủ Web. Đơn giản chỉ cần sử dụng Swing rendering thay vì HTML/JSP. Đây là một đoạn mã nhỏ minh họa một đám mây thẻ Swing rất cơ bản sử dụng thư viện OpenCloud. Nó có thể được cải thiện, nhưng nó mang lại cho bạn những ý chính:
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import org.mcavallo.opencloud.Cloud;
import org.mcavallo.opencloud.Tag;
public class TestOpenCloud {
private static final String[] WORDS = { "art", "australia", "baby", "beach", "birthday", "blue", "bw", "california", "canada", "canon",
"cat", "chicago", "china", "christmas", "city", "dog", "england", "europe", "family", "festival", "flower", "flowers", "food",
"france", "friends", "fun", "germany", "holiday", "india", "italy", "japan", "london", "me", "mexico", "music", "nature",
"new", "newyork", "night", "nikon", "nyc", "paris", "park", "party", "people", "portrait", "sanfrancisco", "sky", "snow",
"spain", "summer", "sunset", "taiwan", "tokyo", "travel", "trip", "uk", "usa", "vacation", "water", "wedding" };
protected void initUI() {
JFrame frame = new JFrame(TestOpenCloud.class.getSimpleName());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
Cloud cloud = new Cloud();
Random random = new Random();
for (String s : WORDS) {
for (int i = random.nextInt(50); i > 0; i--) {
cloud.addTag(s);
}
}
for (Tag tag : cloud.tags()) {
final JLabel label = new JLabel(tag.getName());
label.setOpaque(false);
label.setFont(label.getFont().deriveFont((float) tag.getWeight() * 10));
panel.add(label);
}
frame.add(panel);
frame.setSize(800, 600);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new TestOpenCloud().initUI();
}
});
}
}
Mã này được dựa trên Ví dụ 1 của OpenCloud library
Dưới đây là kết quả của những gì tôi nhận:
Wonderful.Thank bạn – coder
hỗ trợ Api này chức năng di chuột và có thể liên kết? – coder
@ user1525144 Chắc chắn, tất cả những gì bạn cần là thêm một MouseListener trên mỗi JLabel khi nhấp chuột vào các sự kiện, bạn có thể sử dụng 'Desktop.getDesktop(). Browse()', khi mouseEntered/mouseExited bạn có thể hành động cho lơ lửng. Bạn cũng có thể đặt con trỏ thành 'Cursor.getPredefinedCursor()' trên mỗi JLabel. –