繁体   English   中英

在Java中实现GUI进行聊天

[英]implementing GUI for chat in java

我想用Java实现聊天应用程序,并且我希望它显示Viber之类的消息:用户发送带有右对齐的消息,而他的朋友具有左对齐的消息,我也希望它们具有不同的样式。

聊天消息可能包含:文本,图像等。

我将JPannel chatPchatP.setLayout(new BoxLayout(chatPl, BoxLayout.PAGE_AXIS)用于文本消息JPannel chatP用于聊天窗口,我使用JTextpane,并且使用setAlignmentX("alignment");进行集合对齐!

       `JTextPane jtp = new JTextPane(){

        private static final long serialVersionUID = 1L;

        @Override
        public Dimension getMinimumSize(){
            return new Dimension(message.length()*5, getContentHeight(message.length()*5,message)+10);
        }
        @Override 
        public Dimension  getMaximumSize(){
            return  new Dimension(message.length()*5, getContentHeight(message.length()*5,message)+10);
        }
    }; jtp.setAlignmentX(Component.LEFT_ALIGNMENT);`

对于其他类型的消息,我创建了一个包含它的JPannel。 并将这些组件添加到JPannel chatP

我的问题是设置JTextpane的大小以修复其消息。 还有对齐!

jtp.setAlignmentX(Component.LEFT_ALIGNMENT);

是徒劳的。 您必须在文档级别设置对齐方式。 如您所说,您使用样式,因此您的窗格具有StyledDocument实例,您可以通过jtp.getDocument()获得文档。

StyledDocument具有方法

public void setParagraphAttributes(int offset, 
                                   int length, 
                                   AttributeSet s, 
                                   boolean replace);

在AttributeSet中,您可以设置所需的对齐方式,然后传递到应用于所需文本片段的方法以使其对齐。

这里例如2居中对齐

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM