【初心者】Java質問・相談スレッド116【歓迎】at TECH
【初心者】Java質問・相談スレッド116【歓迎】 - 暇つぶし2ch445:439
08/06/21 12:17:13
ああ、何かおかしい

クラスというよりは、MouseMotionListenerという型で
受け取れる形だから、継承または実装されたオブジェクト
でないと、うまいこといかないってことなのかなぁ

446:439
08/06/21 12:19:27
MouseMotionListenerというインターフェイスを
実装してないとダメなわけですね!

447:デフォルトの名無しさん
08/06/21 14:29:59
ダックタイピング だとしてもimplementsやらないと結局機能しないんじゃないの?

448:デフォルトの名無しさん
08/06/21 14:57:52
ダックタイピングは持ってるメソッドで所属するクラス(オブジェクト)決めてるからそんな心配ナス

449:デフォルトの名無しさん
08/06/21 15:34:40
リスナーの呼び出し元はどうするの。
addMouseListener()とかしないでどうやってcallするの?

450: [―{}@{}@{}-] デフォルトの名無しさん
08/06/21 15:41:54
ホスト名(FQDN)が正当かどうか評価する方法はないでしょうか。
どうも . が付いても InetAddress#getByName 等では引けてしまうようで、

1. www.example.com  : 当然 OK
2. www.example.com. : OK
3. www.example.com.. : これは NG

といった状態になってしまいます。
或いは RFC 的に 2 も OK(1 と同じ場所を指す)と言う事なのでしょうか。
であると逆に、InetAddress#getByName で引ければ正当と判断して良い?

451:デフォルトの名無しさん
08/06/21 15:52:46
. つけてもブラウザで見れるね

452:デフォルトの名無しさん
08/06/21 16:25:32
>>449
addはもちろんするが型がなんであるかは関係ない。
普通はメソッドテーブルを検索して対応するメソッドがあれば呼ぶ。
この場合だとコールバック関数名が一致するオブジェクトをadd(これがcallee側になる)しといてcaller側が必要なコールバック関数を呼び出せるかどうか試してみる。
それに成功すればcallee側のコールバック関数を呼び出す。
ダックタイピング採用してるruby辺りをいじるのが早くて分かりやすい。

453:デフォルトの名無しさん
08/06/21 16:27:39
implements MouseListener
じゃないと、型が違うからadd出来ないと思うが?

454:デフォルトの名無しさん
08/06/21 16:37:11
おまえはまずダックタイピングを理解しろ

455:デフォルトの名無しさん
08/06/21 16:50:24
このスレ的にはダックタイピングの議論を深めるのはスレ違いだし初心者を混乱させる元だ
今のjavaをやっている限りはダックタイピングについて理解しなくても構わない

456:デフォルトの名無しさん
08/06/21 17:08:28
いっそ、java.beans.EventHandlerについて語ろうぜ

457:デフォルトの名無しさん
08/06/21 17:09:57
いやここはJAXB2.0だろ

458:デフォルトの名無しさん
08/06/21 17:50:33
eclipsでtomcatを使用できるようにしようとしているんですが
サーバービューで起動するとポートが使用されているか既に使われていて使えないと出てしまいます。


どうすれば使えるようになるのか教えてください。

459:デフォルトの名無しさん
08/06/21 18:05:10
eclipseスレに行け

460:デフォルトの名無しさん
08/06/21 18:31:27
そのポートを使用しているアプリケーションを終了するかポートを変更してください

461:デフォルトの名無しさん
08/06/21 18:46:17
JSFでFragmentを切り替えるにはどうしたらいいでしょうか

462:デフォルトの名無しさん
08/06/21 18:55:25
InputStreamのread()の返却値の型がintになっている理由がよく分からないのですが、
read()はストリームから次の1バイトを読み込み、それを返すというものと考えて良いのでしょうか?
OutputStreamのwrite(int)ではintを引数にして上位24bitを無視することで1バイトの書き込みをするというのも不自然な気がして、
これもreadの仕様が素直にbyteなら良い気がするのですが。

463:デフォルトの名無しさん
08/06/21 18:58:28
255と-1(EOF)を区別するためだろうけど、Cへのオマージュではなかろうか。

464:デフォルトの名無しさん
08/06/21 18:58:56
>462
JavaDoc嫁
int read()  入力ストリームから次のバイトデータを読み込みます。
戻り値:  データの次のバイト。ストリームの終わりに達した場合は -1

intな理由はint read(byte[] bytes)との兼ね合いかもね

465:デフォルトの名無しさん
08/06/21 19:00:33
むしろ、Byte read() だったならばOKなのか、ストリームの終わりの場合はnull(EOF)とできるから

466:461
08/06/21 19:05:06
リンクにイベント発生させるようにすればいいのかしら

467:デフォルトの名無しさん
08/06/21 19:19:30
JavaAppletからJavaScriptを操作する方法を知りたいので、
検索して調べたところ、「netscape.javascript.*」を取り込まないといけないと書いてあり、
コンパイルのために、JDKに付属するライブラリをCLASSPATHに通す必要がある、
と書いてありました。
それでCLASSPATHを通すというのが分からないので教えて下さい。

開発環境は
CPAD for JAVA2 SDK
j2sdk1.4.2_15
です。お願いします。

468:デフォルトの名無しさん
08/06/21 19:26:00
環境変数設定しろ。あとはググレ。
あとcom.netscapeパッケージはNN系しか使えないからRhino組み込め。

469:461
08/06/21 19:30:33
やっぱjavaコード側で何とかする話なんだよねえ

470:デフォルトの名無しさん
08/06/21 20:10:28
素直にページ作るよ

471:デフォルトの名無しさん
08/06/21 20:38:15
>>468
IEでも動くがな

472:デフォルトの名無しさん
08/06/21 20:47:15
>>471
一部だけな

473:439
08/06/21 21:04:07
ダックタイピングってもしかして私に対するレス!?
だとしたら、みなさんありがとうございます。

ダックタイピングも調べてみたのですが、やっぱり
>>453さんの仰るように、
implements MouseListener
がないとエラーが出てしまいます。
Javaはダックタイピングができないのかな

それから、もうこの話はしない方が良いのでしょうか?

474:デフォルトの名無しさん
08/06/21 21:10:15
ダックタイピング知らないなら気にしなくて良いよ。

475:デフォルトの名無しさん
08/06/21 21:56:55
>>473
すくなくともJavaをふつうに使っている限りは関係がない。


476:デフォルトの名無しさん
08/06/22 04:37:27
>>473
implementsをつければ、クラスを作る側がそのインターフェースを実装する気だったことが早い段階で確認できるでしょう。
偶然メソッド名などが一致していて動作の辻褄も合うなら同類とみなす、というダックタイピング的考えとは対照的(だから参考になる)。
Javaの型の基本が身についていれば出てこない疑問かもしれない。

477:467
08/06/22 08:25:07
>>468
com.netscapeの使い方が分かるようになりました。
ありがとうございます。
あと、Rhinoについて調べてrhino1_7R1というのをダウンロードして、
今度は使い方について調べたのですが、
コマンドラインからの利用法しか載っておらず、
JavaAppletなどからの利用法が見つかりませんでした。
よろしければ使い方を教えて頂けませんか?
もしくは使い方の載ってるサイトを教えて下さい。お願いします。

478:デフォルトの名無しさん
08/06/22 11:07:12
Listの中身をチェックしながら消したいんですけど

for (ManagerImpl manager : managerList) {
if (manager.cleanup()) {
managerList.remove(manager);
}
}

こういう書き方だとjava.util.ConcurrentModificationException
が出ます。

どういうお作法がいいんでしょうか。

479:デフォルトの名無しさん
08/06/22 11:46:25
OKWaveに同じ質問がありました。

for (Iterator<ManagerImpl> i = managerList.iterator(); i.hasNext();) {
if (i.next().cleanup()) {
i.remove();
}
}

だそうです。

480:デフォルトの名無しさん
08/06/22 11:51:29
URLリンク(java.sun.com)
> for-each ループでは反復子が隠されるため、remove メソッドを呼び出すことができません。
> そのため、for-each ループをフィルタリングに使用することはできません。

481:デフォルトの名無しさん
08/06/22 11:56:09
>>477
rhinoのページに組み込みかた載ってるしrhinoのサンプルにも組み込みサンプルがあるよく見てみ。

482:デフォルトの名無しさん
08/06/22 11:57:00
>>478
Listのremoveでなくイテレータのremoveを使わないと
for (Iterator<ManagerImpl> iter = list.iterator(); iter.hasNext(); ) {
ManagerImpl manager = iter.next();
if (manager.cleanup()) iter.remove();
}

483:デフォルトの名無しさん
08/06/22 12:43:51
2chでのマルチが減った代わりに
教えて君御用達Q&Aサイトとのマルチが増えたな

484:デフォルトの名無しさん
08/06/22 12:48:48
質問です。
JTableのセルにJbuttonを配置したいのですが、うまくいきません。

具体的には、JTableのセルにImageIconを配置するサンプルプログラム
URLリンク(www.javadrive.jp)
のページの下にあるソースコードの、テーブルデータの配列中のImageIconを指定している部分
new ImageIcon("./img/***.gif") を
new JButton("a") のように置き換えてみましたが、javax.swing~という文字列が表示されるだけです。

クラスが正しく扱われていないのではと思い、

public Class getColumnClass(int col){
return getValueAt(0, col).getClass();
}

上部分のソースコードのreturnを、
return JButton.class;
のように置き換えて直接指定してみたのですが、結果は同じでした

説明が拙くて恐縮ですが、JTableのセルにJbuttonを配置する具体的な方法を
どなたかご存知でしたら教えてください


485:デフォルトの名無しさん
08/06/22 13:16:30
>>478
まあ for(member:list)構文の弱点の一つだな。
見栄えはいいんだけど、イテレタ展開しちゃうからね。

このパターンだけは、昔ながらの書式で、
for(int i=list.size()-1;i>=0;i--){
 if(list.get(i).cleanup()){
  list.remove(i);
 }
}
と書くのが好み。

Iteratorの実装はなんどかやったことあるけど、
remove()は必要になるまで書かない(というか書きたくない)からさ、
使うのも自重してる。

486:デフォルトの名無しさん
08/06/22 14:20:57
javaアプレットでさ、動画と画像を描画するときに動画が手前にくるんだが、z軸を調整する関数はなんだっけ?

487:デフォルトの名無しさん
08/06/22 14:30:55
API何使ってんだよ?

488:デフォルトの名無しさん
08/06/22 17:07:02
>>486
動画?

489:467
08/06/22 17:24:24
URLリンク(www.mozilla-japan.org)
このページ読んだのですが、使い方が分かりませんでした。
まずはimport org.mozilla.javascript.*;を使うにはまた環境変数をいじらないといけませんよね?
あと、これを書けばJavaScriptの文法を使用可能になると言うことでしょうか?

490:デフォルトの名無しさん
08/06/22 18:03:23
>>489
実行時にクラスパス通せばいい。

>あと、これを書けばJavaScriptの文法を使用可能になると言うことでしょうか?
そう

491:使用書無しさん
08/06/22 19:17:24
javaフリークの皆さん。100%PureJavaでドローソフト URLリンク(jdrafter.sakura.ne.jp)
を作ったので是非使ってね。javaの帳票設計にも使えるよ。

492:デフォルトの名無しさん
08/06/22 19:25:37
java3D?



493:使用書無しさん
08/06/22 19:27:13
2Dだよ


494:デフォルトの名無しさん
08/06/22 19:28:39
おー
頑張った頑張った。だが…

495:使用書無しさん
08/06/22 19:32:02
だが?

496:デフォルトの名無しさん
08/06/22 19:32:03
初心者から中級者ってどこで判断するんだ
開発経験年数?

