0

I've been working on creating a chat client(java swing) and I've just made my emoticons fully useable but other than having users type ":)" for example, I want to provide a popup window with all the available emoticons. What I'm searching for is a way to make such a window( for example like Skype's). How and with what can I go about it? I've tried with a JMenu, but it doesn't do what I want. I want to put a small image(probably emoticon) near the enter text area and when it's clicked, a square filled with emoticons pops up and on mouse click for example ":)" is entered in the text area.

martin
  • 1,007
  • 2
  • 16
  • 32
  • Your question needs to be a little more specific. What exactly do you mean by 'popup window' as opposed to a normal JFrame? What have you tried so far and what problems did you encounter? – devrobf Dec 06 '12 at 20:49
  • @Martin what logic did you used for placing emoticons in your chat window?? I am having some problem with Implementation any help will be appreciated, thanks – Muhammad Sep 29 '14 at 14:50

3 Answers3

3

This ListPanel might be a useful, as the DefaultListCellRenderer can display an Icon.

enter image description here

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;
}
Community
  • 1
  • 1
trashgod
  • 203,806
  • 29
  • 246
  • 1,045
1

In the absence of more information, I assume that what you are really after is a window which appears without window decorations (i.e. borders and title bar) and which does not show in the task bar. I therefore suggest you look at the JWindow documentation, which does exactly this.

devrobf
  • 6,973
  • 2
  • 32
  • 46
1

I suppose you mean a chat window like this sort. In that case, you'll need to learn how to layer components over one another, in this case a jPanel, or a jLayeredPane nested inside the main jFrame.

Chat

turnt
  • 3,235
  • 5
  • 23
  • 39