学校の課題で電卓を作っています。
dentaku.BOはabstractではなく、java.awtevent.ActionListener内の abstractメソッド actionPerformed(java.awt.event.ActionEvent) をオーバーライドしません

というエラーと、


互換性のない型
検出値:java.lang.String
期待値:boolean
if(fugo="+")
^


と、


演算子 - はjava.lang.String,java.lang.String に適応出来ません

str= num1-num2;
^

この3種類のエラーはざくざく出てくるのですが、具体的にどう修正したらいいのか分かりません。どなたか教えてくださいm(_ _)m
ソース載せようとしたら文字数オーバーしてしまいましたorz

このQ&Aに関連する最新のQ&A

A 回答 (6件)

#1です。


> kekka= num1+num2;
> Integer.toString(kekka); //kekkaをStringに変換
> str = kekka;
> 検出値:int 期待値:~String で出てきてしまって

#1の補足について回答しようと思いましたが
#3の方が回答していましたね。
str = kekka;
ここで指定しているkekkaはint型だからString型にはいれられません。
えい、おまけだぁ。
str = Integer.toString(kekka); //kekkaをStringに変換
    • good
    • 0

専門家に突っ込むのもちょっとアレかと思いつつ:


C/C++ ならともかく, Java では「条件式が必要なところで比較と間違えて代入を書く」とほとんどの場合にエラーになります. だから, あんまり
1==a のように書く
必要性はありません. ただし間違っていてしかもエラーにならないときは盛大なバグのもとになるのでそれはそれで要注意です.
とはいえ, この比較って「不自然」だよなぁ.
む, 「演算子 - はjava.lang.String,java.lang.String に適応出来ません」ってメッセージも (本当なら) おそらく誤訳. 意味としては adopt じゃなくて apply なので, 「適応」ではなく「適用」のはずだ.
    • good
    • 0

> if(fugo="+")


の部分についてです。

他の方からのアドバイスで if(fugo.equals("+")) に修正されたようなので良いですが・・・。

if(fugo="+") というのは比較ではなく、「変数fugoに"+"を代入する」という代入演算子です。
2つのものが同じかどうか比較するための演算子は == です。

仮に変数aがint値だったとすると if(a==1) と記述しなければなりません。
些細な記述の違いですが、仕事でJavaのコーディングをしている人間でもたまに記述ミスをして、これがなかなか厄介なバグになることもあるので今後は注意して下さいね。

もし比較演算子を使うことがあれば、

if(1==a)

と書くのも1つの予防策になります。
[(1=a)と書き間違えても、数値に変数は代入できないのでコンパイルエラーが発生します。]
    • good
    • 0

> 修正前はvoid actionPerformed(ActionEvent e)ってなってたんですが、略(?)したのがいけなかったのか・・・?



パッケージ名を略してActionEventとだけ書くなら、前のほうに
import java.awt.event.ActionEvent;
とか
import java.awt.event.*;
と予め書いておく必要があります。
修正前は「ActionEventというクラスが見つからない」という意味のエラーが出ていませんでしたか?

> Integer.toString(kekka); //kekkaをStringに変換
> str = kekka;

上のコードでは、toString()の返り値(= String型への変換結果)を使わずに捨ててしまっています。返り値を捨てずに変数strに代入してください。
toString()を実行しても、kekkaという変数の型がStringに変わるわけではありません。
    • good
    • 0

> dentaku.BOはabstractではなく、java.awtevent.ActionListener内の abstractメソッド actionPerformed(java.awt.event.ActionEvent) をオーバーライドしません



dentaku.BOクラスの定義に implements ActionListener と書いてあるのだろうと思われます。
- もし必要がないのであれば、dentaku.BOクラスの定義から implements ActionListener を消してしまってください。
- ActionListenerをimplementsする必要があるのであれば、dentaku.BOクラスの中で、void actionPerformed(java.awt.event.ActionEvent)という型のメソッドを自分で定義しましょう。
    • good
    • 0
この回答へのお礼

