2012-12-24 1 views
0

작은 자바 응용 프로그램을 만들었습니다. 닫힌 컴퓨터 시스템에서받은 입력으로 csv 파일을 사용하여 mysql 데이터베이스에서 제품 가격, 수량 및 특별 제공 등을 업데이트합니다. 내 조상 전기 소매업.다른 클래스의 JProgressBar 업데이트

진행률 표시 줄을 제외하고는 모든 것이 작동합니다. 내 인생은 JProgressBar를 설정하기 때문에 응용 프로그램에 넣는 방법을 찾지 못합니다. 필자는 소프트웨어 공학 학위를 처음 6 개월 동안 사용하면서 프로그래밍에 비교적 익숙하지 않습니다.

기본적으로, 3 종류가 있습니다 데이터베이스 (MySQL의 DB의 모든 상호 작용을 수행) 업데이터 (해석 .CSV 파일과 기능을 수행 할 수있는 데이터베이스 모듈과 상호 작용이 업데이트 기록 .CSV 파일에서 생성 된 배열을 통해 루프합니다.) GUI (기본 GUI, JFrame, JPanel, .csv 파일 찾아보기 및 데이터베이스 로그인 및 텍스트 필드로 구성)

GUI는 텍스트 필드를 입력으로 사용하여 데이터베이스 인스턴스를 생성합니다. 그리고 GUI에 의해 생성 된 updater 클래스의 인스턴스.

이 프로젝트에서 진행률 표시 줄을 삽입해야합니까, 아니면이를 허용하기 위해 프로젝트 설정을 변경해야합니까?

귀하의 도움은 매우 감사 할 것입니다. 메신저가 멈춰서 인터넷을 검색했기 때문에 상황에 맞는 진행률 표시 줄을 만들 수있는 적절한 방법을 찾을 수 없습니다.

그리고 날 쉽게 이동하십시오 : 나는 아마 전부 롤

감사합니다, 윌슨의 설정에 근본적인 오류를 만들었 알고 P.

답변

0

진행률 표시 줄은 분명히 GUI 구성 요소입니다. 그렇다면 어디에서 속할 수 있습니까? 그러나 종종 자신의 비 스윙 스레드 (스윙 스레드에서 너무 많은 일을하면 GUI 컨트롤이 정지 함)에서 발생하는 무언가의 진행 상황을 보여줍니다. 스윙이 아닌 스레드에서 진행률 표시 줄을 직접 만질 수는 없습니다. invokeLater 또는 invokeAndWait을 사용하여 앞으로 이동하십시오. 메모리 트러싱을 피하기 위해 동일한 Runnable을 재사용하여 원하는 진행을 내부 필드에 할당 할 수 있습니다.

Runnable doProgress = new Runnable() { 

    int progress = 0; 

    public void run() { 
     myProgressBar.setValue(progress++); 
    } 
}; 
// do something 
SwingUtilities.invokeLater(doProgress); 
// do more 
SwingUtilities.invokeLater(doProgress);