public ChatPane createChatPane(String userName) { JTextPane chatPane = new JTextPane(); chatPane.setEditable(false); Font font = chatPane.getFont(); float size = Main.pref.getInteger("geochat.fontsize", -1); if (size < 6) size += font.getSize2D(); chatPane.setFont(font.deriveFont(size)); // DefaultCaret caret = (DefaultCaret)chatPane.getCaret(); // does not work // caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE); JScrollPane scrollPane = new JScrollPane( chatPane, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); chatPane.addMouseListener(new GeoChatPopupAdapter(panel)); ChatPane entry = new ChatPane(); entry.pane = chatPane; entry.component = scrollPane; entry.notify = 0; entry.userName = userName; entry.isPublic = userName == null; chatPanes.put(userName == null ? PUBLIC_PANE : userName, entry); tabs.addTab(null, scrollPane); tabs.setTabComponentAt(tabs.getTabCount() - 1, new ChatTabTitleComponent(entry)); tabs.setSelectedComponent(scrollPane); return entry; }