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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 01:09:54 ]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    pc11.2ch.net/hp/
Webプログラミング pc11.2ch.net/php/
をご利用下さい。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
【初心者】Java質問・相談スレッド120【歓迎】
pc11.2ch.net/test/read.cgi/tech/1223603727/

次スレは>>990あたりで。

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/

2 名前:1 mailto:sage [2008/11/17(月) 01:10:36 ]
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 7
ttp://pc11.2ch.net/test/read.cgi/tech/1204155623/l50
■ SWT は --
Java 高速GUI SWT 3
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part18
ttp://pc11.2ch.net/test/read.cgi/tech/1214192372/l50
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 8
ttp://pc11.2ch.net/test/read.cgi/tech/1206017034/l50

■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 66 ★★
ttp://pc11.2ch.net/test/read.cgi/tech/1221652206/l50

**** 開発環境が必要の場合は ****
■ J2SE 1.4.0
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/index.html
■ J2SE 5.0 (1.5.0)
ttp://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
ttp://java.sun.com/javase/ja/6/

**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
ttp://www.java.com/ja/

3 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 08:04:28 ]
>>1
おは
おつ

4 名前:はんしょう [2008/11/17(月) 08:30:39 ]
JAVAのJBUILDER2005があり、ひとまずSampleを見ています(正直使っているという状態ではまだないのです)が、
JPX(プロジェクト)ファイルを再BulidするのとMakeをするのとがメニューにあります。
1:この違いはなんでしょうか?一見どうちらを選択しての既存のものは実行できるか
できないのか について言えば それらしいCGの絵は出ますので 変わりはなかった。
2:幾つかのサンプルの内、上のようにJbuliderで実行をすると絵が出ますので、実行できるようになるですが
Jbuliderのソフトを介さないで 実行できることはないでしょうか。
Javaは実行ファイル(正確な用語でないかもしれませんが)というものはないでしょうか?
例えばWindowsで言えば、拡張子.exeのファイルは直に、
あるいは FLASHの.swfファイルはIEで(ブロックは外して)開くことが出来る。同じflashの.flvファイルはWeb上で、起動ファイルを導入してしか見えない(Youtubeのように)。
JAVAはどうでしょうか?
3:それと.JAVAという拡張子ファイルはソースファイルと理解してよいでしょうか?



5 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 10:52:33 ]
www.ibm.com/developerworks/jp/java/library/j-jtp01274/

ここを見る通り
null 代入はすでに過去のものどころかよくないみたいですね。
実際みなさんどうしてます?

6 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 10:58:31 ]
>>4
jbuilder2005 は捨てて netbeans をオススメします。

1. rebuild→すべてのソースのコンパイル make→変更されたファイルのみコンパイル
2. VMにPATHを通してjbuilderでできたclassesディレクトリで実行してみましょう。java実行の仕方は調べてね。
3. うん、ソースファイル
4. 自分で検索を覚えないと、一生まともなプログラムは組めません

7 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 12:27:56 ]
>>5
そこを見る通り
必要な場面では必要
不要な場面では不要

8 名前:デフォルトの名無しさん [2008/11/17(月) 12:36:02 ]
抽象クラスAのサブクラスがクラスB,クラスCであるときに、Bのオブジェクトを
Cのオブジェクトに変換する方法を教えてください。

9 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 12:51:02 ]
>>8
無理。class B extends A を class C extends A には変換できない。

詳細がわかれば他の方法で逃げられるかもしれないけど。

10 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 12:58:50 ]
Bのオブジェクトを元に初期化するコンストラクタをCに作ればいいんじゃね



11 名前:デフォルトの名無しさん [2008/11/17(月) 13:14:22 ]
>>10
よろしければもう少し詳しくお願いできますか。。。?java初心者でよくわからないので。。

12 名前:はんしょう [2008/11/17(月) 13:47:19 ]
>>6  ありがとうございます
> 2. VMにPATHを通してjbuilderでできたclassesディレクトリで実行してみましょう。java実行の仕方は調べてね。
VMはVirtualMachine? ホルダーClassesはあります。さて どうするか
もう一歩助言をおねがいします。 
確かに検索の仕方も JAVA 実行でしか
思いつかなくています

