[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 06/11 10:36 / Filesize : 275 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



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あたりで。

849 名前:デフォルトの名無しさん [2008/02/26(火) 18:51:52 ]
一通りテキスト終わったら、トレーニング用のテキスト売ってるんだけど
それ買ってやったほうがいいかな?
てか、なんかJAVAの勉強しても何か実感わかないな〜
やっぱ実際にもの作らんとそういうのは分からないものなのか?

850 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:59:39 ]
>>849
どんなテキストか知らないけど
ウィンドウ開いたりボタン押したり絵を出したりといったGUIをやると
実感をわかせるのに効果的だと思う

851 名前:デフォルトの名無しさん [2008/02/26(火) 19:07:46 ]
ほうほう

852 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 19:13:33 ]
>>849
何か自分で作ってみたいものはないの?
目標を決めるといいかもよ

853 名前:デフォルトの名無しさん [2008/02/26(火) 20:41:10 ]
今高校3年生だから、専門学校へ行ったときの予習をしてるんだ。
javaでどんなの作れる?とりあえず簡単なものを作ってみたい。

854 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 20:42:27 ]
どんなものでも

855 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 20:44:02 ]
そんなことよりもう一年勉強した方が

856 名前:ibj [2008/02/26(火) 20:55:19 ]
以下のソースコードで
alice1 == alice2:true
alice1 == alice3:false
Chapter5.Employee[name = null, salary = 75000.0, hireDay = Tue Dec 15 00:00:00 JST 1987]
Exception in thread "main" java.lang.NullPointerException
at Chapter5.Employee.equals(Employee.java:48)
at Chapter5.EqualsTest.main(EqualsTest.java:17)
と ぬるぽが出てしまいます。
2時間ほど考えたのですが原因がわかりません・・・。super(name)の部分で
どうにかなっていると思うのですがロジック的に正しいと思うのですが・・・。
教えていただけたら幸いです。

857 名前:ibj [2008/02/26(火) 20:56:07 ]
package Chapter5;

public class EqualsTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Employee alice1 = new Employee("Alice Adams", 75000, 1987, 12, 15);
Employee alice2 = alice1;
Employee alice3 = new Employee("Alice Adams", 75000, 1987, 12, 15);
Employee bob = new Employee("Bob Brandson", 50000, 1989, 10, 1);

System.out.println("alice1 == alice2:" + (alice1 == alice2));
System.out.println("alice1 == alice3:" + (alice1 == alice3));
System.out.println("alice1.equals(alice3):" + alice1.equals(alice3));
System.out.println("alice1.equals(bob):" + alice1.equals(bob));

Manager carl = new Manager("Carl Cracker", 80000, 1987, 12, 25);
Manager boss = new Manager("Carl Cracker", 80000, 1987, 12, 25);
boss.setBonus(5000);
System.out.println("boss.toString():" + boss.toString());
System.out.println("carl.equals(boss):" + carl.equals(boss));
}

}



858 名前:ibj [2008/02/26(火) 20:56:36 ]
package Chapter5;

abstract class Person{
private String name;

public Person(String name){
this.name = name;
}

public abstract String getDescription();

public String getName(){
return this.name;
}
}


859 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 20:56:49 ]
専門なんて行っても勉強してる暇ないぞ。
情報系の大学いった方がまし

860 名前:ibj [2008/02/26(火) 21:00:13 ]
あう・・改行多すぎて書き込めない

861 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 21:44:23 ]
>>856
Employee にも何故か name があって、equals で、
other.name.equals(name)で比較してるんじゃないかと。

862 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 00:58:27 ]
力添えください。

ttp://www.nextindex.net/java/thread/sleep.html
に記述のあるソースの中で、
main()がthrows InterruptExceptionとしてある理由がわからないのですが、
どういう意味なのでしょうか。
教えてください。
今回実行してみた感じ、定義をしなくとも実行には問題がありませんでした。
どの部分が、InterruptExceptionを投げるといっているのでしょうか?
少なくともtry-catchの外しか考えられないのですが、どこかわかりませんでした。



863 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 01:06:39 ]
そのページの赤文字で書かれてるThread.sleep(1000);の所が投げてる。
javadocに書いてあるから読むと良いよ。

864 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 01:16:59 ]
文字列のサイズの取得で、
String s="あ";
2を取得する方法を教えてください。

865 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 01:18:11 ]
s.getBytes().length

866 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 01:28:19 ]
3になりました

867 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 01:36:09 ]
862です。
レスありがとうございます、853。
自分もThread.sleep(...);
がInterruptedExceptionを投げる可能性があることはなんとなく覚えたのですが、
今回の場合は、try{}catch(InterruptedEception e){}、の記述によって、
メソッドがthrowsを設定する必要は内容に感じたのです。
うーん…。



868 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 01:37:35 ]
s.length() + 1

869 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 02:06:26 ]
"qa3813364".length();

870 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 02:17:57 ]
>>865
GJ!

