テキスト広告:プレミアムプランが最初の3か月月額99円!【2025年7月31日まで】

AdMax右サイドバー広告

火曜日, 11月 28, 2006

[Java]Calendarクラス

▼質問
日付を表示するダイアログ内でCalendarクラスをaddしたんだけど次のエラーが出るんだ!?

Calendar calendar = Calendar.getInstance();
calendar = (Calendar)パラメータでもらったCalendarオブジェクト変数.clone();
calendar.add( Calendar.DATE, 1 );

java.lang.NullPointerException
at java.util.GregorianCalendar.getCurrentFixedDate(Unknown Source)
at java.util.GregorianCalendar.add(Unknown Source)

▼回答
時刻に変更したら回避できた?!なぜ?
calendar.add( Calendar.HOUR_OF_DAY, 24 );

▼質問
1970/01/01 00:00:00 からの通算秒をカレンダーオブジェクトに変換するにはどうするの?

▼回答
下記のようにすれば1970/01/01 00:00:00からの通算秒が設定できる。

Calendar calendar = Calendar.getInstance( TimeZone.getTimeZone( "JST" ) );
calendar.set( Calendar.YEAR, 1970 );
calendar.set( Calendar.MONTH, 0 );
calendar.set( Calendar.DATE, 1 );
calendar.set( Calendar.HOUR_OF_DAY, 0 );
calendar.set( Calendar.MINUTE, 0 );
calendar.set( Calendar.SECOND, 0 );
calendar.set( Calendar.MILLISECOND, 0 );
calendar.add( Calendar.SECOND, 通算秒 );

又は、

Calendar calendar = Calendar.getInstance( TimeZone.getTimeZone( "JST" ) );
calendar.setTimeInMillis( 0 );
calendar.add( Calendar.SECOND, 通算秒 );

土曜日, 11月 11, 2006

[Java]オブジェクトのコピー

▼質問
クラス間でメソッドのパラメータにクラスオブジェクト渡しているんだけど、そのオブジェクトが
完全な独立した形でコピーされないんだ?どうしたらいいの?!

▼回答
cloneメソッドを実装しなくてはいけないようだ!?

複写の方法にも2つの方法があるようだ。

1.シャローコピー(shallow copy)変数共有系?
2.ディープコピー(deep copy)完全独立系?

・・・・

■参考サイト
オブジェクトの複写
http://www.asahi-net.or.jp/~DP8T-ASM/java/tips/ObjectCopy.html

金曜日, 11月 10, 2006

[Java]イベントテンプレート

■キーイベント
JFormattedTextField textField = new JFormattedTextField();
textField.addKeyListener( new java.awt.event.KeyAdapter() {
public void keyTyped( java.awt.event.KeyEvent evt ) {
// キーが入力された時の処理
JFormattedTextField tf = (JFormattedTextField)evt.getComponent();
System.out.println( tf.getText() );
}
});

JFormattedTextField textField = new JFormattedTextField();
textField.addKeyListener( new java.awt.event.KeyAdapter() {
public void keyReleased( java.awt.event.KeyEvent evt ) {
// キーが放された時の処理
JFormattedTextField tf = (JFormattedTextField)evt.getComponent();
System.out.println( tf.getText() );
}
});

■フォーカスイベント
JFormattedTextField textField = new JFormattedTextField();
textField.addFocusListener( new java.awt.event.FocusAdapter() {
public void focusLost( java.awt.event.FocusEvent evt ) {
// フォーカスを失った時の処理
JFormattedTextField tf = (JFormattedTextField)evt.getComponent();
System.out.println( tf.getText() );
}
});