13 名前:りょう [2008/11/17(月) 16:21:55 ]
<input type="button" class="button" value="編集" onClick="editEmployeeInfo"(<bean:write name="searchList" property="employee_id"/>)
このonclickの所で、employeeId(社員ID)が送られるようになっているらしいんですが、
これをもとに自分のページで社員情報を取得するにはどうすればいいでしょうか?
断片的ですいません

14 名前:デフォルトの名無しさん [2008/11/17(月) 16:52:02 ]
annotationが全然理解できないんですが、お勧めサイトないっすか?


15 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 17:22:56 ]
〜 3分で覚えるアノテーション 〜
アノテーションはクラスやメソッド、フィールドなどにつけられるよ。 引数を指定することもあるよ。
@Foo(message = "hello")
public class MyClass { ... }

自作のアノテーションを作るときは @interface を使うんだ。 メソッドが引数に対応するぞ。
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
public @interface Foo { String message(); }

RetentionPolicy.RUNTIME が指定されていれば、実行時に取得できるよ。 リフレクションを使おう。
Class<?> c = MyClass.class;
Foo foo = c.getAnnotation(Foo.class);
System.out.println(foo.message());

これであなたもアノテーションマスター!

16 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 17:43:42 ]
パネルに描画した図形をDeleteキーで消したいのですが、KeyListenerにフォーカスが当たってくれません。
getFocusOwner()を使ったところ、常にボタンにフォーカスが当たっている事が分かりました。
これを描画パネルに当てるには、どのようにすれば良いのでしょうか。

17 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 18:10:18 ]
panel.setFocusable(true);
panel.requestFocus();

18 名前:14 [2008/11/17(月) 19:42:55 ]

>>15
どうもです。
しかし、いまいち暗黙の部分が多くなって分かりづらいし、利点がよくわからないんですが。。


19 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 19:59:12 ]
よくわからないものは必要になるまで放っておくのもひとつの手だよね。
必要になったら自然と理解できる

20 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 20:08:56 ]
>>18
@Size(16) class MyData {
@Offset(0) int a;
@Offset(4) int b;
@Offset(8) long c;
}
のようにデータをバイト列にパックする際の情報として使ったり

class MyService {
@MsgId(7) void foo() { ... }
@MsgId(42) void bar() { ... }
}
のようにIDとメソッドを紐付けるのに使ったり

といった用途が例えば考えられます
しかし基本的にリフレクションを使わない人には無用



21 名前:デフォルトの名無しさん [2008/11/17(月) 20:36:47 ]
Javaをゼロから勉強したいのですが、良い本教えてもらえませんか?
プログラミング経験はないです。
お願いします。

22 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 20:39:36 ]
>>21
デラべっぴん

23 名前:デフォルトの名無しさん [2008/11/17(月) 21:08:12 ]
来春から念願だったソフトウェア関連の会社に就職が決まりました。
JAVA言語をメインにソフト開発をしてるそうなんですが
自分自身のスキルからいって仕事についていけるかとても
心配です。今から勉強でもしておかないととても不安なので
実戦に役立つ書籍があれば紹介してくれませんか?ちなみに
SJC−A程度の知識はあります。

24 名前:デフォルトの名無しさん [2008/11/17(月) 21:35:32 ]
>>15
リフレクションですか。
ちょっと勉強してみるっす。thx.

25 名前:16 mailto:sage [2008/11/17(月) 22:03:57 ]
>>17
出来ました。
有難うございます。

26 名前:りょう [2008/11/17(月) 22:33:01 ]
未経験 研修中の者です。
eclipse , Tomcatを使用して、
社員情報管理システムの一部を課題として作成してくれとの事で設計書を渡されました。
自分の担当は社員情報の編集ページで、
社員一覧ページの「編集」ボタンから自分のページに飛び、編集ページで内容を変更したら、
DBに変更したデータを送るという部分の作業をしています。

その中で、社員一覧ページの
<script>
function editEmployeeInfo(id){
document.editForm.employee_id.value = id;
document.editForm.submit();
}
</script>
  省略
.
.
.

<input type="button" class="button" value="編集" onClick="editEmployeeInfo"(<bean:write name="searchList" property="employee_id"/>)
ここの部分で、編集ボタンを押すと社員ID(employee_id)が渡されるようになっていて、
それを利用してその社員の情報を自分の画面の初期表示として表示させたいのですが、
"editEmployeeInfo"(<bean:write name="searchList" property="employee_id"/>)
自分のページでeditEmployeeInfoをどう使えばいいのか分からない状況です。
教えていただければと思い書き込みしました。
よろしくお願いします。


