JTextArea Autoresizing

时间:2013-12-01 03:14:44

标签: java swing user-interface jscrollpane jtextarea

我在一个最初可编辑的滚动窗格内有一个textarea,因此用户可以输入。当他们单击一个按钮时,它会抓取此输入并将该区域设置为不可编辑。但是,每当它将状态从可编辑状态更改为不可编辑状态时,如果它具有的文本多于该区域可以处理的没有滚动条的文本,则会调整区域大小以适应所有文本,从而弄乱UI的其余部分。我怎么强迫它坚持它开始的大小? 这是相关的代码:

txtrTag = new JTextArea();
txtrTag.setEditable(true);
txtrTag.setOpaque(true);

JScrollPane txtrTagScrollPane = new JScrollPane(txtrTag);

private void doTrack(ActionEvent e){
    if (bTracking == false){
        txtrTag.setEditable(false);
        txtrTag.setOpaque(false);

1 个答案:

答案 0 :(得分:3)

创建文本区域时,代码应为:

JTextArea textArea = new JTextArea(5, 20);

行/列值将允许文本区域确定自身的首选大小。因此,当您将文本区域添加到滚动窗格时,滚动窗格的大小将适当调整。

然后,可编辑状态不应对首选大小产生影响。