【发布时间】:2018-04-09 19:19:28
【问题描述】:
我有一个 64 个字符的“键”(文本),我想使用一个包含 JTextPanel 或 JTextArea 的摇摆 JPanel 在有限的空间(宽度)中显示它。所有文本都是字母数字,没有空格,我使用等宽字体来显示它。我想打印 4 行 16 个字符的密钥。我的代码:
JTextArea key = new JTextArea();
key.setColumns(16);
key.setRows(4);
key.setLineWrap(true);
key.setWrapStyleWord(true);
key.setText("475EC49A50F35BA50FE5791B8ECFC12515393A5A200C6BA2C82B290C053A6C85");
JPanel keypanel = new JPanel();
keypanel.add(privatekeybackuptext);
当我运行它时,它每行打印超过 16 个字符。它只在任意大小的框中打印尽可能多的内容,并且 textarea/textpane 以 2.5 行十六进制字符结束。我猜测 setColumns 和 setRows 与文本的显示方式或布局管理器是否覆盖某些内容无关?到目前为止,我已经尝试将面板的布局管理器设置为默认的 FlowLayout,并且我还尝试了使用 fill = GridBagConstraints.BOTH 的 GridBagConstraints。都没有奏效。我知道我可以通过数出 16 个字符并添加换行符来伪造它,但我宁愿正确地做到这一点。最简单的方法是什么?
【问题讨论】:
-
这会很困难,因为您无法保证 JTextArea 将使用的字体,因此您无法保证一行可以容纳多少个字符。为什么不将字符串分成长度为 16 的四行?
标签: java character limit jtextarea jtextpane