871 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 02:40:21 ]
>>840
>>なお継承はカプセル化を壊すので、protected を使うのはその一線を越えます。
>この点について、初心者向けの説明をいただけませんか。

なんてことはない、メソッドをオーバライドすると、親クラスがそのメソッドを呼び出している場合
その挙動にも影響を与えるため、どのような影響があるか(どのように呼び出されているか)を
知る必要があるという意味で、実装が漏れてるという見方ができる。

継承よりも委譲の方が強固だが、継承のほうがお手軽なので
最初は継承を使って、事が複雑になってきたら、委譲にリファクタリングするのがアジャイル的

872 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 02:44:06 ]
委譲めんどくせえ

873 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 02:59:17 ]
>>867
InterruptedException を飲み込んでいいのは、
実行中のタスクのキャンセレーションポリシーと
実行しているスレッドのインタラクションポリシーが明記してあり
(あるいはそのスレッドのライフサイクルの制御権があり)、
ちょうど両者とも、InterruptedException を飲み込んでOKな場合だけ。

インタラプトを遅延させて処理を継続したい場合は
Thread.currentThread().interupt()を
処理が継続できない・放棄する場合は
InterruptedException を再投げするのが定石


874 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 03:00:53 ]
>>867
そうだね必要ないな
たぶんどこかからコピペしてきた消し忘れかなんかだろう
ちなみに、InterruptedExceptionを揉み消すのは良くない習慣だ

875 名前:873 mailto:sage [2008/02/27(水) 03:13:13 ]
間違った。
2つのポリシーが上手い具合にOKなときにやっていいのは、インタラプトの発行だった。

タスクが InterruptedExceptionを飲み込んでいいのは、
そのタスクが IntteruptedException を飲み込んでOKなポリシーを持つスレッドからしか
呼び出されないことが保証されている場合だけだな、たぶん

main() は、どこからともなくやって来たスレッドで実行されるから、
基本的に飲み込んではいけないはず

876 名前:873 mailto:sage [2008/02/27(水) 03:50:52 ]
間違った。
「インタラプトすると不正な挙動をします」というポリシーを明記したタスクとして
InterruptExceptionを飲み込むならば、単に、

「インタラプトしてはいけないタスク」
+「インタラプトするとエラーメッセージを吐いて終了するっぽいメインスレッド」
=「このスレッド/タスクにインタラプトしてはいけない」

となるだけだった。さあ、どんどん飲み込みましょうねぇ


877 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 05:38:33 ]
>>864
s.getBytes("Windows-31J").length
など。

ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/lang/String.html#getBytes(java.lang.String)



878 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 08:04:00 ]
Beanのbooleanプロパティのgetter/setterメソッドの命名について質問です。
たとえばbeautifulというプロパティとしたら規則に従いますと
単純にisBeautiful(),setBeautiful(boolean)となります。
しかし、別の例で「上書き確認を表示する」など動詞的なbooleanプロパティ、confirmOverwriteを考える場合
isConfirmOverwrite(),setConfirmOverwrite(boolean)と、とても気持ちが悪いです。
このような場合は変数名を考え直す必要があるのでしょうか?
それともこういうもの、ということで割り切ったほうがいいのでしょうか?

879 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 09:13:57 ]
最近はokwaveとか教えてgooとかと
マルチするのが流行りなのか

880 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 09:19:46 ]
-ableをつける

isConfirmOverwritable()
setConfirmOverwritable(boolean)

881 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 09:23:42 ]
その場合 confirm に able を付けるべきだと思うんだ

882 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 09:52:15 ]
なるほどー!かなりすっきりしました。
ありがとうございます!!

883 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 11:17:58 ]
JasperReportsで帳票毎に四角形の色を毎回変えたいんだけど
どうしたらいいですか?

iReoprtで
rectangle、backcolorを変更するというのはわかるんですが、
毎回違うとどうしたらいいのでしょうか?



884 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 12:00:12 ]
毎回ってのが意味解らん。
毎ページなのか、毎項なのか、毎行なのか、毎カラムなのか。

まずは日本語でおk

885 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 12:20:01 ]
そもそもJava以前に、自分が抱えている問題を把握できていないケースが多い気がする。
だから日本語がおかしいし、説明されても理解できない。


886 名前:デフォルトの名無しさん [2008/02/27(水) 12:41:34 ]
右シフトでどっちが高速なのか試してください。
>> >>>

887 名前:883 mailto:sage [2008/02/27(水) 13:01:04 ]
枚ページです。

コンパイルしちゃった後でも変更できるんですか?




888 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 13:26:21 ]
sunはInterruptedExceptionは握り潰すな再スローしろってスタンスだっけ?

889 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 14:26:24 ]
>>888
このへんが参考になるかも
www.ibm.com/developerworks/jp/java/library/j-jtp05236/

890 名前:デフォルトの名無しさん [2008/02/27(水) 19:00:22 ]
java sound を使うとパソコンから盗聴が可能ですか

891 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 19:06:52 ]
こっちでやれ
pc11.2ch.net/test/read.cgi/tech/1201346803/l50

