【初心者】Java質問・相談スレッド68【大歓迎】
>>947 ここはこうすべきだろう
interface x<T>
<T> T do();
}
とか
interface x<T extends Number>
T do(T t);
}
class X2 implements<Double> {
Douoble sinc(Double value){
double a = value.doubleValue();
return new Double(Math.sin(a) / a);
}
}
>>950 パラメタ化が静的か動的かの違い。
Genericsでは静的なものしか無理。
>>947 リターン値をオブジェクトにしとくと色んな型が返せて便利じゃないか。
Vector(テンプレート無しね)にしとくとさらにOK。
実話です。
あいかわらずクズばっかりのスレですね^^
class A<T extends MyClass> {
private List<A> list;
public A(){
this.list = new ArrayList<T>();
}
public void add(T t){
list.add(t);
}
}
質問です。
識者様回答をお願いします。
EventHandler1 h1 = new EventHandler1();
Button button1 = new Button();
button1.addActionListener(h1)
EventHandler2 h2 = new EventHandler2();
Button button2 = new Button();
button2.addActionListener(h2)
とした時、EventHandler1クラスのactionPerformedメソッドから
button2に登録したh2をremoveActionListener()で削除したい場合、
どのようにするのが一番スマートでしょうか?
イベント発生時に他のイベントリスナを削除するためには、
イベントソースとリスナが両方ともクラス変数でなければダメなんでしょうか?
回答、お待ちしています。
すいません質問です
オラクルJDBCドライバを使ってオラクルに
アクセスするツールをSWINGで作りました。
コマンドラインから実行するとうまく動くのですが
jarに固めてダブルクリックで動かそうとすると
JDBCドライバのロードでぬるぽエラーがでます。
jarでダブルクリックで動かしたい場合、JDBCドライバの置き場所が決まってたりするのでしょうか?
MANIFEST.MFに書いておかないとダメ
>>959 レスありがとうございます
JDBCドライバも書くってことですか?
メインクラスはちゃんと書いてあります
int index = 500;
double ary = new double[index];
double sum = 0;
//aryにデータをいれる作業を行う
for(int i=0;i<index;i++)
{
sum = sum + ary[i];
}
System.out.println("sum = "+sum);
という計算を行うとNaNという結果が出力されるのですが、どうしたらいいのでしょうか?
ちなみに、aryの中には0か極小さな数値が保存されています。
>>980 そりゃmain()の場所を示すための記述ね。
jar内に入れたjar(...でいいんだよね?) にクラスパスを通すために、
クラスパスを通したいjarを書いておかないといけないんだよ。
実行時にjar内のどこにドライバがあるのかわからんから。
jar内に入れず外部に置いた場合でも、コマンドラインから通しておかないとダメでしょ。
それと同じ。
(注意)
このスレで質問をしても回答が得られるのは2割程度です。
どうしても回答が欲しい場合は、新たにその質問のスレッドを立てましょう。
>>963 単発質問スレは回答どころか叩かれて終わりの可能性が高い。
回答してもらえないのは、下記のどれかに該当する場合が多い。
・質問の内容そのものが不十分。問題点をちゃんと伝えられていない。
・試せばすぐわかることをわざわざ質問する
・ぐぐればすぐわかることをわざわざ質問する
>>962 丁寧にありがとでした
試してみたす ペコリ
jar内のjarにクラスパスって通せる?
やってみてだめだったんだが、やり方教えてくれー。
967 :
デフォルトの名無しさん:2005/07/21(木) 14:11:39
jComboBox.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()");
}
});
jComboBox.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent e) {
System.out.println("itemStateChanged()");
}
});
コンボボックスに上のようなイベントを追加してアイテムを新たに選択するとitemStateChangedの方だけ2度同じものが実行されてしまういます1度にしたいのですが、どうしていいかわかりません
みなさんはどのようにされていますか?
windows2000 + java 1.5.0.04
展開して格納しろ
>>961 ary のどっかに NaN が入ってるとか?
NaN + 0d の結果は NaN になるので。
>>966 MANIFEST.MF に
Main-Class: org.hoge.Main
とか書いてるだろ? そんな感じで
Class-Path: . lib/commons-logging.jar lib/commons-lang-2.0.jar 〜
みたいにjar内の相対pathで書いておけばおk
>>969 もしくはaryに正と負の無限大が入ってて、
足したらNaNになったとか。
972 :
デフォルトの名無しさん:2005/07/21(木) 15:20:58
javaでコンパイルされるために、
(side1)^2 = m^2 - n^2;
(side2)^2 = 2mn
Hypotenuse = m^2 + n^2;
はどのように書けばいいのでしょうか?
973 :
966:2005/07/21(木) 15:40:51
>>968 いや
>>962の記述を見て展開しなくても良くなったんだっけ?
と思ってしまったわけですよ。でやってみてだめだったと。
>>970 それで試してるんですけどねぇ・・・・。
>>972 mとnについて求めりゃいいだろ
Java関係なくて、中学生の数学の領域だ
>>972 Javaには累乗やってくれる演算子が無いから、
m^2 は m * m か Math.pow(m, 2) で書き直せば?
ってそーゆー事じゃなくて?
すいません、Javaにおける動画の扱いについて教えてください。
Java Media Framework (JMF)というのがあるようですが、これを使えば、動画から
1コマずつを静止画像として取り出すことは可能なのでしょうか?動画のフォーマット
はquick timeとaviファイルです。aviのほうは中身が実際にどういうフォーマットなの
かわからないので、API任せにしたいのです。
すいませんがお願いします。
>>923-925 コネクションプールの実装ってどこがやってるか知ってるか?
もうちょっと言うと、元の質問はサーブレットコンテナ変えたら動きが変わったという話だがちゃんと読んでるか?
質問させて下さい。
java.awt.Image として得られたjpgなどの画像ファイルのイメージがあります。
Image img = Toolkit.getDefaultToolkit().getImage("ファイル名");
というような感じで取得するとします。ComponentのcreateImageでもいいです。
ここで、このimgインスタンスをいじくり回して、
「元の画像ファイルのサイズ(width, height)」を「画像の表示を行わない」で
取得したいのですが、方法をご存じの方がいらっしゃいましたら教えて下さい。
java.awt.Image#getWidth(ImageObserver observer) 等はもちろん知っていますが、
このメソッドは、observerが表示を行わないと-1しか返してくれないのです。
java.awt.image.BufferedImage#getWidth()も、BufferedImageに変換するときに
どのみちサイズを指定するので無意味でした。
引数に画像ファイルを指定するとサイズを返すコンソールアプリなどを考えています。
javaのバージョンは可能なら1.3.*でお願いします。
思いつきで答えると
ダウンキャストしてBufferedImage#getHeight()呼ぶとか
MediaTracker
getWidth(null)
ありがとうございます。
ダウンキャストしてみたのですが、
java.lang.ClassCastException が出てしまいます…。
質問の補足ですけど、対象ファイルはラスタデータで、そのピクセルサイズを知りたい、
と言う事です。宜しくお願いします。
>>978 普通に ImageObserver 使って調べたら?
個人的には素直に J2SE 1.4以降で imageio 使うなりする方が良いと思うけど。
>>982 ImageObserver 使っても画像がロードされなければ通知は来ない。
>>983 Windows + J2SE 1.3 で調べたけど読み込み完了したら通知来るよ。
AWT用のスレッドが動いたまんまで止まらないらしいので強制終了しないと止まらんかったけど。
985 :
978:2005/07/21(木) 20:19:07
>>980 それでいけました!ありがとうございました。
Component cmp = new Canvas();
MediaTracker mt = new MediaTracker(cmp);
…
mt.addImage(img, 0);
try{
mt.waitForAll();
}catch(Exception e){}
int w = img.getWidth(null);
>>982 imageioが使えればハッピーなんですけど、
使いたい処理系が1.3のjreしか無いんですよ…
>>983 その通りです。それで困ってました。
ImageObserver 使ってわざわざ非同期ロードを同期ロードと同じように使うなら
素直に MediaTracker 使えよ。
>>986 MediaTracker 使うには Component が必要っしょ。
>>978 をやるなら Component が無い方が良いかなと思っただけ。
>>977 Tomcatのコネクションプールの実装は、Jakarta Commons Pool と Commons DBCP。
java.sql.Connectionの実装は、JDBCドライバ。
わかってんのか?
>>988 アホ? コネクションプールから取り出した Connection を getClass().getName() してみろよ。
そこに JDBC ドライバベンダーに関係する名前が出ると思ってんの?
コネクションプールからとってきた Connection ってタダのラッパでしょ?
だから、元の話の「サーブレットコンテナを変えたら例外が発生するようになった」
「2回目の close() が失敗する」という事を考えれば、JDBC ドライバではなくデータ
ソースの実装に問題があるんじゃないか、という話をしてるんじゃん。Connection
インターフェースのインプリ (たとえそれがラッパーでも) の問題じゃないかと。
そこへ「Connection の実装は JDBC ドライバ、Tomcat は関係ない」とか言う
勘違いが来ておかしくなった (いまさらそんな話をしていたのではないとか言うなよ?)。
ラッパってのは意味が違うと思ーよ
インプリなんて略す奴にロクなのはいないが
Commons Pool や DBCP でも Connection の実装してんだけどね (ラッパーだけど)。
何で java.sql.Connection の実装は JDBC ドライバ (これも意味不明だが) と限定してんだろ。
コネクションプールがJDBCドライバから取り出したコネクションをそのまま
クライアント(呼び出し側の意味な。)に使わせてると思ってる奴がいるのに驚いた。
もう夏休みに入ったんだっけ?
梅
竹
コネクションプールがラッパー返すことくらい知っとけ
松
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。