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

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

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

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

Q&A

解決済

1回答

2337閲覧

引数を渡せない

OMDM1991

総合スコア25

Java

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

0グッド

0クリップ

投稿2015/08/06 15:46

下記のコードを実行すると、何かキーを押した時にBの画像が表示されることを予想していたのですが、実際に試してみると何も変わりません。キーを押した時にimgが1になってはいるようですが、MainPanelクラスへ渡せていないようです。どうすれば改善できるでしょうか?

java

1import java.awt.*; 2import java.awt.event.*; 3import javax.swing.*; 4import javax.swing.event.*; 5import javax.imageio.*; 6 7//============================================================================== 8//メイン・クラス 9//============================================================================== 10public class Key_test2 11{ 12 //メイン・メソッド 13 public static void main(String[] args) 14 { 15 Key_test2 test = new Key_test2(); 16 } 17 public Key_test2() 18 { 19 //基礎フレームの設定。 20 JFrame frame = new JFrame(); 21 frame.setSize(500,500); 22 frame.setTitle("Key_test2"); 23 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 24 frame.add(new MainPanel()); 25 frame.setVisible(true); 26 27 //キーボード・リスナーの設定 28 //フレームにキーボード入力の受信を登録 29 frame.addKeyListener(new key()); 30 } 31} 32class MainPanel extends JPanel { 33 public MainPanel(){ 34 } 35 public void paintComponent(Graphics g) { 36 //画像を引数に入れる 37 Image A = getToolkit().getImage("A.png"); 38 Image B = getToolkit().getImage("B.png"); 39 switch(key.img){ 40 case 0: g.drawImage(A ,0,0, this); break; 41 case 1: g.drawImage(B ,0,0, this); break; 42 } 43 } 44} 45 46class key implements KeyListener 47{ 48 //画像番号(img0=A,img1=B) 49 public static int img; 50 51 //キーが押されたときに呼ばれるメソッド 52 public void keyPressed(KeyEvent event) 53 { 54 img = 1; 55 //System.out.println(img); 56 } 57 58 //キーが離されたときに呼ばれるメソッド 59 public void keyReleased(KeyEvent event) 60 { 61 //何もしない 62 } 63 //キーがタイプされたときに呼ばれるメソッド 64 public void keyTyped(KeyEvent event) 65 { 66 //何もしない 67 } 68}

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

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

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

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

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

guest

回答1

0

ベストアンサー

キーが押されたときに、MainPanelを再描画(repaint())するようにしてください。
値が渡せていないわけではありません。

投稿2015/08/06 16:05

Stripe

総合スコア2183

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

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

OMDM1991

2015/08/06 16:16

ありがとうございます。無事動作しました。m(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問