【初心者】Java質問・相談スレッド118【歓迎】at TECH
 【初心者】Java質問・相談スレッド118【歓迎】 - 暇つぶし2ch550:デフォルトの名無しさん
08/08/23 01:11:44
今日は大漁だwww(でも雑魚ばっかw)

551:デフォルトの名無しさん
08/08/23 01:40:12
>>544
Java関連の知識って、どこまでよ?
フレームワーク?イディオム?ライブラリの知識?言語仕様?
それともオブジェクト指向って何?って所まで消えるのか?
変数って何ですか?、とか、インターネットってどういう仕組み?とか
コンピュータって何ですか?まで行っちゃうとか
そこが分からないと答えようがない

552:デフォルトの名無しさん
08/08/23 01:53:34
コンピュータって何ですか?まで行っちゃったら
多分この業界で仕事しようと思わないとおもわれ

553:デフォルトの名無しさん
08/08/23 03:36:09
544は 魔法使い 

554:540
08/08/23 05:58:25
すみません。
ここには下流工程の人しかいないですよね
板違いでした

555:デフォルトの名無しさん
08/08/23 07:15:48
はいそうです。どうせどこで聞いても答えてもらえないでしょうが
もうここには決して来ないで下さい。

556:デフォルトの名無しさん
08/08/23 07:24:31
>>540
「付けたし付けたしで今まで頑張ってました」って感じだなw

557:デフォルトの名無しさん
08/08/23 07:29:59
スルー白

558:540
08/08/23 07:31:49
答えられないなら黙ってろって
数十万の顧客抱えてるから今すぐJavaに移行なんて無理だから、試してみただけだしw

559:デフォルトの名無しさん
08/08/23 07:39:53
SAXを用いてXML文書から文字列を取得する勉強をしています。
イベントハンドラで "<" を含む文字列を取得しようとしているのですが
"<" がタグ開始の文字列として認識されてしまいエラーが発生してしまいます。
どなたか解決法をご存知でしたらご教授下さい。お願いします。

560:デフォルトの名無しさん
08/08/23 07:42:38
>>558
では、顧問料いくら出せるんですか?

561:デフォルトの名無しさん
08/08/23 07:44:48
>>558
もう君の自慢話しはいいからwwさっさと消えてくれないか?

562:デフォルトの名無しさん
08/08/23 07:49:11
>Windows上のC++ or C#とした場合、サーバのJavaとの接続はできるのでしょうか?

質問が抽象的すぎてイマイチ分かり辛いんですけど、WindowsならMS製品で固めた方がいいですよ。

563:デフォルトの名無しさん
08/08/23 08:05:37
>>540みたいな生意気な奴は相手にすんなよ。その辺の雑魚と大して変わらないからw

564:デフォルトの名無しさん
08/08/23 08:19:13
540、血圧上がってますよ?

w書いててわらってもうたw

565:564
08/08/23 08:21:57
>>540みてみたけどたいしたことじゃないなw
HTTPも知らないのか540はw

566:540
08/08/23 08:25:46
う~ん、まじめにmixiとかAmazonとかじゃなくて、数秒遅れたら致命傷になるような
システム作ってる奴いるか?今のシステムに不満はないんだけど、OSがWindowsって
ところだけは、顧客は拒否反応示すからさ。
ロジックは簡単だから、Javaはよくしらないけど、定番のアプリケーションサーバ
とデータベースとMQでシステムをリプレイス出来たら、そういう顧客にも有効かと
思ってさ。

567:540
08/08/23 08:26:44
>>565
Webサービスだよね?あれだと遅すぎて駄目なんだわ

568:デフォルトの名無しさん
08/08/23 08:27:29
彼は病院にお帰りなったそうですOrrz

569:デフォルトの名無しさん
08/08/23 08:41:53
>>566
それならwindows一筋で頑張ってください

570:970
08/08/23 08:43:59
>>567
そしたらプロトコルなに使ってるの?


571:デフォルトの名無しさん
08/08/23 08:48:27
パフォーマンスを重視したいのか改造コストを低く抑えたいのかわからんな。
クライアントはどのくらいいじっていいのよ?
いっそDCOM-CORBAブリッジでも使うかい。

572:540
08/08/23 08:51:26
>>570
登りは.NetRemotingで下り(配信)はTCP/UDP直だよ
昔はDCOMだったけど

それにしても、Webサービスは遅すぎる。発注だそうと思ったときにはもう
相場変わってるっちゅうの
LANで計測しても、独自プロトコルの10倍以上通信してるからな

573:970
08/08/23 08:52:25
ちょっと見てみたけどクライアントとjavaで通信できそうな気が。


574:デフォルトの名無しさん
08/08/23 08:53:01
全部TCP/UDPにしたらいいと思うよ。

575:970
08/08/23 08:54:29
独自プロトコルって、危ない気がするけどいいの?
なんか大切なデータ送ってそうだけど。


