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

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

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

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

Q&A

解決済

2回答

5757閲覧

Exception in thread "main" java.lang.NullPointerException

sbmcna

総合スコア7

Java

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

0グッド

0クリップ

投稿2016/10/20 17:31

プログラミング初心者です。

javaのGUIを使ってじゃんけんのプログラムを書きたいです。
以下のエラーが出てしまって困っています。
解説お願いします。。。

Exception in thread "main" java.lang.NullPointerException at java.awt.Container.addImpl(Container.java:1093) at java.awt.Container.add(Container.java:417) at Janken.<init>(Janken.java:35) at Janken.main(Janken.java:13)

ソースコードは以下です。

java

1 2import java.awt.*; 3import java.awt.event.*; 4import javax.swing.*; 5import java.util.Random; 6 7public class Janken extends JFrame implements ActionListener{ 8 9 JLabel lbl; 10 JButton guu,tyo,paa; 11 int ran; 12 13 public static void main(String[] args) { 14 Janken frm = new Janken(); 15 frm.setSize(200,140); 16 frm.setTitle("じゃんけん"); 17 frm.setVisible(true); 18 frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 19 20 Random rnd = new Random(); 21 int ran = rnd.nextInt(3); 22 23 } 24 25 26 public Janken() { 27 Container cnt = getContentPane(); 28 JPanel pnl = new JPanel(); 29 guu = new JButton("ぐう"); 30 tyo = new JButton("ちょき"); 31 paa = new JButton("ぱぁ"); 32 pnl.add(guu); 33 pnl.add(tyo); 34 pnl.add(paa); 35 cnt.add(pnl,BorderLayout.NORTH); 36 cnt.add(lbl); 37 guu.addActionListener(this); 38 tyo.addActionListener(this); 39 paa.addActionListener(this); 40 41 } 42 public void actionPerformed(ActionEvent e) { 43 44 45 46 if (e.getSource() == guu) { 47 if(ran == 0){ 48 lbl.setText("あいこです!"); 49 } 50 else if(ran == 1){ 51 lbl.setText("あなたの勝ちです(^^)/"); 52 } 53 else{ 54 lbl.setText("あなたの負けです!"); 55 } 56 } 57 if (e.getSource() == tyo) { 58 if(ran == 0){ 59 lbl.setText("あなたの負けです!"); 60 } 61 else if(ran == 1){ 62 lbl.setText("あいこです!"); 63 } 64 else{ 65 lbl.setText("あなたの勝ちです(^^)/"); 66 } 67 } 68 if (e.getSource() == paa) { 69 if(ran == 0){ 70 lbl.setText("あなたの勝ちです(^^)/"); 71 } 72 else if(ran == 1){ 73 lbl.setText("あなたの負けです!"); 74 } 75 else{ 76 lbl. 77 setText("あいこです!"); 78 } 79 } 80} 81} 82 83

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

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

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

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

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

guest

回答2

0

ベストアンサー

lblのオブジェクトが生成されて居ないのが原因です。
lblをインスタンス化して、コンストラクターを呼び出してください。

java

1lbl=new JLabel();

どこに入れるべきかは一目瞭然です。

投稿2016/10/20 22:33

TodaNext

総合スコア24

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

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

sbmcna

2016/10/21 02:41

本当に助かりました! ありがとうございました!
guest

0

エラーメッセージを読みましょう。
Janken.javaの35行目でヌル参照が発生しています。そこにはなにが書かれていますか?

投稿2016/10/20 17:51

yona

総合スコア18155

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

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

sbmcna

2016/10/21 02:43

オブジェクトの生成されていないlblがありました。。。 助かりました、本当にありがとうございました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問