플로트에서 특정 작업을 수행하는 데 예상되는 시간이 몇 분입니다. 어떻게 이것을 HH:mm:ss
의 형식으로 JFormattedTextField에 넣을 수 있습니까?JTextField in HH : mm : ss
답변
JFormattedTextField
은 Format
개체를 허용합니다. DateFormat#getTimeInstance()
을 호출하면 DateFormat
을 전달할 수 있습니다. 형식 문자열로 과 HH:mm:ss
을 사용할 수도 있습니다.
은 참조 : 당신이 JFormattedTextField
를 사용하여 제한하지 않는 경우이 답변에서와 같이 http://download.oracle.com/javase/tutorial/uiswing/components/formattedtextfield.html#format
, 당신은 또한, 자바 1.5부터 사용할 수있는 TimeUnit
클래스를 사용하여 자신 만의 서식을, 일을 고려해 볼 수 있습니다 : How to convert Milliseconds to "X mins, x seconds" in Java?
문제는 제가 밀리 초가 아니라 시간이 분이라는 것입니다. – davidahines
@dah 당신이 할 수있는베이스'Date'를 가지고 계시나요? 즉, 걸릴 시간 *이 있나요? , 말하자면, 5 분, 작업을 마칠까요? –
Nope. 십진 분만 기록됩니다. – davidahines
부동 소수점 < 1440의 경우 Calendar
및 DateFormat
으로 해결할 수 있습니다.
float minutes = 100.5f; // 1:40:30
Calendar c = Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.add(Calendar.MINUTE, (int) minutes);
c.add(Calendar.SECOND, (int) ((minutes % (int) minutes) * 60));
final Date date = c.getTime();
Format timeFormat = new SimpleDateFormat("HH:mm:ss");
JFormattedTextField input = new JFormattedTextField(timeFormat);
input.setValue(date);
그러나
는 경고 당신의 플로트보다 크거나 1440 (24 시간)에 동일한 경우는 일정 방법 것입니다 단지 앞으로 하루 당신이 원하는 결과를 얻을 수 없습니다.
시도해 보셨습니까? 자습서를 읽었습니까? http://download.oracle.com/javase/tutorial/uiswing/components/formattedtextfield.html#format – jzd
이것은 'JProgressBar'에 더 적합한 작업처럼 들립니다. –