892 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 21:56:31 ]
Java の理論と実践: アトミックで行く
www.ibm.com/developerworks/jp/java/library/j-jtp11234/

このページにある、リスト3: SimulatedCAS クラスの compareAndSwap について質問です。
SimulatedCAS のコードのすぐ下にある説明書きに、
「CASベースの並行アルゴリズムは、スレッドがロックを待つ必要が全くないので、lock-freeと呼ばれます」
という記述があります。

しかし SimulatedCAS の compareAndSwap メソッドは synchronized メソッドに
なっています。Simulated って書いてあるから実際使うときは違うやつ使うのか
なと思いきや、 リスト4 のコードで思いっきり使ってあります。

compare-and-swap アルゴリズムを真似たプログラムは、 synchronized であっても
ロックされないように最適化されるということでしょうか?

893 名前:デフォルトの名無しさん [2008/02/27(水) 22:05:06 ]
レンタルサーバー借りて
毎日一回株価を取得してDBに放り込むプログラムを作ろうと思ってるんだけど
JAVAで時間がきたらサーバー上で実行するってことかのう?
どんな仕組みでできる?


それだけわかればDBにも移せるしダウンロードもできそうなだんだが

894 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 22:17:24 ]
普通 cron 使う。

895 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 23:33:28 ]
実行先のJREバージョンに応じて違う処理をさせたいと考えています。
バージョンに応じて違うクラスファイルを読み込むようにするには
どうしたらよいでしょうか?

JARアーカイブとMANIFESTファイルを利用しており、クラスライブラリが
たくさんあるのでバージョンごとに違うJARを作成するのは避けたいのですが・・・

896 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 23:43:07 ]
Class.forName(javaVersionName+ClassName).newInstance();

897 名前:867 mailto:sage [2008/02/28(木) 00:01:48 ]
いくつかのレスポンスありがとうございます。
申し訳ないんですが、ぜんぜんわからないです。
1時間くらいgoogleしてみたのですが、
そこから派生するキーワードや、
似たような単語が、同様の意味を成しているのかもわかりませんでした。
せっかく手を差し伸べていただいたところ申し訳ありません。

飲み込む、もみ消す、握りつぶす、
非チェック例外、チェック例外、チェック済み例外、チェックされる例外…
飲み込むというのは、InterruptedExceptionを投げずに処理してしまうということなのでしょうか…



898 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:11:59 ]
オブジェクト指向初心者です。
調べるの面倒です。教えてください。

このスレッドを読んでいて、初めて 委譲 を知ったのですが、
クラスの外部から、インスタンスのフィールドにアクセスできる仕様というのは、
オブジェクト指向的に、思い切り間違えなのでしょうか。
委譲 の概念が普通に使われるためには、
フィールドへのアクセスは、
クラスに所属するメソッド経由で、アクセスされる仕様である場合でないと、
アクセス方法に統一性がもたせられませんよね。

そもそも、このような質問をする原因が、
なぜフィールドの値をpublicにするなど、
所属クラス内のメソッド以外からの、フィールド変数(?)へのアクセスが許可される必要があるのか
が、わからないためです。

質問の仕方が、気に入らなければ、無視してください。
たぶん調べてもまともな回答にたどり着くに、長い時間がかかりそうだと思い、怠けています。

899 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:19:18 ]
答えるの面倒です。教えません。

900 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:21:29 ]
>>895
interface AnythingExecutor{
 public void doAnything();
}

public class AnythingExecutor14 implements AnythingExecutor{
 public void doAnything(){
  // JRE 1.4 用の処理
 }
}

public class AnythingExecutorFactory{
 public static AnythingExecutor create(){
  // JRE のバージョンを取得する
  if( 1.4 だった){
   return new AnythingExecutor14 ();
  }
  else if( 1.5 だった){
   return new AnythingExecutor15 ();
  }
  ...
 }
}

// 実際の処理
AnythingExecutor executor = AnythingExecutorFactory.create();
executor.doAnything();

901 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:23:16 ]
>>898
それは Java に対する質問ではない。
適当なスレを探すよろし。

902 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:29:32 ]
>>898
問題ないんじゃないか。setter/getter があるってことは、すなわち
public フィールドとほとんど等値なんだし。

ただ、フィールドへのアクセスと同時に何かしたい、外部からは
read のみに変えたい、みたいなことってことが結構ある。
そこで、フィールドは private にして隠す。アクセスは public な
getter/setter からのみ。というよくある構成に統一することで、
機能追加に対応しやすくなるからこうしましょう、という寸法。

中には「フィールドへのアクセスもオブジェクトに対する"操作"で
あるから、メソッドであるべき」なんていう人もいると思う。
まぁその辺をどう割り切るかは個人個人によるのでは。

あと委譲の話と何が関係あるのかが分からなかった。

903 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 01:11:04 ]
>>902
> 問題ないんじゃないか。setter/getter があるってことは、すなわち
> public フィールドとほとんど等値なんだし。

