2013-11-01 7 views
0

나는 4rows와 4columns의 데이터베이스에 테이블을 가지고 있습니다. 각 열은 다른 데이터를 보유합니다. 이제 데이터베이스의 모든 데이터를 검색하여 다른 폼의 JLabel에 저장하려고합니다. 즉 내 데이터베이스에 이 있습니다.데이터베이스에서 JLabel로 값을 가져 오는 중

여기서 packageName ..... 월 요금 ..... YearlyFee ....... TotalFee

정기 .................... ..150 .................. 300 .................... 450

골드 .. ....................... 300 ................... 400 ...... ............ 700

..... ..... .... ....

지금 나는 4가 비어 넣어 한 형태를 가지고 JLabels 네 행이지만 데이터베이스에서 값을 검색하고 각 값을 해당 행에 어떻게 두어야합니까? 테 레이블?.

이것은 내가 한 일이지만 여전히 주위를 둘러 볼 수 없습니다. 메신저.

아무도 고맙습니다.

public void getPrices() 
{ 

    String srt ="SELECT * FROM program_tbl"; 

    try 
    { 
     con.connect(); 

     ps = con.con.prepareStatement(srt); 

     rs = ps.executeQuery(); 
     ResultSetMetaData data = rs.getMetaData(); 
     int colums = data.getColumnCount(); 

      while(rs.next()) 
      { 

       Vector rows = new Vector(); 
       for (int i = 1; i < colums; i++) 
       { 
        rows.addElement(rs.getObject(i)); 
       } 

........................................... ..........................

답변

2

이 데이터를 문자열로 가져 오려면 다음과 같이 시도하십시오.

public class MyObject { 
    private String packageName; 
    private int monthlyFee; 
    private int yearlyFee; 
    private int totalFee; 

    public MyObject (String name, int monthlyFee, int yearlyFee, int totalFee) { 
     this.packageName = name; 
     this.monthlyFee = monthlyFee; 
     this.yearlyFee = yearlyFee; 
     this.totalFee = totalFee; 
    } 

    /*Setters 
    *And 
    *Getters*/ 
} 

: 그리고하지 문자열하지만, ​​객체가 나중에 사용하는 경우

Vector<String> rows = new Vector<String>(); 
while(rs.next()) { 
    String rowEntry = rs.getString("packageName") + 
        rs.getString("monthlyFee") + 
        rs.getString("yearlyFee") + 
        rs.getString("totalFee") +    
    rows.add(rowEntry); 
} 

, 당신은 클래스를 만들 수 있습니다 지금은 그 JLabels를 만들 싶습니다 Vector<String> rows; - 그래서 우리가 지금 문자열 값을 가진 벡터를 가지고 있다고

Vector<MyObject> rows = new Vector<MyObject>(); 
while (rs.next()) { 
    MyObject obj = new MyObject(rs.getString("packageName") 
           , rs.getInt("montlyFee") 
           , rs.getInt("yearlyFee") 
           , rs.getInt("totalFee") 
           ); 
    rows.add(obj)  
} 

:로 사용합니다.

JLabel[] myLabels = new JLabel[v.size()]; 
for(int i=0; i<rows.size(); i++) { 
    as[i] = new JLabel(rows.get(i)); 
} 

이제 우리는 애플릿에 넣을 준비가 된 JLabel의 배열을 가지고 있습니다.

+0

하지만 어떻게 각 값을 다른 양식의 해당 레이블에 추가합니까? –

+0

당신은 JLabel의 배열을 만들 수 있고 (db로부터의 행 입력에 따라 각각), labelArray [i] = new JLabeL (Vector.get [i]);와 for 루프를 만들 수 있습니다. –

+1

레이블을 클래스 멤버로 정의하고 생성 방법의 로컬 멤버로 레이블을 정의하지 마십시오. 그런 다음 값을 할당하십시오. – alex2410

1

JLabel을 사용하지 마십시오. 표 형식의 데이터를 얻을 수 있도록 데이터 형식을 쉽게 지정할 수있는 방법은 없습니다.

대신 JTable을 사용해야합니다. 자세한 내용은 How to Use Tables에있는 스윙 튜토리얼의 섹션을 읽어보십시오. JTable을 ResultSet과 함께 사용하는 예제를 포럼에서 검색 할 수도 있습니다.

관련 문제