• 締切済み

applet

タイピングを作ってます。これだと、動くのですが入力することができません。どうしたらいいでしょうか。よろしくお願いします。 public void init() { setSize(300,300); setBackground(Color.MAGENTA); for(int i=0; i<26; i++) { chk[i] = 0; // 初期値入力 } flag = 0; // フラグの初期化 setLayout(new BorderLayout()); top = new Panel(); // パネル作成 top.setLayout(new GridLayout(3, 2)); top.add(question = new Label("タイピング 初級")); top.setFont(new Font("MS ゴシック",Font.ITALIC,18)); top.add(q_choice = new Choice()); top.add(stat = new Label("")); q_choice.add("基本"); // 選択ボックスにアイテム追加 q_choice.add("応用"); add(start_btn = new Button(" スタート ")); add(answer = new TextField()); answer.setFont(new Font("MS ゴシック",Font.BOLD,24)); add("North", top); add("South", start_btn); add("Center",answer); start_btn.addActionListener(new ActionListener() { //スタートボタンを押されたときの処理 public void actionPerformed(ActionEvent e) { // if (flag==0) { // flag = 1; typing(); // スレッド開始 // } } }); } public void typing() { TimerA runA = new TimerA(); Thread threadA = new Thread(runA); threadA.start(); boolean flg = true; int count = 0; if (q_choice.getSelectedIndex() == 0){ // 問題判定(指定された項目に一致する、リスト内の最初の項目を返します。) q_data = q_data1; mon = q_data1.length; } else { q_data = q_data2; mon = q_data2.length; } for (int i = 3; i > 0; i--) { // カウントダウン question.setText(""+i); } pt = 0; // 点数初期化 m = (int)(mon * Math.random()); // 1問目の問題決定 ランダムで question.setText(q_data[m]); question.setBackground(new Color(250,128,114)); // 背景色設定 stat.setBackground(new Color(0,206,209)); chk[m] = 1; // 問題のフラグを立てる while(count < 10) { // 問題をまわす time = 6000; if(q_data[m].equals(answer.getText())) { pt += (int)(10000 / (itime - time)); // 点数算出 while(chk[m] != 0) { m = (int)(mon * Math.random()); } chk[m] = 1; question.setText(q_data[m]); //answer.setFont(new Font("MS ゴシック",Font.BOLD,24)); answer.setText(""); } try { threadA.sleep(1000); } catch(InterruptedException e) {} flg = runA.isFlg(); if (flg == false){ count++; runA = new TimerA(); threadA = new Thread(runA); threadA.start(); time -= 10; } // time = runA.getTime(); stat.setText("残り時間 : "+(time/10)+"."+(time%10)+"秒 点数:"+pt+"点"); } question.setText("終了です!お疲れ様でした!"); stat.setText("Time Over! 点数:"+pt+"点"); } } class TimerA implements Runnable { private boolean flg = true; private int time = 6000; public boolean isFlg() { return flg; } public int getTime(){ return time; } public void run() { for(;time > 0; time--) ; flg = false; System.out.println(time); } }

みんなの回答

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.2

(このフォーラムは、最初の回答を編集できないのがつらい!) > if(q_data[m].equals(answer.getText())) { こんなコードはありえませんよ! (ほかにも、めちゃくちゃなところがいっぱいあるが。) 確定テキストは、テキストフィールドのイベントリスナで取り出してください。

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.1

> 入力することができません。どうしたらいいでしょうか。 そもそも、入力している部分が見あたりませんが? コードを投稿するときは、問題点を再現できる、そして実際にコンパイル~実行できる(できれば小さなサンプルコード)を投稿してください。 タイトルも良くないし(読者に不親切)、コードもかなりむちゃくちゃだから、Javaの初歩から勉強することをお勧めします。

関連するQ&A