koo*_*ool 9 java swing jscrollpane jlist
我有一个JList很长的项目名称,导致水平滚动条出现在滚动窗格中.
无论如何,我可以自动换行,以便整个项目名称出现在2行,但只需点击一下即可选择?IE它应该仍然表现为单个项目,但显示为两行.
这是我看到下面的例子后做的
我在我的项目MyCellRenderer中添加了一个新类,然后我添加MyList.setCellRenderer(new MyCellRenderer(80));到了List的post创建代码中.还有什么我需要做的吗?
Hov*_*els 19
是的,使用安德鲁的代码,我提出了这样的事情:
import java.awt.Component;
import javax.swing.*;
public class JListLimitWidth {
public static void main(String[] args) {
String[] names = { "John Smith", "engelbert humperdinck",
"john jacob jingleheimer schmidt" };
MyCellRenderer cellRenderer = new MyCellRenderer(80);
JList list = new JList(names);
list.setCellRenderer(cellRenderer);
JScrollPane sPane = new JScrollPane(list);
JPanel panel = new JPanel();
panel.add(sPane);
JOptionPane.showMessageDialog(null, panel);
}
}
class MyCellRenderer extends DefaultListCellRenderer {
public static final String HTML_1 = "<html><body style='width: ";
public static final String HTML_2 = "px'>";
public static final String HTML_3 = "</html>";
private int width;
public MyCellRenderer(int width) {
this.width = width;
}
@Override
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
String text = HTML_1 + String.valueOf(width) + HTML_2 + value.toString()
+ HTML_3;
return super.getListCellRendererComponent(list, text, index, isSelected,
cellHasFocus);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5115 次 |
| 最近记录: |