0

我一直在努力创建一个聊天客户端(java swing),并且我刚刚使我的表情符号完全可用,但除了让用户输入“:)”之外,我想提供一个包含所有可用表情符号的弹出窗口。我正在寻找的是一种制作这样一个窗口的方法(例如像 Skype 的)。我该怎么做?我已经尝试过使用 JMenu,但它并没有达到我想要的效果。我想在输入文本区域附近放置一个小图像(可能是表情符号),单击它时,会弹出一个充满表情符号的正方形,然后在鼠标单击时在文本区域中输入例如“:)”。

4

3 回答 3

3

ListPanel可能很有用,因为DefaultListCellRenderer可以显示Icon.

在此处输入图像描述

Icon icon = UIManager.getIcon("html.pendingImage");
...
@Override
public Component getListCellRendererComponent(JList list, Object
    value, int index, boolean isSelected, boolean cellHasFocus) {
    JLabel label =  (JLabel) super.getListCellRendererComponent(
        list, value, index, isSelected, cellHasFocus);
    label.setBorder(BorderFactory.createEmptyBorder(N, N, N, N));
    label.setIcon(icon);
    label.setHorizontalTextPosition(JLabel.CENTER);
    label.setVerticalTextPosition(JLabel.BOTTOM);
    return label;
}
于 2012-12-06T23:46:00.810 回答
1

在没有更多信息的情况下,我假设您真正想要的是一个没有窗口装饰(即边框和标题栏)且不显示在任务栏中的窗口。因此,我建议您查看JWindow文档,该文档正是这样做的。

于 2012-12-06T21:00:23.737 回答
1

我想你的意思是这样的聊天窗口。在这种情况下,您将需要学习如何将组件相互叠加,在本例中是 jPanel 或嵌套在主 jFrame 内的 jLayeredPane。

聊天

于 2012-12-06T21:01:50.110 回答