27 名前:デフォルトの名無しさん [2008/11/17(月) 23:39:27 ]
>>26
意地悪に響くかも知れないが、「Java」と「JavaScript」の違いは把握してる?


28 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 02:16:39 ]
Fileクラスの

listFiles() とlistFiles(FileFilter filter) を使ってみたんだけど。

listFiles() だとマイコンピュータとか、マイネットワークを取得できるのに。
listFiles(FileFilter filter) だと取得できないんだ。

FileFilterの中で、自分が作ったソースがはじいてるのかな?とも思ったんだけど、
FileFilter#accept(File pathname)に、マイコンピュータとかマイネットワークが入ってこないんだ。
ふしぎふしぎ

listFiles(FileFilter filter)でマイコンピュータとかマイネットワークを取得できる方法誰か知らないっすかね?

29 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 04:32:41 ]
>>28
デスクトップ用の情報が取れる ShellFolder extends File ってのがあって、
それだと listFiles() は上書きされてるからマイコンピュータとか取れるはず。
でも ShellFolder でも listFiles(FileFilter) は上書きされないから
通常の File 使ったときと同じでマイコンピュータとかは取れない。

30 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 08:16:53 ]
>>29
なるほど、Fileだと思って使ってたオブジェクトはShellFolderだったのか。

ありがとう、諦めて自分でいらない物はじくことにします。



31 名前:デフォルトの名無しさん [2008/11/18(火) 10:54:53 ]
codezine.jp/article/detail/86?p=1

↑のプログラムを実行するとウィンドウがでてアプレットが開始されました。
っとでるんですが、何も実行されません。
同じフォルダにFaces、Temp画像を入れているのですがどうすればいいでしょうか?

32 名前:31 [2008/11/18(火) 11:49:00 ]
エクリプスで起動したら以下のようなエラーがでました。

Exception in thread "AWT-EventQueue-1" java.lang.NegativeArraySizeException
at Template.searchMatching(Template.java:151)
at Template.paint(Template.java:224)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

よく原因がわからないので教えてくれませんか?

33 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 12:00:40 ]
画像を読み込めてないんじゃね

34 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 12:01:22 ]
>>23
就職オメ
会社の方針も様々だろうから、
読んで安心できるような書籍は一概には言えないんじゃないだろうか
来春からなら時間ありまくりだから、
自分でプログラムを組みながら学ぶのが一番。
いくら本を読んでも実際に身に付いてなきゃ意味が無いのもあるし、
作ってる課程で、行き詰まっても自力で調べる力が身に付くから。
多少知識が無くても自力で調べられれば怖いもの無し

と、相談スレにこんなことを書いてみる

35 名前:デフォルトの名無しさん [2008/11/18(火) 12:15:23 ]
まずは足腰鍛えるのと同じく基礎固めが大事だからなぁ。初心者用のCの本を軽く一通り読んどいた方がいいかも

36 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 14:15:44 ]
>>23
とりあえず2ちゃんブラウザを作ってみればいいよ。

37 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 17:08:03 ]
ブラウザかどうかはともかく、目標があるのは良い事

38 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 21:05:36 ]
このパッケージを使うとこんなことが出来るインデックスは結構あるんですが
こんなことをしたい場合に、このパッケージが使えるインデックスってどっかに
まとまってませんか?

よその言語から入ってきたとき
「何をどう使っていいかようわからん」
状態を解消する気はないんでしょうか? > Java コミュニティ

# つか, OO 言語全体的にそんな気がするが………


39 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 21:59:51 ]
ググればいいじゃない

英語で

40 名前:デフォルトの名無しさん [2008/11/18(火) 22:04:56 ]
むしろOOではない言語だとそんな気がしない理由を書いてもらえると
具体的にどんなものを求めているのか伝わりやすいのでは。



41 名前:28 mailto:sage [2008/11/18(火) 22:16:11 ]
>よその言語から入ってきたとき
>「何をどう使っていいかようわからん」

こうならない言語ってあるんですかと、逆に聞きたいです。

