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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/

これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

以下のエラーが表示されて、途方にくれているあなたは、下のページへ。
「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath

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

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */

また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/

次スレは>>980あたりでお願いしまする。
2デフォルトの名無しさん:2005/10/11(火) 17:37:16
    _
   /〜ヽ
  (。・-・) ぼくプリン。よろしくね。
   ゚し-J゚
3デフォルトの名無しさん:2005/10/11(火) 17:50:13
よろしく
4デフォルトの名無しさん:2005/10/11(火) 18:11:54
>1



さっそくですが質問を。
Java InputMethod FrameWorkで作成したインプットメソッドをLinuxで使うにはどうしたらいいでしょうか?
5デフォルトの名無しさん:2005/10/11(火) 20:16:20
Eclipseで開発をしているのですが、クラスの継承において
引数をもったコンストラクタを持つ親クラスから子クラスを派生させると、
暗黙的スーパー・コンストラクター super() は未定義です。 別のコンストラクターを明示的に呼び出す必要があります。
と表示されてしまいます。
そこで、子クラスのコンストラクタを
public sub(int i){
  super(i);
}
の様にしたのですが、これだと
メソッド super(i) は型 sub で未定義です。
という風に表示されてうまくいきません。
どのようにして表現すればいいのでしょうか?
6デフォルトの名無しさん:2005/10/11(火) 20:19:15
すいません、自己解決しますた・・・
superって書いたら親クラスのコンストラクタになるんですね、失礼しました
7初心者:2005/10/11(火) 20:20:39
プログラムを始めようと思い、今日、本を買ってきたんですが、
j2se5.0をダウンロードしたいんですが、http://java.sun.com/にいくことができません
他に手に入れられるサイトってありますか?
宜しくお願いします。
8デフォルトの名無しさん:2005/10/11(火) 20:22:11
普通に開けるが
9デフォルトの名無しさん:2005/10/11(火) 20:24:23
>>4
そのままでは無理だと思われ。

Java InputMethod Framework-xim のブリッジとか作れば出来るかもしれんが。
10デフォルトの名無しさん:2005/10/11(火) 20:25:03
11初心者:2005/10/11(火) 20:30:51
>>10
それも無理でした。
12初心者:2005/10/11(火) 20:38:31
すみません逝けました。
原因はPeerGuardianのせいでした。
また分からないことがあったら、宜しくお願いします。
13デフォルトの名無しさん:2005/10/11(火) 20:44:12
随分とおかしなソフトを入れてるもんだな
14デフォルトの名無しさん:2005/10/11(火) 20:47:25
たまたま見かけたスレで参照渡しがないと聞いて混乱してる初心者です
どういうこと?
15デフォルトの名無しさん:2005/10/11(火) 20:53:33
>>1
スレ立て乙です。

Java製のバイナリエディタを自作したいんですがどうすれば良いですか?
とりあえず「Hello world」と
「FINAL_FANTASY」という名前のジョークプログラムをJavaで組めたくらいの初心者レベルです
機能は最小限でよくて、プログラムを組む練習として作りたいです。
16デフォルトの名無しさん:2005/10/11(火) 20:59:56
まずは読み込みからかな
17デフォルトの名無しさん:2005/10/11(火) 21:05:40
>>14
初心者がなぜ参照渡しがないと聞いて混乱するのがよくわからんが。
C とかの経験はある?
18デフォルトの名無しさん:2005/10/11(火) 21:05:55
>>14
public class RefTest {
  public static void main(String[] args) {
    String a = "abc";
    refChange(a); //参照を渡す
    System.out.println(a); //さて、何が出力されるでしょうか?
  }

  public static void refChange(String a) {
    a = "def"; //ここで参照先を変えてみる
  }
}

前スレの人はこのことを言ってるんだと思われ
1917:2005/10/11(火) 21:06:43
しまった。ポストしてしまった。

とりあえずこれ読め。
http://www.wikiroom.com/java/index.php?FAQ#content_1_5
20デフォルトの名無しさん:2005/10/11(火) 21:11:02
>>17
>>18
>>19
ありがとうございます
C言語はポインタがなんとかわかる程度でした
参照渡しの理解が浅かったみたいです
>>18さんの例でなんとなくわかりました
>>19のサイト読んできます
お手数かけてスイマセン
21デフォルトの名無しさん:2005/10/11(火) 21:12:52
参照で渡すには其れ用のオブジェクトを使う必要があるってことか。。。
22デフォルトの名無しさん:2005/10/11(火) 21:35:19
void f(Object* o) // java
void f(Object** o) // javaではできません
23デフォルトの名無しさん:2005/10/11(火) 21:36:08
最近勉強が滞りがち・・
なんか楽しく勉強する方法ないかな?
24デフォルトの名無しさん:2005/10/11(火) 21:40:38
美人のお姉さんに教えてもらう
25初心者:2005/10/11(火) 21:42:49
コマンドプロンプトで、自分のは、C:\Documents and Settings\user>
となっているんですが、本では、C:\Documents and Settings\sela>
となっています。どうやったら、変更できますか?
本に沿っていきたいので、宜しくお願いします。
26デフォルトの名無しさん:2005/10/11(火) 21:48:01
>>25
そのselaの部分を脳内変換すればいいだけ。
そこらへんの仕組みを理解せずにへたに変えないほうがいい。
27デフォルトの名無しさん:2005/10/11(火) 21:49:35
C:\Documents and Settingsにselaって名前のディレクトリを作ればいいんじゃないのか
28初心者:2005/10/11(火) 21:51:02
>>26
>>27
有難う御座います
29デフォルトの名無しさん:2005/10/11(火) 21:53:08
なんか感謝が感じられないな。
やりなおし
30デフォルトの名無しさん:2005/10/11(火) 22:35:27
今日Javaを始めようと思ったんですが、本に載ってたJDKっていうツールが見つかりません
それらしきものをインストールしたんですが、NetBeansとかいうソフトしかインストールできなくて…
どれを落としてインストール、起動すればいいんでしょうか?
31デフォルトの名無しさん:2005/10/11(火) 22:40:56
>>25-27
マジレスしていいものかどうか悩むんだが、あえてマジレス

>>25
Javaの問題ではなくWindowsにおけるユーザ管理の問題なのだ。
Windowsでは
1:インストールしたドライブのトップディレクトリにDocuments and Settingsと言う名前のディレクトリが作られる
2:ログインユーザ名のディレクトリがDocuments and Settingsにつくられる
3:すなわち書籍のselaと言うディレクトリはselaと言う著者のログイン名である。

ようするにselaの部分を自分のログイン名と置き換えればよいのである。

32デフォルトの名無しさん:2005/10/11(火) 22:43:59
>>30
java.sun.comのサイトからおとしたNetBeansならJDKも込みだ。
1.5系列(ようするにJ2SE5とか言うところから落とした奴)ならウィンドウズのProgram Filesディレクトリ以下にjavaってフォルダがあるのでそこに導入されてる。

とりあえずコマンドプロンプトからjavacとか入力した結果どんな応答をしたかだけでも書き込んでくれ
33デフォルトの名無しさん:2005/10/11(火) 22:47:01
木田居る?
34デフォルトの名無しさん:2005/10/11(火) 22:48:16
いない
35デフォルトの名無しさん:2005/10/11(火) 22:52:16
ArrayListの中の各要素にArrayListを入れる場合には宣言はどういう風にすればよいのでしょうか?

i=0;
while ((tmp = br.readLine()) != null)
  {
    j = 0;
    stk = new StringTokenizer(tmp,",");
    while (stk.hasMoreTokens())
      {
        list[i][j].add(Integer.parseInt(stk.nextToken()));
        j++;
      }
    i++;
  }

以上のコードを動作させたいのですが、宣言の部分で躓いてしまっています。。。
36デフォルトの名無しさん:2005/10/11(火) 23:05:03
ん?宣言ならこうだが
ArrayList<Integer>[][] list;
37デフォルトの名無しさん:2005/10/11(火) 23:18:14
>>33
ごめん、本田でもいい?
38デフォルトの名無しさん:2005/10/11(火) 23:26:28
intをいれたいリストのリスト宣言なんて

List<List<Integer>> list = new ArrayList<ArrayList<Integer>>();

でいいだろ?
39デフォルトの名無しさん:2005/10/11(火) 23:28:17
あ、
List<List<Integer>> list = new ArrayList<List<Integer>>();

だった
40デフォルトの名無しさん:2005/10/11(火) 23:40:32
ださ・・・
41デフォルトの名無しさん:2005/10/11(火) 23:43:20
>>40
ださくねーよ
漢の討ち死にじゃないか
42デフォルトの名無しさん:2005/10/12(水) 00:16:39
起動してソースコードを記述、F5でビルド、F7で実行(逆だったかも)ってのができるJava用のソフトってありますか?
43デフォルトの名無しさん:2005/10/12(水) 00:20:07
F11でメイク、F6で実行だとNetBeansとか
44初心者:2005/10/12(水) 00:31:43
>>31
すっごく分かりやすかったです。理解できました。
>>29>>31
有難う御座います!これからも宜しくお願いします!
45デフォルトの名無しさん:2005/10/12(水) 00:51:18
文字列でそれぞれ下記のようにあった場合
00:01→00:05
12:19→12:20
17:56→18:00

みたいに五分ごとに時間を切り下げたいのですが
どうすればいいのでしょうか?
46デフォルトの名無しさん:2005/10/12(水) 01:01:18
100 PRINT "おっぱいの数=桃の割れ目の数=";2

JAVAってBASICみたくこんな感じで作れるんですか?
47デフォルトの名無しさん:2005/10/12(水) 01:08:45
System.out.println("おっぱいの数=桃の割れ目の数="2);

2ってなに?
48デフォルトの名無しさん:2005/10/12(水) 01:29:23
その程度でいいのなら
staticimportつかえば行番号はつかえんがBASICとあんまかわらんかな
49デフォルトの名無しさん:2005/10/12(水) 01:31:31
たくさんオブジェクトを生成したときに OutOfMemoryError が出るかどうかを事前に知るのは Runtime.freeMemory() で良いの?
それとも、もっと確かな方法ってあるんですか?

あるいは OutOfMemoryError を捕まえて回復させても大丈夫とか。
50デフォルトの名無しさん:2005/10/12(水) 01:33:14
GoToHell
51デフォルトの名無しさん:2005/10/12(水) 01:33:18
>>45
切り上げじゃね?
Integer#valueOfで数値変換して四捨五入すれば?
52デフォルトの名無しさん:2005/10/12(水) 02:09:58
>>45
String s = "00:01";
int n = ((Integer.parseInt(s.substring(0, 2)) * 60 + Integer.parseInt(s.substring(3, 5)) + 4) / 5) * 5;
String result = String.format("%02d:%02d", n == 24 * 60 ? 0 : n / 60, n % 60);
System.out.println(result);
53デフォルトの名無しさん:2005/10/12(水) 11:18:46
以前住所録のシステムを作っていて
現在違うシステムの作成をしているのですが
そのxmlなどをコピペしてやったら
サーブレットで

サーブレット a は現在利用できません

となりました。
いろいろ調べてもわからなかったので教えてください。
ちなみに
<servlet-class>Search1Servlet</servlet-class>
<url-pattern>/Search1Servlet</url-pattern>

はちゃんと変えています。
宜しくお願いします。
54デフォルトの名無しさん:2005/10/12(水) 11:24:51
>>52
Math.ceil()やfloor()など、
NumberFormatやMessageFormatなどを使いたくなってくるのだが
もう時代遅れか?
55デフォルトの名無しさん:2005/10/12(水) 11:29:53
ちなみに
<servlet-class>Search1Servlet</servlet-class>
<url-pattern>/Search1Servlet</url-pattern>

はちゃんと変えています。


ちゃんとできているように見えない or 他の設定項目が無いからわからない。
そもそもコンパイル済みクラスファイルは正しい位置にデプロイされているのか?
Servletはデフォルトパッケージではダメだぞ。
56初心者 ◆s2skiAkO1Y :2005/10/12(水) 12:06:39
コマンドプロンプトで、J:\>sourceの中のファイルを確認したいのですが、
J:\>source>dir
'source' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
と、表示されます。何でか分かりません。
宜しくお願いします。
57デフォルトの名無しさん:2005/10/12(水) 12:19:48
>>56
"source"というコマンドが存在しないまたはsourceというコマンドのあるディレクトリにPathが含まれていないから。

スレ違いなのでこれ以降はWindows板へどうぞ。
58初心者 ◆s2skiAkO1Y :2005/10/12(水) 12:22:33
>>57
親切に、有難う御座いました。
59初心者 ◆s2skiAkO1Y :2005/10/12(水) 12:32:39
>>57
Windows板ってどこですか?
PC等→Windows→?です。
ごめんなさい。
60デフォルトの名無しさん:2005/10/12(水) 12:44:39
>>59
Windows@2ch掲示板
http://pc8.2ch.net/win/

