個人財務 Javaでインナークラスを作成する方法 - ダミー

Javaでインナークラスを作成する方法 - ダミー

ビデオ: 業務モデリングとシステム開発(7) ~クラス図とアクティビティ図~ 2024

ビデオ: 業務モデリングとシステム開発(7) ~クラス図とアクティビティ図~ 2024
Anonim

ここに大きなニュースがあります! Javaでは、別のクラスの内部でクラスを定義することができます。ここで、 GameFrame クラスには、 MyActionListener という名前のクラスが含まれています。

import java。 awt。 FlowLayout;

import java。 awt。イベント。 ActionEvent;

import java。 awt。イベント。 ActionListener;

import java。 util。ランダム;

import javax。スイング。 JButton;

<! - 1 - >

import javax。スイング。 JFrame;

import javax。スイング。 JLabel;

import javax。スイング。 JTextField;

クラスGameFrameはJFrameを拡張します。{ private static final long serialVersionUID = 1L;

int randomNumber = new Random()。 nextInt(10)+1;

int numGuesses = 0;

JTextField textField = new JTextField(5);

<! - 2 - >

JButtonボタン=新しいJButton( "推測");

JLabelラベル=新しいJLabel(numGuesses + "推測");

public GameFrame(){

setDefaultCloseOperation(JFrame。EXIT_ON_CLOSE);

setLayout(new FlowLayout());

add(textField);

add(ボタン);

add(ラベル);

ボタンを押します。 addActionListener(

new MyActionListener() );

- >

pack();

setVisible(true);

String textFieldText =

textField

クラスMyActionListenerは、ActionListenerを実装します。 getText();

if(Integer。parseInt(textFieldText)== randomNumber){

ボタン。 setEnabled(false);

textField。 setText(textField。getText()+ "はい!"); textField。 setEnabled(false); } else {

textField。 setText( "");

textField。 requestFocus();

}

numGuesses ++;

文字列guessWord =(numGuesses == 1)? "guess": "推測";

ラベル。 setText(numGuesses + guessWord);

}

}

}

上記の

MyActionListener

クラスは、

内部クラスです。

内部クラスは他のクラスとよく似ています。しかし、内部クラスのコード内では、囲むクラスのフィールドを参照することができます。たとえば、

MyActionListener 内のいくつかのステートメントは、 textField という名前を使用し、 textField は、 GameFrame クラスで定義されています。 上記のコードは、 MyActionListener クラスを1回だけ使用することに注意してください。 (唯一の使用は button。addActionListener ボタンの呼び出しです。)だから、本当に一度だけ使用されるものの名​​前が必要ですか?いいえ、あなたはしません。

ボタンの呼び出しの内側のクラスの定義全体を置き換えることができます。addActionListener これを行うと、匿名の内部クラスが 存在します。 これはどのように動作するかです。 import java。 awt。 FlowLayout; import java。 awt。イベント。 ActionEvent; import java。 awt。イベント。 ActionListener; import java。 util。ランダム; import javax。スイング。 JButton;

import javax。スイング。 JFrame;

import javax。スイング。 JLabel;

import javax。スイング。 JTextField;

クラスGameFrameはJFrameを拡張します。{ private static final long serialVersionUID = 1L;

int randomNumber = new Random()。 nextInt(10)+1;

int numGuesses = 0;

JTextField textField = new JTextField(5);

JButtonボタン=新しいJButton( "推測");

JLabelラベル=新しいJLabel(numGuesses + "推測");

public GameFrame(){

setDefaultCloseOperation(JFrame。EXIT_ON_CLOSE);

setLayout(new FlowLayout());

add(textField);

add(ボタン);

add(ラベル);

ボタンを押します。 addActionListener(

新しいActionListener(){ @Override

public void actionPerformed(ActionEvent e){文字列textFieldText =テキストフィールドgetText();

if(Integer.parseInt(textFieldText)= = false);

ボタンをクリックします。setEnabled(false);

文字列guessWord =(numGuesses == 1)? "guesses": "推測"; setText(numGuesses + guessWord);

} }

);

pack();

setVisible(true);

}

}

内部クラスは、