しかし>>29はすごいなぁ、FileSystemView#getRoots()で、
File[]を貰って何も疑問に思わないで使ってたのが恥ずかしくなったでござる。

42 名前:デフォルトの名無しさん [2008/11/18(火) 22:20:16 ]
ただいまサーブレットの勉強をしています

perform()メソッドがよくわかりません
ご教授お願いします

43 名前:>>42 [2008/11/18(火) 22:25:25 ]
すいません
perform()メソッドは参考書独自のメソッドでした('A`)

44 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 22:49:32 ]
performメソッドなんて典型的なダメ設計(もしくは命名)じゃね?

45 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 00:42:59 ]
>>38
GOF本とかのデザインパターン関連書籍がいいんじゃないか?

46 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 05:39:03 ]
>>40
C とかアセンブラだと、ほとんど何もないので何かしようと思った場合、それ
に見合ったライブラリを作るなり、どっかから引っ張ってくることになるわけ
だが、その過程で双方向のインデックスができるんだわ

最近の OO 言語の場合、最初から結構膨大な量のライブラリがくっついて来る
ので、何かをしたいと思ったときに何かに対応するライブラリはどれって話に
なる。

つか、使い続けてればそのうち出来てくるんだろうけど、俺の場合、OO言語使
う時って、たいてい消化作業に呼び出された場合なんでインデックスできるま
での期間付き合い続けないってのが原因なんだろうけど………

man -k だとか apropos に相当する機能が "JDK(TM) ? ドキュメント" に付
いてれば問題ないような気がする


47 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 09:01:38 ]
javadoc読み込んでindexでもabstractでも何でも好きなもん生成するソフト作ればいいんじゃね?

48 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 09:24:17 ]
>>46
たとえば "site:java.sun.com/javase/ja/6/docs/ja/api/ hogehoge" でぐぐるとか、
google とかサイト内検索できるところで
公式サイトに置いてある javadoc に検索かけるんじゃだめなん?

49 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 10:11:38 ]
>>47
火消しに行ってそんなもんかまってたら絞め殺されますぜ

>>48
> 公式サイトに置いてある javadoc に検索かけるんじゃだめなん?
作業現場が隔離されている状況だとそうもいえんだろ


50 名前:デフォルトの名無しさん [2008/11/19(水) 10:18:11 ]
インデックスできるまでとは何の事?
もしかしてstrcut構造体のあれとかなのか?w



51 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 10:59:53 ]
>Java質問・相談スレッド119_920
>CSS Validator(jigsaw.w3.org/css-validator/DOWNLOAD.html)をAntで
>コンパイルしたいのですが、antを実行すると以下のようなエラーになってしまいます。

 古い話ですみません。
 ダウンロードのページにある以外に、

 commons-collections-3.2.1.jar
 velocity-1.5.jar

をダウンロードしたら、とりあえずANTは通りました。
 でも、実行すると、mainが見つからないとか言い出すのですが。 

52 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 12:27:47 ]
ttp://www.ne.jp/asahi/hishidama/home/tech/java/swing/UndoManager.html
ここのサイトでundoの勉強をしてるのですが
自分のテキストエデターに組み込んでもundoされないのです
ほぼソースを丸写ししてるのですが
このページに載っていること意外で何か忘れがちな事ってありますか?

53 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 12:38:41 ]
>>52
「ほぼ」って書いているので、そこが原因だろうな。

54 名前:52 mailto:sage [2008/11/19(水) 12:46:40 ]
JTextFieldをJTextPaneにしているのがいけないのですかね
もうちょい試行錯誤してみます

55 名前:デフォルトの名無しさん [2008/11/19(水) 16:15:47 ]
初心者から中級者の間だけど、サンプルソース打ちながらやってみて面白い本をおしえて。
サーバサイドJavaは無しで・・

56 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 16:37:36 ]
あるpngファイルAを読み込み、別ファイルBを生成するプログラムを作ることになりました
以下現プログラムの該当部分です

Iterator readers = ImageIO.getImageReadersBySuffix("PNG");
ImageReader reader = (ImageReader)readers.next();
ImageInputStream iis=ImageIO.createImageInputStream(file);
reader.setInput(iis);
BufferedImage bi = reader.read(0);
Raster raster = bi.getData();
Object obj = raster.getDataElements(0,0,raster.getWidth(),raster.getHeight(),null);

