トップページ⇒tech
1001コメント344KB

【初心者】Java質問・相談スレッド103【大歓迎】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/06/27(水) 07:23:27
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc10.2ch.net/hp/

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
【初心者】Java質問・相談スレッド102【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1180419689/

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

次スレは>>980あたりで。
0467デフォルトの名無しさん2007/07/08(日) 14:16:00
>>466
不可能
Windowsのバックアップ機能とかあるならば可能かもしれないけど、そっちは詳しくないので知らん
何度も言うけどCLASSPATHに値を設定してトラブルになるより、-cpの使い方学べ、その上でCLASSPATHに必要ならば設定汁
0468デフォルトの名無しさん2007/07/08(日) 14:23:49
>>467
そうですか・・ありがとうございました。
まあ今のところ問題なく動いているので大丈夫だと思いますが
ちなみにCLASSPATHは全くいじってませんでした。
04692人の女性と付き合っている高1です2007/07/08(日) 19:54:12
>>467
よこから割り込みますがCLASSPATHを環境変数に設定するとまずいという
ご意見がありますが、どういう時にまずいのでしょうか?

僕は現在JavaSE6up2しかマシンにインストールしていませんが、そんな
状況で起こりうる誤作動の事例をよろしければ教えてください。
0470桜井葵2007/07/08(日) 20:11:37
ビジュアルクラスを開いたら『新規ファイルをエディターに設定しよぅとしてエラーが発生しました』『java.lang.NullPointerException』って出てプログラムしか出ないんですけど、誰か助けて下さい(ノ_・。)
0471デフォルトの名無しさん2007/07/08(日) 20:46:41
>>469
CLASSPATHでググれカス
0472デフォルトの名無しさん2007/07/08(日) 20:47:50
>>469
2人とも妊娠
0473デフォルトの名無しさん2007/07/08(日) 23:43:42
ちった、役に立つかも!
↓
http://www.yukinko-net.jp/
0474デフォルトの名無しさん2007/07/09(月) 12:48:21
ど素人質問です。失礼します。
JDKを使って勉強したいのですが、
どれを使えばいいのでしょうか。
・JDK 5.0 Update 12 with NetBeans 5.5.1
・JDK 5.0 Update 9 with Java EE
・JDK 5.0 Update 12
・完全な環境と実行環境はGet the JDK download からダウンロードできます。
JDK5の次が7になっているのですが6のバージョンってないのでしょうか
0475デフォルトの名無しさん2007/07/09(月) 12:56:49
>>474
JDK 6 はあるよ。>>1のWikiサイトからたどれる。
ttp://java.sun.com/javase/ja/6/download.html
ここのJDK 6u2をダウンロードすればおけ。

with BetBeansってのは、IDEが付いてくる。
最初はエディタでやろうとしているなら、いらない。
with Java EEは、初心者なら忘れてしまってもかまわない。
0476デフォルトの名無しさん2007/07/09(月) 13:10:49
質問です。
URLConnectionでGETパラメータを送ろうとしているんですが
どの時点で送信しているのかがわかりません。

String urlString = "http://hoge.com/hogehoge.jsp?a1=test&a2=TEST";;
URL url = new URL( urlString );
URLConnection uc = url.openConnection();

DataInputStream dis = new DataInputStream( uc.getInputStream() );
String s;
while( ( s = dis.readLine() ) != null ) {
System.out.println( s );
}
dis.close();

リファレンス等を参考にするとopenConnection()で接続を確立しているらしいのですが
ここでhogehoge.jspに通信しているんでしょうか?

DataInputStream dis = new DataInputStream( uc.getInputStream() );
上の部分でhogehoge.jspに送信してそのまま受信に入っているんでしょうか?

タイミングがイマイチわからないので教えてください。
04774742007/07/09(月) 13:14:35
>>475
ありがとうございます。
後のいろいろな機能はあとから付けられるのでしょうか。
どのようにつけたらよいのでしょうか。
よろしくお願いします。
0478デフォルトの名無しさん2007/07/09(月) 14:06:21
>>477
Java EEはここから
ttp://java.sun.com/javaee/downloads/index.jsp
NetBeansはここから
ttp://www.netbeans.org/products/

