2014-12-05 6 views
-1

목록에서 사용자의 선택을 가져 와서 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; 
    } 
} 
+0

에 대한 목록을 사용하는 경우 너무에만이 작업을 수행 작동하지 않습니다? 'String contents = (String) jList1.getSelectedValue(); ' – Ascalonian

+0

@Ascalonian 그건 작동하지 않습니다. Java는 합법적 인 Java가 아닙니다. – ajb

+0

[자바에서 개체를 문자열로 변환하는 방법] 가능한 복제본 (http://stackoverflow.com/questions/6055476/how-to-convert-object-to-string-in-java) –

답변

0

가장 쉬운 방법은 해당 객체의 toString 메소드를 구현하는 것입니다.

@Override public String toString() { 

    return field1 + field2; //Example 
    } 

그런 다음 당신은 간단하게 할 수있는

setChoise((ClassType)contents); 

편집 :

또 다른 옵션이 될 것입니다 :

캐스트의 classObject. (귀하의 경우에는 당신이 그 일을하지 않음)

은 단순히 City myCity = (City)contents를 넣을 수 있습니다 City 개체가

그런 다음 표시 할 필드의 게터 전화 (다시 여러 선택을 관리 할 필요가) 유형 인 말 . 말 :

setChoise(myCity.getName); 
0

라는 방법을 확인하십시오 : 당신은 그것은 결과가 toString() 방법을 형성 받아야 System.out.println(Graph);

를 사용하면 이제

public String toString(){ 

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

} 

을 내가 다른 될 것입니다

+3

Psst ...'@ Override' – TNT

+0

여전히 Out @Override와 함께 표시되어야합니다. – bhjsgh7363is

+0

예, 원시 유형 및 암호 변수 이름 사용은 작동합니다. 그러나 그렇다고해서 그렇게해야한다는 것은 아닙니다. – Tom

5

및 솔루션을 설명하지만 ObjectString으로 변환하는 제안은 아닙니다. 오히려 단지 귀하의 JList을 적절한 용도로 선언하십시오 (이는 Strings을 보유하는 것 같습니다). 그냥

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

으로 목록을 선언 한 후 getSelectedValue() 방법은 당신이 String에 걸릴 방법에서 사용하기 위해 허용하는 String하지 원시 Object를 반환합니다.

명 이미 언급 한 그러나 당신이 Objects으로 목록을 조작해야하는 경우, 이것은 당신 만이 작동하지 않습니다 Strings

+1

이것은 그의 시나리오에서 적절한 대답입니다. 내 잘못, 나는 그가 String []을 지나가고 있다는 것을 보지 못했다. –

관련 문제