最終的にはObjectをImageIOに食わせてデータ取得できるらしいですけど、
createImageInputStream、getImageReadersではなしのつぶてでした
どのメソッドを使えばいいのか教えて下さい

57 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 19:22:56 ]
>>56
こんな感じでいいんじゃない

BufferedImage bi = ImageIO.read(fileA);
int w = bi.getWidth(), h = bi.getHeight();
int[] rgb = bi.getRGB(0, 0, w, h, null, 0, w);
・・・・
bi.setRGB(0, 0, w, h, rgb, 0, w);
ImageIO.write(bi, "png", fileB);

58 名前:56 mailto:sage [2008/11/19(水) 19:43:11 ]
>>57
すっかり言及を忘れてましたが、Bはpngではなくバイナリファイルなんです
>>56プログラムのObjectを何らかの形に変換し吐き出すと思われるのですが、
そこで使用するのがImageIOらしいです

とりあえずおとなしく直に聞くことにします
お手数おかけしました


59 名前:デフォルトの名無しさん [2008/11/19(水) 23:21:40 ]
プログラミングに関係ないですが
ブルーレイを購入しようググっててBD-Jを知りました。

で、色々な情報があって混乱しています。

1.まず「BD-Jはブルーレイの仕様でブルーレイプレイヤーなら必ず使える」という情報。
 ・・とすると、PS3やDiGA等でもJavaを実行できるということ?

2.「最近のシステムアップデートでPS3でBD-Jが使えなくなった」という情報
 ・・あれ?BD-Jはブルーレイの仕様なのにPS3はBD-Jが使えなくなったってどういうこと?

思ったのがもともとPS3はUSBからBD-Jが起動できたらしいが、単にこれができなくなったってことでしょうか?
ブルーレイディスクにBD-Jアプリを焼けば現在でもPS3でBD-Jが実行できるのでしょうか?

ご存知の方いましたら教えてください

60 名前:デフォルトの名無しさん [2008/11/19(水) 23:32:14 ]
質問です。

HttpServletRequest#getHeader("Cookie")を使用すると
たまーにnullが帰ってくることがあるんですが、どうしてなんでしょうか?



61 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 23:44:33 ]
凄く初心者な質問をさせてください。
関数ってどういう基準で分割していくのが良いとか基準があるのでしょうか?

自分で書いてたコードなんですが初期化処理Init()の中で更に
ボタンの初期化InitButton()、メニューの初期化InitMenu()とか、
機能毎ってよりコンパクトにまとめるのを目的に小さくするのって
(しかもここでしか絶対使われない)どうなんだろうって気になりました。

62 名前:デフォルトの名無しさん [2008/11/19(水) 23:54:02 ]
>>61
Javaに限らず関数分けの目的は2つあります。
1. 複数箇所で使うまとまりを関数化する。
2. ひとつの関数の中のコードが長すぎるので関数化して分割しソースを見やすくする。

61さんの場合は後者ですね。
以前の1メソッド50ステップまでというルールのプロジェクトがありました。
ちなみに、私も61さん同様 2. の分け方はあまり好きではありません。コメントで区分けしておけばいいだけですし。


63 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 00:08:28 ]
複数個所に同じような処理があっても,それらが複数のクラスにまたがってるときは
関数にまとめるのが必ずしも良いとは言えない
取り回しがしづらくなる

64 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 01:10:58 ]
入力フォームを作成する

1.氏名を表示させる
2.男性、女性をreslt.phpで表示させる
男性の場合青、女性の場合赤で表示させること

3.趣味を表示させる
読書、ゲーム、映画、旅行、スポーツ 
チェックした項目をreslt.phpで複数表示させる事

チェックした項目には
あなたの趣味は○○と○○ですね。と表示させる

読書、ゲーム、映画、2点以上 のみチェックした場合、「たまには体を動かしましょう」
スポーツ、旅行の 2点チェックした場合 「体を動かすのは良いことです。」
全てチェックを入れた場合には、(5点)「たくさんの趣味がありますね。」
と表示させる

3ができません
助けてください><
www9.uploader.jp/dl/naoya6628/naoya6628_uljp00007.zip.html
1,2はできました
C言語が間違ってるんだと思います

