如何将Object转换为字符串?

时间:2014-12-05 19:15:13

标签: java jcombobox

我想从列表中选择用户的选择并将其转换为使用Jbox的字符串。如何将内容转换为字符串,以便我可以使用它?

public class Graph extends JFrame
{
    private String temp;

    public Graph()
    { }
    public void CreateBox(String[] a)
    {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JButton jButton1 = new JButton("ok");
        final JList jList1 = new JList(a);
        jButton1.addActionListener(new java.awt.event.ActionListener() 
        {
            public void actionPerformed(ActionEvent e) 
            {
                Object contents = jList1.getSelectedValue();
                //System.out.println(contents);
                setChoise((String)contents);//how can i convert it to string ?
            }
        });
        JButton jButton2 = new JButton("close");
        jButton2.addActionListener(new ActionListener() 
        {
            public void actionPerformed(ActionEvent e)
            {
                System.exit(0);
            }
        });    
        frame.add(jList1, "Center");
        frame.add(jButton1,"South");
        frame.add(jButton2,"North");
        frame.setSize(300, 200);
        frame.setVisible(true);
    }
    public void setChoise(String temp)
    {
        this.temp=temp;
    }

    public String getChoise()
    {
        return this.temp;
    }
}

3 个答案:

答案 0 :(得分:5)

我将与众不同并解释一个解决方案,而不是将Object转换为String的解决方案。而只是声明你的JList正确使用(它似乎是持有Strings)。只需将列表声明为

即可
final JList<String> jList1 = new JList<String>(a);

然后getSelectedValue()方法将返回String而不是原始Object,允许您在接受String的方法中使用它。

然而,正如人们已经注意到的那样,如果您需要将列表操作为Objects,则无法执行此操作,因此只有在您使用Strings

列表时才能执行此操作

答案 1 :(得分:0)

最简单的方法是实现该对象的toString方法。

@Override public String toString() {

    return field1 + field2; //Example
  }

然后你可以简单地做

setChoise((ClassType)contents);

修改

另一个选项是:

Object Typecast到其class。 (在你的情况下,你没有这样做)

假设对象属于City类型,您可以简单地放置City myCity = (City)contents(再次,您必须管理多个选择)

然后调用要显示的字段的getter。说:

setChoise(myCity.getName);

答案 2 :(得分:0)

制作一个名为:

的方法
public String toString(){

    String result = "All the values inside the class u want to display";
    return result;

}

现在使用System.out.println(Graph);

它应该从toString()方法

获得结果