如何设置JTextArea的大小?

7

我想在JOptionPane中为JtextArea设置固定大小。

public static void main(String[] args) {

        JTextArea headersTxt = new JTextArea();
        for (int i = 0 ; i < 50 ; i ++ ) {
            headersTxt.append("test \n") ;
        }
        JScrollPane scroll = new JScrollPane(headersTxt); 
        scroll.setSize (300,600) ;  // this line silently ignored
        int test = JOptionPane.showConfirmDialog(null,  scroll,"test",  JOptionPane.OK_CANCEL_OPTION) ;

    }

然而,上述代码忽略了 scroll.setSize(300,600);。它可以正常工作,但大小并不固定。关于 scroll.setSize(300,600); 存在什么问题?
1个回答

12

由于不同的系统渲染字体方式不同,尽可能避免使用像素测量单位

相反,应提供您想要显示的行和列。

JTextArea ta = new JTextArea(5, 20);

谢谢。那非常完美!我会尽可能避免使用像素。 - Borat Sagddiev
调整指定了列和行的文本区域的字体大小也会改变文本区域的大小。请参见在Java Swing中是否应避免使用set(Preferred|Maximum|Minimum)Size方法?(是的)。该问答并没有明确提到避免使用setSize(..),这可能是因为组件的大小通常被布局管理器忽略,布局管理器更常根据首选大小、最大大小和最小大小设置大小。 - Andrew Thompson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接