Java 显示JList的组件时出现问题

Java 显示JList的组件时出现问题,java,swing,jlist,Java,Swing,Jlist,我正在尝试在Jlist组件中显示twitter时间线。我已经用以下代码固定了框架的大小以及JList的单元格高度和单元格宽度 jlist.setFixedCellHeight(50); jlist.setFixedCellWidth(70); 我发现每个单元格的高度和宽度都很好,但如果单元格内的tweet内容超过宽度,则不会显示tweet的其他部分 例如:假设70宽度正好符合推文“我很好” 假设如果tweet是“我很好很好”则tweet显示为“我很好…”“未显示tweet的超出部分 我想在这里

我正在尝试在Jlist组件中显示twitter时间线。我已经用以下代码固定了框架的大小以及JList的单元格高度和单元格宽度

jlist.setFixedCellHeight(50);
jlist.setFixedCellWidth(70);
我发现每个单元格的高度和宽度都很好,但如果单元格内的tweet内容超过宽度,则不会显示tweet的其他部分

例如:假设70宽度正好符合推文“我很好”

假设如果tweet是“我很好很好”则tweet显示为“我很好…”“未显示tweet的超出部分

我想在这里做的是,我希望tweet的其余部分显示在线条下方,因为我有足够的高度在第二行显示tweet。在同一个示例中,在单元格中,我希望内容显示为

“我很好

和伟大“

我如何才能做到这一点?

引用JList

JList不实现滚动 直接的。创建一个 滚动,使其成为的视口视图 一个小窗格。例如:

JScrollPane scrollPane=new JScrollPane(myList)

//或者分两步进行:JScrollPane scrollPane=新的JScrollPane(); scrollPane.getViewport().setView(myList)


您需要一个自定义ListCellRenderer,它返回一个支持多行文本的组件。默认渲染器返回一个仅包含单行的JLabel。您可以实现f.i渲染器,它返回JTextArea,正如kleopatra所说

我们需要一个自定义ListCellRenderer,它返回一个支持多行文本的组件。默认渲染器返回一个仅包含单行的JLabel。我们需要创建这样一个渲染器,它返回一个JTextArea,可以在其中包装多行。下面是这方面的简单代码

public class CustomListRenderer implements ListCellRenderer {

   @Override
   public Component getListCellRendererComponent(JList list, Object value, int index,
        boolean isSelected, boolean cellHasFocus) {

        JTextArea renderer = new JTextArea(3,10);
        renderer.setText(value.toString());
        renderer.setLineWrap(true);
        return renderer;
   }
}

我们需要添加以下行以将单元渲染器设置为jlist

jlist.setCellRenderer(new CustomListRenderer());

恐怕你误会我了。我不想要Jlist的滚动功能。我需要将单元格内容显示在同一单元格内的多行中,而不是显示在一行中!!!!谢谢克利奥帕特拉。你能为我提供一个相同的代码片段吗?你尝试了什么?问题到底出在哪里?无论如何,这里有一个相当复杂的渲染器示例