iLEDについて

Javaサンプル

Netbeans

Libre Office Basicマクロ

その他


Author of This Site:
M. Kom. (kom9kmail@gmail.com)
Spam対策のため@マークは全角になっていますから、メール送信時には半角にしてください。

Java ソースコード TimerTest.java

Timer割り込みの使用例(世界時計)

GUI作成はNetBeansのデザイナを使用。
年月日、時分秒表示。地域の切り替えが可能。
年月日はjTextDate、時分秒はjTextField1、地域切り替えコンボボックスは
jComboAreaで作成。

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.Calendar;
import java.util.TimeZone;

public class TimerTest extends javax.swing.JFrame implements ActionListener{
  javax.swing.Timer timer;
  String areaCode="Japan"; //初期Time Zone エリアコード

  public TimerTest() {
    initComponents();

    timer = new javax.swing.Timer(500 , this); //0.5秒ごとにタイマー起動
    timer.start();
  }

  public void actionPerformed(ActionEvent e){ 
    //Timerがトリガーされるとここが呼び出される
    String[ ]  strDWeek={"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
    Calendar cal = Calendar.getInstance(TimeZone.getTimeZone(areaCode));
    String strAmpm;
    int Year=cal.get(Calendar.YEAR);
    int Month=cal.get(Calendar.MONTH);
    int Day=cal.get(Calendar.DAY_OF_MONTH);
    int DWeek=cal.get(Calendar.DAY_OF_WEEK); //曜日
    int apm=cal.get(Calendar.AM_PM);
    int Hour = cal.get(Calendar.HOUR);
    int Minute = cal.get(Calendar.MINUTE);
    int Second = cal.get(Calendar.SECOND);
    String str1 = String.valueOf(Hour);
    String str2 = String.valueOf(Minute);
    String str3 = String.valueOf(Second);
    if (Hour < 10) { str1 = '0' + str1; }
    if (Minute < 10) { str2 = '0' + str2; }
    if (Second < 10) { str3 = '0' + str3; }
    if(apm==0){
      strAmpm="AM";
    }else{
      strAmpm="PM";
    }
    jTextField1.setText(strAmpm + " " + str1 + ":"+ str2+":" + str3);
    jTextDate.setText(Year+ "/"+ Month + "/"+ Day +
       " ("+strDWeek[DWeek-1] + ")" );
  }

  private void jComboAreaActionPerformed(java.awt.event.ActionEvent evt) {
    // Area設定コンボボックスがクリックされるとここが呼び出される
    areaCode=(String)jComboArea.getItemAt(jComboArea.getSelectedIndex());

  }


地域切り替えのエリアコードリスト(Japanなど)は、NetBeansのデザイン画面で、
jComboAreaのプロパティのmodelの右端のボタンで入力。

Pacific/Samoa
Pacific/Honolulu
Europe/London
Europe/Madrid
Africa/Cairo
Africa/Nairobi
Asia/Jakarta
Asia/Hong_Kong
Asia/Taipei
Australia/West
Japan
Pacific/Guam
Asia/Shanghai
US/Eastern
US/Central
US/Mountain
US/Arizona
US/Pacific

などを入力する。エリアコードは非常に多くの種類があり、
必要に応じて追加、削除すればよい。

 エリアコードの入力にデザイン画面のjComboAreaのプロパティを使わない場合は、
 以下のようなプログラムコードをコンストラクタpublic TimerTest( )の中の、
 initComponents( ); の下に直接記述してもよい。
         
 jComboArea.setModel(new javax.swing.DefaultComboBoxModel(new String[ ] {
           "Japan", "Pacific/Samoa", "Pacific/Honolulu" }));

動作画面例

コンボボックスで地域を変更することができます。

fig

Clock Sample

Kom., 2013