Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 根据值在JScrollPane中调整JList的大小_Java_Swing_Jscrollpane_Jlist - Fatal编程技术网

Java 根据值在JScrollPane中调整JList的大小

Java 根据值在JScrollPane中调整JList的大小,java,swing,jscrollpane,jlist,Java,Swing,Jscrollpane,Jlist,我在JScrollPane中有一个JList: JList list = new JList(); JScrollPane scrollPane = new JScrollPane(list, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); scrollPane.setBounds(0, 0, 201,75)

我在JScrollPane中有一个JList:

JList list = new JList();
JScrollPane scrollPane = new JScrollPane(list,
                  JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                  JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.setBounds(0, 0, 201,75);
我需要根据JList中的值调整JList/JScrollPane的大小。Etc:如果值较长,则JList/JScrollPane宽度更大;如果值较短,则宽度会调整大小以匹配宽度

谁能给我指一下正确的方向吗

我需要根据JList中的值调整JList/JScrollPane的大小。 Etc:如果值较长,则JList/JScrollPane宽度更大,如果 值较短,宽度调整以匹配宽度

  • 关于重写
    JScrollPane.getPreferredScrollableViewportSize
    JScrollPane
    的方法

  • 要从
    JList
    获取较长的文本,请使用

  • 不允许使用NullLayout
我需要根据JList中的值调整JList/JScrollPane的大小。 Etc:如果值较长,则JList/JScrollPane宽度更大,如果 值较短,宽度调整以匹配宽度

  • 关于重写
    JScrollPane.getPreferredScrollableViewportSize
    JScrollPane
    的方法

  • 要从
    JList
    获取较长的文本,请使用

  • 不允许使用NullLayout

JList的默认行为是使列表与JList中最大的字符串一样宽。如果这对您不起作用,那是因为您使用的是null布局和setBounds()。不要使用setBounds()。使用适当的布局管理器,让布局管理器完成其工作,并保持代码简单

如果要手动控制列表的宽度,则可以使用:

list.setPrototypeCellValue("some string");

JList的默认行为是使列表与JList中最大的字符串一样宽。如果这对您不起作用,那是因为您使用的是null布局和setBounds()。不要使用setBounds()。使用适当的布局管理器,让布局管理器完成其工作,并保持代码简单

如果要手动控制列表的宽度,则可以使用:

list.setPrototypeCellValue("some string");