497:デフォルトの名無しさん
08/06/22 19:36:47
>>491
すっげぇ!!!!
まじで感動したw
俺もがんばろっとー

498:使用書無しさん
08/06/22 19:51:23
>>497よかったら使ってね。

499:デフォルトの名無しさん
08/06/22 20:01:56
javaなのになんでexeなの?

500:デフォルトの名無しさん
08/06/22 20:08:30
ただの自己解凍zipだよ。解凍したらclassファイルいっぱいでてくる。
けど・・・ほんとすごいわ。
経験が浅いからこんなでっかいプログラム見たこともなかった。

馬鹿にされそうw

501:使用書無しさん
08/06/22 20:09:14
jarパッケージでもよかったんだけど、jarだと中身丸見えだしアイコンも
ダサいので、あえてExeにラップしました。

502:デフォルトの名無しさん
08/06/22 23:26:45
あの~
色決めるときに { | | } こんな感じで区切ってbyteに代入するのはいったいどういう意味があるんですか?
ほかにも | で区切る表現が偶に出てきて戸惑うんですけど・・・・・
入門書にも載ってなくて 誰か教えてもらえませんか?

503:デフォルトの名無しさん
08/06/22 23:37:25
| は区切りではない
ビットごとの論理和 (OR) の演算子
その入門書の演算子の一覧かなんか見てみろ、載ってるはず

504:デフォルトの名無しさん
08/06/23 01:26:41
趣味で為替のチャート表示のプログラミングをJAVAでしたいと思っているのですが、為替のリアルタイムでのデータをネットから取り込むことは出来るのでしょうか?
質問が漠然としていて申し訳ないのですがお願いします。

505:デフォルトの名無しさん
08/06/23 01:32:42
>>504
きみのPCのブラウザで表示できる情報はすべてJavaで取得できる手段が
存在すると考えていい。すごく難しい場合もあるけど。


506:デフォルトの名無しさん
08/06/23 01:48:37
>>505
ありがとうございます。
大学ではCとFortranを使ってたのですがどちらも制御系のプログラムばかりでこういった類の経験がありませんでした。
林晴比古の入門JAVAシニア編でもネットから情報を取り込むことに触れられないので不安に感じましたが、もっと勉強しようと思います。
その辺を詳しく解説してくれる書籍などはないでしょうか?

507:デフォルトの名無しさん
08/06/23 02:31:02
赤音れおん

508:デフォルトの名無しさん
08/06/23 03:33:11
>>504 >>506
よくわからないけど、java.netパッケージあたりが基本では
URLリンク(java.sun.com)

509:デフォルトの名無しさん
08/06/23 07:31:09
>>508
ありがとうございます。その系列の本をあさってみようと思います

510:デフォルトの名無しさん
08/06/23 09:42:26
>>504
原則的には>>505が言ったとおりなんだけど
ファイナンス系サイトはデータを流用されないように工夫しているところもあるから注意
例えば数字に見えても画像だったりFlushで表示を制御してたり

511:デフォルトの名無しさん
08/06/23 10:02:41
プログラムのために準備されたものでないものからデータを拾う場合は
それないりに工夫や苦労はつき物。
相手がレイアウトや内容を変えない保障はどこにもない。
うちの社内なんていくつかのシステムの寄せ集めで、
システム間のデータのやり取りの大半が、
印刷直前の帳票データから拾ってるから間違い多いしカオスすぎる・・・

512:デフォルトの名無しさん
08/06/23 10:32:44
特定のフォルダ内からフィルタを掛けて、条件に引っかかるファイルの内容を表示したいので、
finamefilterを使って実現したのですが、当然の如くフォルダ内のファイル数増加に伴って応答が遅くなります。
なにかいい解消手段はないでしょうか?

513:デフォルトの名無しさん
08/06/23 10:42:39
>>510
なるほど・・・たしかに証券会社のチャートやボードはフラッシュや動画の類いに見えます。
実際問題、個人でそういったデータを引っ張ってきて表示させるのはきつそうですね。
ありがとうございました

514:デフォルトの名無しさん
08/06/23 11:15:17
MT4辺りにDLLフックかけてJNI経由で取り込む

515:デフォルトの名無しさん
08/06/23 12:27:35
>>512
(十分な効果が出るか分からんけど)ファイル名をあらかじめメモリに展開するとか
よほど大量なら、全文検索エンジンに放り込んでおくという手もあるが
取り扱いが面倒になる

516:デフォルトの名無しさん
08/06/23 12:59:21
>>513
もうちょっと有力な回答があるとまってたんですけど・・・
確か個人ですけど、リアルタイム(1秒毎)は証券会社に加入するしかないです。

yahooのあれは20分遅れだったかな?
個人集団が作ってる有力な株ソフトがいくつかあるんで、それを参考にしたらどうですか。
やってることもhtmlのテキスト解析・分析・処理のようですけど。

517:デフォルトの名無しさん
08/06/23 13:20:03
eclipseでパッケージの中にパッケージをつくるにはどうやるんですか?

518:デフォルトの名無しさん
08/06/23 15:32:10
eclipseスレにいけ

519:デフォルトの名無しさん
08/06/23 20:26:11
javaでstrutsでなにかしてみたいのですが
お勧めのHPあれば教えてください。

520:デフォルトの名無しさん
08/06/23 20:46:11
為替と聞かれて証券教えるこの不思議

521:デフォルトの名無しさん
08/06/23 22:14:40
なに、御礼もないし嬉しくもないの?
まあ、もう答えないからいいよ。

522:デフォルトの名無しさん
08/06/23 22:25:39
いじけちゃってかわいい♪

523:デフォルトの名無しさん
08/06/23 22:53:26
殺すぞ?

524:デフォルトの名無しさん
08/06/23 22:57:50
通報すっぞ?

525:デフォルトの名無しさん
08/06/23 22:58:46
ってかわいい♪

526:デフォルトの名無しさん
08/06/23 23:06:04
以下のソースだと、
java.lang.NullPointerException
がtd[count].setWord(strAry[1]);のところで
出てしまいます。
かれこれ4時間やっているのですが、わからないので、
解決法をおしえてください。
また、できるだけ、影響が少ない方法(データモデルをあまり変えない)
だと助かります
よろしくお願いします。

int count = 0;

while ((line = br.readLine()) != null) {
String[] strAry = line.split(" ");

System.out.println(strAry[1]);
if (strAry.length==2) {
System.out.println("aaa");
}
else if (strAry.length==3){
System.out.println("gp" + strAry[1]);
td[count].setWord(strAry[1]);
td[count].setSpeech(strAry[2]);
} }
count++;
}

527:デフォルトの名無しさん
08/06/23 23:08:47
>>526
td[] はどこでどうやって宣言してる?恐らくそれが間違っている。

528:デフォルトの名無しさん
08/06/23 23:13:23
S!アプリ造りたいんですけどいいサイト知りませんか?

529:526
08/06/23 23:26:25
>>527
ありがとう

