JProgressBar

5 отговора 137 прегледа
#1

JProgressBar

Здравейте! Имам следния проблем: прява Java application, което стартира друго приложение - например javac, jar. Искам да покажа един диалогов прозорец с JProgressBar в него. Класа ми наследява JDialog, като диалога може да се затвори с бутона в горния десен ъгъл, а това не трябва да става докато стартираното приложение не завърши. Мисля да опитам с наследяване на JWindow. В Java Tutorial не намерих подходящ пример. Ще бъда благодарен за всеки съвет.

Отговор
в отговор на student #2

Re: JProgressBar

Na kakvo pishesh applicationa JBuilder ili neshto drugo? Ako e na niakoia ot prednite varsii na JBuilder -a JProgressBar neshto ne e nared.

Отговор
в отговор на System #3

Re: JProgressBar

Откакто се занимавам с Java, използвам само JDK и един текстов редактор. Опитах с IBM VisualAge обаче без добра литература не може да се стигне далеч(поне аз така мисля). Впрочем проблема го реших с извикване на метода setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE). С това диалога не може да се затвори от бутона в горния десен ъгъл. Остана проблема, че не мога да определя кога ще завърши стартираното приложение(което е в отделен Thread). Затова реших да покажа вместо JProgressBar една анимация.

Отговор
в отговор на student #4

Re: JProgressBar

JFrame v sluchaja shte ti bude mnogo po-polezen
toj taka ili inache po default (ako ne mu e slojen WindowListener) ne se zatvajra...

kolkoto do problema s tova da razberesh, koga e bilo sprjano startiranoto ot teb prilojenie:
predpolagam che polzvash metoda Runtime.exec() za da startirash novoto prilojenie... tozi method vrushta obekt ot class Process... Ta tozi class Process si ima edin method waitFor(), kojto sluji tochno za tazi cel.
Razgledaj vnimatelno API-to na java.lang.Process - tam mojesh da vidihs oshte njakoi interesni raboti ...

Отговор
в отговор на NATO #5

Re: JProgressBar

Стартирането на външното приложение е точно по-този начин. Проблема е как да се определи докъде е стигнало с работата стартираното приложение за да се промени JProgressBar-a. В примерите на Sun е доста елементарно и е далеч от реалноста.

Отговор
в отговор на student #6

Re: JProgressBar

Po princip wynshnoto prilozhenie trqbwa da ti osiguri nqkakyw mehanizym za da mozhesh da razberesh dokyde e stignalo.
Spomenawash kato wynshni prilozheniq javac i jar - i dwete mozhesh da gi pusnesh s opciq -verbose naprimer, sled koeto da wzemesh izhoda im s Process.getOutputStream() i da go parsvash. Ako predwaritelno si opredelil broq na filowete koito shte se obrabotqt, prosto gledash kolko filowe e obrabotilo nqkoe ot dwete prilozheniq i imash nqkakwa osnowa za progress bar

Отговор