1つ大きな違いがあるぞ。setter/getterの場合、本来は違うものを同じものに見せ掛けるのが簡単にできる。
後付けで振舞いを変えるとか、透過的に処理を割り込ませたりするとか、実体をリモートに持たせるとか。

904 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 01:33:31 ]
setter/getterメソッドをわざわざ追加する意味がさっぱりわかなかったので
publicフィールドにガンガンアクセスするコードを書いてるのですが、ひょっとして一般的じゃないんですか?
>>903さんがどういう処理を指してるのかいまいちつかめません。。

905 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 01:38:00 ]
>>896,900
うわー、ありがとうございます!
早速試してみます。

906 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 01:38:32 ]
>>877
やさしいなー

907 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 01:54:20 ]
>>904
意味が分からなければ今のスタイルを続けていけばいい。
そのうち面倒ごとが起こったときにアクセッサの意義が分かるよ。



908 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 07:09:55 ]
>>892
値を一つ変えるのに、払うコストをどれだけ小さく出来るか、という話。
この例はシミュレートだけど、ハードウェアでサポートしている CPU もあるよ、と言うこと。

「スレッドがロックを待つ必要が全くない」というのは、
リスト2で行われてるような処理をする必要がない、ということ。

リスト4で注目するべき点は、increment メソッド内の get と CAS の間で、
継続したロックが保持されていないこと。
そして、increment 自体が呼ばれてから値を戻すまでに
value の get 値が 1 "以上"変わること。

909 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 09:16:22 ]
test

910 名前:Hoge mailto:sage [2008/02/28(木) 11:32:12 ]
はじめまして、質問させていただきます。

DJUnitを使って単体テストを行っているのですが、
テスト結果の確認方法として、

  ○○クラスの△△メソッドが何回呼ばれたか?

を確認したいのですが、方法がわかりません。

assertCalled(String, String);
を使えば、メソッドが呼ばれたかどうかは確認できますが、
何回呼ばれたかは確認できません。

なにか良い方法はないでしょうか?

911 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 12:30:14 ]
未だに使っている所あるとは驚き

912 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 12:44:49 ]
>>892
それらは 「振る舞いを示すコード」 というタイトルや Simulated というクラス名からわかるように、
単に動作を説明するための例にすぎない。 真似ても別に最適化されない。
実際にアトミック操作したい場合は java.util.concurrent.atomic.AtomicInteger を使う。
リスト5では AtomicInteger 使ってるだろ。

913 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 13:46:34 ]
だって柏原だって経済学部じゃん

914 名前:Hoge [2008/02/28(木) 13:47:56 ]
>>910

すいません。自己解決しました。
調査不足でした。

getCallCount(String, String)

という便利なメソッドがありました。

ありがとうございました。

915 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 16:33:08 ]
FileInputStream fis = new FileInputStream(in); // in : 入力ファイル
fis.read();
....
fis.getChannel().position(0);
fis.read();
...
fis.close();
今までFileChannelを知らず、一方通行なInputStreamでランダムにアクセスできるのは気持ちが悪いのですが、こんな感じでポインター移動するのって安全ですか?

916 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 16:36:04 ]
そのストリームがファイルだと分かってるから良いんじゃねーの。

917 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 17:20:24 ]
そうですよね。おーかなり自由度が増しますね。
ありがとうございました。



918 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 22:11:27 ]
swingについて、教えてください。

PaneとPanelの違いがよくわからないのですが、
JComponentを継承しているコンテナに関して、
付加機能が一番小さいものがJPanelで、
JPanel以上の何らかの機能が付け加わったものがPaneなのでしょうか?
コンテナの中でPanelだけ、PaneでなくてPanelと呼ばれる理由は何なのでしょうか?

あと、もうひとつ。
Containerクラスのオブジェクト(というかJFrame.setContentPane())をJPanelにキャストして、
コンテナとしている参考コードがあったのですが、
サブクラスの変数にキャストさせ(て代入する)理由がわかりませんでした。
なぜなのでしょうか?

919 名前:918 mailto:sage [2008/02/28(木) 22:13:40 ]
918です。
918で記述ミスしました。
>JFrame.setContentPane()
JFrame.getContentPane()
でした。

(JFrame#getContentPane() と記述するとどういう意味なのでしょうか…。)

よろしく御願い致します。

920 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 22:29:34 ]
>>918
さぁ?
名前なんて付ける人の趣味みたいなもんだし、深く考えても仕方ないような

ちなみに、JComponentを継承してるコンテナ、というが
JComponentはContainerのサブクラスだから、JComponent自体がコンテナだよ
まぁJButtonの中に他のコンポーネント入れたりはあんまりしないけれど・・・

ContainerになくてJPanelにあるメソッドを何か使いたかったんじゃないかね
コード見てわからなければ書いた人に聞くしかない

JFrame#getContentPane()はJFrameクラスのgetContentPane()メソッドのこと
JFrame.getContentPane()と書くと、staticメソッドを呼んだ戻り値について言ってるようにも見えるので、区別のために

