我目前在设定的尺寸上有一个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());
}
font
和fc.getSelectedFont
是相同的
答案 0 :(得分:3)
任何swing组件的 布局 中的每次更改都不会在调用revalidate()
之后生效。 repaint()
在这种情况下无济于事。
在第一种情况下,您在之前进行了更改,它在屏幕上显示。首次显示时,Swing会为您调用revalidate()
。你的第二个案例就不一样了!。