0

我正在创建一个 Java GUI(请不要评论该方面)并且我正在使用 aList()来显示字符串,我如何使该列表具有一定的宽度并在超出该约束时使文本换行?现在我的代码很简单:

List list = new List();
list.add(myString);
contentPane.add(list, BorderLayout.WEST);

myString将是一个ArrayList字符串。

在一些相关的说明中,为了构建这个 GUI,我使用了 Google 项目的 Eclipse 功能,并且像大多数 Java GUI 构建器一样,它很难使用。我现在有工作代码,我只想为其制作一个 GUI。我基本上想显示二叉树的构建。是否有更易于使用的 GUI 构建器或方法?我知道我提出了两个单独的问题,但如果必须,我会继续使用这种方法。

4

1 回答 1

2

最直接的方法是将字符串封装到模型类中。

这是创建模型类的一种方法。

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。

于 2013-11-14T20:23:56.653 回答