我通过JFileChooser使用下面这段代码将一个名为test.xml的文件添加到我的JList中;
for (File file : fileChooser.getSelectedFiles()) {
vector.addElement(file);
}
System.out.println("Added..!!");
list.updateUI();
现在我必须从Jlist中选择一个文件,然后将它转换成另一个文档。如果我给出输入,转换步骤就会起作用;
File file = new File("test.xml");
但是如果我给它,它就不起作用;
for (int j : list.getSelectedIndices()) {
File file = vector.elementAt(j);
//-------code for conversion-------//
}
列表及其向量使用以下代码段创建:
vector = new Vector<File>();
final JList list = new JList(vector);
scrollPane.setViewportView(list);"
你们谁能告诉我如何从JList中选择该特定文件来进行转换吗?提前感谢…!
我对斯坦尼斯拉夫建议的代码或使用您的代码都没有任何问题。您的代码中一定还有其他您没有向我们展示的东西。这是一个SSCCE,显示它可以工作
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class Test {
public static void main(String... args) {
JFrame frame = new JFrame();
final Vector<File> files = new Vector<File>();
final JList list = new JList(files);
list.setVisibleRowCount(5);
final JButton selectFile = new JButton("Select file...");
selectFile.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser fileChooser = new JFileChooser();
fileChooser.setMultiSelectionEnabled(true);
fileChooser.showOpenDialog(selectFile);
if (fileChooser.getSelectedFiles() != null) {
for (File file : fileChooser.getSelectedFiles()) {
files.add(file);
}
list.updateUI();
}
}
});
final JButton click = new JButton("Click me");
click.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
StringBuilder sb = new StringBuilder("The following files are selected in the list:\n");
/*for (Object o : list.getSelectedValues()) {
sb.append(((File) o).getAbsolutePath()).append('\n');
}*/
for (int i : list.getSelectedIndices()) {
sb.append(files.get(i).getAbsolutePath()).append('\n');
}
JOptionPane.showMessageDialog(click, sb.toString());
}
});
JPanel panel = new JPanel(new BorderLayout());
panel.add(selectFile, BorderLayout.WEST);
panel.add(click, BorderLayout.EAST);
JScrollPane scrollPane = new JScrollPane(list);
panel.add(scrollPane);
frame.getContentPane().add(panel);
frame.pack();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setVisible(true);
}
}
我在Netbeans构建了一个Java项目。我有一个表单,表单内部有一个jList,其中填充了一个对象(Favorite)。我也有一个按钮,我想当我按下按钮删除选定的项目在jList。 我正在尝试以下代码,但我得到一个错误。 我得到以下错误: 线程“AWT-EventQueue-0”中出现异常Java . lang . classcastexception:Java . lang . string
我正在创建一个屏幕,上面有四个列表。基本上是两对列表,您可以在对中的一个列表上选择行,然后将它们移动到对中的另一个列表。 查看文档,我需要为每个列表提供一个ListSelectionModel来确定选择了哪些行。我将使用[Sel]或[Des]按钮来执行实际的传输。 文档和示例说我需要一个ListSelectionListener,但是,由于在用户单击按钮之前我不会访问模型,所以我实际上需要一个监听
错误图像使用对象我试图在JList中的jtextfield中显示选定的元素文本。该列表包含数据库数据和图像,其中从列表中获取所选值会引发错误。 建议我如何单独从jlist获取文本并将其显示在JTextField中。
有可能在JList中获得所选元素的位置吗?我想让它将JFrame放在单击选项的正下方。
当用户点击按钮时,我试图从JList中删除选中的项目。 目前我有这样的东西: 当我单击按钮删除项目时,出现以下错误: 如何修复此错误,以及我的代码是否删除了多个项目?
我正在尝试获取用户在TextView中选择的文本,我不想使用来允许我的用户复制/粘贴操作