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

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

0

コマンドボタンを押してラベルの文字を変える

java超初心者です。
右も左も分からない状態で勉強をしております。
ボタンを押すことでラベルの文字を変えるプログラム
を作りたいのですが上手くいきません。
サンプルコードを改変してみたのですが、どこをどう
直せば良いか分かりません。
エラーは

    lbl1.setText("Hello World!");

の部分に出ます。
どうかご教示下さい。

import java.io.*;
import java.util.*;
import java.text.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.BorderLayout; 
import javax.swing.*; 
import java.util.Random;

public class gamen2 extends Frame{
        //画像を変数に入れる
        Image pi=getToolkit().getImage("sample.jpg");
    Label lbl1;
    Button btn1;
        public static void main(String[] args) {
              //フレームの作成
        new gamen2();

        }

    gamen2(){

        Frame f = new Frame();
        btn1=new Button("ボタンA");
    btn1.addActionListener(new myListener());
        //btn1.addActionListener(); 

        f.add( BorderLayout.NORTH,btn1);


    lbl1=new Label("test");

        f.add( BorderLayout.WEST,lbl1);
              f.setSize(1200, 800);
              f.setVisible(true);

        f.addWindowListener(new Ada());
}

        public void paint(Graphics g)
        {

               //変数piの画像を座標(50,35)に表示
                //g.drawImage(pi,50,35,this);
        g.drawImage(pi, 100, 100, 500, 300, this);

    }

}

class myListener implements ActionListener{

  public void actionPerformed(ActionEvent e){
    lbl1.setText("Hello World!");
  }
}


class Ada extends WindowAdapter
{
    public void windowClosing(WindowEvent e){
//閉じるボタンが押されたときの処理
       System.exit(0);
    }
}


3

回答

93584

閲覧

3件の回答

評価

0

import java.io.*;
import java.util.*;
import java.text.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.BorderLayout; 
import javax.swing.*; 
import java.util.Random;

/**
 * http://sasuke.main.jp/java.html 
 * このHP、サンプルのインデントがおかしい・・・
 */
public class Gamen2 extends Frame{
  //画像を変数に入れる
  Image pi=getToolkit().getImage("1.jpg");
  Label lbl1;
  Button btn1;

  public static void main(String[] args) {
    //フレームの作成
    new Gamen2();
  }

  Gamen2() {

    btn1=new Button("ボタンA");

    // this.new が変な書き方ですが Java ではこうします;;
    btn1.addActionListener(this.new MyListener());
    
    // 上記の別のやり方(というか普通の書き方)
    /*
    btn1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e){
        lbl1.setText("Hello World!");
      }
    });
    */

    this.add( BorderLayout.NORTH,btn1);

    lbl1=new Label("test");

    this.add( BorderLayout.SOUTH,lbl1);

    this.setSize(400, 300);
    this.setVisible(true);

    this.addWindowListener(new Ada());
  }

  
  public void paint(Graphics g) {
    //変数piの画像を座標(50,35)に表示
    //g.drawImage(pi,50,35,this);
    g.drawImage(pi, 100, 100, 500, 300, this);
  }

  class MyListener implements ActionListener{

    public void actionPerformed(ActionEvent e){
      lbl1.setText("Hello World!");
    }
  }

}

class Ada extends WindowAdapter {
  public void windowClosing(WindowEvent e){
    //閉じるボタンが押されたときの処理
    System.exit(0);
  }
}


サンプルページの要所要所をコピペ貼付けして
動かないから直せってのはいけないですね。
インデント6?ちょっと変なサンプルだけど
サンプルHPで勉強するより本買って基礎を勉強
したらいいんじゃないかな。プログラム自体初
めてなんでしょ。
"Ada" とか サンプルにしても適当すぎる・・・

評価

0

ご教示ありがとうございます。

フレームを使ったままでは上手くいきませんでしたが
フレームを使わない場合は教えて頂いた通常のやり方
で上手くいきました。

画面を自分で作るのは初めてです。

色々と勉強していきたいと思います。

評価

0

あとは「超初心者」などと書かない方が良いな。

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