javaの時刻更新について質問です。
jLabel4.setText(year + "/" + month + "/" + day + " " + dow+ " " + hour + ":" + minute );
に入る時刻を1秒間隔で更新したいのですが、どうしたらいいのか分からないのです。

他のサイトでtimerが使えると聞いたので調べてみたのですが、よくわからなくて。。。
プログラムのどこから記述していいのかさっぱりで。
分かる方には馬鹿な質問ですが、よろしければお知恵をお貸しください。

private void tokei() {
Calendar cal1 = Calendar.getInstance(); //(1)オブジェクトの生成
int year = cal1.get(Calendar.YEAR); //(2)現在の年を取得
int month = cal1.get(Calendar.MONTH) + 1; //(3)現在の月を取得
int day = cal1.get(Calendar.DATE); //(4)現在の日を取得
int hour = cal1.get(Calendar.HOUR_OF_DAY); //(5)現在の時を取得
int minute = cal1.get(Calendar.MINUTE); //(6)現在の分を取得

StringBuffer dow = new StringBuffer();
switch (cal1.get(Calendar.DAY_OF_WEEK)) { //(8)現在の曜日を取得
case Calendar.SUNDAY: dow.append("日曜日"); break;
case Calendar.MONDAY: dow.append("月曜日"); break;
case Calendar.TUESDAY: dow.append("火曜日"); break;
case Calendar.WEDNESDAY: dow.append("水曜日"); break;
case Calendar.THURSDAY: dow.append("木曜日"); break;
case Calendar.FRIDAY: dow.append("金曜日"); break;
case Calendar.SATURDAY: dow.append("土曜日"); break;
}
jLabel4.setText(year + "/" + month + "/" + day + " " + dow
+ " " + hour + ":" + minute );
}
}

このQ&Aに関連する最新のQ&A

A 回答 (1件)

java swing 時計 とかでぐぐれば使えそうな例いろいろでてきますよ。



参考URLはデジタル時計の例です。

参考URL:http://www.geocities.jp/s2412502/d_tokei.html
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
さっそく参考にして取り掛かってみます。

お礼日時:2009/05/15 18:18

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qシンボルが見つかりませんというエラーが理解できません。

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Image[3];
Thread t;
int index1 = 0;
int index2 = 0;
String msg = "";
String msg1 = "";

boolean state = false;
Button b1 = new Button("ぐー");
Button b2 = new Button("ちょき");
Button b3 = new Button("ぱー");

public void init(){
for(int i = 0; i<=2; i++){
img[i] = getImage(getDocumentBase(),"hanabi" + (i+1) + ".JPG");
}
add(b1);
add(b2);
add(b3);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
msg1 = "結果は・・";

}

public void paint(Graphics g){
g.drawImage(img[index1],350,30,this);
g.drawImage(img[index2],695,30,this);
g.drawString("コンピューター",420,300);
g.drawString("あなた",800,300);
g.drawString(msg,630,320);
g.drawString(msg1,550,320);
}

public void start(){
state = true;
t = new Thread(this);
t.start();

}

public void run(){
while(state){
index1++;
if(index1 == 3){
index1 = 0;
}
index2++;
if(index2 == 3){
index2 = 0;
}
repaint();
try {
Thread.sleep(60);
}catch(InterruptedException e) { }
}
}

public void actionPerformed(ActionEvent e){
if(state == false) {
start();
return;

}
state = false;
if(e.getSource() == b1) {
msg = "ぐー";
index2 = 0;
}

else if(e.getSource() == b2){
msg = "ちょき";
index2 = 1;
}

else if(e.getSource() == b3){
msg = "ぱー";
index2 = 2;
}
check();
repaint();
}

public void check() {
if(index1 == index2) msg ="あいこ";


else if (index1 == 0) {
if(index2 == 2) msg="あなたの勝ち";
else msg ="あなたの負け";
}

else if(index1 == 1) {
if(index2 == 0) msg="あなたの勝ち";
else msg="あなたの負け";
}

else if(index1 == 2) {
if(index2 == 1) msg="あなたの勝ち";
else msg="あなたの負け";
}

}
}

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Imag...続きを読む

Aベストアンサー