友達いないんだ
明日俺だけ出来ないとか担ったらいやなんだ
お願いですから助けて下し亜><

65 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 03:07:21 ]
>>61
適切な名前がつけられる場合は分割する。
不適切な分割が既にされている場合、あるいは、
昔は適切だったが、今は不適切になってしまった場合は、
一度展開してから整理して分割する。

どのように分割すればいいか良く分からないときは、放置。
事が進むにつれ、だんだん分かってくるかもしれないし、
そもそも何をもってして適切かが変化するかもしれない。

変更後のテストは必須

66 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 05:57:30 ]
Serializableなんですが、
private void writeObject(ObjectOutputStream stream) throws IOException
を特に定義しなかったとき、フィールドに配列があっても大丈夫なんでしょうか。
それとObject[]とかだとどうなるんでしょうか。

67 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 08:27:50 ]
GUIの時は特にブロックで分けてるなぁ

68 名前:はんしょう [2008/11/20(木) 08:46:29 ]
これまで Jbuilder2005でJPXを開いて、実行させると描画していたのですが
DOCモードでJAVA を動かした(と言ってもなにも描画しないで元のPromptになった)
後、再度Jbuliderで実行させようとすると
-- Java プロセスを起動中に IOException が送出されました -
とエラーになったのです 元のように描画実行するようにするにはどうしたら
良いでしょうか?

69 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 09:46:15 ]
アプレットでダブルバッファリングを試みているのですが、
createImage(int,int)のシンボルが見つからないという警告が出ます。
importでComponentも読み込んだのですが認識してくれません。

何か他のクラスのcreateImage()と衝突などしているのでしょうか?
わかるかたいらっしゃたらよろしくお願いします。

70 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 10:20:12 ]
>>64
Cの宿題なら該当スレへ行け



71 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 10:37:31 ]
>>62
コメント書けばいいとかで巨大なメソッド作るなよ。
読むときどこにそのコメントがあるかも分からなくなるんだからな。
コメントに”○×処理”とか書くぐらいなら、コメントをそのままメソッド名にしろよ。

メソッドを分けるのに苦労するなら、読み物がどう分かれているかを参考にしてみたらどうだ。
最近のプログラミングは、多少の速度アップを求めてソースを汚くするより
人間が読みやすいようにするのが良いという流れもあるだろ。

72 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 11:28:40 ]
GUIでコンボボックスとテーブルを使って下記のよう動作を実現したい。
テーブルA[A_ID,A_NAME]
テーブルB[B_ID, B_DATA,A_ID]
コンボボックスにA_NAMEの一覧を用意して選択したA_NAMEから
テーブルBのB_DATAをテーブルに表示させる

コンボに一覧を表示させることはできたけど、選択したA_NAMEからB_DATAを
引っ張る方法がわかりません。

考えとしてはコンボにA_ID,A_NAMEを保持させて、A_NAMEだけ表示させようと考えてます。
コンボボックスって表示させるデータ以外のデータも保持できますか?

73 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 11:30:42 ]
>>60
ブラウザがクッキーを無効にしてるんじゃね
それかまだクッキーを設定してない初回アクセス時とか

74 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 11:34:55 ]
>>66
大丈夫です
なぜなら配列は Serializable です
Object[] は中身がすべて Serializable または null なら大丈夫です
Serializable でないオブジェクトが混じっている場合は NoSerializableException が投げられます

75 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 11:41:36 ]
>>69
createImageはComponentのメソッドだから、自クラスがComponentのサブクラスなら
this.createImage(...) あるいは this を省略して単に createImage(...) と書けるが、
そうでないなら対象のコンポーネントを指定する必要があるよ

76 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 11:49:57 ]
>>72
>コンボボックスって表示させるデータ以外のデータも保持できますか?

そもそも JComboBox は任意のデータを保持できます
addItem 等の引数が String じゃなく Object になってるでしょう
項目をどう表示するかを決めるのは ListCellRenderer であり、JComboBox#setRenderer で設定できます
デフォルトでは単に toString した文字列を表示するだけですが、自分で好きなレンダラを書けばよいです

ところでGUI関連はSwingスレの方がよいかも

77 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 11:57:17 ]
それで安心しました。rmiもあるみたいですけど、
Serializable はwebアプリのようなデータの転送で使っても実用に得るのでしょうか?

