うまくいかない可能性のあることがたくさんありますが、コードを追加しないと、正確な問題を特定するのは困難です...
いくつかのことが頭に浮かびます...
- 適切なレイアウトマネージャー、さらには複合レイアウトマネージャーを使用する
JTextArea
行や列などの使用可能なスペースを定義できるように、に追加情報を提供します
- にを追加し
JTextArea
て、JScrollPane
実際に使用可能になるよりも多くのスペースを突然占有しないようにします。

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class TestLayout21 {
public static void main(String[] args) {
new TestLayout21();
}
public TestLayout21() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
}
JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(new TestPane());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
public class TestPane extends JPanel {
public TestPane() {
setLayout(new BorderLayout());
JPanel actions = new JPanel(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbc.fill= GridBagConstraints.HORIZONTAL;
actions.add(new JButton("Walk"), gbc);
actions.add(new JButton("Run"), gbc);
actions.add(new JButton("Jump"), gbc);
actions.add(new JButton("Eat"), gbc);
actions.add(new JButton("Drink"), gbc);
add(actions, BorderLayout.WEST);
add(new JProgressBar(), BorderLayout.SOUTH);
JTextArea textArea = new JTextArea(20, 40);
add(new JScrollPane(textArea));
}
@Override
public Dimension getPreferredSize() {
return new Dimension(200, 200);
}
}
}