mac上gridbaglayout中JTextArea的高度

时间:2012-02-15 09:33:59

标签: java swing user-interface

我在Mac上使用GridbagLayout设置JTextArea的高度时遇到了麻烦。在mac上它只显示为一行,当我在PC上运行程序时,高度是正确的。我一直试图搜索很多,但我没有遇到任何解决方案,你们认为可能是什么问题?

编辑:我刚刚注意到问题可能位于我的代码中的其他位置..当我调整窗口大小时,大小变得正确,但是它仍然在一行和正确的大小之间切换

这基本上是我的代码:

    JPanel jp = new JPanel(new GridBagLayout());
    GridBagConstraints gbc = new GridBagConstraints();
    gbc.fill = GridBagConstraints.HORIZONTAL;
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.insets = new Insets(1, 1, 1, 1);
    final JTextArea tArea = new JTextArea("Text", 10, 10);
    final JScrollPane tAreaPane = new JScrollPane(tArea);
    tArea.setLineWrap(true);
    tArea.setRows(15);
    c.gridx = 0;
    c.gridy = 2;
    c.gridwidth = 4;
    center.add(tAreaPane, c);

我尝试过设置:

    tArea.setSize(200,400);
    tArea.setPreferredSize(new Dimension(200, 400));
    tArea.setBounds(5, 5, 100, 100);

在tArea和tAreaPane上。我在哪里做错了?

的问候,
丹尼尔

2 个答案:

答案 0 :(得分:2)

设置tArea Pane的首选大小而不是tArea。

答案 1 :(得分:1)

您的LayoutManagers问题是由JTextArea's instance

的代码行引起的

final JTextArea tArea = new JTextArea("Text", 10, 10);

GridBagLayout非常接受PreferredSize来自定义的Columns & Rows JTextArea