プロが教えるわが家の防犯対策術!

btn2.setEnabled(false);
btn3.setEnabled(false);

btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

int t0 = 0;

if (txt1.getText().length() == 4 ){
try{

String drv = "org.postgresql.Driver";
String url = "jdbc:postgresql:postgres";
String usr = "postgres";

Class.forName(drv);
Connection cn = DriverManager.getConnection(url, usr);

Statement st = cn.createStatement();
String qry1 = "SELECT * FROM getuji WHERE 年度 = '1984';";
ResultSet rs = st.executeQuery ( qry1 );

while(rs.next()){
t0 = rs.getInt("年度");
}
st.close();
cn.close();
}
catch(Exception f){f.printStackTrace();}
}
else{
btn3.setEnabled(true);
}

if (t0 != 0 ){
btn2.setEnabled(true);
}
else{
btn3.setEnabled(true);
}
}
});

btn1を押すとDBへ問合せ、データが有る場合はbtn2が使えるようになり、データがない場合はbtn3が使えるようになる、という風にしたいのですが、コンパイル時に

intは間接参照できません。
if (t0 != 0 ){

とエラーた出てしまいます。何がいけないのでしょうか?
以前、聞いたやり方でやったのですがうまくいきませんでした。

http://okwave.jp/qa4452155.html

同じ質問をするのは申し訳なく思うのですが、よろしくお願いします。

A 回答 (3件)

いえいえ、rsはint型ではないのでメソッドを呼び出してもかまいません。

そうではなく、 t0.hogehoge() のような箇所です。

が、恐らく、t0ではないint型の変数でエラーが出ているのではないでしょうか? つまり、ここに貼付けて頂いた部分ではないところでエラーが出ているのではないかと予想します。

エラーメッセージに行番号は出ていませんか? その辺りを重点的に探してみて下さい。

この回答への補足

お返事ありがとうございます。
エラーの桁表示があった訳ではないのですが、

int t0 = 0;

の部分を削除してコンパイルしてみるとエラーが起きないのでやはりここが問題なのだと思います・・・
if(....)
の中で定義した変数はその外へは持って出れないのでしょうか?

補足日時:2008/12/10 00:31
    • good
    • 0

int n;


n.hogehoge();

のような箇所です。int型の変数を利用してる部分を探してみて下さい。

int cannot be dereferenced

は、int型にメソッドはありませんのでこういうことはできません、と言うエラーです。

この回答への補足

int t0 = 0;
t0 = rs.getInt("年度"); 

の部分でしょうか・・・・
t0 = rs.getInt("年度"); の中でrs.getIntという文を使っているのがまずいのでしょうか?

補足日時:2008/12/08 22:24
    • good
    • 0

このエラーは日本語訳がおかしくて、英語では「int cannot be dereferenced」です。



int型の変数に対してドットによる呼び出しをしてる箇所があるはずです。int型の変数を全て見直して下さい。

この回答への補足

お返事ありがとうございます。

>int型の変数に対してドットによる呼び出しをしてる箇所があるはずです。

ドットによる呼び出しとはどうのような形なのでしょうか。。。簡単なサンプルを載せてもらうとありがたいのですが。すいません。

int型ではなくString型でやってみても同じエラーが起きてしまったのですが、型を変えるだけではエラーをなくすことはできないでしょうか?

補足日時:2008/12/08 17:27
    • good
    • 0

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

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