actionPerformed

メソッドなどのイベントハンドラのようなものに適しています。

匿名の

内部クラスの最も難しいことは、かっこ、中括弧、および字下げを追跡していることです。いくつかの謙虚な助言:内部クラスなしでコードを書くことから始めます。後で、通常のJavaクラスで飽きると、通常のクラスのいくつかを内部クラスに変更して試してください。

Javaでインナークラスを作成する方法 - ダミー

エディタの選択

現在の日付のワークブックを作成するExcelマクロ - ダミー

現在の日付のワークブックを作成するExcelマクロ - ダミー

仕事は重要です。これで、Excelマクロを使ってマクロを実行できます。この単純なマクロは、今日の日付が名前の一部である新しいファイルにブックを保存します。マクロの仕組みこのマクロの秘訣は、新しいファイル名をまとめて...

ブックが存在するかどうかを判断するExcelマクロ - ダミー

ブックが存在するかどうかを判断するExcelマクロ - ダミー

このExcelマクロを使用すると、ファイルが存在するかどうかを評価するためのファイルパス。たとえば、PCのどこかでファイルを操作するプロセスがあるとします。たとえば、既存のブックを開いて日単位でデータを追加する必要が生じる場合があります。この場合、あなたは...

財務モデリングのためのExcelへの代替案とサプリメントとなぜExcelを使うべきか

財務モデリングのためのExcelへの代替案とサプリメントとなぜExcelを使うべきか

は、多くの金融モデラーの選択です。 Excelは、Excelで実際に何かを行うことができるため、「ソフトウェアのスイス軍ナイフ」または「次善ソリューション」と呼ばれることがよくありますが、常にそのツールにとって最適なツールではありません。たとえば、Excelで手紙を書くことはできますが、Wordははるかに優れています...

エディタの選択

自然の写真撮影のための焦点距離 - ダミー

自然の写真撮影のための焦点距離 - ダミー

あなたが1枚の写真ですべての写真を撮ることができれば、焦点距離。まあ、実際には、足のズームと呼ばれる小さなものを使うことができます。これは、被写体に近づいたり遠ざかったりするときです。しかし、足をズームしても、あなたはあなたのエフェクトを複製するのが難しくなります。

高ダイナミックレンジデジタル写真用語 - ダミー

高ダイナミックレンジデジタル写真用語 - ダミー

高ダイナミックレンジ(HDR)デジタル写真は、これは時にはかなり混乱する可能性があります。ここでは、かっこを乗り越えるのに役立つ用語の便利なリストです:ブラケット:ブラケットセットで1つの写真。 は、動詞としても使うことができます。

人物を逆光にする方法 - ダミー

人物を逆光にする方法 - ダミー

バックライトはリム照明とも呼ばれ、またはあなたの肖像画の主題のためのハローのような効果。バックライトを使用すると、被写体の形を強調する光の枠を作成できます。被写体を逆光にする方法は次のとおりです。

エディタの選択

DreamweaverのCSSプロパティパネルの背景パネルオプション - DreamweaverのCSSデザイナパネルの背景パネルを使用するダミー

DreamweaverのCSSプロパティパネルの背景パネルオプション - DreamweaverのCSSデザイナパネルの背景パネルを使用するダミー

スタイルの背景色や画像を指定したり、背景がページにどのように表示されるかを制御したりすることができます。 DreamweaverのCSSデザイナパネルの 、 、...

Dreamweaverでリモートサーバー接続を作成する - ダミー

Dreamweaverでリモートサーバー接続を作成する - ダミー

Dreamweaverサイトでは、インターネット上のサイトのリモートロケーションを定義することもあります。

Adob​​e CS5 DreamweaverのcSSレイアウトの変更 - ダミー

Adob​​e CS5 DreamweaverのcSSレイアウトの変更 - ダミー

Abode Creative Suite 5(Adobe CS5)Dreamweaverでは、カスケードスタイルシートのページレイアウトを変更します。 CSSレイアウトはスタイルシートのルールによって完全に制御されるため、CSSスタイルパネルとプロパティインスペクタからページのルックアンドフィールを直接変更できます。