JTextArea setFont更改textarea的大小

时间:2015-05-19 16:31:31

标签: java swing

我目前在设定的尺寸上有一个JTextArea,但如果我改变了区域的字体,那么该区域的大小也会发生变化。

    textArea = new JTextArea(20,40);
    textArea.setWrapStyleWord(true);
    textArea.setLineWrap(true);
    textArea.setFont(font);

我知道这是因为行数和列数随字体大小的变化而变化。但是,如果我发表评论setFont,并添加了一个带有ActionListener的JButton,它会调用完全相同的内容,JTextArea保持不变

    if(e.getSource() == applyButton){
        textArea.setFont(fc.getSelectedFont());
    }

fontfc.getSelectedFont是相同的

1 个答案:

答案 0 :(得分:3)

任何swing组件的 布局 中的每次更改都不会在调用revalidate()之后生效。 repaint()在这种情况下无济于事。

在第一种情况下,您在之前进行了更改,它在屏幕上显示。首次显示时,Swing会为您调用revalidate()。你的第二个案例就不一样了!。