エラーがなくなりました。丁寧な指示、ありがとうございます!
implements ActionListener は残したまま、void actionPerformed(java.awt.event.ActionEvent)を追加しました。修正前はvoid actionPerformed(ActionEvent e)ってなってたんですが、略(?)したのがいけなかったのか・・・?

お礼日時:2009/05/17 22:13

回答じゃなくてヒントのみ。


> 検出値:java.lang.String
> 期待値:boolean
> if(fugo="+")
『if()の中はboolean値を期待しているのに、String値がはいってるよ。』
fugoはString型でしょうか?
Stringの比較はequals()メソッドを使えばいいよ。

> str= num1-num2;
『演算子 - の結果はStringにいれられないよ。』
strはString型でしょうか?
strをnum1、num2と同じ型にするか、
結果をString型に変換してからstrにいれればいいよ。

この回答への補足

equalメソッドを使って、

if(fugo.equals("+")){
//fugoが+だった時num1とnum2を足す
kekka= num1+num2;
Integer.toString(kekka); //kekkaをStringに変換
str = kekka;}

こんな感じにしたらfugo=+の問題は解決しました。ありがとうございますm(_ _)m
ですが、その後も互換性のない型のエラーが
検出値:int 期待値:~String で出てきてしまって、toString()を使ってみたんですが、うまくいかず…。どの辺が間違っているのでしょうか? 

補足日時:2009/05/17 21:37
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qlang属性で何が変わるのか。

lang属性で何が変わるのか。

質問させてください。
HTMLタグのlang属性は、一体どういう効果があるのでしょうか。

例えば、<html lang="ja">から、<html lang="en">に変更すれば、ブラウザのエンコード(IEの「表示」-「エンコード」)が変更されるかと思ったのですが、変化なりませんでした。

ご存知な方、教えていただきたいです。

Aベストアンサー

仕様によると
HTML4.01
Language information specified via the lang attribute may be used by a user agent to control rendering in a variety of ways. Some situations where author-supplied language information may be helpful include:

 * Assisting search engines
 * Assisting speech synthesizers
 * Helping a user agent select glyph variants for high quality typography
 * Helping a user agent choose a set of quotation marks
 * Helping a user agent make decisions about hyphenation, ligatures, and spacing
 * Assisting spell checkers and grammar checkers

検索エンジンや、音声読み上げブラウザー、スペルチェッカー
なんかも利用しているみたい。

HTML5やXHTMLでは、さらに意味があるみたい(省略)

仕様によると
HTML4.01
Language information specified via the lang attribute may be used by a user agent to control rendering in a variety of ways. Some situations where author-supplied language information may be helpful include:

 * Assisting search engines
 * Assisting speech synthesizers
 * Helping a user agent select glyph variants for high quality typography
 * Helping a user agent choose a set of quotation marks
 * Helping a user agent make decisions about hyphe...続きを読む

Q演算子*はjava.lang.String.doubleに適用できませんと出たのですが・・・

タイトルの通りです。
コンパイルしようと思ったら上のようなエラーが出ました。
ちなみにエラーが出たのはこの計算式の部分です。
b=b*sin*(sin+a*cos)/(cos-a*sin)+b*cos;(a,b,sin,cosは変数です)
java超初心者なので何もわかりません。
手元に参考となるものもありません。
わかる方がいれば教えてください。
お願いします。

Aベストアンサー

情報が少なすぎて正確な原因はわかりかねますが、
とりあえずすべての変数の型を調べてみましょう。
どれかがString型になっていると思われます。
String型をdouble型に直せば解決します。

それでも動かないならソースの全文と**正確**なエラーメッセージを補足してください。
そうすれば原因がわかるかもしれません。

Qlang 英語と日本語など混ざる時は

言語を指定する際、英語と日本語が両方入っている場合は、どのようにしますか?
lang="en" lang="ja"
で大丈夫ですか?

Aベストアンサー

1つのタグにlang属性は1つしか書けませんし、lang属性で指定できる言語も1つです。

主となる言語を<html lang="ja">や、XHTMLなら<html xml:lang="ja">などと指定します。