「シンボルを見つけられません。」というエラーの下に何か表示がありませんでしたか?そこにヒントがあると考えられます。
シンボルを見つけられませんといエラーが表示される主な理由は4つあります。
(1)クラス、メソッド、変数などの綴りミスや定義していない変数を使用している可能性がある。
(2)コンストラクタを呼び出すときに、newを忘れている可能性がある。(3)公開されていないメンバーを呼び出している可能性がある。
(4)必要なimport文を記述し忘れている可能性がある。
ここでのあなたのエラーは(1)番ではないでしょうか?上記ではimageとなっている変数がimgになっていますね。
これはエラー表示をよく見ることで意外と簡単に解決できるのです。
ゆっくり丁寧にエラー表示を見るように心がけることが大事ですよ。

QCalendarクラスの日付更新について

ある日付を追加した時,うまく正式な日付になりません。
(1) 2002年9月30日にセットする
(2) 1日追加する --→この時点で2002年9月31日になっている。
(3) 10月1日に正式な日付に直す
という流れなのですが・・・
ソースは以下のとおりです。

public static void main(String[] args) {

       Calendar cal = new GregorianCalendar();
    /*(1)*/     cal.set(2002,9,30);
   /*(2)*/     cal.add(Calendar.DATE,1);
/*(3)*/ cal.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONTH),cal.get(Calendar.DATE) );

System.out.println(cal.get(Calendar.YEAR) "年"+ cal.getCalendar.MONTH) +"月"+ cal.get(Calendar.DATE) +"日");
}
と、表示させると2002年10月1日になっておらず2002年9月31日になったままです。
これはどこに原因があるのでしょうか?ご指導お願いします。

ある日付を追加した時,うまく正式な日付になりません。
(1) 2002年9月30日にセットする
(2) 1日追加する --→この時点で2002年9月31日になっている。
(3) 10月1日に正式な日付に直す
という流れなのですが・・・
ソースは以下のとおりです。

