Java jList1.getSelectedValue()返回一个对象。我需要所选列表项中的字符串。
我是Java的二年级学生,我在自己的时间里学习各种各样的东西。其中之一是Java jList1.getSelectedValue()返回一个对象。我需要所选列表项中的字符串。,java,string,swing,object,jlist,Java,String,Swing,Object,Jlist,我是Java的二年级学生,我在自己的时间里学习各种各样的东西。其中之一是JList jList1.getSelectedValue(); 上面的代码返回一个对象,而不是字符串。我需要所选列表项的字符串从列表框中添加/删除模型不是问题。列表的内容(随着模型)不断变化,因此使用.getSelectedIndex()作为解决方法是不可取的 帮忙 编辑:我确实有一个监听器在为jList工作,我只需要解决这一个问题。只需使用cast,或者Andrew在评论中提到的toString方法: String v
JList
jList1.getSelectedValue();
上面的代码返回一个对象
,而不是字符串
。我需要所选列表项的字符串<代码>从列表框中添加/删除
模型不是问题。列表的内容(随着模型)不断变化,因此使用.getSelectedIndex()
作为解决方法是不可取的
帮忙
编辑:我确实有一个监听器在为
jList
工作,我只需要解决这一个问题。只需使用cast,或者Andrew在评论中提到的toString方法:
String val = (String)jList1.getSelectedValue();
或:
只需使用cast,或Andrew在评论中提到的toString方法:
String val = (String)jList1.getSelectedValue();
或:
类中的方法
getSelectedValue()
返回您在ListModel
中添加的选定对象。它可以是字符串、整数或任何其他对象
如果生成这样的JList
String[] data = {"one", "two", "three", "four"};
JList myJList = new JList(data);
选择方法myJList.getSelectedValue()代码>显然返回一个字符串
如果您添加自己的对象,如Student
或Department
,则在选择时会得到相同的对象,并且当您尝试打印该对象时,将打印该对象的hashCode引用,除非您在自己的类中覆盖toString()
方法。方法getSelectedValue()
from类返回您在ListModel
中添加的选定对象。它可以是字符串、整数或任何其他对象
如果生成这样的JList
String[] data = {"one", "two", "three", "four"};
JList myJList = new JList(data);
选择方法myJList.getSelectedValue()代码>显然返回一个字符串
如果您添加自己的对象,如Student
或Department
,则在选择时会得到相同的对象,并且当您尝试打印该对象时,将打印该对象的hashCode引用,除非您在自己的类中覆盖toString()
方法。您可以将返回的对象强制转换为字符串,假设您已经用字符串值填充列表。或者,您可以通过ListModel处理列表,但可以使用DefaultListModel(也将数据作为对象处理)或实现自己的ListModel来提供所需的功能,例如将列表数据类型限制为字符串。您可以将返回的对象强制转换为字符串,假设您已经用字符串值填充列表。或者,您可以通过ListModel处理列表,但可以使用DefaultListModel(也将数据作为对象处理)或实现自己的ListModel来提供所需的功能,例如将列表数据类型限制为字符串。我使用了.toString()
或转换为字符串,但我收到的是选择的地址,而不是值。所以我尝试了这个代码,它确实起了作用:
private class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String a[] = new String[20];// To save the selections
int i = 0, j = 0;
// Get the selected values.
Object[] selections = array2List.getSelectedValues();
// To save the selections in array
for(Object selections : sugCoursesList.getSelectedValues())
{
for(String t : array2)
{
if (selections == t)
{
a[i] = t;
i++;
System.out.println(selections);
}
}
}
for(String s: a)
System.out.println("a " + s);
}
我比较了列表中的数组,检查它是否被选中(如果是),并将其保存在数组a中。我使用了.toString()
或casting to string,但我收到的是选择的地址,而不是值。所以我尝试了这个代码,它确实起了作用:
private class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String a[] = new String[20];// To save the selections
int i = 0, j = 0;
// Get the selected values.
Object[] selections = array2List.getSelectedValues();
// To save the selections in array
for(Object selections : sugCoursesList.getSelectedValues())
{
for(String t : array2)
{
if (selections == t)
{
a[i] = t;
i++;
System.out.println(selections);
}
}
}
for(String s: a)
System.out.println("a " + s);
}
我比较了列表中的数组,检查它是否被选中,如果是,请将其保存在数组a中。只需使用强制转换。。。字符串val=(字符串)jList1.getSelectedValue()@Quilliom为什么不将此添加为答案,以便用户可以选择它作为所选答案?只需使用cast。。。字符串val=(字符串)jList1.getSelectedValue()@问题:为什么不将此添加为答案,以便用户可以选择它作为选择答案?如果JList包含带有字符串对象的ListModel,则无需强制转换。jList1.getSelectedValue().toString()
将避免强制转换。如果JList包含带有字符串对象的ListModel,则无需强制转换。jList1.getSelectedValue().toString()
将避免强制转换。getSelectedValue()方法仍然返回一个对象@Quilliom是在ListModel中添加的对象不是string。但是如果没有toString()或cast,您将无法对返回值使用任何string方法。@QuilliomtoString()
方法返回在ListModel中添加的对象的字符串表示形式,当尝试使用字符串进行强制转换时,将出现类强制转换异常,除非您有JList。@Quilliom,但如果没有toString()或强制转换,您将无法对返回值使用任何字符串方法-当然可以。泛型不需要强制转换。getSelectedValue()方法仍然返回一个对象@Quilliom是在ListModel中添加的对象不是string。但是如果没有toString()或cast,您将无法对返回值使用任何string方法。@QuilliomtoString()
方法返回在ListModel中添加的对象的字符串表示形式,当尝试使用字符串进行强制转换时,将出现类强制转换异常,除非您有JList。@Quilliom,但如果没有toString()或强制转换,您将无法对返回值使用任何字符串方法-当然可以。泛型不需要强制转换。