1 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 19:48:24 ] プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/ これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、 wikiからのリンクをおたどりください。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド111【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1200151522/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝のう存じます。 次スレは>>980 あたりで。
692 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:14:30 ] このメソッドはcalcExceptionを投げ得ますよってこと。
693 名前:お [2008/02/24(日) 10:27:48 ] >>660 [追加します]とありますが全部変えてしまいました。全部どう記述するのか聞きたいです。
694 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:33:26 ] >>693 つ ttp://okwave.jp/qa2940675.html
695 名前:デフォルトの名無しさん [2008/02/24(日) 11:13:00 ] >>692 ありがとうございました><
696 名前:お [2008/02/24(日) 11:30:48 ] wbemの場所ってわからないことないですか?
697 名前:お [2008/02/24(日) 11:36:33 ] 設定方法わかりませーん
698 名前:デフォルトの名無しさん [2008/02/24(日) 11:57:29 ] @F8押す→3秒待機→F8押す Bこの処理を500回ループした後 AF7押す→1秒待機→F8押す→1秒待機 C処理Aを30回繰り返し@に戻る こういうプログラムはjavaだったら可能でしょうか? ゲームに使うのでVBみたいにF8押したことにしますってのではなくて 実際に押すことが重要なんです
699 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:09:13 ] >>698 >>96 VB が何をやってるのか知らんが、 人がキーを押したときと同じような結果をシミュレートすることは可能。 // 自動演奏みたいにキーボードが動く……誰かそういうヤツを作ってください。
700 名前:デフォルトの名無しさん [2008/02/24(日) 12:16:39 ] VBではSENDKEYなるメソッドがあり それを使うとたとえば F8押した時、1+1の処理をするというプロシージャがあった場合 SENDKEYによって1+1を呼び出すことはできますが 実際にF8を押すという動作がウィンドウズ内で行われている というわけではないようです (押した時のようにキーをへこませるといわけではありません。念のため) ようするに、キーを押した後の処理ではなく、キーそのものを押したことを キーを押さずにウィンドウズに認識させたい
701 名前:お [2008/02/24(日) 12:22:46 ] 設定方法わかりませーん
702 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:25:25 ] >>700 なるほど。イベントのトリガーとして登録させてるようなものですかね。 ということで、96 を実行することで少しは感動してもらえそうな予感。
703 名前:デフォルトの名無しさん [2008/02/24(日) 12:31:18 ] どうやらjavaなら可能なようですね 勉強します
704 名前:11 mailto:sage [2008/02/24(日) 12:31:27 ] 画面A,B,Cとあり画面CのB画面終了ボタンを押すとB画面のみ終了させたいと考えてますが さっぱりわかりません。どなたかご教授願います。 /*ソースここから*/ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Gamen extends JFrame implements ActionListener{ private JButton b1 = new JButton("B画面表示"); private JButton b2 = new JButton("終了"); private JButton b3 = new JButton("C画面表示"); private JButton b4 = new JButton("B画面終了"); public void GamenA() { getContentPane().setLayout(new FlowLayout()); getContentPane().add(b1); getContentPane().add(b2); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("A画面"); setSize(200, 100); setVisible(true); b1.addActionListener(this); b2.addActionListener(this);} public void GamenB() { getContentPane().setLayout(new FlowLayout()); getContentPane().add(b3); getContentPane().add(b2); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("B画面"); setSize(200, 100); setVisible(true); b3.addActionListener(this); b2.addActionListener(this);} //続きます
705 名前:704 mailto:sage [2008/02/24(日) 12:33:21 ] すみません>>704 は11さんとは無関係です。 続き public void GamenC() { getContentPane().setLayout(new FlowLayout()); getContentPane().add(b4); getContentPane().add(b2); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("C画面"); setSize(200, 100); setVisible(true); b4.addActionListener(this); b2.addActionListener(this);} public void actionPerformed(ActionEvent e){ if(e.getSource() == b1){ Gamen bb = new Gamen(); bb.GamenB(); }else if(e.getSource() == b2){ System.exit(0); }else if(e.getSource() == b3){ Gamen cc = new Gamen(); cc.GamenC(); }else if(e.getSource() == b4){ //B画面終了ボタンを押してBのみ画面を終了させたい。 } } public static void main(String[] args) { Gamen aa = new Gamen(); aa.GamenA(); } } /*ソースここまで*/ よろしくお願いします。
706 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:34:45 ] >>698 Javaはある程度のことしかできないし、そういうものであれば既存のソフトで腐るほどありますよ。 自分でやりたいなら何らかのスクリプトを使うことをおすすめしておきます。
707 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:43:52 ] 一つ一つのフレームは、その他のフレームのインスタンスを持ってないから現状では無理。 閉じさせるフレームのインスタンスを持たせて、それでactionPerformedでdisposeしてやれば実現できるけど・・・継承とかそこらへんの意味を見直した方がいいと思うよ。
708 名前:705 [2008/02/24(日) 12:53:30 ] >>707 様 ありがとうございました。 勉強しなおしてきます。
709 名前:638 mailto:sage [2008/02/24(日) 13:30:03 ] >>639 業務なのでスタックとレースはちょっと貼れません・・・ 実際に発生している問題は パターン1 setStringでパラメータを19個設定 検索ヒット件数が10件以下 →問題なし パターン2 setStringでパラメータを19個設定 検索ヒット件数が11件以上 →ResultSetでlastや、11件目のnextで例外発生 スタックとレースに配列の範囲外を指定(詳細19)というエラーが出力される。 ※パラメータを15や11にした場合も同様に(詳細15)のように出力される。 パターン1と2で使用しているSQLは全く同一。 パターン1と2の違いはパラメータの1つの日付の範囲を数ヶ月広げているだけ。 パラメータを全て直接SQLに埋め込んだ場合、データが件数分正しく取得できます。 パラメータに上限とかあるのでしょうか? SQLはそれなりに大きいです。100行程度。
710 名前:お [2008/02/24(日) 14:16:01 ] 設定方法わかりませーん
711 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 14:16:23 ] >>709 Oracle なら、詳細19とか詳細15とかマニュアル嫁 それの何処に配列が出てくるのか謎
712 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 14:18:34 ] 問題ない部分だけの抜粋でもいいからスタックトレース貼ったらどうか。 例外は本当にOJDBCで出てるのか?
713 名前:638 mailto:sage [2008/02/24(日) 14:29:54 ] ResultSetやPreparedStatementをデバッガで除くと、 設定したパラメータが正しい内容で格納されているのは確認しています。 出力される例外はArrayIndexOutOfBoundsExceptionです。 ここでパラメータの数が「詳細 パラメータ数」と表示されます。 >>711 まず、SQLExceptionじゃないです。 上記通り、19とか15はパラメータの総数が出力されます。 謎ですが。 >>712 そもそも業務で外部接続できないので貼れません・・・ 例外は、ResultSetのnextが11回目に呼び出されたタイミングで発生します。 ResultSetの処理の中でArrayIndexOutOfBoundsExceptionで死亡します・・・
714 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:02:57 ] test
715 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/24(日) 17:05:15 ] 固定長*可変長の配列を作りたいです。 (i方向が固定でj方向が可変、初期は空) import java.util.*; public class Test2{ public static void main(String[] args){ ArrayList<Integer>[] a = new ArrayList<Integer>[10]; for(int i=0; i<a.length; i++){ a[i] = new ArrayList<Integer>(); } a[0].add(3); System.out.println(a[0]); } } こう書きましたがエラーが出ます。 どこがおかしいのでしょうか?
716 名前:ちんこ ◆GbXlaaQNk. [2008/02/24(日) 17:05:45 ] age
717 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:07:30 ] 固定長のちんこなんて要りません
718 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:09:04 ] 1〜nの整数の順列をすべて表示するプログラムを書いてみたのですが もっと簡単にやる方法とかここはこうしたらいいとかあったらアドバイスお願いします import java.util.*; class PermutationTest { public static void main(String[] args) { Permutation perm1 = new Permutation(4); perm1.PrintPermutation(); return; } } class Permutation { private int N; private int[] ans; Permutation(int N){ this.N = N; this.ans = new int[N]; } void PrintPermutation() { int[] a = new int[N]; for (int i = 0; i < N; i++) { a[i] = i+1; } this.subPrintPerm(a,0); } 続く
719 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/24(日) 17:09:27 ] まぁまぁそういわず。 なんでエラーが出るのかさっぱり分からなくてね。
720 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:09:46 ] >>718 の続き private void subPrintPerm(int[] a, int idx) { // 配列a[]から1つ取り出して残りで再帰呼び出し if (a.length == 1) { ans[idx] = a[0]; ansを表示; return; } for (int i = 0; i < a.length; i++) { int[] b = new int[a.length-1]; ans[idx] = a[i]; int j=0; while (j < b.length) { if (j < i) { b[j] = a[j]; } else { b[j] = a[j+1]; } j++; } this.subPrintPerm(b,idx+1); } } }
721 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:10:15 ] >>715 >>574-576
722 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/24(日) 17:16:06 ] >>721 既出でしたね。 でもそのレスを読んでも分かったよな分からんようなです。 具体的にどうすればいいか示してもらえませんか?
723 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:46:20 ] 今まで書いたソースを消してクソして寝ろ そして二度とブラウザを開かない
724 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/24(日) 17:47:03 ] >>723 分からないんだろ?そういえばいいのにw
725 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/24(日) 17:58:50 ] どう考えてもおれのコードと>>574 のコードは問題点が違います。 おれが書いた>>715 のコードはどこがミスがあるのか 指摘出来る人はいませんか?
726 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:17:40 ] >715 ジェネリックスを使用したList<E>の配列は作れない、言語仕様的に。 したがって、int[][]のように2次元配列にするか、List<List<Integer>>のようにListにListを入れるべし
727 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:21:32 ] ArrayList入れたいのかInteger入れたいのかはっきりしろ。
728 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:23:55 ] 可変長のちんこ入れたいです。
729 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:49:14 ] ArrayList<Integer>[] a = new ArrayList[10]; でいいんじゃね?
730 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/24(日) 18:54:02 ] 現在作成中の ダイクストラ法による最短経路探索プログラムです。 www.uploda.org/uporg1268729.zip.html うpしました。 これでListを使えると便利なので使いたいと思ったのですが、 具体的に今findShortestPath @ MainPanel というのを実装しています。 ここで、toArray周辺でエラーが出て、どういう事だかさっぱり分かりません。 エラーの原因が分かる人は教えてください。
731 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:06:16 ] 730 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
732 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/24(日) 19:08:57 ] さっぱり分からない。
733 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:34:33 ] カレントディレクトリを移動してからEXEを実行したいのですが、下のように書いてもhoge.exeが実行されません。 どう書けばよろしいでしょうか? Runtime.getRuntime().exce(new String[]{"cmd.exe","/C","cd C:\hoge","hoge.exe"}) hoge.exeが自分のルートにファイルを出力する為、カレントディレクトリを移動しなければならず この処理を含む実行ファイルをhoge.exeのフォルダに置くのは避けたいです。
734 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:37:52 ] ProcssBuilder にカレントディレクトリ指定できるものがあったとオモ
735 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:04:50 ] JMenuBarの中にメニューを2つ追加し、それぞれのメニューの中に 同じ名前のJMenuItem、同じActionListenerをセットした場合、 それぞれのMenuItemが選択された際の処理を変えることは可能でしょうか ネットや書籍を調べてみたところ、JMenuItemが選択されたイベントが発生した場合、 そのイベントの名前をgetActionCommandで取得し、条件分岐を行っていましたが 同じ名前のItemが存在する場合の条件分岐方法を見付けることができませんでした 諦めてそれぞれのItemに別々のActionListenerクラスをセットするしかないのでしょうか
736 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:07:51 ] getSourceとJMenuItemを==で比較するという手もある
737 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:21:18 ] 同じ名前のJMenuItemってのが設計おかしくねえか? 見た目が同じだとしても場所とか違う識別子にはなるだろ
738 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:22:28 ] マルチキャストソケットを利用した、簡易チャットルームの ようなものを作成しているのですが、現在接続中のユーザーを 表示させる部分がうまくいきません。 IPで表示させるのですが、取得の方法が悪いのでしょうか? ユーザー表示部分だけなので、宿題スレでなくこちらで質問させて いただきました。よろしくおねがいします。 rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/217.java
739 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:30:45 ] うまくいかないでは解らん。 例外が発生するのか、処理がそこを通らないのか、ちゃんと情報を出せ。 あと、直リンできねーぞ
740 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:50:37 ] >>734 レスありがとうございます。 できればRuntime.getRuntime().execでやりたいと思うのですが、無理でしょうか? やはりjdk1.5ならProcssBuilderを使った方が良いのかな・・・。
741 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:02:36 ] >>739 失礼しました。 特にエラーが出て処理が停止するというこはなく、 表示ボタンを押してもnullが返ってくるため ユーザーのIPが上手く取得できていないのでは ないかと思っています。 ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/main.htm の217番にUPしてあります。
742 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:09:58 ] >741 System.out.println( "ユーザー表示ボタンが押されました" ); って行は通っているのでOK? あとメッセージの表示は問題ない? System.out.println( "アドレスを新規登録しました" ); って行は通ってないのか?
743 名前:デフォルトの名無しさん [2008/02/24(日) 21:24:27 ] tomcat5.5 eclipse を使用してwebアプリを作ろうと思っています。 一つのプロジェクトで複数のTomcatを動かそうと思っています。 この場合、ルートディレクトリが複数で ソースの出力先フォルダ一つしか設定できません。 ということは片方のルートディレクトリにしか サーブレットのクラスは置けないため、 片方のtomcatからしかソースを参照できません。 こういった場合どうすればよいでしょうか。
744 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:38:05 ] 早速見ていただきありがとうございます。 >>742 >System.out.println( "ユーザー表示ボタンが押されました" ); の部分はシステムコンソールに表示されているため 通っているものと思われます。また、メッセージも ""で囲まれている部分はきちんと表示されています。 >System.out.println( "アドレスを新規登録しました" ); この行もシステムコンソールでは表示されているので 通っていると思うのですが・・。
745 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:39:48 ] すまんがだれか、>>743 をエスパーしてくれ。 何となく解る気もするが、 なんで、エクスポートしたwarファイルをもう一つのTomcatに置くのではダメなのかが解らない。
746 名前:デフォルトの名無しさん [2008/02/24(日) 21:43:33 ] >>743 何のためにそれをするのか知らないがeclispeはtomcatのラウンチャーじゃない tomcatは別途立てて、そこにDeployするべき あとeclipseの1プロジェクトで複数のWebアプリケーションを動作させようというのも間違い プロジェクトを分けなさない
747 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:50:47 ] >744 "現在の接続ユーザーは " + userlist + "\n" の部分だが、JTextAreaにまったく反映されないのか? 中身だけが空なのか、どっちだ?
748 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:53:00 ] JDK 6 Update 4が落とせないんですが何が問題なんでしょうか。 エラーは承認することができないという内容で、いくつかの環境で試しましたが同様です。
749 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:53:30 ] >747 userlistの中身がからで 現在の接続ユーザーはnullです という表示になっています。
750 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:56:26 ] >>749 Chatroom#userlistに何も代入していない
751 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 22:02:11 ] >750 回答ありがとうございます。 userlist.add(clientAddr); 上記の文でアドレスが代入されるものと思っていたのですが、 この文の書き方では代入されていないということでしょうか?
752 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 22:03:12 ] それはローカル変数のuserlistであってChatroom#userlistではない
753 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 22:28:32 ] >752 ありがとうございます。入ってると思ってたものが 別のものだったのですね。 助かりました、ありがとうございました。
754 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:29:39 ] Class Parent { private int val; public getVal() { return val; } public setVal(int val) { this.val = val; } public Parent clone() {...} } みたいに、clone() を実装したクラスParentがあったとして、 これを継承した子クラス Child を作ります。 で、この Child でも clone() を実装したいのですが、 その Child#clone() はどうやって実装するのが普通ですか? public Child clone() { Child c = new Child(); c.setVal ( this.getVal() ); ... return c; } と、親クラスの Parent#clone() の存在を完全に無視してもいいもんですか? これだとどうもスマートじゃないような気がして、protected なコンストラクタを 親クラスに追加する、なんて方法も考えたんですけど、 典型的な手法があるのならばご教示ください。
755 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:35:47 ] >>754 class Parent implements Cloneable { private int val; public getVal() { return val; } public setVal(int val) { this.val = val; } public Parent clone() { try{ return (Parent)super.clone(); } catch(CloneNotSupportedException e){ throw new RuntimeException(e); } } } class Child extends Parent { public Child clone() { return (Child)super.clone(); } }
756 名前:デフォルトの名無しさん [2008/02/24(日) 23:40:36 ] Javaの勉強始めました。 アクセス就職子protectedについて理解が足りないので教えてください。 protectedつけることで、 『自分のクラス内のメソッド 又は 継承されたサブクラス内のメソッドからしかアクセスできない』 そのように直感的に感じたのですが、 間違っているようで。 public class Purotekuto { public static void main(String[] args) { Test21 hogehoge = new Test21(); System.out.println( "値を出力:" + hogehoge.protectedInteger ); }} public class Test21 { protected int protectedInteger; Test21() { this.protectedInteger = 0; } public void setValue( int value ) { this.protectedInteger = value; } public int getValue( int value ) { return this.protectedInteger; }} このコードでは、main()から、クラスTest21のメンバ、protectedIntegerにアクセスできずに、 エラーか何かになると思ったのですが、普通に動きました。 自分の考えの何がまずいのでしょうか。。。
757 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:45:28 ] >754 super.clone() を使うかどうかは状況次第じゃね? というか、普通はsuper.clone()は使えない方が多いと思う。 帰ってくるのはParentクラスのインスタンスだから、結局は値をコピーしなければならなくなるから。
758 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:46:09 ] >>754 何のための継承、何のためのオーバーライド。 何がスマートじゃないんだ。感覚的に言われてもな。 ちなみに、cloneを使うなら、Cloneable を implements すること。 // 詳しくは Clonable, Object.clone 参照。 >>756 同じパッケージからもアクセスできるから。以上。
759 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:47:23 ] >756 もう1つ条件があって、「同一パッケージ内からのアクセス」もOK
760 名前:756 [2008/02/25(月) 00:01:54 ] 758,759 ありがとうございます。 指摘を受けて調べました。 パッケージ化しないことには、ソースはばらばらのパッケージ的な扱いと、勝手に勘違いしていました。 デフォルトのパッケージ、という扱いになるのですね。 勉強になりました。
761 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 00:09:47 ] と言うかデフォルトパッケージの使用は避けてくれ。
762 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 00:11:27 ] >>757-758 ありがとうございます。 ちょっと理解できてきました。
763 名前:756,760 mailto:sage [2008/02/25(月) 00:18:14 ] >761 というと、必ず特定のパッケージに入れることを明示することが望ましいということでしょうか。 自分今回痛い目にあったので、761の指示に従って付いてまいりますが。
764 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 00:48:09 ] >>763 デフォルトパッケージ以外のパッケージに属するクラスから 一切呼び出しが出来ない。(JDK 1.4 以降) プログラミングの一般論としても 何らかの名前空間に所属させるのは 良い習慣だと思う。
765 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:00:16 ] >>754 普通はコピーコンストラクタを作る Cloneable は Java の失敗作とジョシュアっちが言ってました
766 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 04:11:37 ] これからjavaを学ぼうと考えています。 JAVAのSDK沢山種類があるようですが、 どれを使用すれば良いでしょうか?
767 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 04:28:17 ] >>766 多分新しいのを使っとけばいいんじゃないだろうか
768 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 04:54:25 ] 使う方のソースはそれで良いけど宣言する方のソースはアノテーション必要でしょ。
769 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 04:55:33 ] ↑誤爆
770 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 07:44:10 ] SE(スタンダードエディション)でおk
771 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 08:40:00 ] >>733 \→\\ それと、カレントドライブの変更まではcdで出来ないけど、 その辺は大丈夫かな?
772 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 09:14:34 ] Timestamp型の変数から"yyyy/MM/dd"といった形の文字列で 値を取り出すにはどうしたらよいでしょうか?
773 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 09:34:57 ] String s = new SimpleDateFormat("yyyy/MM/dd").format(timestamp);
774 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 09:37:02 ] >>772 SimpleDateFormat("yyyy/MM/dd")でformatすれば?
775 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 09:44:18 ] 質問です。 シングルトンを多数作りたいんですが、 private static Singleton instance = new Singleton(); public Singleton getInstance(){return instance;} private Singleton(){} といったおきまりパターンを各クラスに書かないと行けませんが面倒です AbstractSingletonを継承したらgetInstance()で各シングルトンのインスタンスが取れるようになる みたいな事ができれば便利ですけど、staticフィールドなのでそれもママなりません。 なんか旨い方法はありませんか?
776 名前:デフォルトの名無しさん [2008/02/25(月) 09:49:44 ] ド素人質問ですみません;; テキストフィールドに入力された文字列を ボタンが押されたときに変数com_defに入力する プログラムを作りたいのですが、 下のようにやるとローカル変数 i は内部クラスからアクセスされます。final で宣言される必要があります。 とエラーが出ます。 対処法を教えてください。よろしくお願いします。 text[i] = new JTextField("",2); button1[i] = new JButton("変更"); button1[i].addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { int com_def = Integer.parseInt(text[i].getText()); System.out.println(""+com_def); } });
777 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 10:01:15 ] >>773 , 774 ありがとうございます。 できました。
778 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 10:11:39 ] >>775 eclipse ならテンプレートを使って、少し楽が出来る。下のほうに例がある。 ttp://www.eclipsewiki.net/eclipse/index.php?%A5%C6%A5%F3%A5%D7%A5%EC%A1%BC%A5%C8 >>776 メソッドとその内部クラスとで共用で使う変数は、メソッド内 final として、コンパイルを通す。 他にも方法はあると思うけど、それ以上なら、クラス内クラスにしてちゃんと定義しましょ。
779 名前:デフォルトの名無しさん [2008/02/25(月) 16:41:22 ] String s = "ab" + \r + "cd" + \n + "ef"; 正しく直してください。
780 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 16:43:38 ] String s = "ab\rcd\nef"; 直しました。
781 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 16:43:54 ] String s = "ab\rcd\nef";
782 名前:781 mailto:sage [2008/02/25(月) 16:44:30 ] かぶった...orz
783 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 16:46:12 ] 780,781 ありがとうございます。
784 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 16:47:23 ] qa3808666 かぶってる...
785 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 17:24:32 ] それはかぶってるんじゃなくてマルチポストだろう…
786 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 17:47:04 ] tomcatのjsp-examplesにあるFORM認証のサンプルについて質問です。 まず操作を1->5の順で行った結果を書きます。 1.hostname:port/jsp-examples/security/protected/index.jsp にアクセスするとFORM認証機能が働きlogin.jspが表示される。 2.login.jsp -> Username/Passwordを間違えて入力->error.jspが表示される。 3.error.jsp -> "try again"をクリック -> login.jspが表示される。 4.login.jsp -> Username/Passwordを正しく入力 -> login.jspが再表示される。 5.login.jsp -> Username/Passwordを正しく入力 -> HTTPステータス 404 - /jsp-examples/security/protected/j_security_check 4でUsername/Passwordを正しく入力しているので1のindex.jspに飛ぶことを期待したのですが、login.jspが再表示されました。 login.jspの出力内容がブラウザに表示された時に、ソースを表示してみると □2のlogin.jsp <form method="POST" action='j_security_check;jsessionid=74394043647C95BAC48CC67ECDFFEFB7' > □4のlogin.jsp <form method="POST" action='j_security_check' > 比較してみると、4のソースではセッションIDが付加されていない為に、本来の遷移先のURLを見失ってしまっている、ということでしょうか? jspソースファイルを見ると、login.jspもerror.jspもresponse.encodeURL()の結果をセットしていました。 login.jspのリクエスト箇所 <form method="POST" action='<%= response.encodeURL("j_security_check") %>' > error.jspからlogin.jspを表示するリンク箇所 <a href='<%= response.encodeURL("login.jsp") %>'>again</a>. 今のままだとerror.jspからブラウザの戻るボタンで前画面(login.jsp)に戻らないと、認証後に期待したURLへ遷移してくれません。 error.jspにあるアンカータグでlogin.jspに戻った時も同じ動きにさせたいのですが、どのように修正すれば対応できるでしょうか?
787 名前:786 mailto:sage [2008/02/25(月) 17:51:39 ] 携帯のブラウザでも見るので「JavaScriptは使わない」という前提でお願いします。
788 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 18:37:01 ] 自作のある圧縮アーカイブの解凍ストリームを作ろうと思っています。 その圧縮形式はライブラリを持っており、InflaterInputStreamを利用すると比較的に楽に実現できると考えたのですが、 read()やread(byte[],int,int)など、いずれにせよユーザーが決めるバッファのサイズで解凍を行う必要があるため、今回のような解凍する側で単一バイト読み込み時に出力されるデータを決めるライブラリを持った圧縮形式ではどのように行うべきなのか分かりません。 解凍したデータもバッファリングして、ユーザーのサイズに合わせて出力すれば実現はできると思うのですが、何か他にいい方法はないものかと思い質問しました。 Inflaterのソースも読んでみたのですが、肝心の部分はnativeメソッドになっており結局どのような実装なのか分かりませんでした。良い方法がございましたら教えてください。
789 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 19:24:42 ] >>788 >解凍したデータもバッファリングして、ユーザーのサイズに合わせて出力すれば実現はできると思うのですが それしかないのでは・・・ 1バイトだけ返すread()を実装すればあとはデフォルトの実装があるので、 class MyInputStream extends InputStream { private byte[] buf; private int pos, size; public int read() throws IOException { if (pos == size) { // 解凍データをbufに詰めてsizeをセット pos = 0; } return buf[pos++]; } } これだけでも一応動くよ InflaterInputStreamをどう利用しようとしてるのかよくわからんが、あれはzlibストリーム専用
790 名前:789 mailto:sage [2008/02/25(月) 19:27:03 ] ×return buf[pos++]; ○return buf[pos++] & 255; でした・・・
791 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 20:59:08 ] >>775 邪道かもしれんが。 なんか旨い方法、ということなら。 Enum の中に書く定数は1つ1つがシングルトンだ。 全定数に共通のメソッドも振る舞いが異なるメソッドも実装できるぞ。
792 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/25(月) 21:04:53 ] Javaにはプリミティブと参照が混在しています。 Listなどを使う時には参照型しか使えないのですが、 いっそすべてのintをIntegerに書き換えた方がいいでしょうか? プリミティブ型の扱いをみなさんどうしていますか? おれはRubyからJavaに来たので数字が参照型じゃないというのに すごく違和感を感じます。ましてや混在しているというのは非常事態です。 今すごく悩んでいます。 みなさんがどうしているかを知りたいです。