我正在创建一个Java GUI(请不要评论这方面)并且我正在使用List()
来显示字符串,我如何使该列表具有一定的宽度并使如果超出该限制,文本会自动换行吗?现在我的代码非常简单:
List list = new List();
list.add(myString);
contentPane.add(list, BorderLayout.WEST);
myString
将是字符串的 ArrayList
。
在某种程度上相关的说明中,为了构建这个 GUI,我使用了 Google 项目 Eclipse 功能,并且像大多数 Java GUI 构建器一样,它很难使用。我现在有工作代码,我只想为其制作一个 GUI。我本质上是想展示二叉树的构建。是否有更易于使用的 GUI 构建器或方法?我知道我正在提出两个单独的问题,但如果有必要,我会继续使用这种方法。
最佳答案
最直接的方法是将字符串封装到模型类中。
这是创建模型类的一种方法。
public class BreakableString {
private String string;
public BreakableString(String string) {
this.string = string;
}
public String getString() {
return string;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
int maxWidth = 80;
String s = string;
while (s.length() > maxWidth) {
String t = getStringPart(s, maxWidth);
builder.append(t);
builder.append(System.getProperty("line.separator"));
s = s.substring(t.length());
}
builder.append(s);
return builder.toString();
}
private String getStringPart(String s, int maxWidth) {
String t = s.substring(0, maxWidth);
int ePos = t.lastIndexOf(" ");
if (ePos > 0) {
return t.substring(0, ePos);
} else {
return t;
}
}
}
接下来,创建 BreakableString 的 DefaultListModel。您使用 DefaultListModel 来构造您的 JList。
如果这不起作用,您可以在 JPanel 上创建多个 JTextArea。您用 JScrollPane 包围 JPanel。
关于java - 包装 JFrame 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19987163/