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

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

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

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

解決済

エラーの解決方法がわからない

Alpa
Alpa

総合スコア0

Java

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

2回答

0評価

0クリップ

5136閲覧

投稿2017/08/05 12:11

編集2022/01/12 10:58

Javaの質問で以下のプログラムをコマンドプロントでコンパイルすると
コンパイルは通るのですが実行してテンキーじゃない1や2や3を押した時に
以下のエラーが出ます

どうしたらいいのでしょうか?
回答お願いします

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at MyFrame.processKeyEvent(MyFrame.java:36)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Window.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

JAVA

import javax\.swing\.JFrame; import javax\.swing\.JLabel; import java\.awt\.Color; import java\.awt\.Font; import java\.awt\.Image; import javax\.swing\.JPanel; import java\.io\.File; import java\.awt\.image\.BufferedImage; import javax\.imageio\.ImageIO; import javax\.swing\.ImageIcon; public class MyFrame extends JFrame { JLabel jlMsg; public MyFrame\(\)throws java\.io\.IOException//コンストラクタ化 { setBounds\(20,40,940,540\);//フレームサイズ変更 setDefaultCloseOperation\(EXIT_ON_CLOSE\);//×ボタン有効化 add\(createBasePanel\(\)\);//親パネル作成しフレームに貼り付け setVisible\(true\);//フレームを表示状態へ enableEvents\(java\.awt\.AWTEvent\.KEY_EVENT_MASK\);//キー入力有効化 } protected void processKeyEvent\(java\.awt\.event\.KeyEvent e\) { if\(e\.getID\(\)==java\.awt\.event\.KeyEvent\.KEY_PRESSED\){ System\.out\.println\("キー"\+e\.getKeyCode\(\)\+"が押されました"\); if\(e\.getKeyCode\(\)==java\.awt\.event\.KeyEvent\.VK_1\){ jlMsg\.setText\("魔王と戦い勝利しました"\); } if\(e\.getKeyCode\(\)==java\.awt\.event\.KeyEvent\.VK_2\){ jlMsg\.setText\("修行して強くなった"\); } if\(e\.getKeyCode\(\)==java\.awt\.event\.KeyEvent\.VK_3\){ jlMsg\.setText\("宿屋に泊まった"\); } } } //基盤パネルを作成 JPanel createBasePanel\(\)throws java\.io\.IOException { JPanel jp=createPanel\(Color\.BLACK\); //フォントを作成 Font f=new Font\(Font\.MONOSPACED,Font\.BOLD,40\); //レイアウト1行目 //パネルを作成し親パネルに貼り付け JPanel jpChild=createPanel\(Color\.BLUE\);//小パネル作成 jp\.add\(jpChild\);//親パネルにパネル追加 //ラベルを作成し子パネルに貼り付け JLabel jlChild=new JLabel\(player\.getStatusString\(\)\);//文字列作成 jlChild\.setFont\(f\);//文字サイズ変更 jlChild\.setForeground\(Color\.WHITE\);//文字色設定 jpChild\.add\(jlChild\);//子パネルに文字追加 //レイアウト2行目 //可変表示パネル JPanel jpChild2=createPanel\(Color\.CYAN\);//小パネル作成 jp\.add\(jpChild2\);//親パネルにパネル追加 //選択肢をパネルに貼り付け JLabel jlMain=new JLabel\( "<html>1\.すぐに魔王を倒しに行く<br>2\.修行する<br>3\.宿屋に泊まる" \); jlMain\.setFont\(f\); jpChild2\.add\(jlMain\); //モンスターをパネルに貼り付け File file1=new File\("\[Monster\]Bat_pochi\.jpg"\);//コウモリのファイル読み込み BufferedImage ba1=ImageIO\.read\(file1\);//コウモリ画像全体を読み込む File file2=new File\("\[Monster\]Goblin1_tapis\.jpg"\);//ゴブリンのファイル読み込み BufferedImage ba2=ImageIO\.read\(file2\);//ゴブリン画像全体を読み込む File file3=new File\("\[Monster\]Slime1_pochi\.jpg"\);//スライムのファイル読み込み BufferedImage ba3=ImageIO\.read\(file3\);//スライム画像全体を読み込む int cw=32;//セルサイズ/幅 int ch=48;//セルサイズ・高さ int sw=32\*4;//表示サイズ・幅 int sh=48\*4;//表示サイズ・高さ /\* suraimu\(jpChild2,ba3,0,0,cw,ch,sw,sh\);//スライム表示の関数を呼び出して村人の正面の画像を表示する koomori\(jpChild2,ba1,0,0,cw,ch,sw,sh\);//コウモリ表示の関数を呼び出して村人の正面の画像を表示する goburinn\(jpChild2,ba2,0,0,cw,ch,sw,sh\);//ゴブリン表示の関数を呼び出して村人の正面の画像を表示する \*/ //レイアウト3行目 //ラベルを作成し親パネルに貼り付け JLabel jlMsg=new JLabel\("魔王が世界を滅ぼそうとしています"\);//文字入力 jlMsg\.setFont\(f\);//文字サイズ変更 jlMsg\.setForeground\(new Color\(255,128,0\)\);//文字色設定 jp\.add\(jlMsg\);//ウィンドウに文字追加 System\.out\.println\("プログラムを全て読み込みましました!"\);//読み込み確認 return\(jp\); } //ここより以降は関数作成コード //パネルを作成し背景色を設定する関数 JPanel createPanel\(Color c\) { JPanel jp=new JPanel\(\); jp\.setBackground\(c\); return\(jp\); } /\* @param jpChild2 表示対象パネル @param ba0,1,2,3 画像全体 @param x 表示する座標X @param y 表示する座標Y @param cw セルの大きさ・幅 @param ch セルの大きさ・高さ @param sw 表示サイズ・幅 @param sh 表示サイズ・高さ \*/ void koomori\(JPanel jpChild2,BufferedImage ba1,int x,int y,int cw,int ch,int sw,int sh\)//コウモリ表示関数作成 { BufferedImage bs1=ba1\.getSubimage\(cw\*x,ch\*y,cw,ch\); //画像サイズ192\*192に変更した画像の左端に切り取り Image im=bs1\.getScaledInstance\(sw,sh,Image\.SCALE_DEFAULT\); ImageIcon ii=new ImageIcon\(im\);//JLabelように型変換 JLabel jlImage=new JLabel\(ii\);//画像部品を作成 jlImage\.setSize\(sw,sh\);//画像部品の座標とサイズ変更 jpChild2\.add\(jlImage\);//親パネルに画像貼り付け } void goburinn\(JPanel jpChild2,BufferedImage ba2,int x,int y,int cw,int ch,int sw,int sh\)//ゴブリン表示関数作成 { BufferedImage bs2=ba2\.getSubimage\(cw\*x,ch\*y,cw,ch\); //画像サイズ192\*192に変更した画像の左端に切り取り Image im=bs2\.getScaledInstance\(sw,sh,Image\.SCALE_DEFAULT\); ImageIcon ii=new ImageIcon\(im\);//JLabelように型変換 JLabel jlImage=new JLabel\(ii\);//画像部品を作成 jlImage\.setSize\(sw,sh\);//画像部品の座標とサイズ変更 jpChild2\.add\(jlImage\);//親パネルに画像貼り付け } void suraimu\(JPanel jpChild2,BufferedImage ba3,int x,int y,int cw,int ch,int sw,int sh\)//スライム表示関数作成 { BufferedImage bs3=ba3\.getSubimage\(cw\*x,ch\*y,cw,ch\); //画像サイズ192\*192に変更した画像の左端に切り取り Image im=bs3\.getScaledInstance\(sw,sh,Image\.SCALE_DEFAULT\); ImageIcon ii=new ImageIcon\(im\);//JLabelように型変換 JLabel jlImage=new JLabel\(ii\);//画像部品を作成 jlImage\.setSize\(sw,sh\);//画像部品の座標とサイズ変更 jpChild2\.add\(jlImage\);//親パネルに画像貼り付け } } 別プログラム public class part18 { public static void main\(String\[\] args\)throws java\.io\.IOException { System\.out\.println\("正常に起動しました!"\);//起動確認 new MyFrame\(\); } }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Java

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