Как добавить вертикальную полосу прокрутки для JTextArea в Swing? - PullRequest
4 голосов
/ 15 сентября 2011

У меня есть этот класс Gui:

public class Gui extends JFrame implements ActionListener {

/**
 * 
 */
private static final long serialVersionUID = -384241835772507459L;
JLabel playerInfo;
JTextField textField;
private final static String newline = "\n";
JTextArea feed;
JScrollPane scrollPane;
Player player;

public Gui() {
    super("Erik's RPG");        
    setLayout(new FlowLayout());        
    textField = new JTextField(30);     
    textField.addActionListener(this);      
    feed = new JTextArea(15, 30);
    feed.setEditable(false);    
}

public void setCurrentPlayer(Player currentPlayer) {
    player = currentPlayer;
    playerInfo = new JLabel("Health = " + currentPlayer.getHealth() + " | Mana = " + player.getMana());
    playerInfo.setBorder(BorderFactory.createTitledBorder(currentPlayer.getName()));
    add(playerInfo);
    add(feed);
    add(textField);
}

И это раздражает, когда в текстовое поле попадает куча текста, потому что оно продолжает увеличивать окно.Мне нужно знать, как сделать полосу прокрутки, чтобы пользователю не приходилось постоянно изменять размер своего JFrame.Кроме того, как я могу заблокировать размеры JFrame, чтобы пользователи могли присоединять размер?

1 Ответ

10 голосов
/ 15 сентября 2011

Установите экземпляр JTextArea как вид области просмотра экземпляра JScrollPane, как показано в Как использовать панели прокрутки .Добавьте эту панель прокрутки к панели содержимого фрейма.

...