921 名前:918 mailto:sage [2008/02/28(木) 22:38:34 ]
>まぁJButtonの中に他のコンポーネント入れたりはあんまりしないけれど・・・
!!!え?
そうか、継承しているから継承もとの機能はあるのか…。
無効になっていて然り、とか、どこかで思っていたのか、気がつきませんでした。

ContainerのオブジェクトをContainerのサブクラスにすると、サブクラスのメソッドが使えるということで?
これは、例外が発生しそうで危ない予感もするのですが、
そういうコードを意識して使うような設計もあるのですか?

>JFrame#getContentPane()
ありがとうございます。自力だとどれだけ時間かかったかわかりません。
これをgoogleにはどうすればいいんだろう…。記号が…。スレ違いですね、失礼。

922 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 22:49:18 ]
>>921
>ContainerのオブジェクトをContainerのサブクラスにすると、サブクラスのメソッドが使えるということで? 

いや、まさか。
JFrame#getContentPane()が返すContainerが実際にはJPanelだとわかっている場合だけ出来る。
実際にJPanelを返すからといっても、ドキュメントにそんなことは書かれていないので、良い習慣とは言えない。

923 名前:918=921 mailto:sage [2008/02/28(木) 22:50:58 ]
>920
>まぁJButtonの中に他のコンポーネント入れたりはあんまりしないけれど・・・
感動した。
感動しました。
変な方言を覚える前に、920の指示の元Javaを学びたい!
自分に本か、Web資料の推薦を!

924 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 22:59:41 ]
graphic JAVA Mastering the JFC
これ読めばSwingの仕組みは大抵わかるよ。
AWTから読むと上下*2の四冊だけどかなり勉強になる。

925 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 23:07:27 ]
>>921
> 例外が発生しそうで危ない予感
どうしてもやりたければ、instanceof でJPanel だと確認してからキャストを行う。
というより、キャストの前には必ず instanceof で対象を確認すること。

926 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 08:02:24 ]
質問です。

javaはビッグエンディアンという記述をよく見かけますが、
その根拠がよくわかりません。
例)ttp://www.geocities.jp/flame_freezing_charm/Works/Memo/JAVA/prog.htm

ご存知の方いましたら教えてもらえないでしょうか?



927 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 08:06:33 ]
int x = 0x12345678;
System.out.printf("%x%n", x & 0xFF);

これが 78 と出ればビッグエンディアン、12 と出ればリトルエンディアン。



928 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 08:10:58 ]
>>927
そのコードを実行しても、実行したプラットフォームのみでしか
エンディアンは確定しないのではないですか?


929 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 08:49:18 ]
>>926
java.io.DataInput#readInt() とか java.io.DataOutput#writeInt(int) みたいに、
標準APIの一部のクラスがビッグエンディアン使ってて、
さらに、1.3までは標準APIにリトルエンディアンで入出力できるクラスが無かったから。

930 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 08:53:43 ]
>>928
というか、>>927のコードを(System.out.printfをprintfに置き換えたものを)
C言語でやっても、エンディアンなんかわからないけどね。

931 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 10:44:36 ]
はいはい! 先生方に質問よろしいでしょうか!
Javaアプレットを使ってブラウザ画面の自動撮影を行いたいんですが、どういう組み方をすれば良いんでしょうか!

訪問者が来る度にスクリーンをキャプチャしてサーバーに保存、
自分の環境では確認できない動的なサイトの動作チェックに使いたいと思います!

932 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 11:13:12 ]
>>931
セキュリティ上の問題があるので無理。

933 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 11:52:57 ]
質問です。
www.techscore.com/tech/J2SE/Thread/5-2.html
上記のソースにて、queue.size() == 1の時は、put()からのqueue.addFirst(obj)呼び出しと、
get()からのqueue.removeLast()呼び出しが同時に呼び出される可能性があり、
LinkedListはスレッドセーフではないから問題あり、と思うのですが認識あってますか?
notifyAll()の使い方の解説なので、ソースにケチをつけてる訳ではないです。

934 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 12:10:26 ]
>>933
synchronized付いてるから同時には呼び出されない

935 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 15:29:18 ]
>>932
ええ、そんな!
何とかなりませんか! 先生!

936 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 15:39:42 ]
例えば!
Robotを使いスクリーン画像を取得!
そのデータをURLConnectionでCGIに送り、
CGIでログを保存するみたいな形でできそうな気がするんです!

問題はRobotの自動実行が可能かどうかで!
もし不可能なら利用者にボタンを押させる方法でも構いません!
やりたいのは動的なサイトの確認であって、不正行為ではないんです!
だから利用者の確認をしっかり取らなければならないというのであれば従います!

先生お願いします!
僕に僅かでも良いので知恵をお貸し下さい!

937 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 15:50:40 ]
例えば!
Robotなんてアプレットで許したらマウスも自動で動かせる!
そしてマウスで勝手に送信ボタンを押させ、
CGIで不正取得なんかもできそうな気がするんです!

