" + getSenderElement(testMessages.get(i)) + " " + "
" + "
" + getFirstContentElement(testMessages.get(i)) + ""); - } - - - + JScrollPane scrollPane = new JScrollPane(); scrollPane.setForeground(new Color(0, 0, 0)); scrollPane.setBackground(new Color(51, 51, 51)); scrollPane.setViewportView(elementList); scrollPane.setBorder(null); - + GridBagConstraints gbc_scrollPane = new GridBagConstraints(); - gbc_scrollPane.fill = GridBagConstraints.BOTH; - gbc_scrollPane.gridwidth = 2; - gbc_scrollPane.gridx = 1; - gbc_scrollPane.gridy = 1; - + gbc_scrollPane.fill = GridBagConstraints.BOTH; + gbc_scrollPane.gridwidth = 2; + gbc_scrollPane.gridx = 1; + gbc_scrollPane.gridy = 1; gbc_scrollPane.insets = new Insets(10, 10, 10, 10); - + contentPane.add(scrollPane, gbc_scrollPane); - - - // Message enter field----------------- + + // Message enter field JTextArea messageEnterTextfield = new JTextArea(); messageEnterTextfield.setCaretColor(new Color(255, 255, 255)); messageEnterTextfield.setForeground(new Color(255, 255, 255)); messageEnterTextfield.setBackground(new Color(51, 51, 51)); messageEnterTextfield.setLineWrap(true); messageEnterTextfield.setBorder(null); - messageEnterTextfield.setFont( new Font("Arial", Font.PLAIN, 17)); + messageEnterTextfield.setFont(new Font("Arial", Font.PLAIN, 17)); messageEnterTextfield.setBorder(new EmptyBorder(5, 5, 5, 5)); GridBagConstraints gbc_moveSelectionMessageEnterTextfield = new GridBagConstraints(); - gbc_moveSelectionMessageEnterTextfield.fill = GridBagConstraints.BOTH; - gbc_moveSelectionMessageEnterTextfield.gridx = 1; - gbc_moveSelectionMessageEnterTextfield.gridy = 2; + gbc_moveSelectionMessageEnterTextfield.fill = GridBagConstraints.BOTH; + gbc_moveSelectionMessageEnterTextfield.gridx = 1; + gbc_moveSelectionMessageEnterTextfield.gridy = 2; gbc_moveSelectionMessageEnterTextfield.insets = new Insets(10, 10, 10, 10); contentPane.add(messageEnterTextfield, gbc_moveSelectionMessageEnterTextfield); - - - - // Post Button----------------- + // Post Button JButton postButton = new JButton("Post"); postButton.setForeground(new Color(255, 255, 255)); postButton.setBackground(new Color(102, 51, 153)); @@ -144,19 +110,19 @@ public class ChatWindow extends JFrame { GridBagConstraints gbc_moveSelectionPostButton = new GridBagConstraints(); - gbc_moveSelectionPostButton.fill = GridBagConstraints.BOTH; - gbc_moveSelectionPostButton.gridx = 2; - gbc_moveSelectionPostButton.gridy = 2; + gbc_moveSelectionPostButton.fill = GridBagConstraints.BOTH; + gbc_moveSelectionPostButton.gridx = 2; + gbc_moveSelectionPostButton.gridy = 2; gbc_moveSelectionPostButton.insets = new Insets(10, 10, 10, 10); - contentPane.add(postButton, gbc_moveSelectionPostButton); postButton.addActionListener((evt) -> { if (!messageEnterTextfield.getText().isEmpty()) try { - envoyClient.sendMessage(envoyClient.createMessage("Kai", "Maxi", messageEnterTextfield.getText())); - addMessageToChat("Du", messageEnterTextfield.getText()); + final Message message = envoyClient.createMessage("Kai", "Maxi", messageEnterTextfield.getText()); + envoyClient.sendMessage(message); + appendMessageToChat(message); messageEnterTextfield.setText(""); } catch (Exception e) { JOptionPane.showMessageDialog(this, @@ -167,35 +133,28 @@ public class ChatWindow extends JFrame { } }); } - + /** - * gets the Sender from the Message - * @param message - * @return + * Extracts the first text content from a message. + * + * @param message The message from which to return the text content + * @return The first content of type 'text' */ - public String getSenderElement (Message message) { - return message.getMetaData().getSender(); - } - - /** - * gets the First Content Element(text) from the Message - * @param message - * @return - */ - public String getFirstContentElement (Message message) { + public String getFirstTextContent(Message message) { return message.getContent().get(0).getText(); } - + /** - * adds the Sender and the First Content Element(text) of the new Message to the listModel - * @param message - * @return + * Appends a message with sender and message content to the message list. + * + * @param message The message to append */ - public void addMessageToChat(String Sender, String Content) { - listModel.addElement("" + "
" + Sender + " " + "
" + "
" + Content + ""); + private void appendMessageToChat(Message message) { + listModel.addElement("" + "
" + message.getMetaData().getSender()
+ + " " + "
" + "
" + getFirstTextContent(message) + + ""); } - - + public static void main(String[] args) { EventQueue.invokeLater(() -> { try {