クライアントの設定情報をeventと交えて直列化して、相互に転送するときとかですが、
例えば検索ボタンを押して3秒ぐらいまでなら実用と考えていますが実用的でしょうか。
それとも、上のwebアプリの例えだとメソッド呼び出しじゃないんですが、rmiとかの方がよいのでしょうか。


78 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 11:59:22 ]
-5.6 % 3.3
5.6 % -3.3
5.6 % 3.3
-5.6 % -3.3

の答えがそれぞれ
-2.3
2.3
2.3
-2.3
なんですが、これをどなたか解説していただけないですか

79 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 12:02:02 ]
>>76
ありがとうございます。
setRendererでレンダリングを設定ができるんですね。

>ところでGUI関連はSwingスレの方がよいかも
そうですねスレ違いでしたね。ご迷惑をおかけしました。

80 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 12:14:44 ]
>>78
Java言語仕様書に書いてある通りです
つまり、そういう仕様です
java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.17.3
> the result of the remainder operation can be negative only if the dividend is negative
(訳) 被除数が負の場合に限り結果が負になります



81 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 12:19:13 ]
>>77
RMI も中では Serializable 使ってるから同じじゃない?

82 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 12:28:09 ]
>>80
どうもです

83 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 13:27:28 ]
[aaaa]ssssssという文字列から
aaaaを取り出したいんですがsubStringを使おうにも、[aaaa]の長さは変動しますので
subStringが使えません。なにかいい方法は無いでしょうか?

84 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 13:34:07 ]
>>83
String s = "[aaaa]ssssss";
int start = s.indexOf('[') + 1;
int end = s.indexOf(']');
String r = s.substring(start, end);
System.out.println(r);

85 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 14:18:12 ]
>>84
たすかりました

86 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 14:37:05 ]
>>83
この機に、java.util.regex 辺りをマスターするんだ

87 名前:デフォルトの名無しさん [2008/11/20(木) 14:43:44 ]
swingスレッドがないのでここでお聞きしますが、
guiでのpaintやrepaintはシングルスレッド設計が多いのですがこれはどうしてなのでしょうか?
プロパティに反応してrepaintするときなど、シングルスレッドのままだと順番まちのためpaintがされずに、
ボタンが押されっぱなしのような固まったような状態が0.5秒ぐらいなってしまいこっとの方が大問題だと思います。
似たような現象は今でもfireforxとかでたまにあります。
それでもguiをマルチスレッドにしないのはなにかほかにデメリットがあるのでしょうか。

88 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 15:30:41 ]
>>87
java.sun.com/products/jfc/tsc/articles/threads/threads1.html
の最後あたりに書いてある

89 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 15:59:34 ]
個人的には、あらゆるイベント処理を漏らさず synchronized でガードしなければならないことを考えると、今のままでいい

90 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 16:59:54 ]
>こっちの方が大問題
何と比べて大問題なんだよ。
例えばデッドロックよりも大問題なのか?




91 名前:デフォルトの名無しさん [2008/11/20(木) 17:21:56 ]
そのリンクですけど、guiプログラマーにはthreadの深い理解は不要だとかオーバーヘッドどうとかですけど、
プログラム処理でこれといったデメリットではないと思いますがこの程度が原因でマルチスレッドを捨ててるんですか?

これからguiやデスクトップアプリは2dやnetなどの通信などどんどん大規模になっていって、ほとんどの処理にスレッドの同期・非同期処理が必要になるとおもうのですが、
それでもシングルスレッドなのは何か他に理由があるのでしょうか?

jdkがいくら進化してもシングルスレッドのままだと昔のシングルタスクOSの限界と同じかとおもいます。
デッドロックとかcuiでもあるわけでなくなるわけではないし、guiとなにか関係あるんですか。
仮に全てのメソッドをsynchronizedにしても今のCPUなら全く遅くならないんですけど、それよりも先のようにシングルスレッドの処理待ちのほうが大問題だと思いませんか?

92 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 17:36:40 ]
synchronized万能主義者か
synchronizedで囲うだけでマルチスレッド化による問題が解決すると思っているようなら勉強し直すことだ
フレームワークがシングルスレッドであることによるシンプルさを捨てさせてまで
マルチスレッドヘルに飛び込まないといけないほど反応時間を気にしないといけないのなら
自分が作ろうとしているものの設計の方をこそ見直すべきだ