後でダウンロードしてインストールできる。最初からなくても大丈夫。
0479デフォルトの名無しさん2007/07/09(月) 14:10:17
JDK6はあるはずだが・・・
0480デフォルトの名無しさん2007/07/09(月) 16:10:37
>>476
自分の書いたレスをじっくり読み直すんだ
前者以外に答えがあると思うかね
0481デフォルトの名無しさん2007/07/09(月) 16:44:22
ポップアップについての質問です
いまJPanel上を右クリックでJPopupMenuを表示するところまではできたのですが、メニューを選んだときの処理をどうすべきかわかりません。
MouseEventだとどのメニューを選んだかわからず、ポップアップにつけたJMenuItemにsetActionCommandを付けようにも、JPanelにaddActionListenerがないため、どのように識別させるのかがわかりません。
また、上の識別の問題に関連するものですが、JPanel別にメニューを付けてるのですが、大部分が重なる処理なので、呼び出し元(JPanel)を識別して、イベント処理で振り分けるということはできないでしょうか。

以上2点、お願いします。
04824812007/07/09(月) 17:01:07
書いた直後なんですが、1つ目できました
ボタン処理のようにJMenuItemごとにアクションリスナーを登録するという方法があるようで、そうするとメニュー選択時に呼ばれるようになりました。
どうも、検索したときのキーワードの範囲が広すぎたようね…
2つ目はいまだわからず、getComponentだとパネルの位置はわかるんですが、ActionCommandのように得ることはできないですかね。
0483デフォルトの名無しさん2007/07/09(月) 17:25:50
処理名称は一緒だが処理内容が異なるのなら、
(Wordなら、文字の削除とオートシェイプの削除、など)
ActionMapで振り分けるとか。

