【问题标题】:Chat Client emoticons window JAVA聊天客户端表情窗口JAVA
【发布时间】:2012-11-24 23:42:47
【问题描述】:

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

【问题讨论】:

  • 您的问题需要更具体一些。与普通 JFrame 相比,“弹出窗口”到底是什么意思?到目前为止,您尝试了什么,遇到了什么问题?
  • @Martin 你用什么逻辑在你的聊天窗口中放置表情符号??我在实现方面遇到了一些问题,任何帮助将不胜感激,谢谢
  • 谢谢@Martin 很好

标签: java swing popup window panel


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案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;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-04-09
        • 1970-01-01
        • 2015-10-12
        • 2011-01-04
        • 1970-01-01
        • 2017-07-06
        • 2015-07-03
        相关资源
        最近更新 更多