でも>>59の場合
パソコン初心者@2ch掲示板
http://pc7.2ch.net/pcqa/
または
初心者の質問@2ch掲示板
http://etc3.2ch.net/qa/
のほうがいいかも。
61デフォルトの名無しさん:2005/10/12(水) 12:52:48
>>59
Windows板
http://pc8.2ch.net/win/
OSはWindowsだけではなくたくさんある。
この板の住人もUNIX,Linuxの膨大にあるうちの
どれかを使う人も多い。
スレ違いだが、しかしWindows板で解決できるだろうか>>57が?
62初心者 ◆s2skiAkO1Y :2005/10/12(水) 13:06:33
>>61
自己解決できました。
また、引っかかりました。
public class sample {
public static void main(string[] args) {
system.out.println("hello");
}
}
んで、
J:\source>javac sample.java
sample.java:2: シンボルを見つけられません。
シンボル: クラス string
場所 : sample の クラス
public static void main(string[] args) {
^
sample.java:3: パッケージ system は存在しません。
system.out.println("hello");
^
エラー 2 個
これって、どうゆうことですか?プログラムの書き方、間違ってますか?
この質問も、板違いですか?
宜しくお願いします。
63デフォルトの名無しさん:2005/10/12(水) 13:08:27
またコイツか
相手しない方が良いですよ
64初心者 ◆s2skiAkO1Y :2005/10/12(水) 13:11:40
>>63
かなりショックです。
もしかして、うざいですか?
うざかったら、もう辞めます。ごめんなさい。
65デフォルトの名無しさん:2005/10/12(水) 13:31:22
このレベルで質問してるようだと、この先ずっと質問し続けることになるから
初心者レベルの本一冊買ったほうが手っ取り早い。
本読んでこの質問が出るようなら、それは理解できてないのと同じ。

ちなみに、
string -> String
system -> System
に直すべし。
66デフォルトの名無しさん:2005/10/12(水) 13:32:22
>>62
string -> String
system -> System
大文字小文字は区別される。
サンプルの本かサイト見てるなら目を皿の様にして見比べてみたほうが良い。
67初心者 ◆s2skiAkO1Y :2005/10/12(水) 13:38:18
>>65
>>66
そうゆうことでしたか。
すみません、反省しました。
しばらく人の手を借りず、自分の力でやってみます。
迷惑かけて申し訳ありませんでした。
レベルが上がったら、また、宜しくお願いします。
有難う御座いました。
68デフォルトの名無しさん:2005/10/12(水) 13:52:45
>>初心者 ◆s2skiAkO1Y

気にするな
http://pc8.2ch.net/test/read.cgi/tech/1081149073/
このスレにこい
69デフォルトの名無しさん:2005/10/12(水) 14:21:25
◆s2skiAkO1Y このトリでググって笑った
70デフォルトの名無しさん:2005/10/12(水) 14:35:47
俺も>>67とほぼ同レベルだから
なにげに参考になってたりする・・
71デフォルトの名無しさん:2005/10/12(水) 14:38:01
>>69
少しワロタ
72デフォルトの名無しさん:2005/10/12(水) 14:48:36
札幌で  投稿者:さち◆2pJ2Y76JcE  投稿日:1月21日(金) 20時48分56秒
ブラと下着上下セット欲しい人。良かったら定期的にやりとり出来る方がいました
ら・・・・・アド付けてくれると連絡早いですよ。洗濯籠にブラと下着2セット 
今日着用したストッキングもあります。

これ?
73デフォルトの名無しさん:2005/10/12(水) 14:50:13
さちさん  投稿者:マッチ◆s2skiAkO1Y  投稿日:1月21日(金) 21時49分33秒 削除

交換しましょうか?




--------------------------------------------------------------------------------
交換は  投稿者:さち◆2pJ2Y76JcE  投稿日:1月21日(金) 21時45分36秒 削除

実用性のあるものがいいなぁ^^



--------------------------------------------------------------------------------
これからですか?  投稿者:マッチ◆s2skiAkO1Y  投稿日:1月21日(金) 21時40分14秒 削除

今日これから交換ですか?何と交換いいんですか?
74デフォルトの名無しさん:2005/10/12(水) 15:39:43
偶然…だよな!?
75デフォルトの名無しさん:2005/10/12(水) 15:43:39
はじめまして。

JAVAでSwingを使って15パズル(スライドパズル)を作る課題が出たんですけど、何か良いサイトなどあれば教えてください。
大学の講義で出された課題ですけど、JAVAはまったく勉強したことがない学生しかいないのに、このような課題が出されてしまいました。
よって現在知識0です。が、提出は1週間後。みんな困ってます。
どうかよろしくお願いします。
76デフォルトの名無しさん:2005/10/12(水) 15:55:22
宿題スレ行け

で、
>JAVAはまったく勉強したことがない
らしいが課題が出たのはJavaの講義だったんじゃないの?
当然それまでの講義の内容を踏まえて作れ、ってことでしょう?
知識0で困ってるのは講義出てないからじゃ?
被害者ヅラムカツク
7775:2005/10/12(水) 16:01:26
いや、まじで誰も習ってません。Cのみでした。のにいきなりJAVAの課題が出ました。
そんなんで誰もできるわけないのに意味不明です。
が、宿題スレいきます。
78デフォルトの名無しさん:2005/10/12(水) 16:02:27
いや、もしそれが本当なら、課題をこなそうとするのでなく、
その先生に抗議すべきじゃないのか
79デフォルトの名無しさん:2005/10/12(水) 16:05:46
情報科とかはそれが普通だと思うが。
一週間ももらえたのか、ラッキーだね。
80デフォルトの名無しさん:2005/10/12(水) 16:06:03
いちいちイライラしてたら禿げるよ
まぁフィナステリドが発売されれば問題ないか

と言ってみたものの
宿題スレに行ってらっしゃいてのは同じ
まぁ

スライドパズル Java

でググれ
81デフォルトの名無しさん:2005/10/12(水) 16:06:28
そりゃ酷いな。 吊るしちまえ。
8275:2005/10/12(水) 16:09:03
その先生曰く、みんな当然JAVAをやったことがあると思っていたそうです。
そして誰もJAVA未経験な事実を知ったら、資料を用意してくれましたが、まったく役に立たないものでした。
抗議したところで既に始まっている授業なので変わらないでしょう。
やるしかないってことですね。
83デフォルトの名無しさん:2005/10/12(水) 16:12:48
Javaで、PHPの様な可変変数を使うことは出来ないのでしょうか?
変数というか関数なのですが

funcA(){
return funcB;
}


funcC(){
this.funcA();
}

の様な感じにしたいのですが・・・
84デフォルトの名無しさん:2005/10/12(水) 16:24:50
同考えてもありえない。
ぜってー嘘
85デフォルトの名無しさん:2005/10/12(水) 16:29:13
>>83
そりゃ設計でいかようにでも。
デザインパターンでも勉強すれば如何か。
8676:2005/10/12(水) 16:43:53
>>82
そうとはしらんかったよ
ゴメソ..
87デフォルトの名無しさん:2005/10/12(水) 17:38:05
class Test {
int i;
Test(int i) {
this.i = i;
}
public String toString() {
return "test・・・ " + i;
}
}
class M {
public static void main(String args[]) {
Test t = new Test(1);
System.out.println(t);
}
}
上のプログラムの最後から三行目ですが
System.out.printlnの中身をt.toString()ではなくtとしただけで
「test・・・ 1」が表示されます。
なんでtoStringメソッドと同じ機能を持つのでしょうか?
JAVAの本を見てもメソッドの使い方は(オブジェクト参照変数).(メソッド名)としか
書かれてなかったので。
88デフォルトの名無しさん:2005/10/12(水) 17:43:49
println(Object) は中で toString やってる
89デフォルトの名無しさん:2005/10/12(水) 17:45:24
Javaで整数値の任意の桁を得たいんですけど、最もスタンダードな方法ってどんなのですか?
今はStringに変換後、substringで取得して整数値に再変換という方法でやっています。
もっと効率の良い方法はありますでしょうか?
90デフォルトの名無しさん:2005/10/12(水) 17:45:32
91デフォルトの名無しさん:2005/10/12(水) 17:49:11
>>89
n の千の位が得たいなら n % 10000 / 1000 とか。
92デフォルトの名無しさん:2005/10/12(水) 17:53:17
GUI上でボタンを作るのに
Button b1 = new Button("ボタン1");
と書くと思うんですけど、
たくさん(10個とか言うレベルじゃなくて100個とか)
作りたい場合は、
Button b1 = new Button("ボタン1");
Button b2 = new Button("ボタン2");
Button b3 = new Button("ボタン3");
・・・・
と、100個書かないといけないんでしょうか?
93デフォルトの名無しさん:2005/10/12(水) 17:54:42
>>92
Button[] b = new Button[100];
for(int i = 0; i < b.length; i++)
b[i] = new Button("ボタン" + i);
94デフォルトの名無しさん:2005/10/12(水) 18:00:11
>>93
そうか、ボタンでも普通に配列使えるのか。
つーか、考えてみたらあたりまえか。
ありがとう。
95デフォルトの名無しさん:2005/10/12(水) 18:20:03
>>88,90
ありがとうございました。
96デフォルトの名無しさん:2005/10/12(水) 20:54:14
受信するメッセージ内容によって呼び出すメソッドを変えたい
(コールするメソッドを動的に変えたい)
のですが、速度パフォーマンスが重要なためリフレクションは使えません。
デザインパターンなど、なにか他に良い方法はありますでしょうか?
(Chain of Responsibilityも速度的に除外と考えています。)

格好悪いですが、case文でひたすら分岐させるのが一番良いのかとも思ってます。
97デフォルトの名無しさん:2005/10/12(水) 21:01:42
CoR が例外になるくらいなら、いっその事 java を止めれば良いのに。真面目な話で。
98デフォルトの名無しさん:2005/10/12(水) 21:03:33
まあ良いや。受信メッセージを表すクラス内に、予め呼び出すメソッドを含ませておけば良いかと。
9996:2005/10/12(水) 21:13:16
>>97,98さん
まじめな話、javaやめる?っていう議論は何度かあったのですが、
再利用性を考えてjavaでシステム構築(←速度とトレードオフですが)
することになりました。

>受信メッセージを表すクラス内に、予め呼び出すメソッドを含ませておけば
具体的には、メッセージを格納するBeanに値をセットする時点で実行して欲しい
メソッドを識別する何か(フラグなど)も一緒にセットして投げるということでしょうか?

さっそくのレスありがとうございます。
100デフォルトの名無しさん:2005/10/12(水) 22:11:14
>>99
>具体的には、メッセージを格納するBeanに値をセットする時点で……

public abstract class Message {        // メッセージの中に
    public abstract void Command();    // 実行したいメソッドを入れておくとか
}

こういうこと。時と場合を選ぶけど。
それ以外なら、switch になるかな〜。
101デフォルトの名無しさん:2005/10/12(水) 22:51:48
日曜からjavaはじめた俺様が来ましたよ。
http://uppp.dip.jp/src/uppp15857.zip.html

ちょっとこのソース見てくれ。
処理は、今の時間を取得し、その時間を
見た目で表示するプログラムなんだが、
周りにjavaやってるやついなくて
誰に聞いていいかわからないので
オマイラの力を借りたい。

とりあえず、おかしなとこを指摘してくれ。

時刻の表示の仕方は
現在時刻が 20:55:30だとすると

1  2 4   8   ←16進数で考える
■ X ■  ■   ←2
■  ■ ■   ■   ←0
X  ■  X  ■   ←5
X  ■  X  ■   ←5
X   X  ■  ■   ←3
■  ■  ■  ■   ←0

といったようになる。
中抜きの四角が出ないのでその辺はつっこまないでくれ。

今のところTimerで一秒ごとに表示切り替えすることを考えている。
102デフォルトの名無しさん:2005/10/12(水) 23:23:31
>>101
private static Calendar calendar = Calendar.getInstance();
private static final String[] TIME_STR = {"■■■■","□■■■","■□■■","□□■■","■■□■","□■□■","■□□■","□□□■","■■■□","□■■□"};

public static synchronized String clock() {
StringBuilder ret = new StringBuilder();

calendar.setTimeInMillis(System.currentTimeMillis());
int h = calendar.get(Calendar.HOUR_OF_DAY);
int m = calendar.get(Calendar.MINUTE);
int s = calendar.get(Calendar.SECOND);

ret.append(TIME_STR[h/10]).append("\n");
ret.append(TIME_STR[h%10]).append("\n");
ret.append(TIME_STR[m/10]).append("\n");
ret.append(TIME_STR[m%10]).append("\n");
ret.append(TIME_STR[s/10]).append("\n");
ret.append(TIME_STR[s%10]).append("\n");

return ret.toString();
}

こんなんじゃ駄目かね?
103デフォルトの名無しさん:2005/10/12(水) 23:44:26
私Java勉強中です。
初心者用の書籍を読み、書いてあることは理解しました。
設計についてもいくつか書籍を呼んだのですが、なかなか
うまくいきません。
どういった方法で学習していけばよいのでしょうか?
特に設計について、何をイメージすればよいのか、
イメージなどせずに処理内容をひたすら追っかけていけばよいのか
よい方法が見つかりません。
教えてください。よろしくお願いします。
104デフォルトの名無しさん:2005/10/12(水) 23:46:46
他のプログラム言語の経験はあるのか?
ないんだったらいきなり設計なんて無理
プログラムを沢山書いて
経験をつまないと
105デフォルトの名無しさん:2005/10/12(水) 23:50:55
>>104
ほかの言語の経験はありません。
設計についていつも怒られています。
愛のムチととってよいのか、できない私が悪いのか・・・。

早速のレスありがとうございます
106デフォルトの名無しさん:2005/10/12(水) 23:53:18
起こられるって誰に?
上司?
107デフォルトの名無しさん:2005/10/12(水) 23:53:59
>>106
そうです。
108ポラン ◆J2XcED9Adw :2005/10/12(水) 23:57:22
>>103
プログラミングと設計って結構大きな壁がありますよね
プログラムは書籍見て例題解けば分りますが
設計はなかなか・・・
とりあえず@Itのアーキテクト部分にヒントになるようなものがありますから
大体目を通して,簡単なソフトの設計をしてみるのが一番かと

そういう私も設計なんて orz
109デフォルトの名無しさん:2005/10/12(水) 23:58:58
言語経験がなくて、まだjava勉強中の人間に設計させるのか
それは大変だな
110103:2005/10/12(水) 23:59:11
>>103
ありがとうございます。
見に行ってみます。
111103:2005/10/13(木) 00:00:18
>>109
設計といっても練習程度ですが。
112デフォルトの名無しさん:2005/10/13(木) 00:01:44
プログラムした事無いSEって結構多いみたいだよ
113デフォルトの名無しさん:2005/10/13(木) 00:18:30
>>102
オ・・・ッ スゲ- ありがとございます。
こういうふううに考えるんですね。

自分の作ったやつ見ると泣きたくなる。
これからもがんばるぜ。

114デフォルトの名無しさん:2005/10/13(木) 01:03:24
>>112
ぶっちゃけた話、俺の会社のSEにプログラム書ける奴が殆どいない。
なぜか運用の俺が殆ど社内の開発やってる状態。
今時のSEなんて、「Windowsの設定ができる人」程度が殆どだ。

まー近いうちに辞めるけど。
115デフォルトの名無しさん:2005/10/13(木) 01:15:37
>今時のSEなんて、「Windowsの設定ができる人」程度

それはちがーう!! と日曜からプログラマな
ネットワーク運用の俺が言ってみる。
116デフォルトの名無しさん:2005/10/13(木) 01:25:47
JPanelをスクロールしたいのですが、どうすればいいのでしょうか。
117デフォルトの名無しさん:2005/10/13(木) 01:27:51
スクロールペイン
118116:2005/10/13(木) 01:52:51
Scrollableを実装していないコンポーネントに
JScrollPane適用するにはどうすれば良いのでしょうか。
119デフォルトの名無しさん:2005/10/13(木) 01:54:38
俺の経験上、プログラムなんて誰でもできると
嘯くようなSEは十中八九無能だったなぁ。
そもそもスーパーが付くSEとPGは紙一重であって
境界線なんてないんだよ。
120デフォルトの名無しさん:2005/10/13(木) 02:01:34
Integerの配列を0で初期化する簡単な方法ありますか?
121116:2005/10/13(木) 02:06:52
Arrays#fill
122デフォルトの名無しさん:2005/10/13(木) 02:17:02
>>116
JScrollPane scroll = new JScrollPane(panel);
123デフォルトの名無しさん:2005/10/13(木) 02:20:51
Linux(Suse 9.2)にsunからダウンロードしたJDKをインストールして、JDKのbinディレクトリに 
パスを通したあと、書きのプログラムをjavacでコンパイルしてjavaコマンドで実行したところ、 

 class HelloWorld { 
static public void main(String args[]){ 
System.out.println("Hello world !"); 



書きのエラーが出ました。何か設定し忘れているのでしょうか?どなたか教えてください。 

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/class 
124デフォルトの名無しさん:2005/10/13(木) 02:24:53
public class HelloWorld
125デフォルトの名無しさん:2005/10/13(木) 02:31:29
public static void main
126デフォルトの名無しさん:2005/10/13(木) 02:40:49
×java HelloWorld.class
○java HelloWorld

>>124,125
127デフォルトの名無しさん:2005/10/13(木) 02:41:16
それは別に問題ないだろ
128123:2005/10/13(木) 06:53:47
publicをつけてみたのですがやはり同じでした。
129デフォルトの名無しさん:2005/10/13(木) 08:41:36
とある画像Aを読み込んだImageオブジェクトを用意しておいて
メインウィンドウのコンストラクタと、paintメソッド内とでそれぞれウィンドウに描画してるんですが
起動時に表示してくれません
これどうしたらいいんでしょうか
130デフォルトの名無しさん:2005/10/13(木) 09:11:45
>>129
同症状が再現される一番短いソース貼って
つまり今のからどんどんシェイプアップしたヤツ
131デフォルトの名無しさん:2005/10/13(木) 09:31:35
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;

public class MainWindow extends JFrame {
  public static void main(String[] args) {
    MainWindow app = new MainWindow();
    app.show();
  }
  private Image imgTest;
  public MainWindow() {
    pack();
    Insets inst = getInsets();
    setSize(16*30 + inst.left*2, 16*30 + inst.top + inst.bottom);
    
    Toolkit tk = Toolkit.getDefaultToolkit();
    imgTest = tk.createImage("Button.jpg");
    
    getGraphics().drawImage(imgTest, 0, 0, this);
  }
  public void paint(Graphics g) {
    super.paint(g);
    g.drawImage(imgTest, 0, 0, this);
  }
}

行数があれなんで、System.exit()は省略してます
132デフォルトの名無しさん:2005/10/13(木) 09:32:44
Cだったら、構造体って

POINT pt1=pt2;

って感じでディープコピーできるわけですが、
java の場合、clone メソッドをディープクローンするように実装しておいて

POINT pt1=(POINT)pt2.clone();

ってやるしかない?
毎回、(POINT)xx.clone()って書くのが面倒なんですよ。
書き忘れて、pt1=pt2ってやったらバグの原因になるし・・・・。
java の使用だと思ってあきらめるしかないですか?
133デフォルトの名無しさん:2005/10/13(木) 09:41:27
つかJavaに構造体なんてあったのか?
134デフォルトの名無しさん:2005/10/13(木) 11:49:41
>>132
それCでもシャローコピーですが?
135デフォルトの名無しさん:2005/10/13(木) 12:53:11
ちなみにclone()もシャローコピー
136デフォルトの名無しさん:2005/10/13(木) 13:35:08
Cは構造体のコピーって未定義だったような
137デフォルトの名無しさん:2005/10/13(木) 13:39:47
>>135
>>132
> clone メソッドをディープクローンするように実装しておいて
138デフォルトの名無しさん:2005/10/13(木) 13:50:06
初心者で恥ずかしながら質問させていただきます

JFrameを継承したクラスに
5つのボタンを持つパネルを貼っています.
そのボタンには初期値として乱数で割り当てられた数値のラベルがあり
それらのボタンとは別に配置してあるソートボタンを押すとラベルの昇順に並べて表示する

という処理を行っているのですが,
ソートボタンを押して表示させようとしても
画面を大きくしたり,マウスを5つのボタンの上に持っていくと表示されるのですが
ソートボタンを押しただけでは表示されません...

public void actionPerformed
の中ではソート処理と
ソートによって並び替えられたボタンをパネルにaddして
パネルのrepaint()を呼び出しています
139デフォルトの名無しさん:2005/10/13(木) 14:08:06
>>131
JFrame では描画メソッドのオーバーライドをするもんでない。
JComponent あたりを継承して、その paintComponent メソッドで描画することにして、
JFrame の contentPane に配置するべき。

>>138
revalidate でどうじゃろか。
140138:2005/10/13(木) 14:16:32
>>139
解決しました!
本当に有難うございます( ´Д⊂

repaint()とrevalidate()の使い分けの指針みたいなものがあるのでしょうか・・・
141デフォルトの名無しさん:2005/10/13(木) 14:37:18
repaintはpaintComponentをよびだすだけ
コンポーネントの配置関係とは別の話
142131:2005/10/13(木) 14:39:51
>>139
JComponentを継承してクラスを作り、その中で↓のようにpaintComponentを定義してみました

protected void paintComponent(Graphics g) {
  super.paintComponent(g);
  g.drawImage(imgTest, 0, 0, this);
}

で、実行してみるとヌルポが出ました・・・
これじゃダメなんですか?
143デフォルトの名無しさん:2005/10/13(木) 14:45:24
>>142
画像をロードしてないんじゃ?
ツールキットのロードは非同期処理だよ?

おとなしくImageIOつかいなされ
144デフォルトの名無しさん:2005/10/13(木) 15:08:19
>>132
java.awt.Point p2 = new Point(p1)
でがまん。あとcの代入はディープコピーじゃないよ。
145デフォルトの名無しさん:2005/10/13(木) 15:30:09
>>143
ImageIO.read(new File("ファイル名");
としたんですが、読み込めずにnullになります
画像はJPEGなんですが、サポート形式を列挙してみても、JPEGは対応しているとでます
ImageIOでの画像読み込みって、これで合ってますよね?
146デフォルトの名無しさん:2005/10/13(木) 15:51:13
>>83
doMethod(int x, int y, long[] obj){
}

はいこれが可変長引数
末端だけ可変長引数にできる。

Java5からは以下と上記は同義である。
doMethod(int x, int y, long... obj){
}

ただし以下のようなメソッドシグニチャ定義はできず、コンパイルエラーとなる。
doMethod(int x, int y, long... obj, int y){
}


147デフォルトの名無しさん:2005/10/13(木) 16:11:47
>>145
ファイル名ミスってるとか画像ファイルが壊れてるとか

ファイル名はフルパスでいれた?
148デフォルトの名無しさん:2005/10/13(木) 16:15:43
>>147
いえ、相対パスです
フルパスじゃないとダメなんですか・・・
149デフォルトの名無しさん:2005/10/13(木) 16:36:28
カレントディレクトリの指定がおかしいとおもってね

IDE使ってる人はよくそれでミスしてるから
150デフォルトの名無しさん:2005/10/13(木) 17:03:32
>>131
app.show();
  ↓
app.setVisible(true);
151デフォルトの名無しさん:2005/10/13(木) 17:05:05
>>150
それはどういう・・・?
showはダメってこと?
152デフォルトの名無しさん:2005/10/13(木) 17:07:46
今は非推奨になってる
153デフォルトの名無しさん:2005/10/13(木) 17:37:46
>>131
Button.jpg → this.getClass().Button.jpg
15494:2005/10/13(木) 17:49:48
以下のようにボタン16個をGridLayoutで配置するプログラムを作ったところ、
8行目のfor(int i=0; i<b.length; i++)に「型の開始が不正です」というエラーが出て
一番最後の}に「<identifier> がありません。」というエラーが出てしまいました。
理由が全然わからないんですけど、どこか間違ってますか?
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Sample extends JFrame
{
  Button b[] = new Button[16];
  for(int i=0; i<b.length; i++)
  {
   b[i] = new Button("ボタン"+i);
  }
  Sample()
  {
    super("sample");
    Container c = getContentPane();
    c.setLayout(new GridLayout(4,4,0,0));
    for(i=0; i<b.length; i++)
    {
      c.add(b[i]);
    }
  }
  public static void main(String[] args)
  {
    JFrame frame = new Sample();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(800,800);
    frame.setVisible(true);
  }
}
155デフォルトの名無しさん:2005/10/13(木) 18:10:16
>>154
for の場所が変。
コンストラクタか、さもなくばどっかのメソッドに入れるべし。

それはそれとして、何を作ろうとしてるかすぐ分かるな(w
156デフォルトの名無しさん:2005/10/13(木) 18:14:07
>>154
そのforループをsuper("sample"); の次の行に移動させましょう。

あと、2つめのループのところで軽いエラーが出るので直すこと。
15794:2005/10/13(木) 18:18:23
>>155-156
ああそうか、フレームに貼るからコンストラクタに入れなきゃいけないのか。
マジでありがとう。

で、お察しの通り電卓作ってますw
158デフォルトの名無しさん:2005/10/13(木) 18:29:12
>>157
Swing使ってるならJButtonつかえ
AWTは危険
159デフォルトの名無しさん:2005/10/13(木) 19:08:22
>>114
> >>112
> ぶっちゃけた話、俺の会社のSEにプログラム書ける奴が殆どいない。
> なぜか運用の俺が殆ど社内の開発やってる状態。
> 今時のSEなんて、「Windowsの設定ができる人」程度が殆どだ。

そのSEウザーってかそんな奴にSEなんて名乗らせるべきじゃなーだ
営業以下の低レベル
160デフォルトの名無しさん:2005/10/13(木) 19:13:12
public と private ってどう違うの
161デフォルトの名無しさん:2005/10/13(木) 19:15:00
>>132
> Cだったら、構造体って
>
> POINT pt1=pt2;
>
> って感じでディープコピーできるわけですが、
> java の場合、clone メソッドをディープクローンするように実装しておいて
>
> POINT pt1=(POINT)pt2.clone();
>
> ってやるしかない?
> 毎回、(POINT)xx.clone()って書くのが面倒なんですよ。
> 書き忘れて、pt1=pt2ってやったらバグの原因になるし・・・・。
> java の使用だと思ってあきらめるしかないですか?


POINTクラスが不変クラスやシングルトンクラスであれば
clone()使わなくてもとくに問題はない。

不変クラスの作り方については、自分でググッてね。

POINT型へのダウンキャストはJava5からはGenericsによって
不要になったと思う。
Cloneableインターフェースを実装し
とりあえず、clone()メソッドをオーバーライドしておくことだね。
162デフォルトの名無しさん:2005/10/13(木) 19:17:00
>>160
大衆と二等兵との違い
163デフォルトの名無しさん:2005/10/13(木) 19:17:58
プライベート・ライアンを思い出した
164132:2005/10/13(木) 20:28:31
>>144
コピーコンストラクタってJavaでも普通に使われるんですね。
その方法で行ってみたいと思います。

>>161
不変クラスについては知りませんでした。
それも検討してみます。
165デフォルトの名無しさん:2005/10/13(木) 20:48:41
Unix/Linuxのtime関数みたいな、現在の日時をある日からの秒数で取得できるようなメソッドありませんか?
166デフォルトの名無しさん:2005/10/13(木) 20:53:01
Eclipseで、拡張forループを使用しようとして、
for(ObjectA a : obj){

}
と言う風に記述したところ
Syntax error, 'for each' statements are only available if source level is 5.0
と表示され、実行できません・・・
ObjectAは作成したクラスの型なのですが、level is 5.0の部分が分からず困っております。
どうしてこのようなエラーが出るのでしょうか・・・
167デフォルトの名無しさん:2005/10/13(木) 21:07:52
jdk5.0は入っているのか?
入っているなら設定でコンパイラのバージョンを5.0に変更
168デフォルトの名無しさん:2005/10/13(木) 21:10:24
>>144
Javaではclone()をオーバーライドするだけで済むというのに
コピーコンストラクタなんかいらんだろ
169デフォルトの名無しさん:2005/10/13(木) 21:11:15
>>165
ある。
170デフォルトの名無しさん:2005/10/13(木) 21:18:50
>>169
どのクラスにあるんですか?
171デフォルトの名無しさん:2005/10/13(木) 21:23:17
電卓作るのはいい練習なの?
めんどくさいだけだと思うんですが?
172デフォルトの名無しさん:2005/10/13(木) 21:37:30
>>171
頭ん中ですぐ作れるならそいつにとっては「めんどくさいだけ」
頭でぱっとイメージできない段階なら「いい練習になる」

簡単に作れそうだと思ったのに実際には作れなくてそのままほっとくのはダメな奴
173デフォルトの名無しさん:2005/10/13(木) 21:39:28
>>54
時代遅れっつうかダサいっていうかセンス無い
174デフォルトの名無しさん:2005/10/13(木) 22:04:32
>>167
初歩的な事だったんですね、すません。
なるほどlevel5.0はバージョンの事だったのか・・・
175デフォルトの名無しさん:2005/10/13(木) 22:48:30
>>168
clone をオーバライドするときとはサブクラスでの動作が違う。
176デフォルトの名無しさん:2005/10/13(木) 23:03:30
>>168
いらんといわれてもすでにあるから。
177デフォルトの名無しさん:2005/10/13(木) 23:11:00
>>168
m9(^Д^)プギャー
178デフォルトの名無しさん:2005/10/13(木) 23:16:13
Windows2000にJ2EE1.4をインストールしようとしてsunのページからダウンロードしてきたんですが、
J2EEにJDK1.4が含まれてるみたいなんです。
自分のPCにはJDK5.0が既にインストールされてるんですが、
これってどうなるんでしょう?
179デフォルトの名無しさん:2005/10/13(木) 23:17:12
別に問題ない
180デフォルトの名無しさん:2005/10/13(木) 23:42:39
逆行列を返す関数
public Matrix inv()
ってのはどうやってつかえばいいですか?

いま配列で3×3行列を保存できるようにしてるんですけど
そのint test[][] = new int[3][3] ;
やったら
public Matrix inv(test)
ってかんじにすれば逆行列になりますか?
181デフォルトの名無しさん:2005/10/14(金) 00:20:55
>134
pt1とpt2がどちらも実体であればディープコピーになるんじゃないかな?
コンパイラが吐いたアセンブリを見たらmemcpy()が呼ばれていたような気がする。
182デフォルトの名無しさん:2005/10/14(金) 00:57:30
>>181
m9(^Д^)プギャー
183デフォルトの名無しさん:2005/10/14(金) 02:10:01
StrutsとTomcatとmysqlでWebアプリ作ってたときに人から突っ込まれたことについて質問です。

public class HogeUtil{
 public static List getHogeList(Connection con){
  return con.execute(hogesql);
 }
}

↑こんな感じのstaticメソッドを作ったら、
「マルチスレッドのアプリで、staticメソッド内でSQLを発行するのは
他のスレッドによって変数が書き換えられて正しい結果が期待できない」
と言われてしまいました。
これは本当なんでしょうか?
(ちなみに、static じゃなくクラスをnew してメソッドを呼べばOKらしいですが。)
184デフォルトの名無しさん:2005/10/14(金) 02:24:04
>>183
ウソ

メソッドの中でインスタンス変数やstatic変数を使っている場合,
そのメソッドが複数スレッドから共有されるオブジェクトに属しているなら,
「常に」正しい結果が期待できるかどうかを考慮しなければならない.
これはそのメソッドがstaticか否かに拠らない.

注意すべき,というか,使うべきでないのは「変更可能なstatic変数」であってstaticメソッドではない.
185184:2005/10/14(金) 02:38:08
>>183
> return con.execute(hogesql);

この hogesql が変更可能なstatic変数であるなら,
「正しい結果を期待できない」のはyes.

この hogesql が変更可能なstatic変数であるなら,
メソッドだけを非staticにしてもやっぱり「正しい結果を期待できない」


逆に,仮に↓であれば,メソッドがstaticかどうかに関係なく,期待した結果を得られる.
private static final String hogesql = "select ...";
186183:2005/10/14(金) 02:49:53
>>184>>185
よくわかりますた(もちろんhogesqlはstaticでない変数です)。

最初に聞いたそのときはそんな馬鹿なと思ったんですが、
conの実装依存じゃないか?とか思い始めてしまい、信じかけていました。
ありがとうございました。
187デフォルトの名無しさん:2005/10/14(金) 07:59:00
スレ違いかも知れませんが、エクリプスを使っているのですが、
再起動するたびに左側のエクスプローラみたいな奴のツリーが
閉じた状態になってしまうのですが、これって前回起動時の状態
を維持ってできないでしょうか?
188デフォルトの名無しさん:2005/10/14(金) 08:09:47
Wikiに池
189184:2005/10/14(金) 09:13:51
>>186
少し訂正
使うべきでないのは「変更可能な被共有オブジェクト」
staticでないインスタンス変数でも,インスタンスが複数スレッドから共有されてたらアウト.
Servletのインスタンス変数とかね.

その中でも(変更可能な)static変数が極めて危険なのは「非共有にする術が無い」から.

マルチスレッドプログラミングの第一歩は「できる限り被共有オブジェクトを作らない」こと.
190デフォルトの名無しさん:2005/10/14(金) 09:38:45
OS:windows

http://java.sun.comからjdk-1_5_0_05-nb-4_1-win-ml.exeを落としてきました
でインストールをしC:\Program Files\Java\jdk1.5.0_05\binに
public class Jsmp1{
public static void main(String args[]) {
System.out.println("My first Java.");
}
}
という内容のJsmp1.javaソースを作りjavacでコンパイルしJsmp1.classというclassファイルを作りました

続く
191デフォルトの名無しさん:2005/10/14(金) 09:41:41
そのclassファイルを実行しようとjava Jsmp1と入れるとException in thread "main" java.lang.NoClassDefFoundError: Jsmp1というエラーが出ます
直訳すると「糸の「主な」java.lang.NoClassDefFoundErrorの例外: Jsmp1」という意味らしいのですが
きちんとclassファイルを実行するにはどうしたらいいのでしょうか?
192デフォルトの名無しさん:2005/10/14(金) 09:53:41
ttp://game10.2ch.net/test/read.cgi/mmosaloon/1129168134/725-
すみません
このバカ連れて帰りますね
193デフォルトの名無しさん:2005/10/14(金) 09:53:56
jdkのbinディレクトリにクラス作るやつ初めて見た
とりあえず違う場所に作業フォルダ作れば
194デフォルトの名無しさん:2005/10/14(金) 09:58:59
解決できないので、もう一度質問させてください

Linux(Suse 9.2)にsunからダウンロードしたJDKをインストールして、JDKのbinディレクトリに  
パスを通したあと、書きのプログラムをjavacでコンパイルしてjavaコマンドで実行したところ、  

public class HelloWorld {  
static public void main(String args[]){  
System.out.println("Hello world !");  
}  
}  

書きのエラーが出ます。どのプログラムも開発できない状態なので、どなたか教えていただけないでしょうか?  

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/class  

195デフォルトの名無しさん:2005/10/14(金) 10:02:10
jdkのbinディレクトリにクラス作った者ですがw

MS-DOSの作業ディレクトリが最初マイドキュメントだったのですが、そこの状態だとjavacコマンドが無効だったので
jdkのbinを作業ディレクトリにしました

MS-DOSの作業ディレクトリをどこにすればいいのか教えてください
196デフォルトの名無しさん:2005/10/14(金) 10:06:14
JFrameを継承したメインクラスにボタンを貼り付けて表示する場合について質問です

フレーム全体をBorderLayoutで,それぞれのNorth,South等の各領域にボタンを複数持つパネルを
貼り付けていきたいんですが,JFrameのgetContentPane().Add()で各領域に貼り付ける方法

全体用のパネルを作って,それをBorderLayoutにセットして,その上にボタンがあるパネルを貼り付け
最後に全体用のパネルをJFrameのgetContentPane().Add()する方法

とりあえず後者にしてみようと思うのですが一般的にはどちらの方が多いのでしょうか?
197デフォルトの名無しさん:2005/10/14(金) 10:08:51
>>194
>>195
このスレの1のサイト見た上での質問なのか?
198デフォルトの名無しさん:2005/10/14(金) 10:54:48
>>1を見ずに書き込みをしてましたクラスパッチを設定してみます
199デフォルトの名無しさん:2005/10/14(金) 11:04:27
>>196
どっちでもいいが、ウインドウのクライアントサイズを自前で処理したいのなら
パネルをまず貼り付けてたほうがpack一発でサイズがきまるのでいい

ウインドウの隅を5から10ピクセルあけたほうが画面はすっきりするので
パネルにエンプティボーダいれてみると楽だとかはある
200デフォルトの名無しさん:2005/10/14(金) 11:09:46
クラスパッチ
201デフォルトの名無しさん:2005/10/14(金) 11:11:51
すいませんjdkのbinディレクトリにクラスを作った者ですがクラスパッチを設定したら
出来るようになりました

初歩的な質問すみなせんでした^^;
202デフォルトの名無しさん:2005/10/14(金) 11:23:08
クラスパッチじゃなくてクラスパスな
203デフォルトの名無しさん:2005/10/14(金) 12:02:06
初心者丸出しの質問で申し訳ありません。
必死でしらべたのですがわかりません…


public class Jikken2Class {

public static void main(String[] args) {
System.out.println("Hello,WORLD!!");

}
}
というクラスを作成しましたが、

エクリプスでは実行できるのですが、
MS-DOSプロンプトで実行すると

Exception in thread "main" java.lang.NoClassDerFoundEffor: Jikken2Class/java

というエラーが出てしまいます。
これはなぜなのでしょうか…

どうかご教授願います。
204デフォルトの名無しさん:2005/10/14(金) 12:03:32
直前のレスも見ず,>>1も見ない
こうなるともう荒らしだな
205デフォルトの名無しさん:2005/10/14(金) 12:07:37
DOM の Text 要素に "\r\n" を入れて XML 出力すると <改行> と
出てしまうようだが、XML って "\n" のみしか改行とみなさない仕様
なんだっけ?

java version "1.4.2_09"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_09-b05)
Java HotSpot(TM) Client VM (build 1.4.2_09-b05, mixed mode)
206デフォルトの名無しさん:2005/10/14(金) 12:08:18
ごめん、消えた

&#13;<改行>
207デフォルトの名無しさん:2005/10/14(金) 12:33:08
>>199
有難うございます
参考にさせていただきます
208デフォルトの名無しさん:2005/10/14(金) 12:50:30
パスの設定をしろ
209デフォルトの名無しさん:2005/10/14(金) 12:58:47
最低限 >>1 も読まないやつは初心者以下なので歓迎しません
210デフォルトの名無しさん:2005/10/14(金) 14:49:02
>>192
ワロタ


734 名前:ネトゲ廃人@名無し 本日のレス 投稿日:2005/10/14(金) 09:45:18 ???
みんなーーーサンクソー。゚(゚´Д`゚)゚。
ついでにhttp://pc8.2ch.net/test/read.cgi/tech/1129019555/ の190と191の質問分かったら教えてくれないか?
211デフォルトの名無しさん:2005/10/14(金) 15:05:05
お聞きしたいことがあります
Javaでパッケージを使うと
jp.com.tests.a;
とかなりますよね
この場合実際にWindowsならjp\com\test\aってフォルダが無いと駄目らしいんですが
これってEclipseのPluginのようにjp.com.test.aってフォルダを作る方法とかないんでしょうか?

212デフォルトの名無しさん:2005/10/14(金) 15:07:36
>>211
> EclipseのPluginのように
ってのがよくわからん。
Eclipseの「パッケージ・エクスプローラー」ビューのこと?
あれは実際にはjp\com\test\aというディレクトリ階層構成だが、
Eclipse上では「jp.com.test.a」と見せているだけだよ
213デフォルトの名無しさん:2005/10/14(金) 15:15:53
>>212
言葉足らずで申し訳ありません

> EclipseのPluginのように
というのはEclipse.exeがあるフォルダのPluginフォルダのことです
そのフォルダの中身はorg.eclipse.〜というフォルダがあったもので
そのような方法が有るのかとふと思いまして・・・


話は少し変わりますが,実際にフォルダが階層になっている場合は
package jp.com.tests.a;
package jp.com.tests.b;

というパッケージを作ったら
jp\com\testsに両方が無いと駄目なのですよね・・
214デフォルトの名無しさん:2005/10/14(金) 15:19:40
ディレクトリ名を jp.com.test.a にする?
それは非常にお勧めできない。
Eclipseのやり方、いや、一般的なやりかたにしなさい。

さもないとそのコードを丸投げされた他社に迷惑がかかる。

215デフォルトの名無しさん:2005/10/14(金) 15:22:54
>>213
ClassLoaderを継承して自分で作れば出来るはず。
初心者スレではオススメできない方法だな。 つーか普通はまずやらない。

そんなにフォルダが嫌い?
216デフォルトの名無しさん:2005/10/14(金) 15:23:53
でも、 ディレクトリ名を jp.com.test.a にするのは、ある意味正しい。
Javaのパッケージは正確には階層構造・ツリー構造ではないから。
jp.com.test パッケージと jp.com.test.a パッケージには何ら親子関係は存在せず、
全く別のパッケージとして扱われているにすぎないのだから。

でも、他社(というか他人)が「へ?」と思うことはしない方がいい、には一票。
217デフォルトの名無しさん:2005/10/14(金) 15:29:33
>>1を見ていませんでした。それにしても環境ぐらい自動で設定してくれればいいのに。
218デフォルトの名無しさん:2005/10/14(金) 15:30:04
>>215
その前に jp.com.tests.a ってディレクトリに対応したコンパイラを書かないとダメなんでは?
219211:2005/10/14(金) 15:35:04
>>214>>215>>216
アドバイス有難うございます
素直に階層構造にすることにします.

>>215
いえ,嫌いじゃないです.
ただ,こうゆうやり方もあるのかな?と疑問に思ったもので;

>>216
階層構造でもなく親子関係は無いんですね
それなのにもしjp.com.test,jp.com.test.aのようなパッケージングをした場合には
実際にはクラスを親子関係のあるフォルダ配置しないと
動かないんですね・・・

脳内で整理してきます
220デフォルトの名無しさん:2005/10/14(金) 15:38:14
>>211-218
おまえら・・・。


Eclipse の plugin は ディレクトリ名を ClassLoader が解釈してるわけじゃないだろ。
221デフォルトの名無しさん:2005/10/14(金) 15:44:07
windows用のコンパイラ・ランタイムが、パッケージをそういう風に管理することに
しているだけで、javaの仕様としては階層構造でなくてもいいのだよ。
階層的な「ディレクトリ」って概念が無いプラットフォームも存在するから。

つーても、俺は階層構造のヤツしか知らんのだがな。 J2MEとかどうなのかな。
AS400でも、java環境から見える側では仮想的に階層構造になってるし。
222デフォルトの名無しさん:2005/10/14(金) 15:44:09
>>220
そもそも plugin フォルダのはバージョン番号とか付いてるし、
Java の言語機能の package とは何の関係も無い。
223デフォルトの名無しさん:2005/10/14(金) 15:52:50
フォルダ名が他のPluginとバッティングしないようにパッケージ名を含めた名前にしてるってだけかもね。
224デフォルトの名無しさん:2005/10/14(金) 19:21:48
>>205
DOMのレベルではそのとおり。\nのみが改行コード。
\r\nで出力したかったら、シリアライズするコードで何かする必要がある。
225デフォルトの名無しさん:2005/10/14(金) 20:11:49
Javaで着メロ読み込む着メロプレイヤーアプリ作りたいです
キャリアごとの拡張命令じゃないと流せないらしいとのことなんですが
ご指導のほどお願いします
226デフォルトの名無しさん:2005/10/14(金) 20:12:57
JavaSEで流したいのか?
227デフォルトの名無しさん:2005/10/14(金) 23:00:17
教えていただきたいスクリプトがあります。>>1のWikiを見てもわからなかっので・・・。

機動戦士ガンダムに出てくる、ハロの動きをするスクリプトを作りたいのですが

どうやったら、ランダムにはねるようになるのかわからなくて^^;

よろしくお願いします。
228デフォルトの名無しさん:2005/10/14(金) 23:02:11
乱数をお使いください
229デフォルトの名無しさん:2005/10/14(金) 23:18:15
普通にソース書いてただけなのに、警告で

"ex1.java": パッケージ C:\Documents and Settings\Administrator\jbproject\Lesson4\src\lesson4\ex1.java
(ソース unnamed package に記述) がディレクトリ C:\Documents and Settings\Administrator\jbproject\Lesson4\src\lesson4\ex1.java
に合致しません。

というエラーが出てしまいます。原因は何なんでしょうか?
230デフォルトの名無しさん:2005/10/14(金) 23:24:34
ありえねぇパッケージ名だな
231デフォルトの名無しさん:2005/10/14(金) 23:26:51
>>229
クラスパスが間違ってるから
232デフォルトの名無しさん:2005/10/15(土) 00:34:30
public class Question4 {
public static void main(String[] args){
System.out.println("今何時ですか?(24時間表記で)");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in),1);
try{
String line = reader.readLine();
int t = Integer.parseInt(line);

if (t >= 24 || 0 > t){
System.out.println(t + "時 時刻が正しくありません。");
}
else if(t >= 0 && 12 >= t){
System.out.println(t + "時 午前です。");
}
else if(t >= 13 && 23 >= t){
System.out.println(t + "時 午後です。");
}
else{
System.out.println(t + "時 正午です。");
}

catch(IOException e){
System.out.println(e);
}
catch(NumberFormatException e){
System.out.println("不正な時刻です。");
}
}
}
}

これで「catchへのtryがありません」というエラーが出るんですがどうしてですか?
233デフォルトの名無しさん:2005/10/15(土) 00:38:41
括弧の対応がおかしいだけ
234デフォルトの名無しさん:2005/10/15(土) 03:35:46
public class Question4 {
    public static void main(String[] args){ 
        System.out.println("今何時ですか?(24時間表記で)"); 
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in),1); 
        
        try{ ・・・ 
             → catch(IOException e){ 
                System.out.println(e); 
            } 
               catch(NumberFormatException e){ 
                System.out.println("不正な時刻です。"); 
            } 
        } 
    } 
235login:Penguin:2005/10/15(土) 10:55:19
jar -cv -f XXX.jar -m MANIFEST.MF *.class

↑XXX.jarとMANIFEST.MFを用意して、実行汁

感想:
ピーピーうるさくてかなわんwwww


236デフォルトの名無しさん:2005/10/15(土) 13:37:25
>>216
> でも、 ディレクトリ名を jp.com.test.a にするのは、ある意味正しい。
> Javaのパッケージは正確には階層構造・ツリー構造ではないから。
> jp.com.test パッケージと jp.com.test.a パッケージには何ら親子関係は存在せず、
> 全く別のパッケージとして扱われているにすぎないのだから。

異議ありっ!
先生、パッケージjp.com.test.aとパッケージjp.com.test.bとパッケージjp.com.testに
それぞれクラスが入っていたら煩雑になってツリーが形成されず
パッケージの数が数百と膨大なとき、ファイルを読みにくいんですが。

よってディレクトリでわけるべきだと私は思います。
237デフォルトの名無しさん:2005/10/15(土) 13:41:43
>>211
Ecipseは3.1からパッケージ名がJARファイル名になった。
ディレクトリは関係ない。Eclipseを起動したときなどに
自動的にJARが展開されTomcatのcontextのように自動的にディレクトリができる。
238デフォルトの名無しさん:2005/10/15(土) 13:43:01
>>235
そんなことをするならAntの<jar>タスクの使用をお勧め汁
さらにjarの中で<manifest>タグを上手く使って
マニフェストファイルもantが自動生成するのだ
239デフォルトの名無しさん:2005/10/15(土) 13:43:46
>>236
規格の話と運用の話をごっちゃにするなよ。
確かにディレクトリツリーの方が運用上使いやすいが
規格上はそんなことはどうでもよいって話だろ。
240デフォルトの名無しさん:2005/10/15(土) 14:34:45

servletで404エラーになります
これを直す方法をどなたかご教授ください。お願いします。

ログです↓
2005-10-15 14:21:50 StandardWrapper[/MyWebApp:org.apache.catalina.INVOKER.MyfirstServlet]: サーブレット org.apache.catalina.INVOKER.MyfirstServlet を利用不可能にマークします
2005-10-15 14:21:50 invoker: パス /MyWebApp/servlet/MyfirstServlet にサーブレットインスタンスを割り当てることができません
javax.servlet.ServletException: ラッパがサーブレットクラス MyfirstServlet またはそれが依存するクラスを見つけることができません
241デフォルトの名無しさん:2005/10/15(土) 15:36:58
Swing のコンポーネントって Document や ListModel とかのクラスに addXxxListener() して
モデルの状態変更の通知を受けて自分も更新してるじゃん。で、その Swing コンポーネント
が消える時には removeXxxListener() しなきゃいけないと思うんだけど、具体的にどの
タイミング (つうかメソッドの中) でやっておるのですか?
242デフォルトの名無しさん:2005/10/15(土) 15:54:19
あんまりremoveListenerは使ってないと思うよ
コンポーネントを破棄したらリスナーいみなくなるわけだし
243デフォルトの名無しさん:2005/10/15(土) 15:55:04
とあるコンポーネントの描画内容を Image にしたいんですが (スクリーン
キャプチャみたいな感じ)、Image.getGraphics() をどのメソッドに渡せば
良いんでしょうか? また、コンポーネントを画面に表示しないでそういった
ことはできないでしょうか?
244デフォルトの名無しさん:2005/10/15(土) 15:59:37
>>242
マジで? リスナのインスタンスはモデル側 (Document とか ListModel とか) が持ってるから、
モデルを使いまわそうとすればメモリリークになるじゃん。リスナは更新通知のためにコンポー
ネントも参照してるだろうから、それだとマジでコンポーネントも GC されないことになるんだけど。
245デフォルトの名無しさん:2005/10/15(土) 16:24:26
>マジで? リスナのインスタンスはモデル側 (Document とか ListModel とか) が持ってるから

どういう意味か説明して欲しい
246デフォルトの名無しさん:2005/10/15(土) 16:32:55
普通リスナーは通知する方が保持してるでしょ。保持してなかったらイベント起きても
通知できないし。
247デフォルトの名無しさん:2005/10/15(土) 16:44:59
for文の基本のプログラムで、
public class Graph {
public static void main(String[] args){
for (int i = 0; i < 10 ; i++){
System.out.println(i + ":");
for (int j = 0; j < i; j++){
System.out.println("*");
}
}
System.out.println("");
}
}

これをjBuilder2005で実行すると、
0:
1:
*
2:
*
*
…みたいな感じになってしまうんですが、*を:の横に並べるにはどうしたらいいんでしょうか?
248デフォルトの名無しさん:2005/10/15(土) 16:45:51
print
249デフォルトの名無しさん:2005/10/15(土) 16:53:19
printlnがどういう動作かを調べることもせんのかキミは
250デフォルトの名無しさん:2005/10/15(土) 17:01:27
251デフォルトの名無しさん:2005/10/15(土) 17:09:18
>>241
JTableみたけどsetModel内でしかremoveTableModelListener呼んでないな
JTable#setModelに自分で作ったaddListener呼ばれても無視するモデルをセットするしかないかな
252デフォルトの名無しさん:2005/10/15(土) 17:52:06
>>243
通常描画内容はオフスクリーンバッファに描画しておいて、その結果を画面に出すだけで
画面の内容を取り込むということはしない
253デフォルトの名無しさん:2005/10/15(土) 17:52:55
>>251
JTable のソースってどこにありますか?
254デフォルトの名無しさん:2005/10/15(土) 17:54:54
>>241
オブザーバーパターンがどういう動きしてるかしってるか?
255デフォルトの名無しさん:2005/10/15(土) 17:56:01
>>253
JDKのディレクトリにsrc.zipってのがあるから展開
256デフォルトの名無しさん:2005/10/15(土) 18:17:15
>>240
ご教授ではなくご教示くださいのほうが
失礼に値しにくい
257デフォルトの名無しさん:2005/10/15(土) 18:19:07
>>255
Eclipseを使えば展開せずとも
Java標準APIソースコードの閲覧はもっと容易になるのだが。
258デフォルトの名無しさん:2005/10/15(土) 18:23:38
Eclipseで当該コードを選択して宣言を開くで見れる
259デフォルトの名無しさん:2005/10/15(土) 18:27:34
>>240
Tomcatか?
Tomcatを停止し、
workの中をすべて削除してから
再起動して
Servletのページを見てみるとどうなる?
server.xml,
contextのweb.xmlの設定はどうなっている? XDocletで自動生成か?

260デフォルトの名無しさん:2005/10/15(土) 18:37:40
なんかEclipseならとか厨がわいてるが、他のIDEならもっと楽に見れるんじゃね?
261デフォルトの名無しさん:2005/10/15(土) 18:39:34
あっそ
262デフォルトの名無しさん:2005/10/15(土) 21:00:45
>>256〜258
役たたずどもだまっとれ
263デフォルトの名無しさん:2005/10/15(土) 21:26:48
SpringLayoutを指定したJPanelに、JTableを貼り付けたJScrollPaneを置いたのですが
JScrollPaneのサイズがJTableのサイズよりも大きくなってしまいます。
JScrollPaneのサイズをJTableのサイズに合わせる方法はありますか?
264デフォルトの名無しさん:2005/10/15(土) 22:02:17
>>251
やっぱり。じゃあたとえば TableModel のインスタンスを一つだけ保持しておいて、サブウィン
ドウやダイアログが表示されるたびに新しい JTable 作って setModel() とかいう使い方
してるとメモリリークになるんだなー。

>>254
知ってるが話の本題と関係ないだろ。それともオブザーバーパターンだからリスナを外す
必要はないとか、意味不明な珍説でも披露する気?
265デフォルトの名無しさん:2005/10/15(土) 22:38:35
>>264
GCを知らない人間みっけ
266デフォルトの名無しさん:2005/10/15(土) 22:45:46
>>264
オブザーバーパターンわかってるならViewが破棄されたタイミングは問題ないのはわからないか?
267横槍:2005/10/15(土) 23:42:51
>>264 の言いたいことってこういうことだろ?
 private static class ShowTableAction extends AbstractAction {
  private DefaultTableModel model;
  
  public ShowTableAction() {
   super("Show Table");
   model = new DefaultTableModel();
  }
  
  public void actionPerformed(ActionEvent ev) {
   JTable table = new JTable(model) {
    public void finalize() throws Throwable {
     super.finalize();
     System.out.println("bye!");
    }
   };
   
   JOptionPane.showMessageDialog(null, table, "", JOptionPane.PLAIN_MESSAGE);
   table.setModel(new DefaultTableModel()); //入れるのと入れないのとで大違い
   System.gc();
   System.out.println(model.getTableModelListeners().length); //入れとかないと増える一方
  }
 }

ま、要するに、TableModel を使い回しするのをやめればいいのだ。
変化を何かに通知する目的までを含めて TableModel であることに意義があるのだから、
影で保持しとく間までも、TableModel の姿をしておく必要はない。
268デフォルトの名無しさん:2005/10/15(土) 23:45:40
SwingでModelの共有やるとおかしくなるって過去に何度もでてるんじゃ
269デフォルトの名無しさん:2005/10/16(日) 00:01:36
>>265〜267
プログラマやめたほうがいいよ
270デフォルトの名無しさん:2005/10/16(日) 00:16:08
>262,269
書くなら>>256-258みたいに半角ハイフンで。
271デフォルトの名無しさん:2005/10/16(日) 00:53:59
>>270-270
ありがとう
272デフォルトの名無しさん:2005/10/16(日) 01:23:40
そろそろ釣れたとかいいだすんかね
273デフォルトの名無しさん:2005/10/16(日) 02:58:52
>>265
アホ発見。リスナはモデルから参照されてるため、モデルのインスタンスが GC の対象に
ならない限りいつまでたっても回収されない。そのリスナが JTable とか参照してたら
そいつらも含めて回収されない。

>>266
ビューが破棄されたタイミングでリスナも破棄されないのが問題。つか、何が言いたいか
意味不明。まぁ君の脳内ではリスナやビューののリークくらい問題ではないのかも知れないが。

>>267
そうやって GUI コンポーネントを使い終わったタイミングで setModel() とかして明示的に
永続性を持つモデルを削除するしかないな。

だが TableModel の姿をしていない大元の「モデル」から TableModel が変更通知を
受けるって設計でも、TableModel は単なるイベントのゲートウェイになってるってだけで、
問題は解決していないな。大本のモデルが TableModel への通知を切り離す
タイミングはいつにする?
274デフォルトの名無しさん:2005/10/16(日) 03:45:47
モデルを使いまわそうって時点で
使いまわす側がリスナのadd/removeを管理すべきなのは
当たり前なような気がするが。
275質問:2005/10/16(日) 03:52:34
後処理を忘れたクライアントに対する安全ネットのように、
ファイナライザを利用して自分自身の後処理をする場合、
ファイナライザが別スレッドで実行されることを気にして
オブジェクトをスレッドセーフに書く
などという、なんか本末転倒なことはしなくて良いの?
276デフォルトの名無しさん:2005/10/16(日) 09:21:46
ファイナライザ呼ばれてるって事は他のスレッドは参照もってない、つまりメソッド起動できないからいいんじゃないの?
多分。
277デフォルトの名無しさん:2005/10/16(日) 09:53:20
>>273
本気で言ってるなら対したもんだ
278デフォルトの名無しさん:2005/10/16(日) 11:11:57
>>276
スレッド間の排他性についてはその通りだけど、
スレッド間の可視性についてはどうよ?
279デフォルトの名無しさん:2005/10/16(日) 12:48:56
スレッド間の可視性についてはどうよ?
280デフォルトの名無しさん:2005/10/16(日) 12:57:03
>>277
m9(^Д^)プギャー 負け犬の遠吠え
281デフォルトの名無しさん:2005/10/16(日) 13:06:04
>>273は釣り師?
282デフォルトの名無しさん:2005/10/16(日) 13:22:01
学生の知ったかプログラマじゃない?
283デフォルトの名無しさん:2005/10/16(日) 13:41:56
拾ったヤツが、介護とかしなきゃいけなくて、どうしても飼えない。
里親が見つかるまでの一時預かりでもいいからだれか助けてやってくれないか?

また子猫なんだが
http://ex11.2ch.net/test/read.cgi/news4vip/1129430418/


587 名前: ハラミスキー ◆X/PKvDtI5g 投稿日: 2005/10/16(日) 00:38:04 ID:1pHhmmwy
すみません!自分の部屋の真ん前にあるゴミ置き場に
生後2日くらいのぬこが放り込まれてました。
飼える環境ではないですがあまりの鳴きっぷりとネズミ具合に一時保護してます。
しかし医者で貰ってきたミルクも飲んでくれず鳴き乱れるので困り果てています。
どなたか、こんな生まれたても面倒見てやるぜという豪気な方いらっしゃいませんか?!
明日も家族の世話のため午後から出かけねばなりません…
てか、ミルク飲みやがれー!!・゚・(つД`)・゚・ ウワァァァン

画像
http://f.pic.to/40yf3

★茶トラ?
★1匹
★大阪府 お京阪沿線
284デフォルトの名無しさん:2005/10/16(日) 13:58:44
ResultSet rsをretunで返したいのですが、返せません。
例外処理部分で宣言した変数をretunで返したい時は、
どうすればいいのでしょうか?

ResultSet getDbField(String aFiled, String aTable){

*******省略***********

try{
PreparedStatement prdStt=db.prepareStatement("SELECT " + filed + " FROM " + aTable);
ResultSet rs = prdStt.executeQuery();
CloseDb(); // DBの切断
return rs;
}catch (Exception e){

}
}
285デフォルトの名無しさん:2005/10/16(日) 14:10:45
CloseDb(); // DBの切断 なぜ先にこれをやる?
なぜ大文字で始めているんだ?
286235:2005/10/16(日) 14:12:48
>>238
おれが言いたかった事は、そうじゃなく、試してみれば分かるってこと。
暴走するwww
287デフォルトの名無しさん:2005/10/16(日) 14:19:45
>>235
俺も経験あるんだが
あのBeep音はなんなんだろうねまったく・・・そのときはWin98+JDK1.2だったんだが関係あるのかなぁ
288デフォルトの名無しさん:2005/10/16(日) 14:32:35
>>284
例外処理部分の外で宣言すればいいじゃない。
retrun rs;も例外処理部分の外に書けばいいじゃない。
289デフォルトの名無しさん:2005/10/16(日) 14:35:07
>>288
あんまり好きくない、それ
290デフォルトの名無しさん:2005/10/16(日) 14:35:51
2行目の
>retrun rs;も例外処理部分の外に書けばいいじゃない。
が好きくないと言う意味
291284:2005/10/16(日) 14:57:39
その方法も考えたのですが、
ResultSet rs の初期化の仕方が分かりませんでした。
292デフォルトの名無しさん:2005/10/16(日) 14:59:52
>ResultSet rs の初期化の仕方が分かりませんでした。
ResultSet rs =null;
も立派な初期化
293デフォルトの名無しさん:2005/10/16(日) 15:17:09
windowsで複数のファイルをコンパイルするにはどうしたらいいんですか?


A.java

class A
{
B b = new B();
}

B.java
class
{
B();
}
294デフォルトの名無しさん:2005/10/16(日) 15:18:59
javac *.javaでいいんじゃない?
295デフォルトの名無しさん:2005/10/16(日) 15:35:26
>294
勝手にやってくれるんですか?
レスありがとうございます
296デフォルトの名無しさん:2005/10/16(日) 16:44:03
最近、音声を扱うことになってしまいました。

(入力がwave形式の音声ファイルで出力が再生時間)
というのがしたいことなのですがご教授願えますか?

javax.sound.sampledクラス辺りが怪しい気がするのですが、
わかりませんでした。
この辺にお詳しい方いらっしゃったらよろしくお願いします。
297デフォルトの名無しさん:2005/10/16(日) 16:45:01
LinuxでJavaしてたのですが、事情でWindowsでJavaを組む方が都合いいため先ほど
とほほ様を参考に「j2sdk-1_4_2_09-windows-i586-p.exe」をインストールしました。
そして、
javac test.java
でtest.classは作成されるものの、java testを実行すると
Exception in thread "main" java.lang.NoClassDefFoundError: test
と言うエラーが発生します。このエラーを修復するにはどうすればいいでしょうか?
スレ違いでしたらすいません。
298デフォルトの名無しさん :2005/10/16(日) 16:50:15
>>297
@testクラスにmainメソッドが実装しているかよ、おい!
Amainメソッドのシグネチャが「public static void main(String[] args)」かよ、おい!
Btestクラスがpublic修飾子ついているかよ、おい!

299297:2005/10/16(日) 16:53:58
>>298
すいません。まだかじった程度なのでせっかくの返信ですがあまり理解できませんでした。

--<test.java>--
public class test
{
public static void main(String[] args) {
System.out.println("Test");
}
}
--------------
なのですがおかしいでしょうか?
300デフォルトの名無しさん:2005/10/16(日) 16:55:25
>>299
CLASSPATH
301デフォルトの名無しさん:2005/10/16(日) 16:56:28
 -cp . test.java
302デフォルトの名無しさん:2005/10/16(日) 16:58:48
>>301
これでしょ。
java -cp . test
303デフォルトの名無しさん:2005/10/16(日) 17:02:29
>>297-302
java -cp . test
で動きました、ありがとうございました。
304デフォルトの名無しさん:2005/10/16(日) 17:40:29
>>296
そのパッケージでいい

AudioSystemってのが基本的なすべての入り口だと思っていい
J2SE5.0だと多少は扱いやすくなってるから5.0以上推奨
305デフォルトの名無しさん:2005/10/16(日) 17:41:16
>>304
で、答えはないのか?教えないのか?
306デフォルトの名無しさん:2005/10/16(日) 17:42:25
いじわるだね〜 (。・・)(・・。)
307デフォルトの名無しさん:2005/10/16(日) 17:43:35
>>303 -cp .を付けたら動いたってことは、303が把握していないところで
環境変数CLASSPATHを設定したやつがいるってこと。見直してごらん。
308デフォルトの名無しさん:2005/10/16(日) 17:48:40
>>307
言ってもわかんねーよ
「いいえ、このパソコンは私しか使っていません」とかいわれそう
309デフォルトの名無しさん:2005/10/16(日) 17:50:43
>>307
CLASSPATHってなんですか?程度の知識なので、むやみにあちこち触ると壊す恐れがあるためあまり触ることが・・・
見てみたら"C:\Program Files\Java\jre1.5.0_02\lib\ext\QTJava.zip"となっておりました。
迷惑でなければ教えていただければ助かるのですが、もし迷惑でしたら-cp付きで動いているので今のところは大丈夫です。
310デフォルトの名無しさん:2005/10/16(日) 17:54:11
>>308 が万年毒男の予感がします
311296:2005/10/16(日) 17:57:15
ありがとうございます。
>AudioSystemってのが基本的なすべての入り口だと思っていい
そうなんですか。もう一度頑張ってみます。

環境はJ2SE5.0です。
312デフォルトの名無しさん:2005/10/16(日) 18:04:39
俺もjdk入れて普通に実行できてて、jre実行環境だっけ、入れたときにそうなった。
当然カレントは見てるはずって思ってるから、まさか勝手に
設定されてるとは解らなかったんで、結構悩んだよorz....
313デフォルトの名無しさん:2005/10/16(日) 18:12:57
>>305,306
すまんね、いじわるで
そのものずばり答えを言うよりはヒントだけを渡したほうが本人のためだと思ってね

それにAudioSystemから1つのメソッドでファイル形式やサイズすべて取得できるんだし
ほぼ答えだが、わからなくてくじけたらまた質問して来ればいいだけ

最近の新人は答えだけ求めようとしすぎてるのが多いとは感じる
314デフォルトの名無しさん:2005/10/16(日) 18:15:14
>そのものずばり答えを言うよりはヒントだけを渡したほうが本人のためだと思ってね
>最近の新人は答えだけ求めようとしすぎてるのが多いとは感じる

同感
315デフォルトの名無しさん:2005/10/16(日) 18:17:08
リムーバブルディスク(G)にUSBメモリを挿した状態で
コマンドプロンプトの画面が
C:\>Documents and Settings\Administrator>
と表示されているのですが
cd g:\
とやってもチェンジディスクせずにまた
C:\>Documents and Settings\Administrator>
と表示されて移動できません。
どうやったらgドライブに変更できるのか教えて下さい。
316デフォルトの名無しさん:2005/10/16(日) 18:18:51
>g:
だろ?
317デフォルトの名無しさん:2005/10/16(日) 18:19:30
cd /d g:
318デフォルトの名無しさん:2005/10/16(日) 18:23:41
g:
でいいんじゃないのか?
319デフォルトの名無しさん:2005/10/16(日) 18:23:49
>>317
できました!
ありがとうございました!
320デフォルトの名無しさん:2005/10/16(日) 18:25:28
てめぇ・・・
ムキィィィ
G:
でもできるんだよぉぉ!しんじてくれよぉおぉぉ!
321デフォルトの名無しさん:2005/10/16(日) 18:26:36
>>309
そのCLASSPATH設定必要ないから迷わず消せ。
322デフォルトの名無しさん:2005/10/16(日) 18:29:07
>>320
すみません!
G:でもできました。ありがとうございました!
323デフォルトの名無しさん:2005/10/16(日) 18:45:05
>>321
迷わず消したらcpなしでいけました。サンキューです。
324296:2005/10/16(日) 19:45:38
>>313

少しですがわかってきました。javax.sound.sampled.AudioSystemの
メソッドを使って

AudioFileFormatとAudioFormatを取得する。
この2つが取得できれば、サンプリング周波数、量子化ビット数
総ビット数が分かるので、

時間 = 総バイト数/(サンプリング周波数 * 量子化ビット数)
だから計算できる・・・のかなぁ。
325デフォルトの名無しさん:2005/10/16(日) 19:51:24
インタフェイスなんて概念、いらなくね?
普通に抽象クラス作るだけで良くない?
326デフォルトの名無しさん:2005/10/16(日) 19:52:52
>>325
とうとう言ってしまったな
今日の祭りはここからだ

尚之!ゴ〜ング!
327デフォルトの名無しさん:2005/10/16(日) 20:02:22
もうクラスもいらん。関数だけでよくない?
328デフォルトの名無しさん:2005/10/16(日) 20:05:09
>>327
そこまで言うと
逆にスルーされるがな

尚之 閉店・・・
329デフォルトの名無しさん:2005/10/16(日) 20:58:38
JBuilder MobileSet 3.1を使いたいのですが
ボーランドのhttp://www.borland.com/downloads/download_jbuilder.html
サイトへ行っても2.0のキーしかありません

3.1のキーはどこで手に入れればいいんでしょうか?
330デフォルトの名無しさん:2005/10/16(日) 20:59:36
>>274
当然て… それじゃ何のためのオブザーバーパターンなのか。
リソースの確保と開放と同じように、add した奴が remove の責任を持つ
ほうが設計・実装がすっきりするのは明確だろ。

>>277, >>281, >>282
理解できないなら無理して書き込まないほうが バカ を晒さなくて良いぞ。
そうでないなら俺が何を勘違いしてるかきちんと説明してみてくれよ。
>>281 は他人だが。
331デフォルトの名無しさん:2005/10/16(日) 21:19:28
public class sample72{
public static void main(String args[]){

int[] arrayTensu={80,70,90,65,80,75,65,50,100,95};
int[] arrayDosu=new int[11];
int idx;

for(idx=0;idx<arrayDosu.length;idx++){
arrayDosu[idx]=0;
}
for(idx=0;idx<arrayTensu.length;idx++){
int j=arrayTensu[idx]/10;
arrayDosu[j]++;
}
for(idx=0;idx<arrayDosu.length-1;idx++){
System.out.println((idx*10)+"点台:"+ arrayDosu[idx]);
}
System.out.println((idx*10)+"点:"+arrayDosu[idx]);
}
}
これって何しようとしてるのですか?結果はわかるけど、中身の内容がいまいち理解できません。誰か親切な人説明願います
332デフォルトの名無しさん:2005/10/16(日) 21:24:06
サンプル有るんならその掲載先みりゃ書いてあるだろ
333デフォルトの名無しさん:2005/10/16(日) 21:24:51
理屈で返せない時は
学生プログラマ、30歳すぎのプログラマ
が定番です。
334デフォルトの名無しさん:2005/10/16(日) 21:25:01
>>330
バカが多いのは分かるが、

> リソースの確保と開放と同じように、add した奴が remove の責任を持つ
で解決じゃないのか?
335デフォルトの名無しさん:2005/10/16(日) 21:25:56
>>333
うるせー松岡
336デフォルトの名無しさん:2005/10/16(日) 22:16:58
>>334
うーん、そうだな。ここで一言居士の相手してても、Swing が内部的に add した
リスナをきちんと remove してくれるわけじゃないし。自前で防衛すっか。
337デフォルトの名無しさん:2005/10/16(日) 22:18:45
Weblogic8.1でJDBCドライバのクラスパスのセットの
しかたを教えて下さい!
MysqlまたはPostgresで使おうとした場合にJDBCドライバが見つからないと
起こられるんですが・・・
338デフォルトの名無しさん:2005/10/16(日) 22:36:37
>>337
俺の認識では
WEB-INF/lib/以下に置けばいいと思うんだけど・・・
Weblogicのlibでもいいし
339JAVA初心者:2005/10/16(日) 22:49:06
こんにちは。初めて書き込みをします。
本当にJAVA初心者なので誰か教えてください。
学校で課題がでましたが、いくら考えても頭がぐるぐるします。
3×3の魔方陣を作成するJAVAのプログラムを作るときに、
総当りなのでしょうか?そうするとソースがとても幼稚なものに
なってしまいます。誰かわかる方お願いいたします。
340337:2005/10/16(日) 22:56:26
>>338

%WEBLOGIC_HOME%server\lib配下にドライバを設置し
サーバ起動後、管理画面のツリーで接続プールを選択し設定。
その後、接続テストボタンを押下し試してみましたが
現象は変わらずです・・・

結構前から悩んでるんですが、どうしたものか。。。

Weblogicのドキュメントみても
set CLASSPATH=ドライバぐらいしか書いてないですね・・・
341デフォルトの名無しさん:2005/10/16(日) 23:04:33
Weblogicの起動バッチファイルわかりますか?
Tomcatで言うところのstartup.bat
あのファイルに直接set CLASSPATH=ドライバの絶対パスって書くか
もしくはJDKインストールディレクトリのなかにドライバjar置くとか・・・
例えば JAVA_HOME/jre/lib/ext/以下
342デフォルトの名無しさん:2005/10/16(日) 23:17:35
>>324
そこまでわかればおけ

フレームレートとフレームサイズだけでも取れる気がする

OggVorbisSPIとかだと一段かまさなといけない
343337:2005/10/16(日) 23:27:28
>>341
成功しました!有難う御座います^^

startWeblogic.cmdにset CLASSPATHを追記して
やってみましたが、これは失敗しました。。。

でJAVA_HOME/jre/lib/ext/配下に配置してやってみたところ成功しました。

前者が何故だめなのかキモチ悪いところですが、解決です。有難御座いました。
344デフォルトの名無しさん:2005/10/16(日) 23:55:44
>>339
検索するとソース付のひっかかるぞ
345デフォルトの名無しさん:2005/10/17(月) 01:14:48
こんなんでました
com.ngMAT.Common.LowLevelException :
Failed to get connection with properties file : /kenko.com/properties/jdbc.oracle.thin.properties : com.ngMAT.Common.LowLevelException :
failed to connect to database with properties : /kenko.com/properties/jdbc.oracle.thin.properties
: java.sql.SQLException : ORA-01089: immediate shutdown in progress - no operations are permitted
346デフォルトの名無しさん:2005/10/17(月) 02:01:48
http://www.kenko.com/
ようこそ、ケンコーコムへ。国内健康食品、海外サプリメントなど、健康関連商品の
専門店です。ごゆっくりお買い物をお楽しみください。 (53,192 商品)
347デフォルトの名無しさん:2005/10/17(月) 12:17:46
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=12720&forum=12&6
の内容のように、ある特定のクラスをパーミッション設定可能なクラスローダーでロード
したいのですが、上のサイト内にあるように、いかんせん、他のクラスにもセキュリティマネージャの
制限が加わってしまうため、実行時のオプションでポリシーファイルなどを指定しなくてはなりません。
ですが、今回諸事情で実行時(javaコマンドで起動する時)のオプション設定はできません。そんな時に
どうやって、特定のクラス以外のクラスにAllPermissionを与えればよいでしょうか。識者の方ご意見お願い
します。
348デフォルトの名無しさん:2005/10/17(月) 12:25:31
はじめまして。
JaMet2.javaというファイルをコマンドプロントで
javac JaMet2.java
とすると異常は見られないのですが、この後
java JaMet2
とやると
「Exception in thread "main" java.lang.NoClassDefDoundError: JaMet2」
と出てしまいます。
どなたかご教授願います。

JaMet2.javaの中身は↓です。
349デフォルトの名無しさん:2005/10/17(月) 12:26:26
public class JaMet2 {
public static void main(String args[]){
double a,b,ave;

a = 11.11;
b = 33.33;
ave = heikin(a,b);
System.out.println("a=" + a + " b=" + b + " 平均=" + ave);
}
public static double heikin(double x, double y){
double z;

z = (x+y) / 2.0;
return z;
}
}
350デフォルトの名無しさん:2005/10/17(月) 12:43:49
>>1
見な
351デフォルトの名無しさん:2005/10/17(月) 12:48:15
>>348
もうめんどくさいからeclipse上で実行しちゃえ
352デフォルトの名無しさん:2005/10/17(月) 13:30:58
NoClassDefDoundErrorばっかりだね
353デフォルトの名無しさん:2005/10/17(月) 15:08:25
long型の配列 longBit[]に、int型のデータ
A(7bit)
B(8bit)
C(9bit)
D(7bit)
E(10bit)
を格納したいと思っています。

方法として、
A=((int)longBit[number]>>41)&A;
B=((int)longBit[number]>>34)&B;
C=((int)longBit[number]>>26)&C;
D=((int)longBit[number]>>17)&D;
E=((int)longBit[number]>>10)&E;

このようにすればいいのでしょうか?
間違いがあればご指摘ください
354348:2005/10/17(月) 15:12:10
>>350
>>1でリストアップされているサイトを参考にして、PATHを再設定してみましたが、やはり改善されませんでした。
ご教授願います。
355デフォルトの名無しさん:2005/10/17(月) 15:15:47
じゃあ無理です
356デフォルトの名無しさん:2005/10/17(月) 16:45:22
>>354
質問1:Windows? Mac? Linux?
質問2:インストールしているJavaのバージョンは?
質問3:PATHに設定した文字列をコピー&ペーストでここ(掲示板)に貼り付けてください。
質問4:C:\Program Files\Java\jre1.5.0_02\lib\ext\QTJava.zip にCLASSPATH貼られてない?
357デフォルトの名無しさん:2005/10/17(月) 17:50:42
java.lang.NoClassDefFoundError: org/apache/commons/httpclient/HttpMethod
について聞いたら、ハッ倒されそうな空気ね・・・。
358デフォルトの名無しさん:2005/10/17(月) 18:08:30
>>1
359デフォルトの名無しさん:2005/10/17(月) 18:39:13
ButtonGroupに登録したボタングループの選択状態を
クリアして何も選択されて無いようにするにはどうすればよいのでしょうか?
360359:2005/10/17(月) 18:43:57
解決しました
てかAPI仕様書に書いてあった orz
361デフォルトの名無しさん:2005/10/17(月) 18:51:06
私Java勉強中です。
オブジェクトの使い方がわかってないといわれたんですが、
何を勉強すればよいのでしょうか?
たくさんのクラスを使うプログラムの場合、それぞれの
クラスのインスタンスをどこで用意すればよいのでしょうか?
後、例外についてなんですがIOExceptionの例外が発生する場合が
二箇所以上にわたっている時それぞれをcatchして異なった
例外メッセージを出力する方法を教えてください。
362デフォルトの名無しさん:2005/10/17(月) 18:55:34
それぞれ別のtry~catchで囲む
363361:2005/10/17(月) 19:03:04
>>362
それではだめでした。
例外クラスを自分で宣言するというのもちょっと思ったんですが。
それ以外にも何かあるのかと思いまして。
364デフォルトの名無しさん:2005/10/17(月) 19:25:50
なんだよ「だめでした」って。
365デフォルトの名無しさん:2005/10/17(月) 19:27:14
駄目な理由が全く分りまへんな
こんなんじゃ誰も答えてくれまへんで
366デフォルトの名無しさん:2005/10/17(月) 19:51:15
Javaのアプリケーションを、一台のパソコン上で1つだけしか起動できないようにする
方法はないでしょうか?どなたか教えてください
367361:2005/10/17(月) 19:51:47
>>364 >>365
すいません。
tryブロックがひとつですむ方法を知りたいのです。
どうぞよろしくお願いします。
368デフォルトの名無しさん:2005/10/17(月) 19:54:34
もう少し詳しく書いてくれ
今のままだと意味不明
369デフォルトの名無しさん:2005/10/17(月) 19:54:54
嫌なら辞めろ
370361:2005/10/17(月) 20:10:43
>>368
import java.io.*;
class Br{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
public void readLinebr()throws IOException{
String str = br.readLine();
}
public void closebr()throws IOException{
br.close();
}
以上の二つのメソッドを、1つの別クラスで呼び出した場合
にtryブロックがひとつで、それぞれに別のエラーメッセージを
catchブロックで出力する方法を教えてください。


371デフォルトの名無しさん:2005/10/17(月) 20:17:55
プログラマー@2ch掲示板
Sun認定Java資格 実用情報 3 【SJC-P用】
http://pc8.2ch.net/test/read.cgi/prog/1117031782/l50
Sun認定Java資格 実用情報【SJC-WC用】
http://pc8.2ch.net/test/read.cgi/prog/1129512876/l50
Sun認定Java資格 実用情報【SJC-D用】
http://pc8.2ch.net/test/read.cgi/prog/1105893148/l50
372デフォルトの名無しさん:2005/10/17(月) 20:17:56
throw new IOException(message1);
throw new IOException(message2);
373デフォルトの名無しさん:2005/10/17(月) 20:19:53
むり
374デフォルトの名無しさん:2005/10/17(月) 20:22:39
int progress = 0;
try {
progress = 1;
readLinebr(); //throws IO
prgress = 2;
closebr();//throws IO

} catch (IOExcepton
if (pro


めんどくさいからもう なんか これでわかるだろ?
375デフォルトの名無しさん:2005/10/17(月) 20:25:13
そもそもなんで一つのブロックでやりたいんだ?
376361:2005/10/17(月) 20:41:11
>>374
わかりました。なんとなくですが・・・。
ありがとうございます。
>>375
無駄なコードを減らすためです。
凡長だ!といつも言われています。
377デフォルトの名無しさん:2005/10/17(月) 20:44:04
凡長ねえ・・・
374のやり方でやるなら
tryブロック2つに分けるのと変わらない思うが・・・
378デフォルトの名無しさん:2005/10/17(月) 20:46:40
>>376
一つのブロックに押し込めて >>374 みたいに無駄なフラグ立てて
if で処理分けするほうがよっぽど冗長だと思うが。
379361:2005/10/17(月) 20:48:24
>>377
よい方法を教えてください。
自分で例外クラスを宣言しておくというのも考えたんですが。
どうなんでしょうか?無駄なのでしょうか?
380デフォルトの名無しさん:2005/10/17(月) 20:53:43
だからtryブロック2つに分ければいいだけだよ
それが凡長だとは思わん
381デフォルトの名無しさん:2005/10/17(月) 20:59:16
どうでもいいが冗長な
382デフォルトの名無しさん:2005/10/17(月) 21:03:18
新2ch語誕生: ぼんちょう
383デフォルトの名無しさん:2005/10/17(月) 21:03:46
つられて間違えちったw
384デフォルトの名無しさん:2005/10/17(月) 21:04:33
>>379
冗長だ言われてるとか、他人の言に惑わされすぎ
385デフォルトの名無しさん:2005/10/17(月) 21:07:12
そもそも try ブロックを分けることに対して冗長だといわれたのか?
>>361 の書くコード全般に冗長な部分が多いという意味ではなくて?
386デフォルトの名無しさん:2005/10/17(月) 21:14:26
多分それだな
自分で勝手に解釈してるんだろう
もう一度発言者に真意を聞いてみろ
387デフォルトの名無しさん:2005/10/17(月) 22:00:05
メソッドの最初と最後までを一つのtry-catchで囲まないと駄目とか思ってるのだったら
その上司はなかなかの曲がり物だな
388JAVA初心者:2005/10/17(月) 22:17:07
こんにちは、いつもとてもこの掲示板に助けられています。今日も質問があるのですが、1から3までの数字(1、2、3ということ)をRANDOMにGETするメソッドを教えてください。0からなら指定できるのですが、、0はいらないのです、、よろしくお願いします。
389デフォルトの名無しさん:2005/10/17(月) 22:22:31
MVC連携について
勉強しているのですが
JSP servlet@ servletA Beansとありまして
JSPで入力した値をservlet@で取得しBeansにセット。
servletAでBeansにセットしたものを欲しいのですが
Beans be = new Beans();
String A = be.getA();
としても取れません。
どうやったら取得出来るのでしょうか?
宜しくお願い致します。


390デフォルトの名無しさん:2005/10/17(月) 22:23:19
(乱数) * 3 + 1
391デフォルトの名無しさん:2005/10/17(月) 22:38:31
特定のフォルダの最後に更新された画像ファイルを表示させる
アプレットを作成したいのですが、どうやればできるでしょうか?
392デフォルトの名無しさん:2005/10/17(月) 22:47:18
>>388
0から2までをランダムに取得して1足せよ
少しは頭使おうぜ
393デフォルトの名無しさん:2005/10/17(月) 23:38:04
ttp://up.spawn.jp/file/up2922.txt
このプログラムをJBuilder2005で動かしたのですが、
使用法 java Find1 検索文字列<検索対象ファイル と表示されるだけです。
参考書にはこれを実行すると、「System」を含む文字列を検出するはずなのですが…
どうしてでしょうか
394デフォルトの名無しさん:2005/10/17(月) 23:51:27
そうだね。作ったプログラムの使い方が間違ってるよ。
JBuilder なんか使わずに JDK 使えば良いと思うよ。
395JAVA初心者:2005/10/18(火) 00:32:58
ありがとうございます、、、頭」つかいたいのですが、、考えれば考えるほどJAVAがわからなくなるので、いつもここで助けられてます!
396デフォルトの名無しさん:2005/10/18(火) 00:42:20
JAVAがわからなくなるって、、。
JAVAとは全然関係ない小学生レベルの話だろ
397デフォルトの名無しさん:2005/10/18(火) 01:39:15
randが0からかえすのは何十年も前のBASICから常識だし
Java以前の論理的な思考が欠如してるな
398デフォルトの名無しさん:2005/10/18(火) 02:12:49
SJC−Pって取得すると就職に有利ですか?
399デフォルトの名無しさん:2005/10/18(火) 02:52:53
>>398
新卒なら有利。
転職ならSJC-Dが必要。
400デフォルトの名無しさん:2005/10/18(火) 02:55:06
24k 円の価値ってある?
401デフォルトの名無しさん:2005/10/18(火) 05:23:54
インタープリタ(関数電卓)を作成しているのですが、
(-1)の3乗根などを正しく求めることができません…。

pow((-1), (1/3))ではNaNになってしまいますよね…?
どうにかして求めたいんですが、何か良い方法はないでしょうか?
402デフォルトの名無しさん:2005/10/18(火) 05:27:39
マクローリン展開して近似値を求める
403デフォルトの名無しさん:2005/10/18(火) 06:23:55
ああマクローリン展開ね
404デフォルトの名無しさん:2005/10/18(火) 07:12:28
マクローリン展開なら俺も好きだな
405デフォルトの名無しさん:2005/10/18(火) 07:22:21
俺もマクラーレンは好きだ
406デフォルトの名無しさん:2005/10/18(火) 09:59:24
関数電卓買おうぜ
407デフォルトの名無しさん:2005/10/18(火) 10:52:36
本当にマクローリン展開すれば近似値を求められるんですか?
(1+x)^aのマクローリン展開を利用するってことですよね…?

|x| < 1じゃないとダメみたいなことが書いてあるんですが、
求めたいのは(-1)^(1/3)です。
x = -2ですが、求められるんでしょうか…?

っていうか、これって、aが( 1 / (2n+1) ) の場合しか
答えがないと思うんですが(他の場合は虚数になってしまう)、
マクローリン展開で答えが求められるのならば、
虚数の解も求められてしまうということになりませんか…?

本当にマクローリン展開で求められるのならば、
もっと勉強しようと思っているのですが…。
408デフォルトの名無しさん:2005/10/18(火) 11:09:32
javaはじめて一週間くらいの新参者です。
今、以下の問題を解いているのですが、どのようにしたらいいか判りません。

* 文字列が半角のアルファベット大文字のみで構成されているかのチェック。
*
* @param letterString 調べる文字列
* @return letterStringがA〜Zのみで構成されている場合、trueを返す。<br>
* letterStringにA〜Z以外の文字が含まれている場合、falseを返す。
*/
public static boolean isCapitalLetterString(String letterString) {
// TODO: ここに処理を実装する。
return false;
}

文字列を大文字とか小文字の判断をするにはどうしたらよいのでしょうか?
isUpperCaseを使えとヒントを頂いたのですが、コレってchar型にしか使えませんよね。
409デフォルトの名無しさん:2005/10/18(火) 11:14:49
>>408
Stringをchar配列にして処理すればいいじゃない
410デフォルトの名無しさん:2005/10/18(火) 11:17:34
>>408
文字列が大文字か小文字かってなんだ?
文字列全体が「大文字だけ」か「小文字だけ」か調べるってことか?
そうじゃなきゃどのみち一文字ずつ調べるしか無いんだから、
一文字ずつisUpperCaseにかけてけばいいだろ
411デフォルトの名無しさん:2005/10/18(火) 11:23:57
>>408
・StringのtoCharArray()メソッドで、charの配列を得られる。
・charの配列をループしながらisUpperCase()1文字ずつ調べる
・一つでも小文字があればfalseをreturnする
・小文字が見つからず、ループを抜けたらtrueを返す
412デフォルトの名無しさん:2005/10/18(火) 11:24:49
>>409
すみません、そのやり方を教えていただけませんか?

>>410
この場合は大文字のみでした、スミマセン。
413デフォルトの名無しさん:2005/10/18(火) 11:28:40
414デフォルトの名無しさん:2005/10/18(火) 11:29:09
>>412
これ以降はスレ違い。宿題スレ行け。
415デフォルトの名無しさん:2005/10/18(火) 12:04:23
>>401
惑わされたらいかん
x^(1/3)はマクローリン展開はできないよ
テイラー展開はできるけど収束判定しなけりゃならんし…

すなおにニュートン法で求めたらいいんでねの?
416デフォルトの名無しさん:2005/10/18(火) 12:04:55
Javaをやりはじめたばかりなのでおかしな質問をしていたら申し訳ありません
アプレットを作成し、アプレットビューアーやローカルに保存したファイルをhtmlで読み出すことでの動作は確認できたのですが
別のPCでローカルに保存したhtmlを呼び出してもアプレットが実行されません
Javaの開発キットをインストールした他のPCでは動きました
ブラウザにはインターネットエクスプローラーを使用しました
何故開発キットをインストールしていないPCでは動かないのか原因がわかりません
原因がわかる方いらっしゃいましたらご教授ねがえませんでしょうか?
よろしくお願いします

417デフォルトの名無しさん:2005/10/18(火) 12:16:22
>>416
WindowsでのJavaの実行にはJREが必要だからさ
418デフォルトの名無しさん:2005/10/18(火) 12:28:27
>>417
サーバにアップロードしてブラウザで実行する場合と
ローカルに保存してあるファイルをブラウザで実行するってのは違うっていうことなのでしょうか?

もしこのアプレットをサーバーにアップしてHPに埋め込んだら
これもまた見れる人と見れない人がでてくるのでしょうか?

なんだか良くわかってなくてすいません・・
419デフォルトの名無しさん:2005/10/18(火) 13:08:22
>>418
よくわかってないなら1と1に書いてあるサイトくらい見ような
420デフォルトの名無しさん:2005/10/18(火) 13:08:36
Javaで書いたプログラムを動かすには
JDK入らなくてJREだけでいいんでしたっけ?
421デフォルトの名無しさん:2005/10/18(火) 13:13:03
>>408
letterString.matches("^[A-Z]+$");
422デフォルトの名無しさん:2005/10/18(火) 13:45:31
>>420
Development Kit と Runtime Environment
できてるものを動かすだけなのにRuntime以上の物が必要と思う?
WindowsのプラットフォームSDK無くてもWindowsのプログラムは動くぜ?
423デフォルトの名無しさん:2005/10/18(火) 15:08:35
C#は動かないが.
424デフォルトの名無しさん:2005/10/18(火) 15:11:39
・・・・(゚д゚)・・・・
425デフォルトの名無しさん:2005/10/18(火) 15:14:49
( ^ω^)・・・
426デフォルトの名無しさん:2005/10/18(火) 15:27:11
>>423
えっ?.NET framework runtimeをインストールすれば動くよ
まさか.NET framework SDK入れないと動かないと思ってた?
427デフォルトの名無しさん:2005/10/18(火) 15:30:55
>>426
触れてやるな
428デフォルトの名無しさん:2005/10/18(火) 15:32:03
時間を止める能力を持つ人のいるスレはここですね
429デフォルトの名無しさん:2005/10/18(火) 15:40:15
し、知ってたさ
冗談だよ冗談 あはは


























orz
430デフォルトの名無しさん:2005/10/18(火) 16:35:17
超ガンガレ
431デフォルトの名無しさん:2005/10/18(火) 18:40:07
char ch = 'A';
ch++
System.out.println(ch);
なぜchをインクリメントするとBになるのか
教えてください。
432デフォルトの名無しさん:2005/10/18(火) 18:42:10
>>431
つ [ASCII コード表]
433デフォルトの名無しさん:2005/10/18(火) 18:44:21
>>431
アナタはまず、コンピュータとOSの仕組みと動作から勉強してください
434デフォルトの名無しさん:2005/10/18(火) 19:26:20
UNICODE 表が必要な気がする
435デフォルトの名無しさん:2005/10/18(火) 19:41:45
>>431
http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.2

char って「文字」だと思ってる? 違うぞ。
436デフォルトの名無しさん:2005/10/18(火) 22:21:50
JAIを使って、画像変換のプログラムを作成してます。
透過GIFをJPEGに変換すると、IE等で表示できなくなってしまいます。
アルファチャンネルを削除すればよいらしいのですが、
どうやって削除するのでしょうか?
437デフォルトの名無しさん:2005/10/18(火) 22:22:56
chmod -α <ファイル名>
438デフォルトの名無しさん:2005/10/18(火) 22:24:40
JAIて何?
439デフォルトの名無しさん:2005/10/18(火) 22:26:57
お〜れ〜は、JAIあ〜ん!
440デフォルトの名無しさん:2005/10/18(火) 22:27:41
jai: Java Advanced Imaging Parent Project
441デフォルトの名無しさん:2005/10/19(水) 00:09:13
>>436
もう今ならその処理は普通にJava2Dでかまわんだろ
442デフォルトの名無しさん:2005/10/19(水) 00:09:56
画像の読み込みをしています。
以下のように読み込もうとすると
File f = new File("C:filename");
BufferedImage image = ImageIO.read(f);
Exception in thread "main" javax.imageio.IIOException: Can't read input file!
とエラーがでてしまいます。画像ファイルはおいてあるのですが。どこが間違っているのでしょうか?
どなたか教えていけないでしょうか?よろしくお願いします。
443デフォルトの名無しさん:2005/10/19(水) 00:11:31
C:filenameってのは本当に存在するのか?
444デフォルトの名無しさん:2005/10/19(水) 00:20:36
>>443
返信ありがとうごさいます。
画像は存在します。以下のようにしています。
File f = new File("C:filename.jpg");
445デフォルトの名無しさん:2005/10/19(水) 00:22:54
>>444
それ相対パスなんだけど絶対パスにしてごらん
446デフォルトの名無しさん:2005/10/19(水) 00:22:55
"C:filename.jpg" ってさー

"C:\filename.jpg" じゃないのん?
447デフォルトの名無しさん:2005/10/19(水) 00:24:16
C:\filename.jpgじゃね?
448デフォルトの名無しさん:2005/10/19(水) 00:27:12
おまいら食いつきいいな( ̄ー ̄)
449デフォルトの名無しさん:2005/10/19(水) 00:48:15
>>445
>>446
>>447
返信ありがとうごさいます。
うまくいきました。
ありがとうございました。
450デフォルトの名無しさん:2005/10/19(水) 00:49:14
>>416
もう解決したかと思うが、
ブラウザ上でのアプレットはFileInputStreamとかではなく
URLを指定してopenStream等で読まなきゃ駄目よ。
451デフォルトの名無しさん:2005/10/19(水) 01:17:02
CPU が Athlon64 で OS が 32ビット版の Windows XP の場合、AMD64 じゃないほうの JDK をインストールすればいいんですか?
452デフォルトの名無しさん:2005/10/19(水) 01:18:38
許可する。
453デフォルトの名無しさん:2005/10/19(水) 01:54:52
>>451
そのとおり
454デフォルトの名無しさん:2005/10/19(水) 02:27:58
大きさが 250×250 の JPanel 上の位置 (100, 150) に大きさが 50×30 の JButton を置きたいんですが、どのようにプログラムすればいいんでしょうか?
455451:2005/10/19(水) 02:41:51
>>453
ありがとうございます。
456デフォルトの名無しさん:2005/10/19(水) 02:52:14
ヌルレイアウトを使え
457デフォルトの名無しさん:2005/10/19(水) 03:39:09
nullLayout?
の使い方がわかりません・・・
本にも載ってないし、APIもどこにあるかわかりません
458デフォルトの名無しさん:2005/10/19(水) 03:53:56
スマン。不親切だった・・・

setLayout(null)
として、あとは自分でボタンの位置やサイズを設定する
459457:2005/10/19(水) 04:26:48
>>458
で、できたー。
ありがとうございました!!
460デフォルトの名無しさん:2005/10/19(水) 08:46:11
>>451
64bitOSでも32bit版のほうがいいけどな
なんか動きが違う
461デフォルトの名無しさん:2005/10/19(水) 08:56:06
>>460
くわしく
462デフォルトの名無しさん:2005/10/19(水) 09:06:17
ヌルポレイアウトって、好きなように配置できるのがいい。
463デフォルトの名無しさん:2005/10/19(水) 10:06:50
Javaコンソールでスレッドダンプ(v)を何度かするとブラウザもろとも巻き込んで落ちるのだけど、うちだけ?
バージョンは、1.5.0_05-b05 です。
464デフォルトの名無しさん:2005/10/19(水) 10:20:20
>>462
完全上位のAbsoluteLayoutがあるけどな
465デフォルトの名無しさん:2005/10/19(水) 13:04:33
あるクラスAからJFrameを継承したクラスBを呼んだときに
そのJFrameが閉じたタイミングでクラスAのメソッドを呼びたいのですが
上手くいきません。

クラスBでは終了ボタンを押したときに
this.dispose();
を呼び出すようにしています。

Aの方では
B b = new B();
b.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
hoge());   ←呼ばれません
}
});
//可視化
iecs.setVisible(true);

のような処理を記述しています。
BのJFrameの右上の×ボタンを押したときには呼び出されているんですが・・・
466デフォルトの名無しさん:2005/10/19(水) 13:08:19
invokeLaterは使ってみた?
467デフォルトの名無しさん:2005/10/19(水) 13:13:19
>>465
dispose()ならClosingじゃなくてClosedじゃね?
468デフォルトの名無しさん:2005/10/19(水) 13:20:48
>>467
出来ました!
>>466
調べてみます!

お二人とも有難うございました
469デフォルトの名無しさん:2005/10/19(水) 13:46:12
int[]とObject[]は同じクラスって感覚でいいの?
全然違う?
470デフォルトの名無しさん:2005/10/19(水) 13:47:46
いい加減、スレタイから【初心者】【大歓迎】 のタグを外せ
471デフォルトの名無しさん:2005/10/19(水) 13:50:51
おまえみたいな初心者の隔離スレだっての。自分で初心者無視スレでも立てれば?
472デフォルトの名無しさん:2005/10/19(水) 13:55:00
>>471
初心者乙
473デフォルトの名無しさん:2005/10/19(水) 14:01:09
もう初心者無視スレとか知ってる人間もいないか…
474デフォルトの名無しさん:2005/10/19(水) 14:03:11
>>469
何をもって違うとするか、同じ感覚とするかはわからんけど
intはプリミティブ型であり、Objectのサブクラスではないから
Object[] objects = new int[10]; とかは出来ないよ。
そういう場合はnew Integer[10]みたいに、クラスとして扱う。
475デフォルトの名無しさん:2005/10/19(水) 14:50:28
Appletで、csvファイルをダウンロードしてExcelで開く、みたいな事はできますか?
社内なんで、クライアントは99%Windowsを想定してます。
Excelじゃなくても、OSがcsvに関連付けしたアプリで開けるのならよりいいのですが。
476デフォルトの名無しさん:2005/10/19(水) 15:06:54
それ、Applet必要なくね?
477デフォルトの名無しさん:2005/10/19(水) 15:09:12
>>475
showDocument()
478デフォルトの名無しさん:2005/10/19(水) 15:16:10
swingでアプリケーション作ったんだがこれってbatから以外に
exeとかで起動できまいか?
java.exeのショートカットからプロパティ書き換えてやったらプロンプトが出る助けてくれ
479デフォルトの名無しさん:2005/10/19(水) 15:20:26
>>478
cmd.exe /C javaw ClassName では無理か?
480デフォルトの名無しさん:2005/10/19(水) 15:20:41
481デフォルトの名無しさん:2005/10/19(水) 15:20:43
482デフォルトの名無しさん:2005/10/19(水) 15:22:55
>>479-481
ありがとうございます、試行錯誤してきます(ノД`)
483475:2005/10/19(水) 15:40:45
返答どうもです。Applet童貞なので緊張してます。

>>476
実際は、AppletをクライアントにしたDB照会C/Sアプリを考えてます。
webアプリだとUIコンポーネントがヘボいので、Appletが使えればな、と。
AppletViewer内だと、Appletでもローカルにテンポラリファイルが作れるのですが
ブラウザ上だと当然例外吐くので、あれこれ考えていた次第です。

>>477
ブラウザがIEならその方法でいけますね。 どうもです。
484デフォルトの名無しさん:2005/10/19(水) 15:43:40
プログラムは次のレスに書きますが、
JFrameを継承したMyFrameクラスのコンストラクタでGUIの設定を行って、
MainクラスでMyFrameクラスのオブジェクトを作って実行を行おうとしています。
MyFrameクラスのコンストラクタでは
JTable table = new JTable(cell,cname);
というオブジェクトを作成していますが、ここのcellを
MainクラスでMyFrameクラスのオブジェクトを作るときの引数として与えるようにしたいので
次レスのようなプログラムを作りました。
しかし、値の引渡しがうまくできていないのか、
JTable table = new JTable(cell,cname);
の行で「シンボルを見つけられません」というエラーがでます。
どこか間違っているでしょうか?
485デフォルトの名無しさん:2005/10/19(水) 15:44:17
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Main
{
  static Object[][] cell = new Object[4][4];
  public static void main(String[] args)
  {
    MyFrame frame = new MyFrame(cell);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);
  }
}

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MyFrame extends JFrame
{
  public MyFrame(Object cell)
  {
    String[] cname = {"A","B","C","D"};
    JTable table = new JTable(cell,cname);
    JScrollPane sp = new JScrollPane(table);
    Container c = getContentPane();
    c.setLayout(new FlowLayout());
    c.add(sp,BorderLayout.CENTER);
  }
}
486デフォルトの名無しさん:2005/10/19(水) 15:52:57
×  public MyFrame(Object cell)
○  public MyFrame(Object[][] cell)
487デフォルトの名無しさん:2005/10/19(水) 17:04:52
HashMap の key に、オブジェクトの配列を使う事は出来ないのでしょうか。
読みにくくて申し訳ありませんが、

public class MapTest {
public static void main(final String[] args) {
final Map sampleMapA = new HashMap();
final String[] sampleKeyA1 = new String[] { "hoge", "hoge" };
final String[] sampleKeyA2 = new String[] { "hoge", "hoge" };
final String valueA = "hogehoge";

sampleMapA.put(sampleKeyA1, valueA);
System.out.println("get by sampleKeyA1 : " + sampleMapA.get(sampleKeyA1)); // (1)
System.out.println("get by sampleKeyA2 : " + sampleMapA.get(sampleKeyA2)); // (2)

// 参考に String[] の代替に Map を使う
final Map sampleMapB = new HashMap();
final Map sampleKeyB1 = new HashMap();
sampleKeyB1.put("fuga", "fuga");
final Map sampleKeyB2 = new HashMap();
sampleKeyB2.put("fuga", "fuga");
final String valueB = "fugafuga";

sampleMapB.put(sampleKeyB1, valueB);

System.out.println("get by sampleKeyB1 : " + sampleMapB.get(sampleKeyB1)); // (3)
System.out.println("get by sampleKeyB2 : " + sampleMapB.get(sampleKeyB2)); // (4)
}
}

などとすると、(2) だけは値が取得できず null となりますが、
この場合 get(Object) の中では何と何が評価された結果取れないのでしょうか…?
488487:2005/10/19(水) 17:06:28
ああ…半角スペースでした…申し訳ありません or2-3

public class MapTest {
  public static void main(final String[] args) {
    final Map sampleMapA = new HashMap();
    final String[] sampleKeyA1 = new String[] { "hoge", "hoge" };
    final String[] sampleKeyA2 = new String[] { "hoge", "hoge" };
    final String valueA = "hogehoge";

    sampleMapA.put(sampleKeyA1, valueA);
    System.out.println("get by sampleKeyA1 : " + sampleMapA.get(sampleKeyA1)); // (1)
    System.out.println("get by sampleKeyA2 : " + sampleMapA.get(sampleKeyA2)); // (2)

    // 参考に String[] の代替に Map を使う
    final Map sampleMapB = new HashMap();
    final Map sampleKeyB1 = new HashMap();
    sampleKeyB1.put("fuga", "fuga");
    final Map sampleKeyB2 = new HashMap();
    sampleKeyB2.put("fuga", "fuga");
    final String valueB = "fugafuga";

    sampleMapB.put(sampleKeyB1, valueB);

    System.out.println("get by sampleKeyB1 : " + sampleMapB.get(sampleKeyB1)); // (3)
    System.out.println("get by sampleKeyB2 : " + sampleMapB.get(sampleKeyB2)); // (4)
  }
}
489デフォルトの名無しさん:2005/10/19(水) 17:17:08
>>487
落ち着け。









put をしてないからだ。
490489:2005/10/19(水) 17:23:22
ごめんよく見ずに書き込んだ。on_
>>489 は無しね。


Map#equals() の仕様をみてみそ。
491393:2005/10/19(水) 17:42:55
>>394
JDKを入れてコマンドプロンプトから実行したのですが、やっぱり検索はできませんでした
どこかプログラムが間違ってるでしょうか?
492487:2005/10/19(水) 17:48:29
>>489-490
ありがとうございます。

うーん、読んでみたのですが、マップ内のエントリーセットを比較してくれる、
と言うことは分かる(と言いますか、期待している通り)のですが、
オブジェクト配列(コード上では同じ値をもつ String[] をキーとして値を取得
しようとする)の場合は NG、なのは…

きっと「オブジェクト配列の equals」を見るのでしょうが、今ひとつどこを見れば
いいのか分かっていません。
493487:2005/10/19(水) 17:50:36
>>491
元のコードがもう取得できないので予測ですが、
使用法を見る限り引数を与えていないんじゃないでしょうか。

参考書で検索文字列と検索対象ファイルに関する言及はありませんか?
494489:2005/10/19(水) 17:54:31
>>492
配列オブジェクトの仕様は JSL で規定されている。
http://www.y-adagio.com/public/standards/tr_javalang/10.doc.htm#11364

clone() 以外のメソッドが Object から継承されたクラスなので
equals() の仕様ももちろん Object クラスのそれに従う。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Object.html#equals(java.lang.Object)

で、Object#equals() は、同じオブジェクトを参照しているかどうかしか見ない
(中身が同一かどうかは関係ない)ので、配列の場合は NG というわけ。
495デフォルトの名無しさん:2005/10/19(水) 17:57:37
String a = "ABC";
String b = "ABC";

Javaだと
a == b false
a.equals(b) true

だったっけな
496デフォルトの名無しさん:2005/10/19(水) 18:01:58
>>491
「 java Find1 System < Find1.java 」 を実行すれば良いと思う。
497デフォルトの名無しさん:2005/10/19(水) 18:02:04
>>493
うまく表示できなかったのでもう一度うpします
ttp://up.spawn.jp/file/up3111.txt
参考書通りに書いたのですがうまくいかなくて・・・
498デフォルトの名無しさん:2005/10/19(水) 18:03:08
>>497
この uploader は、URL 直リンクでは 403 になってアクセスできないよん。トップから迂回してね。
499デフォルトの名無しさん:2005/10/19(水) 18:03:18
>>496
あ、それで実行したらできました。
どうもお騒がせしました
500487:2005/10/19(水) 18:05:08
>>494-495
ありがとうございます。やっと溜飲が下りました。
501デフォルトの名無しさん:2005/10/19(水) 18:08:25
そーいや配列同士のequalsってやったこと無かったな。 勉強になった。

String[] a = new String[] { "A", "B", "C" };
String[] b = new String[] { "A", "B", "C" };
a == b    false
a.equals(b) false
502デフォルトの名無しさん:2005/10/19(水) 18:13:07
配列同士の equals は java.util.Arrays.equals だからなぁ。
503デフォルトの名無しさん:2005/10/19(水) 18:15:33
System.out.println( new String[0] + " " + new String[0] );
Object#equals()とString#equals()の違い見たほうがいいよ
504489:2005/10/19(水) 18:33:17
どうでもいいが
×JSL
○JLS
だった。サッカーリーグかよ。on_

落ち着かないといけないのは俺の方だな・・・。


>>495
そういう話で String を例えに出すとはまるよ。
505デフォルトの名無しさん:2005/10/19(水) 19:24:30
>>495は無知
506デフォルトの名無しさん:2005/10/19(水) 20:10:57
いきなりですが、質問していいですか?コンポジションのことです。
1 class Total{
2   int invoice(Add add){
3   while(add.isNotMax()){
4     add.acalc(1);
5     }
6   return add.total
7   }
8   public static void main(String args[]){
9     Total tt = new Total();
10     Add aobj = new Add(5);
11     System.out.println("Totalcost = " +tt.invoice(aobj))
12   }
13 }
14
15 class Add{
16   static final int Max = 50;
17   int total;
18   Add(int initial){
19     total = initial;
20   }
21   boolean isNotMax(){
22     return total<Max;
23   }
24   int acalc(int amount){
25     total = total + amount;
26     return total;
27   }
28 }
507続き:2005/10/19(水) 20:12:15
実行結果は Totalcost = 200 になります。
2行目でint invoice(Add add)とありますが、
その後3,4,6でadd.〜〜ってなってますが、オブジェクト参照変数のように使ってますよね。
それってどういう意味なのか・・・。
あと、11行目のtt.invoice(aobj)とありますよね。
aobjってオブジェクト参照変数じゃないんですか?
意味がわからないです。。。
508デフォルトの名無しさん:2005/10/19(水) 20:24:17
>>507
> 2   int invoice(Add add)

で、Add インスタンスを1つ受け取って、int を返すメソッド invoice を定義してる。
このメソッドが受け取ったオブジェクト参照は、変数 add に格納される。んで、

> 11     System.out.println("Totalcost = " +tt.invoice(aobj)) 

にてオブジェクト参照変数 aobj (が指している参照) を invoice に受け渡している。
509495:2005/10/19(水) 20:40:04
>>504
はまるとはどういうことでしょうか??
宜しければおしへてください

>>505
うん。
510デフォルトの名無しさん:2005/10/19(水) 20:52:44
>>508
もう少しだけ噛み砕いてくれませんか^^;
まだまだ初心者名もので。。。
511デフォルトの名無しさん:2005/10/19(水) 21:01:43
>>510
んじゃね〜コレを実行。>>506 にて混乱しているだろう部分を抽出するとこうなる。
これが分かると 507 が少し理解できる。

class Sample {
    public static int getLength(String text) {
        return text.length();
    }
    public static void main(String args[]) {
        String abc = "abcdefg";
        System.out.println(getLength(abc));
    }
}
512デフォルトの名無しさん:2005/10/19(水) 21:02:06
C#では>>495がtrueになるのに、Javaは変ですね(><)
513デフォルトの名無しさん:2005/10/19(水) 21:04:38
>>512
C# では operator== が class String にてオーバーライドされてる。java はできない。
……ところで、java でも演算子オーバーライドが実装されるって2年くらい前に聞いたんだが、結局ガセか?
514デフォルトの名無しさん:2005/10/19(水) 21:07:26
JavaPressに関連した記事が載ってたような
515デフォルトの名無しさん:2005/10/19(水) 21:13:38
>>513
2年ぐらい前の guy steele だったかのインタビューで言及があったような。
そんとき C# の struct みたいな軽量クラスにも言及してたと思う。

まぁでも言及があったっつーだけで、演算子オーバーロードを実装するとか言ってるわけでは無かったな。
516デフォルトの名無しさん:2005/10/19(水) 21:18:18
>>511
ちょっとやってきますね><
ありがとうございます!!
517デフォルトの名無しさん:2005/10/19(水) 22:03:20
>>513
genericsと同じくらい要求はあるが、genericsを遥かに超えるほど
反対もある。
特別なスーパークラスの派生クラスだけでも演算子オーバーラ
イドできるといいんだけどな。実際Stringは特別扱いしてるんだし
Integerとか使うとコードが汚くなるorz
518デフォルトの名無しさん:2005/10/19(水) 22:07:14
>>487
String[] の替わりに List<String>使えば幸せになれるかもよ
519デフォルトの名無しさん:2005/10/19(水) 22:29:54
>>489
でたらめばっかり書くなよ
520デフォルトの名無しさん:2005/10/19(水) 23:14:20
>>519
ちゃんと直後に訂正してるじゃん。
521デフォルトの名無しさん:2005/10/19(水) 23:19:14
突然すみません。下のプログラムを見てもらえないでしょうか?
というのも、Aというオリジナルなクラスを作成し、配列としてオブジェクトの生成を行った後に
その生成されたオブジェクトのメソッドを読み出そうとするとヌルポになって中断してしまうのです

オリジナルなクラスの配列としての生成は不可なのでしょうか??
ここで、詰まってしまってどうしても前に進めません・・・
どなたかよろしくお願いします


class A {
int size = -1;

public void setSize(int Size) {
size = Size;
}
}

class sample {
public static void main(String ar[]) {
A d[] = new A[4];
System.out.println("size : "+d[0].getSize()+"");
}
}

522デフォルトの名無しさん:2005/10/19(水) 23:23:32
java の配列は、ちょうど C++ のポインタ配列と同じ風に初期化されるよ。
↓みたいにするか、あるいは d[0] 〜 d[3] に直接 A のインスタンスを入れてちょ。

class sample {
    public static void main(String ar[]) {
        A d[] = new A[4] { new A(), new A(), new A(), new A() };
        System.out.println("size : "+d[0].getSize()+"");
    }
}
523デフォルトの名無しさん:2005/10/19(水) 23:34:22
>>522
thxです
配列としてのnewしたあとに、次にクラスとしてのnewを行うんですね
全く思いつきませんでした
今、してみたところうまくいきました

524デフォルトの名無しさん:2005/10/19(水) 23:39:13
わかりやすく書くと
A d[] = new A[4]; の下に
d[0]=new A();
d[1]=new A();
d[2]=new A();
d[3]=new A();
が必要
525デフォルトの名無しさん:2005/10/20(木) 00:02:31
それ書こうと思ったけど止めた奴だw
もしかしたらそっちの方が良かったかも知れんが。
526 ◆68nHv.MDYQ :2005/10/20(木) 00:07:55
JAVA初心者です。
少しずつ勉強しています。
早速で大変恐縮なのですが、JAVAでブラウザゲームを作れるでしょうか?

【経緯】
MMORPGライクなゲームを作りたいと思って勉強してるんです。
perlを前やっていたのですが、perlでは思うようなゲームを作る事はできないと分かったので、JAVAに切り替えた次第であります。

宜しくお願いします。
527デフォルトの名無しさん:2005/10/20(木) 00:17:17
>>526
できます

ただし、敷居は高いだろうと思う。
とりあえずオセロみたいな対戦型テーブルゲームを作れるようになってから、そういうことに挑戦すべきだと思う。
528デフォルトの名無しさん:2005/10/20(木) 00:22:11
金と時間と技術さえあればどの言語だっていけると思うが。
そうじゃないのか。
529デフォルトの名無しさん:2005/10/20(木) 00:22:51
>>526
perl で作れんのであれば、Java でも無理だと思われ。
言語っつーよりも人間の能力の問題。
530デフォルトの名無しさん:2005/10/20(木) 00:25:37
>>526
Perlってゲームって言うより文字処理向けじゃない?
531デフォルトの名無しさん:2005/10/20(木) 00:26:08
>>529
馬鹿が煽るとそういう感じになるのか。納得。
532 ◆68nHv.MDYQ :2005/10/20(木) 00:28:13
>>527
ありがとうございます。
がんばります。

>>528
perlを極限まで極めれば出来た事なのかもしれないけども、私には分かりません。

>>529
例えばYahooゲームはJAVAでプログラムされています。
perlでも同じようなものは、極論から言うと作れないわけではありませんが、速度・性能等においては私の満足できるものではありませんでした。
私の力不足といえばそれまでなのですが。

皆様、ありがとうございました。
まだ未熟がために目標に到達できるかどうかは分かりませんが、目標に到達できる道があるという事がわかり、大変うれしく思います。
ありがとうございました。
533デフォルトの名無しさん:2005/10/20(木) 00:34:44
>>529
perlでドラクエ風ゲーム作ってみろや。
出来たら鼻でスパゲティ喰ってやるよ。
534デフォルトの名無しさん:2005/10/20(木) 01:18:36
素のperlには標準GUIがなかったと思うけど
perl/tkやらperl/GTKやら使えばGUIも使えるんだから作れるだろ。
CUIで無理矢理作るのも不可能ではないし。
535デフォルトの名無しさん:2005/10/20(木) 01:18:47
すいません。質問です。
Windows の Javaで OpenTypeフォントは使えないのでしょうか?
TrueType は使えているのですが・・・・
536デフォルトの名無しさん:2005/10/20(木) 01:47:37
>>534
じゃあ作って見せて。
537デフォルトの名無しさん:2005/10/20(木) 02:01:16
クレクレ厨キタコレ
538デフォルトの名無しさん:2005/10/20(木) 02:07:53
日付の定数を定義したいのですが、これだと ParseException をキャッチしていない、
となってしまいます。こういう場合の例外はどう処理すればいいのでしょうか?
又、日付の定数を定義するにはどうしたら良いのでしょうか?

public class Test {

public static Date dt =
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2005-10-20");

public static void main(String[] args) {
539デフォルトの名無しさん:2005/10/20(木) 02:09:14
例外ならキャッチすれ。
定数ならfinal修飾すれ。
540デフォルトの名無しさん:2005/10/20(木) 02:12:08
Calendarで年月日を設定してDateにしろ。
deprecatedだがDateのコンストラクタに年月日をとるのもあるだろ。
541デフォルトの名無しさん:2005/10/20(木) 02:15:00
>>538
public static Date dt = new GregorianCalendar(2005, 10, 20).getTime();

public static Date dt;
static {
try {
dt = new Simple〜;
} catch (ParseException pe) {
thorw new InternalError(pe.getMessage());
}
}
でいいんじゃない?
542デフォルトの名無しさん:2005/10/20(木) 02:16:31
そういや、static に throws って付けられないんだよな。
543デフォルトの名無しさん:2005/10/20(木) 02:18:16
>>541
へーそれ定数なんだー。
544デフォルトの名無しさん:2005/10/20(木) 02:21:59
定数にするにはどうしたらいい?
545デフォルトの名無しさん:2005/10/20(木) 02:25:59
java.util.Dateのインスタンスを書き換え不可にする手段はありませんな。
546デフォルトの名無しさん:2005/10/20(木) 02:26:50
値を変えないと明示するならば、それは定数。値が変わるのなら変数。
コード上で値を変更しないという保障をするのならfinal、Cでいうconst。
547デフォルトの名無しさん:2005/10/20(木) 02:30:56
オブジェクト変数にfinal修飾したときって
そのオブジェクトの中身までは書き換え不可にならないよね?
548デフォルトの名無しさん:2005/10/20(木) 02:36:56
>>547
ならないですね。
Javaのfinalは、Cでいう「Date* const dt」であって、「const Date* dt」ではない。
549デフォルトの名無しさん:2005/10/20(木) 02:39:36
じゃあfinal longで日付値を保持するのがよいね。
550デフォルトの名無しさん:2005/10/20(木) 08:20:23
java.util.DateがimmutableでないのはJavaの初期の大きな設計ミスだと主張する俺様の登場ですよ
551デフォルトの名無しさん:2005/10/20(木) 08:23:17
はいさようなら
552デフォルトの名無しさん:2005/10/20(木) 08:44:19
>>517
>genericsと同じくらい要求はあるが、genericsを遥かに超えるほど反対もある。

そんなに要求は無いと思う.
553デフォルトの名無しさん:2005/10/20(木) 09:41:14
思うのは簡単だから
554デフォルトの名無しさん:2005/10/20(木) 10:27:39
>>552
>そんなに要求は無いと思う.
             ~~~~~
これだからJava厨は・・・
555486:2005/10/20(木) 10:49:11
遅ればせながらありがとうございます。
無事解決しました。
556デフォルトの名無しさん:2005/10/20(木) 12:04:23
>>474
まてまて、intはObjectのサブクラスではないが
int[]とObject[]はObjectのサブクラスだぞ
557デフォルトの名無しさん:2005/10/20(木) 12:07:41
>>554
お前アメリカ人とビジネスすることもアメリカ人と一緒に
研究することも向いていないな。

よく
I think
と書くことはアメリカではよくやることだ。
日本ではなぜか「私は・・・思う」と書くとよくないこととされるが
アメリカでは I thinkとすると他人の意見ではなく自分の意見を
しっかりいっていると高く評価される。
日本でもアメリカの影響を受けてその高く評価される傾向が高まってきている。
それのわからずJava厨がどうだこうだ餓鬼のように喚くとは>>554は何と幼稚なことか。
困ったもんだ
558デフォルトの名無しさん:2005/10/20(木) 12:14:57
>>517
> >>513
> genericsと同じくらい要求はあるが、genericsを遥かに超えるほど
> 反対もある。
> 特別なスーパークラスの派生クラスだけでも演算子オーバーラ
> イドできるといいんだけどな。実際Stringは特別扱いしてるんだし
> Integerとか使うとコードが汚くなるorz

そんな要求はないと思う、というより、
そんな要求もメリットもない。もしそんなものが実装されるとしたら
C#とは全く異なる方法で実装されるだろう。

なぜなら、==とequals()とははっきり区別しなければならないからだ。
==と使って同値判定したい場合とequals()を使って同値判定したい場合と、
複数の要求に応えなければならない場面が出てくる。

==はより厳しく判定し、equals()は限定的な緩めな同値判定するときに使う。
無闇に演算子自動オーバライドされると困った事態に陥る。

==の性質がクラスによって変わってしまうことは混乱を招き考え方が
がらりとかわり、煩雑化し、メンテナンス性悪影響を及ぼすことにつながるからだ。

equlas()はクラスによって性質がかわっても==は一切変わらず
オブジェクトがちょっとでも異なればfalseとなるようにしなければならない。
それによってメンテナンス性は保たれ、バグ増大の原因を生みにくくする効果がある。

C#のような、下手な演算子オーバライドはバグの温床となる。
559デフォルトの名無しさん:2005/10/20(木) 12:17:44
>>531
わかってないな。Perlだけをしってる香具師の大半はGUIなど
ろくにしらない。スレッドやネットワーキングについても知らない香具師が多い。
型に曖昧な言語を使いすぎているためPerl厨がJavaを使い始めると
かなりドツボにはまることは目に見えている。
560デフォルトの名無しさん:2005/10/20(木) 12:19:37
>>557
何かのコピペか?

まぁ釣りだろうが言っとくと
アメリカでも根拠もなしに自分の意見言っても言っても何の評価もされんよ
〜だから,私は〜と思う。じゃないとな。
561デフォルトの名無しさん:2005/10/20(木) 12:30:54
ブラウザゲームとはそもそもなんだろう?
562デフォルトの名無しさん:2005/10/20(木) 12:49:35
>>558
そんな事は知ってる。反対派から百万回聞いた。
だから、プリミティブ型のラッパークラスに対してだけ、限定的にでも
演算子オーバーライドを認めればいいのにって書いた。
て言うか、Stringと同じ様に特別扱いしてくれれば十分なんだけどな。
String = String + Stringに対して、Integer.add(Integer)と書く事に何の
疑問も感じないの?率直に言って気持ち悪くない?

それに、それを言い出すならcloneやtoStringなんかも結構揺れてる。
演算子オーバーライドが無くったって既にフラフラじゃないか。
スーパークラスである程度の実装を見せておいて、それを継承する
側はLSPに従うという既知の原則を守ればいいだけの事。

演算子オーバーライドが上品な人間を行儀悪く変えるわけじゃない。
演算子オーバーライドを取り上げたところで下品な人間が行儀よくな
るわけでもない。世の中には上品な人間と下品な人間が居るという
ただそれだけの事。
563デフォルトの名無しさん:2005/10/20(木) 12:51:24
>>562
現行と矛盾なくかえるのはかなり厳しくない?
564デフォルトの名無しさん:2005/10/20(木) 13:03:06
難しいことは解らんが、
TPOをわきまえない下品な人間がどういうことかはよくわかった。
565デフォルトの名無しさん:2005/10/20(木) 13:14:55
なんかイヤンな空気ですがtarファイルをJavaから編集できるようなライブラリありませんか?
tarファイルを開いて中からファイルのストリームが取得できたりtarファイルにファイルを追加するなどしたいです
566sage:2005/10/20(木) 13:21:17
567デフォルトの名無しさん:2005/10/20(木) 13:22:03
>>533
perlでSDLつかってパズルボブルのゲームあるからドラクエとか余裕じゃない?
ちなみにFrozen-Bubbleね、画面はかなり綺麗よ

Javaで実装されたQUAKE2がCとほとんど同じ速度で動くからJavaでゲームが不可能って時代じゃないね
まぁ情報量が少ないからJavaでゲームは茨の道な気がするけど
568デフォルトの名無しさん:2005/10/20(木) 13:24:46
>>566
ああ・・commonsにあったのか・・
激しく灯台もと暗し orz
ありがとうございます
569デフォルトの名無しさん:2005/10/20(木) 13:28:30
そもそもString = String + Stringも単純にStringBuffer.append()に展開される訳だし
ラッパークラスのオーバーライドなんかプリプロセッサ作れば良いんじゃね?
Javaの言語仕様に入れる必要ないと思うが
570デフォルトの名無しさん:2005/10/20(木) 13:31:17
>>562
> Stringと同じ様に特別扱いしてくれれば十分なんだけどな。
String だけ特別扱いされている方が気持ち悪い、という考え方もある。
(どっちかを否定するというわけではないけど。)

ただ、String に対する特別扱いがいかに馬鹿を増やす温床になっているか
くらいのことはこのスレだけみてもよくわかるでしょ。
571デフォルトの名無しさん:2005/10/20(木) 13:51:11
質問させていただきます。

クラスA
クラスB

がありまして,クラスBはJFrameを継承しています
クラスAがBのインスタンスを生成して,それを表示させた後
クラスBで所要の操作をして,クラスBに配置してあるEXITボタンを押して
ウィンドウをdispose()します

このときクラスA側でクラスBで処理した結果を取得しようと思うんですが
現在はクラスBのインスタンスを生成したときにwindowListenerをAddして
windowClosed()を実装して,そのなかでクラスBの処理結果を取得しています
このやり方だとクラスBをdisposeしているのでクラスBの処理結果が得られない場合など
が出てきてしまう心配はないのでしょうか?

本当に変な質問の仕方でごめんなさい。
572デフォルトの名無しさん:2005/10/20(木) 14:07:11
なんか同じような質問どこかでみたな
setVisibleやdisposeは描画関係であって
クラスの中身自体はdispose後もGCで破棄されない限り普通にいじれる
573蟹玉 ◆qC/kAni/7Y :2005/10/20(木) 14:45:30

        (V)  (V)
        ミ( ゚皿゚)彡y―┛~~
         |__|
          | |
          調子
    """""""""""""""""
574デフォルトの名無しさん:2005/10/20(木) 14:51:15
>>571
そもそも、画面の制御とアプリケーションとしてのロジックを分離すればそういう設計にならないよね
575デフォルトの名無しさん:2005/10/20(木) 14:55:36
>>574
そうですね・・・
オブジェクト指向をどのように実現するかが
実際のところ全くといって理解できずにいます...
この場合もまずいとは思いつつも


吊ってきます
576デフォルトの名無しさん:2005/10/20(木) 15:03:43
>>562
Stringの +とおなじものを使えるようにしろということか

微妙だな。

Integerにadd()メソッドなんかないと思うのだが。
すでにautoboxing&unboxingが使えるので今のところInteger型同士で四則演算しても
問題ないと思うが。
577デフォルトの名無しさん:2005/10/20(木) 15:05:44
>>576
だからこそ、ラッパークラスの子息演算は使える必要が無い。
キャストできるようになったんだからintやlongにキャストして計算しろ
578デフォルトの名無しさん:2005/10/20(木) 15:05:51
>>569
そこでJakarta Velocityの出番ですよ
これで>>562の悩みも解決! 一件落着!
579デフォルトの名無しさん:2005/10/20(木) 15:08:49
>>570

> ただ、String に対する特別扱いがいかに馬鹿を増やす温床になっているか
> くらいのことはこのスレだけみてもよくわかるでしょ。

そうなのか?
そんなに馬鹿が増えているのかな?
String a = "a";
String a = new String("a");
との違いがわからない香具師のことをいってるのかな?

暗黙のうちにtoString()が呼び出されるとか知らない香具師も多いけど。
580デフォルトの名無しさん:2005/10/20(木) 15:11:12
ちょっと知識があるだけでエラそうなレスする奴ってメガトン級の痛さですね(><)
581デフォルトの名無しさん:2005/10/20(木) 15:11:14
>>579
こんなの書く奴は糞
String s = "<html><body>" + s1 + "<br>" + s2 + "</body></html>";
582デフォルトの名無しさん:2005/10/20(木) 15:24:16
>>581
まさにJakarta Velocityがお勧め
583デフォルトの名無しさん:2005/10/20(木) 15:33:30
>>579
だいたいそんな感じ。
このスレを上に100レスくらい遡っただけでも何人か居そうだし。


このスレのレベルがそもそも低ry
584デフォルトの名無しさん:2005/10/20(木) 15:37:56
二分割された画面上で、右クリックに合わせてポップアップ表示をさせたいんですが
うまくいかないです。
コンパイルは通るけど右クリックになにも反応してくれないです。
原因わかるかたご教授お願いします。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class My extends JFrame implements MouseListener {
JPopupMenu popup = new JPopupMenu();
private JMenuItem addPopupMenuItem(String name, ActionListener al){
JMenuItem item = new JMenuItem(name);
item.addActionListener(al);
popup.add(item);
return item;
}

public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseClicked(MouseEvent e){
if(SwingUtilities.isRightMouseButton(e)){
popup.show(e.getComponent(), e.getX(), e.getY());
}
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
private void showPopup(MouseEvent e) {
Component com = (Component)e.getSource();
if (e.isPopupTrigger()) popup.show(com , e.getX() , e.getY());
}
585584:2005/10/20(木) 15:39:27
JScrollPane spane1, spane2;
JPanel panel;
JSplitPane spltpane;
private JTextArea textArea;
Container cont;
public static void main(String args[]) {
My window = new My();
window.setSize(800, 400);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setVisible(true);
}
My() {
super("ポップアップ表示");
cont = getContentPane();
((BorderLayout)cont.getLayout()).setVgap(5);
addMouseListener(this);
addPopupMenuItem("Menu1", new ActionListener(){
public void actionPerformed(ActionEvent e){
System.out.println("Menu1 selected");
}
});。
586デフォルトの名無しさん:2005/10/20(木) 15:41:13
int型が入っている配列の2つの要素の位置を交換するにはどういう風に書けばいいの?
swap?
587584:2005/10/20(木) 15:41:27

spane1 = new JScrollPane();
textArea = new JTextArea();
textArea.setWrapStyleWord(true);
textArea.setLineWrap(true);
spane2 = new JScrollPane(textArea);
spltpane = new JSplitPane(
JSplitPane.HORIZONTAL_SPLIT,
true, spane1, spane2);
spltpane.setDividerLocation(300);
cont.add(spltpane, "Center");
}
}

自分なりに書いてみたコードです。
よろしくおねがいします
588デフォルトの名無しさん:2005/10/20(木) 15:50:32
>>579
全く違いが分かりません
589デフォルトの名無しさん:2005/10/20(木) 16:40:51
役に立たないクズ共がぁ!!
590デフォルトの名無しさん:2005/10/20(木) 17:19:20
アノテーションについて書籍などを読んだのですが、
どのようなシチュエーションで役立つモノかが検討つきません。

どんな時につかうものですか??実際、役立っていますか?
591デフォルトの名無しさん:2005/10/20(木) 17:38:37
java 以外の言語でみると、C# とかの属性が java の注釈と似たような機能なんだけど、
たとえば java.io.Serializable とかの実行に直接的な影響の無いマーカーインターフェイスが、
C# では属性として定義され、使われてます。

けど、ぶっちゃけ自前で実装することは殆ど無い。
大抵 API からの要請でつけるくらいで。
592デフォルトの名無しさん:2005/10/20(木) 17:54:13
なるほど、ありがとうございます。>>591
593デフォルトの名無しさん:2005/10/20(木) 18:47:52
質問です。
Vectorクラスの配列を用意して九九を1の段から9の段まで格納しました。
それを利用して
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56
9 18 27 36 45 54 63
(スペースは見やすいようになので気にしないでください)
という様に画面に出力したいのですが。どのようにすればいいのかまったく
わかりません。どうか教えてください。お願いします。
宿題ではないです。

594デフォルトの名無しさん:2005/10/20(木) 18:53:12
>>593
Vector 一個だと 1 次元のデータしか格納できないが九九は 2 次元だよな。
Vector の中に Vector を入れたのかな?

・ループする
・System.out.println()
595デフォルトの名無しさん:2005/10/20(木) 18:57:42
つか、Vector の格納って必要ないと思うが。

for(int x=0; x<10; x++){
  for(int y=0; y<=x; y++){
    System.out.print((x * y) + " ");
  }
  System.out.println();
}
596デフォルトの名無しさん:2005/10/20(木) 18:59:28
こういうコードを実行してみたのですが
double i=0;
while(i<1){
System.out.println(i);
i=i+0.1;
}
結果は
0.0
0.1
0.2
0.30000000000000004
0.4
0.5
0.6
0.7
0.7999999999999999
0.8999999999999999
0.9999999999999999
こんなことになります。どうして0.1づつ増えないのでしょうか、どうか教えてください。
597デフォルトの名無しさん:2005/10/20(木) 19:03:07
>>596
丸め誤差。
http://msugai.fc2web.com/java/class/DecimalTips.html


精度が必要な場合は BigDecimal を使おう。
598デフォルトの名無しさん:2005/10/20(木) 19:04:25
>>594
初心者なもので、もう少し詳しくお願いします。
Vector[] vec = new Vector[9];
このようにして。index0から8までに一段ずつ格納しました。
その先がわかりません。
>>595
Vectorを使うことに意味があるのです。
599デフォルトの名無しさん:2005/10/20(木) 19:04:25
>>596
機械イプシロン、精度、実数などでぐぐってみることをお勧めします
600デフォルトの名無しさん:2005/10/20(木) 19:06:40
>>598
for(int i=0; i<vec.length; i++){
  for(int j=0; j<vec[i].size(); j++){
    System.out.print(vec[i].getElement(j) + " ");
  }
  System.out.println();
}
601デフォルトの名無しさん:2005/10/20(木) 19:31:34
>>593
http://pc8.2ch.net/test/read.cgi/tech/1123639475/374

宿題ではないとどの口が言っておるのかね?
602デフォルトの名無しさん:2005/10/20(木) 19:32:29
>>597
>>599
なるほど、有限の浮動小数点だと二進数と十進数じゃきっちり対応しないということですね
ありがとうございました。
603デフォルトの名無しさん:2005/10/20(木) 19:38:44
>>600
どうもありがとうございます。
public class mmVector {
public Vector ve[] = new Vector[9];
public StringBuffer sb;
public void mm(){
for(int i = 1; i <= ve.length; i++){
sb = new StringBuffer();
for(int j = 1; j >= ve.length; j++){
sb.append(i * j);
}
ve[i].addElement(sb);
}
}
NullPointerExceptionが出るのですがなぜでしょう?
教えてください。
604デフォルトの名無しさん:2005/10/20(木) 19:38:50
文字化けについて書かれているサイトって教えていただけませんか
605593:2005/10/20(木) 19:40:19
>>601
私もそれを見てあっ!と思ったのですが、
別人なんです。信じてくれますか?
606デフォルトの名無しさん:2005/10/20(木) 19:40:20
ve[i] = new Vector();
がない
607デフォルトの名無しさん:2005/10/20(木) 19:43:36
一つ前のJavaのUpdateは削除してもOKですか
608593:2005/10/20(木) 21:07:34
>>600
その方法で九九を表示させることはできましたが、
>>593
のように表示させるにはどうしたらよいのでしょうか?
609デフォルトの名無しさん:2005/10/20(木) 21:39:46
宿題でないなら目的は何?趣味で九九を入れてるの?
方法はいくらでもあるから何が正しいとか正解とかないわけよ

答えだけ求められてると宿題以外に聞えないよ
答え:DecimalFormat("##0").format(value)


610デフォルトの名無しさん:2005/10/20(木) 21:44:41
>>605
別人かもしれんが宿題なのは確定だな。
ウソつくヤツには教えたくないね。
611デフォルトの名無しさん:2005/10/20(木) 22:49:03
>>593だが、別のところで全く同じ質問を見かけたことがある。
何かの本の問題なんじゃないか?
612デフォルトの名無しさん:2005/10/20(木) 23:12:01
もう終わってるみたいだけど演算子のオーバロードがしたい人はGroovyおすすめ。
613デフォルトの名無しさん:2005/10/21(金) 01:30:09
>>590
Eclipse3.1とかを使ってみればわかるよ。
オーバライドメソッドを実装していれば@Overrideをつけろと
警告してくる。

@Overrideとか@depricatedは超便利。

使ったことはないけど、
ほかにHibernateやJBoss AOP, EJB3.0などに役立つね。

今までアノテーションができるまでは@depricatedはJavadocコメント上に置かれていた。
XdocletもJavadocコメント上に置かれた@で始まる文字列を解析してソースコードを
自動生成するというものだった。それがアノテーションによって
Javadocコメントの一部ではなくJavaコードの一部として機能したためコンパイラがしっかりと
チェックしてくれるようになり非常に便利になった、ということかな。
警告を出して欲しいときに出す
逆に@Supresswaringによって警告を無視してくれるなど役立つ場面は多い。



614デフォルトの名無しさん:2005/10/21(金) 01:30:39
>>603
まるっきり教えてもらってんじゃねーよ 馬鹿!
すこしロジック考えて「こんなんどうですか?」
ぐらいやってみろ。
615デフォルトの名無しさん:2005/10/21(金) 01:32:04
>>599
普通に10進2進変換誤差でいいかと
616デフォルトの名無しさん:2005/10/21(金) 01:36:32
>>605
> >>601
> 私もそれを見てあっ!と思ったのですが、
> 別人なんです。信じてくれますか?

なんか嘘臭いなあw
投稿時刻からして宿題スレのほうが二時間半ほどレスが早いしなw
怪しいぞw
617デフォルトの名無しさん:2005/10/21(金) 01:38:08
そもそも
こんな簡単な問題も解けないなんてなw
ちったあ頭仕えや坊主
618デフォルトの名無しさん:2005/10/21(金) 01:40:53
>>610の言うとおりやっぱり宿題だったんだな。
同じ教官に出された課題を別人が質問していた可能性があるわな。

Vectorなんて使ってるところが、
いかにも時代に乗り遅れた古くさそうな教官の指導を受けていることを伺わせてくれる。

619デフォルトの名無しさん:2005/10/21(金) 03:26:55
public static void main(String[] args) throws Exception {
final long NT = System.nanoTime();
final long CTM = System.currentTimeMillis();
while(true) {
long ctm = System.currentTimeMillis();
long nctm = CTM + (System.nanoTime() - NT) / 1000000;
// ミリ秒 ナノ秒 開始時刻
System.out.printf("%1$tT.%1$tL %2$tT.%2$tL %3$tT.%3$tL\n", ctm, nctm, CTM);
Thread.sleep(1000);
}
}

これずっと動かしてるとnanoTimeで計算してる方が少しずつ進んでいくんだけど、何か間違えてる?
620デフォルトの名無しさん:2005/10/21(金) 03:29:10
>>618
Swing使ってるとか
621デフォルトの名無しさん:2005/10/21(金) 03:32:19
>>619
少しずつ進んでいくとは?
622619:2005/10/21(金) 03:42:38
>>621
数時間動かしてたらnctmの方が100msec程度進んでたのよ。
623デフォルトの名無しさん:2005/10/21(金) 05:16:15
原因がどうとか詳しい事はさっぱりだが
逆だろ進む事はないだろ
624デフォルトの名無しさん:2005/10/21(金) 10:34:44
クイックソートの基準となる値ってのはどうやって決まるの?
625デフォルトの名無しさん:2005/10/21(金) 10:36:30
そもそもn秒が正確に算出できるマシンってあるのか?
626デフォルトの名無しさん:2005/10/21(金) 10:56:36
>>624
勝手に決まるわけ無いだろ
自分で決めるんだよ
決め方には何通りかある
・配列の1番目
・配列の最後
・配列の真ん中
・ランダム
・ランダムで複数取得して、その中間値
などなど
627デフォルトの名無しさん:2005/10/21(金) 13:21:27
質問します

今ユーザーとやり取りしながら処理を行うシステムを考えているのですが
このときのUIと実際に処理を行うクラス(コントロールクラス)との関係を
どう実装していいのかが分からず困っています.

ユーザーからの要求をUIが受け
コントロールクラスないの処理を呼び出す形になると思うのですが
この場合UIにメンバとしてコントロールクラスを持たせてもいいのでしょうか?
628デフォルトの名無しさん:2005/10/21(金) 13:45:27
それでいいんじゃないですか。
というか、メンバとして持たせないと、UIからコントロールクラスにアクセス出来ない気がします。

# あ、ひょっとして内部クラスとしてコントロールクラスを実装するって話?
629デフォルトの名無しさん:2005/10/21(金) 14:41:47
>>628
有難うございます!
最初で躓いてしまって苦悩してたんです

あと,内部クラスではないです
630デフォルトの名無しさん:2005/10/21(金) 14:57:19
>>627
UIが遷移しないのか?
もしするならそのコントロールクラスはUI遷移ごとに渡すの?
それならコントロールクラスがUIクラスを持った方が良いような気もする
631デフォルトの名無しさん:2005/10/21(金) 15:59:08
JDKをインストールしないといけないんですが、
JDKってJ2SEと別物?
J2SE入れれば、JDK入れたことになりますか?
教えて下さい。宜しくお願いします。m(_ _)m
632デフォルトの名無しさん:2005/10/21(金) 16:15:27
>>631
J2SEにJDKとJREがある。
JDKをダウンロードして入れろ。
ttp://java.sun.com/j2se/1.5.0/download.jsp
633デフォルトの名無しさん:2005/10/21(金) 16:26:18
>>630
根本的に間違ってる気がするのは気のせいだろうか・・・
634デフォルトの名無しさん:2005/10/21(金) 16:32:09
>>630
UIって言ってるのがawtとかswingなら
UIとロジックをシングルトンなブリッジでつないどきゃ良いんじゃね?
635デフォルトの名無しさん:2005/10/21(金) 16:55:00
>>631
> JDKってJ2SEと別物?
別物。J2SE(Java2 Standard Edition)とは、標準仕様・標準規格の名前。
Java2 Standard Edition SDK(JDK) は、Java2 Standard Edition仕様に沿って実装された実行環境と開発ツールのセット。

> J2SE入れれば、JDK入れたことになりますか?
J2SEは仕様を指す言葉でしかないので、「入れる」という概念が存在しないから、答えはNO。
636デフォルトの名無しさん:2005/10/21(金) 18:14:15
ねぇLinuxでJava使用したいんだけど、どうやってインストールするの?
本買ったら、Windowsのインストールは書いてあるんだけど、Linuxのやり方が書いてなかった。
637デフォルトの名無しさん:2005/10/21(金) 18:22:38
公式からダウソしてインストールすりゃいいじゃん
638デフォルトの名無しさん:2005/10/21(金) 18:24:59
>>636
言語の一つもインスコできない人間がLinuxなんぞry
639デフォルトの名無しさん:2005/10/21(金) 18:30:43
公式って>>632の所でいいのかな?
本かったらCDついてて、XPではそれでインストールしたんだけど
パス変数とかを変更しないといけなかったんだけどLinuxはその辺の設定もんだいないのかな?


>>638
仰るとおりでLinuxもFedorecore3を入れて基本アップデートしただけで使い方が分かってないんだよね。
でも一緒に勉強して使って見たいと思って本買ったんだけど、やる気だけが空回りしてトホホです。
640デフォルトの名無しさん:2005/10/21(金) 18:31:52
なんでできないものを一緒にやろうとするんだ。
片方ずつやればいいじゃない。
641デフォルトの名無しさん:2005/10/21(金) 18:32:35
>>639
どの道pathの設定はしないとだめだろ
642デフォルトの名無しさん:2005/10/21(金) 18:39:24
それも本当に仰るとおりなんだけど、
学校とか職場とか何も絡んでないから、普通に生活してるとLinux触らないでも困らないんですよ。
どうせなら、Linuxを覚えながらJavaも触りたいなぁと素人の欲目なんだよね。

>>639
やっぱ設定しないといけないんですか。そこの項目すら分からないからやっぱだめだな。
もう少し自力で調べたほうがいいですね。なんか愚痴みたいですいませんでした。またROMにもどります。
643デフォルトの名無しさん:2005/10/21(金) 18:40:50
結論はやっww
ROMなくてもいいだろうに
644デフォルトの名無しさん:2005/10/21(金) 18:52:01
オブジェクト思考言語の意味を誰か教えてくれませんか?
645デフォルトの名無しさん:2005/10/21(金) 18:53:09
import宣言に関する質問です。

foo.bar.Class1
foo.bar.Class2

という2つのクラスが存在し、これらのクラスを、

foo.ClassA

でインポートして使いたい場合に、ClassAのimport宣言部分では、

import foo.bar.Class1;
import foo.bar.Class2;

とすべきなのか、それとも

import foo.bar.*;

でまとめてしまっても良いのでしょうか?
646デフォルトの名無しさん:2005/10/21(金) 18:57:32
>>644
オブジェクトを考える言語です
647デフォルトの名無しさん:2005/10/21(金) 18:58:46
>>645
いずれ別の用途に使うことを考えているならimport xxx.*は使うべきではない
648デフォルトの名無しさん:2005/10/21(金) 19:02:23
演算子オーバーロードは別にいらないけどBigIntegerとBigDecimalは演算子使えるように特別扱いしてほしい
649デフォルトの名無しさん:2005/10/21(金) 19:04:39
>>646
2つ3つなら分けたほうがいいが、何十個も並べられたら見にくくなって激しく逆効果なので
そこは臨機応変に対応したほうがいい。
650デフォルトの名無しさん:2005/10/21(金) 19:47:06
>>648
俺もBigDecimalだけはやってほしい

業務系やってる人ならみんな思ってるはず


新人の書くコードがこわいしな
平気で a = b *1.5みたいなの書くからな
(ここでは a も b も int)
651デフォルトの名無しさん:2005/10/21(金) 21:05:34
>>647 (>>649もかな?)
ありがd!参考になりますた。
652デフォルトの名無しさん:2005/10/21(金) 21:49:46
JButton型の配列button[]に、
for文を使ってアクションリスナを登録したいのですが、
どうすればいいでしょうか?
653デフォルトの名無しさん:2005/10/21(金) 22:05:13
ループ
buton[i].addActionListener(リスナ);
654デフォルトの名無しさん:2005/10/21(金) 22:19:25
class cls{
public void func(){
System.out.println("test");
}
}
class test{
public static void main(String args[]){
cls a[]=new cls[3];
a[0].func();
}
}

なぜかこのようにクラスの配列のメソッドにアクセスしようとするとエラーが出ます。
コンパイルは正常にできるのですが、実行すると
Exception in thread "main" java.lang.NullPointerException
at test.main(test.java:9)
とエラーが出てきます。
誰か原因解る方教えてください
655デフォルトの名無しさん:2005/10/21(金) 22:21:05
656デフォルトの名無しさん:2005/10/21(金) 22:25:18
>>655
解決しました!!
とても解りやすい説明ありがとうございます!!
657デフォルトの名無しさん:2005/10/21(金) 22:36:03
>>653
あの、それだとループの変数は、ループの外に出ると
自動的に削除されるのでできないのですが・・・

他にどうしたらよろしいでしょうか?
658デフォルトの名無しさん:2005/10/21(金) 22:38:37
>>657
されないよ。先ずは試してみるのが良い。
659デフォルトの名無しさん:2005/10/21(金) 22:50:22
>>657
forで宣言した変数なら確かにそうだがそれが問題なら普通にforの前で宣言すりゃいいだけじゃね?
660デフォルトの名無しさん:2005/10/21(金) 22:50:43
>>658
失礼しました。
JButtonでなく、JLabelの間違いでした。
現在、

for (int i=0; i<label.length; i++){
label[i].addMouseLMouseListener(new MouseAdapter(){
public void mouseReleased(MouseEvent e){

}
public void mousePressed(MouseEvent e){

}
label.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent e){
}
}
}

という風にやっているのですが、コンパイルできません。
「ローカル変数iは内部くらすからアクセスされます
 finalで宣言される必要があります」
というエラーがあります。

座標の位置を記憶する変数をマウスリスナの中で呼び出しているのですが、
それが原因でしょうか?
661デフォルトの名無しさん:2005/10/21(金) 22:56:59
エラーメッセージのままでは?
リスナのメソッド内部でループ変数参照してません?
662デフォルトの名無しさん:2005/10/21(金) 22:57:50
>>660
そのコードだと括弧の対応がそもそも合っていないからコンパイルできないんだけどけど、
確かにローカル変数は final でないと匿名クラスからアクセスすることは出来ないね。

この場合は、JLabel を継承して独自のラベルを作成するか、
またはイベントリスナを共通にして、リスナ側でどのラベルが押されたか判断すると良いよ。


ちなみに、座標の位置は JLabel.getLocation() で取得できる。
663デフォルトの名無しさん:2005/10/21(金) 23:07:15
エラーメッセージのままでは?
リスナのメソッド内部でループ変数参照してません?
664デフォルトの名無しさん:2005/10/21(金) 23:10:16
>>661
>>662
アドバイスありがとうございます。
お示しくださったとおりで、メソッド内でループ変数を参照しています。
どうしても、ループ変数と同じ数値を使いたくて駒っています。
そこで、変数をループ外に用意するという方法を思いついたのですが、
具体的にどうしてよいかわかりません。
方法があれが、ご教授いただけないでしょうか?
665デフォルトの名無しさん:2005/10/21(金) 23:20:28
for (int i = 0; i < ・・・) {
  final int n = i; // 内部クラスから参照できるようにfinalに
  label[i].add・・・
}

エラーメッセージどおりfinal変数にすればいいだろ。
内部クラスからはiの代わりにnを参照するようにする。
666デフォルトの名無しさん:2005/10/21(金) 23:28:18
二度打ちスマソ

参照出来ない理由はforループ内部で宣言したからではなく、ローカル変数だからです。
for(final int i = ...
のように宣言すればリスナのメソッド内部から
ループ変数を参照できます
今携帯からなのでコード書けません

無名クラス ローカル変数 参照
でググれば参考になるコードとか解説が見つかると思います。
667デフォルトの名無しさん:2005/10/21(金) 23:28:46
つーか、へんなことするくらいならインナークラス辞めて
普通にコンストラクタで引数を受け取るようにすればいいだけだろ
668デフォルトの名無しさん:2005/10/21(金) 23:32:33
>>666
final 変数をどうやってループ変数にするつもりなんだか。
669デフォルトの名無しさん:2005/10/21(金) 23:33:30
マターリいこーぜ

右も左もわからないままグイなアプリ作ろうとすると
参考になりそうなコードが大概無名クラス使ったスタイルで書かれてるわけで。
670デフォルトの名無しさん:2005/10/21(金) 23:33:45
>>666
まて。
for(final int i = 0; i < labels.length; i++)
      がマトモに通るとは思えないんだが;
671デフォルトの名無しさん:2005/10/21(金) 23:38:49
ごめん
チョー適当な事書いてました
無名クラス調べてね
でやめときゃよかった 鬱
672デフォルトの名無しさん:2005/10/21(金) 23:40:09
相変わらず解答者のレベル高いな (・∀・)
673デフォルトの名無しさん:2005/10/22(土) 00:00:40
>>672
回答者じゃなくて「解答者」というところがポイントだね(・∀・)
674デフォルトの名無しさん:2005/10/22(土) 00:10:22
各メソッドの行数を数えてくれるツールないですか?
eclipse のプラグインだとなおいいんですが。
675デフォルトの名無しさん:2005/10/22(土) 00:14:38
は?
676デフォルトの名無しさん:2005/10/22(土) 00:29:04
>>635
>> J2SE入れれば、JDK入れたことになりますか?
>J2SEは仕様を指す言葉でしかないので、「入れる」という概念が存在しないから、答えはNO。

前提が成立しない場合は命題は真になる。ゆえに答はYES

チャチャスマソ
677デフォルトの名無しさん:2005/10/22(土) 09:28:31
同一パッケージ内のクラスで、メソッドを共有したいので、static protected
のメソッドを作成するのは間違いなんですか?先輩にそういわれたとです。
678デフォルトの名無しさん:2005/10/22(土) 09:38:34
インターフェースで良いじゃん
679デフォルトの名無しさん:2005/10/22(土) 09:43:37
>>677
staticである理由は?
protectedである理由は?
同一パッケージ内限定ならデフォルトアクセスでいいじゃん。
680デフォルトの名無しさん:2005/10/22(土) 11:13:50
インターフェースじゃ駄目だな
681デフォルトの名無しさん:2005/10/22(土) 12:42:43
>デフォルトアクセス
パッケージプライベートな
682デフォルトの名無しさん:2005/10/22(土) 12:43:45
どっちでも良いと思う。
683デフォルトの名無しさん:2005/10/22(土) 12:48:33
あるメソッドに、特定パッケージ外で使用して欲しくない場合どうするべきでしょうか。
アノテーションとかでは何ともならないみたいで・・・・

 /**
  * このメソッドはcom.xxxxx.core内でのみ使用してください
  */
 public boolen checker(Object arg) {
  //
 }
684デフォルトの名無しさん:2005/10/22(土) 12:50:50
>683
せめて一つ二つ上のレスぐらい読めんのか
685デフォルトの名無しさん:2005/10/22(土) 13:04:19
>アノテーションとかでは何ともならないみたいで・・・・
アノテーションがなにするものかわかっている人間だったらこんな質問しないべ
アノテーションもよくわかっていないようだ
686デフォルトの名無しさん:2005/10/22(土) 13:15:23
どうでもいいんだけど、「特定クラスからのみ呼び出されることを保障した公開メンバ」 みたいなアクセス制限が欲しい。
687683:2005/10/22(土) 13:23:47
>>684
パッケージ可視だと、配下になっちゃうからcommonパッケージを切れないので。

>>685
コンパイルやクラスロードのタイミングで開発者にクラスやメソッド等の
付加的な情報を提示するものだと思ってたのですが・・・
688デフォルトの名無しさん:2005/10/22(土) 13:25:07
>>686
それをやるとしたらどうなるんだろう?
例えば、mypackage.A、mypackage.Bクラスからのみ呼び出し可能な公開メソッドの場合
public(mypackage.A,mypackage.B) hoge() {}
とか?

A、Bクラスから呼び出されてはいけない場合
public(!mypackage.A,!mypackage.B) hoge() {}
特定パッケージから呼び出されてはいけない場合
public (mypackage.*) hoge(){}
689デフォルトの名無しさん:2005/10/22(土) 13:27:31
>>683
ソースレベルで何をやるのかわからないけれども
内部クラスで君のやりたい事はできないか?

public classA{

private classB{}


}
690デフォルトの名無しさん:2005/10/22(土) 13:31:00
>>687
パッケージ可視だと、配下になっちゃうってどう言う事?
commonパッケージってなんすか?
691デフォルトの名無しさん:2005/10/22(土) 13:35:25
>>686,688
コンパイル時に解決したい場合:
アノテーションとそれを解釈するツールをうまく作れば可能だと思うよ。
その他、AspectJみたいなAOPでも可能だと思うよ。

実行時に解決できればよい場合:
メソッド内でnew Exception().getStackTrace()を使って
呼び出し元を判別してやれば可能。
692686:2005/10/22(土) 13:48:10
>>691
アノテーションがよさげだな。別なクラスから呼び出されていると、コンパイルは通るけど警告出るような感じ。
javac 対応してくれないんかなぁ。
693デフォルトの名無しさん:2005/10/22(土) 13:59:27
アノテーションだと、apt じゃなくて javac 使われただけで意味が無くなるような気もする。
実行時にもチェックとかすんなら話は別だけど。
694デフォルトの名無しさん:2005/10/22(土) 14:02:10
apt についてドキュメント見てた。検出したいだけならこれで十分のような気もする。

注釈ついたメソッドを呼び出している場所を参照できるのかなこれ。
できるのなら暇をみて作ってみようとおもう。
695デフォルトの名無しさん:2005/10/22(土) 14:09:45
mouseDraggedについての質問です。
1秒間あたりというかある一定時間内に転送できる回数
っていうのは決まっているのですか?
今、ペイントアプレットを作っているのですが、
すばやくドラッグして描いた時に点線になってしまいます。
696デフォルトの名無しさん:2005/10/22(土) 14:17:21
>>694
Mirror API の Visitor は宣言部分しか visit してくれないみたいだから
注釈ついたメソッドが何処で呼ばれてるかは自分で解析するとかしないとダメなんでは?

そーいや compiler API って 1.5 からだっけ?
697デフォルトの名無しさん:2005/10/22(土) 14:23:27
>>695
どういうソース書いているかわからんけど
ポインタの位置再評価の間隔が長いだけ CPUの速度とかも関係あるかもね
ポインタの位置読み取ったタイミングで、前回読み取った位置までLine引くというのが一般的な方法
そのあと、そのLineをどこまで自然な曲線にするかはいろんな方法があるが
698695:2005/10/22(土) 15:08:42
>>697
なるほど、そういうことですか。

自分はペン先を●と■で任意の太さでかけるようにするため
fillOvalとfillRectを使ってます。
ソースに誤りが無いかもう1度見直して、
補完する方法を考えてみます。
ありがとうございました。

699694:2005/10/22(土) 16:25:25
色々考えたけど、やっぱり難しいね。

一番簡単なのは、RUNTIME な注釈で public メンバのアクセス許可クラスを指定しておいて、
コンパイル済みの class ファイルを片っ端から逆アセンブルして、リテラル文字列から使用状況を判断しチェック&レポート。

ソースレベルから判断するとなるとコンパイル前にチェックできるけど、結構骨折れる作業になりそう。
リファクタリングツールを1つ作るくらい面倒だよ。
700デフォルトの名無しさん:2005/10/22(土) 16:38:59
JAVAであるwebページをIEで開くには
どうすればいいのでしょうか?
701デフォルトの名無しさん:2005/10/22(土) 16:57:04
「JAVAであるwebページ」ってなんだ?
702デフォルトの名無しさん:2005/10/22(土) 16:59:16
JAVA(からの制御)で、あるWebページをIEで開く
ではないかとエスパーしてみる
703デフォルトの名無しさん:2005/10/22(土) 16:59:45
>>702
そうです
704デフォルトの名無しさん:2005/10/22(土) 17:00:27
JNIだな
705デフォルトの名無しさん:2005/10/22(土) 17:10:50
JNIってのでできるのですか?
C/C++言語を呼び出す方法って
書いてありましたけど。

706デフォルトの名無しさん:2005/10/22(土) 17:13:17
その前に聞くが、アプレットを作っているのかアプリケーションを作っているのか。
707デフォルトの名無しさん:2005/10/22(土) 17:15:10
アプリケーションです。
初心者なもんですいませんm(__)m
708デフォルトの名無しさん:2005/10/22(土) 17:28:41
JNIなんか関係なく単にiexplorer.exeを起動すればいいだろ
709デフォルトの名無しさん:2005/10/22(土) 17:32:43
>>708
どうすればiexplorer.exeを起動できるんですか?
処理ごとに別々のwebページを
開きたいのですけど。
710デフォルトの名無しさん:2005/10/22(土) 17:36:15
Runtime#exec("about:blank");
これで出るんじゃない?制御はしんどいと思うよ
msのvmにはあったよねcomがらみ操作の敗訴パッケージ
711デフォルトの名無しさん:2005/10/22(土) 17:54:20
Runtime#execでテストしてみましたけど、
スタートページしか開けません
712デフォルトの名無しさん:2005/10/22(土) 18:11:11
http://developer.apple.com/ja/qa/java/java12.html
にのってました。

コンパイルしてみましたがエラーがでます。

C:\>javac ExeExternalProcess.java
ExeExternalProcess.java:40: '.class' がありません。
Runtime.getRuntime().exec(newString[ ] {browserName, url});
^
ExeExternalProcess.java:40: ')' がありません。
Runtime.getRuntime().exec(newString[ ] {browserName, url});

何がいけないのでしょうか?
713デフォルトの名無しさん:2005/10/22(土) 18:24:42
>>712
その直前が間違ってるよ。キーワードが色分けされる環境を使ってれば一発で分かる。
714デフォルトの名無しさん:2005/10/22(土) 18:38:22
>>713
直前に } などが抜けているってことでしょうか?
715デフォルトの名無しさん:2005/10/22(土) 18:46:09
Tomcat4上で動かしているサーブレット(正確にはAxisのサービス)でクラスローディングをしているのですが
WEB-INF/libの中においてあるjarファイル内のクラスが正しく解決されません。


ClassLoader loader = ClassLoader.getSystemClassLoader();
try {
loader.loadClass("foo.bar.xxxxException");←/WEB-INF/lib/xxx.jar内のクラス
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
    とすると、ClassNotFoundExceptionが発生してエラー

対象のクラスは普通に宣言して使用する分にはまったく問題なく使えています。
自分としては、各サービス用のクラスローダーがあって、それを取得して、それのloadClass
を使う、というような方法で解決できるのではないだろうかと思うのですがあたってますで
しょうか?また、あたっているとしたらそのクラスローダーのインスタンスの取得方法はどのようにすれ
ばよいでしょうか?
どなたかご教授下さい。よろしくおねがいします。
716デフォルトの名無しさん:2005/10/22(土) 18:49:28
>>714
newString じゃだめ。new String じゃないと。
717デフォルトの名無しさん:2005/10/22(土) 19:08:27
>>716
new Stringにしてもまたエラーがでます・・

C:\>javac ExecTest.java
.\Runtime.java:6: クラス ExecTest は public であり、ファイル ExecTest.java で宣
言しなければなりません。
public class ExecTest extends Frame
^
ExecTest.java:40: Runtime にアクセスできません。
クラスファイル .\Runtime.java は不正です。
ファイルにクラス Runtime が含まれていません。
削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。
Runtime.getRuntime().exec(new String[ ] {browserName, url});
718デフォルトの名無しさん:2005/10/22(土) 19:15:09
>>717
下は無視。上のエラーについて、言われたようにすれば良いと思うよ。
719デフォルトの名無しさん:2005/10/22(土) 19:16:16
お? いやクラスパスの設定が誤ってる希ガス。
720デフォルトの名無しさん:2005/10/22(土) 19:29:06
>717
作業ディレクトリをかえて心機一転作業しよう、たぶん解決する
それとC:\がちらかってると気分わるくならない?
721デフォルトの名無しさん:2005/10/22(土) 20:02:42
>>720
できました!!
どうしてディレクトリを変えたらできたのでしょうか?
本当にありがとうございました!
助かりました。
722デフォルトの名無しさん:2005/10/22(土) 20:24:37
ルートディレクトリで作業してたのが問題
723デフォルトの名無しさん:2005/10/22(土) 20:43:33
>>722
ExecTest.javaのフルパスしていでも動くか?

724デフォルトの名無しさん:2005/10/22(土) 21:06:32
>>648,650
だからJakarta Velocityを使えとあれほど(ry
725デフォルトの名無しさん:2005/10/22(土) 22:16:08
なんでVelocityなんだ?
726デフォルトの名無しさん:2005/10/22(土) 22:24:13
メソッドやらクラスやらの概念からしてさっぱり分からないんだけど、
こんな俺にも分かりやすく解説してるサイトとかないっすか?
727デフォルトの名無しさん:2005/10/22(土) 22:26:58
>>726
wikip(ry
いや、ありえねぇ
728デフォルトの名無しさん:2005/10/22(土) 22:58:15
MVC(Model、View、Control)にそってコーディングするときって
皆VがCを持つ形にしてます?
それともCがVを持つ形にしてます?
参考書とかではCとMとの関係は書いてあるんですが
それにVがどう絡めてよいのか良く分らなくて
729デフォルトの名無しさん:2005/10/22(土) 23:02:24
>721
たぶんカレントにRuntime.java
なるものがあったと思う、それテストしたかなんかじゃない?
そんでそいつの中身はExecTest.javaと同じとかそんなん?
もし違ったら上手くいったのは助言関係なく偶然だよ
730デフォルトの名無しさん:2005/10/22(土) 23:02:55
>>727
Javaped(ry
なら少しはありえるかも
731デフォルトの名無しさん:2005/10/22(土) 23:16:15
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class sample1 extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResoponse res)
throws IOException,ServletException{

res.setContentType("text/html");

PrintWriter out=res.getWriter();

out.println("<html><head>");
out.println("<title>Hello Servlet!</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello Java Servlet!</h1>");
out.println("</body></html>");
}
}
コレどこか間違ってます?サーブレットの初期設定のヤリ方がいまいちわかんなくて四苦八苦してます・・・・・助けて
732デフォルトの名無しさん:2005/10/22(土) 23:25:13
>721
予想はずれてたら恥かしい発言になるけど
ダメな理由は
C:\Runtime.exe
C:\java\lang\Runtime.exe
と存在して
C:\> Runtime
と打ったら実行されるのどっちかって事で

だからjava.lang.Runtimeって表記ならいけたと思うよ

>731
717見習え、設定ができないのになぜServlet晒すの
ダメと言われたのなら同じの見せてくんないと無理だと思うよ
733デフォルトの名無しさん:2005/10/22(土) 23:27:27
JAVA超初心者です。
先日リカバリをかけたら実行できなくなりました。
助けてください。
Exception in thread "main" java.lang.NoClassDefFoundError: HelloJava
という、おなじみのエラーです。

現在の状況は以下のとおりです。
ファイル名:HelloJava.java、HelloJava.class
環境:WinXP Java2SDK1.4.1使用
環境変数の設定:PATH→;C:\j2sdk1.4.1_07\binと入力
CLATHPATH→デフォルト
プログラム内容:
class HelloJava{
public static void main(String[] args) {
System.out.println("Hello World!");
}
}

以前もCLASSPATHは、デフォルトではエラーになりましたので、
「.」を入力するというアドバイスを受け、実行することができました。
リカバリをかけた後、また同じ設定をしてもだめでした。
デフォルトに戻してもダメ・・・
コンパイルはできてます。
ソース、クラスファイル共に同ディレクトリにあり、同名であることを確認しています。
734デフォルトの名無しさん:2005/10/22(土) 23:28:42
そんな事言わずに教えて下さい
735デフォルトの名無しさん:2005/10/22(土) 23:33:04
>>733
>環境変数の設定:PATH→;C:\j2sdk1.4.1_07\binと入力
此処本当にあってるのか?
736デフォルトの名無しさん:2005/10/22(土) 23:45:22
仕事の関係上JAVAを学ぶことになりました。
これからこちらでお世話になることもあるとは思いますが、
よろしくお願いいたします。

いつかここで教える立場になれることを目指したい・・・
737デフォルトの名無しさん:2005/10/22(土) 23:49:14
>>735
本どおりにやってみたんですけど。
スペルも何度も確認して。
なにかほかに入れるもの、ありますか?
738デフォルトの名無しさん:2005/10/22(土) 23:52:22
>>735
733です
あれは最後に付け足したんです。
もともと入ってたやつの後に。
739デフォルトの名無しさん:2005/10/22(土) 23:53:38
とりあえず>>1のサイトの方法は全て試したんだよな?
740デフォルトの名無しさん:2005/10/23(日) 00:00:03
>>733
あのさ、環境変数もひとつの手だけど

cd <Hello.classの存在するディレクトリ>
java -cp . Hello

でいけるだろ?
これでいけなかったら知らん
741デフォルトの名無しさん:2005/10/23(日) 00:22:45
http://localhost:8080/

このアドレスのページが表示できないんですけど・・・みんなもそうですか?
742741:2005/10/23(日) 00:27:17
すいません誰か教えて下さい。表示できないんですよ
743デフォルトの名無しさん:2005/10/23(日) 00:30:11
俺は表示されるよん
744デフォルトの名無しさん:2005/10/23(日) 00:32:27
>>739
全部見て、ほとんど全部確認しました。
パス・クラスパスの設定ってとこ以外は。
「コマンドプロンプトでCLASSPATHをset CLASSPATH=%CLASSPATH%;.と設定」とありますが、
万が一実行がうまくいかなかったとき、どうやって元に戻すか分からなかったので。

745741:2005/10/23(日) 00:33:42
>>743
なんででしょうか?設定のやり方ですか??
746デフォルトの名無しさん:2005/10/23(日) 00:34:04
>>740
それをやってみても同じ結果でした。
ちなみに、それってなんなんですか?
747デフォルトの名無しさん:2005/10/23(日) 00:40:24
>>745
つ [Apache] + [Tomcat]
748741:2005/10/23(日) 00:45:25
>>747
それちゃんと入れてるんですよ。組み合わせ??
749デフォルトの名無しさん:2005/10/23(日) 01:00:30
>>748
組み合わせてなくても Tomcat だけでいけたような気がするが……。
へんな FireWall とか使ってない?
750デフォルトの名無しさん:2005/10/23(日) 01:04:42
Tomcatだけで動かすならlocalhost:8080だろうが
もしApacheとTomcatを「ちゃんと連携させて」動かせてるなら
localhost:8080じゃなくてlocalhost:80なんじゃないか?
751デフォルトの名無しさん:2005/10/23(日) 01:21:52
>>741
まず
netstatでポーと開いてるのか調べろ
752741:2005/10/23(日) 01:39:49
すいませんでした。解決はしたのですが、ディレクトリやパスの設定がいまいち意味不明です。サーブレット&JSPって難しいんですね。学校ではできたのに
753デフォルトの名無しさん:2005/10/23(日) 01:41:52
>>741
基本を理解しないで先に先に行きたがるからそんなことになる
754741:2005/10/23(日) 01:43:25
type Status report

message /java/sample/WEB-INF/classes/sample1

description The requested resource (/java/sample/WEB-INF/classes/sample1) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/4.1.31

こんな感じになっちゃいますよ〜〜〜どうしよ。かれこれ四時間くらい格闘してます!!!(涙)
755741:2005/10/23(日) 01:47:07
type Status report

message /examples/servlet/sample1

description The requested resource (/examples/servlet/sample1) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/4.1.31
またですよ(涙)
756デフォルトの名無しさん:2005/10/23(日) 01:53:01
757741:2005/10/23(日) 01:55:16
それじゃダメですよね・・・表示されない。
HTTP Status 404 - /servlets-examples/servlet/HelloWorldExample

--------------------------------------------------------------------------------

type Status report

message /servlets-examples/servlet/HelloWorldExample

description The requested resource (/servlets-examples/servlet/HelloWorldExample) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/4.1.31

こうなっちゃいます。どうしたらいいですか?
758デフォルトの名無しさん:2005/10/23(日) 01:57:23
>>741
それは、普通であればTomcatインストール時に利用可能なサンプル画面です
それが動かないのはおかしいなぁ・・・

Tomcatのzipのほう落としてきて、別のフォルダにインストールして確認してみろ
759741:2005/10/23(日) 01:58:06
はい!わかりました!
760デフォルトの名無しさん:2005/10/23(日) 01:59:04
つうかそもそも環境を書いとけよ
Windows?
JDK1.4?
最初にインストールしたのはexeタイプ?
761741:2005/10/23(日) 02:01:10
Windowsです。JDK1.5?です。多分exeです。。
762741:2005/10/23(日) 02:04:08
StartTomcatってのをダブルクリックするとすぐ画面が落ちちゃいます・・・
763741:2005/10/23(日) 02:07:42
どうすればいいんだあ〜〜〜〜〜〜〜!!!!!!
764741:2005/10/23(日) 02:09:51
寝るしかないか・・・
765デフォルトの名無しさん:2005/10/23(日) 02:10:43
CATALINA_HOMEをいじっちゃったとか
766デフォルトの名無しさん:2005/10/23(日) 02:32:08
>>729
その通りでした。
767デフォルトの名無しさん:2005/10/23(日) 02:59:57
>>741
ログファイルぐらい見れないのか?

それから、新しくTomcatインストールしたんなら
最初の奴は落としとけよ
768741:2005/10/23(日) 10:51:05
表示できないっす・・・・鬱だ
769デフォルトの名無しさん:2005/10/23(日) 11:20:21
つーかすれ違い。
770デフォルトの名無しさん:2005/10/23(日) 11:21:23
>>768
鬱とか無意味な情報提供はいいから
とりあえずインストールの手順を解説したページを参考にやってみれ
んで、参考ページとどこまで正しくできたか報告
あとエラーは詳細に報告しる
画面が落ちるとか意味がわからん
あとTomcatのログも提出

ちなみにTomcat4.x系でJDK1.5だとJSP関係が動かないはず
771デフォルトの名無しさん:2005/10/23(日) 11:42:16
>表示できないっす・・・・鬱だ
早く環境書いてね

Tomcatのログファイルの場所はzip形式なら
logsフォルダの中にある
772741:2005/10/23(日) 11:46:18
JDK1.5だからだ!!!それを削除すればいいんですね!やってみます!
773デフォルトの名無しさん:2005/10/23(日) 12:29:59
普通はTomcat5のほう使うけどな
774デフォルトの名無しさん:2005/10/23(日) 12:30:24
セキュリティホール見つかってるんだしTomcat5つかえよ
775デフォルトの名無しさん:2005/10/23(日) 12:46:25
>>699
クラスファイルを解析すんなら CLASS な注釈で良いのでは?
クラスをロードしてから reflection とか使ってチェックすんなら RUNTIME にしないとダメだけど。
776デフォルトの名無しさん:2005/10/23(日) 14:26:53
質問です。
ループを使ってVectorの配列[0]から[8]までにVectorのインスタンス、
[9]から[16]までにStringBufferのインスタンスを格納する
にはどうしたらよいのでしょうか?
(Vectorの配列を使ってインスタンスを一まとめに扱いたいのです)
必要ようなメッソドはすべて部品化したいです。
教えてください。
777デフォルトの名無しさん:2005/10/23(日) 14:28:18
ふつうVectorの配列にStringBufferは入れられないだろう。
778デフォルトの名無しさん:2005/10/23(日) 14:32:35
>>777
>ふつうVectorの配列にStringBufferは入れられないだろう。
え?
779デフォルトの名無しさん:2005/10/23(日) 14:35:24
Activation.main: 警告:sun.rmi.activation.execPolicy システム
プロパティが指定されていない、または
ExecPermissions/ExecOptionPermissions が許可されません。
ExecPermissions/ExecOptionPermissions アクセス権検査で許可され
ないため、あとに続く起動は失敗する可能性があります。
rmid セキュリティの設定方法については、次のマニュアルを参照して
ください。:
http://java.sun.com/j2se/1.4/docs/tooldocs/solaris/rmid.html
http://java.sun.com/j2se/1.4/docs/tooldocs/win32/rmid.html
Eclipse使ってます。
デバックしようとしたらこんなメッセージでました。
メインメソッドはあるんですけど。
わけわかりません。

780デフォルトの名無しさん:2005/10/23(日) 14:35:38
色んな物をvectorに突っ込む。すばらしいパターンです。
781デフォルトの名無しさん:2005/10/23(日) 14:37:01
>>778

Vector[] vectors = new Vector[16];
vectors[0] = new Vector();
vectors[9] = new StringBuffer();
782776:2005/10/23(日) 14:37:58
>>780
あんまりやらないほうがよいのでしょうか?
戻り値が二つになっちゃってどうしようかと悩んでます。
783デフォルトの名無しさん:2005/10/23(日) 14:58:08
RMIの一連の開発環境構築方法しっているよなぁ?
784デフォルトの名無しさん:2005/10/23(日) 15:28:47
>>782
うーん、俺はよくやるけど、でもStringとStringBufferではやったことない。
ま、だめって事はないと思うよ。
785デフォルトの名無しさん:2005/10/23(日) 15:30:46
例外を発生させ、catchで補足せよ。
とは、catchで例外を表示すれば良いのでしょうか?
補足というのが良く分からなくて・・・
786776:2005/10/23(日) 15:47:53
>>784
Vectorの配列を準備するメソッドを別クラスでつくった場合
具体的にはどのようにすればよいのでしょうか?
Vectorあまり使ったことないのでよくわかりません。
Vector型の配列を戻り値で返してやる必要があるのでしょうか?
787デフォルトの名無しさん:2005/10/23(日) 15:48:27
javaer黄金パターン
vector method();

tyr{
}
catch(Exception ex)
ex.printstacktrace();{
}
788デフォルトの名無しさん:2005/10/23(日) 15:55:54
相変わらず解凍者のレベル高いな (・∀・)
789デフォルトの名無しさん:2005/10/23(日) 15:59:44
tyr
790デフォルトの名無しさん:2005/10/23(日) 16:07:37
補足せよとはcatchすればのでしょうか
791デフォルトの名無しさん:2005/10/23(日) 16:28:24
>>776
Objectの配列ならいれることはできるが、
明示的なキャストが必要なので
実行時バグの温床となると思う

VectorとStringBuilderのどちらかを格納するクラスを作って
それの配列にするしか

でも、大概設計がおかしいということに気がついて欲しい
792デフォルトの名無しさん:2005/10/23(日) 16:44:43
うは、牛丼と鉄火丼混ぜて一つのどんぶりで出すってのも
奇をてらってていいかもね。
俺は店員をぶん殴るけどねw
793741:2005/10/23(日) 16:45:11
質問です。TOMCAT5.0を落としたのはいいんですが、スタートアイコンとストップアイコンが見つかりません。どうやって探すのですか?
794741:2005/10/23(日) 16:48:04
すいませんが教えて下さい。。。学校の勉強ができないのです。。家で
795デフォルトの名無しさん:2005/10/23(日) 16:54:04
何のために金払ってんだよ、ボケが
先生に聞けや
796741:2005/10/23(日) 16:54:04
インストールかアップデートできないんですよ。どうすりゃいいのさ・・・・・・
797デフォルトの名無しさん:2005/10/23(日) 16:59:05
>>776
もう少し話が具体的にならないと何とも言い様がない。
一体、何をどうしたいの?
798デフォルトの名無しさん:2005/10/23(日) 17:28:49
>>776
なんでVector<StringBuilder>とVector<Vector>の2つのオブジェクトを
所有するクラスを作るとか、そういう発想にならないのか教えてくれ。
799デフォルトの名無しさん:2005/10/23(日) 17:55:36
プロパティを読み込んで一意に格納しておきたいのですが、
格納用クラスを用意して、そこにstaticフィールドを用意しておき、
怠惰な初期化を行うのがいいんでしょうか。
もっと良い方法があったら教えて頂きたいのです。
800デフォルトの名無しさん:2005/10/23(日) 18:15:27
>>784
うるせーバカ。おまえ30才超のプログラマまたは学生プログラマだなwww
801741:2005/10/23(日) 18:20:14
HTTP Status 404 - /servlets-examples/servlet/HelloWorldExample

--------------------------------------------------------------------------------

type Status report

message /servlets-examples/servlet/HelloWorldExample

description The requested resource (/servlets-examples/servlet/HelloWorldExample) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/4.1.31

これを解決するにはどうしたら良いんだ~~~~!!!!!!!!!!!!!!!!!!わからん。発狂しそうだ
802デフォルトの名無しさん:2005/10/23(日) 18:26:16
>>741
それはTomcat5の話?
ブラウザのエラーではなく
logs/の中にあるログファイル晒したほうがいいと思うよ
803デフォルトの名無しさん:2005/10/23(日) 18:57:02
>>799
そういうのはPropertyBeanを書くのが定石。
804デフォルトの名無しさん:2005/10/23(日) 18:57:38
いつからこのスレはTomcatのスレになったんだ?
聞く方も答える方もウザいんだけど
805741:2005/10/23(日) 19:00:28
ログファイル長すぎて晒せません。分割してみます
806デフォルトの名無しさん:2005/10/23(日) 19:02:02
此処駄目だな
@ITに戻るわ
807質問です。:2005/10/23(日) 19:16:12
JPEGを読み込んでRGBの値を得るプログラムを教えてください。
808784:2005/10/23(日) 19:21:35
よく見たら、StringBufferとVector型を入れたいって話だったのか。。
勘違いしてた。


なんで、こういうことやりたいって思ったのかねぇ?
809デフォルトの名無しさん:2005/10/23(日) 20:19:23
他のプログラムを走らせて
そのプログラムが終了したかどうかを検知する方法を知りたいのですが
どのような方法があるのでしょうか?
810デフォルトの名無しさん:2005/10/23(日) 20:31:14
>>809
Runtime.exec() で走らせて、特定スレッドで waitFor() するとか。
スレッドが isAlive() で生きてれば実行中、死んでればプログラムは終了した。
811デフォルトの名無しさん:2005/10/23(日) 20:58:21
>>810
なるほど
ProcessにはListenerが無かったので如何すればと悩んでました
ありがとうございました
812デフォルトの名無しさん:2005/10/23(日) 23:01:46
waitFor()よりストリーム監視したほうがいいかも
813デフォルトの名無しさん:2005/10/23(日) 23:40:49
質問です。下のコードの while で一定時間が経ったら例外を投げたいのですが
何か良い方法はありますか?
ただし while の中身はいじれないとして。

public class SyncTest extends Thread {
private String title = null;
public SyncTest (String str) {
title = str;
}
public static void main (String args[]) {
SyncTest sync1 = new SyncTest("threa1");
sync1.start();
}
public void run () {
setX(title);
}
private static synchronized void setX (String str) {
while (true) {
// 無便ループ
}
}
}
814デフォルトの名無しさん:2005/10/24(月) 00:00:05
>>813
無理っぽ。仕様に厳密に従わなくて良いなら main 内で sync1.join(一定時間) とかして
タイムアウトしてもスレッドが終了してなかったら例外投げれば良い、とか。

っつーか、「無便」ループとか、setter 内で while (true) とか恐ろしいプログラムだな。
815デフォルトの名無しさん:2005/10/24(月) 00:20:51
安全ではないスレッドの破棄はダメだぞ
割り込みかけて対処してもらうのが普通
816デフォルトの名無しさん:2005/10/24(月) 01:18:51
>>814
なるほど。アイデアどうもです。
ただ、スレッドはそのまま無便ループを走り続けるというのはどうしようもないのかな。

>>815
おっしゃる通り。
でもこの場合 while でループしてるんで、割り込みかけるにかけられんという気が。
817デフォルトの名無しさん:2005/10/24(月) 01:48:15
いや、
割り込みかけたら割り込まれたスレッドは感知できるんで
それでループをやめるしかない


処理の内容によるがwhile()で無限ループさせるよりはJava.util.Timerでまわさせるとかなら
外部から飛ばさせることは可能だが

どっちにしろ残念ながらちみがやりたいこととは一致せんがね
818デフォルトの名無しさん:2005/10/24(月) 12:30:12
Frameを継承したクラスで裏画面処理をしたいのですが
メンバに
Graphics bg; Image backimage;
の二つを宣言しておき、コンストラクタで
backimage=createImage(256,300);
bg = backimage.getGraphics();
とするとコンパイルは正常にできるのですが、実行中に
bg = backimage.getGraphics(); の部分でNullPointerExceptionが発生してしまいます。
原因のわかる方教えてください。
819デフォルトの名無しさん:2005/10/24(月) 12:59:30
>>818
頼むからAPIドキュメント読んでくれ
nullを返す場合がちゃんと書いてある
820デフォルトの名無しさん:2005/10/24(月) 15:59:44
Javaでibatisを利用してDB接続をしようとしてるんですが、
ibatisの設定のresultClass=""の中は、ibatisのjarファイルを置いた場所を指定すれば良いのでしょうか?
821デフォルトの名無しさん:2005/10/24(月) 16:19:24
>>820
Javaのクラス名(パッケージ込み)を直接書きます。
The value of the resultClass attribute is the fully qualified name of a Java class
(i.e. including package).

あとこっちのスレの方が適切かもしれません。
Java⇔RDBのMapping-Frameworkを語るThre Vol.3
http://pc8.2ch.net/test/read.cgi/tech/1090653286/
822820:2005/10/24(月) 16:23:23
>>821
ありがとうございます。
どこかibatisに関して説明してる良いサイトって知りませんか?
説明サイトも本も少なすぎて全然だめぽorz

誘導もさんくすです
823821:2005/10/24(月) 16:23:48
821に追記

記述するクラス名は、検索結果をマッピングさせたいクラス(通常は自作クラス)です。

例えば、検索結果をnameとpasswordプロパティを持ったexample.Userというクラスに
マッピングさせたい場合はこんな感じです。

<select id="getUsers" resultClass="example.User">
select name, password from T_User
</select>
824デフォルトの名無しさん:2005/10/24(月) 18:35:47
あるインスタンスへの参照を、文字列でインスタンス名を指定して実行する方法ってありますか?
例えば、

Employe emp = new Employee();
emp.setID("0123");
emp.setName("Suzuki Ichiro");

なんていうふうに生成したインスタンスempがあったとして、
このempに対して、

Object obj = new Object();
obj = getReferenceBy("emp");

みたいなカタチで参照させて、実際のインスタンスへのアクセスは、
objから実行できないかと。

emp中のメソッドへのアクセスは、BeanUtils使って、
"emp.name"、"emp.ID"みたいにできることは確認したのですが、
インスタンスそのものへのアクセスはできないのかな、と。
825デフォルトの名無しさん:2005/10/24(月) 18:49:25
>>824
つ Map
826デフォルトの名無しさん:2005/10/24(月) 20:07:48
>>820
>どこかibatisに関して説明してる良いサイトって知りませんか?
やはり公式サイトのドキュメントがメインだと思います。
・SQL Maps for Java, Tutorial
・SQL Maps for Java, Developer Guide
・DAO for Java, Developer Guide ← 必要に応じて

ただこれらのドキュメントは英語だし、これだけ見てもなかなかピンと来ないので、
補足としてこのあたりを見てみます。
ttp://634.ayumu-baby.com/ibatis/
ttp://www.h7.dion.ne.jp/~a.d.1976/

これらのサイトを見て大まかな使い方を掴んでから再度公式ドキュメントを見れば、
理解しやすいと思います。後は実践あるのみかと。
827デフォルトの名無しさん:2005/10/24(月) 20:49:17
クラス定義するの面倒なので
Object o = new Object() {
  public void say() {
    System.out.println("yes");
  }
};
ってやってみたもののどうやってsay()すればいいのですか?
828デフォルトの名無しさん:2005/10/24(月) 20:53:29
>>827
リフレクション
Object#getClass()
Class#getDeclaredMethod()
Method#call()
829デフォルトの名無しさん:2005/10/24(月) 21:42:18
余計にメンドクサそうな希ガス
830デフォルトの名無しさん:2005/10/24(月) 21:43:31
ORACLEのBLOB型へファイルの書き込みにチャレンジしています。
Servlet -> PL/SQL -> DBへ書き込み という手順なのですが、
小さいサイズのファイルならば書き込めるのですが、
サイズが大きくなると setBinaryStream にてエラーとなってしまいます。

エラーは「データ・サイズがこの型の最大サイズを超えています。」です。
なにか手立てはないでしょうか。

831デフォルトの名無しさん:2005/10/24(月) 21:44:14
みなさんEclipseを使用するときのエンコーディングってデフォルトのままですか?
私はWindowsとLinuxでEclipseのデフォルトのエンコードが違うのでへばってます
両方で使えるUnicode使うとJavaのAPIのクラスファイルを参照すると
文字化けして訳が分からなくなるし orz
832デフォルトの名無しさん:2005/10/24(月) 22:01:13
>>831
そんな事しないでローカルに取り込む際にエンコード変換とかじゃダメなん?
833デフォルトの名無しさん:2005/10/24(月) 22:09:34
>>832
やっぱりその方法が結局一番楽なんだと
薄々思ってましたが・・・
レスありがとうございます
834デフォルトの名無しさん:2005/10/24(月) 22:28:07
SDKなどIDEに依存しないエンコーディングの問題ならココでいいけど
Eclipse特有の話ならEclipseスレでな
835デフォルトの名無しさん:2005/10/24(月) 22:32:14
>>834
了解しますた
836JAVA初心者:2005/10/24(月) 23:27:03
CSVファイルをエクセルでつくるときにたとえば、tuyoshi,1,2というファイルをつくりたいのですが、
"tuyoshi,1,2"としたらDISPLAYでtuyoshiとなり、そのままtuyoshi,1,2としたままだったら、
"toyohsiという形で"が前についてきてしまいます。基本的な質問になるかも知れ
ませんが、理由を教えていただいてもよろしいでしょうか。
837デフォルトの名無しさん:2005/10/24(月) 23:38:35
>>830
PL/SQLってことは、CallableStatement?大きいオブジェクトを受け付け
るようなI/Fないんじゃないの?

PreparedStatement使ってBLOBオブジェクトに書き込むよーにしたらだめか?
838デフォルトの名無しさん:2005/10/24(月) 23:39:40
>>836
DISPLAYってナンデスカ?
839JAVA初心者:2005/10/24(月) 23:57:50
すいません、、、System.outのことです。CSVのファイルを読み込んで、その最初に
はいってるtuyoshiとマッチしたら処理させたいのですが、マッチするように
しているのに、処理しないのでおかしいと思っってSystem.outしてみたら
CSVにはちゃんとtuyoshiにしたのに、System.outで"tuyoshiになっています。
840デフォルトの名無しさん:2005/10/25(火) 00:03:25
なんかすごい日本語だな
順を追って箇条書きで書いてごらん

そして書き終わったら自分で読んでごらん
841824:2005/10/25(火) 00:09:44
>>825
あ、なるほど。Mapにインスタンス名でインスタンスを登録すればいいのか。。。
大正デモクラシーもとい、灯台もと暗しでした。
d
842JAVA初心者:2005/10/25(火) 00:14:16
すいません、、、あせっちゃって、、、、
まず、CSVふぁいるを読み込みます。
そこはtuyoshi,2,1と書いてあります。
そして、ほかのクラスからもらったNAME情報(Uname)=tuyoshi
なら処理をします。
でも処理をしないので、おかしいと思ってSystem.outしてみたら
"tuyoshiとなっています。
なのでマッチしなかったみたいなのですが、、、なぜでしょう。。。
確かにCSVファイルの中身はtuyoshiであって"tuyoshiではありません、、、
843デフォルトの名無しさん:2005/10/25(火) 00:24:14
csv ファイルをメモ帳で読み込んだときの内容と、
プログラムの System.out.println の周辺を貼り付けてくれ。
844デフォルトの名無しさん:2005/10/25(火) 00:24:41
ArrayListにdouble型の数をいくつも入れて、最後にそれの和を計算したいのですが、
○○.add(new Double(x))などとして要素を入れた後、
それを取り出して和を計算する方法が分かりません。
get(i)とかで取り出しても、そのままじゃ足し算とかは出来ませんよね?
845デフォルトの名無しさん:2005/10/25(火) 00:27:18
足せよ
846デフォルトの名無しさん:2005/10/25(火) 00:29:58
>>844
実はできる

ArrayList list = new ArrayList<Double>();
list.add(1.1);
list.add(2.2);
list.add(3.3);
double sum = 0.0;
for(double x : list) {
    sum += x;
}

多分。確認して無い。間違ってたらゴメン。
847JAVA初心者:2005/10/25(火) 00:31:03
tuyoshi,2,1

if (st.hasMoreTokens()) {
String s = st.nextToken();
System.out.println("s="+ s);
}
if (s == username) {

winTotal = winResult + winTotal;
loseTotal = loseResult + loseTotal;

fileWrite();
848デフォルトの名無しさん:2005/10/25(火) 00:34:54
>>847
ういうい。予想通り StringTokenizer 使ってたか。
読み込んだ CSV の行に、どこかで "" が混入してるんだと思うよ。
"tuyoshi,2,1" を区分けると、初めのトークンは "tuyoshi になるし
849JAVA初心者:2005/10/25(火) 00:36:39
え、、、でも一番上の行が今使っているCSVなのですが、”はTuyoshiの前になくないですか?
850デフォルトの名無しさん:2005/10/25(火) 00:38:04
StringTokenizer じゃなくて StreamTokenizer 使っているのならば、確かに妙だな。
851830:2005/10/25(火) 00:39:56
>>837
CallableStatement 使っています。
Javaから直接Tableはどうしてもだめなんです・・
852デフォルトの名無しさん:2005/10/25(火) 00:46:54
>>847
本当にそのコードとCVSで「"」が表示されるのか? プログラムの出力
をそのままコピペしてみたらどうでしょ。StroingTokenizer の入力に
している文字列も表示して、何が入ってるかちゃんと確認しましょう。

まあ、表示の件を除けば問題の本質は「if (s == username)」だろうけど。
853デフォルトの名無しさん:2005/10/25(火) 01:02:23
一つのセルにtuyoshi,2,1が入ってるんだろ。
三つのセルにtsuyosiと2と1が入ってるんじゃなくて。
854844:2005/10/25(火) 01:12:42
>>846
getで特定の要素だけを取り出しての演算も行いたいんです。

ArrayList list=new ArrayList();
list.add(new String(1));
sum = 1.0+(Double)list.get(0);

ってやっても、演算を行うところでエラーが出てしまうんです。
855844:2005/10/25(火) 01:14:47
あ、2行目はStringではなくDoubleの間違いです。
856デフォルトの名無しさん:2005/10/25(火) 01:22:36
>>854
java5 使ってる?
これちゃんと動くから試してみなはれ

ArrayList<Double> list = new ArrayList<Double>(); 
list.add(2.0);
double sum = 1.0 + list.get(0);
System.out.println(sum);
857デフォルトの名無しさん:2005/10/25(火) 02:12:03
オートボクシングが通ってないってことは5.0じゃないっぽいな

Doubleは計算不可能だがdoubleは計算できる
Doubleからdoubleを取得して計算しなさい
858デフォルトの名無しさん:2005/10/25(火) 03:15:08
申し訳ありませんが、行き詰っております。どなたかアドバイス頂けたら
嬉しいです。
簡単なチャットのサーバとクライアントを組みました。
サーバ側でObjectOutputStreamで発言と一緒にユーザ名を入れたArrayListを送信して、
クライアント側で受け取りました。
しかし、サーバ側とクライアント側でArrayListの中身が違うんです・・・。
具体的には、接続者が2人以上になると、最初に接続した人の受信するArrayListの中身が
1人から増えません。
送る側のリストの中身をSystem.out.printlnしてもちゃんと中身は2人以上になっている
のですが・・・。

ソースを以下にうpしました。
汚いソースですが、大量のコメントと、要所にはTODOを打ってるので、
もし原因が分かる方おられましたら、ご教授よろしくお願いします。

ttp://www.uploda.org/file/uporg222693.zip
859デフォルトの名無しさん:2005/10/25(火) 09:18:20
チャット作るのなら、オブジェクトをシリアル化して送るんじゃなくて、全部文字ベースでやり取りするべき
……だと思ったのは余計なお世話?
860デフォルトの名無しさん:2005/10/25(火) 12:11:17
>>858
重要な部分だけ抜き出しなされ
ソースまる投げは最終手段

デバッグをさせようというのかね
861デフォルトの名無しさん:2005/10/25(火) 12:17:11
>>860
はぁ?
重要なとこったって、何行になると思ってんの?
こんなとこにつらつら書かすなボケ。
862デフォルトの名無しさん:2005/10/25(火) 12:18:26
ぬきだせば肝心な部分なんて1レスで収まる範囲だろ
863デフォルトの名無しさん:2005/10/25(火) 12:43:22
横着なソースコードだな。
局所的なスコープ要素をクラスメンバにしたり、
メソッド名が適正な動作内容を示してないし、見るのが苦痛。
864デフォルトの名無しさん:2005/10/25(火) 14:36:16
すみません。Strutsのlogic:iterateタグで質問なのですが、
id属性名を動的に生成することは可能でしょうか?
板違いでしたら、すみません。
865844:2005/10/25(火) 14:46:03
>>856
>>857

最新のJDK入れたら出来ました。
ありがとうございます
866デフォルトの名無しさん:2005/10/25(火) 14:49:57
>>844
原因がちゃんと分かったの?
わからないで使うオートボクシングは危険だよ
867デフォルトの名無しさん:2005/10/25(火) 15:00:59
始めまして。WACSを利用してJAVAを勉強し始めたものですが、
画像データを表示するところで悩んでいます。(jsp)
<img src="a.jpb" width='144' height='108'><br>27:17:15;02
の行を3000行ほどJSPで表示しようとすると、テキスト文字27:17:15;02は、
全て表示されるのですが、画像が全て表示されません。
表示されなくなるタイミングは、5分前後です。IEのタイムアウトが5分と
言う話ですがそのタイムアウトで表示できなくなってしまっているのでし
ょうか?また、レジストリでタイムアウトを変更することも出来ますが、
jspで画像を表示する事はできないでしょうか?

ご教授の程、よろしくお願い致します。
868デフォルトの名無しさん:2005/10/25(火) 15:05:37
>>867
画像はどこにあるの?
869デフォルトの名無しさん:2005/10/25(火) 15:08:55
ご返答ありがとうございます。
画像は、urlで,
SRC='http://host/a.jpg' の様な形で読み込んでいます。
870デフォルトの名無しさん:2005/10/25(火) 15:11:11
なんつーか、WACs という時点で答える気をなくした。
871デフォルトの名無しさん:2005/10/25(火) 15:33:08
>>867
> 3000行ほどJSPで表示しようとすると

行数減らしてやってみた?
872デフォルトの名無しさん:2005/10/25(火) 15:35:06
5分以内(2000行くらい)の画像は全て表示されています。
JSPでなんらかのアクションを起こせばいいのでしょうか?
873デフォルトの名無しさん:2005/10/25(火) 15:50:05
>>858
ロジックの間違いではなさげだ。
サーバ側の74行目を書き換えて、
ArrayList オブジェクト自体を差換えてみたら直った。

list = new ArrayList(); //list.clear();

もしかしたら、JDKのバグかもしれん。
ちなみに、バージョンは1.5.0_02。
874デフォルトの名無しさん:2005/10/25(火) 16:48:01
マルチスレッドだし同期化の問題じゃね?
875デフォルトの名無しさん:2005/10/25(火) 17:50:10
ファイルをドラッグアンドドロップすると
そのファイルの拡張子を任意の拡張子に変更してくれるというものをプログラムしたいと思っています
複数ファイルをもってくと一括で変更してくれるようなものを作りたいです

ええ、用途はというと エロjpgファイルを一括で違う偽装拡張子にしたい次第です
よろしくお願いします
876デフォルトの名無しさん:2005/10/25(火) 17:54:45
作ればいいじゃない
877デフォルトの名無しさん:2005/10/25(火) 18:00:17
よくわからんが、ArrayListってスレッドセーフじゃないんじゃ?
Vectorが良いんじゃないかな。
878デフォルトの名無しさん:2005/10/25(火) 18:02:58
>>877
「スレッドセーフ」という観点ならどっちを使っても同じ。
よくわかってないならいいかげんなことを言うなよ。
879デフォルトの名無しさん:2005/10/25(火) 18:17:52
>>878
Secrets of the Java Masters(Java魂)にしっかり書いてあるんだが、
この本は、いいかげんなのかい?
880デフォルトの名無しさん:2005/10/25(火) 18:23:58
書いてあることを理解もせずに書き込むのがいいかげんなのさ
881デフォルトの名無しさん:2005/10/25(火) 18:26:03
>>880
いい加減なことを書くよりましだと思うが。
882デフォルトの名無しさん:2005/10/25(火) 18:27:47
>>878
同じでは無いのでは?
Vector 使ったからと言って、それだけではリスト構造自体はスレッドセーフにはならないけど、
ArrayList だと最悪 add できねー(add してるだけなのに例外食らう)とかゆー状態になるし。

もっとも、>>858 とは関係無いと思うけどね。
883デフォルトの名無しさん:2005/10/25(火) 18:31:58
>>881
ちょw違w
>>880>>879宛だ
884デフォルトの名無しさん:2005/10/25(火) 18:39:05
Vectorはスレッドセーフになるように設計されてるが遅い。
ArrayListはスレッドセーフを犠牲にして速度をアップしたもの。
885デフォルトの名無しさん:2005/10/25(火) 18:44:55
遅いっつっても、プロファイラで計測してその影響が出てることなんて無いがな。
886858:2005/10/25(火) 18:48:53
回答ありがとうございます。汚いソース晒して申し訳ありませんでした。;;
初めてまともに組むjavaなもので、まだ初歩的なことも出来ない未熟者です。^^;

>> 859さん
ObjectOutputStreamは余り好ましくないというのは聞いたのですが、
最大5人を想定して作ってるので、もうちょっと精進してから頑張ります!><

>> 860、862さん
申し訳ありません・・・。自分なりにここだ!てところにはTODOを打ったのですが、
一応動く形で渡した方が解決しやすいかと思ってそのままupしてしまいました。

>>863さん
すいません。;; まだ勉強し始めたばっかりで何も分かってません。
これから頑張って行きたいと思います。

>>873さん
ありがとうございます!ずっと悩まされてただけに感動です。;;
汚いソースなのに回答して頂いて本当に有難うございました。

あ、ちなみに861は僕ではありません。^^;
それでは、次はもっと精進して自分で解決出来るよう頑張ります。
本当に有難うございました。<(_ _)>
887デフォルトの名無しさん:2005/10/25(火) 18:49:08
オブジェクトの配列を扱うときに
Test[][] tests = new Test[2][3];
と準備した時に、配列にオブジェクトを代入する方法は?
888デフォルトの名無しさん:2005/10/25(火) 18:51:20
>>885
おもちゃの環境で差が出ないって言われてもな。。。
889デフォルトの名無しさん:2005/10/25(火) 18:55:03
私Java研修生です(まだ1月たってません)。ほかの言語経験はありません。
Javaで10個ぐらいのクラスを使うプログラムをいくつか作ったのですが、
設計のやり方がいまだによくわかりません。どのように勉強すればよいのでしょうか?
具体的に「こんなプログラムの設計をしてみよう!」的な書籍などはあるのでしょうか?
途方にくれております。どうかいろいろと教えてください。
890デフォルトの名無しさん:2005/10/25(火) 18:57:24
>>886
clearをnewにするのは問題じゃないぞ
みんなスレッドセーフのことについていってるんでそれみてなおせ
891デフォルトの名無しさん:2005/10/25(火) 18:59:17
>>887
普通に代入すればいい

>>889
こんな所かな
ttp://www.amazon.co.jp/exec/obidos/ASIN/4881356194
892デフォルトの名無しさん:2005/10/25(火) 19:02:35
>>891

多次元配列に代入する方法がわかりません。
1次元は参考書に載っているのですが、、、

893デフォルトの名無しさん:2005/10/25(火) 19:03:28
>>888
オモチャの環境って… 出るならそれこそおもちゃの環境だろー。
おまえはどういう環境で出たの? PC はおろか、糞みたいに負荷のかかる
Regatta や Z でパフォーマンスチューニングした時も出たことないんだが。
携帯ならまぁ納得。
894デフォルトの名無しさん:2005/10/25(火) 19:06:42
>>892
その参考書のもう少し後に書いてないか
書いてなければ参考書を換えた方がいいかも
tests[n][m] = new Test();
895デフォルトの名無しさん:2005/10/25(火) 19:08:59
>>893
MMORPG....(/_;)
いいのさ。。。シクシク
896デフォルトの名無しさん:2005/10/25(火) 19:12:08
>>894

ありがとうございます
897デフォルトの名無しさん:2005/10/25(火) 19:14:33
>>895
そーか、失礼。おたくも抜き差しならぬシステム作ってんだな。
898デフォルトの名無しさん:2005/10/25(火) 20:36:04
>>858 はスレッド云々のせいじゃないだろ。
まあ確かに彼の書いたコードはスレッドセーフではない。
しかし、>>873の書いた通りなのであれば、
list.clear() と list = new ArrayList()の目的として
得られる結果は一緒の筈だろう?

しかし、この問題非常に興味深いな。
899898:2005/10/25(火) 20:37:39
ちょいとちゃんと検証してみようぜ。
900デフォルトの名無しさん:2005/10/25(火) 20:56:48
むは。再現できた。
ソース上げるんで、検証よろ。
901900:2005/10/25(火) 21:00:37
つ ttp://www.uploda.org/file/uporg223145.lzh.html

ちなみにこっちの vm は 1.5.0_04
902900:2005/10/25(火) 21:02:47
Server 側の flush のタイミングかと思ったら、そうでもないや。なんでだろう。
903デフォルトの名無しさん:2005/10/25(火) 21:14:05
newしなおしたタイミングでフラッシュされただけだろ?
904デフォルトの名無しさん:2005/10/25(火) 21:14:43
>>903
詳しく
905900:2005/10/25(火) 21:16:19
っていうか ObjectOutputStream 内で Serialized データをキャッシュしてそうな希ガス
906JAVA初心者:2005/10/25(火) 21:28:44
>>852
なぜs==usernameが本質的にだめなのですか?実はそこのロジックでも

つまづいちゃってます。
>>853
あとエクセルのセル1の1つの中にtuyoshi,2,1とご指摘いただいた
通り書いてます。それだとなぜだめですか?3つのセルにわけて
かかなければいけないのですか?
907デフォルトの名無しさん:2005/10/25(火) 21:31:07
>>904
何のためのresetか
908デフォルトの名無しさん:2005/10/25(火) 21:33:58
>>906
これ実行すれば一発で分かるよ

String a = "abcdef";
String b = "abcdefghi".substring(0, 6);
System.out.println(a + " == " + b + " -> " + (a == b));
System.out.println(a + ".equals(" + b + ") -> " + (a.equals(b)));
909900:2005/10/25(火) 21:36:58
>>907
んが。ObjectOutputStream.reset() の存在をすっかり忘れてた orz
っていうか俺大正解じゃん。
910デフォルトの名無しさん:2005/10/25(火) 21:49:07
何が正解か分からんけど、最初のコード、マルチスレッドなのに同期化してない部分が一部あるのも問題ね
VMの最適化でおかしくなる場合有

シリアライズなら、いまはXMLEncoderおよび使ったほうが楽かと思われ


俺だったらクライアントと鯖をJava依存なくする(特にクライアントは流動的でいい)から
ApacheXML-RPCおとしてくるが、勉強用っぽいから実用はまあいいか
911JAVA初心者:2005/10/25(火) 21:56:57
>。908ありがとうございます。今実行してみたら
上がFALSEで下がTRUEになりました。下のEQUAL文を使わなければと
いうことですね??でもなぜですか??
すっごく基本的な質問になるかもしれませんが、==とEQUAL
の違いは何ですか??
912デフォルトの名無しさん:2005/10/25(火) 21:59:42
>>911
equals の方が動作速度が遅い
913デフォルトの名無しさん:2005/10/25(火) 22:01:56
>>911
== は同じ参照かを比較する。

equals は同じ値かを比較する(ように実装しなければならない。
Object#equals() のデフォルト実装は == と同じ動作をする)
914JAVA初心者:2005/10/25(火) 22:07:16
参照か値かの違いですか、ありがとうございます。でも、
if (s. equals (username)) {
winTotal = winResult + winTotal;
loseTotal = loseResult + loseTotal;
こういう風に変えてみて実行してみたら、NULLPOINTERのエラーがでました。
それはどちらかに値がはいっていないということですか?
915デフォルトの名無しさん:2005/10/25(火) 22:09:38
>>913
そんなまどろっこしい説明しないで、プリミティブ型(intやcharなど)は==で比較する
文字列、クラスは.equals()で比較するって覚えときゃ良い

逆に自分でクラスを作る時はequalsで等しい場合にtrueを返す様にしないと正しく比較できない
916デフォルトの名無しさん:2005/10/25(火) 22:09:52
それなら s の方だね。equals(null) はエラーにならずに false が返るから。
917デフォルトの名無しさん:2005/10/25(火) 22:11:28
>>915
>逆に自分でクラスを作る時はequalsで等しい場合にtrueを返す様にしないと正しく比較できない
immutable なクラスなら equals を定義するべきだけど、mutable なら定義するべきじゃないと思う。
918デフォルトの名無しさん:2005/10/25(火) 22:12:40
>>917
逆なんでは?
919JAVA初心者:2005/10/25(火) 22:12:50
>。916
じゃあ、FALSEがかえるということは!equalsにしたらいいということですか??
エラーにしないためにはどうしたらいいですか?
何から何まですいません、、><
920デフォルトの名無しさん:2005/10/25(火) 22:18:44
==は、同一のオブジェクトを参照しているかどうかを比較。
equals()は、同じ値を持っているオブジェクトかどうかを比較(するように実装することになっている)

java.lang.String型は、同じ文字列で構成されていればequals()の結果はtrueが返るようになっている。
921デフォルトの名無しさん:2005/10/25(火) 22:19:59
>>917
例えば String は immutable だけど equals を実装してくれないと困る。
equals を実装しなくても良いのは enum みたいに同じ値を持つ参照が一つだけしかない場合っしょ。
922917:2005/10/25(火) 22:20:26
>>918
逆じゃないだろう

class MutableObject {
    public String text;
}

これに equals を定義するのが適切だとは思えない。


>>919
if (s != null && s.equals(username))  // でどうぞ
if (username.equals(s))  // username が null じゃないことが保障できるのなら、こっちでも良いけど
923デフォルトの名無しさん:2005/10/25(火) 22:29:01
>>917
初心者スレで同値かどうかの話をしてる時に不変性が云々のちゃちゃを入れるな
初心者が困るだろ
ReadAir!って感じだ
924デフォルトの名無しさん:2005/10/25(火) 22:30:14
>>922
単純に同値比較を行いたいかどうかで決めるべきなのでは?
ArrayList(っつか、AbstractList) も Calendar も mutable だけど equlas を実装してる。
925JAVA初心者:2005/10/25(火) 22:30:18
while (br.ready()) {
String line = br.readLine();
// 1行をデータの要素に分割
StringTokenizer st = new StringTokenizer(line, ",");
if (st.hasMoreTokens()) {
String s = st.nextToken();
System.out.println("this.username"+ username);
System.out.println("this.s" + s);
}
if (username. equals (s)) {
winTotal = winResult + winTotal;
loseTotal = loseResult + loseTotal;

}
else {
winTotal = winResult ;
loseTotal = loseResult;
fileWrite();
}

}
br.close();
このロジックでthis.usernametuyoshi
this.stuyoshiのSYSTEm。OUTがでてきますが、tuyoshiで両方同じものが
はいっているのにこのEQUALSの方にはいりません、、、><
なぜでしょう、、、、もうこのtuyoshiになかされっぱなしです、、、
926デフォルトの名無しさん:2005/10/25(火) 22:34:32
そういうときのおまじないを教えてあげよう

System.out.println("this.username"+ username);
System.out.println("this.s" + s);

System.out.println("this.username["+ username+"]");
System.out.println("this.s[" + s +"]");

として実行してみたらどうなる?
927デフォルトの名無しさん:2005/10/25(火) 22:37:06
>>925
> if (st.hasMoreTokens()) {
>  String s = st.nextToken();
>  System.out.println("this.username"+ username);
>  System.out.println("this.s" + s); // ← ※
> }

※の位置の s は this.s ではない。念のため。
928917:2005/10/25(火) 22:37:20
>>923
すまぬ m(_ _;)m

>>924
オブジェクトの状態によって、equals の結果が変わるのってあまり好きじゃないんだよ。・゚・(ノД`)・゚・。
っていうかごめん。mutable がどうのこうのってのは hashCode の方だった orz
929デフォルトの名無しさん:2005/10/25(火) 22:41:01
>>925
> if (st.hasMoreTokens()) {
>  String s = st.nextToken(); //(1) s はここで宣言されて
>  System.out.println("this.username"+ username);
>  System.out.println("this.s" + s);
> } //(1) で宣言された s は、ここでアクセス不能になる。
> if (username. equals (s)) { //ここでアクセスしてる s は(1) で宣言されたものとは無関係

自力で書いたなら、スコープ見直せ。
本とかwebサイトのを写したなら、もう一回写し間違いが無いかチェックしろ。
930JAVA初心者:2005/10/25(火) 22:41:58

>>926
this.username[tuyoshi]
this.s[tuyoshi]
で同じものがでてきましたーー!やっぱり中身は同じtuyoshiですー!
931デフォルトの名無しさん:2005/10/25(火) 22:42:57
一致してるかどうかの判断はそのクラスのequalsしか判断できないだろう
状態によって結果が変わらないって正直信じられない発言だな

sortもコンパレータ実装するとき状態見てるだろ?それと同じだよ
932917:2005/10/25(火) 22:45:52
悪い。頭冷やしてくるわ。
933JAVA初心者:2005/10/25(火) 22:49:10
みなさん、、いろいろ優しく教えていただきましてありがとうございました。
インスタンス変数としてSを宣言していたのに、またろーかる変数として
SをIFの中でしなおしてたからだめだったみたいです。
そこはなんとかなおりましたが、ほかももう大変で今試行錯誤しています。
こんなにぜんぜんわかっていない私なのに、ご協力ありがとうございました。
また、何かありましたらこの掲示板に戻ってくるのでよろしくお願いします!
934デフォルトの名無しさん:2005/10/25(火) 23:02:05
>>784
Genericsを使っていると同じVectorまたはListオブジェクトに
異なる型をつっこむのは抵抗がある。
ある型XがあってそのサブクラスA, Bという型を持つ二種類のオブジェクトならば、
とりあえずつっこむことは躊躇わないことが多いが。
Xのサブクラスならなんでも良しになるように、VectorまたはListをメソッド引数に
したメソッドで、
method(List<? extends X>){
}
を定義するので。
935デフォルトの名無しさん:2005/10/25(火) 23:05:27
記述を間違えた

class Demo<T extends X>{
 private List<T> list;
 public Demo(){
  this.list = new ArrayList<T>();
 }
 public void method(T t){
  list.add(t);
 }
}
936デフォルトの名無しさん:2005/10/25(火) 23:08:39
>>875
ヒントだけ
java.io.FileとHow to Use Drag and Drop and Data Transfer
http://java.sun.com/docs/books/tutorial/uiswing/misc/dnd.html
を参考に

個人的にはこのコマンドを使用したほうが、プログラムを作成するよりシンプルだと思う。
rename *.jpg *.jpg.hoge
937853:2005/10/25(火) 23:17:28
>>906
csvは区切りがカンマなので
値にカンマが含まれるときは内部的には
ダブルクォーテーションで囲まれて表現される。

だから1つのセルにtuyoshi,2,1という値を書いた場合は
内部的には"tuyoshi,2,1"と表現されている。
3つのセルに書いた場合はtuyoshiも2も1もカンマが含まれないので
内部的にもそのままカンマ区切りでtuyoshi,2,1と表現される。
938乗り遅れ:2005/10/25(火) 23:19:45
Vectorがスレッドセーフだと言ってる奴は池沼
939デフォルトの名無しさん:2005/10/25(火) 23:21:29
>>839
Jakarta POIを使えばCSVの扱いも楽だ。
940デフォルトの名無しさん:2005/10/25(火) 23:21:37
>>831
UTF-8を使っている。
デフォルトは使わない。
FedoraのデフォルトはUTF-8になったみたいだが。

APIクラスファイルを参照すると文字化けするとはいったいどういうものなんだろう
941デフォルトの名無しさん:2005/10/25(火) 23:36:11
>>940
UTF-8で作ったソースをエンコーディング指定しないでJavadocにかけると当たり前だが文字化けしたHTMLができる
942デフォルトの名無しさん:2005/10/25(火) 23:39:42
>>938
中途半端にスレッドセーフだとかだっけか

ArrayListとConnectionsとを組み合わせ他方がええってことで
Vectorは非推奨ということにしてと
943デフォルトの名無しさん:2005/10/25(火) 23:41:52
>>941
>>831はそんなことを言いたかっただけなんだろうか・・・・
docencodingもソース園コーディングもcharsetもすべて同じUTF-8に
しておけばほぼ無問題ですな

native2asciiを使わずに古いバージョンのjavadocを使うとおかしくなるが
944デフォルトの名無しさん:2005/10/25(火) 23:52:46
>>943

639 名前:デフォルトの名無しさん[sage] 投稿日:2005/10/24(月) 22:42:44
EclipseでJButtonを選択状態にして
宣言を開く とすると
クラスビューアーで宣言がJavaプログラムとして見れますが
EclipseのエディターのデフォルトエンコードをWindowsの場合はMS932以外
にしていると文字化けしてしまいます
これはEclipseの仕様なのでしょうか?それともWindowsのJDKのクラスファイルは
MS932で書かれているのでしょうか?


多分>>831=>>639
だろ意味はよく分らんが
945デフォルトの名無しさん:2005/10/26(水) 00:23:13
>>937
CSVってカンマが値として入ってる場合ダブルクォーテーションで入れるかとか
ダブルクォーテーションのエスケープとかそういう部分はすべてローカルルールだった希ガス

Excelの吐き出すCSVは改行が1レコードとはきまってないのでややこしいけどな
946デフォルトの名無しさん:2005/10/26(水) 00:27:48
エスケープなんか単なる決めの問題だから大抵は Excel の吐き出す奴に
仕様あわせるけどな。
947デフォルトの名無しさん:2005/10/26(水) 01:00:01
>>945
> Excelの吐き出すCSVは改行が1レコードとはきまってないのでややこしいけどな
改行は改行でも\rと\r\nをちゃんと区別すればいいだけの話。
948デフォルトの名無しさん:2005/10/26(水) 01:07:33
>>947
そーゆー意味ではないと思うが。
949デフォルトの名無しさん:2005/10/26(水) 01:07:36
JAVA(TM) の TM って何?
950デフォルトの名無しさん:2005/10/26(水) 01:09:18
登録商標
951デフォルトの名無しさん:2005/10/26(水) 01:11:31
  | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
  |次でぼけて!!!! |
  |_________|
     ∧∧ ||
    ( ゚д゚) ||
    / づ Φ
952デフォルトの名無しさん:2005/10/26(水) 01:11:56
意味は?
953デフォルトの名無しさん:2005/10/26(水) 01:14:37
SESってなんですか?
954デフォルトの名無しさん:2005/10/26(水) 01:16:01
>>952
登録された商標
955デフォルトの名無しさん:2005/10/26(水) 01:20:02
あんがと >954
956デフォルトの名無しさん:2005/10/26(水) 01:32:43
登録商標って ® の方じゃなかったっけ?
™ は登録されてるとか関係無い単なる商標だとか聞いた記憶が。

逆だっけ?
957デフォルトの名無しさん:2005/10/26(水) 01:39:08
>>956
シッーーー!!!
958デフォルトの名無しさん:2005/10/26(水) 01:46:37
>>948
レコード内のは\rでレコードの区切りは\r\nなんだから別にややこしくないじゃん。
959デフォルトの名無しさん:2005/10/26(水) 01:59:58
すいません、javaを勉強しようと思い、
Java 2 Enterprise Edition 1.4 SDK というのはPCにインストールしようと思うんですが、
これは無料で使えるアプリなんでしょうか?
960デフォルトの名無しさん:2005/10/26(水) 02:13:30
J2EEは主にサーバーサイドの業務系用なんだけど
Javaの基本自体ならJDK5.0かJDK1.5とかいうのさがしてみて
961デフォルトの名無しさん:2005/10/26(水) 02:17:12
TradeMark != Registed
962959:2005/10/26(水) 02:24:38
>>960
ありがとうございます。
Java 2 Enterprise Edition 1.4 SDKは個人用ではないんですね?
間違ってインストールしてしまいました。
これはアインストールした方が良いんでしょうか?
963デフォルトの名無しさん:2005/10/26(水) 02:31:50
アンインストールしていいよ
964デフォルトの名無しさん:2005/10/26(水) 02:59:47
>>961
登録を「regist」とか言っちゃうクチですね?
965デフォルトの名無しさん:2005/10/26(水) 03:27:46
>>958
「君の CSV」 の仕様はそうなの ( ´_ゝ`)フーン
966デフォルトの名無しさん:2005/10/26(水) 04:09:24
<identifier> がありません。
というエラーはどういう意味でしょうか?
967デフォルトの名無しさん
appletで文字を描画するコードを入門書で見たんですけど、よくわかりません。
paintというメソッドが、どのタイミングで実行されるのかわからなくて困っています。
sunのjavaTutorialも目を通したのですが、よくわかりませんでした。
appletを理解するのに役立つサイトがあったら、教えて下さい。