Java 是否将JList中的文本元素设置为变量?

Java 是否将JList中的文本元素设置为变量?,java,swing,jlist,Java,Swing,Jlist,尽管进行了大量研究,但我无法找到答案,也无法解决如何将JList中选定的文本元素转换为变量的问题。因此,我希望得到一些帮助。我曾尝试使用此代码选择所选元素的索引并删除元素,效果很好,但在编写时,我希望在按下按钮后将所选文本添加到变量中。谢谢 int index = list.getSelectedIndex(); model.removeElementAt(index); 我的JList代码的部分内容: model = new DefaultListModel(); list = new JL

尽管进行了大量研究,但我无法找到答案,也无法解决如何将JList中选定的文本元素转换为变量的问题。因此,我希望得到一些帮助。我曾尝试使用此代码选择所选元素的索引并删除元素,效果很好,但在编写时,我希望在按下按钮后将所选文本添加到变量中。谢谢

int index = list.getSelectedIndex();
model.removeElementAt(index);
我的JList代码的部分内容:

model = new DefaultListModel();
list = new JList(model);
list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
JScrollPane listScroller = new JScrollPane(list);
listScroller.setPreferredSize(new Dimension(430, 60));
我的actionlistener代码的部分内容:

// Select customer
if(event.getSource() == buttonSelectCustomer){
int index = list.getSelectedIndex(); // Just for test
model.removeElementAt(index); // Just for test
int number = model.getSize(); // Just for test
//String selectedText = list.getSelectedValue(); // Not working!
}

对当前选定的索引使用该方法。如果您确定您的模型只包含
字符串
实例,则可以直接将其强制转换为
字符串

您无法获取所选文本,因为您尝试在删除所选元素后获取它。 您可以更改代码:

if(event.getSource() == buttonSelectCustomer)
{
    int index = list.getSelectedIndex(); // Just for test
    model.removeElementAt(index); // Just for test
    int number = model.getSize(); // Just for test
    String selectedText = list.getSelectedValue(); // Not working!
}
我的代码:

if(event.getSource() == buttonSelectCustomer)
{
    String selectedText = (String)list.getSelectedValue(); // it works
    int index = list.getSelectedIndex(); // Just for test
    model.removeElementAt(index); // Just for test
    int number = model.getSize(); // Just for test
}

然后它就会工作。

检索所选索引的项目很容易。 下面是一个简单的代码片段:

String[] string = new String[]{"Hello","Hi","Bye"};
JList list = new JList(string);
现在,使用以下代码以字符串形式获取所选项目:

String item = list.getSelectedIndex().toString();

谢谢你的重播。我键入:String selectedText=model.getElementAt(index);但是我在Eclipse中得到一个错误,说我不能从对象转换成字符串!?你应该投下它。。。这不是一个抓取一些教程并开始阅读的好时机吗。对于您的问题,请使用:
stringselectedtext=(String)model.getElementAt(index),您可以通过让Eclipse为您解决这个问题来实现我同意Robin的观点。阅读一些Java的初学者教程,可能会用到。谢谢Robin。我在书和教程中都读过,但创建GUI的这一部分对我来说是新的,不在我的书中。也许问题是这个交上来的任务比我用Java学习的那门课程的水平高了一点。当像我这样的新手在未来提出关于施法的问题时,请耐心一点,因为列表中的文本是String类型的,那么我只是不明白为什么它们必须再次被施法为String,或者这不是已经完成的吗?是的,我发现,但是主要的问题是如何将文本转换成字符串变量,在运行程序之前,我在Eclipse中遇到了错误,然后我发现它删除了元素。我忘了删除那部分代码。谢谢