問題はその動作が利用者がやったのかRobotがやったのかで!
もし不可能なら不正取得かサイトの確認か判断が付きません!
やりたいのが動的なサイトの確認であって、不正行為ではないと証明できないんです!
だからアプレットではそんなことは許されていなくて、それにみんな従います!

先生お願いします!
僅かでもいいので理解してください!



938 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 15:57:58 ]
javaで画面のキャプチャなんて取れるの?

939 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 16:01:16 ]
質問者も言ってるように、Robot使えば可能

あと、ぐぐったら
q.hatena.ne.jp/1138377277
こんなんがでてきたよ。
これで目的は達成できるかな?

940 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 16:03:14 ]
いつぞやの謎スクリプトを髣髴とさせるな。
// CGI を設置できるのだから、問題のSSを送ってもらえば終了。

>>938
java.awt.Robot.createScreenCapture(Rectangle) で出来ますよ。

941 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 16:12:46 ]
>>939
ありがとうございます先生!

ttp://browsershots.org/
このツールでほとんどの環境が確認できました!
さすが先生です! また何かあったときよろしくお願いいたします!

942 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 16:25:28 ]
>>937
ええ! ということは先生!
アプレットではRobotの使用ができないということなんでしょうか!

943 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 16:55:31 ]
>>942
署名付ければ出来なくは無い
でもそんなアプレット誰も実行してくれないだろう
スクリーンショット自動送信なんて、機密情報もれまくり
お前が今見てるその秘密の画像も勝手に送信されてるよ

944 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 18:50:25 ]
>>943
そうなんですか!
何から何までありがとうございます!

945 名前:デフォルトの名無しさん [2008/02/29(金) 20:28:21 ]
技術的に出来ないのと倫理的に出来ないのは分けて書こうぜ
紛らわしい

946 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 21:12:49 ]
>>941で目的達成できてるなら、質問者には技術的にできるかできないかなんてどーでも良くなってるんじゃ?

947 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:39:40 ]
Script API で実行するスクリプトだけセキュリティ制限かけられない?
今のままだとファイル消したりネットワークアクセスしたりやりたい放題なんだけど。



948 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 02:05:29 ]
標準APIじゃ無理。

949 名前:デフォルトの名無しさん [2008/03/01(土) 03:28:21 ]
コメントをUTF-8で書いてるんだけど、Javadocにすると文字化けする。
何とかできないでしょうか?

950 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 03:33:02 ]
>>949
javadoc コマンドの -encoding か -charset
これぐらいはマニュアル見て発見しよーぜ。


951 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 03:33:04 ]
>>949
javadoc -encoding UTF-8

952 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 03:37:38 ]
>>949
javadocだけじゃなくてコンパイルするときにも警告が出ない?
システムのデフォルトの文字エンコード以外を使うときはencodingオプションを

953 名前:デフォルトの名無しさん [2008/03/01(土) 07:52:08 ]
本当に基本的な質問で申し訳ありません。
フォントを変更したときに
setFontでPLAINに変更してもデフォルトのボールドのかかった
フォントが印刷に反映されません。
どこかで読んだと思い過去スレで探したのですが見つかりません。
教えていただければ幸いです。

954 名前:デフォルトの名無しさん [2008/03/01(土) 09:02:08 ]
public class sample69 {
public static void main(String[] args) {
p_calc.Calc calc =new p_calc.Calc();
System.out.println(calc.sum(1,2));
}
}
コンパイルすると、

955 名前:デフォルトの名無しさん [2008/03/01(土) 09:02:59 ]
c:\source>javac sample69.java
.\p_calc.java:3: ')' がありません。
int sum(int i; int j){
^
.\p_calc.java:3: ';' がありません。
int sum(int i; int j){
^
.\p_calc.java:8: クラス sample68 は public であり、ファイル sample68.java で宣
しなければなりません。
public class sample68 {
^
sample69.java:3: p_calc にアクセスできません。
クラスファイル .\p_calc.java は不正です。
ファイルにクラス p_calc が含まれていません。
削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。
p_calc.Calc calc =new p_calc.Calc();
^
エラー 4 個
これが出ます。原因はなんでしょうか?

956 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 09:18:13 ]
>>955
1. 2 と同じ原因。i の後のセミコロン。
3. ファイル名と public なクラス名が違う。
4. p_calc クラスがコンパイル出来ず、実行ファイルが見つからない。

957 名前:デフォルトの名無しさん [2008/03/01(土) 09:46:26 ]
sample69をコンパイルしようとしているのに、sample68のことが出るって変じゃあないですか?



958 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:34:17 ]
>>957
とくに変じゃないよ。
sample69 で使われている p_calc.Calc を見つけるために p_calc.java
もコンパイルしているんでしょう。


959 名前:デフォルトの名無しさん [2008/03/01(土) 10:51:05 ]
今日の日付を
 Date date = new Date();
 SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
 String today = sdf1.format(date);
で取得して、日付2008/3/10と比較させ今の日時より前か後かという判定を
行いたいのですが、具体的にどうすればよいのでしょう?

960 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:57:08 ]
>>959
Calendar#afterとCalendar#beforeを読むべし
実際はGregorianCalendarになるけどな

