アプリ版:「スタンプのみでお礼する」機能のリリースについて

javaでGUI作成、すなわちSwingを行っている者です。

教えて!gooでたくさんの質問をし、たくさんの回答をしてくださった皆様のおかげで、game制作に取りかかることにしました!
本当にありがとうございました。

本題に入りますが、私の作ってるgameの内容は、単純で自分の体力を1000とし、相手の体力を100にして何体倒せるかというサバイバルゲームです。
そこで困ってしまったのが自分と相手の数値をどう出力するかということ、そしてJLabelで自分と相手の数値を出力し、型変換してint型にすればいいんだと思いつきましたが、これが失敗。JLabelをString型だと思っていた私は、String➡intに変換しようとしたんですが、JLabelはString型ではないといわれてしまいました。

JLabelを型変換してint型にするにはどうすればいいでしょうか?
又SwingでJLabel以外に数値を出力する方法はあるよ、という意見がありましたらご指摘お願いします。
こんなの基本だよ!と思われるかもしれませんが、どのサイト教材を調べても分からなかったので質問させていただきました。よろしくお願いします。

A 回答 (1件)

こんにちは。



もうちょっと基本を学んだほうが良いです。
JLabelというのがそのまま型です。String型はStringです。
JLabel label = new JLabel();と出来るものはそれが型だと思ってもらって良いです。

http://docs.oracle.com/javase/jp/6/api/
JLabelより値を取得したいのであればgetText()を利用します。
http://docs.oracle.com/javase/jp/6/api/javax/swi …
ここを見るとString型が返ってくるのがわかります。
それをInteger.parseInt()でパースすればint型にはなります。

ただ、通常は逆の持ち方が一般的だと思います。

int型で数値を持っておいて、表示する際にそのint型をJLabelに表示してあげるイメージです。

label.setText ( String.valueOf(int体力) );
そうしないといちいち計算するときにJLabelから値を取得してパースする必要が出てきます。
計算は沢山利用するかもしれないけど表示する場所は1箇所と考えるとこう持ったほうが良いです。

せっかくJavaですので各データの持ち方も自分クラスや敵クラスといったクラスを作ってあげてそのクラス内にいろいろなパラメータを持つように設計すると良いです。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!