2013-05-09 2 views
-2

내가비 정적 변수 목록은

non static variable list cannot be referenced from a static context" 
    at line "list.setModel(listModel)". 

내가 무엇을해야 JList.But의 제공 오류로 데이터베이스에서 데이터를 표시 할 정적 컨텍스트에서 참조 할 수 없습니다?

Connection con=DriverManager.getConnection("jdbc:odbc:Records"); 
Statement st=con.createStatement(); 
DefaultListModel listModel=new DefaultListModel(); 
ResultSet rs=st.executeQuery("Select * from User_table1"); 
    while(rs.next()) { 
     String name=rs.getString("Filename"); 
     listModel.addElement(name); 
     System.out.println(name); 
    } 
list.setModel(listModel); 
rs.close(); 
st.close(); 
+6

이러한 유형의 컴파일 오류는 명령 줄 앱에서 정렬해야하는 종류입니다. –

+2

@Siddique Ansari는 메인 클래스를 제외한 모든 정적 클래스를 제거합니다. :-) – mKorbel

+2

@AndrewThompson 사실 :) 그래서 삭제했습니다. 감사. – Maroun

답변

4

당신은이 문제를 해결하려면 두 가지 방법이 있습니다

  1. 메이크업 정적 맥락에서이 함수를 호출해야하는 경우
  2. 그래서

정적 개체 목록을 비 정적이 기능을 사용하면 두 번째 방법을 사용해야합니다. 이 클래스 유형의 객체에 대한 list 값을 안전하게 유지하려면 첫 번째 방법을 사용해야합니다.

그리고 @ 앤드류 톰슨이 첫 번째 문장에서 말한 것을지지합니다.

+0

개체 목록을 정적으로 만들려면 어떻게해야합니까? –

+0

그것에 대해 검색하면 더 좋을 것이라고 생각합니다. 함수를 정적으로 만들었습니까? –

1

청사진이 있다고 가정 해보십시오. 그런 다음 당신은 예를 들어 그 청사진에서 나온 휴대폰을 생산합니다. 나중에 가위를 잡고 SD 카드를 표시하는 청사진의 일부를 잘라내어 휴대 전화에 카드를 삽입하십시오.

작동하지 않습니다.

static 방법으로 static 회원을 참조 할 수없는 이유가 여기에 있습니다. 왜냐하면 제가 작성한 것은 사실입니다.

여러분은 객체 지향 디자인에 대해 읽어 보시기 바랍니다. 예를 들어, this은 Java에서 탁월한 책입니다. 주의를 기울여 읽으면 문제의 근원을 이해할 수 있습니다.

그리고 컴파일러가 문제를 알려주고 답을 얻기 위해 실제로 콘솔이 필요없는 곳을 알려줍니다.

java가 객체 지향 언어가되기 전에 다른 사람들은 그것을 사용하는 것이 좋습니다. 따라서 static 구성원을 간신히 사용해야합니다.