部分的に英語などの他の言語になる部分で、<div lang="en">、<p lang="en">などと指定していきます。
lang指定は同じ言語を入れ子にする必要はありません。


<title>などに複数の言語を羅列するとタイトルが長くなりすぎることがあるので、どちらか1つにしておいた方がいいと思います。
それでも両方の言語を書きたいのであれば、最初に主となる言語、あとに続くのを補助的な言語にして、<html>のlang属性と統一すればいいと思います。

Qjava.lang.outofmemoryerror java heap space

java のクラスファイルをjarにして、実行する時、大きいなファイルを読むと、java.lang.outofmemoryerror java heap spaceのエラーが出できます。
どう解決すればいいですか。

Aベストアンサー

多分、JVM に設定したメモリサイズの上限値を超えてしまったのだと思われます。
Xms や Xmx オプションなどをつけて実行してみたらどうでしょう。

以下のサイトなどを参考にしてみて下さい。

参考URL:http://www.intra-mart.jp/download/doc/OutOfMemoryError.html

QLang-8について

Lang-8って無料ですか?

あとLang-8ってどういうサイトですか?
調べてみたのですがいまいちわからないです。
教えて下さいお願いします<m(__)m>

Aベストアンサー

無料です。有料会員制度もありますが。
英語で日記を書くと、英語ネイティプの人が添削してくれます。添削者は素人ですが。
かわりに日本語で書かれた日記をあなたが添削してあげます。
語学学習者が相互に助け合うサイトです。

Qjava.lang.ClassNotFoundException: com.mysql.jdbc.Driverと出てしまいます。

ご質問させてください。
まずは環境は、

・Windows Vista Home Premium
・j2sdk1.4.2_16
・mysql-connector-java-5.1.5
・Mysql 5.0
・Tomcat 5.5
・eclipse-SDK-3.1.2-win32

となっております。

次に、環境変数を
http://www.hellohiro.com/jdbcmysql.htm
http://www.hellohiro.com/appli.htm
を参考に、
CLASSPASS:.;%JAVA_HOME%\lib\tools.jar;
C:\mysql\mysql-connector-java-5.1.5\mysql-connector-java-5.1.5-bin.jar;
C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar;
C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\mysql-connector-java-5.1.5-bin.jar;.
JAVA_HOME:C:\j2sdk1.4.2_16
PATH:%JAVA_HOME%\bin
と設定しました。