961 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:59:05 ]
>>960
ちょっと調べてみます

962 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 11:21:03 ]
音声認識に興味があるんだけど、Java Speech APIで実用に耐えられそうですか?
それともC++あたりに鞍替えした方がいいですか?


963 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 11:23:35 ]
_

964 名前:959 mailto:sage [2008/03/01(土) 11:27:16 ]
調べて書いてみたのですが、今日の時刻はこんな感じでよいのでしょうか?

 SimpleDateFormat dateformat = new SimpleDateFormat("yyyy/MM/dd");
 Date now = new Date(); //現在時刻を取得
 String today = dateformat.format(now); //変数todayに今日の時刻をyyyy/MM/dd型でいれる

965 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 12:08:15 ]
面倒くさいから、y*10000+m*100+d同士で比較しちゃう。

966 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 12:17:14 ]
Strutsアプリケーションを作成しているのですが
セッションIDをSHA-1でハッシュ化するにはどうしたらよいでしょうか?

967 名前:959 mailto:sage [2008/03/01(土) 12:20:16 ]
ここまでできました
 //今日の日付を取得
 Date now = new Date(); //今日の日付
 SimpleDateFormat dateformat = new SimpleDateFormat("yyyy/MM/dd"); //型の指定

 //日付の比較
 if (now.before(dateformat.parse("2005/1/1"))) {
 //今日が2005/1/1より前のときの処理
 }else{
//今日が2005/1/1より後のときの処理
}

ただ、これだと1番最後の行でエラーがでてしまいます・・
エラーは 「処理されない例外の型 ParseException」です



968 名前:959 [2008/03/01(土) 12:21:38 ]
エラーは一番最後じゃなくて
if (now.before(dateformat.parse("2005/1/1"))) {  のところでした

969 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 12:41:34 ]
>>966
Javaでダイジェストを生成する
ttp://www.atmarkit.co.jp/fjava/javatips/117java021.html

>>967
> 数値: フォーマットには、パターン文字の数は最小桁数になります。
二文字使ってるから最低二桁なのでは?

970 名前:959 [2008/03/01(土) 12:52:53 ]
いろいろ調べてるんですがよくわからないことばかりです
日付の比較のところがよくないとは思うのですが;;

// 今日の日付を取得
Date now = new Date(); //今日の日付
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy/MM/dd"); //型の指定
String today = dateformat.format(now); //変数todayに今の時刻がはいる
解約予定日を取得
SimpleDateFormat kaiyaku = new SimpleDateFormat("yyyy/MM/dd");
String kaiyakuyoteibi = kaiyaku.format(2005/10/15);

// 日付の比較
if ( ) {
//System.out.println("今日は2002/06/10よりも前の日です。");
}else{

}

971 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 13:09:40 ]
時刻も含めて比較したいなら、Date#compareToでできる。
日付で切り捨てたいなら、Calendarに変換してsetで時刻を0にする。

ユーティリティメソッド作ってそこで比較すべし。
あちこちで比較してたら、バグの温床。

ついでに言えば、「今日の日付を取得する」もユーティリティメソッドにして、
システムプロパティなどで、「今日の日付」を設定できるようにしておくと、
わざわざシステム日付を変更しなくとも、日付が変わったときのテストができる。

972 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 13:12:13 ]
>>947
権限の低いクラスローダでロードしたクラスを挟んでスクリプトを呼ぶといいんじゃないかな、と推測だけで言ってみる

973 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 13:39:35 ]
スレ違いかも知れませんが…

Commons/Net 1.4.0 のFTPClientを使っていて 昨日から原因不明のエラーが多発してました
ようやく判明した原因は、FTPClient#listFiles()が返すFTPFile[]の要素が
なんと2/29のタイムスタンプのファイルについてはnullになってしまう事でした!
とりあえずサーバの関連ファイルをtouchして急場をしのぎましたが
この件について善後策を相談するのに最適のスレなどがあれば教えて下さい

974 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 13:51:14 ]
>>973
ドキュメントにバグの報告先とかメンテナの連絡先が書いてあるはずだから、
最小の再現コード付けてレポートする。

975 名前:デフォルトの名無しさん [2008/03/01(土) 14:50:50 ]
勉強のためにファイル転送のプログラムを作っているのですが、
いまいち上手くいきません。流れとしては、
@(送り手) FileChannel(sourceChannel)でファイルを読み込む
A(送り手) SocketChannel(destinationChannel)で相手に送る
B(受け手) SocketChannel(sourceChannel)で受け取る
C(受け手) FileChannel(destinationChannel)でファイルに書き込む

送り手
while(destinationChannel.isConnected()){
 buffer.clear();
 if(sourceChannel.read(buffer) < 0)
  break;
 buffer.flip();
 destinationChannel.write(buffer);
}
受け手
while(sourceChannel.isConnected()){
 buffer.clear();
 if(sourceChannel.read(buffer) < 0)
  break;
 buffer.flip();
 destinationChannel.write(buffer);
}

