質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

1646閲覧

java

satanosaka18419

総合スコア37

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2015/09/26 06:13

アプレットについて勉強しています。
キーイベントのプログラムがうまくいかないので質問させていただきます。

まず画面上にlabelを使って文字を表示させています。
Label label = new Label("おはよう");
add(label, BorderLayout.CENTER);

この状態からEnterキーを押すと
”こんにちは”
もう一度押すと
”こんばんは”
を表示させたいです。

requestFocus();
addKeyListener(
new KeyAdapter(){
public void keyPressed(KeyEvent e){
switch(e.getKeyCode()){
case KeyEvent.VK_ENTER:

この続きにEnterキーを押された後の処理を書いたらいいと思うのですが、再描画?などをしないといけなさそうで、よくわかりません。

わかる方いましたらよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

懐かしのアプレットですね。
キーイベントを有効化するには、以下の手順の実装をしてみてください。

  1. KeyListenerインターフェースを継承します。
  2. keyTyped, Pressed, Released メソッドをオーバーライドします。
  3. keyPressedにキーコード分岐を記述して任意の処理を実装します。

今回はキーが押下されたらグローバル変数を1だけプラスして、
paint()メソッドの処理もう一度行うrepaint()メソッドを呼び出しています。

java

1public class javaApplet extends Applet implements KeyListener{ 2 //何回エンターキーが押されたか記憶 3 private c=0; 4 5 public void init(){ 6 addKeyListener(this); //キーイベントの準備 7 } 8 9 public void paint(Graphics g){ 10 //最初は おはよう 11 Label label = new Label("おはよう"); 12 //1回押したら こんにちは 13 if c==1 label.setText = "こんにちは"; 14 //2回押したら こんばんは 15 else if c==2 label.setText = "こんばんは"; 16 add(label, BorderLayout.CENTER); 17 } 18 19 public void keyTyped(KeyEvent e){ 20 } 21 //キーが押し込まれた時に呼び出されるメソッド 22 public void keyPressed(KeyEvent e){ 23 //KeyCode 10 = ENTERキー 24 if(e.getKeyCode() == 10){ 25 //エンターキーが押されたら増える 26 c++; 27 //再絵画 28 repaint(); 29 } 30 } 31 public void keyReleased(KeyEvent e){ 32 } 33}

投稿2015/09/28 16:28

SKYYFISH

総合スコア654

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

satanosaka18419

2015/10/27 06:22

回答ありがとうございます^^ わかりやすいプログラムもありがとうございます。
guest

0

アプレットを触ったのが結構前なので細かいことは忘れましたが,

java

1if (label.getText().equals("おはよう")) { 2 label.setText("こんにちは"); 3} else if (label.getText().equals("こんにちは")) { 4 label.setText("こんばんは"); 5}

こんな感じで良かったと思いますよ.

再描画をしなければならないのは,Canvas系のクラスだったと思います.

投稿2015/09/26 06:32

編集2015/09/26 06:33
KenTerada

総合スコア751

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問