我一直致力于创建一个聊天客户端(java swing),我只是让我的表情符号完全可用,但除了让用户输入“:)”之外,我想提供一个弹出窗口,包含所有可用的表情符号。我正在寻找的是一种制作这样一个窗口的方法(例如像Skype一样)。如何以及我能做些什么呢?我尝试过使用JMenu,但它没有做我想要的。我想在输入文本区域附近放一个小图像(可能是表情符号),当它被点击时,会弹出一个充满表情符号的方块,并在鼠标点击上输入例如文本区域中的“:)”。
答案 0 :(得分:2)
此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;
}
答案 1 :(得分:1)
在没有更多信息的情况下,我假设您真正关注的是一个没有窗口装饰(即边框和标题栏)并且未在任务栏中显示的窗口。因此,我建议你查看JWindow文档,它正是这样做的。
答案 2 :(得分:1)
我想你的意思是像这样的聊天窗口。在这种情况下,您需要学习如何将组件层叠在一起,在这种情况下是jPanel,或嵌套在主jFrame中的jLayeredPane。