bufferはByteBuffer型になっています。
これを実行すると、送り手はエラーもなく正常に終了しているのですが、受け手で
「java.io.IOException: 既存の接続はリモート ホストに強制的に切断されました。」というエラーが出てきます。
エラーが出た場所 => if(sourceChannel.read(buffer) < 0){

長文な上にわかりにくい文章かもしれませんが、
なぜこうなるのか教えてもらえないでしょうか?

976 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 15:02:45 ]
>>975
データの受信自体は問題ないのですか?

単にデータを送るだけだと、送り手側でソケットを閉じると、
受け手側でエラーが出るはずですが…

何らかのプロトコルで「送受信完了」をやり取りする形にすれば
問題のある状態なのかどうか判断できると思います

977 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 15:11:10 ]
勉強のためならまずCでやったほうがいいよ
Javaでやっても意味ないよ



978 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 15:27:11 ]
質問させてください

String str = "12345";
str += "abcde";

これで連結しようとするとrangeが足りないと出ます
すでにあるStringクラスのオブジェクトに文字列を連結するための
メジャーな方法などがあれば教えてください

979 名前:デフォルトの名無しさん [2008/03/01(土) 15:56:12 ]
>>976
データの受信自体が出来ないみたいです。
送り手側は一通りプログラムが実行されて終了するのですが、
受け手側は if(sourceChannel.read(buffer) < 0) の部分で処理が止まっているみたいです。
受け手は、送り手が書き込むのを待っている状態になっているんでしょうか?

>>977
時間に余裕が出来ればCも勉強しようと思っています。
今は就職活動中であまり時間が無くて、息抜きでやっている状態なので...
助言ありがとうございます。


980 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 16:00:40 ]
>>978
不可能

981 名前:978 mailto:sage [2008/03/01(土) 16:02:28 ]
自己解決しました
スレ汚しごめんなさい

982 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 17:44:15 ]
ServletContextを得るためのgetServletContext()というメソッドがありますが、
APIを見てみるとServletContextはインタフェースなのでオブジェクト化は出来ませんよね。
getServletContext()は、実際にはServletContextではなく、ServletContextを実装するサブクラスを作ってるんでしょうか?

983 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 17:46:00 ]
ServletContext context = getServletContext();
System.out.println(context.getClass().getName());

984 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 18:13:50 ]
次スレたててみる

985 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 18:18:51 ]
次スレ
【初心者】Java質問・相談スレッド113【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1204363011/

986 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 19:00:59 ]
>>985
乙彼Death

987 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 21:31:24 ]
>>975
送り側はちゃんと閉じてる?



988 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 02:22:23 ]
PHPを学習した後だとJavaの習得は容易ですか?

989 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 02:31:14 ]
いいえ

990 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 02:38:08 ]
PHPの知識は役立たないの?

991 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 02:47:56 ]
javaの勉強はじめました。

ネットワークとかGUIとか使って何か作りたいのですが、
何も思いつかないので、
パケットモニタ(?)(今どんなメッセージで通信されているか)みたいなのを作りたいのですが、
ネットワークに関しては、どの変の勉強すれば早そうでしょうか。
この辺のクラスは古いから使わないほうがいいとか、
この辺使えばすぐじゃないかとか教えていただけると助かるのですが、
助言もらえませんか。

GUIに関しては、本とWebを参考にして手をつけていたら何とかなりそうな気がしているのですが、
ネットワークは難しすぎて…。

992 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:16:15 ]
Java→PHPなら簡単

993 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:18:43 ]
>>991
何をしたいのか本人すら分かってないのに他の人に聞いても分かるはずないよ
ネットワークって具体的に何?サーブレットでWebアプリ作るとかじゃ駄目なの?

994 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:22:47 ]
パケットモニタはドライバ組まないと無理だ。
通信なら Socket 使えばいい。

995 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:36:45 ]
>>934
>synchronized付いてるから同時には呼び出されない
え?メソッドレベルの排他というのは、一つのメソッドに複数のスレッドが同時に入れないだけで、
アクセスするメソッドが別なら排他されないのでは?やば、今までずっと間違えてきたかも。。。


996 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:38:58 ]
なんかいろいろ勘違いしてるなw

997 名前:933, 995 mailto:sage [2008/03/02(日) 03:44:36 ]
>>934
いやいや、やっぱり同時アクセス可能ですよ。でないとnotifyAll()でwait()を解除してあげられないです。



998 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:47:47 ]
インスタンスメソッドの synchronized 修飾子は synchronized(this){ } でメソッド内全てを囲ったのと等しい。
クラスメソッドの synchronized 修飾子は synchronized(Queue.class){ } と等しい。

999 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:51:58 ]
www.amazon.co.jp/dp/4797337206

1000 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:55:06 ]
1000 なら Java 死滅確定

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<275KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef