包装文字会覆盖Eclipse IDE中的TextArea格式

时间:2018-11-30 15:27:15

标签: java eclipse jtextarea

我目前正在使用Java的GridBagLayout创建具有TextAreas的GUI。为了确保GUI在屏幕之间的一致性,我决定使用特定的行和列高度设置TextAreas的格式,并使用TextWrap将字符串包装在上述区域内,以使其看起来不错。这是下面的代码示例:

 JFrame appFrame = new JFrame();
 appFrame.setTitle("My App");

 JTextArea nameArea;
 nameArea = new JTextArea(20, 20);
 nameArea.setText("Name: Orca" + "\n" + 
    "Other Names: Killer Whale" + "\n" +
    "Scientific Name: Orcinus orca " +
    "(Greek for kingdom of the dead " + "\n" + 
    "and/or belonging to the kingdom of Orcus)");
nameArea.setEditable(false);
nameArea.setLineWrap(true);
nameArea.setWrapStyleWord(true);
appFrame.add(nameArea);

appFrame.setVisible(true);
appFrame.pack();
appFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

现在,我故意使TextArea大于测试所需的大小-在完成的GUI中,此TextArea的大小很可能会设置为5、15。这是我在其中拥有的三个TextArea中的一个项目,但每个代码都相同,只是更改每个显示的字符串。

当我将任何自动换行属性设置为true时,就会出现问题。它忽略设置的行和列的高度,并将TextAreas压缩为我认为最多6列的宽度。行数似乎根据所包含的字符串的大小而有所不同。我尝试过分别使用并串联使用不同的包装方法,例如setLineWrap和setWrapStyleWord。 Link to an image showing the squished textareas using the code above

我不确定我的代码中到底是什么问题。我已经检查以确保Eclipse和Java都已完全更新。我还进行了检查,以确保在执行过程中没有意外删除某个jar文件,并且似乎所有文件都包含在其中。我的教授和我都不了解为什么该程序会以这种方式运行,因此任何见识都将不胜感激。

编辑1

显示字符串“ IMAGE HERE”的一个TextArea最终将被替换为图像。我现在只是将TextArea用作占位符

编辑2

这是我用于将文本区域约束到框架的代码

GridbagConstraints layout = new GridBagConstraints();
appFrame.layout = JFrame(new GridBagLayout());

layout.gridx = 0;
layout.gridy = 0;
layout.weightx = .5;
layout.weighty = .5
layout.anchor = GridBagConstraints.NORTHWEST;
layout.insets = new Insets(10, 10, 10, 10);
appFrame.add(nameArea, layout);

0 个答案:

没有答案