public static void main(String[] args) {

       Calendar cal = new GregorianCalendar();
    /*(1)*/     cal.set(2002,9,30);
   /*(2)*/     cal.add(Calendar.DATE,1);
/*(3)*/ c...続きを読む

Aベストアンサー

>(1) 2002年9月30日にセットする

と書いていますが、ソースは

>cal.set(2002,9,30);

と、2002.10.30 になってしまっています。
月は 0~11 が 1月~12月と対応しており、
cal.set(2002,0,1); で 2002.1.1 になります。
10月は31日までですから、次の月にはなりません。

Qラジオボタンの選択肢をサーブレットで取得するには?

サーブレットの開発を行っていますが、ブラウザー側で
ラジオボタンを選択した際に何を選択したかのデータを取得したいのです。
(下記のHTMLで言えば、割引手形か、手形貸付か、証書貸付というのを取得したいのです)
パラメーターをサーブレットで受け取りたいのですが
うまくいきません
HTMLでHIDDENを使用するとか聞いたことはあるのですがどのようにコーディングすればいいんでしょうか?
よろしくお願いいたします。

<p>
<input type="radio" name="radiobutton" value="radiobutton">
割引手形 
<input type="radio" name="radiobutton" value="radiobutton">
手形貸付 
<input type="radio" name="radiobutton" value="radiobutton">
証書貸付
</p>

ブラウザー側からは
<form action="http://localhost/servlet/yuushi" method=post>
の指定を行っています。
サーブレットでの受け取り方を、
String p2=request.getParameter("radiobutton");
 とすると、p2=radiobuttonとデータがセットされました。

サーブレットの開発を行っていますが、ブラウザー側で
ラジオボタンを選択した際に何を選択したかのデータを取得したいのです。
(下記のHTMLで言えば、割引手形か、手形貸付か、証書貸付というのを取得したいのです)
パラメーターをサーブレットで受け取りたいのですが
うまくいきません
HTMLでHIDDENを使用するとか聞いたことはあるのですがどのようにコーディングすればいいんでしょうか?
よろしくお願いいたします。

<p>
<input type="radio" name="radiobutton" value="...続きを読む

Aベストアンサー

それぞれの項目の value を、ユニークにして下さい。例えば、

<input type="radio" name="radiobutton" value="1"> 割引手形 
<input type="radio" name="radiobutton" value="2"> 手形貸付 
<input type="radio" name="radiobutton" value="3"> 証書貸付

そうすれば、「手形貸付」を選択したときに

String p2 = request.getParameter("radiobutton");

とすれば、p2 は "2" になります。

QJavaで改行などが出来ないのです。

 Java の事で質問です。 
 

 System.out.println("このようにしても\n");

 改行できません。
 
 このようにしても\n   

 と表示されてしまいます。どうしてでしょう。ちなみにOSはMacOS9.1です。なにか関係があるのでしょうか?

Aベストアンサー

> class amigo{
> public static void main(String args[]) {
> System.out.print("aaaaaaaa");
> System.getProperty("line.separator");
> System.out.print("bbbbbbbb");
> }
> }
> のような使い方でしょうか?

String line_sep = System.getProperty("line.separator");
System.out.println("あいうえお" + line_sep + "かきくけこ");

こうです。

QKeyListenerの使い方について

FrameクラスのフレームにKeyListenerをaddKeyListenerで登録してキー入力を受け付けたいのですが、キーを入力してもまったく反応がありません。どうやらkeyTyped,keyPressed,keyReleasedのどのメソッドも呼び出されてないようです。クラスの概要は以下のとおりです。
class sampleFrame extends Frame implements KeyListener
{
{
addKeyListener(this);//コンストラクタ内で登録
}



で、keyPressedとうのメソッドはすべて定義しています。それから、キーを入力するとなぜか同じフレーム上のリストボックスの項目が入れ替わったりします。
どうぞよろしくお願いいたします。

Aベストアンサー

こんにちは。
おそらくフォーカスの問題だと思います。
フォーカスをフレームに設定してあげれば良いのですが、一度でも内部のコンポーネントに(クリックするなど)フォーカスを設定すると、フォーカスをフレームに再設定する仕掛けを用意しておく必要があります。
- - -
import java.awt.*;
import java.awt.event.*;

public class Test extends KeyAdapter {

Frame frame;
List list;

public static void main(String args[]) {
new Test();
}

public Test() {
list = new List();
list.add("apple");
list.add("orange");
list.add("banana");
list.removeKeyListener(this);

frame = new Frame("Test");
frame.add(list);
frame.setSize(400, 300);
frame.setLocation(100, 100);
frame.addKeyListener(this);
frame.show();
frame.requestFocus(); // フレームにフォーカスを設定
}

public void keyPressed(KeyEvent e) {
System.out.println("key pressed.");
}

}

こんにちは。
おそらくフォーカスの問題だと思います。
フォーカスをフレームに設定してあげれば良いのですが、一度でも内部のコンポーネントに(クリックするなど)フォーカスを設定すると、フォーカスをフレームに再設定する仕掛けを用意しておく必要があります。
- - -
import java.awt.*;
import java.awt.event.*;

public class Test extends KeyAdapter {

Frame frame;
List list;

public static void main(String args[]) {
new Test();
}

public Test() {
list = new List();
list....続きを読む

QArrayListを使った多次元配列の作成について

ArrayListで可変長配列を扱っているのですが、
2次元可変長配列を用いる必要が出てきたので、
下記のように変更したのですがうまくいきません。
何が悪いのか教えていただけませんでしょうか?

-----------------------------------------
ArrayList cars=new ArrayList();
cars.add("フェラーリ");
cars.add("ポルシェ");
cars.add("メルセデスベンツ");
for(int i=0;i<cars.size();i++){
 String str=(String)cars.get(i);
 System.out.println(str);}
-----------------------------------------
上記から下記のように変更しました。
-----------------------------------------
ArrayList[] cars=new ArrayList[3];
cars[0].add("フェラーリ");
cars[0].add("ポルシェ");
cars[0].add("メルセデスベンツ");
for(int i=0;i<cars[0].size();i++){
 String str=(String)cars[0].get(i);
 System.out.println(str);}
-----------------------------------------
エラーは「Exception in thread "main" java.lang.NullPointerException」です。
どうやら初期配列が10ではなく3となってしまっているようです。

ArrayListで可変長配列を扱っているのですが、
2次元可変長配列を用いる必要が出てきたので、
下記のように変更したのですがうまくいきません。
何が悪いのか教えていただけませんでしょうか?

-----------------------------------------
ArrayList cars=new ArrayList();
cars.add("フェラーリ");
cars.add("ポルシェ");
cars.add("メルセデスベンツ");
for(int i=0;i<cars.size();i++){
 String str=(String)cars.get(i);
 System.out.println(str);}
---------------------------------------...続きを読む

Aベストアンサー

こんにちは。

>ArrayList[] cars=new ArrayList[3];
はArrayList型のオブジェクトのインスタンス
を格納する箱を3個作成しただけなので、
この時点では、
cars[0] = null
cars[1] = null
cars[2] = null
となっています。ですから、当然
cars[0].add("フェラーリ");
などとやると、NullPointerExceptionが
発生します。これをさけるには、
cars[0] = new ArrayList();
cars[1] = new ArrayList();
cars[2] = new ArrayList();
とする必要があります。

Qyyyymmddからyyyy/mm/ddへの変換

いつもお世話になっております。
Aと言う変数にはyyyymmddの値が入っていて
Aをyyyy/mm/ddにしてBの変数に入れたい場合の処理がわかりません。
調べたところ、SimpleDateFormatクラスと言うものを使えばよいと言うことが判明しました。
しかし、今まで使ったことがないのでよくわかりません。
変数Aと変数BはどちらもString型です。
ご教授お願い致します。

Aベストアンサー

 こんにちは。

 本当に変数aの中の文字列が厳密にyyyyMMddの形式のなっているのなら、普通に

String b = a.substring(0, 4) + "/" + a.substring(4, 6) + "/" + a.substring(6, 8);

 これでいいと思いますが、いったんDate型にする必要があったり、ちゃんと日付として認識できるか確かめる必要がある場合は、

String a = "20051029";

SimpleDateFormat formatter = (SimpleDateFormat)DateFormat.getDateInstance();
formatter.applyPattern("yyyyMMdd");
try {
  Date date = formatter.parse(a);
  formatter.applyPattern("yyyy/MM/dd");
  String b = formatter.format(date);
  System.out.println(b);
}
catch (ParseException ex) {
  System.out.println("解析失敗");
}

 こんな感じでいいんじゃないでしょうか。

 こんにちは。

 本当に変数aの中の文字列が厳密にyyyyMMddの形式のなっているのなら、普通に

String b = a.substring(0, 4) + "/" + a.substring(4, 6) + "/" + a.substring(6, 8);

 これでいいと思いますが、いったんDate型にする必要があったり、ちゃんと日付として認識できるか確かめる必要がある場合は、

String a = "20051029";

SimpleDateFormat formatter = (SimpleDateFormat)DateFormat.getDateInstance();
formatter.applyPattern("yyyyMMdd");
try {
  Date date = formatter.p...続きを読む

QEclipseでのJDBCドライバについて

Eclipse3.1でデータベース(mysql)にアクセスするプログラムを作ったのですが下記のエラーが出ます。

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

これはJDBCドライバのセットアップがうまく出来ていないからなのでしょうか?
またEclipseでは、~.jarというファイルをプロジェクトのWEB-INFのlibフォルダに入れれば使える印象があるのですが、参考書(EclipseのではなくJAVAなどの)などにあるようにTomcatのインストールフォルダ以下common/libに入れて環境変数を変更しないといけないのでしょうか?

ご存知の方教えてください、よろしくお願いします。

Aベストアンサー

WEB-INF以下に入れると実行はできるのですが、エクリプスが.javaファイルをコンパイルすることができません。projectの一覧を右クリックしてpropertyを選択し、ダイアログ右側からJava Build Pathを選択し、タグからLibrariesを選び、Add JARsボタンをおして.jarファイルを登録して下さい。
たぶんこれでコンパイルできるはずです。

Q数値チェック

すみません、どなたか教えて下さい。

あるデータが数値かどうかのチェックをかけたいのですが、どのようにしたらよいでしょうか?
※数値は整数だけじゃなく、少数、負の数も存在します。
現在は下記のように、負の数だとNGになってしまいます。

String kekka = "OK";
int intChk = 0;
for (int i = 0; i < value.length(); i++) {
char c = editvalue.charAt(i);
char c1 = '0';
char c2 = '9';
if ((c < c1 || c > c2) && ( c!='.') ) {
intChk = intChk + 1;
}
}
if (intChk == 1){
kekka="NG";
}

Aベストアンサー

単純に数値(少数と負の数を含む)のチェックであれば、parseDoubleだけでよいと思います。
Double型でなければ、すべてcatchします。

String kekka = "OK";
try {
Double.parseDouble(value);
} catch (Exception e) {
kekka = "NG";
}

QJavaを使ってデジタル時計を作りたいです。時、分、秒も表示させたいです。

Javaの勉強をしている初心者の者です。
Eclipseを使ってデジタル時計を作ろうと試みているのですが、どうしても"●●時●●分●●秒"というように、表示させることができません(;_;)

また、時刻は16時台になっていますが、深夜1時とかにアプレットを作動させると、"10235"というように、5桁で表記されてしまいます。
"010235"のように、6桁で時刻を表示させることができません(;_;)

私が書いたコードのどこを修正すれば、6桁の時刻で、なおかつ、時、分、秒も入ったデジタル時計を表示できるのか、教えていただければ幸いです(>_<)
よろしくお願いします<m(__)m>


import java.awt.*;
import java.applet.*;
import java.util.*;

public class digital_clock extends Applet{
public void paint(Graphics g){
int hour_of_day, min, sec;
Calendar cal = Calendar.getInstance();
hour_of_day = cal.get(Calendar.HOUR_OF_DAY );
min = cal.get(Calendar.MINUTE);
sec = cal.get(Calendar.SECOND);
String s;
s = "hour_of_day+月+min+分+sec+秒";
g.setFont(new Font("SansSerif", Font.PLAIN, 60));
g.drawString(Integer.toString(hour_of_day), 20, 50);
g.drawString(Integer.toString(min), 85, 50);
g.drawString(Integer.toString(sec), 150, 50);


}
}

Javaの勉強をしている初心者の者です。
Eclipseを使ってデジタル時計を作ろうと試みているのですが、どうしても"●●時●●分●●秒"というように、表示させることができません(;_;)

また、時刻は16時台になっていますが、深夜1時とかにアプレットを作動させると、"10235"というように、5桁で表記されてしまいます。
"010235"のように、6桁で時刻を表示させることができません(;_;)

私が書いたコードのどこを修正すれば、6桁の時刻で、なおかつ、時、分、秒も入ったデジタル時計を表示できるのか、教えていただ...続きを読む

Aベストアンサー

#2です。
#1さんの指摘されているのは、「sは代入されているだけで使用されていない」ということなのですが。

0埋めに関しては、参考URLの方法のひとつをコピーしてくればよかったのですが、まあこういう時刻の場合には1桁か2桁というのが判りきっていますので、単純に1桁の場合には頭0を補うという方法でもよろしいかと。

import java.awt.*;
import java.applet.*;
import java.util.*;

public class digital_clock extends Applet{
public void paint(Graphics g){
int hour_of_day, min, sec;
Calendar cal = Calendar.getInstance();
hour_of_day = cal.get(Calendar.HOUR_OF_DAY );
min = cal.get(Calendar.MINUTE);
sec = cal.get(Calendar.SECOND);
String s;

s = pad0(hour_of_day)+"時"+pad0(min)+"分"+pad0(sec)+"秒";
g.setFont(new Font("SansSerif", Font.PLAIN, 60));
g.drawString(s, 20, 50);


}
String pad0(int val){
if(val<10){
return "0"+val;
}else{
return ""+val;
}
}
}

#2です。
#1さんの指摘されているのは、「sは代入されているだけで使用されていない」ということなのですが。

0埋めに関しては、参考URLの方法のひとつをコピーしてくればよかったのですが、まあこういう時刻の場合には1桁か2桁というのが判りきっていますので、単純に1桁の場合には頭0を補うという方法でもよろしいかと。

import java.awt.*;
import java.applet.*;
import java.util.*;

public class digital_clock extends Applet{
public void paint(Graphics g){
int hour_of_day...続きを読む


人気Q&Aランキング