93 名前:デフォルトの名無しさん [2008/11/20(木) 17:40:27 ]
DOMに関する質問です。
あるDTDにvalidなXML文書からDOM木を作成するとします。
普通にXML文書をparseすると文章中の改行やタブもTEXTノード
としてDOM木の中に表現されますよね(規格通り)。

こういった改行等のTEXTノードは削除して、DTD中に定義された
CDATAやPCDATAに対応するTEXTノードのみを残す、小粋な
お掃除方法は無いでしょうか?

94 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 17:41:46 ]
GUIってユーザープログラムからだけでなく、OSからの処理も受け付けないといけないんだから、
つーかOSの一部の機能を借りている状態で実行してるんだから、
イベントディスパッチがシングルスレッドってのは納得しやすいと思うんだけど。

別にマルチで自前で書いてもスレッドセーフかどうかさえ気をつければ良いんじゃないの?

95 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 17:44:07 ]
>>91
通信のような処理はGUIと無関係なんだから単純にGUIと別のスレッドでやればよかろう
そのことでGUIをマルチスレッドにする必要はないと思うが

仮にこれからそれらが必要になるとしても、swingが作られたのは10年も前なわけだが、
10年後の未来を予測して設計しておくべきだったと? 設計当時の理由はそのリンク先の通りで、
残念ながら(?) 今後来るかもしれないメニーコア時代のことまで考慮されて作られてはいなかった

synchronizedで遅くなることよりも、synchronizedし忘れてバグったり、デッドロック起きたりする方が俺は怖い
それに単純にすべてsynchronizedするんならシングルスレッドと同じじゃまいか
synchronizedかける場所を慎重に取捨選択するのはなかなか面倒な作業だと思うが

96 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 17:53:15 ]
最近設計されたGUIでマルチスレッドなものってなにがあるっけ?SubArctic ?
日本語情報が少なすぎて全く使ってないからよくわからん。

97 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 18:51:20 ]
JTableってデータを更新する際初期化とか必要ですか?
[1111]
[2222]
[3333]
[4444]
こんな感じでデータが入ってて
そこからsetModelでデータを上書きしたら
[5555]
[]
[7777]
[]
見たいな感じになります。



98 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 19:10:44 ]
>>97
試してみたけど大丈夫だったよ
(import省略)
public class Test{ public static void main(String[] args){
final Object[] columns = { "x" };
final Object[][] dataA = {{ "1111" }, { "2222" }, { "3333" }, { "4444" }};
final Object[][] dataB = {{ "5555" }, { "6666" }, { "7777" }, { "8888" }};
final JTable table = new JTable(dataA, columns);
JButton button = new JButton("update");
button.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){
table.setModel(new DefaultTableModel(dataB, columns));
}});
final JFrame frame = new JFrame();
frame.add(table); frame.add(button, BorderLayout.PAGE_END);
SwingUtilities.invokeLater(new Runnable(){ public void run(){ frame.pack(); frame.setVisible(true); }});
}}

99 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 19:11:48 ]
GUIツールキットの多くがシングルスレッドなのは、伝統だと思います。
非同期にやってくるイベントをキューにためて、後はイベントループを
回して順繰りに処理していく方法は一つの成功した設計モデルとして
とても長い伝統と実績があります。

ソースが公開されているGUIツールキットを幾つかバらしてみれば、
多くの場合はイベントループ等の根っこの設計がどれもよく似通って
いる事が分かるかと思います。
また他の部品の振る舞いをあまり意識せずに個々の部品にイベント
ハンドラを書いてイベントを投げるだけでGUIの振る舞いが定義出来
るのも、イベントがシーケンシャルに処理される事を仮定出来る点が
大きいと思います。
そういう意味では、ツールキットを利用するプログラマに「楽をさせる」
良い設計ともいえます。

時代遅れとの見方もありますが、むしろこれに代わるリーズナブルな
設計モデルがまだ無いという辺りではないかと思います。

100 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 19:36:48 ]
>>98
すいません・・・別の箇所で問題が原因でした。
ご迷惑をおかけしました。








[ 続きを読む ] / [ 携帯版 ]

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

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