JPanel p1 = new JPanel();
p1.getActionMap().put("edit", new AbstractAction(){
 public void actionPerformed(ActionEvent e){
  // 編集時の処理
 }
};
p1.getActionMap().put("delete", new AbstractAction(){
 public void actionPerformed(ActionEvent e){
  // 削除時の処理
 }
};

のようなJPanelを用意しておいて、JPopupMenu表示時には
ActionMapからJMenuItemを組み立てる。こんな感じ
private JPopupMenu createMenu(ActionMap map){
 JPoppuMenu menu = new JPopupMenu();
 JMenuItem editItem = new JMenuItem("編集");
 if(map.get("edit") != null){
  editItem.setAction(map.get("edit"));
 } else {
  editItem.setEnable(false);
 }
 menu.add(editItem);
 // 以下略
 return menu;
}
04844812007/07/09(月) 17:37:35
>>483
なるほど、ActionMapってそういう使い方をするためにあったんですね。
もう少し調べて試してみます。
ありがとうございました。
0485デフォルトの名無しさん2007/07/09(月) 18:24:07
初歩的な質問です。
一度描画したものをドラッグで移動させるにはどのような方法があるのでしょうか?
「java ドラッグ」とかでググっても出てこない・・・
0486デフォルトの名無しさん2007/07/09(月) 18:26:55
>>485
[1] ドラッグされたことを知る
[2] 描画したものを移動させる

がんがれ
0487デフォルトの名無しさん2007/07/09(月) 18:32:29
>>486
[1]についてはマウスイベントで成功しました。
[2]がよくわかりません。
いちいち白塗りして細かく描きなおすのでしょうか。
0488デフォルトの名無しさん2007/07/09(月) 19:43:28
>>487
スプライト処理でぐぐってみれ。
要はTVゲームのスプライトと同じで描画領域と位置をコントロールする
後はマウスのイベントで移動量を測ればOK
0489デフォルトの名無しさん2007/07/09(月) 22:54:08
>>487
昔WebStartのサンプルで画像エディタがあって、コンポーネント単位で画像の移動、重ね貼りが
出来るのがあったけど、そういうのを作ろうとしているの?
0490デフォルトの名無しさん2007/07/09(月) 23:09:17
会社の先輩がドラッグアンドドロップできるカードゲーム作ってたな。
あれだ、ソリティアみたいなやつ
結構簡単に出来るといっていたけど、ソースみてもわからんorz
0491デフォルトの名無しさん2007/07/09(月) 23:40:07
昔はXORしたりしてたけど
今ならレイヤーで簡単
0492デフォルトの名無しさん2007/07/10(火) 00:32:21
すみません。ごくごく簡単なカウントアップするサーブレットをつくったんですが、
ブラウザを2つ立ち上げると2つとも同じ数をカウントしていきます。int変数でカウントを記録しています。

ブラウザAを立ち上げる→1と表示される
ブラウザBを立ち上げる→2と表示される
ブラウザAの更新ボタンを2回クリック→4と表示される
ブラウザBの更新ボタンを1回クリック→5と表示される

これだと、いろんなユーザにint変数が共有されてしまうようにおもうんですが
これでいいものなんですか?

以下、ソースを載せます。
04934922007/07/10(火) 00:34:04
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class Lesson03 extends HttpServlet {

int intCount = 0;

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

response.setContentType("text/html; charset=iso-2022-jp");
intCount++;

PrintWriter pw = response.getWriter();
pw.println("<html><head><title>カウントアップするサーブレット</title></head>\n"
+ "<center><br><br>読み込む度にカウントアップします<hr><br><br>\n"
+ intCount + "回読み込まれました。<br></center></body></html>\n");
}
}
0494デフォルトの名無しさん2007/07/10(火) 00:35:53
素人の俺でも分かる。
サーブレットのインスタンスは通常1個しか生成されず、
複数のリクエストは同じインスタンスを呼び出す
0495デフォルトの名無しさん2007/07/10(火) 00:38:07
ついでに言うと、スレッドセーフにしなければならないから、
原則、インスタンスフィールドは作らない
04964922007/07/10(火) 00:42:53
>>494-495さん
どうもありがとうございます。よ〜くわかりました。doGetメソッドの中で宣言したらよかったです。
ありがとうございました。
0497デフォルトの名無しさん2007/07/10(火) 00:45:29
doGetのなかで宣言したら毎回0→1になるだけ
0498デフォルトの名無しさん2007/07/10(火) 00:49:54
>>490
DnDをどうやって認識させるかで書き方が変わるね。
0499デフォルトの名無しさん2007/07/10(火) 01:16:58
(わかっているx座標:x,わかっているy座標:y,斜辺,傾き)を引数で受け取って
求めたいX座標Y座標の値を返す関数を作りたいのですが教えてください。
0500デフォルトの名無しさん2007/07/10(火) 03:10:10
>>499
java.awt.geom.Point2D method(java.awt.geom.Point2D p, 斜辺の型 a, 傾きの型 b) {
return new java.awt.geom.Point2D(p,a,bから求めたx, p,a,bから求めたy);
}
実際にはjava.awt.geom.Point2Dは抽象クラスなんでnewでインスタンスを作れないから、
必要な精度に合わせてjava.awt.Pointとかjava.awt.geom.Point2D.Doubleとかを生成して返す。
引数の方はjava.awt.geom.Point2Dでなく問いのようにx,yを別々に指定するようにしても。
両方のメソッドを作ってオーバーロードしておいてもいいかと。
0501デフォルトの名無しさん2007/07/10(火) 08:28:03
メール受信のためのプロキシーを作りたいのですが…。

パソコンのバックグラウンドで待機して、メール受信時にまずプロキシがメールデータ
を取得し、迷惑メールでなければそのままメールクライアントにメールデータを渡したい
です。

サーバーソケットを作って待機しているのですが、メール受信時にローカルにバインド
されるポート番号を検出できず悩んでいます。当然、110番で待機してはダメですよね?

メールクライアント側でプロキシサーバーアドレス、ポートを指定できれば早いのですが…。
(IEのように)

アンチウィルスソフトは、ローカルにプロキシサーバーを置いているように見受けられる
のですが、どうやって実現しているのでしょう?

どなたか、アドバイスをお願いいたします。
0502デフォルトの名無しさん2007/07/10(火) 10:33:56
JTableなんだけど、他のコンポーネントからTABでフォーカス移動してくると、
まだ一度もセルにフォーカス取得してない状態だとフォーカスが消えたようになる。
もう一度TABを押すとようやくセルが選択状態になるのだが・・・・・。
一度セルにフォーカスを取得すると他のコンポーネントから一発で移動できるように
なるんだがな・・。
ちなみにScrollPaneは使っても使わなくても同じでした。
JDKは1.5す。

どなた原因&回避策おながいします。
0503デフォルトの名無しさん2007/07/10(火) 10:43:18
>>501
あれはシステムに食い込んでるからこそできること。
Java では原理的に無理。
メーラーではメールサーバーに localhost を指定して、
設定その他は自分のプログラムでやるしかないと思う。
05045012007/07/10(火) 11:35:41
>>503
レスありがとうございます。

メーラーのメールサーバーに localhost を指定して、通信をパイプする
ような感じで実装してみようと思います。

この場合、メールアカウントごとの設定がめんどくさいっすねー・・・。
どうやって保持しようかしら。


0505デフォルトの名無しさん2007/07/10(火) 14:25:52
そもそも、メーラー側が優秀なフィルタを持ってるこのご時世に自分で作っても意味はないよ。
屑メーラーを捨てれば良いだけ。

それとも、まともなスパムフィルタを作れるほどの
技術があるならメーラーそのものから作るって方法もある。
0506デフォルトの名無しさん2007/07/10(火) 14:44:29
>>505
既にあるから作る意味ないって?
つまらない考え方だな。
0507デフォルトの名無しさん2007/07/10(火) 14:44:52
業務ロジッククラスXでDB接続とBEGIN
  ↓
  DBクラスYで振込情報をINSERT
  ↓
  DBクラスZで入金情報をINSERT
  ↓
業務ロジッククラスXでCOMMITとDB切断

をする際にDBクラスY,Zでconnection.commit()をさせない、
コンパイルエラーにする方法ってありますか?
INSERTをさせるためにはDBクラスY,Zにconnectionを渡さなければならず
connectionを渡せばcommit()が可能になってしまいます。
commit()やrollback()が不可能なDB接続を渡すとかできないでしょうか?
テストでバグ潰せばいいじゃんというのもわかりますができればコンパイル時にはじきたいです。
0508デフォルトの名無しさん2007/07/10(火) 15:22:18
メーラーの(優秀な)フィルタと自分のフィルタを置き換えなくちゃ
いけないならともかく、上乗せできるなら悪いことじゃないでしょ、
普通に考えても
0509デフォルトの名無しさん2007/07/10(火) 16:25:27
>>507
java.sql.Connectionをラップしたクラスを作れば?
ほとんど全てのメソッドはスルーするけど、
commit()やrollback()が呼ばれたらIllegalStateExceptionを投げるようなの。
05105092007/07/10(火) 16:28:05
コンパイルではじきたいのね。スマン。
それならAspectJという手も。
ttp://www.kronos-jp.net/tech/tech100/tech100.html
0511デフォルトの名無しさん2007/07/10(火) 16:49:20
commit()やrollback()が無いインターフェイスNewConnectionを新しく作る。
DBクラスY,ZにはNewConnectionを渡す。
NewConnectionのラッパークラスを作り、DBクラスY,Zからconnectionのアクセスが出来るようにする。
で、どうよ?
0512デフォルトの名無しさん2007/07/10(火) 17:16:50
実行入力画面でアルファベットでなく日本語を入力するにはどうすればいいのですか?
0513デフォルトの名無しさん2007/07/10(火) 17:40:48
てか、それはJavaの質問なのか?
WindowsマシンならALT+変換押せ
0514デフォルトの名無しさん2007/07/10(火) 17:56:06
>>509-510
ありがとうございます。そうです、コンパイル時にはじきたいです。

>>511
その場合、
Connection connection = DriverManager.getConnection( 略 );
↓※
NewConnection newConnection = new NewConnectionWrapper();

※の部分の、実際のconnectionをnewConnectionにどうやって渡してあげればいいですか?
頭がこんがらがってきた・・・
0515デフォルトの名無しさん2007/07/10(火) 18:02:00
>>514
まずは落ち着け。
0516デフォルトの名無しさん2007/07/10(火) 18:06:05
変数の型を調べる方法ってありますか?
0517デフォルトの名無しさん2007/07/10(火) 18:07:04
これでよかろ。
NewConnection newConnection = new NewConnection(connection);
ただし、NewConnection は java.sql.Connection になれないので、
java.sql.Connectionを前提にしているプログラムが既にあるなら、
それを書き直さないといけなくなる。新規開発ならいいけどね。

あとは個人的な感覚だけど、独自規則のAPIを強制されるのはイヤダ。
APIは標準だが実装は(APIの範囲内で)独自、なら許せるが。
0518デフォルトの名無しさん2007/07/10(火) 18:17:13
>>517
なるほど。newConnectionの中でconnectionをprivateで持っておいて
commit()とrollback()は作らず、それ以外はnewConnectionのpublicメソッドを通して
connectionに投げると。ありがとうございます。

>あとは個人的な感覚だけど、独自規則のAPIを強制されるのはイヤダ。
>APIは標準だが実装は(APIの範囲内で)独自、なら許せるが。

自分も独自APIを強制して自由度を奪うのは好きじゃないですが
DB関連クラスだけでcommit()とrollback()のみの制限ならギリギリ許容範囲内かなと思っています
0519デフォルトの名無しさん2007/07/10(火) 18:20:17
>>516
判定したい型が決まっているなら
instanceof演算子
とりあえず型を知りたいだけなら
"不明オブジェクト".getClass().getName()
0520デフォルトの名無しさん2007/07/10(火) 19:57:44
SPAMメールを受けたときに
逆に送信者に攻撃を仕掛けて
二度と送ってこないようにするには
Javaではどのような方法がありますか?
0521デフォルトの名無しさん2007/07/10(火) 20:32:13
Javaを辞めるしかないです。
さようなら。
0522デフォルトの名無しさん2007/07/10(火) 20:48:44
>>520
オーケー。いい方法を思いついた。
試してみたいので、お前のメールアドレスを教えてくれ。
0523デフォルトの名無しさん2007/07/10(火) 21:41:06
root@localhost
0524デフォルトの名無しさん2007/07/10(火) 21:58:09
javaのプログラムからコマンドプロントを使ってcdコマンドなどで自動的に特定のフォルダに移動して、特定のファイルを実行したいのですが、探しても方法が見つかりません。

よろしければ教えていただけないでしょうか?
0525デフォルトの名無しさん2007/07/10(火) 22:05:35
フレームのサイズ変更についての質問です。
サイズを変更したことをリアルタイムに感知したいんですが、どのような方法があるでしょうか?
MouseMotionだとD&Dしてる間はメッセージが送られず、componentResizedも試しましたがマウスボタンを離した瞬間しか感知しません
(できればその移動距離か変更後のサイズも知りたいです)
JAVAではそういうのは想定してないんでしょうか。

>>524
Windowsなら、○○.batっていうファイルつくって右クリック編集
中に
------------
cd 移動先
java メインクラスの名前
-----------
の2行を書けばできるます。
詳しくはバッチファイルでしらべてくらはい
0526デフォルトの名無しさん2007/07/10(火) 22:06:09
Excelのファイルがいくつかのフォルダに分かれて存在していて
それぞれのフォルダはさらにサブフォルダをいくつか持っています
全部のフォルダをたどって全部のExcelファイルから
特定のシートの特定のセルを抽出していきたいのですが
どのようにすればよいのか検討も付きません
05275242007/07/10(火) 22:12:30
バッチファイルをつかってjavaのクラスファイルを実行するのではなく、javaのプログラムからコマンドプロントのコマンドを入力して特定の処理をしたいのですが。

そのやり方を知っていたら教えて下さい。
0528デフォルトの名無しさん2007/07/10(火) 22:14:57
>>527
そういうことね、勘違いしてた
0529デフォルトの名無しさん2007/07/10(火) 22:57:20
>>524
Runtime.getRuntime().exec(☆DOSコマンド☆);
特定の処理がわからないのでここまで
0530デフォルトの名無しさん2007/07/10(火) 23:06:56
>>527
jrunscriptつかえ。そういうときのためにわざわざ用意されたんだから
0531デフォルトの名無しさん2007/07/10(火) 23:27:40
ワンランク上になりたいんだけどなにしたらいい

Java歴半年くらいでいまJSPとかデータベース使って小規模なシステム作ってる
0532デフォルトの名無しさん2007/07/10(火) 23:42:01
>>524
java1.5ならProcessBuilderが熱い
0533デフォルトの名無しさん2007/07/10(火) 23:49:44
>>531
EclipseのプラグインとかSwingなどのGUI
イベントドリブンなアプリケーションに慣れ、スレッドをある程度使いこなすと差は出来る
0534デフォルトの名無しさん2007/07/11(水) 00:29:28
>イベントドリブン
そこで Visual C++ ですよ
0535デフォルトの名無しさん2007/07/11(水) 00:40:07
>>533
EDTで時間かけてイベントキュー詰まらせてアーーーー!!とか・・・
VMのスレッド実装の差異やCPUの数が2以上あってアーーー−!!とか?

個人的にはJWSに触れとくのお勧め。
0536デフォルトの名無しさん2007/07/11(水) 02:45:59
MouseListenerとMouseMotionListenerは同時に使えない?なんてことはないよな・・・
どっちかを消すと上手くいくのに、
どちらも宣言するとシンボルが見つかりませんといわれる・・・
0537デフォルトの名無しさん2007/07/11(水) 02:51:48
自己解決。頭がおかしくなっていたようだった
0538デフォルトの名無しさん2007/07/11(水) 13:28:05
Javaを用いて掲示板を作っています
形はそこそこ出来てきたので「同一人物(同IP)からの二重投稿を禁止する」機能をつけようとしているのですが
こういったものを作るのに便利なクラスはあるのでしょうか?
0539デフォルトの名無しさん2007/07/11(水) 15:19:11
インデント不良って何ですか?
0540デフォルトの名無しさん2007/07/11(水) 15:23:12
if (a > b)
  b = a;
  a = 1;
System.out.println(b);

みたいに書いてa > bでないときでもa = 1;が実行されるように錯覚させる悪い奴のこと
0541デフォルトの名無しさん2007/07/11(水) 15:25:29
逆だ
a > bの時にしかa = 1;が実行されないように、だ
0542デフォルトの名無しさん2007/07/11(水) 17:19:25
はじめからブロックにしとけば良いんだよ。
どうせ後から変更されるんだし。

if (a > b){
  b = a;
}
a = 1;
System.out.println(b);
0543デフォルトの名無しさん2007/07/11(水) 19:31:51
if (a>b) b=a;
a = 1;
System.out.println(b);

こう書けば短い。
0544デフォルトの名無しさん2007/07/11(水) 23:26:19
1:JSPの画面での入力処理
2:javaでcsvファイル読んだりあれこれしてDBに書き込む
3:DB書き込み結果をJSPで表示、というのを作っています。

これに規定の時間を越したらエラーとしてタイムアウト画面へ遷移する機能を
追加しようと思っています。

で、Actionで
try{
 Timer timer = new Timer();
 timer.schedule(new myTimer(),3000);
 色々
}catch(myTimeoutException e){
 return (mapping.findForward("error"));
}

myTimer#run() ←TimerTask継承クラス
myTimeoutException e = new myTimeoutException ();
throw e;
みたいにやってみましたが
myTimer#run()までは来るけどActionの方にmyTimeoutException で飛んでこないです。


なんでException飛んでこないのでしょうか?
0545デフォルトの名無しさん2007/07/11(水) 23:33:56
>>544
Threadに関して基本から学びなおして来い
簡単なサンプルをおいておくので実行してみてくれ

class ThreadA extends Thread {
   public void run() {
      throw new RuntimeException();
   }
   public static void main(String[] args) {
       new ThreadA().start();
   }
}
0546デフォルトの名無しさん2007/07/11(水) 23:56:24
swingのフレームワークで定番なのは何なのでしょうか?
今注目されてるのがあれば教えてください。
0547デフォルトの名無しさん2007/07/12(木) 00:12:42
swingの定番って意味ワカラネーよ
java3dとかその拡張ライブラリのことか?
0548デフォルトの名無しさん2007/07/12(木) 00:21:01
たった2行正確に読めないのかよ。
"フレームワークの"定番って書いてあるだろ
0549デフォルトの名無しさん2007/07/12(木) 00:21:57
Swing自体がフレームワークのような気もする。
0550デフォルトの名無しさん2007/07/12(木) 00:31:47
そうだね
0551デフォルトの名無しさん2007/07/12(木) 00:34:40
フレークワークの意味が解っていないに1票。
定番はBorderLayoutとGridBagLayoutだよ、で満足するのかな(=ω=.)
0552デフォルトの名無しさん2007/07/12(木) 00:36:31
>>544
runメソッド内でThread.currentThread().getName()を出力してみれば?
あと、myTimeoutExceptionクラスのコンストラクタの中でもThread.currentThread().getName()を出力して
違いが分かれば無問題♪
0553デフォルトの名無しさん2007/07/12(木) 00:43:35
>>544
Webサーバとクライアントのイベントのやり取りを調べてくれ、それじゃ実装できん
1.クライアントでタイムアウトを検知したい
 ⇒ JavaScriptなどで実装
2.サーバーでタイムアウトを検知したい
 ⇒ 最初のアクセス時間を記録していて差分を取ればいい

尚、2の場合、「せっかっく頑張って入力したのに><」ってなるので注意。
05545462007/07/12(木) 00:46:37
>>546です。
swing自体フレームワークなのですが、
http://journal.mycom.co.jp/news/2007/04/27/015/index.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20070516/271165/
をみて、只気になっただけです。
0555デフォルトの名無しさん2007/07/12(木) 05:40:19
結局、どれもSwing作法の定型句を隠ぺいして楽する枠組みに落ち着く気がする。
javaでswing以上のGUI出しても高度なだけでどのOSでも通用するGUIが提供できなくなるんじゃないかな?

LnFがjavaなだけでwin/macユーザーは避けるし。
ポトペタ支援はJSRガンガン出すだろうね。
そんなところじゃない?
やっぱベクターベースのGUIツールキットはまだ早いだろうか?
0556デフォルトの名無しさん2007/07/12(木) 06:50:33
java.lang.Mathクラスを使わずに、double型の変数を
小数点以下二桁まで残して切り捨てたいです。

第一感はこういう感じですが、もっと良い方法があれば教えてください。

double total = 1234.5678;

int tmp = (int)(total*100);
total = tmp/100.00;
0557デフォルトの名無しさん2007/07/12(木) 07:00:49
>>556
表示の時にのみ切り捨てるべきと考えて、NumberFormat
小数点2桁と固定ならば、intで【全て】計算して、表示する時に100で割る。
0558デフォルトの名無しさん2007/07/12(木) 07:13:07
>>556
total = new BigDecimal(total).setScale(2, BigDecimal.ROUND_DOWN).doubleValue();
0559あ2007/07/12(木) 10:31:48
部分検索するプログラムを考えています。
String型のabcがあってabcともにnullならDBの内容を全部返し、bcだけnullならaの値を返すなど全8通りのif文をうまく考えられません。
どなたか1つでもいいのでお願いします。
0560デフォルトの名無しさん2007/07/12(木) 10:36:26
aを返すとか全部返すとかどういう意味?
全部返すときはa列とb列とc列を連結して返すの?
0561デフォルトの名無しさん2007/07/12(木) 10:42:08
SQLのWHERE句をStringのパラメータによって変更するってこと?
0562あ2007/07/12(木) 10:55:29
559です。
値を取得するってことです。
いまアプリケーション作っててサーブレットに書く内容がうまく表現できなくて…
if (i == null && t == null && p == null) {
String sql = "select * from *****";
ResultSet rs = stmt.executeQuery(sql);
とか考えてたんですけど…
0563デフォルトの名無しさん2007/07/12(木) 11:40:11
なにがしたいのかさっぱりわからない。説明足りなすぎ
0564デフォルトの名無しさん2007/07/12(木) 11:45:05
String abcという書き方ではなく、a,b,cの3つのStringがあり、それぞれnullかnullでないかを判断する必要があるということなのでしょう。
0565デフォルトの名無しさん2007/07/12(木) 11:56:27
質問というか、Javaの可変長引数の仕様で疑問に思ったのですが、

void test(int... vector) {
 if (vector.length == 0)
  System.out.println("vectorは空です.");
 else
  for (int i : vector)
   System.out.print(i + " ");
}

こういうメソッドを書くと、可変長引数は引数なしでも実行できるので、
test();
と呼び出すと、"vectorは空です."と表示されます。
ですが、同名の以下のメソッドを同じクラスで定義すると、
オーバーロードされますので、引数が0のときの振る舞いが不定のように見えます。

void test() {
 test(1);
}

実際にやってみたところ、下の関数が呼び出され、"1 "が表示されました。
可変長引数よりもオーバーロードのほうが優先されることがわかりましたが、
引数的にはどちらでも呼び出せるので、しっくりこません。
よければこのようになる理由を教えてもらえますか?
0566デフォルトの名無しさん2007/07/12(木) 12:43:04
>>565
http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.12.2.5
あたりだね。
■ このスレッドは過去ログ倉庫に格納されています