将字符串和JLabel包装在JTextPane中,就像像Skype这样的“显示旧消息”

时间:2013-05-07 02:08:26

标签: java swing jlabel

我正在做一个简单的聊天应用程序,它使用MySQL来保存旧消息,我遇到了一个问题,如何用MySQL中的用户名和字符串来包装消息,就像Skype“显示来自昨天的消息”和当您单击它时,它将显示消息。

此代码用于获取旧邮件。我不希望这些消息立即显示在JTextPane中。它只显示点击“显示旧消息”更像JLabel? JButton会做的。

问题是如何将其包装到JLabel或JButton?

while(rs.next())
        {

            try {
                final JLabel jp = new JLabel(rs.getString("username")+ "\n");
                jp.setAlignmentY(0.75f);
                jp.addMouseListener(new MouseListener(){

                    @Override
                    public void mouseClicked(MouseEvent e) {}

                    @Override
                    public void mouseEntered(MouseEvent e) {
                        Cursor c = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR);
                        jp.setCursor(c);
                    }

                    @Override
                    public void mouseExited(MouseEvent e) {
                    }

                    @Override
                    public void mousePressed(MouseEvent e) {
                        if(SwingUtilities.isRightMouseButton(e)){System.out.print("lawl");}
                        jp.setForeground(Color.BLUE);

                    }

                    @Override
                    public void mouseReleased(MouseEvent e) {
                    jp.setForeground(Color.BLACK);

                    }

                });
                jp.setFont(new Font("arial",Font.BOLD,16));
                jtep.insertComponent(jp);
                sd.insertString(sd.getLength(), ": "+rs.getString("message")+ "\n", MainPanel.sas);
            } catch (BadLocationException e1) {


            }


            MainPanel.count++;}
    } catch (SQLException e) {

    }

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用折叠http://java-sl.com/collapse_area.html

部分的示例

只需修改标题并更正鼠标敏感区域。