java - 包装 JFrame 列表

标签 java swing user-interface

我正在创建一个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/

相关文章:

java - 在 Java 中,假设我们有一个名为 Foo 的类,obj.getClass().getName() 和 Foo.class.getName() 如何获取相同的结果?

java - 如何控制嵌套在 JtabbedPane 中的面板?

java - 将面板布局设置为 null 时出现 NullPointerException?

Java无法调用使用eclipse WindowBuilder构建的简单JDialog

java - MiGLayout 大小调整在 JavaFX 中无法正常工作

C# - 使用非主线程更新 GUI

java - 用高/低代理计算java中的单词和字符?

java - 在 AWT 线程中运行代码

java - JAXB:获取错误 "Cannot resolve the name xxx to a(n) ' 类型定义'组件。”

java - 在继续之前等待 Java Swing 中的按钮被按下?