我在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上。我在哪里做错了?
的问候,
丹尼尔
答案 0 :(得分:2)
设置tArea Pane的首选大小而不是tArea。
答案 1 :(得分:1)
您的LayoutManagers问题是由JTextArea's instance
的代码行引起的final JTextArea tArea = new JTextArea("Text", 10, 10);
和GridBagLayout非常接受PreferredSize
来自定义的Columns & Rows
JTextArea