そして以下のプログラムを実行すると
import java.sql.*;
public class test
{
public static void main(String args[])
{
try{
//接続の準備
String drv = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql:///cardb";
String usr = "root";
String pw = "Gob3=104";

//データベースへの接続
Class.forName(drv);
Connection cn = DriverManager.getConnection(url, usr, pw);

//問い合わせの準備
Statement st = cn.createStatement();
String qry = "SELECT * FROM car_table";

//問い合わせ
ResultSet rs = st.executeQuery(qry);

//データの取得
ResultSetMetaData rm = rs.getMetaData();
int cnum = rm.getColumnCount();

while(rs.next()){
for(int i=1; i<=cnum; i++){
System.out.print(rm.getColumnName(i) + ":"+ rs.getObject(i) + " ");
}
System.out.println("");
}

//接続のクローズ
rs.close();
st.close();
cn.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}

エラーが、

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at test.main(test.java:15)

とでてしまいます。

EclipsでMySQLを用いて、データベースにアクセスするにはどうしたらよいのでしょうか。
お知恵をお貸しください。

ご質問させてください。
まずは環境は、

・Windows Vista Home Premium
・j2sdk1.4.2_16
・mysql-connector-java-5.1.5
・Mysql 5.0
・Tomcat 5.5
・eclipse-SDK-3.1.2-win32

となっております。

次に、環境変数を
http://www.hellohiro.com/jdbcmysql.htm
http://www.hellohiro.com/appli.htm
を参考に、
CLASSPASS:.;%JAVA_HOME%\lib\tools.jar;
C:\mysql\mysql-connector-java-5.1.5\mysql-connector-java-5.1.5-bin.jar;
C:\Program Files\Apache Software Foundation\Tomcat 5.5\comm...続きを読む

Aベストアンサー

エラーの内容を拝見する限り、mysql-connector-java-5.1.5を認識していないように見受けられます。
Eclipseのビルドパスのライブラリへの取り込みは正しくおこなわれていれば、デバッグの際のエラーは出なくなると思いますのでご確認ください。

QHELMUT LANGのジーンズについて教えてください。

今日初めて、HELMUT LANGのジーンズを購入しました。
HELMUT LANGというブランドを初めて知ったのでネットで
調べてみたのです。

すると以下のオークションページにふと目が止まりました。
http://page7.auctions.yahoo.co.jp/jp/auction/g52666365

このページに載っている最下の画像では「PRODUCED IN 1998」や「CLASSIC DENIM」、「ITALIAN CUT」などが記載されていますが、
私が購入したジーンズの裏側を見てみると、上の縫い付けのみがあり、HELMUT LANGの記載だけで、上記の文言は記載されていません。

これはビンテージものかそうでないか、などのような違いでしょうか?
ジーンズ自体あまり詳しくないですが、店員に進められて買ったので
少し気になり質問させて頂きました。

分かる方、いらっしゃいましたら回答お願い致します。

Aベストアンサー

1997年頃からHelmut LangはHelmut Lang Jeansというラインを発表し、写真はその頃のジーンズだと思います。Lang Jeansは主にイタリア製でGTAだったか、Gのつく工場のラベルもついてるはずです。

 私は知りませんがコピー商品も存在するようです。
 また日本のメーカーがライセンス生産していた事もあります。

 なにがいいかどうかというのはその人に似合うかどうかしかないと思うので、特にそのブランドが気に入ってお買い求めになったのでないならば、それでもいいと思います。

Q「java.lang.NullPointerException」というエラー

アプレットを作っているのですが、コマンドプロンプトからappletviewerで実行すると、うまく動くのに、ブラウザでhtmlに貼って動かそうとすると
java.lang.NullPointerException
というエラーが出て、動いてくれません…。
エラーが出ている部分は、
File[] imagelist;
File image = new File("imagesyukusyo");//imagesyukusyoはディレクトリの名前。
imagelist = image.listFiles()
int yousosu;
yousosu = imagelist.length;//ここでエラーが出ている
という部分です。アプレットとhtmlファイルと同じディレクトリにimagesyukusyoフォルダがあって、そのフォルダの中に、いくつか画像ファイルが入っています。

よろしくお願いします。

Aベストアンサー

要はimageshukusho内の画像を変更してもアプレットを作り直さなくてもいい方法を模索しているのですよね。
appletタグの属性にパラメータを指定し、アプレットに渡すという行為も省きたいんですよね。
私だったら以下のようにするかもしれません。
phpなどによりimageshokusho内の画像の一覧を取得し、htmlに
appletタグの属性にパラメータとしてファイル数とファイルを
動的に書き足す。
アプレットはファイル数がわかるので、この数だけファイルをパラメータ
から取得する。
ローカル環境で学習中であるならばapache等のHTTPサーバとphpが必要となります。

Qsin'auld lang syne

sin'auld lang syne

は何語ですか
またどういう意味ですか

Aベストアンサー

スコットランド語

「古き昔から」since old long ago

sin', syne ともに since と同語源。英語でも古くは sin という形が見られることがあります。

参考URL:http://en.wiktionary.org/wiki/lang_syne

Q2^0, 2^(-1), 2^(-2), ..., 2^(-n)

指令行の引数に正の整数 n を指定すると, 2^0, 2^(-1), 2^(-2), ..., 2^(-n) を順に各行に出力していくプログラムで、 n が大きな値になっても,小数点以下100桁までほ正確に結果を出力するようにしたいのですが、どうしたらよいでしょか?

Aベストアンサー

BigDecimalを使っては。

参考URL:http://java.sun.com/j2se/1.4.2/docs/api/java/math/BigDecimal.html


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング