我有一个 JList 组件,我想存储图像的路径,但显示图像的名称,而不是路径。我有一个按“打开文件”按钮的代码,如下所示:
public void openButtonActionPerformed() {
int returnVal = fc.showDialog(null, "Open");
if (returnVal == JFileChooser.APPROVE_OPTION) {
file = fc.getSelectedFile();
}
jList1.setCellRenderer(new JavaRenderer());
}
还有:
class JavaRenderer extends DefaultListCellRenderer {
public JavaRenderer(){
//setOpaque(true);
}
public File file;
public Component getListCellRendererComponent(JList list,
Object value,
int index,
boolean isSelected,
boolean hasFocus) {
if (value instanceof File) {
File file = (file) value;
return super.getListCellRendererComponent(list, file.getName(), index, isSelected, hasFocus);
}else {
return super.getListCellRendererComponent(list, value, index, isSelected, hasFocus);
}
}
}
但是还是不行。你能帮我吗?
最佳答案
您可以使用jList.setCellRenderer()
,通过重写的方法传递new DefaultListCellRenderer()
getListCellRendererComponent(JList 列表,对象值,int 索引,
boolean 值 isSelected, boolean 值 cellHasFocus)
value
- 是插入到 JList 的对象,因此您可以存储它但显示另一个标签:
if (value instanceof File) {
File file = (File) value;
return super.getListCellRendererComponent(list, file.getName(), index, isSelected, cellHasFocus);
} else {
return super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
}
关于java - JList:显示存储以外的其他内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10707851/