gpt4 book ai didi

java - 即使在使用 setLineWrap(true) 和 setWrapStyleWord(true) 时,JTextArea 宽度也会随着输入而拉伸(stretch)

转载 作者:行者123 更新时间:2023-11-29 07:09:51 25 4
gpt4 key购买 nike

当框架出现时,JTextArea 水平拉伸(stretch)直到达到框架宽度大小,并且在调整框架大小时,JTextArea 将再次拉伸(stretch)以匹配框架的宽度.如果将输入添加到 JTextArea,它将继续水平增长,而不是将文本换行到新行。

如果没有 setLineWrap(true)setWrapStyleWord(true)JTextArea 将正确显示在框架上,但仍会拉伸(stretch) JTextArea 在第一行。

我该如何解决这个问题?

public class GridBagExample {

private JFrame frame;
private final JPanel panel;
private JLabel frontText, reverseText;
private JTextField frontTextField;
private final JTextArea reverseTextArea;
private GridBagLayout gridBagLayout;
private GridBagConstraints constraints;
private JButton submit, cancel;

public GridBagExample() {

frame = new JFrame("Create new flashcard");
gridBagLayout = new GridBagLayout();
constraints = new GridBagConstraints();
panel = new JPanel(gridBagLayout);
panel.setSize(240,220);

frontText = new JLabel("Front Text");
constraints.ipadx = 1;
constraints.ipady = 1;
constraints.gridx = 0;
constraints.gridy = 0;
gridBagLayout.setConstraints(frontText, constraints);
panel.add(frontText);

frontTextField = new JTextField(15);
constraints.ipadx = 1;
constraints.ipady = 1;
constraints.gridx = 2;
constraints.gridy = 0;
gridBagLayout.setConstraints(frontTextField, constraints);
panel.add(frontTextField);

reverseText = new JLabel("Reverse Text");
constraints.ipadx = 1;
constraints.ipady = 1;
constraints.gridx = 0;
constraints.gridy = 1;
gridBagLayout.setConstraints(reverseText, constraints);
panel.add(reverseText);

reverseTextArea = new JTextArea(5,15);
reverseTextArea.setWrapStyleWord(true);
reverseTextArea.setLineWrap(true);
constraints.ipadx = 1;
constraints.ipady = 1;
constraints.gridx = 2;
constraints.gridy = 1;
gridBagLayout.setConstraints(reverseTextArea, constraints);
panel.add(reverseTextArea);


submit = new JButton("Submit");
constraints.ipadx = 1;
constraints.ipady = 1;
constraints.gridx = 2;
constraints.gridy = 2;
gridBagLayout.setConstraints(submit, constraints);
panel.add(submit);

frame.add(panel);
frame.setSize(300, 300);
frame.setVisible(true);
}

public static void main(String[] args) throws Exception {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new GridBagExample();
}
});
}
}

最佳答案

不要直接将文本区域添加到面板。将它放在 JScrollPane 中,并将滚动 Pane 添加到面板,如 the tutorial 中所述。 .

关于java - 即使在使用 setLineWrap(true) 和 setWrapStyleWord(true) 时,JTextArea 宽度也会随着输入而拉伸(stretch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15040937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com