import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.border.EmptyBorder;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
public class Main {
public static void main(String[] args) {
JPanel topPanel = new JPanel();
topPanel.setPreferredSize(new Dimension(200, 200));
topPanel.setBackground(Color.WHITE);
JTextArea chatArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(chatArea);
JPanel mainPanel = new JPanel(new BorderLayout(5, 5));
mainPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
mainPanel.add(topPanel, BorderLayout.CENTER);
mainPanel.add(scrollPane, BorderLayout.SOUTH);
chatArea.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
updateLineCount();
}
@Override
public void removeUpdate(DocumentEvent e) {
updateLineCount();
}
@Override
public void changedUpdate(DocumentEvent e) {
updateLineCount();
}
private void updateLineCount() {
int lineCount = chatArea.getLineCount();
if (lineCount <= 4) {
chatArea.setRows(lineCount);
mainPanel.revalidate();
}
}
});
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(mainPanel);
f.pack();
f.setVisible(true);
}
}