Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

イベント処理の途中でボタン入力する方法

初めまして、トビラ。。といいます。

・自己紹介(読み飛ばしてくださってかまいません)
アプリケーョンを作りたくてjavaを勉強しています。参考にしている本は「javaアプリケーションの作り方の基本、基礎編、実践編(三谷純著)」と「新・明解java (柴田望洋著)」の本です。javaFXにてGUIアプリケーションを作成しようとしています。

・本題
コントロールのボタンAを押すと、イベント処理が実行される訳なのですが、このイベント処理の途中でボタンBまたは、ボタンCの入力を行いたいのですがどのようにすればよいでしょうか?例えば、コンソール上であれば

import java.util.Scanner;

class A{
 public static void main(String[] args){
        Scanner  stdIn =new Scanner(System.in);
        System.out.println("整数値を入力してください");
        int x= stdIn.nextInt();
       if(x>0){
       System.out.println("正の整数です");
      }else{
  System.out.println("負の整数か0です。");
     }
    }
}

のように、プログラムが最後まで終了していなくてもScannerのおかげで途中で数字入力することができます。これと同等のこと(数字入力の代わりにコントロールのボタンの入力)を行いたいのです。何かいい方法ご存じないでしょうか?


4

回答

91507

閲覧

4件の回答

評価

0

>このイベント処理の途中でボタンBまたは、ボタンCの入力を行いたい
いまいち何を言いたいのか解りづらいのだが。
ボタンAのイベント処理が長い時間を要するが、その間にボタンBやCを押したときにすぐに反応して欲しいのか、
それともボタンAのイベント処理の途中でボタンBまたはCのイベント処理と同等のことをしたいのか。

評価

0

質問がわかりづらくて申し訳ありません(トホホホホ)

ボタンAを入力後、その処理の途中でボタンBもしくはボタンCの入力を要求したいのです(このときボタンAの処理はBもしくはCが入力されるまで一時的にストップ。あくまでストップであって終了ではない)。そしてBもしくはCが押されたら中断されていた処理が続行され、Bが押された場合のAの処理、もしくはCが押された場合のAの処理を行いたいのです。

このような方法はないのでしょうか?ご教授お願いしますm(__)m

評価

0

Aボタンはある一連の処理すべてではなく、「中断」までを自分の担当だと考えること。
再開後の処理は、B、Cボタンそれぞれの担当だ。

さて、「中断」は「状態」だ。
「状態」は例えばAボタン押下でフィールドを特定の値にするだけで、実現できる。
Bボタン押下でフィールドがその値であれば、「再開」と見なして処理をし、それが終わったらフィールドを元に戻す。Bボタン押下時に特定の値でなければ、何もしないか、先にAを押せと促すか、などなど。

評価

0

ありがとうございます。ようやく解決しました。
今まで私はボタンを押すたびにインスタンスが初期化されてしまうものだと思っていました。なので、ボタンを押すたびにインスタンスを別ファイルに保存したり呼び出しを行う必要があるのかと思っていたので、Aのボタンを押して処理の途中でBやCボタンの入力を行おうとしていたのですが、その必要はないということに気づきました。初歩的な勘違いで申し訳ないです。

助かりました。ありがとうございました。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。