576:540
08/08/23 08:54:43
>>571
ありがとうございます。
開発コストは考えてません。営業がそれなりの金額で売ってきてくれるので。
重視してるのは、クライアント(C#)-サーバ(Javaサーブレット)で今までの
パフォーマンスが出るのかですね。
で、それにともなってJavaの混沌としているアプリケーションサーバとデータベース
とその他諸々からどれを選択していいのかと

577:デフォルトの名無しさん
08/08/23 09:02:00
クライアントサーバー間はLAN/WANの類なのかインターネットなのか、
インターネットだとCOM+やCORBAやRMI(IIOP)はプロトコル的にきつい気もするが。

578:デフォルトの名無しさん
08/08/23 09:23:32
HTTPが遅いってどゆこと、通信って一往復だよね?
毎回コネクション張るのが問題?


579:デフォルトの名無しさん
08/08/23 09:27:17
>>544
マ板でやれ

580:デフォルトの名無しさん
08/08/23 09:55:16
そらHTTP自体がオーバーヘッド比較的でかいし、
その上でWebサービスとか使えば遅いわな。


581:デフォルトの名無しさん
08/08/23 10:13:10
>>580
うーん。わかんね。ヘッダーとかがあるからってこと?
自分でTCPで通信するのとそんなに大差あるのかな?
HTTPサーバーが遅いってこと?
それなら自分で作ったHTTPサーバーが例えばIISのパフォーマンスを
超えられるの?

582:デフォルトの名無しさん
08/08/23 10:19:30
>>559
そもそもXML文書のタグ以外に<>を含めてはダメだろ。
&lt;か&gt;に書き換えるべきじゃね。

583:デフォルトの名無しさん
08/08/23 10:25:07
>>566
>数秒遅れたら致命傷
まず初めに専用回線を引くべきじゃね?
OS関係無いと思うし、そんな性能を求められるところってほいほいリプレイスしない方がいいと思う。

584:559
08/08/23 10:42:44
>>582
解決できました。ありがとうございます。助かりました。

585:デフォルトの名無しさん
08/08/23 10:43:26
540はろくに知識がないため大失敗する悪寒

586:デフォルトの名無しさん
08/08/23 11:06:29
>>585
多分、実際は無職なので問題ない。

587:デフォルトの名無しさん
08/08/23 12:03:30
OutOfMemoryを捕まえたいんですけど、
GUIの部品使うと別スレッドが色々たってるみたいで
try~catch で拾えないんですけど、
どうにもならないんですかね?

588:デフォルトの名無しさん
08/08/23 12:57:48
>>587
Thread#setDefaultUncaughtExceptionHandler
Thread#setUncaughtExceptionHandler
で捕まえるとか。

589:587
08/08/23 13:50:14
おお、こういうのあるんですね。
ありがとうございました。

590:デフォルトの名無しさん
08/08/23 14:28:44
CLDCにもThread#setDefaultUncaughtExceptionHandler
Thread#setUncaughtExceptionHandler
がほしいぜ。

591:デフォルトの名無しさん
08/08/23 14:33:41
javaの暗号・復号化でJCEなるものがあることがわかったのですが、
ファイルを読み込みバイト配列で一括変換しているせいかメモリ不足に陥ってしまいます。
元ファイルをInputStreamに出力ファイルをOutputStreamにと
ダイレクトに暗号化する方法ってないのでしょうか。
8kbyteといった固定単位でファイルを読み込み、暗号化して暗号化後のサイズとデータを書き込みことで、メモリ不足を引き起こさず暗号・復号化は出来そうですが・・


592:591
08/08/23 14:54:36
自己解決しました
FileInputStreamにCipherInputStreamをラップしたら出来ました。
m(__)m

593:デフォルトの名無しさん
08/08/23 16:06:43
だから>>540はアホだって言っておいただろ。見て分からなかったんなら、お前ら鈍いな。
TCP/UDPってなんだよwボロでてんだよww

それもTCP遅いって、確かにTCPとUDPを上回る通信はあるけど、
こいつはMS一筋でよっぽど世の中知らない奴だと思わない?

お前はもう来るな

594:デフォルトの名無しさん
08/08/23 16:34:06
うさんくさい奴だったな

595:デフォルトの名無しさん
08/08/23 16:40:47
WebアプリやTCPを使って発注すると、(相場が変わるとか何とかの理由で)遅いって、どういう業界というかどの職種でそんなことが起こるんですか?

596:デフォルトの名無しさん
08/08/23 17:07:43

でも最近の証券会社やFXの会社の発注少し遅いよね

597:デフォルトの名無しさん
08/08/23 18:33:25
そんなコンマ1秒を争う世界とか限界に挑戦するような世界はwindowsでやってくれw

598:デフォルトの名無しさん
08/08/23 18:52:28
スレリンク(tech板)l50
現世代Java。
話題としてこっちじゃないか?

599:デフォルトの名無しさん
08/08/23 18:59:29
CABOSをダウンロードしたのですが開いたら
「JAVAソフトウェアがロードできません」と出ました
JAVAのサイトに行ってダウンロードすると「JAVAのバージョン確認」と出るだけで
何も状況が変わりません
誰かいいアドバイスをください


600:デフォルトの名無しさん
08/08/23 19:06:00
tmp == "("
tmp.charAt(0)=="(".charAt(0)
tmp.length()=="(".length()
が上からfalse.true.trueとなるんだがバグかなんか?

601:デフォルトの名無しさん
08/08/23 19:08:38
ん?
正しい動作だわ、そりゃ
詳しく知りたきゃ、equalsでググれ

602:デフォルトの名無しさん
08/08/23 19:08:49
激安ノートパソコンでJAVA勉強できますか?

603:599
08/08/23 19:13:45
HELP

604:デフォルトの名無しさん
08/08/23 19:18:06
今年最大の夏を感じるな

605:デフォルトの名無しさん
08/08/23 19:18:21
520=599

606:デフォルトの名無しさん
08/08/23 19:19:45
>>602
JDKの動作要件を満たしていればできる。

607:デフォルトの名無しさん
08/08/23 19:20:24
>>602
高性能PCじゃないとeclipse動かないよ

608:デフォルトの名無しさん
08/08/23 19:50:59
>>600
仕事で1年間Javaを使って開発してる奴にこの前
if( strHoge == "true" ) で 同じにならないんだけど
って質問来た時はマジで、はぁぁお前1年間Java使っといてそれはないだろう!って思ったよ。
それ以降、漏れはそいつのこなす仕事は何一つ信用しなくなったよ・・orz
1年間Java使ってましたっていう自己申告じゃなく、ホントに1年間開発してたんだよ・・どんなソース書いていたんだか・・

609:デフォルトの名無しさん
08/08/23 20:29:19
HTTPはパフォーマンス(応答性)優先のプロトコルじゃないからな。
あまり細かいこと考えずに作ると、
プロキシの検索が走ったり
Expect-100で一往復待ったり
設定によってはKeepAlive使わずに毎回接続したり
その上でWebサービスとなると
SOAPエンコードでかなりサイズが膨れ上がり
XMLのシリアライズ、デシリアライズ等々割と重い処理が入る


610:デフォルトの名無しさん
08/08/23 21:07:22
あなたのそれは、そんなに凄いアプリ(システム)なんですか?

611:デフォルトの名無しさん
08/08/23 21:11:16
もう相手にするなよ。どうせ何も作れずに知ったか知識並べてるようなニーとだし、そういうやつは2chによくいるだろw
最近の夏だと大ほらふきが出没しているから、たぶんそいつだろうw
それと嘘はだめだ。一生信用されない。

612:デフォルトの名無しさん
08/08/23 21:15:10
>>580>>609だが
俺は単に横槍っていうかHTTPとWebサービスの一般的な話してるだけで
元のやつととは全然関係ないんだが、それでもこれは俺が突っ込まれてるのか??


613:デフォルトの名無しさん
08/08/23 21:23:26
それじゃ、そんなに凄いシステムなんですか?

614:デフォルトの名無しさん
08/08/23 21:30:32
意味が分かりません><


615:デフォルトの名無しさん
08/08/23 21:47:33
>>551
コンピュータって何ですかレベルだとしたらどうでしょう?
無理でしょうか?
パソコンを使って遊ぶことが出来る(YouTube見たり、共有ソフトでファイル集めたり、
集めたファイルを扱ったり・・・でもフォルダなら分るけどディレクトリだと難しく感じるレベル)けど、
仕組みはさっぱり分らないというレベル。
HTTPってそう言えば何の略?みたいなレベルだとして。
情報系の大学の学部を出てるわけでも、専門学校を出てるわけでもなく、
普通の私立の文科系を卒業してる程度の人間だと仮定すると絶望的???

616:デフォルトの名無しさん
08/08/23 22:07:09
「JAVAプログラマの新入社員」程度なら無理じゃないでしょ
ゼロから初めて半年でも

617:デフォルトの名無しさん
08/08/23 22:11:11
>>615
まあ、あくまで一例だが、
知っている情報系の中小企業だと、Excelしか使ったことの無い文系の新卒でも、3ヶ月で基本情報処理技術者が取れるように訓練される。
無論、当人の努力も大事だし、実際の試験で落第したなら、合格するまで昇給をストップされる。


618:デフォルトの名無しさん
08/08/23 22:44:48
IBMへ行った先輩の話だと、文系も理系もなく新人研修でしごかれるらしいな
C言語は2日で終わってC++を1週間、Java、Web、DBと容赦なく進むスケジュール表を事前に渡されるので
研修開始までに独習して一通りマスターしておくのが普通らしいな

619:デフォルトの名無しさん
08/08/23 22:45:31
String#equalsはjavaで真っ先に覚える部類だろ。
基本情報処理技術者って落ちる奴居るのか?

620:デフォルトの名無しさん
08/08/23 22:51:41
リフレクションに関する質問です。

interface Hoge {}
class HogeImpl implements Hoge{}

現在Hoge.classのみがあって(Hogeのインスタンスは存在しない)、HogeImplがHogeを継承しているかどうかを調べる方法はあるのでしょうか?
Hogeのインスタンスが存在しているのであれば
Hoge.class.isInstance(hogeImplInstance);
で確認できるのですが、Classのみでの確認手段が分かりませんでした。
newInstanceでインスタンス作って確認するしかないのでしょうか?

621:デフォルトの名無しさん
08/08/23 23:00:00
今ちょっと見ただけだけどisAssignableFromとかあるじゃん


622:デフォルトの名無しさん
08/08/23 23:00:06
HogeImpl.class.getInterfaces

てかClassのJavaDoc読んだ?
あと、それを確認しなければならない状態があるのかよ。
Hoge hoge = new HogeImpl();
と書けばコンパイルエラーになるだろ、implしてなければ

623:デフォルトの名無しさん
08/08/23 23:00:34
>>620
Class#isAssignableFrom(Class)

624:デフォルトの名無しさん
08/08/23 23:06:25
>>619
統計発表されてるだろ

625:デフォルトの名無しさん
08/08/23 23:11:03
あったんですね。迅速な回答ありがとうございます。

>>622
一通り読んだつもりだったのですが読み落としてました。
本当に申し訳ないです。

626:デフォルトの名無しさん
08/08/24 00:05:43
>>618
C言語2日って、それならやらない方がマシじゃねかw
こんな連中しかいないからWacsなんていう糞フレームワークしか作れないんだな(ワラ

627:デフォルトの名無しさん
08/08/24 00:14:21
>C言語は2日で終わってC++を1週間
どう考えても無謀だしな。

628:デフォルトの名無しさん
08/08/24 00:22:57
いいかげん嘘つきの相手なんかすん

629:デフォルトの名無しさん
08/08/24 01:50:13
以下のURLのような、図をプログラムで解析するようなプログラミングの問題で
URLリンク(www.i.u-tokyo.ac.jp)
(沢山ある、それぞれの頂点が辺で結ばれていたり、いなかったりする)
私は、2次元配列を用いて、cell[結合元の番号][結合先の番号]=0or1のようにして表して解こうとしたのですが、
なかなかうまくいきません。このような問題の本流というか、良いやり方はどのようなものでしょうか?

また、上記urlの問題の最後の方にある頂点から別の頂点への距離を求めるものがあるのですが、
私には遺伝的アルゴリズムを用いた手法しか思い浮かびません。しかし、大学院入試のプログラミング問題程度で
そのようなものが要求されるのは考えにくいので、私が何か見落としている気がします。
問題の解釈すら違うかもしれません。どのようなレスでもいいので、お願い致します。



630:デフォルトの名無しさん
08/08/24 02:18:34
>>629
すまん。
まったくわからん。
ただ、おれにわかるのはスレ違いということくらい。

631:デフォルトの名無しさん
08/08/24 02:32:43
良いやり方というのは特にありません
たぶんお勉強にこだわりすぎなんじゃないですか?

632:デフォルトの名無しさん
08/08/24 02:36:29
>>629
Q2-1はつながってる先を順に調べて、ツリー状に調べてゆくってことかな?

Q4は、
辺を追加していく順序に就いて悩んでいるのだろうけど、
冒頭に、「N は変えるが同じ頂点対の並びを利用する. その場合, N 番目以降の頂点対は無視する.」ってあるから、
G3は単にファイル上の登場順にN番目までの辺で出来たグラフ。
残りもその順で追加して行くだけでは?

633:デフォルトの名無しさん
08/08/24 03:21:50
IBM Javaで暗号化してSun Javaで復号化すると
IBM Javaのクラスが見つかりませんとエラーが発生しました。
 java.lang.ClassNotFoundException: com.ibm.crypto.provider.DESKey

暗号化キーは、シリアライズ化してあったものをObjectInputStreamでよみこもうとした時に上記エラーが発生しました。
回避策わかる方いますでしょうかm(__)m

634:633
08/08/24 03:58:06
Objectをシリアライズせず、キーのデータのみ受け渡しすれば
異なるVM間で復号化できましたm(__)m

635:デフォルトの名無しさん
08/08/24 04:01:35
VM実装依存のクラスつかってりゃClassNotFoundExceptionでるだろ。馬鹿か?

636:デフォルトの名無しさん
08/08/24 11:27:14
RMIのリモートオブジェクトに対して、new Socket().isConnected()に当たるようなコネクションの確認はできるでしょうか?

637:デフォルトの名無しさん
08/08/24 17:21:29
javac <ファイル名>.java は出来たのですが、
その次にファイルを実行出来ません。
どうすればいいでしょうか?

638:デフォルトの名無しさん
08/08/24 17:41:14
URLリンク(wisdom.sakura.ne.jp)
ここでどぞ

639:デフォルトの名無しさん
08/08/24 18:53:41
JavaEEのパフォーマンスチューニングの相談もここでOKですか?

640:デフォルトの名無しさん
08/08/24 19:17:26
同じバージョンのJREをつんだ違うOSで、同じbeanをシリアライズしたバイトデータの中身はまったく同じなのでしょうか?

641:デフォルトの名無しさん
08/08/24 19:25:32
バージョン違えばそりゃ違うんじゃね?

642:デフォルトの名無しさん
08/08/24 23:39:58
Javaの勉強を最近始めた超初心者です。
勉強してる中でパッケージの内容からどうしても先に勧めません。
あるプログラムの頭にpackage パッケージ名;と打ち込んだのですが、
"予想されたパッケージと一致しません"と言われうまく起動してくれません。
どういった名前を付ければ予想されたパッケージになるのでしょうか。。
教えてください。。

643:デフォルトの名無しさん
08/08/25 00:15:44
>>642
パッケージが「package foo;」だったら、そのソースファイルはfooディ
レクトリの中にある必要がある、のが原因かもしれない。


644:デフォルトの名無しさん
08/08/25 03:22:20
画像をFlowLayoutパネルに流したいのですが
FlowPanel.add(Image)は対応していないのでImageIconを作って画像を入れようと色々やっているのですが上手く行きません。

Toolkit tk = Toolkit.getDefaultToolkit();
Image img = tk.getImage("C:\\~~.jpg");
ImageIcon icon = new ImageIcon(img);
JLabel label = new JLabel(icon);
こんな感じでラベルをつくってレイアウトに流し込んでいるのですが・・・


645:デフォルトの名無しさん
08/08/25 04:17:07
>>644
ImageIconには画像ファイルのパスを引数にとるコンストラクタがあるから
ファイルから画像を読み込んでJLabelのアイコンに設定するならImageを作らなくても
JLabel label = new JLabel(new ImageIcon("C:\\~~.jpg"));
でいけるよ

646:デフォルトの名無しさん
08/08/25 16:07:06
もう頭パニック助けて・・・
下記のコードでdをcのListに値を入れるのってどうやればいいんですか?

import java.util.*;
public class bbb{
public static void main(String [] args){
List <aaa> c = null;
aaa d = null;
d.setNo(1);
d.setName("test");
c.add(d);
System.out.println(c.get(0).getNo());
System.out.println(c.get(0).getName());
}
}
class aaa {
int no;
String name;
public aaa(){
}
public int getNo(){ return no;}
public void setNo(int newNo){no = newNo;}
public String getName(){return name;}
public void setName(String newName){ name = newName;}
}


647:デフォルトの名無しさん
08/08/25 16:14:35
>>646
List <aaa> c = new ArrayList<aaa>();
aaa d = new aaa();

648:デフォルトの名無しさん
08/08/25 16:28:06
>>647
new 試したけどいまいち書き方がわかりませんでした。
ありがとうございました。

649:デフォルトの名無しさん
08/08/25 16:38:27
現在Javaで動画を扱おうと試行錯誤していますが、いまいちできるかどうかもわからない状態です。
機能的には、デスクトップをプログラムでキャプチャしてそのままAVIなどの動画に変換して出力したいのですが、
Java言語ではどのようにすれば可能なんでしょうか?

650:デフォルトの名無しさん
08/08/25 16:40:49
>>649
Vectorから適当なスクリーンキャプチャをダウンロード・インストールして、
Javaサイドから定期的に呼び出す。
というのではいけませんか?

651:デフォルトの名無しさん
08/08/25 16:45:13
JAIについて質問です。
JAI入門書のサンプルプログラムをコンパイルすると下のようなエラーが出ます。

パッケージ javax.media.jai は存在しません。

JAIもJDKのPathの設定のようなものがいるのでしょうか?

652:デフォルトの名無しさん
08/08/25 16:47:47
>>651
要るんだと思いますよ。

653:デフォルトの名無しさん
08/08/25 17:28:36
>>651ですが
どう設定すればいいか教えてください。おねがいします


654:デフォルトの名無しさん
08/08/25 17:44:14
>>653
入門書なら設定の仕方とかは書いていると思いますよ。
もし書いていないならその本は捨てても構わないと思いますよ。

655:デフォルトの名無しさん
08/08/25 19:36:02
オプションパッケージはインスコするかバンドルするかってちゃんとjavadocに書いてあるだろうがjavadoc嫁。
それにオプションパッケージのreadmeにも書いてある。

JMFのインストーラ版なら決め打ちで勝手にパス通すが。

656:デフォルトの名無しさん
08/08/25 22:04:55
一週間くらい前に、デザインパターン入門の本を教えてくれた人、マジありがとうございます。
いい本ですね。

657:デフォルトの名無しさん
08/08/25 22:24:13
どのあたりがいい本なのか書かないと

658:デフォルトの名無しさん
08/08/25 22:31:38
そもそもどの本だ?

659:デフォルトの名無しさん
08/08/25 22:32:54
文章が読みやすい
例が簡潔でわかりやすい
細かいフォローもばっちり
デザインパターンをそれぞれ関係づけてあって覚えやすい

基礎から実践に近づくために必要な知識が効率的に吸収できます。

660:デフォルトの名無しさん
08/08/25 22:42:54
教えてくれた人にだけわかればいいから質問してくんなよ。ケッ。

661:デフォルトの名無しさん
08/08/26 00:16:44
その本を超えるようなホームページを作ってください!

662:泣きそうです
08/08/26 13:35:45
下記のXMLで、key1とval1を出力したいのですが、
取得の仕方がイマイチ分かりません。
いろいろ試したのですが、コンパイルとかエラーになって・・・
どなたか、取得の仕方を教えて下さい。
-----------[testXml.xml]------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<config>
 <ptn1_data1>
  <element key="a1" val="a01"/>
  <element key="a2" val="a02"/>
 </ptn1_data1>
 <ptn2_data2>
  <element key="x1" val="x01"/>
  <element key="x2" val="x02"/>
 </ptn2_data2>
</config>
--------------------------------------------------------


663:泣きそう
08/08/26 13:47:24
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;

class testXml
{
  public static void main(String args[]) throws Exception
  {
   DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
   DocumentBuilder db = dbf.newDocumentBuilder();
   Document doc = db.parse(new FileInputStream("testXml.xml"));
   Element root = doc.getDocumentElement();
   walk(root);
  }



664:泣きそう
08/08/26 13:49:43
  public static void walk(Node n)
  {
   for(Node ch = n.getFirstChild();
        ch != null;
        ch = ch.getNextSibling()){

     if(ch.getNodeType() == Node.ELEMENT_NODE){
      System.out.println("ELEMENT_NODE:"+ch.getNodeName());
      walk(ch);
     }
     else if(ch.getNodeType() == Node.TEXT_NODE && ch.getNodeValue().trim().length() !=
0){
      System.out.println("  TEXT_NODE:"+ch.getNodeValue());
     } else {
      System.out.println( ・・・・key1を出力したいです);
      System.out.println( ・・・・valを出力したいです);
     }
   }
  }
}



665:泣きそう
08/08/26 13:50:39
長く書いてしまってごめんなさい。
けど、どなたか教えて下さい。
お願いします

666:デフォルトの名無しさん
08/08/26 14:18:49
>>662

Document doc = db.parse(in);
NodeList l = doc.getElementsByTagName("element");
if (null == l) {
  System.out.println("タグ element はありません。");
} else {
  System.out.printf("タグ element は %d 個あります。\n", l.getLength());
  for (int i = 0; i < l.getLength(); ++i) {
    NamedNodeMap n = l.item(i).getAttributes();
    System.out.printf("\t[key=%s],[val=%s]\n"
        , n.getNamedItem("key").getNodeValue()
        , n.getNamedItem("val").getNodeValue());
  }
}


667:デフォルトの名無しさん
08/08/26 14:43:34
それ以前にxmlの設計が腐ってる。
xmlスレ行って出直して来い。

668:デフォルトの名無しさん
08/08/26 15:30:04
>662
コンパイルエラー
URLリンク(javafaq.jp)

669:デフォルトの名無しさん
08/08/27 00:15:27
>>662
普通はこんなかんじ。
indexはいらんかも。

<config>
 <ptn_data index="1">

 </ptn_data>
 <ptn_data index="2">

 </ptn_data>
</config>

670:デフォルトの名無しさん
08/08/27 07:37:12
すいませんが教えてください。
自分で作った実行ファイルがあります(文字コードMS932)→Test.class
これをbatファイル(文字コードEUC-JP)で実行します。
batファイルの中身は
java Test 日本語パラメータ
で、batファイル自体は文字コードEUC-JPです。
この場合引数で受け取った"日本語パラメータ"という文字列を
プログラム内ではMS932として、文字化けせず"日本語パラメータ"として処理を行いたいのですが
どうすればいいでしょうか?

まず、batファイルをダンプして"日本語パラメータ"という文字列を見た場合と
args[0]をarg[0].getBytes()してダンプ出力した結果が違うのです。
ためしにarg[0].getBytes("EUC-JP")してもこれもまた上とはまた違った結果になります。
もう、引数で渡されてきた時点でデータが壊れているのでしょうか?

671:デフォルトの名無しさん
08/08/27 07:59:53
>>670
コマンドラインはプラットフォームのデフォルトエンコーディングで扱
われると思う。batファイルとか書いてあるってことはWindowsかね。で
あれば、コマンドラインはms932で書かないと化ける。

ところで「実行ファイルの文字コードがms932」ってどういう意味?



672:デフォルトの名無しさん
08/08/27 08:02:34
>>670
echo 日本語パラメータ

だけの内容のbatファイルをEUC-JPで作成して試してみ?
たぶん引数の前、コマンドラインシェルが解釈した段階で化けてると思うぞ。

673:デフォルトの名無しさん
08/08/27 11:33:28
一旦バイトコードに変換してから処理したいんですが
文字化けを起こして出来ません。

PrintWriter out = response.getWriter();
//String val = request.getParameter("kanji");
//byte[] byteData = val.getBytes("Shift_JIS");
//val = new String(byteData, "Shift_JIS");
out.print(val);

コメントアウトを外すと文字化けを起こします。
表示先は文字コードはShift_JISであっている筈なんですが・・・
単純に両方Shift_JISをピンポイントで指定してるのに
なぜ化けるのでしょうか?バイトコードへ変換して戻す処理の中で何かデータの欠損でも起きているのでしょうか?


674:デフォルトの名無しさん
08/08/27 12:30:06
SJIS外の文字は入ってないの?

675:デフォルトの名無しさん
08/08/27 12:43:56
>673
1. response の PrintWriterオブジェクトの文字コードは何なのかしら?
2. request は正しい文字コードで入力を読み取ってるかしら?
3. 674 のように Shift_JIS外の文字は入ってないかしら?
4. response で出力した先の文字コードは 1 と同じかしら?

676:デフォルトの名無しさん
08/08/27 15:35:15
行き詰まっているので質問させて下さい。
データベースに日付を管理するresettime・・・というテーブルがあります。
そのテーブルにはtimeというdate型のカラムがあり2008-08-27という値が格納されています。
んでソースです。
public void checkDate() {
Date now = new Date();//今日の日付
String sqlIndex = "select * from resettime";
try {
db.connect();//データベースに接続する
ResultSet rs = db.executeQuery(sqlIndex);//Statementのと同じ機能
rs.next();
if(now.after(rs.getDate("time")//今日の日付のはず)) { //※問題の箇所
String[] sql = new String[2];
sql[0] = "delete from popularmovieinfunnymoviechannel";
sql[1] = "update resettimeinfunnymoviechannel set time = '"+now+"'";
db.addBatch(sql);
db.executeBatch();//Statementのと同じ機能
}
}
catch(SQLException e) {

}
finally {
db.disConnect();//データベースを切断する
}
}
問題の箇所がtrueとなってしまい上手くいきません。バグっぽい箇所が在ればご教授下さい
jreは6_7です。



677:デフォルトの名無しさん
08/08/27 15:38:43
nowは今日の日付に加えて現在の時刻も入ってるはず
そのDBのdate型が時刻を格納してないなら00:00:00になるはず
今日の現在時刻と今日の00:00:00を比較したらどうなるかというと・・・

678:デフォルトの名無しさん
08/08/27 15:43:11
RMiの呼ばれる実装クラスにて、要求先のIPアドレスを取得する方法はあるでしょうか?
引数で情報を渡すはなしでお願いします。

679:デフォルトの名無しさん
08/08/27 15:51:05
>>673
request.setCharacterEncodingでSHIFT_JISを有効にする。
あと、Tomcat5.0以降のバージョンでGetの処理すると、
デフォルトの動作でsetCharacterEncodingが無効になるから注意。
server.xmlの変更で対処して。そのあたりはググれば出てくる。

680:デフォルトの名無しさん
08/08/27 15:55:34
>>677 nowをjava.sql.Date()のインスタンスにしてもtrueになるんですけど・・・
jre変えてみまッス。


681:デフォルトの名無しさん
08/08/27 16:05:40
>>680
java.sql.Dateも一緒
Javadoc見てみ、時間をミリ秒で表すって書いてある
URLリンク(java.sun.com)

682:デフォルトの名無しさん
08/08/27 16:20:08
結局データーベースから取ったDateとDateインスタンスは比較しても無駄って事ですか?

683:デフォルトの名無しさん
08/08/27 16:24:51
>>682
java より先に小学生レベルの時刻の概念から学んだ方がいい

684:デフォルトの名無しさん
08/08/27 16:28:50
>683 あいそうします。ありがとうございました。

685:デフォルトの名無しさん
08/08/27 16:55:15
時間・時刻を比較したいのか

686:デフォルトの名無しさん
08/08/27 17:11:31
afterとbeforeの動作を誤解してるとかじゃないよね?

nowが現在の時刻なんだから、それよりもafterな時刻なんて
存在しない……だから、”問題の箇所”は常にtrueになって当たり前。

687:686
08/08/27 17:13:43
「それよりもafter」って変だったorz

現在の時刻よりも、未来の時刻は存在しないから
”問題の箇所”は常にtrueって言いたかった……

688:デフォルトの名無しさん
08/08/27 21:01:43
>>686 もしjava.sql.Date型同士のインスタンスを比較するとして両方のインスタンスが
同年同一日ならafterでもfalseが帰る。

689:680
08/08/27 21:20:11
>681 nowの方の日にちを調整することで解決させました。
このまま行ってたら大きな誤解を持ったまま行くところでした。thx。

690:デフォルトの名無しさん
08/08/27 21:30:00
Component component = new JScrollPane(new JPanel());
JTabbedPane jtp = new JTabbedPane();
jtp.addTab(component);

のように書いた時に、後々componentを取得する方法はあるで
しょうか。
ご教授お願いします。

691:690
08/08/27 21:40:35
すみません。690ですが
取得したいのはcomponentではなくて、
スクロールペインの中のJPanelでした。

宜しくお願いします。

692:デフォルトの名無しさん
08/08/27 22:16:21
Strtusについて質問です。

public void setGoods(ArrayList<String> goods){
this.goods = goods;}
public void setNumber(ArrayList<String> number){
this.number = number;}

このようにしてBeanに格納したArrayListを、

<logic:iterate id="name" name="Bean">
<bean:write name="name" property="number" />:
<bean:write name="name" property="goods" /><br>
</logic:iterate>

上記のJSPで出力しようとしてもエラーが出ます。

<logic:iterate id="name" name="Bean" property="number">
<bean:write name="name" />
</logic:iterate>
<logic:iterate id="name" name="Bean" property="goods">
<bean:write name="name" />
</logic:iterate>

こういった書式だと値の表示は可能ですが、当然出力位置が変ってしまいます。

number1:goods1
number2:goods2
number3:goods3

最終的にこういう表示をさせるにはどういった書き方をすればいいでしょうか。


693:デフォルトの名無しさん
08/08/27 23:17:58
>>691
((JScrollPane)component).getViewport().getView()

694:デフォルトの名無しさん
08/08/28 01:24:16
>>693

ありがとうございます。
お陰で無事解決しました。

695:688
08/08/28 09:17:37
ごめ、嘘ブッコイタ。

696:デフォルトの名無しさん
08/08/28 10:11:00
>>678
java.rmi.server.RemoteServer.getClientHost() でガマンしろ。

697:デフォルトの名無しさん
08/08/28 11:33:18
まったくの初心者です。よろしくお願いします。

Javaの勉強をしようと思い
「JDK 6 Update 7」をダウンロードしてインストールしてみました。
環境変数を設定した後に、バージョンが正しいか確認してみたのですが、

C:\>java -version
java version "1.4.2_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)

と表示さてれました。
ただし、

C:\WINDOWS\system32>java -version
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)

だと、きちんと「JDK 6 Update 7」がインストールされているぽいのですが・・・

これってちゃんとインストールされた状態になったのでしょうか?

698:デフォルトの名無しさん
08/08/28 11:36:50
すでにインストールされてたっぽい JRE 1.4.2_03 は特に使わないなら削除してしまえ
あと javac -version も

699:デフォルトの名無しさん
08/08/28 11:45:50
>>698
レスありがとうございます。

C:\>javac -version
javac version "1.6.0_07"

C:\WINDOWS\system32>javac -version
javac version "1.6.0_07"

でした。

1.4.2_3の削除についてですが、

プログラムの追加と削除に無く、
レジストリ内も検索してみたのですがそれらしいのが無いため

どこから削除すればよいでしょうか?


700:692
08/08/28 11:54:23
自己解決しました。
ありがとうございました。

701:デフォルトの名無しさん
08/08/28 11:55:18
>>699
環境変数の PATH を確認する。
恐らく "C:\jdk1.4.2_03\bin" みたいなのが含まれているはず。

702:デフォルトの名無しさん
08/08/28 15:08:43
デザインパターンの本を買った人へ。
貴方のほらふきの癖を治せば、少しは友達が増えると思います。

703:デフォルトの名無しさん
08/08/28 16:32:37
javaでゲームのようなものを作っているのですが、(GUIです)質問させていただきます。
ゲームを起動すると
ログイン画面→どのゲームを選ぶかの選択画面→ゲームの画面
と画面を入れ替えていきたいのですが、どうやって処理すればいいでしょうか?
やはりカードレイアウトを使うしかないのでしょうか?画面の切り替えには・・・


704:デフォルトの名無しさん
08/08/28 16:50:41
質問させてください。
while文を回して配列に格納した多くのデータを、
終了後にファイルに出力するにはどうするのが一番効率的でしょうか?
ファイルの入出力がよくわからなくて…よろしくお願いします。

705:デフォルトの名無しさん
08/08/28 17:06:04
Ubuntuなら
update-alternativeっていうコマンドでやる。
PATHには入ってないんじゃないかな?
javaのパスを直接指定する人も珍しいだろうし。
とりあえず気休めだが、
JAVA_HOMEをいじっておけ。

706:デフォルトの名無しさん
08/08/28 17:58:51
>>704
効率なんか気にせず作ってみる
だいたい気にするほど遅くないことが多い
実際に気になるほど遅かったらそのときに訊くといい

707:デフォルトの名無しさん
08/08/28 18:01:26
>>703
古いコンポーネントをremoveして新しいコンポーネントをaddすることもできるよ

708:704
08/08/28 18:50:07
>>706
ありがとうございます。とりあえず作ってみます。

709:デフォルトの名無しさん
08/08/28 19:30:56
>>707
ありがとうございます。removeで取り除くことを忘れてました。。
カードレイアウトとどちらが良いんでしょう・・・

710:デフォルトの名無しさん
08/08/28 19:32:27
>>707
ありがとうございます。removeで取り除くことを忘れてました。。
カードレイアウトとどちらが良いんでしょう・・・カードは重くなりそうな印象で

711:デフォルトの名無しさん
08/08/28 19:35:01
二重・・・すいませんov2

712:デフォルトの名無しさん
08/08/28 23:13:00
>>710
印象で選択するのは危険。
実測してみればいい。

713:デフォルトの名無しさん
08/08/28 23:39:43
他のスレで話題に上がってて気になったんで質問。
Javaでチャット機能作る場合は一人に1スレッド設計しか無理なの?
サーバからのメッセージも随時受け取らないとダメだし

714:デフォルトの名無しさん
08/08/29 00:06:32
一人の何に1スレッドを当てるの?

715:デフォルトの名無しさん
08/08/29 00:55:57
スレッドは常にwhileで受信の準備をしてるんじゃない?

716:デフォルトの名無しさん
08/08/29 01:31:12
非同期

717:デフォルトの名無しさん
08/08/29 01:43:05
genericsについて質問です。
Parentクラスを継承するChildクラスを定義して下記コードを記述しました。

List<? extends Parent> list = new ArrayList<Child>();
list.add(new Parent());

上記コードでコンパイルエラーが出ます。
型を見るとadd()の引数がnullになってました。

きっとadd()しちゃいけないから引数の型がnullなんでしょうけど、
理由がよくわかりません。教えてくだしあ。

718:717
08/08/29 01:53:34
すんまそん。コードの2行目は

list.add(new Parent());
じゃなくて
list.add(new Child());
でした。どっちにしろ結果は同じなんですけどね。

719:デフォルトの名無しさん
08/08/29 02:02:59
>型を見るとadd()の引数がnullになってました。



720:デフォルトの名無しさん
08/08/29 03:21:38
>717
何度書いたか分からんが、ジェネリクスは静的解決、キャストは動的解決。

List<? extends Parent>
という宣言を書いたからオカシイ。

そもそも、宣言部分の代入式のほうで、<Child> としているではないですか。
何故、List<Child> と書かないのですか?

721:717
08/08/29 03:26:41
>>719
Eclipseでの話となりますが・・・
「list.」までを入力するとメソッド一覧が出てきますよね?
そこでaddの定義を見ると、add(null arg0)となっているんです。

addをCTRL+左クリックで表示されるクラスファイルエディターでも確認できます。

722:デフォルトの名無しさん
08/08/29 03:38:10
なんでジェネリックス入れてRTTI入れなかったんだっけ?
VMの実装が複雑になるから?

723:デフォルトの名無しさん
08/08/29 03:53:44
それがJavaだから。

724:デフォルトの名無しさん
08/08/29 04:10:33
>>717
List<? extends Parent>
には、Parent を継承したクラス Child1 や Child2 などを用いた
List<Child1> や List<Child2> などが代入されているかもしれない。
これらが同時に安全に add できるものは、
どんな型にもキャストできる null しかない。

725:デフォルトの名無しさん
08/08/29 09:03:12
デュアルコアのCPUが2スレッドを同時に処理するJavaプログラムを動かすとします。
この場合1コアあたり1スレッドなんていう動作になるんでしょうか?

もしそうだとすればnコアでn未満のスレッドを動かしたときどうなるのか非常に気になりますが。

726:デフォルトの名無しさん
08/08/29 10:10:19
>>725
Sun の Java VM であればネイティブスレッドなので 1 コア 1 スレッドで動くことができる。
というか、1 コアが 1 スレッドしか動かせないと思ってないか?Intel だって Hyper Threading
で 1 コア 2 スレッド動かせるし、Sun の Niagara 3 にいたっては 1 コア 16 スレッド(1 CPU
16 コアなので全体で 256 スレッド)動くぞ?

> もしそうだとすればnコアでn未満のスレッドを動かしたときどうなるのか非常に気になりますが。
別に気にならないだろ。普通に動くだけだが、何か変な妄想してないか?
空いてるコアは別の仕事するだけだ。

727:デフォルトの名無しさん
08/08/29 10:22:07
従来のシングルコアで10スレッド動かしたら
1コア当たり何スレッドの処理をするんだろうか?
Javaプログラムだと5スレッドかもしれないし、100スレッドかもしれない
しかし、これだと処理されないスレッドが発生し、さらに
他のスレッドも待ち状態のままになり、見かけ上ではフリーズしたのと同じだ
これを回避するためにPentium4のHT技術が開発されたんだな
Intelすげえという電波ですねわかりません

728:デフォルトの名無しさん
08/08/29 14:55:48
コア数よりスレッド数が多い場合は見かけ上ではあるがOSがタイマー割り込みで実現する。
シングルCPU時代のスレッドは基本的に待機スレッド。
ビジースレッドの並列処理で処理効率をあげるような手法はマルチじゃないと意味はないが、
基本的にIOやイベント待ちでスレッドは止まっているものだ。
それからHTは微妙でビジースレッドの並列処理向きじゃないんだよな。


729:デフォルトの名無しさん
08/08/29 15:13:40
新規質問。

Servlet 作ってて困っているのだけど、
スレッドID ってスレッドが動いてる時に突然変更されることってありえる?

730:デフォルトの名無しさん
08/08/29 15:17:10
>>729
ない
ってJavadocに書いてあるよ

731:デフォルトの名無しさん
08/08/29 16:00:09
intelがjava bytecodeとclassesを直接読み取っちゃうCPU命令を実装してくれればいい。

732:デフォルトの名無しさん
08/08/29 20:56:38
>>731
死屍累々ってほどでもないが、すでにそういうチップは作られていて全く普及して無い。picojavaとか。
そもそも Java の byte code 自体がハードで実装するには不向きな内容だし。
昨今は実行時プロファイリングでホットスポットを解消するほうが実行速度が上がるし。

733:デフォルトの名無しさん
08/08/29 21:24:02
intelのfloatや超越関数とかの機械語は、ibmやsunから見ればハードでの実装は不向きな内容であって、
それこそsin[x]なんかはソフトウェア(ライブラリ)で実装するもんだろうな。

つまり、java bytecodeはハードでは不向きという考えは古い考えじゃないの?
君みたいなゴミにとってはこれぐらいの話しすらついて来れないんだろうけどww

734:デフォルトの名無しさん
08/08/29 21:26:14
jvmとjavaはもともとは家電(ハード)組み込みの設計だったしなぁ

735:デフォルトの名無しさん
08/08/29 21:53:26
>>>732
おまえはどこに行っても相手にされないし無能なやつだな

736:デフォルトの名無しさん
08/08/29 23:41:58
テキストファイルのエンコーディングが予めわかっていない場合
どうやって適切なエンコーディングで読むのでしょうか?
Javaのライブラリを使用すれば、自動的に適切なエンコーディングで読んでくれるものがあるのでしょうか?

737:デフォルトの名無しさん
08/08/29 23:47:19
教授目指してみようかな。
それは結構面白いかも知れない。
戦国時代に生まれたかった。
そして戦場で野垂れ死にしたかった。

738:デフォルトの名無しさん
08/08/30 00:14:47
先生にも2つのタイプがあってな、1つは研究者で教えるのが仕事じゃなくて技術の追求が仕事で、もう1つは教えるのが仕事の教師でどちらかといえば過去・既存技術に精通していて教えたり話したりするのが好きで上手な人。
聞きかじった最先端の雑記を偉そうに語るのは、先生じゃなくても無能なサルでも出来るけど、お前のタイプはどっちだ?

739:デフォルトの名無しさん
08/08/30 00:27:33
MITの教授になりたい。

740:デフォルトの名無しさん
08/08/30 00:29:47
>>736
不可能です。
あきらめてあてずっぽやるか、人間さまに直接おたずねください。

741:デフォルトの名無しさん
08/08/30 00:39:06
少なくとも、最新技術を追いかけるのは最先端のオナニー・ショウを見てるようなものでしかないよ。
それよか、過去の技術や発明・基盤技術をちゃんと知ってるかどうかじゃないの?
大学でやってんならなおさらPCの歴史とかPCがたとどって来た道を知らないとねぇ。

ハードよりなら制御とか組み込みだし、ソフトよりならアルゴ・ライブラリとかコンパイラじゃないの?
すくなくとも、intelの機械語sin[x]は実際はハード内部でデコードしてハード・ロジックのライブラリを呼び出してるだけだしw

まずは自分用のCコンパイラを作れるかじゃないかな?

742:デフォルトの名無しさん
08/08/30 00:42:41
>>741
針が太すぎて、ブランコ代わりに腰掛けられるよ・・・

743:デフォルトの名無しさん
08/08/30 00:43:36
先端オナニーですね、分かります。

744:デフォルトの名無しさん
08/08/30 00:46:00
じゃう゛ぁとともにあらんことを。

745:717
08/08/30 00:55:29
>>720
それだけじゃ>>724みたいな結論にたどり着けないっすよ先輩。
理解してる人しか理解できないヒントというか何というか。

>何故、List<Child> と書かないのですか?
Genericsの勉強中に、クラス間に継承関係があっても
 List<Base> = new ArrayList<Child>();
のような事はできませんが、
<? extends Base>を使えば可能、という記述を見つけたので
試していただけです。で、add()ができないのは何故かと。

>>724
仮に可能であれば、
Child hoge = list.get(0);
とした時にChild1やChild2を返してしまいClassCastExceptionが発生するため危険、
という事でいいですか?

List<? extends Base>#get()の返り値の型をBase型として返せば
いいような気もしますが、それもやはり不都合があるんでしょうか。

746:デフォルトの名無しさん
08/08/30 01:02:26
ジャヴァーは、言語仕様や文法よりも「ライブラリ☆命」なんですが・・・

747:デフォルトの名無しさん
08/08/30 01:35:25
>>745
List<? extends Parent> list = new ArrayList<Child1>();
list.add(new Child1());
list.add(new Child2()); // ←ココ

748:デフォルトの名無しさん
08/08/30 02:02:49
>>745
>List<? extends Base>#get()の返り値の型をBase型として返せば
 List<? extends Base> list = new ArrayList<Child>();
を例えば
 List<Child> childList = new ArrayList<Child>();
 List<? extends Base> list = childList;
としてみましょう。
 list.add(new Base());
が実行された場合、list.get() は Base インスタンスを返せるでしょうが、
childList.get() は Child のインスタンスを返せる(返すことを保証できる)でしょうか。

749:デフォルトの名無しさん
08/08/30 10:08:37
>>743
SFCの『ラブクエスト』を思い出した。
「先っちょ、先っちょ、気持ち良い!」

750:デフォルトの名無しさん
08/08/30 10:43:44
>>733
コプロセッサって知ってるか?

>>735
そうだな。オマエくらいしか相手にしてくれなくて人生寂しいよ。
でもオマエがこうやってレスしてくれて、マジな話ちょっとうれしかった。
無視されるのが一番辛い。煽りでもなんでも、反応してもらえてサンキュ。

751:デフォルトの名無しさん
08/08/30 12:18:08
ぬるぽ

752:デフォルトの名無しさん
08/08/30 12:36:16
KeyTypedの中でgetKeyCharを使って入力をコンソールに表示しようとしても0としか表示されません。
getKeyCharなら、アルファベットキーは表示されるのですが、矢印キーの時は何も表示されません。
どうしてでしょうか?

753:デフォルトの名無しさん
08/08/30 15:32:44
JScrollPaneのJTableについて質問です。

例えば、あるボタンを押したらJScrollPaneがJTableの1行分だけ
下または上にスクロールする、というようなことは可能でしょうか。

JTable内で選択されている行を、そのボタンを押せば自動的に
ひとつ次or前の行に選択を移動させるようにしようと考えているのですが、
ScrollPaneに表示されている行内の終わりからボタンでさらに選択を奥に移動させると、
選択行は変わりますが、スクロールはしてくれないので、どうしたものかと悩んでいます。

754:デフォルトの名無しさん
08/08/30 15:42:13
>>752
> KeyTypedの中でgetKeyCharを使って入力をコンソールに表示しようとしても0としか表示されません。
のgetKeyCharはgetKeyCodeの書き間違い?
なら、
> KEY_TYPED イベントの場合、keyCode は VK_UNDEFINED
なのでVK_UNDEFINED(=0)が返る。
矢印キーなどのキーコードが取りたければ、
keyTypedでなくkeyPressedやkeyReleasedでイベントを捕まえる。

755:752
08/08/30 15:50:11
>>754
その通りCharじゃなくてCodeでした。

756:デフォルトの名無しさん
08/08/30 16:12:37
>>753
これは使えないかな?
URLリンク(java-house.jp)

757:デフォルトの名無しさん
08/08/30 16:58:51
String str = "ABCDE";
という文字列があって、この文字列を逆にして表示させたいです。
最終的に、System.out.println(str); で、画面には
EDCBA と表示させたいです。
文字列を引数にとって、それを反転して返すメソッドがあるのは
分かったのですが、そういうのを使わないで、配列やforをうまく使って
自力で反転させたいのです。
charAt(int index)やfor辺りで試行錯誤したのですが、どうも辿り着きません。
方法を教えてもらえませんでしょうか?

758:デフォルトの名無しさん
08/08/30 17:03:41
>>757
無駄なコードを書くことに、うまい方法なんて無いのでは?

759:デフォルトの名無しさん
08/08/30 17:06:24
>>749
>>750
>>751
ぬるぽ
ぬるぽ
ぬるぽ
ぬるぽ


760:デフォルトの名無しさん
08/08/30 17:06:38
>745
申し訳ありません。724 や 748 の話を良く聞いてください。
お詫びに、関係しそうな記事を置いていきます。

Javaの理論と実践: Generics、了解!
URLリンク(www.ibm.com)


761:デフォルトの名無しさん
08/08/30 17:13:23
>>756
どうもありがとうございます。その先に記述されているのをヒントとして、
ほぼ完成というところまでたどり着けました。
ただ、スクロールバーの▼・▲のボタンや、バーで移動させた際に、
その移動をさせたことを検出させて、かつ移動した距離を知りたいのですが、
どうにか知る術はないものでしょうか?たびたびすいません。

762:デフォルトの名無しさん
08/08/30 17:17:03
>757
Stringオブジェクトは、作成後、状態を変更できません。
ということは、反転した Stringオブジェクトを作成する時点で、
既に反転した状態を持つ「何か」を用意する必要があります。

「何か」は、char配列でも良いですが、単に追加するだけなら
java.lang.StringBuilder/Buffer が良いと思います。

763:デフォルトの名無しさん
08/08/30 17:19:30
URLリンク(www.apple.com)

このページの最上部のメニューバーみたいなのをウェブサイトに実装したいのでですが
何かオススメのスクリプトありませんか?

カテゴリ(ジャンル)が20個ぐらいありそれを1つのページに表示させたいです。



764:デフォルトの名無しさん
08/08/30 17:57:51
相変わらずひねくれてる奴多いな。
>>757はそりゃアルゴリズムの問題でjavaとはあまり関係ないない。

str2=new StringBuffer().append(str).reverse().toString();

これがjava流。良くAPIを読むとサロゲートはreverseしないとかがまたいい!

765:757
08/08/30 18:13:46
>>758
確かにうまくはないですね、言い方が悪くてすいません。
ただ、専用のメソッドを使うより、他のやり方を考えたら
プログラムの理解度も高まるかなーと思いまして。まだ初心者なんです。
>>762
配列を反転する方法がわからなかったので、
結局配列もStringBuilder/Bufferも使わないアナログなやり方で完成しました(´・ω・`)
ありがとうございます。
>>764
ひねくれものですかね?ヽ(´ー`)ノ

766:デフォルトの名無しさん
08/08/30 18:46:46
>>765
理解したいなら、reverseのソース読むべきじゃね?

767:デフォルトの名無しさん
08/08/30 18:53:12 BE:511027586-2BP(5957)
ボタンを押すと定められた波形・音程で音が鳴る、という簡単なアプレットをMac OS X上で作りました。
当然Mac上では問題なく動くのですが、Windowsではうまく動きません。
音意外の部分は問題ない挙動なのですが、どうにも音だけが出ません。(サンプルレート8000、ビットレート16、モノラル)
Javaのバージョンも最新です。
何か心当たりのある方、教えて頂けると助かります。お願いします。

768:デフォルトの名無しさん
08/08/30 19:15:02
テーブルで常に一行だけしか選択できないようにする方法ってあります?


769:デフォルトの名無しさん
08/08/30 19:32:00
>>702
じゃあ、これから正直になりますので、友達になってください。

770:デフォルトの名無しさん
08/08/30 19:45:00
>>768
APIドキュメント見てもいないのか?
JTable#setSelectionMode 辺りを探れ

771:デフォルトの名無しさん
08/08/30 19:49:13
>>765
どんな方法にしろ、目的を達成するプログラムが書けたのならOKだ。
後は 766 の言うように他の同じことをするプログラムを見て、違いを観察するんだ。
自分で書き、他人のを読み、違いを吸収して次に生かせばいい。

772:デフォルトの名無しさん
08/08/30 20:29:55
>>761
AdjustmentListenerは?
scrollPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener(){
int oldValue = 0;
public void adjustmentValueChanged(AdjustmentEvent e){
if(e.getValueIsAdjusting()) return;
System.out.println("Adjusted: " + (oldValue - e.getValue()));
oldValue = e.getValue();
}
});
とかで

773:デフォルトの名無しさん
08/08/30 21:00:41
java初心者です。お聞きしたいことがあります。
javaからPHPにバイナリデータを渡したいのですがデータの中に0x00が
含まれていると2byteの0x5c,0x30に置き換わってしまいます。
どなたかご教授おねがいします。

String postParams = "p1=";
byte[] byteBuf new byte[1024];
OutputStream oStream = null;
:
con = (HttpConnection)Connector.open("URLリンク(localhost)", Connector.READ_WRITE, true);
con.setRequestMethod(HttpConnection.POST);
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

oStream = con.openOutputStream();
oStream.write(postParams.getBytes());
oStream.write(byteBuf); //←ここのDATAに0x00が含まれていると
oStream.close();

con.connect();
:

774:デフォルトの名無しさん
08/08/30 22:45:54
>>773
>byte[] byteBuf new byte[1024];
コンパイル通ってるコード?
byteBufに実際は何を入れてるのか。

775:デフォルトの名無しさん
08/08/30 22:54:34
HTTP POST でベタにバイナリなんて送れたっけ?

776:デフォルトの名無しさん
08/08/30 23:00:20
JTableでアクティブな行は青色になりますよよね?
それに加えて行の中でクリックしたセルだけ青い囲みがかかるんですけど
このセルの囲いをなくすことってどうやったらできるんでしょうか?
検索してもちょっとわからないので、、、ご教授ください。

777:デフォルトの名無しさん
08/08/30 23:02:31
>>772
おお、ありがとうございますm(_ _)m
無事にできました。

778:デフォルトの名無しさん
08/08/30 23:12:07
>>776
setCellSelectionEnabled(boolean)とかなかったっけ?

779:デフォルトの名無しさん
08/08/30 23:16:39
>774,775さん

上記例では部分抜き出しで書きましたがコンパイルは通ってます。
データは仮に
[0xff,0x10,0x00,0xff]だとしたらPHPで受け取って
そのまま送り返して調べた結果では、
[0xff,0x10,0x5c,0x30,0xff]となってます。
画像データなども送りたいと考えているのですが。

宜しくお願いします。


780:デフォルトの名無しさん
08/08/30 23:55:40
データの持ち方について質問です。
プリミティブ型はスタックにデータを持ってて、ヒープ領域は使わないと認識してますが合ってますでしょうか。
それと、プリミティブ型の配列はヒープ領域を使ってて、要素0のデータへのアドレスをスタックに格納して、ヒープ領域では連続した領域に格納されているという認識で合ってますでしょうか。
あと、オブジェクト型の配列でも同様に、ヒープ領域では連続した領域に保持されているのでしょうか?

781:デフォルトの名無しさん
08/08/31 00:04:13
>>778
うーむ、それだとセルのみ選択したときに色がつくようになっちゃうんですよね・・・。
逆のことをしたいんですが、何かないでしょうかね。

782:デフォルトの名無しさん
08/08/31 00:11:39
>>779
>byte[] byteBuf new byte[1024];
なんて、コンパイル通る訳無いだろ。
コンパイルも通らないコードなんか載せられても何も答えられんわ

783:デフォルトの名無しさん
08/08/31 02:01:47
>>780
jvm.dllの実装上の問題です。普通はそのように実装するんですけど、あなたにピッタシのAPIはByteBuffer.allocateDirectですかね。

784:デフォルトの名無しさん
08/08/31 02:42:37
>>782さん

あああ!、申し訳ないです。'='←書くの抜けてました。
プログラム上ではちゃんと書いてます><

byte[] byteBuf = new byte[1024];
何度もすみません。

785:デフォルトの名無しさん
08/08/31 03:11:15
>>779
コード 0x00 (NUL) が 0x5C 0x30 (\0) に変換される、と。

773 では、Content-Type に application/x-www-form-urlencoded を指定しています。
この指定自体は、form を送信する際の一般的な設定だと思います。

しかし、この指定によって、クライアントかサーバか、どちらか分かりませんが、
変換が行われてると、私は思います。

つ【パケットキャプチャ】かな?

786:デフォルトの名無しさん
08/08/31 03:33:00
>>781
TableCellRenderer を見れ。

787:デフォルトの名無しさん
08/08/31 03:40:28
>>779
>そのまま送り返して調べた結果では、

PHP が受け取ったモノをチェックしろよ。
送り返して調べたって、送り返す時にヘマしてたら分かんなくなるだろ。

788:デフォルトの名無しさん
08/08/31 10:26:08
URLリンク(www12.plala.or.jp)
これの真ん中あたりにあるアプレット動く?
うちのXPだとIEでもFirefoxでも動かん。

789:デフォルトの名無しさん
08/08/31 11:31:32
x-www-form-urlencodedの意味を考えろってことで。


790:デフォルトの名無しさん
08/08/31 11:34:44
>785,787さん
PHP側では
<?php
$p1 = isset($_REQUEST['p1']) ? $_REQUEST['p1']: '';
$p2 = isset($_REQUEST['p2']) ? $_REQUEST['p2']: '';
if ( $p1 ){
echo ($p1);
}
?>
としているのですが。

PHP側でも調べてみます。

791:デフォルトの名無しさん
08/08/31 11:43:07
>>773
お前の書いたsetRequestMethodとsetRequestPropertyを一万回読み返せ
BASE64でエンコード/デコードするか、URLにエンコードするか、
Content-Typeをimage/jpegにするか、バラバラすぎる。
あと受け側がどう処理するかによって異なる。

792:デフォルトの名無しさん
08/08/31 13:31:24
酷い流れデツネ

793:717
08/08/31 15:31:20
>>747 >>748
すんません。
実際に返されるインスタンスの型が問題であって
返り値の型をBaseクラスにしても全然解決になってないですね。
質問に答えてくださった先輩方ありがとう。

794:デフォルトの名無しさん
08/08/31 15:39:43
JPanel上でImageIOつかいたい
どうしたら良い?

795:デフォルトの名無しさん
08/08/31 16:04:53
というかHTTPすらろくに理解してないんじゃないのか?
x-www-form-urlencodedでバイナリ送るとか吹いたぞw

796:デフォルトの名無しさん
08/08/31 16:13:39
ホームページのフォームからJava servletでMySQLに複数の名前と番号のセットを
入力したいのですが参考になるホームページが見つかりません。
参考になるサイトやブログを教えていただけないでしょうか。

797:デフォルトの名無しさん
08/08/31 16:38:00
795のように書けばあたかも知ってるように見えるが大概は知らない場合が多い

798:デフォルトの名無しさん
08/08/31 16:55:19
コンソールで入力した文字列から、特定の文字が何文字含まれているか
表示するプログラムを作りたいのですが(例えば「javaprogram」と入力したら
「aは3個含まれています」と表示されるような感じです。
どうすればできるでしょうか?相当考えたのですが…
何の構文やメソッドを使うのか…どうかヒントをば…

799:デフォルトの名無しさん
08/08/31 17:00:25
>>798

ヒント:配列

800:デフォルトの名無しさん
08/08/31 17:13:04
String#indexOf

801:デフォルトの名無しさん
08/08/31 17:41:51
>>794
BufferedImage と ImageIcon の合わせ技。

802:デフォルトの名無しさん
08/08/31 17:44:52
BufferedImage bi = jPanel1.getComponent(0).getGraphicsConfiguration()
.createCompatibleImage(10,10);
これでいいのかな

803:デフォルトの名無しさん
08/08/31 17:48:50
>>796
1個のデータは登録できるのか?
できてないなら、無理すんな。
まずは単一で考えなよ

804:デフォルトの名無しさん
08/08/31 17:50:12
>>798
・char[] にしてまわす
・StrigBufferにしてまわす
どちらでも好きな方を


805:デフォルトの名無しさん
08/08/31 18:54:53
または、特定の文字をすべて削除した文字列を作って長さを比べる
自分も質問なんだけど、テキストエリアの後ろに画像を入れるにはどうしたら良いのかな。

806:デフォルトの名無しさん
08/08/31 18:59:19
正確にはJScrollPaneだった・・

807:デフォルトの名無しさん
08/08/31 18:59:44
HTMLDocument使うとか、画像に対応したDocumentとViewを作ればいいんでない?

808:デフォルトの名無しさん
08/08/31 19:00:48
ん?やりたいことがいまいち分からない・・
背景に画像?
JScrollPaneのViewportに画像描画してJTextAreaを透明にってこと?

809:デフォルトの名無しさん
08/08/31 19:27:46
>>786
すんません、調べてみたんですがどうしてもわからない・・・
CellRendererの中にクリックでアクティブになったセルに関する設定項目が見つからないっす。
説明が下手なんですが、わかりやすく言うと、クリックされたセルのある行は薄青になりますよね?
それとは別に、その薄青の行の中でクリックしたセルだけボーダーラインが太くなりますよね。
あの太いボーダラインをなくしたいんです。

setRowSelectionIntervalを利用すると行が薄青になるだけなので、テーブルのMouseListenerに

1 int rowIndex = jTable.getSelectedRow();
2 jTable.removeRowSelectionInterval(rowIndex, rowIndex);
3 jTable.setRowSelectionInterval(rowIndex, rowIndex);

とやってみたのですが、これだと2の部分では薄青だけ消えて、太いボーダーラインが残ってしまいます。
どうすりゃ消えるんでしょうか、、、

810:デフォルトの名無しさん
08/08/31 19:48:48
>>
vewportでやってみたのですが、イメージがやけに暗く表示されてしまいました。
バッファしてる間に暗くなるとかあるのかな・・・

811:デフォルトの名無しさん
08/08/31 19:56:39
ないない。
もうちょっと詳細を教えてくれないと何とも言えないよ

812:デフォルトの名無しさん
08/08/31 20:00:09
すいません。
出かけ先にいるので帰って見直してみます。
ありがとうございました。

813:796
08/08/31 20:12:47
>>803
単一では出来ます。
URLリンク(www.atmarkit.co.jp)
を参考にコンパイル、MySQLの設定及びデータベースとテーブルも設定しております。
問題は、同じようなデータがありそれを複数同時に入力できないところです。

814:デフォルトの名無しさん
08/08/31 20:21:40
>>813
最大10件とかならば、name-1, value-1 のように固定でHTMLに埋めてしまえ
完全可変にするならば、動的にJavaScriptでinputを作っていけばいい

815:デフォルトの名無しさん
08/08/31 20:23:18
>>805
Swingの話かHTMLの話か解らない
SwingだったらTextAreaとLabelを配置したパネルを作って、それを配置する方が楽だし、再利用しやすい形になると思う

816:796
08/08/31 20:52:25
>>814
すみません説明不足がありました。
仰るとおりHTMLのフォームはname[1],name[2]...のようにフォームに番号を付けています。
servletの方ではこれをループでMySQLに入力するようにしています。
また、名前(漢字)と数字なので先にループで配列に入力するといった方法も出来ませんでした。
JavaScriptによる入力ですが技術的に難しいです。

817:796
08/08/31 21:02:33
肝心なことを忘れてました。
もし、フォームに名前はあっても番号はない場合は登録せず
次のフォームを読み取らせ、ループは名前が無くなったら出るというシステムです。

長々となってしまいまして申し訳ありません。

818:デフォルトの名無しさん
08/08/31 21:05:26
ネイティブ言語や .NET 言語で実現できることは、Java でも実現できますか?

819:デフォルトの名無しさん
08/08/31 21:06:14
無理。

820:デフォルトの名無しさん
08/08/31 21:08:23
こんな感じでできるだろ
for(int i = 1; i < n; i++) {
 getParameter("name[" + i  + "]");
 getParameter("value[" + i  + "]");
}

821:796
08/08/31 21:13:43
>>820
データは取得できるとは思うのですが、
データを保存またはMySQLに連続して登録するときはどのようにすればよろしいでしょうか。

822:デフォルトの名無しさん
08/08/31 21:24:00
>>821
Valuesをつなげるか、何回もUpdateとかInsertする

823:デフォルトの名無しさん
08/08/31 21:42:17
beginTransaction();
for(int i = 1; i < n; i++) {
 getParameter("name[" + i  + "]");
 getParameter("value[" + i  + "]");
 insertOrUpdate(data);
}
commit();


824:デフォルトの名無しさん
08/08/31 22:37:08
テーブルでソートを行うために
setAutoCreateRowSorter(true)を使っているのですが、
ソートを一時的に無効にしたい場合が生じました。
setAutoCreateRowSorter(false)ではだめなようなので、
setRowSorter(null)を使っているのですが、
このような方法でよいものでしょうか。

825:デフォルトの名無しさん
08/08/31 22:47:13
>824
APIドキュメントは読みましたか?
そこに書いてありませんか?

826:798
08/08/31 23:05:53
>>799 >>800 >>804
ヒントありがとうございます。
ヒントを頼りにここまではできたのですが、
URLリンク(hisazin-up.dyndns.org)
文字列を入力するとwhile文が無限ループになります。
無限になるのはわかるんですが、何を入れれば無限がとめられるのかわかりません。
もうこれ以上しぼっても何にも出てこないので、どうか何が足りないのか指摘をお願いしますorz

827:デフォルトの名無しさん
08/08/31 23:06:51
>>819
実現な無理なことって何?
※中間言語を介しているのでネイティブより遅いってのはナシ

828:デフォルトの名無しさん
08/08/31 23:08:16
× 実現な無理
○ 実現が無理

829:デフォルトの名無しさん
08/08/31 23:08:28
while(!(s = br.readLine()).equals("end")){
.....
}
こうして、読み込みと同時にループ判定ってのをJavaではよく使うよ。

830:デフォルトの名無しさん
08/08/31 23:15:12
てかループの最後でreadLineしなきゃダメだろ、冷静に考えろ

831:798
08/08/31 23:22:32
>>829 >>830
もうほんとありがとうございます。どっちのパターンでもできました。
未熟ですいません。途中泣きそうになってました。
教えていただいた知識はありがたく吸収させて頂いて、
完全体への糧とさせて頂きます。

832:デフォルトの名無しさん
08/08/31 23:23:39
アグモン進化~~~!

833:デフォルトの名無しさん
08/08/31 23:24:47
javaの文字処理は、

while (r.ready()) {}

がセオリーなんだけど・・・

アホな奴が書いた説明を読んだんじゃないの?

834:デフォルトの名無しさん
08/08/31 23:34:27
セオリー(笑)と言い切る根拠示したら?

835:798
08/08/31 23:34:28
>>832
ちょww
>>833
独学でやってるんですが、教科書にはその書き方はのってなかったですね。
でもちょっとした応用ですよね。気付かない自分の無力としておきます。
ありがとうございます。

836:デフォルトの名無しさん
08/08/31 23:37:55
VB上がりの人は、rubyかperlの方からやっるといいよ。

837:デフォルトの名無しさん
08/08/31 23:39:14
>833
言いたいことは解るが、その場合は
while(r.ready()) {
System.out.println("文字列を入力して下さい");
String s = r.readLine();
if(s.equals("end")) break;
// 以下同様
}
と書かなくてはならないだろ。
そこまでちゃんと説明しないのはあまりにも無責任。
ついでにいえば、r.ready()がfalseになることは基本的にないからな、標準入力からとっているわけだし。

838:デフォルトの名無しさん
08/08/31 23:40:12
>>795

こいつには「友達はいないだろうな」と感じるのは、俺だけなのかな・・・

839:デフォルトの名無しさん
08/08/31 23:43:04
たぶんMSDNのVBの記事ののりで、いつまでもお子ちゃまのままなのか、もともと糞まみれのまま生活してるとかじゃないか?

840:デフォルトの名無しさん
08/08/31 23:44:18
だなw

841:デフォルトの名無しさん
08/08/31 23:45:40
ぬるぽ

842:デフォルトの名無しさん
08/08/31 23:52:42
>>805
です。帰ってきました。
具体的には
JPanel panel = new GraphicPanel("image.jpg");
JTextArea area1 = new JTextArea();
JTextArea area2 = new JTextArea();
area1.setOpaque(false);
area2.setOpaque(false);
JScrollPane scrollA = new JScrollPane(area1);
JScrollPane scrollB = new JScrollPane(area2);
scrollA.getViewport().setOpaque(false);
scrollB.getViewport().setOpaque(false);

panel.setLayout(new GridLayout(2,1));
panel.add(scrollA);
panel.add(scrollB);
という形でやっているのですが・・
GraphicPanel()は、別クラスでイメージ名を渡すとそれがパネルの背景になります。

843:デフォルトの名無しさん
08/08/31 23:56:03
>>834
>>837

流れを見ると、君が勉強不足なだけのようだけど?

844:デフォルトの名無しさん
08/08/31 23:59:56
>>837はかなり問題発言だと思うけど、このスレ的には放置でいいの?

845:デフォルトの名無しさん
08/09/01 00:01:36
ITドカタ出身のカスみたいだし、ほっとけばいいんじゃない?

846:デフォルトの名無しさん
08/09/01 00:03:55
>>841,844,845

だなw



847:805
08/09/01 00:06:48
どうやらJScrollPanelの透明化が出来てないようです。。

848:805
08/09/01 00:13:08
setOpaque
getViewport().setOpaque
どちらもやると透明になりました!!すれ汚しすいませんでした。

849:デフォルトの名無しさん
08/09/01 00:15:32
そうだ!大学や専門学校でVBとかC#を教えればいいんじゃんか!
VBの方が使ってる人多いし、VBアプリもいっぱいあるじゃん。
高校ではBASIC教えてんだから、何で大学とかでVBを教えないんだよ。オレ頭いい~

850:デフォルトの名無しさん
08/09/01 00:19:54
>>805
これ参考になるかな?
URLリンク(terai.xrea.jp)

>>809
使ってるのはDefaultTableCellRendererだよな?
だとしたらgetTableCellRendererComponenメソッドをオーバーライドして、
super.getTableCellRendererComponenで取ってきたComponentを
JLabel(もしくはJComponent)でキャストしてやつを
setBorder(null)にすればうまく行く様な気がする。



851:デフォルトの名無しさん
08/09/01 00:37:46
ジャヴァ最高!
サン最高!
アムロ最高!

852:デフォルトの名無しさん
08/09/01 00:45:04
以下でchannelを閉じるときにFileOutputStreamって自動的に閉じますよね?
FindBugsさんに怒られて不安になってしまいますた。
FileNotFoudExceptionとIOExceptionはメソッド単位で投げてます。
clearしているstreamは引数で与えているByteBufferです。


File file = new File(fileName);
FileChannel channel = null;
try {
channel = new FileOutputStream(file).getChannel();
channel.write(stream);
} finally {
// 事後処理
stream.clear();
if (null != channel) {
channel.close();
}
}


853:デフォルトの名無しさん
08/09/01 00:52:09
javaで開発してる人の半分以上はwindowsであるという事実がある。
しかしjvm runtimeも.net runtimeもほぼ同じことが出来るのに、なぜこれほどまでにMSは嫌われるのかが謎だな。
さらにwindowsのvb, c#で簡単なこと(例えばメディア・プレーヤ系とか)をわざわざjavaでやるのもまたなんとも香ばしい。

今の時代の主流OO言語風に言えば、.netで作ったライブラリをjvmから呼び出せば済むことなんじゃないの?


854:デフォルトの名無しさん
08/09/01 01:03:19
dot net と jvm bytecode が相互にアクセスして相互に運用が出来るライブラリとかはもう誰かが作ってるよ。
どっかにあったような…海外だったかな?


855:デフォルトの名無しさん
08/09/01 01:30:28
>>853
効率だけで物事を選ぶわけじゃないからだろ。

856:デフォルトの名無しさん
08/09/01 01:39:28
>>841
ガッ

857:デフォルトの名無しさん
08/09/01 01:45:30
俺のサーバPC(インテルCPUじゃないの)でiphone使えたりmp4再生できても意味ないからな・・・
それよりも、それらコーディックの類は特許の塊でもあるから、jvmで実装するよりもそういうのは特許に関心があるMSに任せといて、
それらメディア系のファイル使うときは、dotnetやjavaのライブラリAPIでアクセスできれば十分じゃないの?

h.264みたいな最先端の技術はさすがに専用のデコーダ兼表示端末(インテルPCとかかな)ないと実用じゃないだろうけど、
そうじゃなければ、昔からあるシェルのパイプ機能に毛が生えたのでいいよ。

特許がどうとか言うと、ライセンスとか裁判とかジャスラックとかウザイだろw
どうせおまえなんか法学部出身なわけでもなければ民事裁判やったことないんだろうしww

858:デフォルトの名無しさん
08/09/01 01:53:59
iniファイルでプロパティ設定するのは骨が折れるから、プロパティ設定辺りはいまどきはGUIでサクッとやりたいなと思うけど。

Javaがデスクトップとかメディアに進出もいいけど、どうせ特許の壁にぶつかるし、出来ても所詮はネイティブであって、携帯電話でそのデコーダ(コーディック)が動くわけでもないし、
今必要なのは、swingみたいにコンポーネントやbeansを作ってくれればいいでない?
java/jvmの管理とかマネジメント充実も一通り終わったから、そろそろデスクトップのUIとかの方かなと思う。

859:デフォルトの名無しさん
08/09/01 02:42:31
夏休みは終わったらしいぞ

860:デフォルトの名無しさん
08/09/01 03:35:07
すれ違い

861:デフォルトの名無しさん
08/09/01 08:04:21
どなたか
>833
の解説をお願いします。
reader.ready() は「次の読み込みがブロックされるかどうか」だけとの事ですので、例えば以下の場合には正常に動作しない場合もあるかと思います。(※クライアントからデータが未送信の場合)
Socket s = serverSocket.accept();
BufferedReader reader = new BufferedReader(new InputStreamReader(s.getInputStream()));
while(reader.ready()) {/* 処理 */}
また、StringReader#ready() は常に true を返したりもします。
このような危険性がありながらなお ready() がセオリーとされる理由を御教示頂けないでしょうか

862:デフォルトの名無しさん
08/09/01 10:30:33
それよか、.NetとJVMを結びつけるライブラリとかほんとにあんの?

863:デフォルトの名無しさん
08/09/01 10:44:40
>>861
たぶん君は、ストリームのことを大学で教えてもらえなかった哀れな人なんだろう。
まずstdinを(line!=null) ?とかでナル・チェックするのはマズイことを知れ。

864:デフォルトの名無しさん
08/09/01 12:13:46
>863
お返事ありがとうございます。
独学なので更に哀れな知識量しかなく、色々間違っているかと思います。
もう少々お付き合い下さい。すみません。

> stdinを(line!=null) ?とかでナル・チェックするのはマズイことを知れ。
との事ですが、その前に疑問を整理させて下さい。
元々の疑問は、「文字処理は ready()がセオリー」との発言でした。これは標準入力に限らず、Reader 系全般に当てはまるかと思います。

ここで、敢えて ready() をセオリーと言っていた事がよく分かりませんでした。
Reader#ready() は、「次の読み込みがブロックされるかどうか」を返す訳ですから、入力が無い == ブロックされる == false となり、例えば標準入力であれば、起動直後の入力が無い場合には
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
while (r.ready()) {/* 処理 */}
としてもループ内に入ることなく抜けてしまい、期待した動作はしないかと思います。
同様に、Socket から文字列を読み込む場合でも、通信状態に応じて、データパケットが届く前に ready() が実行される事もあるかと思います。
であるのに、ready() をセオリーとする理由がよく分からず、質問した次第です。
(ファイルからの入力に限定するのであれば、ready() がセオリーでも理解はできるのですが)
頭の悪い質問で申し訳ありませんが、回答をよろしくお願いします。

あと、stdin を null チェックするのはまずい、という理由もよく分かりませんでした。
System.in は null を返さない、とかそういう単純な理由ではありませんよね?
宜しければ一緒に教えて頂けないでしょうか

865:デフォルトの名無しさん
08/09/01 14:04:51
俺は Reader#ready() 使ったことないのでセオリーとは思ってない。
stdin だろがなんだろが BufferedReader#readLine() だったら EOF->null だから当然チェックする。
>>833 >>863 の説明に期待するかw

で、Reader#ready() は「ブロックされるかどうか」じゃなく「ブロックされないかどうか」だ。
false だからといってブロックするとは限らないし、入力が無いとも言えない。

866:デフォルトの名無しさん
08/09/01 14:47:41
JTableからJScrollPaneって取得できますか。
JTableのsetVisibleだとテーブルを非表示にできないようなので、
JScrollPaneのsetVisibleを呼びたいのですが。

867:デフォルトの名無しさん
08/09/01 14:50:33
getParentで取得してチェック

868:デフォルトの名無しさん
08/09/01 14:55:54
インタフェースにあるクラス(インタフェースじゃない)を継承させることってできますか?

869:デフォルトの名無しさん
08/09/01 15:05:05
むり

870:デフォルトの名無しさん
08/09/01 16:04:35
>>867
thx!

871:デフォルトの名無しさん
08/09/01 16:41:30
基本データ型のうちなぜString型だけ先頭が大文字なのでしょうか?
これだとラップクラスと同じになりますよね。

872:デフォルトの名無しさん
08/09/01 16:54:09
Stringは基本データ型ではありません
java.langパッケージに属するクラスです

873:デフォルトの名無しさん
08/09/01 16:54:35
>>871
Stringは基本データ型じゃないだろ。

874:デフォルトの名無しさん
08/09/01 16:59:34
これだからCをやってないやつはだめなんだよな

875:デフォルトの名無しさん
08/09/01 17:09:00
ではchar型も基本データ型ではありませんね

876:デフォルトの名無しさん
08/09/01 17:12:20
どうしてそう思いますか?

877:871
08/09/01 17:23:02
すみません何か大きな勘違いをしてました
Stringはどう見ても基本データ型じゃないです

878:デフォルトの名無しさん
08/09/01 18:15:43
byteからintに符号なしでキャストしたいときはどうするんですか?

879:デフォルトの名無しさん
08/09/01 18:18:02
(int)Math.abs()

880:デフォルトの名無しさん
08/09/01 18:30:24
>>879
言い方が悪かったです

(byte)0xff が-1でなく255になるようにしたいです

881:デフォルトの名無しさん
08/09/01 18:33:24
byte b;があったとして
b&0xFF
ってすりゃいいよ。

882:デフォルトの名無しさん
08/09/01 18:36:32
(int) ((byte) 0x80) // 0xffffff80 = -128
((int) ((byte) 0x80)) & 0xff // 0x80 = 128

883:デフォルトの名無しさん
08/09/01 18:41:32
解決しました。ありがとうございます

884:デフォルトの名無しさん
08/09/01 20:01:57
> 865
返答ありがとうございました。
ひとまず、ready() の件はセオリーとは言えない、と認識して納得しました。

> で、Reader#ready() は「ブロックされるかどうか」じゃなく「ブロックされないかどうか」だ。
確かにその通りでした。大ボケこいてました。ご指摘ありがとうございます。

お騒がせしました。

885:デフォルトの名無しさん
08/09/01 20:17:22
APIもちゃんと読んでもいなければ、ソースも読んでないんだろうな。
たとえば、java.io.Ready.read():Iのソース見たことないだろw

お前のようにいつまでも妄想してようじゃ上達しないんじゃない。
それなら、いつready()を使うんだろう?

886:デフォルトの名無しさん
08/09/01 20:21:34
>>884
ready()とストリームついて知りたかったら、難しい解説本読むか、ちゃんと学校いけよw
2chでお手軽に聞くようなお手軽独学厨房にはもったいなくて教えてやんないww

887:デフォルトの名無しさん
08/09/01 20:25:17
>>885
java.io.Ready.read・・・

888:デフォルトの名無しさん
08/09/01 20:32:57
すみません
知識が浅いもので不快にさせてしまいましたら申し訳ありません
一応、判らないなりに、SunのJAVA5実装はReaderからStreamDecoder経由してio_util_md.c までは辿っています。
これ以上どこを見るといいのか教えて頂けますか
よろしくお願いします

889:デフォルトの名無しさん
08/09/01 20:33:29
ストリームも知らないなら別にナムル・チェックいいでない?
どうせargs[k]とかやってる程度の人だろうしww

890:デフォルトの名無しさん
08/09/01 20:39:34
>>885
よっぽどのアホだな・・・

891:デフォルトの名無しさん
08/09/01 20:41:23
あじゃぱー

892:デフォルトの名無しさん
08/09/01 20:41:34
>>889
日本語でおk

893:デフォルトの名無しさん
08/09/01 20:46:29
>>888
そこまでソース追いかけても分からないならタコでしょw
Reader.read():Iが何でnativeでなくてnew char[1]なのかで十分分かると思うけど・・・
もしセンスがあればだけど、多分君はお勉強はできるけど・・・あんまし・・・ってタイプでしょうか?

というよりも、それならいつready()を使うわけ?


894:デフォルトの名無しさん
08/09/01 20:49:54
東大の教授になりたかった・・・

895:デフォルトの名無しさん
08/09/01 20:51:40
>>893
バカには一生わかんねーよ

896:デフォルトの名無しさん
08/09/01 20:52:54
>>894
共産党に入れ

897:デフォルトの名無しさん
08/09/01 20:57:20
>>895

なんみょう~
なんみょう~
なんみょう~


898:デフォルトの名無しさん
08/09/01 20:59:49
まずJavaの本読むより、「バカの壁」を読んでからじゃね?

899:デフォルトの名無しさん
08/09/01 21:01:12
ListってCでいうとこのstructみたいなもんすか?

900:デフォルトの名無しさん
08/09/01 21:09:26
>>899
リストはCでもつかうだろ。

901:デフォルトの名無しさん
08/09/01 21:38:21
ready()なんか使う奴こそ糞だな!

一生ナンミョウ~やってろよww

902:デフォルトの名無しさん
08/09/01 21:49:04
>>901
いや、使う用件はあるだろ。

903:デフォルトの名無しさん
08/09/01 21:52:35
ready?

904:デフォルトの名無しさん
08/09/01 21:54:11
ストリームわかんねーの奴は「Cが難しすぎてJAVAに逃げてきました」って程度だろ。そういう奴はJAVAも無理無理。VBAかVBぐらい丁度いいよw

905:デフォルトの名無しさん
08/09/01 21:56:58
ストリームもそうだけど、スレッドも分からない奴がいたよな。
スレッド・セーフがどうとかこうとか適当な妄想を言ってたけど、アレはC#のスレだったか?

906:デフォルトの名無しさん
08/09/01 21:57:22
>>833はまったくの嘘だから気にしなくていいよ

907:デフォルトの名無しさん
08/09/01 22:05:57
StringBufferクラスの必要性をご教授ください。
Stringだけで十分だと思うのですが・・・

908:デフォルトの名無しさん
08/09/01 22:10:59
それなら、char[]で間に合うから、Stringも必要ないね

909:デフォルトの名無しさん
08/09/01 22:11:55
StringBuilderで間に合うから、StringBufferは要らないね。


910:デフォルトの名無しさん
08/09/01 22:18:08
ここは一応 初心者歓迎 となってるのを忘れてないか?

911:デフォルトの名無しさん
08/09/01 22:24:49
うん歓迎してるぜ。


912:デフォルトの名無しさん
08/09/01 22:28:42
充分にヒントになっているかと思うが?

913:デフォルトの名無しさん
08/09/01 22:34:35
>>908
悪いがそれは違うな。もう一度JAVAのオブジェクト指向プログラミングの技法とやらから初めて、一からやり直したらどうだろか? 

914:デフォルトの名無しさん
08/09/01 22:38:00
>>907
StringBufferはreverse()するとき良く使いますw

915:デフォルトの名無しさん
08/09/01 22:39:56
Stringクラスは代入するたびに新しいStringオブジェクトを作るので、
メモリ的にも処理速度的もコストが高いんよ。
例えば、aとbとcの文字列を連結する場合に以下のような処理があったとすると
--------------------
String buffer = a;
buffer += b;
buffer +=c;
--------------------
StringBuffer buffer = new StringBuffer(a);
buffer.append(b);
buffer.append(c);
--------------------
Stringでは、 += bをしている処理は a に b の文字列を連結してる
のではなく、 aとbを連結したStringオブジェクトを新しく作ってる。
同様に +=c の処理でも 新しいStringオブジェクトを作ってる。
一方StringBufferでは、 .append(b) では 文字列を連結しているので
新しいStringBufferオブジェクトは作っていない。
つまり、新しいオブジェクトを作っていない(newしていない)分
メモリも速度も節約できるということ。

916:デフォルトの名無しさん
08/09/01 22:45:57
>>906
答えられもしないくせに適当なこと言うな

917:デフォルトの名無しさん
08/09/01 22:46:22
>>915
文字列の操作を行う場合は、って前提が抜けてなければ完璧な回答だったのにな

918:デフォルトの名無しさん
08/09/01 22:54:39
まぁ今はコンパイルする時点で文字列の結合はStringBuffer#append()に置き換えてくれるから単純な結合は無視しちゃっていいけどね

919:デフォルトの名無しさん
08/09/01 22:56:28
0と1を反転させる方法を教えてください。
かっこいい方法は無いですか?


920:デフォルトの名無しさん
08/09/01 23:00:00
文字列の0と1なのか別のモノの0と1なのかくらい示せ

921:デフォルトの名無しさん
08/09/01 23:01:09
かっこいい方法…俺には無理だ

922:デフォルトの名無しさん
08/09/01 23:01:30
アセンブラの頃は良く XOR したな…

923:デフォルトの名無しさん
08/09/01 23:03:47
int型でお願いします。


924:デフォルトの名無しさん
08/09/01 23:09:04
>>915
そんな数十行にもわたって書くことじゃないと思うけど、お前が噂のニートだろ?それに友達も一人もいない自宅警備員で、実際は、プログラムも作ったことない無能だろww

925:デフォルトの名無しさん
08/09/01 23:15:03
おー、こわい、こわいw

926:デフォルトの名無しさん
08/09/01 23:17:44
> 893
ひとまず、標準入力の件に関しては
java ReaderClass < data.txt
といったデータの与え方をした場合の事なのではないかと理解しました。
確かに、この場合には間違いなく ready() の使い所と思います。
この理解は間違っているでしょうか?

927:デフォルトの名無しさん
08/09/01 23:18:52
>>915の性格はキモイ説明サイトと同類だな。
もう、そういうサイトはいっぱいあるし、一見丁寧に説明しているようでどうでもいいところが長いだけだし、その程度の説明じゃ人は来ないだろうけどww

たとえば、x=1; new StringBuffer(x)とかだと、その説明の効率的の指摘からすれば、逆に非効率になるんじゃないの?
知ったかぶっりの雑学知識を披露したのは、わからないでもないんだけどねぇ・・・それじゃ文系のITジャーナリストと同じムジナだな・・・

928:デフォルトの名無しさん
08/09/01 23:23:01
文系といえば、確かにALL ABOUTの記事かいてるのはキモイ奴の多いよな。
「どこにも就職できなかったけど、All Aboutで拾ってもらいました!!」て感じのオーラが強いって言うか…
早稲田みたいなところの心理学科卒業で、All Aboutで「アロマがどうとかは心理的に~」とか専門術語を使って妄想記事かいてるのは吹いたww

>>915は結局それと同じムジナ。もう無理しないで死んでいいよ。


929:デフォルトの名無しさん
08/09/01 23:24:08
>>919
!

930:デフォルトの名無しさん
08/09/01 23:25:14
>>929それはboolean

931:デフォルトの名無しさん
08/09/01 23:29:51
妄想ならせめて旧帝大レベルじゃないとだめだろ。といっても、この前の東工大の学生は、左手腕に刺青みたいな模様をさらけ出してて、危ないやっちゃなと思ったけど、東工大は旧帝レベルだから少しは聞いてやったw
その話の真意よりも、たぶん自宅警備員候補だろうし、人生苦労する奴なんだろうなと思った。

932:デフォルトの名無しさん
08/09/01 23:30:17
>>926
そんな場合だからといってready()を使う必要なんてないよ。

10年ぐらいJava触ってて一度もready()を使ったことないけど、「入力が
なければ他の処理をする」という感じの疑似マルチスレッドぐらいしか
用途が思い付かない。で、そういうときは素直にマルチスレッドにする。



933:デフォルトの名無しさん
08/09/01 23:32:10
雑談したいなら他行け。

>>926
そうか?
標準入力を使うのは、その元が手入力だろうがファイルだろうがttyだろうがとにかく
何かが送られてくるのを受けたいだけだからだろう。
ファイルからだから ready を使うとか考えるのは違うんじゃないか。

934:デフォルトの名無しさん
08/09/01 23:35:41
つまり、>>915の説明はString/StringBufferの違いを本質的に指摘してないってことですね。実はそんな風に思ってましたがスッキリしました!

935:デフォルトの名無しさん
08/09/01 23:39:39
文系のITジャーナリストってのは、堀江豚と友達だったメガネで蝶ネクタイの30代ぐらいでキモイ奴か?
あいつは正に素早く死んで欲しい。いつもおれは、寝る前には必ず神棚で手を合わせて「早く死んでくれって」祈ってるぐらいだし。

936:デフォルトの名無しさん
08/09/01 23:41:15
それそろすれ違い

937:デフォルトの名無しさん
08/09/01 23:55:54
>932, 933
リダイレクトで渡せば EOF が取れないだろうから ready() の出番・・・と思ったのですが、書き込んでから試したらきちんと EOF になりました(阿呆です)
何か根本的に道を間違えているようです。
標準入力 + ready() というキーワードにこだわり過ぎているのでしょうか。
(その辺りを離れて単純に ready() の使い道を考えるのであれば、932 さんの仰るような nio っぽい使い方が一番の使い所であるような気がします。)


938:デフォルトの名無しさん
08/09/02 00:03:55
Stringをだな。阿呆みたいに+=で連結しまくってるコードがあったんだ。
あんまりにもあんまりだと思って、StringBufferで書き換えてみたんだ。
でもベンチマークを取ってみると、1msも変わらなくてだな。
そのメソッドのほんの数行、DBをアクセスしてる部分が、処理時間の99%
以上を持っていってたんだ……。


939:デフォルトの名無しさん
08/09/02 00:15:58
つまりStringBufferの利用価値は自己満足が大半ってことですね?

940:デフォルトの名無しさん
08/09/02 00:18:38
それで結局StringとStringBufferの違いは何?

941:デフォルトの名無しさん
08/09/02 00:19:36
Bufferって付いてるか付いてないか

942:デフォルトの名無しさん
08/09/02 00:20:07
確かによほど下手なことせん限り大差ないよな。でも演算途中でnew,new,new....ってのは気持ち悪い・・・

943:デフォルトの名無しさん
08/09/02 00:22:33
もう夏は終わったんだぜ?


944:デフォルトの名無しさん
08/09/02 00:23:20
でたでたでた。

945:デフォルトの名無しさん
08/09/02 00:23:47
ちなみにStringBufferとStringBuilderとかHashTableとHashMapとかだと
実際の所どの程度速度に影響するもの?

946:デフォルトの名無しさん
08/09/02 00:33:23
>>916
夏の終わりの駆け込みかと思ってたけど、オマエ、本気なんじゃないのか?

947:デフォルトの名無しさん
08/09/02 00:34:48
>>926
間違ってるな。

948:デフォルトの名無しさん
08/09/02 00:36:48
>>945
そいつらへのアクセスが処理の多くを占めてたら、それなりに効いてくるんじゃないか?
特にマルチコア/マルチCPUだと、synchronizedの部分でメモリの同期化が行われるから、それなりに馬鹿にならないコストがかかるような気がする。
とは言え、Java7あたりだと、JITコンパイラが不要なロックを省略するような最適化をぶちかましてくれるらしいからな……。

949:デフォルトの名無しさん
08/09/02 00:36:50
>>945
それは自分でやってみれば分かる事じゃん・・・

950:デフォルトの名無しさん
08/09/02 01:19:11
String:不変オブジェクト
StringBuffer:可変オブジェクト
っていう教科書にありそうなのではどうだw


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