public class Manager {
TokenData[] td;

という感じで,クラス宣言の後で,宣言しています.

また,TokenDataは,以下のクラスで宣言しています.
よろしくお願いします.
public class TokenData {
private String word = "";
private String basicWord = "";
private String speech = "";
public void Token() {}
public String getWord() {
return word; }
public void setWord(String word) {
this.word = word; }
public String getBasicWord() {
return basicWord; }
public void setBasicWord(String basicWord) {
this.basicWord = basicWord; }
public String getSpeech() {
return speech; }
public void setSpeech(String speech) {
this.speech = speech; }}

530:デフォルトの名無しさん
08/06/23 23:29:35
>>526
配列の宣言と初期化について調べたほうが良いと思います。

項目数が不明な取り込みには ArrayList を使いましょう。
配列での保持が必要なら、後で変換しましょう。

531:526
08/06/23 23:33:20
ありがとう。
ArrayListを使う場合の例をおしえていただけませんか?

532:使用書無しさん
08/06/23 23:35:55
javaフリークの皆さん
100%purejavaのドローングソフト
URLリンク(jdrafter.sakura.ne.jp)
登場
帳票設計や、アプレットのヴェクターアニメーションにも使えるよ
ダウンロードしてね

533:デフォルトの名無しさん
08/06/23 23:43:58
>>531
[配列]
TokenData td[]=new TokenData[20];
for(int i=0;i<td.length;i++)
td[i]=new TokenData();

[ArrayList]
ArrayList<TokenData> td=new ArrayList<TokenData>();


534:デフォルトの名無しさん
08/06/24 00:02:55
最近、PGやSEが逮捕されること多くないですか?
それもアキバのお宅イメージをセットにして報道してるように感じますが、警察は何か恨みでもあるんでしょうか。winney?

535:デフォルトの名無しさん
08/06/24 00:08:26
ButtonGroupでグループ化した3つのラジオボタン1,2,3に対して、
初期はすべてのボタンが選択されていない状態ですが、
いずれかのボタンが選択された状態から、グループを初期の状態に戻す方法を教えていただけませんでしょうか。
ちなみに、clearSelection()は使えない環境です。

536:526
08/06/24 00:09:09
>>533
本当にありがとうございます。
素人なので、こうした情報が勇気づけられます。

java1.4の場合ですと、ArrayList<TokenData>のような表現は無理だそうです。。。
その場合は、どのような方法がありますでしょうか?
DATACLASSをArrayListではあつかえないってことでしょうか?
すみません。おしえてください。

537:デフォルトの名無しさん
08/06/24 00:16:31
>>536
ArrayList td=new ArrayList();
ただしこの場合は中身はObject型になるので利用する際キャストが必要。
td.add(new TokenData());
TockedData token1=(TokenData)td.get(0);

538:デフォルトの名無しさん
08/06/24 00:16:34
a.javaをコンパイルしたらa.classとa$1.classてゆうのができました
この二つのclassをjarに圧縮したいのですがどうもうまくいきません
ちなみにプロンプトには jar cfm g.jar d.txt a.class a$1class
と打っているんですがあっているでしょうか?

539:デフォルトの名無しさん
08/06/24 00:20:44
ぱっとソース見ただけだけど、selectionをnullにする必要があるのに、selectionのsetterがsetSelected(ButtonModel,boolean)しかないから、無理な気がする・・
せめてprotectedにしててくれたらなぁ。

大したプログラムじゃないし、自分で作ってみたら?

540:デフォルトの名無しさん
08/06/24 00:22:32
>>538
unix系のshellなら $は意味がある文字だから \$ とエスケープしてみたらどうでしょう。

541:デフォルトの名無しさん
08/06/24 00:26:28
しまった。>>539>>535へのレスね。

542:デフォルトの名無しさん
08/06/24 00:45:01
>>538
>>540以前にコマンド自体あってないね
書き込み時のtypoかもしれんが

543:デフォルトの名無しさん
08/06/24 00:45:53
JSFでも使うぞ$

544:デフォルトの名無しさん
08/06/24 03:04:20
クラスの設計を、
・コードで直接行う場合のメリット、デメリット
・UMLを利用する場合のメリット、デメリット
を教えてください 。


545:デフォルトの名無しさん
08/06/24 08:59:35
冗長、どちらか一つでいい。
・コードで直接行う場合のメリット
・UMLを利用する場合のメリット

546:デフォルトの名無しさん
08/06/24 09:14:24
> クラスの設計を、
> ・コードで直接行う
設計になってねえ

547:デフォルトの名無しさん
08/06/24 11:03:46
クラスの設計を、コードで直接行う場合のメリット、デメリット
を教えて下さい

548:デフォルトの名無しさん
08/06/24 11:04:26
クラスの設計を、コードで直接行う場合のメリット、デメリット
を教えて下さい

549:デフォルトの名無しさん
08/06/24 13:03:13
こんにちは。
学校の課題で作った掲示板システムの拡張をしています。
設計について質問させてください。

DB1テーブル1Entityで、各Entityが自身のvalidateメソッドを持つ形の設計をしています。
今回、一部のテーブルに対し、validateのみが異なる複数のEntityが必要な状況になりました。

いくつか方法を考えたのですが、このような場合どの方法がよいでしょうか。

(1) 関連のない別クラスとしてEntityを定義する。
(2) 共通の親Entityクラスを定義し、validateメソッドをoverrideする。
(3) validateを別クラスに切り出し、strategyに持ち込む。

よろしくお願いします。

550:デフォルトの名無しさん
08/06/24 13:26:49
コーディングと設計の区別もつかないPGが混じってんのか

551:デフォルトの名無しさん
08/06/24 14:52:17
こんにちは。JAVA初心者です。
eclipseでソースを打っているのですが、
コメントを打つと、たまに日本語が□に変わって
うまく表示されません。
なぜか、教えてください。

552:デフォルトの名無しさん
08/06/24 15:25:52
すいません解決しました。
ありがとうございました

553:デフォルトの名無しさん
08/06/24 16:01:27
javaの土初心者です。JavaでWindows PCの
I/O空間アクセス、物理メモリアクセス
ってどのようにするんですか?

554:デフォルトの名無しさん
08/06/24 16:21:53
>>553
JNIとOSのディバイスドライバが必要だな。
そもそもWin32でそれをする方法を知ってるのか?

555:デフォルトの名無しさん
08/06/24 17:13:06
>>554
デバイスドライバを作りたくないからJavaでやろうと考えたのですが...
今回はI/O空間アクセスが出来ればOKで、物理メモリアクセスはあればなんかの役に立つかな
ぐらいなんですが

Windowsならドライバで
IO空間アクセス:
READ_PORT_XXX、WRITE_PORT_XXX で行う
物理メモリアクセス:
MmMapIoSpaceしてREAD_REGISTER_BUFFER_XXX、WRITE_REGISTER_BUFFER_XXX で行う

で使うときにはDeviceIoControlで叩く

ってC/C++のWinプログラム初心者でも知っている知識ですよ。
初心者Javaな人でもこれぐらいは知っていますよね。

556:デフォルトの名無しさん
08/06/24 17:22:57
ここはクマーとかいうAAを貼るところだろうか?

557:デフォルトの名無しさん
08/06/24 17:27:05
アンダーフローやオーバーフローは構文エラーですか?論理エラーですか?

558:デフォルトの名無しさん
08/06/24 17:38:27
違います
低脳エラー(うぽぽんエラー)です

559:デフォルトの名無しさん
08/06/24 17:40:41
>>555
すっげー
俺もこんくらいの知識ほしい

560:デフォルトの名無しさん
08/06/24 17:50:21
>>85-105

なんか爆笑した。>>85の言動にw

>>109
そこにJavaの格言とJavaの鉄則が入ってるのが理解できない。
あの本はJava5以前の本だぞ。Java5が出てから役に立たなくなったテクニックやTipsが
けっこうあるので今ではおすすめしがたいな。鉄則のほうはそこそこ役に立つが、
それだったらEffective Javaのほうが全然役に立つ。

561:デフォルトの名無しさん
08/06/24 17:51:04
そクマー

562:デフォルトの名無しさん
08/06/24 17:56:02
>>121
Java+謎、落とし穴を書いた前橋 和弥よりはましではないかと。
あれは酷かった。本に愚痴ばかりかいて、今となっては解決済みの問題が
あたかも解決されていないかのような書き方が、初心者に誤解を与えかねない本だな。
アンチがあれを読んで昔飛びついていた記憶がある。

563:デフォルトの名無しさん
08/06/24 17:57:58
>>134
> ただM$の都合で、変な改定されるのが怖いんです。(J++とかw)

そのくせ、こんなこと言ってるよな。VBにしておけよ電波。

> どうしてjavaは初心者にこうも厳しいんですか?
> 例えばダブルクリックの起動ファイルひとつ作るのでも、ネット上の情報はうそっぱちか役に立たない情報ばっかり。
> VBと比べても必要な情報にたどりつくのに時間がかかりすぎ。
> これだったら、M$社製品(C++、C#、VB2005等)の方が手っ取り早かった(と思う、たぶん)。
> とくかく情報の出し惜しみはやめてほしいな。
> なんで、java弄るひとって性格の悪い人がおおいんだろ。
> java関係の本でもろくなのないし。


564:デフォルトの名無しさん
08/06/24 18:00:22
>>141
> LinuxではC#動かないでしょう?
Monoで動く。

> .NETははっきりいって糞くらえですよ。(食事中のかたすんません)
VB忠なのに。

565:デフォルトの名無しさん
08/06/24 18:01:37
>>146
> ふりだしに戻る・・・
> ⇒なんで、java弄るひとって性格の悪い人がおおいんだろ。
>
> 自分なりの分析ですが
> java弄る人って、殆どが玄人(それで飯食っているひと)なわけですよ。
> もしくは、いま勉強中で資格とって就職しようとしている人々。
> したがって、ライバルは少ないほうがいい、もしくは自分の優位性をつねに保っていたい。
> そんなエゴが見え隠れしている。

一昔前のC言語厨やUNIX屋じゃあるまいし。
このスレ見ればわかると思うが、素人がよく質問しに来ているが。

566:デフォルトの名無しさん
08/06/24 18:04:05
>>154
たいした警鐘に感じないなあ。
Javaの情報は10年前に比べれば腐るほどあるし
ライブラリもたっぷりあるし書籍もネットも充実して情報には困らないんだよなあ


567:デフォルトの名無しさん
08/06/24 18:05:19
この使い方の意義が分からん漏れはヴァカですか?
StringBuffer sb;
sb.append("Hello, ").append("world!!");


568:デフォルトの名無しさん
08/06/24 18:15:01
>>567
意味じゃなくて意義となればワンライナーと呼ばれる人々が喜ぶ

569:デフォルトの名無しさん
08/06/24 19:08:36
>>549
validateを交換可能にしたいんでしょ?
まあ2のTemplateMethodパターンかなあ

570:デフォルトの名無しさん
08/06/24 19:09:11
java.awt.FileDialog上のキー操作、マウス操作をフックしたいのですが、
実装方法を教えてください。

フックしたい目的は、右上の×ボタンとESCキーによるキャンセル抑止です。
processEventメソッドをオーバーライドしたり、
リスナを追加してもどうもフックされていないようです・・。

571:デフォルトの名無しさん
08/06/24 19:19:11
>>567
それだったらStringBufferをStringBuilderに変えて
StringBuilder sb = new StringBuilder();
sb.append("Hello, world!!");
したkなる。

new忘れていたようなのでつけておいた。



"Hello, "と"world!!"が文字リテラルではなく変数や定数だったら
意義はある。

572:デフォルトの名無しさん
08/06/24 19:45:18
5万ぐらいの激安のノートパソコンで
勉強できる?

573:デフォルトの名無しさん
08/06/24 20:05:32
>>569
ありがとうございました。
その方向で設計してみます。

574:デフォルトの名無しさん
08/06/24 20:42:39
JMFを使ってキャプチャした画像→
 JNIを通してOpenCVに送り顔認識→
  認識した顔の中心座標を返す

といったプログラムを書こうとしていますが、そもそもこんなことは可能なのでしょうか。

別にJNIを使わなくても顔認識ができればいいのですが、
OpenCV程度の顔認識精度があるJAVA用ライブラリなどあれば教えて頂きたいです。

575:デフォルトの名無しさん
08/06/24 20:56:56
>>572
何が?

576:デフォルトの名無しさん
08/06/24 20:59:29
>>572
勉強するだけなら10年前のでもできるだろ
何を勉強するのかしらんけど

577:デフォルトの名無しさん
08/06/24 21:00:01
4月からIT企業に入社したヒヨッコです。いろいろ勉強のために調べていたらどうしても理解できないソースを見つけたので質問に来ました。
インタフェースの中にある以下のようなソースなんですが

public interface IntComparator{
public static final IntComparator
NATURAL_COMPARATOR = new IntComparator(){
public int compare(int i1, int i2){
return
i1 < i2 ? -1 :
i1 > i2 ? 1 :
0 ;
}
};
}
出典:URLリンク(mitv2.net)

1.「new コンストラクタ{メソッド名(引数){メソッド定義}}」という書式はこの他にも見かけたのですが、
これはこれから生成するインスタンスに含まれるメソッドを定義する構文という理解で正しいのでしょうか?また、その場合このメソッド定義はどのインスタンスに対して有効なのでしょうか?
(クラス定義と同じでこれ以降同じクラスから生成するインスタンス全てに有効?それともここで生成するインスタンスのみに有効?)

2.メソッドを定義する構文であるとすれば、抽象メソッドしか持たないはずのインタフェース内でメソッドを定義していることになります。
Eclipsにコピペしてみてもコンパイルエラーは発生しないようですが、本当にこのようなことが許容されるのでしょうか?

長文になってしまいましたが、よろしくお願いします。

578:577
08/06/24 21:01:02
インデントきえたーーー

読みにくくてスイマセン…出典元を見ていただいたほうがいいかも知れません…

579:デフォルトの名無しさん
08/06/24 21:04:21
>>578
専ブラならポップアップで見てみ

580:デフォルトの名無しさん
08/06/24 22:00:48
>>577
それは匿名内部クラス、あるいは単に匿名クラス、もしくは無名クラスなどという。
指定したクラスかインタフェイス(その場合はIntComparator)を継承・実装している名前のないクラスを定義してnewする。
定義したメソッドは、そこで生成するインスタンスだけのもの。

581:デフォルトの名無しさん
08/06/24 22:09:13
>>577
1回限りしか必要のないクラスの名前をわざわざ付けて名前空間を汚す代わりに
名無しのクラスからインスタンスを生成することができる。

書式的には、
new 親クラス(親クラスのコンストラクタの引数) { メソッド定義 }
みたいな感じ。

名前がないので、新しいメソッドを定義してもクラスを明示できないから呼べない。
大抵、親クラスのメソッドのオーバライドしないと意味がない。
クラスじゃなくてインターフェースでもおk

似たようなものに、配列の生成と初期化を同時に行う方法がある。
new int[] { 1, 2, 3, }
とか。
いちいち配列を入れる変数名を用意して名前空間を汚さずとも
そのままメソッドの実引数などに使える。

ただ、見づらいと言う人は多々居る。不毛な論争の種にどうぞ

582:577
08/06/24 22:51:54
>>580
>>581
ありがとうございます。
読みながら想像してたのと大体合ってたようで一安心です。

クラスの中でインスタンスをいっぱい(50コとか)作るけど、そのうち1つだけメソッドの中身がちょっと違うときに使ったりするものなんですね。

もう少しこのソースがどんな動きをするのかを考えてみたいと思います。その過程で壁に当たったらまた質問に来るかもしれないので、そのときはよろしくお願いします。

583:デフォルトの名無しさん
08/06/24 23:28:01
クラスの設計を、コードで直接行う場合のメリット、デメリット
を教えて下さい

584:デフォルトの名無しさん
08/06/25 00:22:10
サイズを固定しないJTableを作りたいのですが、
可変長の二次元配列ってどうやって表現すればよいのでしょうか?
一次元でも実現可能なのでしょうが、コードが冗長になりそうで・・・

585:デフォルトの名無しさん
08/06/25 00:29:21
>>584
配列じゃなくてコレクション使ったMODELで

586:デフォルトの名無しさん
08/06/25 00:52:08
>>585
引数がVectorのDefaultTableModelを使うという事でしょうか?

587:デフォルトの名無しさん
08/06/25 00:53:39
javaで図形処理をさせる課題が出て難しく感じたので
これを機に参考書を買おうと思っています。

wiki乗っている「コアJava2 Vol.1 基礎編」が良さそうだと思ったのですが
図形処理関係では他にどういう参考書があるか知りたいので
教えてください。

588:デフォルトの名無しさん
08/06/25 01:20:12
WebOTXでJavaを利用したアプリサーバを
構築してるんですが、なんというか情報が少なすぎる…
参考書があるか知りたいですが、探し方が悪いのか
丸善とかでは見つからなかった。

WebOTXでJavaをつかったアプリサーバ構築
みたいなテーマの本はないでしょうか・・・

589:デフォルトの名無しさん
08/06/25 08:08:51
Javaはガベジコレクション等プログラマがメモリを意識しないでいい利点があると聞いたのですが・・・

int[] a = {10, 9, 8, 7, 6}
int[] b = {1, 2, 3}
a = b;

とした時にC言語だとfree?されてないのでメモリが無駄になるのですが、Javaだとどうなるんですか?

590:デフォルトの名無しさん
08/06/25 08:09:37
↑{10, 9, 8, 7, 6} のメモリ領域が

591:デフォルトの名無しさん
08/06/25 08:23:43
>>589
言語仕様で決まってるのは{10, 9, 8, 7, 6}の配列がガベコレ可能な状態になるってところまで。
どのタイミングで回収されるかは実装依存。

あと、C言語だと、スタックに確保されるんじゃなかったか? それ。

592:デフォルトの名無しさん
08/06/25 11:47:12
指定した番号目の素数を出すにはどうしたらいいですか?

593:デフォルトの名無しさん
08/06/25 11:49:39
age

594:デフォルトの名無しさん
08/06/25 11:56:34
素数を降順でリストに突っ込んで取だしゃいいだろ。

595:デフォルトの名無しさん
08/06/25 11:57:20
>>594
すみません、素数を出すコードがわかりませんので。

596:デフォルトの名無しさん
08/06/25 12:03:16
エラトステネスのふるいでググレ

597:デフォルトの名無しさん
08/06/25 12:06:59
了解

598:デフォルトの名無しさん
08/06/25 12:41:32
数日前にチャート表示のプログラムを相談したものですが、
ttp//plaza.rakuten.co.jp/meime/diary/200603310002
を参考にしてみます。相談に乗っていただきありがとうございました。

599:デフォルトの名無しさん
08/06/25 13:42:22
>>594
なんで降順?

600:デフォルトの名無しさん
08/06/25 15:10:17
そんなどうでもいいこと聞いてなんになるの?

601:デフォルトの名無しさん
08/06/25 15:22:59
普通は昇順(1,2,3,5,7....)で何番目の素数とか言うだろw
降順の素数番目ってどうすんだw

602:デフォルトの名無しさん
08/06/25 17:11:11
じゃあ昇順てことで

603:デフォルトの名無しさん
08/06/25 18:27:38
スレ違いかもしれませんが、DoJaのコンソールの

Main :java.lang.NullPointerException Test
java.lang.NullPointerException
at MainCanvas.<init>(+40)
at Test.start(+7)
MainCanvas

このエラー出力の(+40)や(+7)はどういう意味ですか?


604:デフォルトの名無しさん
08/06/25 18:31:26
バイトコードの位置
<init>メソッドの40バイトめとstartメソッドの7バイトめ

605:デフォルトの名無しさん
08/06/25 21:23:38
進むほど↑↑なのが昇順。
進むほど↓↓なのが降順。


606:デフォルトの名無しさん
08/06/25 21:47:03
自分で使えるAPIをもっと増やしたいと思っている者ですが、みなさんの方でおすすめの本などあるでしょうか?
仕様を見ているだけではなかなか使いこなせず、使用例を見て理解したいと思うんですが、ソースをどこから探せばいいかとよく迷います。
自分のレベルですがJava歴は1年3ケ月、JSP、JSTLのタグを経て、GoFのデザインパターンを現在勉強しています。

ご教授、よろしくお願いします。

607:デフォルトの名無しさん
08/06/25 21:48:08
new コンストラクタ(引数).メソッド(引数)

という構文を見たのですが(左辺には何も無し)、これは
staticでないメソッドを使いたい!でも他に使うものはないからインスタンスを作るまでも無い!
というときにインスタンスを介さずに非staticメソッドを呼び出すものと考えていいのでしょうか?

608:デフォルトの名無しさん
08/06/25 21:48:30
>>605
時間軸で見た前方後方くらいにわかりづらいな

609:デフォルトの名無しさん
08/06/25 21:59:50
>>607
いや、newでインスタンスを生成してからメソッドを呼んでる形だよ、それは。
つまり
Hoge hoge = new Hoge(param);
Hoge.method(param);
の2行を
new Hoge(param).method(param);
に省略。

610:デフォルトの名無しさん
08/06/25 22:01:36
ああスマン、上のHoge
hoge.method(param)の間違い。

611:デフォルトの名無しさん
08/06/25 22:12:41
>>577
なんでそんなものを作るのか。

java.lang.ComparableインタフェースとComparable#compareTo()メソッドがあるのに


612:デフォルトの名無しさん
08/06/25 22:15:07
>>589
AtomicIntegerとか使えばいい

613:デフォルトの名無しさん
08/06/25 22:16:18
>>607
インスタンスは必要だが参照として保持する必要がない場合に使う書き方
FileChanel channel = new FileInputStream(file).getChannel();
とかよく使うパターンかね

614:607
08/06/25 22:47:43
>>609>>613
ありがとうございます。

内部ではインスタンスは作られているけれど、参照が無いから後から同じインスタンスをいじったりはできないということですね。
いまさらこんなこと聞くのもアレなんですが、Javaで言うところの「参照」というのはCでのポインタみたいなものと考えていいんですよね?
…ちょっと自信がなくなってきた…

>>611
出典のページによるとcompareToではオブジェクト同士の比較だけで、int同士の比較ができないから作っちまえということのようです。

615:デフォルトの名無しさん
08/06/25 23:07:51
>>614
参照はポインタの一種と考えれば、まあ間違いはない。
ポインタで出来ることを全て参照でできないってくらい理解しておけばいいと俺は思う

616:609
08/06/26 07:50:26
>>614
出典のページによるとcompareToではオブジェクト同士の比較だけで、int同士の比較ができないから作っちまえということのようです。

参考までに出典を教えて。説明を聞いてもIntegerクラスとのボクシング、アウトボクシングがある5.0以降なら、やはり611の言う通りと思えるので。
ボクシングの説明をただ省きたかっただけなのかもしれないけどね。

617:デフォルトの名無しさん
08/06/26 08:02:11
IntComparatorを日本語ページでぐぐったら2003年に書いたページが出てきたけど。
これ1.5より前に書かれてるんだろうから仕方ないんじゃね?

618:デフォルトの名無しさん
08/06/26 09:47:01
HtmlURLConnectionを用いてウェブページへのログインを実現させようとしています。
パケットキャプチャして、POSTの方はほぼ完全に一致させ、それに対するサーバーの応答も大丈夫だったのですが、その後こちらがGETするときにはPOSTの時に
URLConnection#setRequestProperty(String,String)で設定していたプロパティが完全にクリアされてしまい、サーバーから403が返ってきます。
具体的には、User-Agentが問題なようです。
GETの時のプロパティを設定するにはどのようにすればよいのでしょうか?

619:デフォルトの名無しさん
08/06/26 12:54:34
JMFを使って動画の再生に成功。あとはタイムラインと文字を流すシステムをひっつければニコニコ動画の完成だ!


620:616
08/06/26 13:21:43
>>617
おいおい、可能性高くてもWebで同じ名前のソース一つ見つけたからこれのこと言ってんだろってのは無謀だろ。
よしんばほんとにそうだとして、俺を納得させてどうするw
ここは614に「古いコードあてにしないで611の言うこと参考にしたほうがいい。」と言ってやるのが筋じゃないか。

621:デフォルトの名無しさん
08/06/26 13:25:43
>>620
ってか、君こそ出典知ってどうするつもりだったん?

622:デフォルトの名無しさん
08/06/26 14:59:17
メモ帳からデータを読み込むプログラミングを作りたいのですがうまくいきません
以下が私の作成したものです。NetBeansを用いました。
メモ帳の中のデータは
1
2
です。
package javaapplication2;
import java.io.*;
public class Load {
public static void main(String[] args) {
try { //(1)
//(2)Fileオブジェクトの生成
FileReader fr =new FileReader("test.txt");
//(3)Fileオブジェクトの生成
int i,m,s,kai=0;
//(7)読み込みデータがなくなるまで読み込み
while ((i = fr.read()) != -1) {
s=i; //(8)書き込むデータがなくなるまで書き込み
m=i;
kai = s + m;
}
fr.close();
System.out.print(kai);
//(9)読み込みストリームを閉じる
//(10)書き込みストリームを閉じる
catch(IOException e) {
} }}

623:デフォルトの名無しさん
08/06/26 16:03:23
>>622
コメントが意味分からないんだが、どうして欲しいんだ?
ついでにそれはメモ帳からデータを読み込むプログラムとは言わないだろw

624:デフォルトの名無しさん
08/06/26 16:07:41
>>622
どううまくいかないのか、期待したことと起きたことを明記してください。

625:622
08/06/26 16:34:45
期待したことは、
1がsに入り2がmに入って、それらが足し算されkaiに3が入り
3が出力されるというものです。
起きた事は
100と出力されました。

626:624
08/06/26 16:47:12
>>625
FileReader#read() は一文字(or一行?)を読むのではなく、1バイトを読み込みます。
”メモ帳の中のデータ”と言っている(おそらく)テキストファイルの先頭から1バイトづつです。
足す前に System.out.println("i="+i); 等と状況を表示する文を入れて実行し、どんな値が読み込まれているのか確認してみてください。
またどうしてそうなるのか、”メモ帳の中のデータ”をファイルダンプツールで見てみると良いでしょう。

627:デフォルトの名無しさん
08/06/26 16:49:32
>>625
URLリンク(e-words.jp)

sには最初'1'、つまり49が入る。
次に復帰改行で13、次に10が入る。
そして最後に'2'、つまり50が入る。

mも全く同じもの入れてるんだから、同じ。
つまり50+50=100が出力されてる。

628:デフォルトの名無しさん
08/06/26 17:36:11
>>626
>FileReader#read() は一文字(or一行?)を読むのではなく、1バイトを読み込みます。

これは非常に語弊があると思うんだけど。。

629:624
08/06/26 17:50:00
私の作成したのもがどのように振舞っているかは、良くわかりましたが、
どのように修正すれば良いかアウトラインが見えないので、
教えてください。

630:626
08/06/26 17:51:23
>>FileReader#read() は一文字(or一行?)を読むのではなく、1バイトを読み込みます。
>これは非常に語弊があると思うんだけど。。

そうでした、FileReaderは文字読みでした。
なので一行でも1バイトでもなく、一文字が正解です。ごめんなさい。

631:630
08/06/26 17:54:29
>>629
一行を文字列として読み込むというメソッドを持つクラスがあるので探してみてください。

632:デフォルトの名無しさん
08/06/26 18:07:56
>>622
繰り返しによって合計を取る方法(どう考えても基本です)をおさらいすることも重要かと。

ちなみに、mとかsというのは何かの略ですか?気になる。

633:624
08/06/26 18:08:04
>>631
ありがとう

634:デフォルトの名無しさん
08/06/26 18:52:03
スレリンク(tech板:259番)
このスレでちょっと出てたのをみて興味がわいたのですが、Javaで配列の要素側から、その要素を含む配列を取得することって出来ますか?

635:デフォルトの名無しさん
08/06/26 18:55:41
基本無理。その要素に、それを含む配列を持たせたらできるけどあほらしいし・・

636:デフォルトの名無しさん
08/06/26 19:18:47
質問なんですけど、夏にjavaプログラマのSJC-Pの試験を受けるため勉強してるんですが、
問題集しか購入してなく、用語の解説や流れなどのった教科書が欲しいところなのですが
お勧めの本とかないですか?友達がもってるSCCの教本見たら微妙だったんですよね。
問題集のほう「徹底攻略 Java2プログラマPlatform1.4」の黒本使ってます。
お勧めなどありましたら教えてください。


637:デフォルトの名無しさん
08/06/26 20:39:12
質問です。

Java システムアイコンを抽出 / Chat&Messenger
URLリンク(sattontanabe.blog86.fc2.com)

のサイトで、ウィンドウにドラッグドロップしたファイルのアイコンを取得する
サンプルプログラムが公開されているのですが、このプログラムでは
16*16サイズのアイコンを取得することしか出来ません。

Fileから32*32もしくはそれ以上のサイズのアイコンを取得する方法はありますか?

638:デフォルトの名無しさん
08/06/26 21:27:39
>>637
無理っす。

639:デフォルトの名無しさん
08/06/26 22:47:09
メソッド名の書き方について質問です。

メソッド名が長くなるので略して書きたいのですが、その場合大文字小文字の区別はどうするべきでしょうか?

例として
aaaaaBbbbbCcccccDdddd
というメソッド名を短くしてABCDという名前に略すのですが、これだと規約から外れてしまいます。
そこで
1.aBCD
2.abcd
3.aaaaaBbbbbCcccccDdddd(略すべきではない)
4.その他

どれがいいのでしょうか?

640:デフォルトの名無しさん
08/06/26 22:53:52
aaaaaBCDとか

641:使用書無しさん
08/06/26 23:00:45
netBeansとかいまどきのIDE使ったら自動補完してくれるので、後々の読みやすさ
考えたら略さないほうがいいと思うけど。

642:デフォルトの名無しさん
08/06/26 23:18:47
>>639
略し方すらわからなくて人に聞かなきゃいけないレベルなら略さない方が良いと思うぞ。

無意識のうちに>>639が望む回答するように情報隠してる可能性もあるし。
例えば、命名規約のルールだって全部出してるわけじゃないでしょ。

643:使用書無しさん
08/06/26 23:22:59
634<< 配列よりVectorつかったらどうだ。
class A {
      public B parent=null;
      public void setParent(B parent){
           this.parent=parent;
      }
      public B getParent(){
            return parent;
      }
}

class B extends Vector<A>{
      @override
      public void add( A child){
             child.setParent(this);
             super.add(child);
      }
     public void add(int index,A child){
             child.setParent(this);
             super.add(index,child);
     }
}
こんなもんかな。

644:デフォルトの名無しさん
08/06/26 23:43:35
>>639
長すぎるってのはクラスの設計が良くない兆候。
aaaaaBbbbbCcccccDdddd というメソッドが HogeManagerとかにあるんだろ、どうせ。
HogeAaaaBbbbクラスをつくり、ccccDdddってメソッドを作るような状況な筈

645:デフォルトの名無しさん
08/06/27 00:05:06
>>624
ファイルからのデータの読み取りにはcsv形式が便利(基本)。(「1,2」とか書いてtest.csvを準備。)
以下はCSVテキスト上で同じ行にある数値の合計を順次算出して別ファイルに集計する例
package javaapplication2;
import java.io.*;
import java.util.*;

public class Load {
public static void main(String[] args) {
//データ格納用Listの準備
List<String[]> list = new ArrayList<String[]>();

try {

FileReader fr =new FileReader("test.csv");
BufferedReader bf = new BufferedReader(fr);

String st = null;
while ((st = bf.readLine()) != null) {
String[] line = st.split(",");
list.add(line);//ファイル上1行の各数値を文字列として格納
}
bf.close();



646:デフォルトの名無しさん
08/06/27 00:05:38
//計算結果データ格納用Listの準備
List<Integer> result = new ArrayList<Integer>();
int sum = 0;
for(String[] values: list){
for(String value: values){
int num = Integer.parseInt(value);//文字列を数値型に変換
sum += num;//同じ配列内の値の合計値を求める
}
System.out.println(sum);
result.add(sum);//合計値を格納
sum = 0;
}

FileWriter fw = new FileWriter("result.csv");
PrintWriter pw = new PrintWriter(new BufferedWriter(fw));

for(Integer val: result){
pw.println(val);
}

pw.close();


}catch(IOException e) {
e.printStackTrace();
}
}
}

647:639
08/06/27 00:11:41
レスどうもです。
今iアプリを作成してて複数単語を繋げて長くなったら打つのが面倒だから略して書けないか?
その場合どうするべきか?というのを軽く疑問に思っただけだったので、変な例を出してしまいましたが、
それがいけなかったようですので実際に作っているのを出してみます。

ダーツゲームを作成しているのですが、ゲームルールとしてスーパー・ラウンド・ザ・クロックというのがあります。
ルールクラスの中にスーパー・ラウンド・ザ・クロックメソッド(SuperRoundTheClock)を作るのですが、
この場合どうするべきか?というのが知りたかったのです。

ちなみに、SuperRoundTheClockぐらい打てよ!というのは無しの方向で・・・。
より長いものが出てきた場合に参考にしておきたいので。

648:デフォルトの名無しさん
08/06/27 00:17:54
今どき補完できるエディタ使おうよ

649:使用書無しさん
08/06/27 00:19:47
>>647それjavaの質問というよりセンスの問題じゃねえ?
昔cobolやってたころなんか母音略して子音だけで名づけてたな
sprRndTheClckなんてな..

650:デフォルトの名無しさん
08/06/27 00:23:43
>>647
その場合、RuleクラスのサブクラスとしてSuperRoundTheClockRuleを作成するのが定石だと思う。
なので、メソッド名は同じになりオーバーライドすることになる。

651:デフォルトの名無しさん
08/06/27 00:28:29
>>647
頭字語で補完してくれるよ、最近のIDEは。
Eclipseの場合だと、sRTC で補完すると superRoundTheClock() が出てくる。
重複するものがなきゃもっと短かくてもOK。
あと、Javaではメソッド名の先頭は小文字な。

652:639
08/06/27 01:32:47
開発環境が固定されていないため(自宅と学校で学校の中でもいろんな場所でやってる)エディタ変更は厳しいです。
今は全マシンにインストールされてるエディタがあるのでそれを使っています。
今後は略さずに補完機能のあるエディタを使って開発する事がベストということですね。

>>650
上の例で突っ込まれそうな予感はしてましたが、突っ込まれてしまいました。
これはRuleクラスでメンバと抽象メソッドを作ればよいということでいいんでしょうか?




653:デフォルトの名無しさん
08/06/27 01:51:06
>>652
そのとおり。ストラテジーパターンで。
感覚は掴めていそうに見えるから、ググって実装例を見てみるといいと思う。

もっとも、ルールが2種類しかないとか言うなら、デザパタを適用するまでも無いけどね。

654:639
08/06/27 02:09:48
>>653
ルールは追加する予定ではいますが、時間の都合上、最悪superRound・・・だけというのも有り得ます。
が、勉強のためにそれでやってみようと思います。

655:デフォルトの名無しさん
08/06/27 06:32:30
>>635
ありがとうございます

656:デフォルトの名無しさん
08/06/27 15:32:50
JSFでSSLは実現できますか

657:デフォルトの名無しさん
08/06/27 16:09:57
JDBCのresultsetのgetObjectで取得したデータの
型を取得する方法をご教示ください。

やりたいことは
resultsetのgetObjectによって
取得されたデータで作成された
ArrayList内データをcsvに出力する汎用的な
メソッドを作成しています。

そのArrayList内のデータで、文字型なら「"」で
くくりたいと考えています。

public void createCSV(List table) {
 //tableはgetObjectで取得したデータが渡される。
 for (int r = 0; r < table.size(); r++) {
  List rec = (ArrayList)table.get(r);
  for( int c = 0; c < rec.size(); c++ ) {
  //ここでrec.get(c)のデータ型を知りたい。
 }
・・・
}

658:デフォルトの名無しさん
08/06/27 16:13:48
>>657
if (rec.get(c) instanceof String) {
...
} else {
...
}

659:デフォルトの名無しさん
08/06/27 16:15:55
getClass().getName()
の方が早くね

660:デフォルトの名無しさん
08/06/27 16:24:39
>>658-659
即レスでありがとうございます。
無事やりたいことができました。
勉強になりました。

661:デフォルトの名無しさん
08/06/27 22:55:13
少し前に為替レートの取得法を相談したものですが,URLConnectionをつかってそのサイトのデータ引き落としは上手く行きましたが、
やはりレートを秒単位でリアルタイム表示しているところはとる事が出来ず行き詰ってしまいました・・
何かいい案はないでしょうか?

662:デフォルトの名無しさん
08/06/27 23:17:54
クラス図での表現を教えてください。
(属性と操作は省略していいそうです)
そのクラス図がどのような現実世界の仕掛けを表現したものか
も教えてください。

Course Person Professor ShedcleOfClasses Section
Student Transcript TranscripEntry

663:661
08/06/27 23:44:49
すいません。いろいろ試した結果為替レートの取得できるようになりました。
申し訳ありませんでした

664:デフォルトの名無しさん
08/06/28 00:35:59
'else'への'if'がありません
ってどうすれば解決できるんでしょうか?

665:639
08/06/28 00:41:43
問題になってるif文をここに貼り付ければ?

666:デフォルトの名無しさん
08/06/28 00:42:51
ifまわりの括弧がおかしいとかだろうな

667:デフォルトの名無しさん
08/06/28 01:10:59
URLリンク(www.objectstart.com)
にある下から2番目のClick here to access a
Zip file containing the Java 1.5.x version
of source code for the second edition of BJO.
(This version of source code will not compile
with Java 1.4.x or earlier compilers.)
のファイルにあるCh14のCourse Person Professor
ShedcleOfClasses Section
Student Transcript TranscripEntry
のクラス図を教えてください


668:デフォルトの名無しさん
08/06/28 09:45:47
>>667
クラス図がどんなものか知ってて、ソースコードがあれば
他人に聞く必要のあることなんてこれっぽっちも無いと思うぞ。

描くのが面倒臭いのか?
もしそうなら、ソースからクラス図を吐き出すツールを作ればいいじゃない。

あとは、それくらいの発想なら世の優秀な兄者どもが
既に思いついてるんだろうな~って感じで、ググっちゃいなヨ。

↓はJudeっていうツールだけど、ソースからクラス図作成もできるので便利よ
URLリンク(jude.change-vision.com)

ちなみに ShedcleOfClasses じゃなくて ScheduleOfClasses ね

669:デフォルトの名無しさん
08/06/28 13:56:52
☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ毎日新聞社による日本人女性への誹謗中傷☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ

・母親は受験勉強をする息子の学力向上のためにフェラチオをする
・日本人女性の55%は、出会ったその日に男と寝る
・ファストフードは女子高生たちを性的狂乱状態におとしいれる
・ティーンたちはバイアグラを使ってウサギのようにセックスをする
・女子高生は、刺激のためにノーブラ・ノーパンになる
・日本の最新の流行 : 70歳の売春婦
・老人の売春婦の人気にもかかわらず、日本では小学生の売春婦にも仕事がある
・日本の若い看護婦は売春婦に勝る
・24時間オルガズムが止まらない病気で苦しむ日本人女性の数が増えている
・15未満の子供を対象とした疑似ポルノが日本に蔓延している
・OLの72%が、セックスをより堪能するために何らかのトレーニングを受けている
・人妻は気分転換の目的で昔の恋人に抱かれに行く
・主婦は郊外のコイン・シャワーで売春をしている
・日本男子は柔道や空手の部活で男相手に童貞を捨てている
・ほとんどすべての漁師は海でマンタとSEXしている
・まだ10代の少年から退職した老人までみんな2980円の手コキを利用している
・六本木のあるレストランでは、食事の前にその材料となる動物と獣姦する

※同社が全年齢向けコーナーで七年以上にわたり世界に向けて配信していたものの一部です
※同社の行為は日本人への偏見や人種差別、婦女暴行、幼児虐待を助長するものです

◆毎日新聞の英語版サイトがひどすぎる まとめ@wiki
 URLリンク(www9.atwiki.jp)
◆毎日新聞問題の情報集積wiki
 URLリンク(www8.atwiki.jp)

つまり日本国民は
URLリンク(www.vipper.net)

670:デフォルトの名無しさん
08/06/28 17:55:22
>>661
秒単位だとどうしてもソフトを間に挟むしかない
MT4などにDllフックするか優良サービスを得るか
URLリンク(www.dailyfx.com)
で動いてるアプレットからデータを取得するのが無難

671:デフォルトの名無しさん
08/06/28 18:03:12
てか
前に答えてあったな

672:デフォルトの名無しさん
08/06/28 18:13:48
670訂正
○有料
×優良
だね

673:デフォルトの名無しさん
08/06/28 21:11:44
mysqlで100mbのデータをソートしたいのですが
ResultSetのインスタンスを所得した時点でメモリ不足になりました

また、ヒープのサイズを512MBに設定し、
100mbのCSVをCollectionsのsortメゾットでsortしたのですが
これもまたメモリ不足になってしまいました。

大量データをソートする場合どのような手段をとればいいのでしょうか



674:デフォルトの名無しさん
08/06/28 22:36:31
マージソートの要領で、データ全体をメモリに入るサイズに分割して個別にソートし、最後にマージする

675:デフォルトの名無しさん
08/06/28 22:38:31
ゲームプログラミングで一般的にルールを破った場合というのは例外を投げ、それを対処すべきでしょうか?
それとも、毎度ルールに沿っているかチェックして対処すべきでしょうか?

676:デフォルトの名無しさん
08/06/28 22:39:45
入力された数字が一桁なら先頭に0をつけたすプログラムを書きたいのですが、
どうすればいいでしょうか・・・。
たとえば
6→06
としたいのです。
初歩的な質問過ぎてすいません。

677:デフォルトの名無しさん
08/06/28 22:44:06
int num;
...
String numtext = String.format("%02d",num);

678:デフォルトの名無しさん
08/06/28 23:27:15
URLリンク(www.objectstart.com)
にある下から2番目のClick here to access a
Zip file containing the Java 1.5.x version
of source code for the second edition of BJO.
(This version of source code will not compile
with Java 1.4.x or earlier compilers.)
のファイルにあるCh14のCourse Person Professor
SchedcleOfClasses Section
Student Transcript TranscripEntry
のクラス図を教えてください

679:デフォルトの名無しさん
08/06/28 23:53:53
javaでブラウザを作ってみたいのですが
SWTを使わずにGeckoエンジンを使った表示の方法はないでしょうか?

680:デフォルトの名無しさん
08/06/28 23:53:57
プロンプトでパラメータから年・月を受け取り、その「前月」「当月」「次月」の3ヶ月をコンソールに
出力するカレンダーにするにはどうしたらいいですか?
(要するに、2008、5と入力したら、4月、5月、6月の3か月分を出力する)

条件として、
・パラメータチェックメソッドを実装すること
ただし、同メソッド内にtry/catch句を記述してはいけない。
 (自前で数値チェックを実装する)

・mainメソッドはControllerとしてのみ使用すること。
(実際の作成/出力処理は別メソッドに実装すること)

助けてもらえたら幸いです、みなさんお願いします:;

681:デフォルトの名無しさん
08/06/29 00:02:03
>>679
Java Mozilla Html Parser

682:デフォルトの名無しさん
08/06/29 00:03:09
なんか最近勘違い君が多いけど、ここは宿題スレじゃないんだぜ

>どうしたらいいですか?

なんて曖昧な質問には、

プログラムしたらいいのでは?

としか答えようがないでしょ?

せめて、あたかも宿題じゃないかのようにぼかす配慮をした上で
どういうコードを書いたらどういうエラーがでた、位は書こうぜ

683:デフォルトの名無しさん
08/06/29 00:16:34
680です。
すいませんでした、ご指摘のとおり宿題スレに行きますね。

684:デフォルトの名無しさん
08/06/29 00:20:27

if(arg[0].equals("2008") && arg[1].equals("5")){
    System.out.println("2008年4月、2008年5月、2008年6月");
}else{
    System.out.println("自分でカレンダー見て");
}


685:679
08/06/29 00:24:20
>>681
解答ありがとうございます。
しかしパーサーじゃなくてレンダリングの方法をお願いしたかったのですが。。
XULRunnerやJavaXPCOMを見ていたのですが
SwingやAWTはなにやら無理なようなので他に方法はないでしょうか

686:デフォルトの名無しさん
08/06/29 00:40:36
URLリンク(java.sun.com)
J2SE SDK のダウンロードができないんです
Archiveのリンクも開けません
何故でしょうか?

687:デフォルトの名無しさん
08/06/29 00:52:04
>>679
これは?
URLリンク(jrex.mozdev.org)

688:デフォルトの名無しさん
08/06/29 00:53:30
>>673
100MB(合計だよね?)のデータを読み込めて、同程度の作業領域を確保出来るだけのメモリがあるんだから、
適当にin-placeなソートでもすればいいと思うよ

お勧めは、multikey quicksort, msd/lsd radix sort, bucket sortあたり
どのソートアルゴリズムを利用すべきかは、データ構造によるところが大きいので適宜選択のこと

689:デフォルトの名無しさん
08/06/29 00:57:03
>>682
話に加われるだけのレベルをつけてからおいで

690:デフォルトの名無しさん
08/06/29 01:15:20
>レベルをつけてから
>レベルをつけてから
>レベルをつけてから
>レベルをつけてから
>レベルをつけてから
>レベルをつけてから

691:デフォルトの名無しさん
08/06/29 01:22:41
>>689
あんたは会話が成立するレベルの日本語を
操れるだけの能力を身につけてから出直しておいで。


692:デフォルトの名無しさん
08/06/29 01:48:08
>>691
偉そうに言いながら「ら」抜き日本語かよww
正しくは「操られる」だろ
おまえこそまともな日本語使えよなww

693:デフォルトの名無しさん
08/06/29 01:55:52
>>692
ねーよ

694:デフォルトの名無しさん
08/06/29 01:57:52
int型のポインタを関数の引数に渡して、引数に、なんか値を戻してやる、
・・・って感じのこと、javaは、できないのか?

695:デフォルトの名無しさん
08/06/29 02:00:44
最近のJavaって終末感漂ってるよね
10年前の輝きは何だったんだろうね
新しい言語の説明ってどれもJavaの悪い部分との比較だったりするし
Cみたいに恒常的に長生きする言語でもないし

696:デフォルトの名無しさん
08/06/29 02:06:37
>>695
今、一番輝いてる言語ってなに?

697:デフォルトの名無しさん
08/06/29 02:07:00
>>695
他のツールが生き残らなかったから、javaと比較するしかないって?
それ程の勢力じゃないだろう。

698:デフォルトの名無しさん
08/06/29 02:07:52
>>673
ResultSet.TYPE_SCROLL_INSENSITIVE や ResultSet.TYPE_SCROLL_SENSITIVE を指定してないか?
それ、インメモリで処理するからメモリを馬鹿食いするはず。
ResultSet.TYPE_FORWARD_ONLY で解決しない?

699:デフォルトの名無しさん
08/06/29 02:09:00
>>686
よくわからんが、英語版の画面に切り替えれば、1.4.2_17 ならダウンロードできたぞ。

700:デフォルトの名無しさん
08/06/29 02:09:23
>>694
できない。どうしてもやりたいなら、クラスに包んで渡してやる必要がある

701:デフォルトの名無しさん
08/06/29 02:12:38
>>699
ありがとうございます。
目当てのバージョンをダウンロードできました。


702:デフォルトの名無しさん
08/06/29 02:16:18
>>694
void callee(int[] x) { x[0] = 100; }
void caller() { int[] x = new int[1]; callee(x); System.out.println(x[0]); }
滅多にこんなことしないけどなー。// 適切にクラス設計すればまず出番がない。全くないとは言わんが。

703:デフォルトの名無しさん
08/06/29 08:56:56
691 名前: デフォルトの名無しさん [sage] 投稿日: 2008/06/29(日) 01:22:41
>>689
あんたは会話が成立するレベルの日本語を
操れるだけの能力を身につけてから出直しておいで。

692 名前: デフォルトの名無しさん 投稿日: 2008/06/29(日) 01:48:08
>>691
偉そうに言いながら「ら」抜き日本語かよww
正しくは「操られる」だろ
おまえこそまともな日本語使えよなww


★「操れる」は「ら抜き言葉」じゃないだろ。
★「食べれる」なら「ら抜き言葉」だから間違ってるが、「操れる」は正しい日本語だよ
★「操れる」=操ることができる
★「操られる」=誰かが自分を操っている


704:デフォルトの名無しさん
08/06/29 09:13:07
しつけえ

705:デフォルトの名無しさん
08/06/29 14:49:55
超初心者で申しあけございませんが、
画像を複数枚表示させたら画像がちらつきます。
repain();でもちらつきます。
どのワードを打ったら常にはり絵でいられるでしょうか?

マルチですけど応答がないのでこちらに質問します。

706:r545
08/06/29 15:21:55
超初心者ですが、質問があります。

Cで言う構造体は、Javaではどのように定義すれば良いですか?以下のやつだと
どうなるか教えてください。

typedef struct cell { // セル構造体
char *key ; // 格納されたキー
int next ; // 次のセル(同族のキー)
} CELL;

 typedef struct bucket { // バケット構造体
int Bdepth ; // バケットのビット長
int nkeys ; // バケットに格納されているキーの個数
CELL cell[BSIZE] ; // キーを格納するハッシュテーブル
} BUCKET;

 typedef struct directory { // ディレクトリー構造体
BUCKET *ref ; // バケットへのポインタ
} DIRECTORY;



707:デフォルトの名無しさん
08/06/29 15:31:52
>>706
class Cell {
 String key;
 int next;
}
class Bucket {
 int Bdepth;
 int nkeys;
 Cell[] cell = new Cell[BSIZE];
}
class Dictionary {
 Bucket bucket;
}

708:r545
08/06/29 15:52:20
どうもありがとうございます。

3つのクラスファイルにした方が良いんですか?それとも、メインを含めて全部
まとめた方が良いですか?

あと、classの前にpublicはいらないんですが?

709:デフォルトの名無しさん
08/06/29 15:55:36
>>708
publicなクラスはファイルを分ける必要がある。
そうじゃない場合まとめて書いても良い。
publicにするかどうかは用途による。

710:r545
08/06/29 16:04:35
709>>

Cで書かれたプログラムをJavaで書き直せっていう課題が出てて、Cで構造体が使われて
いるんですよ。難しいです。。もし良かったら、
URLリンク(rg550.hp.infoseek.co.jp)
にのせてあるんで見てもらえますか?

711:デフォルトの名無しさん
08/06/29 16:14:29
そういう課題ってどこで出るの?
高校?専門?大学?

712:デフォルトの名無しさん
08/06/29 16:18:43
質問です。
次のような、タブペインに、newでインスタンスとして生成したラベルlabelをタブの数だけ配置するプログラムがあります。

public class TabbedPaneSample1 {
JLabel label;
public TabbedPaneSample1() {
JFrame frame = new JFrame("TabbedPane Sample");
JTabbedPane pane = new JTabbedPane();
for (int i = 0; i < 5; i++) {
label = new JLabel("Tab" + i);
pane.addTab("Tab " + i, label);
}
frame.add(pane);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 200);
frame.setVisible(true);
}

public static void main(String[] args) {
new TabbedPaneSample1();
}
}

ボタンを押すなどしたときに「現在表示中の」ラベルの内容を書き換えるにはどうしたらいいでしょうか?
label.settext("A");などでは一番最後に貼り付けたラベルにメソッドが働いてしまうようです。

タブペインのgetSelectedComponent();メソッドでコンポーネントは取得できるようなのですが、
コンポーネントからそのメソッドを呼び出せるものなのでしょうか?

タブの数は不定なので、あらかじめラベルを用意しておく事は出来そうにないです。

713:デフォルトの名無しさん
08/06/29 16:21:36
>>710
つかロダのリストのどれやねん(笑

見た感じ直訳するか意訳するかがポイントかね。
コレクション使って書き直すか、Cのロジックでやってる部分をそのまま使うか。
そのまま直訳するならポインタをどう扱うかがポイントで、
意訳するなら処理の内容を理解してないと辛いかな。ソースは短くなると思うけど。

714:デフォルトの名無しさん
08/06/29 16:28:56
>>712
取得したコンポーネントをLabelでキャストしたらいいんじゃね?

715:デフォルトの名無しさん
08/06/29 16:40:16
>>714
キャストで出来ました!即答ありがとうございます

716:r545
08/06/29 16:51:55
713>>
すいません!課題は大学で出ました。
ロダの306.txtと310.txtと311.txtです。
Cプログラムをただ単にJavaに書き直せと言うことだそうです。
オブジェクト指向の考えはしなくて良いので全てまとめて良いらしいですが。
Javaは勉強中でして、ちょっと出来る気がしないので見てもらえますか?
よろしくお願いします

717:デフォルトの名無しさん
08/06/29 17:14:38
>>716
宿題スレじゃないからな、わからんとこだけワンポイントで質問しなされ

718:デフォルトの名無しさん
08/06/29 17:21:36
CとJava同時にやるとかおもしろいなぁ・・

719:デフォルトの名無しさん
08/06/29 19:46:05
つーかCをJavaのコードに直せとか
典型的なダメ教育だよな

720:デフォルトの名無しさん
08/06/29 19:49:33
逆にバリバリのオブジェクト指向で書いたjavaのコードをCに直させたら勉強になるかも

721:デフォルトの名無しさん
08/06/29 20:55:16
それJNI書くのと一緒じゃね

722:デフォルトの名無しさん
08/06/29 21:28:42
ナンダッテ?

723:r545
08/06/29 21:32:09
717>>

すいません。。

せめて、メイン関数だけJavaに直したのを教えてもらいたいんですが。。
少しづつやってるのですが不安で。残りはは、自分でやるので。

724:デフォルトの名無しさん
08/06/29 21:45:50
>>719-720
変な癖が付きそうで怖い。

725:デフォルトの名無しさん
08/06/29 21:58:55
Cでオブジェクト指向みたいなことをやってるのって、
GKT+あたりかな。

726:デフォルトの名無しさん
08/06/29 21:59:08
>>723
そもそもどっちかの言語をある程度使える状況になってからやる課題。
おまえさんには多分無理ということであきらめた方がいい

727:デフォルトの名無しさん
08/06/29 22:00:31
>>716
Cは読めるのか?
読めるならばどの部分がJavaに変換できないのかを質問してくれ

728:r545
08/06/29 22:24:22
727>>

Cは読めます。Cのメインは自分で作ったので。
メインが分らないんですが。。少しずつやってるんですけど。



729:デフォルトの名無しさん
08/06/29 22:32:25
質問です。
今、フルスクリーンとウィンドウを切り替えるようなものを作ろうとしているのですが
描画にはBufferStrategyでgetDrawGrapicsしたものを使用しています。

フルスクリーンからウィンドウに切り替える場合、ウィンドウにはなるものの
BufferStrategyがnullになってしまい描画処理が行えないという状況になりました。
少々強引ですが、runの頭でgetStrategyをし取得を試みたのですが上手くいきませんでした。

ウィンドウからフルスクリーンに切り替える場合setUndecoratedが実行できず
setUndecoratedを実行しないで切り替えると上と恐らく同じ理由で描画処理が行えませんでした。
もちろん、setUndecoratedにtrueを渡してフルスクリーンにしたいので
setUndecoratedを実行しないということはできればしたくありません。

よろしくお願いします。

730:デフォルトの名無しさん
08/06/29 22:37:07
>>728
メインの何処が分からないのかと

731:デフォルトの名無しさん
08/06/29 22:40:30
聞いてると
分からない所が分からない人なんじゃないのかなこの人

732:名無し
08/06/29 23:03:44
javaの影響でyoutubeが見れなくなってしまったんですが、どうすれば見れるようになりますか?
教えてください(>_<)

733:デフォルトの名無しさん
08/06/29 23:09:28
>>728
意地悪してるわけじゃないけど君の質問の仕方では答えのしようがないよ
きっと自分で何が分からないのかが分かってないんだと思うけど
そういう状態で人に物を聞くのは失礼というものですよ
社会に出る前にその癖を直したほうがいい

734:r545
08/06/29 23:22:06
728 731 733

すいません。遅れました。。

メインの変数定義からファイルを読み込むまでです。
int main (void){
FILE *fp; //ファイルポインタ宣言
char *a[HSIZE]; //格納用配列
int i; //ループ変数
char inv[100]; //入力値
char infile[80]="wordE100KR.dat";
double sec;
clock_t start, end;
DIRECTORY *directory;
int depth = 2; //バケットの深さ

if((fp = fopen(infile,"r")) == 0){
printf("ファイルオープンできません。\n");
exit(0);
}
i = 0; //初期化ループ変数初期化
while(fscanf(fp, "%s\n", inv) != EOF){ //キーの読込み
a[i] = strdup(inv); //ポインタ配列にデータを格納する.
printf("%s\n",a[i]);
i++;
if(i >= HSIZE)
break;
}
fclose(fp);//ファイルクローズ




735:r545
08/06/29 23:23:34
734をJavaにすると↓

public static void main(String args[]){

String a[]=new String[HSIZE];
String inv[]=new String[100];
int i;
double second;
clock_t start, end;
DIRECTORY[] directory;
int depth = 2;

i=0;

try{

BufferedReader f=
new BufferedReader(new FileReader("wordE100KR.dat"));
while((inv=f.readLine())!=null){
a[i] = inv;
System.out.println(a[i]);
i++;
if( i>= HSIZE)
break;
}
f.close();
}catch(FileNotFoundException e1){
System.out.println("NO File");
}catch(IOException e2){
System.out.println("Can not Open");
}


736:r545
08/06/29 23:24:14
合ってますか?

737:デフォルトの名無しさん
08/06/29 23:27:03
聞く前に試したら?
と言わざるを得ない

738:デフォルトの名無しさん
08/06/29 23:38:32
まぁファイル読み込みぐらい調べればすぐできるしな・・
次からが問題だなぁ

739:r545
08/06/30 00:44:08
737>>

動かしたんですが、警告は無視しても平気ですか。エラーは5個でたんですが。。
public class HashExtend {

static final int HM = 1048583; // 擬似キー生成時にハッシュ関数へ渡す素数
static final int BSIZE = 100; // バケットの容量
static final int BPOS_MAX = 100; // バケットの占有率上限での容量
static final int BPOS_MIN = 50; // バケットの占有率下限での容量
static final int BHM = 97; // セル格納時にハッシュ関数へ渡す
static final int BC = 29; //セル格納時に衝突した場合のハッシュの増分
static final int HSIZE = 100000;//配列のサイズ

上のコメント分が
警告: この文字は、エンコーディング MS932 にマップできません。

のように出るのですが。。

740:デフォルトの名無しさん
08/06/30 00:49:05
>>739
そりゃエディタの文字コードの設定か何かがおかしいだけ。
Windowsのメモ帳でソースを開いてみて、おかしいところが何とかして直すんだ。


741:r545
08/06/30 01:18:45
TeraPad でやってるんですが。

文字コードがSHFT-JISになっています。。分んないです。。



742:r545
08/06/30 03:29:22
740>>

すいません。解決できました。
しかし、次の問題が。。

HashExtend.java:46: 互換性のない型
検出値 : java.lang.String
期待値 : java.lang.String[]
while((inv = f.readLine())!=null){
^
HashExtend.java:47: 互換性のない型
検出値 : java.lang.String[]
期待値 : java.lang.String
a[i] = inv;
このエラーって、何ですか?invがString型になってないってことですか?



743:デフォルトの名無しさん
08/06/30 04:16:31
>>742
f.readLine() は String を戻すのであって String[] を戻すのではない。
BufferedReader を使ってファイルの読み込みをする場合、普通は

String line;
while ((line = f.readLine()) != null) {
System.out.println(line);
}

こんな感じ。

744:r545
08/06/30 06:00:29
742>>

どうもありがとうございます!!!Cと違って代入する方は
配列にしなくても良いってことですか?

String inv[]=new String[100];は

String inv;

にしてファイルを読み込みさせれば良いんですよね?
これならエラーは取れました!





745:デフォルトの名無しさん
08/06/30 06:30:31
>>744
URLリンク(java.sun.com)()
C言語が最低限理解出来てるならこれ見れば分かるだろ。

746:デフォルトの名無しさん
08/06/30 12:43:52
JSF&SSLの件有難うございました
何とかWeb.xmlをいじる方法で解決しました

747:デフォルトの名無しさん
08/06/30 16:11:27
最近JDK14→15になったのでGenericsで躓いています。
単体テストでフィールド変数の中身の確認が必要になり、


748:デフォルトの名無しさん
08/06/30 16:15:59
すみません途中で送ってしまいました。
単体対象クラスをTestというクラスだとすると

Class<? extends Test> cl = test.getClass();
Field fd = cl.getDeclaredField("fieldObjName");
Object obj = fd.get(test);

このfieldObjNameはtestの中にあるHashMap型の変数で、これが
Testクラスの持つclearメソッドでclearされていることを確認したいのですが、
ここからobjをHashMapに持っていく方法が分かりません。
そのままキャストすると勿論叱られます。
よろしくお願いいたします。

749:デフォルトの名無しさん
08/06/30 16:35:45
>>748
なんて言って叱られるの?

750:デフォルトの名無しさん
08/06/30 16:59:53
Java

751:747-748
08/06/30 17:03:08
Type safety: Unchecked cast from Object to HashMap<String,ResultSetMetaData>

ObjectからHashMapへの未検査キャストを叱られているのだと思います。
単体テスト用テストケースの中で、clear前はこのフィールドがcontainsKeyで
与えられたキーのオブジェクトを持っており、clear後は持っていないことを確認する
つもりだったのですが。
どうしたらいいんだろう。

752:デフォルトの名無しさん
08/06/30 17:10:19
>>751
Object から総称型へのキャストは怒られる。

警告つきでもいいならコンパイルオプションで -Xlint:unchecked つければコンパイルは通る。
警告抑止したいならメソッドにアノテーション @SuppressWarnings("unchecked") つけろ。

753:デフォルトの名無しさん
08/06/30 17:18:03
>>751
HashMap<String,ResultSetMetaData>にキャストしようとするから警告が出ているのね。
使い方としておかしいんだろうけど、それでも動くし、
HashMapにキャストする分には警告も出ないのでは?

754:747-748
08/06/30 17:47:25
>>752>>753
ありがとうございます。
やっぱりこの場合は警告無視するしかないんでしょうか。
例えばinstanceofとかでobjectがhashMapのインスタンスであることを確認するとか
なにかそういうような必要な手順があって、それをすれば叱られなくなるのかと思ってました。

ちなみにただのHashMapにキャストしようとすると警告が増えますw
HashMap は raw 型です。 総称型 HashMap<K,V> への参照は、パラメーター化する必要があります

とりあえず@SuppressWarnings付けて逃げました。
どうもありがとうございました。
もう少し頑張ってGenerics勉強します。

755:デフォルトの名無しさん
08/06/30 17:47:33
>>751
HashMap<?,?> にならキャストできるはず

756:デフォルトの名無しさん
08/06/30 17:52:02
もう終わったらしいよ

757:デフォルトの名無しさん
08/06/30 17:57:13
らしいね
無駄な労力になったが、まぁ暇潰しだし

758:747-748
08/06/30 18:00:52
>>755
うぉぉぉぉぉぉぉぉぉホントだー!ありがとうございます!!
なんでなんだろう奥が深すぎる_| ̄|〇

759:デフォルトの名無しさん
08/06/30 18:19:58
>>754
> HashMap は raw 型です。 総称型 HashMap<K,V> への参照は、パラメーター化する必要があります
それは、GenericじゃないHashMapに何かを詰めようとしているからでは?
クリアを確認したいと言う話だったような・・・?

760:747-748
08/06/30 19:27:31
fd.get(test)でアクセスしようとしているprivateフィールドfieldObjNameは、
HashMap<String,ResultSetMetaData>が本来の型なんですが。

1)
HashMap<String,ResultSetMetaData> hoge =
(HashMap<String,ResultSetMetaData>)fd.get(test);
→Type safety: Unchecked cast ~と叱られる

2)
HashMap hoge = (HashMap)fd.get(test);
→HashMap は raw 型です。 総称型 HashMap<K,V> への~と叱られる

3)
HashMap<?, ?> hoge = (HashMap<?, ?>)fd.get(test);
→おっけー!\(^o^)/


かくして3)の後、test.clearして、hoge.containsKeyがfalseになることを
確認できました。
いろいろ教えていただいて本当にありがとうございました。

761:デフォルトの名無しさん
08/06/30 22:46:01
質問っす
javaからphpにデータを送ろうとしていて、うまくphpにデータを送信できずこまってます
環境 ローカル
php環境 Apach2
String data = "data=1";
URL cgiURL=null;
try {
//URLの生成
try{
cgiURL = new URL("URLリンク(localhost)");
}catch(MalformedURLException e){
e.printStackTrace();
}
//設定
HttpURLConnection uc = (HttpURLConnection)cgiURL.openConnection();
uc.setRequestMethod("GET");
uc.setDoOutput(true);
uc.setUseCaches(false);
uc.setAllowUserInteraction(false);
// CGIへの書き込み用ストリームを開く
OutputStreamWriter pw = new OutputStreamWriter( uc.getOutputStream() );
// CGIにデータを送信する
pw.write(data);
// ストリームを閉じる
pw.flush();
pw.close();
}catch (MalformedURLException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
apacheのログデータをみてみると、アクセスログさえのこっていません.php単体では動作するのですがなぜかjavaからphpにはできませんでしたどういう問題点があるのでしょうかご教授ください

762:>>761
08/06/30 22:47:08
エラーはとくにありませんでした

763:デフォルトの名無しさん
08/06/30 23:10:00
>>761
connect() をしていない所為か?

764:デフォルトの名無しさん
08/06/30 23:30:16
>>761
GETでDoOutputは有り得ない。


765:r545
08/06/30 23:57:58
以下のCをJavaにすると、mallocの領域確保のところはどうやって
表すのですか??調べたらnewを使うってのが出たんですが、使い方が分らない
です。。

// 入力引数: depth : ディレクトリのビット長
// 戻り値 DIRECTORY : ディレクトリ
DIRECTORY *create_directory(int depth) {
DIRECTORY *directory ;
directory = (DIRECTORY *)malloc(sizeof(DIRECTORY) * (unsigned int)pow(2, depth)) ; // 2のべき乗倍の領域を確保
if (directory == NULL) {
fprintf(stderr, "領域確報に失敗しました\n\n") ;
exit(EXIT_FAILURE) ;
}
return directory;
}


766:デフォルトの名無しさん
08/07/01 00:00:43
アプレットを使って定義した範囲での座標の取得の仕方は分かるんですが、アプレット以外の時はどうすればいいのでしょうか?

画面左上から(x,y)の地点にマウスカーソルがある。みたいなプログラムを作りたいです。
(簡単に言うとペイントの右下に表示されるようなのの全画面ver)

このクラスを使えばできる。みたいな感じで良いので教えてください。


767:デフォルトの名無しさん
08/07/01 00:05:38
>>765
JavaとCは違うんだから無理なこと考えるな
何をするプログラムでそれを満たすような実装であることが重要なだけ
先にやさしいJavaでも読んでから出直せ

768:デフォルトの名無しさん
08/07/01 00:15:37
>>765
Cのことは忘れて1からjava勉強しろ。考え方が違うから、それをJavaに1:1マッピングできたところで意味がない。

769:>>761
08/07/01 00:30:32
>>764

すみません、POSTの間違いでした
POSTでも結果はかわりません

connect() 
は参考サイトもしてなかったのでしてないです
しても結果はかわりませんでした

770:>>761
08/07/01 00:32:59
swingでウィンドウつくってやってるのでアプレットではないです
もしかしてそこらへんで通信できないのでしょうか

771:デフォルトの名無しさん
08/07/01 01:15:46
>>765
コードの意味を考えようよ。
pow(2,depth)個のDIRECTORYの場所を用意しているだけでしょ?


772:デフォルトの名無しさん
08/07/01 01:25:12
>>765
その宿題はJavaで明示的にメモリを管理させようとしてるの?
それとも結果が同じならOKなの?

コテハンつけてても一々過去のレスさかのぼって見ないんだから
宿題なら宿題である事と出題者の意図をださなきゃ答え様がないよ

773:デフォルトの名無しさん
08/07/01 02:43:47
イテレータとコレクションに関する質問です.

クラスHogeCollectionはgetFoos()でiteratorを返すのですが,

HogeCollection h = new HogeCollection();
h.add( new Foo() );

for(Iterator<Foo> it = h.getFoos(); it.hasNext(); ){
 Foo f = it.next();
}

h.getFoo()の部分で
"型の安全性:型Iteratorの式は、未検査の型変換を使用して
Iterator<Foo>に準拠するようにする必要があります。"
という警告がでます.

かといって
HogeCollection<Foo> h = new HogeCollection<Foo>();
とすると
"型HogeCollectionは総称ではありません。引数<Foo>でパラメータ化できません。"
とエラーになります.

LinkedList<E>クラスのときはできました.

LinkedList<Integer> l = new LinkedList<Integer>();
l.add(1);
for (Iterator<Integer> it = l.iterator(); it.hasNext();)
 System.out.println(it.next());

HogeCollectionの場合,どうすれば正しい構文になるのでしょうか.
Eclipse, JavaSE6です.

774:デフォルトの名無しさん
08/07/01 06:48:49
>>773

簡単な順に、

getFoos()の戻りがIterator<Foo>になるよう実装する。
中身ができてるなら、受け取った後でキャストするだけでもいい。


または、

HogeCollection implements Itarable<Foo> として、実装する。
この場合、イテレタの取得はiterator()で。


または、

HogeCollectionを総称化して、
HogeCollection<E> implementes Itarable<E> として実装する。
この場合、宣言と生成時は
HogeCollection<Foo> h= new HogeCollection<Foo>();
イテレタ取得は iterator();



Collection<E>を実装しないなら、HogeCollectionという命名がすでに紛らわしい。

総称の連鎖は面倒みてるときりがないので、どっかでキャストで断ち切るのも大事。

775:デフォルトの名無しさん
08/07/01 08:42:59
>>774
アドバイスありがとうございます.
あと出しのような形になってしまい,大変申し訳ないです.

そのHogeCollectionやgetFoos()は外部の(オープンソース?というのかはわかりませんが)
jarファイルに入っていたAPIを使っていまして,私がソースを改変するのは避けたいです.

方法1,2,3もすべて外部jarのソースをいじる必要がありますよね?

>Collection<E>を実装しないなら、HogeCollectionという命名がすでに紛らわしい。

私もそう思います.iteratorを得るメソッドもiterator()になってないですし.

>>752さんのレス見て
@SuppressWarnings("unchecked")で警告は消せますが,根本的な解決になっていなくて,
少し気持ち悪いですが,あきらめるしかないでしょうか.


776:デフォルトの名無しさん
08/07/01 08:52:40
そーゆー手が出せない(出したくない)状況で妥協するための方法だから、
@SuppressWarningsで回避しとくのだ妥当かと。


777:デフォルトの名無しさん
08/07/01 11:20:50
Iterator<?> it = h.getFoos()

778:デフォルトの名無しさん
08/07/01 20:49:41
皆さんにお聞きしたいのですが、さっき始めてJavaをダウンロードして環境変数を変えようと思ったら、環境変数の欄がありませんでした。
どうやって変えるか教えてください。
OSはXPでJavaはバージョン6です。

779:デフォルトの名無しさん
08/07/01 20:56:22
>>778
path?
コントロールパネル→システム→環境変数
あれば編集、なければ新規で作れば良いよ。

780:デフォルトの名無しさん
08/07/01 21:03:07
>>779
アリガトウございました。
解決しました。

781:デフォルトの名無しさん
08/07/01 22:15:56
先日質問に来た者です。
フルスクリーンとウィンドウの切り替えはなんとなくできるようになったのですが
なんだかできたりできなかったりとイマイチ安定しません。
そこで助言をいただきたいと思いました。

URLリンク(rg550.hp.infoseek.co.jp)
325です。

よろしくお願いします。

782:デフォルトの名無しさん
08/07/01 22:45:37
>>781
とりあえず、
> private boolean isFullScreenMode=true;
と言うのは合ってるの?

783:デフォルトの名無しさん
08/07/01 23:17:18
>>782
最初をウィンドウにするかフルスクリーンにするかというところなので問題ないはずです。
切り替え自体ができたりできなかったりという状況なのでそれぞれの状態での動作は問題ない
はずなのですが・・・。

784:デフォルトの名無しさん
08/07/01 23:25:43
安定しないのは仕方ないような気もするな
グラフィックボードに依存しちゃう処理だろうし

個人的には・・・
起動時にパラメータでフルスクリーンかどうかで起動方法を変えるほうが良いと思う。
もしくは起動時に起動モードを選択するパネルだけ出して、その後メインフレームをどっちかのモードで起動かね。

785:デフォルトの名無しさん
08/07/01 23:30:29
安定させたいならJOGL+AWTが良い

786:デフォルトの名無しさん
08/07/01 23:39:03
JOGLって3Dで使うもんだーって聞いていたのでよくわからないのですが
OpenGLの利用なんてまだ先な気がするので起動時のパラメーターで切り替えるようにしようかと思います。
切り替え自体はオマケみたいなもんだとわりきってみます・・・

787:デフォルトの名無しさん
08/07/01 23:50:28
>>783
キーイベントとrun()に
synchronized(bufferStrategy){
をかけてやると安定するだろうか?


788:デフォルトの名無しさん
08/07/02 07:01:33
BigDecimalでの値を、小数点以下を切り上げる方法って
あるんでしょうか?
Math.ceilメソッドに当たるメソッドってないですよね。
BigDecimal bd = new BigDecimal(10000.1)

結果が10001.0になるようにしたいのですが・・・。
ご教示お願いいたします。


789:デフォルトの名無しさん
08/07/02 07:24:51
setScaleでモード指定して1で割れば?

790:デフォルトの名無しさん
08/07/02 10:00:42
>>788
bd.setScale(0, RoundingMode.CEILING)

791:デフォルトの名無しさん
08/07/02 11:09:06
ヒントありましたら教えてください。
Swing で JTable に RowSorter を設定してソートしてますが、
ソート対象の列のヘッダに「▲」「▼」というソート対象&方向を示す
マークが付くのを止めたいのです。
列幅がぎりぎりなのでマークが付くとヘッダ文字列が省略されてしまって…。
どうやったら出来るものなのか(プロパティ設定するだけとか
レンダラ作ってなにかメソッド無効化しろとか)情報ありましたら教えてください。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch