Here is how to do what the code seems to be trying to do, using sizing hints for the text area, layouts and padding. Adjust numbers to need.
See further comments in code:
import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
public class ScrollingTextArea {
private JComponent panel = null;
ScrollingTextArea() {
initUI();
}
public void initUI() {
if (panel != null) {
return;
}
panel = new JPanel(new BorderLayout());
// adjust numbers to need
panel.setBorder(new EmptyBorder(32, 15, 32, 15));
// adjust rows & cols to need
final JTextArea textArea = new JTextArea(20,80);
JScrollPane scrollPane = new JScrollPane(textArea);
panel.add(scrollPane);
}
public JComponent getUI() {
return panel;
}
public static void main(String[] args) {
Runnable r = new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception useDefault) {
}
ScrollingTextArea o = new ScrollingTextArea();
JFrame f = new JFrame(o.getClass().getSimpleName());
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setLocationByPlatform(true);
f.setContentPane(o.getUI());
f.pack();
f.setMinimumSize(f.getSize());
f.setVisible(true);
}
};
SwingUtilities.invokeLater(r);
}
}