5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

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

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

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

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

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

2 :1: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/11/17(月) 10:52:33
http://www.ibm.com/developerworks/jp/java/library/j-jtp01274/

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

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

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

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

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

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

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

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

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

18 :14:2008/11/17(月) 19:42:55

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


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

20 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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: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 :デフォルトの名無しさん:2008/11/18(火) 02:16:39
Fileクラスの

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

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

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

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

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

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

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

31 :デフォルトの名無しさん:2008/11/18(火) 10:54:53
http://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 :デフォルトの名無しさん:2008/11/18(火) 12:00:40
画像を読み込めてないんじゃね

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

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

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

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

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

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

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

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


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

英語で

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

41 :28: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 :デフォルトの名無しさん:2008/11/18(火) 22:49:32
performメソッドなんて典型的なダメ設計(もしくは命名)じゃね?

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

変更後のテストは必須

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


78 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/11/20(木) 12:02:02
>>76
ありがとうございます。
setRendererでレンダリングを設定ができるんですね。

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

80 :デフォルトの名無しさん:2008/11/20(木) 12:14:44
>>78
Java言語仕様書に書いてある通りです
つまり、そういう仕様です
http://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 :デフォルトの名無しさん:2008/11/20(木) 12:19:13
>>77
RMI も中では Serializable 使ってるから同じじゃない?

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

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

84 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/11/20(木) 14:18:12
>>84
たすかりました

86 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/11/20(木) 15:30:41
>>87
http://java.sun.com/products/jfc/tsc/articles/threads/threads1.html
の最後あたりに書いてある

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

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

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

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

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

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

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

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



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

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

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

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

101 :デフォルトの名無しさん:2008/11/20(木) 19:55:17
>>99
イベントがどのタイミングで処理されるのかを
マルチスレッドだと制御できるとは思えないからなぁ。
シングルスレッドだからこそ、予測しやすいわけで。
まぁ、予測ができるだけで、確実にシーケンシャルに実行されるかどうかはわからんのだけど。

102 :デフォルトの名無しさん:2008/11/20(木) 19:56:55
どう考えてもシンプルでコストが安いしな。
今のマシンなら楽勝って考えるてるなら、
自分で作ったらいい。環境はあるんだから。

103 :デフォルトの名無しさん:2008/11/20(木) 20:19:49
UIがマルチスレッドなら、特別な仕掛けがない限り
UIコンポーネントから取得するデータは、取ってきた時点で
既に古いものになっていると考えなければならない。

こんなもので何を決められようか?

104 :デフォルトの名無しさん:2008/11/20(木) 21:50:54
複数のインターフェースを使ってボタンをクリックすることで
画面の切り替えをしたいのですが、この場合CardLayoutを使うと思うんですが
本を読んでもイマイチ分からないので、使い方を教えていただけませんか?

それともCardLayout以外にも画面の切り替えを行う方法はありますか?

よろしくお願いします

105 :デフォルトの名無しさん:2008/11/20(木) 21:57:06
JTabbedPaneはどう?

106 :デフォルトの名無しさん:2008/11/20(木) 22:29:15
>>105
教えていただきありがとうございます

タブを使うやり方もいいんですが、
できれば、ボタンをクリックしてカードを
切り替える感じのものがいいのですが
ありませんでしょうか?

107 :デフォルトの名無しさん:2008/11/20(木) 22:29:35
private static final String TEISUU = "定数";

と定義された定数に対して
インスタンスメソッドの中から、クラス名を付けずにTEISUUにアクセスしてもエラーになりません。
これは何故でしょうか?
具体的には、

class Test{

private final static String TEISUU = "定数";

public void method(){
String var;
var = TEISUU;
System.out.println(var);
}

と書けてしまいます。

文法的には
var = Test.TEISUU;
とすべきではないのですか?

private final String TEISUU = "定数";
としても解決すると思うのですが、
自分が勉強した限りではどの本見ても定数にはstaticを付けてるんですよね。
定数にはstaticを付けるというのがお決まりなのでしょうか?

108 :デフォルトの名無しさん:2008/11/20(木) 22:45:57
Javaでどの様にハッキングするの?
どの位の所まで分かる様になったらハッキング系の事出来るの?
JavaでLAN周りを調べる事何て出来るの?
どの様にJavaにネットと通信出来るように書くのか気になる。

109 :デフォルトの名無しさん:2008/11/20(木) 22:52:45
>>107
TestクラスのTEISUUの値は,インスタンスの状態にかかわらず常に"定数"になるんでしょ?
それならstaticにするのが自然。メソッドの場合も同様の考え方をする。
Test.を省略できるのは同じクラス内だから。そういうルールだから仕方ない。

110 :デフォルトの名無しさん:2008/11/20(木) 22:53:14
>>107
書けてしまうのは文法的に誤っていないから。
文法的に誤っているということだがJLSのどこに書かれているの?
static finalが付いているものは変更不可のクラス変数。
インスタンスごとの変更不可変数であればstaticは不要。

111 :デフォルトの名無しさん:2008/11/20(木) 23:39:55
>>109
>>110
ありがとうございます!
自分のクラスのstaticフィールドにアクセスする場合は
クラス名省略できるんですね。知りませんでした。

よく考えてみたらインスタンスごとの定数ってあまり考えられないですね。。
単純に例が少なかったのかな。

112 :デフォルトの名無しさん:2008/11/20(木) 23:43:04
>>73
レスサンクス。

同じブラウザで一度フォームデータをsubmit、ブラウザの戻る、またsubmit
っていう操作を何回もしていると、不定期でおきているから、
cookieが未設定とか、ブラウザで無効にしているってのはなさそうなんだよね。
CookieはsetMaxAge(-1)でブラウザが閉じられるまでは消えないから、有効期限ってのも
関係なさそうだし・・・。

Hoge test = new Hoge(HttpServletRequest);
って感じで、Hogeクラスのprivateメンバに保持しておいて、
Hogeクラスのメソッド内で使おうとすると、時々nullになるんよ。

よくわからなかったから、メンバに持たせるのはrequestそのものじゃなくて、
コンストラクタ内でgetHeader("cookie")やってStringメンバに入れておくことにしますた。

113 :デフォルトの名無しさん:2008/11/20(木) 23:43:40
定数をインスタンス毎に持っても意味ないからstaticにするぐらいにしか考えてないぜ

114 :デフォルトの名無しさん:2008/11/20(木) 23:46:52
Javaが趣味って奴いるの?
個人レベルで何する気なんだ?Javaで

115 :デフォルトの名無しさん:2008/11/21(金) 00:17:07
>>112
待て、おまえはServletにおけるオブジェクトのライフサイクルをちゃんと理解してるのか???
そのHoge testはどこに定義されている?

116 :デフォルトの名無しさん:2008/11/21(金) 00:43:27
>>115
Hoge testはHttpServletのdoPost内でインスタンス化されて、
threadとして動いてます

117 :デフォルトの名無しさん:2008/11/21(金) 01:10:01
スレッドってよくわかんねーーー
スレッドセーフなクラスって何だよ…
横槍ごめんなさい。

118 :デフォルトの名無しさん:2008/11/21(金) 01:19:43
>>116
よくわからん。該当部分のコードを見せろ。Hoge testの定義位置も含めて。
HttpServletRequest/HttpServletResponseの生存期間はHTTPのリクエストを受け付けてからレスポンスを返すまでってことは理解してるよな?

119 :デフォルトの名無しさん:2008/11/21(金) 01:51:32
>>114
Javaが趣味でもおかしくはないと思うが

それより、趣味の何らかの計算とか集計とかに使うと非常に便利>Java

120 :デフォルトの名無しさん:2008/11/21(金) 01:52:00
引数の戻り値について、質問です。

class Cara{
int num;
double gas;

int setNum(int n){
num = n;
System.out.println("車のナンバーを" + num + "にしました");

return n;
}

double setGas(double g){
gas = g;
System.out.println("車のナンバーを" + num + "にガソリンの量を" + gas + "にしました");

return g;
}
void show(){
System.out.println("車のナンバーは" + num + "です");
System.out.println("ガソリンの量は" + gas + "です");
}
}

121 :デフォルトの名無しさん:2008/11/21(金) 01:57:03
class Sample_return{

public static void main(String args[]){
Cara car1 = new Cara();
car1.show();

car1.setNum(1234);
car1.setGas(20.5);

//戻り値
int nums = //←戻り値を代入したい
double gass = //←戻り値を代入したい
System.out.println("サンプルから車を調べたところ");
System.out.println("ナンバーは" + nums + "ガソリンの量は" + gass + "でした");
}
}

これらの、ソースで
"int setNum(int n){" や"double setGas(double g){"のメソッドように
引数の受け取りメソッドに戻り値を付けて、返す事はできないのでしょうか?
要するに、引数の受け取り処理とreturnの処理を、同時に・・・

因みに、そうした場合、どうすればいいかわかりません
"//戻り値
int nums = //←戻り値を代入したい
double gass = //←戻り値を代入したい
"
ご教授、お願い致します。


122 :120-121:2008/11/21(金) 02:04:00
やはり、このように
class Cara{
int num;
double gas;

void setNumGas1(int n, double g){
num = n;
gas = g;

System.out.println("車のナンバーを" + num + "にガソリンの量を" + gas + "にしました");
}

int getNum1(){ //int型の値を返すメソッドです
System.out.println("ナンバーを調べました");
return num; //呼び出し元に値を返します
}

double getGas1(){ //double型の値を返すメソッドです
System.out.println("ガソリンの量を調べました");
return gas; //呼び出し元に値を返します
}


void show1(){
System.out.println("車のナンバーは" + num + "です");
System.out.println("ガソリンの量は" + gas + "です");
}
}

123 :120-121:2008/11/21(金) 02:07:29
class Sample_return{

public static void main(String args[]){
Cara car1 = new Cara();

car1.setNumGas1(1234, 20.5);


int number1 = car1.getNum1(); //戻り値を持つメソッドを呼び出します、戻り値を変数numberに代入します
double gasoline1 = car1.getGas1(); //戻り値を持つメソッドを呼び出します、戻り値を変数gasolineに代入します


System.out.println("サンプルから車を調べたところ");
System.out.println("ナンバーは" + number1 + "ガソリンの量は" + gasoline1 + "でした");

}
}

受け取り処理のメソッド"void setNumGas1(int n, double g){"
戻り値の処理メソッドは、"int getNum1(){" "double getGas1(){"
のように分けないと、ダメなのでしょうか?

124 :デフォルトの名無しさん:2008/11/21(金) 04:02:00
万能主義はあなたの方でしょw
実際は、シングルスレッドすることは全てのメソッドをsynchronizedにするのとほとんど変わりませんよ。
それにsynchronizedは同期のことでしょ?あなたはスレッドを分かってないようですね。

勘違いしているようですけど別にswingのスレッドとかの設計に文句があるんじゃなくて、
どうしてシングルスレッドにこだわるのかって事です。もともとswingはコンポーネントなのであってguiが前提なわけで、マルチスレッドで設計するものかと思います。
swingはピュアjavaというよりも全てpaintで済ますって理念なんで分からなくもないんですけど・・・

125 :デフォルトの名無しさん:2008/11/21(金) 04:11:01
>>95
通信の処理とかがGUIと関係あるかではなくて、処理の結果をGUI(のコンポネント)が受け取ります。
それで、計算や処理など既にハード上の能力は十分ですぐ結果が出ても、肝心の表示の方がイベントまちとか
シングルスレッドで0.5...1秒待たされるようじゃそのコンポネント(swing)を使うにはストレスがあります。
たまに複雑なJTableでもあるでしょ、少しもたつくことが。

swing workerにもありますが、計算結果や通信結果の受信はguiと関係なので次のswing frameworkでは切り離したわけで、
だから描画とは関係ないeventやproperty fireとかもシングルスレッドにしてるのはどうしてなのかということです。
将来が予測できるかどうかじゃなくて、マルチスレッドにしてviewを独立させないことは自分自身で未来を潰しているようにみえませんか。

126 :デフォルトの名無しさん:2008/11/21(金) 04:33:04
>>99
伝統的に、イベント処理がシングルスレッド(シーケンシャル処理)だからですか。
なんかcui(今ではwebアプリとかサーブレットとか)ではThreadを導入していても、
gui(swingツールキット? invokeLaterなど)の設計の発想は昔のcのシーケンシャル処理・構造処理のままでOO指向じゃなかったんですね。

guiの(コンポネントじゃなくて)次のツールキット設計は、その古いシーケンシャル処理からの分離してコンポネント間の独立で
正しくOO指向のツールキットでしょう。最近guiやMVCなどの概念を使って、自作のコンポネント開発してみてるんですけど、
awtパッケージやawt.Toolkitはマルチスレッド設計ですよね?それで開発しているとよく気になって、swingは描画と
関係ない処理・イベント受付が絡み合ってるみたいなんでその辺りをすっきし指せれば別に遅くもないし、
透明かも擬似的に出来るし、逆に洗練され使いやすいんですけど。

SUNがswingに関心をもたなくなって次に向いている理由もなんとなく分かります。

127 :デフォルトの名無しさん:2008/11/21(金) 08:44:26
>>126
お前は、Sunが何故GUIのマルチスレッド化を諦めたのかをちゃんとしらべたほうがいい。
AWTは失敗だった、マルチスレッドでGUIを「正しく」実装するのは現実的には不可能だ、と言ってるんだから。


128 :デフォルトの名無しさん:2008/11/21(金) 09:23:05
AWTはマルチスレッド対応じゃねーし、
マルチスレッド対応だから失敗したわけじゃないでしょ。

129 :デフォルトの名無しさん:2008/11/21(金) 10:59:18
こんなGUIのフォームを作りたいんですが、
その中でいくつか質問があります。

テーブルA  ボタン  テーブルB
ID Name        ID  Name
[1 ][A ]       [1 ][E ]
[2 ][B ]  (追加)  [2 ][F ]
[3 ][C ]  (削除)  [3 ][G ]
[4 ][D ]       [4 ][H ]

1.テーブルID項目は非表示にさせたいけどできますか?
2.テーブルAセルを選択した状態で追加ボタンをおしてテーブルBに追加したいんですが、
 選択したセルの情報を取得する方法はありますか?

以上です。よろしくお願い致します。

130 :デフォルトの名無しさん:2008/11/21(金) 11:16:02
>>129
できますか、ありますかといわれたら、できますありますと答えるしかないw

131 :デフォルトの名無しさん:2008/11/21(金) 11:19:12
>>130
やり方を教えてほしいです。


132 :デフォルトの名無しさん:2008/11/21(金) 11:23:06
あげてすいませn

133 :デフォルトの名無しさん:2008/11/21(金) 11:27:23
Java低速GUI Swing 8
http://pc11.2ch.net/test/read.cgi/tech/1227234261/

134 :31:2008/11/21(金) 11:35:33
エクリプスにアプレットプラグイン追加してやってみたのですが
>>32と同じエラーがでます。

どうやら画像が読み込めてないようなのですがどうしたらいいのでしょうか?

135 :デフォルトの名無しさん:2008/11/21(金) 11:44:25
>>127
SUNはどうしてGUIのマルチスレッド化を諦めたんですか?
GUIとマルチスレッドはあまり関係ないんで当然だと思うんですが、何を正しく実装するんでしょうか?

136 :デフォルトの名無しさん:2008/11/21(金) 11:51:34
起きたばっかりで書き込んで所々重大な誤字がありますね。
少し誤解があるみたいなんで直しておきましたw

計算結果や通信結果の受信はguiと関係ないので、次のswing frameworkでは切り離したわけで、

古いシーケンシャル処理からの分離してコンポネント間の独立で、まさしくOO指向のツールキットでしょう。



137 :デフォルトの名無しさん:2008/11/21(金) 12:01:27
それでJavaFXの方はJavaとは独立してリッチ何とかと宣伝してるんでけど、結局は新しいツールキットなんですか?
それともswingみたいなコンポネント(デベロパ)の延長なんでしょうか?

nativeピアで透明化が可能なawt.Windowが(ネイティブ依存でも)取得できれば、
awtとjava2d,3dでなんとでも出来る感じがしますけど。ただswingがなくなる事はないでしょうけど、
java seはOS依存と思われるシステムトレイもサポートしたので、そのうちそんなwindowの取得も出来るんでしょうか。

138 :31:2008/11/21(金) 12:08:34
読み込み方法を変えたら無事に動きました。

139 :デフォルトの名無しさん:2008/11/21(金) 13:02:16
>>126
webアプリがマルチスレッドになってるのはwebアプリにはクライアントが複数あるから。
基本的には 1クライアントに対して、一度に 1スレッドしか動かないようにするわけで。

140 :デフォルトの名無しさん:2008/11/21(金) 13:25:22
それと同じような構造でgui toolkit frameworkを作ればいいんじゃないですか?
今のハードならスレッドにしたところでたとえすべて同期にしたとしても全く問題ないわけで。
webやデータベース問い合わせはすぐ処理が終わりますが、paintは少し計算が必要なだけでそんなのは今のハードなら屁でもないでしょw

今の時代のguiコンポネントは、テキストフィールドとか情報表示程度なので多少もたつく程度であまり気にならいのでしょう。
プロパティ更新などのイベントとpaintは全く関係ないのでこの辺りを切り離なせばswingはかなり有用なコンポネントになるんじゃないでしょうか。

問題もわかったことなので作るのはそんなに難しくはないのですが、どっちにしてもこんな根底部分の機構は私一人ではどうにもならないものなので、誰かjava.net辺りのプロジェクトで提案してリードしてくださいなw

141 :デフォルトの名無しさん:2008/11/21(金) 13:32:07
不満があって知識があって明確な目標があるのに何で自分で実装して提示してみないんだろう。
最初から実用に供することのできるGUIフレームワークなんか期待していないけれど、
スレッドセーフな小規模実装を出して技術的実現性とその有用性を示して見せれば否定的意見は減ると思う。
俺としてはGUIのスレッドセーフ化をsunが諦めたのは分からんでもない。

142 :デフォルトの名無しさん:2008/11/21(金) 13:33:58
言いだしっぺがやるべき

143 :デフォルトの名無しさん:2008/11/21(金) 13:38:11
>>140
それを自分自身で提案すればいいじゃないか
文句を垂れてみせるだけでもいろいろ意見が出てくるはずだぜ
だれも>>140自身にコード書いてみせろとは言わんよ

144 :31:2008/11/21(金) 13:40:14
プログラムは>>31と同じです。

画像を変更したら、うまく赤い枠で囲むことができなくなりました。
もっと精度よく検出するにはどうしたらいいでしょうか?

実行した画像
http://www2.uploda.org/uporg1799104.jpg

145 :デフォルトの名無しさん:2008/11/21(金) 14:08:09
Executors.newSingleThreadExecutor();で処理すれば
マルチスレッドの勉強しなくてもよくない?って思ったんですけど
考えが甘いですか?

146 :デフォルトの名無しさん:2008/11/21(金) 14:21:16
勉強しないで取捨できるって天才だな

147 :デフォルトの名無しさん:2008/11/21(金) 14:21:38
例えば
メッセージ: 「実行時にフォーマットを行いますか?」
ラジオボタン: 「はい(デフォルト)」「いいえ」 ボタン: 「実行」

なんてダイアログがあって、次のイベントが入ってくるとします。

(1)「ラジオボタン[いいえ]をクリック」 (2)「[実行]をクリック」

この場合、入力イベントがシーケンシャルに処理されるのであれば
(2)のイベントを処理する段階では(1)が既に処理されている事を概ね
仮定出来ます。ラジオボタンの現在状況を気にせず、選択状態を示す
内部変数を参照して処理を開始できます。
ところが、このラジオボタンはとても重要なので"シャッキーン"とか
派手なビジュアルエフェクトの後に内部変数を[いいえ]側に倒す実装の
場合はどうでしょう。
となると[実行]ボタンの側では処理を開始する前に、ラジオボタン等々の
処理内用に関連する全てのGUI部品向けのイベントが全て処理済みで
あるか確認する必要があります。
もし個別のGUI部品が非同期にイベントを受領して処理する事が可能
なのであれば、プログラマは常に部品間の依存関係に注意して適切に
ロックなどを設計する必要があります。これが結構大変。

あるいは、高度なユーザーであれば、ダイアログボックスの生成に要
する0.5秒より短い時間でいいえ「付近」と実行「付近」をカンでクリック
してくるかも知れません。
ラジオボタンの生成やpaintが完了する前に[実行]ボタンがイベントを
受領してしまうと、どうでしょう。

148 :デフォルトの名無しさん:2008/11/21(金) 14:22:41

いずれにしても上記の(1)->(2)というイベント「順」で表現された
「フォーマットはしないで、実行」という「文脈」を正しくとり
扱う必要があります。GUIの側は非同期処理で実装されていてもOK
ですが、その処理内容は常に上記のイベントの入力順番を意識する
必要があります。

まとめると、ユーザー操作のイベントは個々が単発で存在している
のではなく、「[いいえ]をクリック」「[実行]をクリック」とその
イベント列で表現された文脈の中に存在しています。
さらにGUIを持つアプリケーションは、多くの場合内部状態をもって
いるステートフルなアプリケーションです。
ステートフルなアプリケーションは非同期に入力されるイベントを
適切に取り扱うためにキューやロックを慎重に設計する必要がある、
これはGUIのみならずアクセンスカウンターからAmazonに至る
全てのウェブアプリケーションについても同じ事です。

ただGUIは内部状態の更新を引き起こすイベントの粒度がウェブに
比べより細かく、数も多いです。
また前述のようにイベント列は文脈をもっています。
この問題に対してイベント列をキューにためて順繰りに処理を行う
方法がプログラマが管理しやすい「現実的な」解として長らく支持
されてきたのだと思います。

もし現在の実装よりマルチスレッドなGUIツールキットの開発を目指
しているのであれば、個人的には入力イベントの文脈依存性をどの
ように取りさばくのか、その実装アイデアに興味があります。

149 :デフォルトの名無しさん:2008/11/21(金) 14:57:13
>>147
一つのアイデアとして、そういうことはやらない、ってのはどうかな?

150 :デフォルトの名無しさん:2008/11/21(金) 15:27:18
>>147
1.フェイルセーフの観点からは、「フォーマットしない」をデフォルトにすべき
2.内部変数のセットは、「シャッキーン」の前に実行すべき

151 :デフォルトの名無しさん:2008/11/21(金) 16:23:06
>>150
いや・・・全くそのとおりなのですが・・・

要はイベントの入力順を気にせず処理できるものからパクパク
処理していくと時に致命的な結果を招きかねませんよ、という事を
説明するために無理矢理作った例です。寝ないで考えたのに〜。

152 :デフォルトの名無しさん:2008/11/21(金) 16:29:09
マルチスレッドGUI君は、自分の答えやすいレスへしか返事してないな。
なんというチキン。

153 :デフォルトの名無しさん:2008/11/21(金) 16:49:31
>俺としてはGUIのスレッドセーフ化をsunが諦めたのは分からんでもない。

デッドロックとかも心配しるようですが、スレッドセーフは同期の問題なので、guiのpaintとは全く関係ありませんよ。
これでもまだ分からないなら、たぶんスレッドの本質部分があまり分かってないんじゃないでしょうか。

少なくともguiやpaintを上手く設計したところで、デッドロックがなくなるわけではないでしょw

せっかくOO指向をサポートしている言語なのに、paintを従来型のツールキットにあるイベント処理(ロジック)か何か勘違いしてるんでしょうね。

154 :デフォルトの名無しさん:2008/11/21(金) 16:57:41
>>147
たぶんそれは、jsr提案で次のswing frameworkにあるSwignWorkerで分離してると思うんですけど。

イベント処理つまりイベントのデータの取得、計算、結果の過程と、描画paintを区別・分離した実装
のことを書いてあるんですがお分かりになりませんでしたか?

実装にもよると思いますが、OO指向的には、計算とその表示は別に連動している必要はありませんよ。
どうしても連動させたいならsynchronizedでしょうかね。といってもスレッドのことわかってないみたいなんで、
そういう方はリンク先にもありましたけど、you do not have to understand the thread or sync deeply.とかなんですかねw

155 :デフォルトの名無しさん:2008/11/21(金) 17:11:25
>>148
あなたに技能があり、そのようなツールを開発してたりオープンソースに多少でも関係してるなら答えてもいいんですけどね。
というよりも、もし個人そういうことをやってたり考えてるなら、オープンソースのグループに参加してみると今までのあなたの狭い見識が一気に変わりますよw
私が見たところ、従来型のシーケンシャル処理とイベントキューから抜け出せず、さらに計算結果とその表示を連動させようと四苦八苦しています。
まさに、cuiやcの時代の思考方法でしょうかw

>さらにGUIを持つアプリケーションは、多くの場合内部状態をもって いるステートフルなアプリケーションです。

例えばこの一文でも、OO的な極端なところでは、その内部フィールドを全てクラスにして同期にすればなんとでもなりますよw
イベントキューの順次処理はそれが一番単純で確実で実装も容易なので問題ないのですが、
この順次処理とguiのpaintは連動している必要はないので、そういった発想の転換が求められてるんじゃないですか?

アイディアとかも、別に私より上の方々が既に実験実装してるんで、そっちに参加した方が面白いですよw
java 2d程度の数学知識があれば、flushのライブラリとかも普通に作れるし、そんなに難しくないんですけど、
とにかくイベントキューでpaintがもたつくのは数学では解決できずawtやswingなどツールキットの問題です。

156 :デフォルトの名無しさん:2008/11/21(金) 17:39:39
swingの設計について不満があるのはわかったが、
ここで何を言っても開発者に届くわけじゃないし意味ないと思うよ

157 :デフォルトの名無しさん:2008/11/21(金) 17:48:28
swingの開発者にこんな訳分からんのが届いちゃってもマズいと思うが。
時間の無駄だしストレス増加するだろうし。
swing開発者がハゲちゃったらどーすんだよ。

158 :デフォルトの名無しさん:2008/11/21(金) 18:04:23
>>155
う〜ん、なので私自身は最初に「伝統です」と答えたのです。
正直あなたがどの程度の知識を持ち合わせているのか分からなかった
ので、「どうしてそのような伝統なのか」という事情を具体例を挙げて
説明しようと試みました。
どうやら完全にスキルを読み違えた返答になってしまったようで申し訳
ありません。

確かに私はGUI方面からは暫く離れた古い人間で、しかも当時の専門
はどちらかというとVRとかいったやや特殊な表示方面でした。
ちょっと昔の事例ですが、CaveLib辺りを弄くっていました。
で、同期には大変苦労しました。

確かに仰る通り計算と表示は必ずしも同期する必要はありません。
(特にVRでは「しない」前提でないと設計できない事が多いです)
問題は、ユーザの操作シーケンスと計算(というかアプリケーションが
実現する処理一般)の内容は一致させる必要がある、という点です。

で、これを実現するためには描画は別CPUに丸投げ、とは案外いか
ないなというのが実感でした。
少なくとも再描画周りであればLayoutまではきっちり首に縄を付けて
おかないと、「座標xyzをクリック」というイベントを「部品Aをクリック」
といった論理イベントに解釈するところで大いにハマります。
でも分散しないとフレームレートが上がらない、ので苦労しました。

なので、仮に最近のOOを用いたアプローチでより洗練された設計
モデルが実現されているのであれば大変興味があります。
(興味、ですよ。今はこの分野からは離れているので。)
もしある程度確立したモデルがあれば教えていただけると幸いです。
あるいは参考になる実装なりプロジェクトがあれば幾つか挙げて
もらえないでしょうか?

159 :デフォルトの名無しさん:2008/11/21(金) 18:05:52
なんで2chでやるかな

160 :デフォルトの名無しさん:2008/11/21(金) 18:13:46
やっぱSwingよりSWTだよね!
・・・SWTに詳しいサイト教えてください><

161 :デフォルトの名無しさん:2008/11/21(金) 18:14:28
「Java並行処理プログラミング」に、その辺の事情が説明されている
イベントドリブンモデルでは、リソースに適切な順序でロックをかけるのが非常に難しい

Swingも当初はマルチスレッドを狙ったらしいが、
途中で無茶だと分かりシングルスレッドに変更とのこと
「マルチスレッドのGUIフレームワークは、非常に慎重に設計すれば無理ではないだろうが、
マルチスレッドの専門家しか扱えない代物になるだろう(大意)」とは、Sunの偉い人の弁

162 :デフォルトの名無しさん:2008/11/21(金) 19:33:38
>>161
どこで読んだか思い出せず、よーやく発掘したと思ったら先を越されたorz
まー、これだけでは何なので、p.214より一部抜粋。
> マルチスレッドのGUIフレームワークを作る試みは過去にいろいろありま
> したが、どうしても競り合い状態やデッドロックの問題に付きまとわれる
> ので、結局全員があきらめてシングルスレッドのイベントキューを使う
> 方式に落ちつきました。《略》(AWTは最%8

163 :162:2008/11/21(金) 19:37:11
途中で切れたorz 以下続き。
>《略》(AWTは最初、相当本格的なマルチスレッド
> アクセスをトライしましたが、その失敗の経験に基づいてSwingはシングル
> スレッド方式になりました。)
何故うまくいかなかったかについては、上記以降のパラグラフに書いてある
が、ここに引用するには量が多いので、詳しくは該当書籍をあたってくれ。

まぁ、上記の問題については、>>140が画期的な案を持っているようだから、
ここで開陳すると乗ってくるやつがいるかもしれんぞ。過去のGUI専門家が
皆諦めたくらいだし。

164 :デフォルトの名無しさん:2008/11/21(金) 20:09:19
おまいら、
>実際は、シングルスレッドすることは全てのメソッドをsynchronizedにするのとほとんど変わりませんよ。
こう書いてある時点で、釣りであることに気づけ。

165 :デフォルトの名無しさん:2008/11/21(金) 21:05:38
マルチスレッドなGUIのメリットってなんだろ??
シングルスレッドなデメリットってほとんど回避できそうなんだけど。

166 :デフォルトの名無しさん:2008/11/21(金) 21:32:02
結局そこに尽きる
苦労しても実入りが少ないから誰もやらない

167 :デフォルトの名無しさん:2008/11/21(金) 22:52:17
>>135
素人考えだが、マルチスレッドにしたらそれぞれがフリーダムに動いて
フリーダムなの動きがお互いに悪影響で、
それを回避するためにあれこれしてたらあはーんなんじゃないだろうか

168 :デフォルトの名無しさん:2008/11/21(金) 22:56:38
どうでもいいことで盛り上がってるな!

169 :デフォルトの名無しさん:2008/11/21(金) 23:38:36
マルチスレッドはマルチコアと関係ありますね?

170 :デフォルトの名無しさん:2008/11/22(土) 00:27:36
>>118
今手元に無いのでちょっと出せませんが
>生存時間
これを理解してなかった・・・。

Hoge testが動き始めたときには、すでに呼び出し元の
Servletはレスポンスを返し終わってるから、だめってことか。
ありがと

171 :デフォルトの名無しさん:2008/11/22(土) 02:34:23
オブジェクトの再利用ってのは
test a = new test()
test b = new test()

っていう風に同じオブジェクトをインスタンスしたということですか?

172 :デフォルトの名無しさん:2008/11/22(土) 02:37:47
スレッドだいぶ勉強したんで、なんかソースみたいんだけど
あんまりネット上にないね。マルチスレッドを実務でつかうことも
ほとんど俺の場合ないから、無駄というか、不満なんだ。

スレッドを使った面白いアプリを組んでみたいなあ。だれかソースくれ。

173 :デフォルトの名無しさん:2008/11/22(土) 02:39:31
>>171
毎回newし直さずに一度newしたインスタンスをずっと取っておいて何度も使いまわすことを指すんだと思いますが

174 :デフォルトの名無しさん:2008/11/22(土) 03:16:32
>>172
つWebサーバ
……に限らず、Javaで書かれたサーバ系のソフトはふつーマルチスレッドと思われ。

175 :デフォルトの名無しさん:2008/11/22(土) 04:53:56
>>158
VRというと1995年頃のあれでしょうか。
たぶんどんなに有用なりソースを紹介したところで、あなたの脳みそが順次処理(フローチャートw)に染まってるようなのでいくらUMLやOOを勉強しても無駄だと思います。
今でもまだ理解が足りませんが、私もOOの発想に切り替えるのに苦労したんでw
今教えて差し上げられる事は、先も書きましたがVRっぽくいえば、「大量の頂点座標の計算結果は、とくに描画せずに破棄してもよい」ということでしょうか。
ただ、同期しないといけないところは当然そのオブジェクトが有機体として一つになっているので、

例えば、首は右を向いた(イベント)なのに、胴体だけはpaintが追いつかず、表示しても首が180度回っちゃっているオーメンの呪われた少女wみたくなってるわけです。
これは、上のswingのように、胴体だけは座標計算は終わっているがイベントキューのためにpaint命令がつまっていてpaintが追いてないわけです。
ただこれも解決法がいくつもあるんで、こういうのは(数学上・手続き上で解決できる程度の)アルゴリズムとかですかねw

従来と同じ問題がありますが、100人でやる2人3足のように、そういう足が遅いものは他のオブジェクトからすると迷惑だと思いませんませんか?



176 :デフォルトの名無しさん:2008/11/22(土) 05:25:20
>問題は、ユーザの操作シーケンスと計算(というかアプリケーションが 実現する処理一般)の内容は一致させる必要がある、という点です。

3Dとか複雑なアプリを作るぐらいになっているなら、プログラムをその場しのぎの独学でやるんじゃなくて、
ちゃんと数学知識の裏づけを持って作ってみたらどうでしょうか。
たぶんこの一文から見てもあなたは小技をいっぱい知ってるが・・・って程度なのが分かります。
例えば、1秒で60フレームとかにこだわらず、10フレームでいいんじゃないでしょうか。それが今のソフト上の限界なのかもしれませんが、あなたの発想は、数学ではなくて、その限界を飛び越えようとする哲学か何かをもってるんじゃないですか?

しかしその小技もシーケンシャル処理だと通用しても、オブジェクト指向だとまったく通用しなくなるんで、その辺りの発想が抜けてないんじゃないかと思います。
別に小技がダメだとかOOがいいんだとか言うのじゃなくて、class数が多くなったアプリだと一人のデベロパがそれを理解することや管理するのが不可能で、もう既にシーケンシャルの発想のままじゃ無理ですよ。

>なので、仮に最近のOOを用いたアプローチでより洗練された設計

javaなら、javafxとかですかねwまだアルファみたいですけど、このプロジェクトが完全中止になる事はないでしょう。
他には、頑張ってるみたいですけど、adobe flashとかも正当な2d guiの進化をしている気がします。


177 :デフォルトの名無しさん:2008/11/22(土) 05:26:47

>イベントドリブンモデルでは、リソースに適切な順序でロックをかけるのが非常に難しい

だから、コンポネントを「情報表示のコントロール」と考えるとイベントと連動する発想で実装したくなりますが、
「コンポネントは独立していて、一種のアニメーションである」とかだと発想も変わるんじゃないですか。
旧来の発想ではいくらハードが進化しても描画イベントまち(paint)でもたつくわけで、これはソフト(toolkit)の描画機構の問題です。
つまり「コンポネントはイベントと連動して表示しなければならい」という発想が今の限界になってるんじゃないでしょうか?

これだけ問題点が出てきてるんで、後はこれを解決するような設計や機構をUMLとかで作るだけですよw
いくらguiが2dや3dを容易に扱えるようになっても、情報結果表示専用コントロールなどといった発想のままでは今後もテキストエリア程度のまま次の10年がすぎるんじゃないかなと思います。


178 :デフォルトの名無しさん:2008/11/22(土) 05:31:11
質問させて頂きます。
仮に
KeisanというClassに
public int add(int x, int y){
return x + y;}
というメソッドがあるとし、このメソッドをKeisan以外のクラスで使用するにはどうすればいいのでしょうか。
よろしくお願いします。

179 :デフォルトの名無しさん:2008/11/22(土) 05:45:42
なんか勘違いしてたのですが、オーメンじゃなくてエクソシストの少女でしたw
最後は神父さんが興奮のあまり2階の窓からダイブしちゃうアレですw

http://images.google.co.jp/images?gbv=2&hl=ja&q=%E3%82%A8%E3%82%AF%E3%82%BD%E3%82%B7%E3%82%B9%E3%83%88&btnG=%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E6%A4%9C%E7%B4%A2


180 :デフォルトの名無しさん:2008/11/22(土) 06:09:00
>>178
インスタンス化してaddメソッド呼び出しするんじゃないの?

181 :デフォルトの名無しさん:2008/11/22(土) 06:10:33
並列処理の人もいるみたいなんでコメントしておきますが、

>イベントドリブンモデルでは、リソースに適切な順序でロックをかけるのが非常に難しい

これもすぐにソリューションが浮かびますよw
ただ私は仕事や専門でやってるわけでも報酬をもらってるわけでもないので、それをお答えするつもりはありません。

一番大事な事は、その問題の効率的・合理的な答えが存在することじゃないですか?
たぶん、並列処理のツールを実際何かで使ってみたり、簡単なGCを実装してみたりすると、あなたもよいアルゴが浮かんでくると思います。

今作ってるのはグラフ理論ですかね。
http://bkv.so-net.ne.jp/
http://iv.xight.org/
みたいのでしょうかw
というよりも、今までの私たちの発想になかった次世代のコンポネントの感じがしませんか?


182 :デフォルトの名無しさん:2008/11/22(土) 06:13:24
インスタンス化する方法を教えてください。もしくはTUTORIALなどのリンクなどでも結構です。

183 :デフォルトの名無しさん:2008/11/22(土) 06:14:51
new か?

184 :デフォルトの名無しさん:2008/11/22(土) 06:18:34
>>175

>たぶんどんなに有用なりソースを紹介したところで、あなたの脳みそが
>順次処理(フローチャートw)に染まってるようなのでいくらUMLやOOを
>勉強しても無駄だと思います。

またまた、そんな出し惜しみせずにw
無駄かどうかは自分で判断しますし、少なくともコードは読めますから、
まずは具体例を列挙してもらえると大変助かります。
特に「実験実装」事例に興味があります。

>>adobe flashとかも正当な2d guiの進化をしている気がします。

幸いFlashについてはFlexについてライブラリの構造やイベント処理周りに
関してある程度理解があります。これまでの議論と関連して、どの辺りが
特に優れていると感じられますか?

一つ気になったのは、重いイベントの破棄や、フレームレートの程度や、
コンポーネントと描画の連動の是非は基本的にアプリケーションの仕様
で決まるものであり、OO等の設計論とは別の問題ではないでしょうか。

もう一つ判然としないのは、マルチスレッドの適用範囲です。意図されて
いるのは全体をざっくりMVCに分けたとして、MとVとCの間の結びつきを
非同期にすることを考えられていますか?
それともV相当の部分もより細かく分割して、内部を非同期で処理する
ことを目指されているのか、どちらでしょうか?

185 :デフォルトの名無しさん:2008/11/22(土) 06:30:10
>>182
Keisanクラスをimportして普通にnewじゃないかな?
間違ってたらごめん。

186 :デフォルトの名無しさん:2008/11/22(土) 06:56:04
jdkにあるdemoにグラフ理論のデモ・アプレットがあるので(先のリンクと全く同じものです)
それを参考にしたらどうでしょうか。今までの考え方が全く代わりますよ。

flashはもともとアニメーションから始まっているってことを知っているなら、
今までのコンポネントの設計・利用の発想と全く違うし、
MVCは完全に分離されているって事が理解できるのかもしれませんw
あなたのイベントに依存しているpaintモデルは、wikiの記事にもありましたがVCがくっついてるものですかね。

swingやツールキットの設計がOO思考じゃなくて従来のイベント処理を土台にしてるって事なので、
それを利用するアプリは否応なくイベントドリブンの作法に従わなければならないってことでしょう。

いま自作でグラフ論理ライブラリを作って実験してるところなのでなんともいえませんが、
仮にswingと全く逆のアプローチで、全ての視覚コンポネントをnew Thread(comp)としても、人間の感覚に触るようなストレス・コストはありませんよ。
それよりもpaint待ちの0.5秒問題の方がストレスな気がします。

VについてはSwingWorkerのようなソリューションで、内部の描画には触らないほうMVCの完全分離となるんじゃないでしょうか。
コンポネント・コントロール(extends java.awt.Component)は、自分でつくったもののみしかダメって訳じゃないでしょう。

最終的にはレイアウトマネージャの自作実装になるんでしょうけど、まだそこまで手が回らないんですが、
ネットではレイアウトマネージャの実装解説はあまりないですね。
ボタンとかリストぐらいなら、コンテナサイズ変更不可かつnull layoutでいいんでそんなに難しくないんですけど、これは一応guiですが実質的にコマンドライン・プログラムでしょう。

これだけヒントがあれば、必要最小でシンプルなadobe flashライブラリflexの自作などもそんなに難しくないでしょう。

187 :デフォルトの名無しさん:2008/11/22(土) 08:17:45
最近の情報視覚化やってる連中って「グラフ理論やってる」って自称するもんなのか?

188 :デフォルトの名無しさん:2008/11/22(土) 08:21:12
>いま自作でグラフ論理ライブラリを作って

ええと、ここは多分グラフ「理論」の事ですよね。グラフ論理だととても
意味が変わってくるので一応確認します。
つまりこれは、グラフ理論を用いて例えば描画にまつわる依存関係や
制約問題を解くライブラリという事でしょうか。

あるいはばねモデルによるインタラクティブなグラフ表示のような、
グラフ「を」描画するライブラリの事でしょうか。
TouchGraphやPrefuseといったライブラリに相当するものでしょうか?

あとFlashがMVCに完全に分離されている、というのは正直どのような
視点から述べられているのか不明確です。MVCのそれぞれに対応する
Flashの構成要素を具体的に示してもらえますか?

189 :デフォルトの名無しさん:2008/11/22(土) 08:24:02
>>185
Thanks!やってみる。

190 :デフォルトの名無しさん:2008/11/22(土) 08:53:53
これ人工無能だったら良い出来だよな

191 :デフォルトの名無しさん:2008/11/22(土) 09:06:18
初心者の質問が無くなるから他でやれ

192 :デフォルトの名無しさん:2008/11/22(土) 09:29:45
どこいっても迷惑がられると思うんだが

193 :デフォルトの名無しさん:2008/11/22(土) 10:07:23
デバッグってなんですか。

194 :デフォルトの名無しさん:2008/11/22(土) 10:38:15
>>193
鞄の中身を取り出して、
要らない物があったら棄てて
また入れ直す作業の事です。

あ、depackかorz

195 :デフォルトの名無しさん:2008/11/22(土) 10:49:39
livedoorブログを使ってます。
Javaのソースコードをブログの記事に載せたいのですが
如何も奇麗に載せられません。

ソースコード HTML化 コンバーター「唐辛子」も
使ってみましたが奇麗に表示しません。
使い方が間違ってるのでしょうか?

何方かlivedoorブログでソースコード等を奇麗に表示されてる方及び、
奇麗に表示させる事をご存知の方教えて頂けませんか?
よろしくお願いします。

196 :デフォルトの名無しさん:2008/11/22(土) 11:11:40
>>182
x = new Keisan();
int y = x.add(1, 2);

197 :訂正:2008/11/22(土) 11:12:23
>>182
Keisan x = new Keisan();
int y = x.add(1, 2);

198 :デフォルトの名無しさん:2008/11/22(土) 12:38:48
>>188
あなたの文章を読んでいると、あなたは根っからのPG職人ってところですかねw
もし興味あるなら、まずはGraphcis2Dを使えるように勉強したらどうですか?
それと、あなたはいつまでも自分の意見を変えない宗教っぽい人だとおもんですけど、
一筆書き問題を計算して、その結果を表示する事、さらにどの位置にどのような表現で表示するかは、全く別ってことでわかるんじゃないでしょうか。

今作ってるライブラリは根底部分はjdk1.1のアプレットで動かすためにコレクションもMyHashtable, MyVectorとかで自作してるし、
classファイルが100を超えてるんで、UML知ってるかどうか以前にOO指向じゃないと一人では管理する事は明らかに無理です。
というか、こういう苦労話を聞きたいわけじゃないでしょw

199 :デフォルトの名無しさん:2008/11/22(土) 13:24:55
人工無能のソフトウェアパターンとして、
「はい」か「いいえ」かで答えられるような質問に対しても明示的に答えず、
駄文で文字数稼いで如何にも答えているかのように見せかける
というのがあるのでしょうか。

200 :デフォルトの名無しさん:2008/11/22(土) 13:27:55
>>186
お前、以前ここで、JFrameが数十回に1回白くなるのはバグだとか
アホを晒してみんなに呆れられてた奴だろ?w

201 :デフォルトの名無しさん:2008/11/22(土) 13:54:09
>>198
いやぁ、宗教ぽいというより、単に疑問点に対してしつこいだけですよw
どうもあなたのレスの中には次々と新鮮な視点が提示されるため、それらに
対する疑問が解けないうちは意見も変えようが無いじゃないですよね。

特にFlashとMVCの対応は是非とも説明していただけると有り難いです。
これは個人的にはとても新鮮な視点で、故に理解が難しい点も多いです。
例えばFlash界にもCairngormやPureMVCといったMVCフレームワークが
存在します。しかしそもそもFlash自体が明確なMVC構造を持っているので
あればこのようなフレームワークは屋上屋を重ねるものでは無いでしょうか?

一筆書きを解くのと描くのは別問題なのはその通りだと思います。
で、現在開発中のライブラリの目的はどちらなのでしょうか?

202 :デフォルトの名無しさん:2008/11/22(土) 14:05:39
しまった、真面目に相手して馬鹿を見た……。

203 :デフォルトの名無しさん:2008/11/22(土) 14:34:14
中二でC言語遣らないで、
Javaから手出して配列とかやってる奴って凄いの?

204 :デフォルトの名無しさん:2008/11/22(土) 14:47:50
>>200
反応ないところを見るとたぶんそのアホなんだろうなww
こんな鼻糞みたいな奴はほっといて俺達の初心者ちゃんの質問に答えてやろうぜ!

205 :デフォルトの名無しさん:2008/11/22(土) 15:17:37
>>201
今までの伝統的な手法であったから行き詰まったんでしょう。
ということは全く別な始点でソリューソンする必要があるんじゃないでしょうか。
私から見ると、adobe flash, javafxなんかはtcl/tkの再来(だいぶ違うが)にしか見えないんですけど、
guiのコンポーネント操作(イベントとかも含めたツールキット)は、jvmをプラットフォームにして、java langとanother scriptに分けるぐらいにしないと自然な分離はできないんだなと思います。
つまり、VとCは別のものとして作っても全く問題ないってことです。この辺りに気がつくかどうかは、数学とかパズルのセンスが必要なのかなっておもいます。
逆にいえば、swingはシングルスレットであるって事が強みなんですけどね。

外部調達ならjavax.scriptサポートが必然的に必要だし、invokedynamic bytecodeも必要になってくるって事ですかね。
あまり深く追いかけてませんが、jdk1.1 applet用のライブラリを作っているとEnumerationとEnumeration用の内部クラスばかりなので、
どのjdkでも頻出イディオムだし、クロージャは早いところ仕様をまとめて導入して欲しいところです。

とうか、私はCとかポインタとかもバリバリ使えますよww
ライブラリですけど、アスペクト指向はまだ良く分かってないんでまだですけど、プロトタイプ指向はもう既に実装して実験的ですがライブラリに組み込んでますよ。
描画の方はもう弱点がわかったんでソリューションもできたし、今のところはレイアウトマネージャをどうやって実装するかってところです。

いくつかあるんですけど、グラフ理論に興味があるなら本格的なライブラリならこれですかね。
http://jung.sourceforge.net/presentations/index.html

206 :デフォルトの名無しさん:2008/11/22(土) 15:22:22
あなたはまず改行を覚えた方がいいですよ

207 :デフォルトの名無しさん:2008/11/22(土) 15:23:31
トリ付けろ
相手したい奴だけが相手したらいい
それ以外の人に迷惑だ

208 :デフォルトの名無しさん:2008/11/22(土) 15:28:55
デッドロックを気にしている人もいましたけど、自分で実際に問題となる小さいプログラムを作ってみると上手いソリューションが浮かんでくるんじゃないでしょうか?
MVCのそれですけど、先も書きましたがflashはアニメーションから始まってることを知ってれば、従来のコンポネントとは違うってことを自然と分かるんじゃないでしょうか。
もしくは、>>201はアプレットでアニメーションとか作ったことあると、たぶん今までのイベントモデルでやるんじゃ難しすぎるって事がわかるんじゃないかと思います。
小さい脳みそで考えてばかりいないで、サルみたく手を動かせってことでしょうかww

209 :デフォルトの名無しさん:2008/11/22(土) 16:01:59
もう俺にはおなかいっぱいw
本とキモイから死んでくれよw

210 :デフォルトの名無しさん:2008/11/22(土) 16:25:24
やっぱり人工無脳なのかなぁ

211 :デフォルトの名無しさん:2008/11/22(土) 16:28:01
初心者が質問しにくいナガレだな

212 :デフォルトの名無しさん:2008/11/22(土) 16:28:31
人工無能でこれぐらいできるなら音声認識&読み上げ機能組み込んで
ボケ老人の相手とかさせたらビジネスになるんじゃないかと思ったりする

213 :デフォルトの名無しさん:2008/11/22(土) 17:09:45
もうJAVAは難しすぎる!おれはC#にする!絶対!!

214 :デフォルトの名無しさん:2008/11/22(土) 17:46:39
>>212
それは既に初ねミクで実装されてるよww
おまえ、頭大丈夫か?

215 :デフォルトの名無しさん:2008/11/22(土) 17:51:38
あぁ、人工無脳を疑うコメにこれまた人工無脳で生成されたかの
ようなツッコミが。頭痛くなってきたよ〜

216 :デフォルトの名無しさん:2008/11/22(土) 18:20:54
ジャバなんか鼻糞じゃんか。オレは最強のMVCであるMICROSOFT.NETをすすめる!

217 :デフォルトの名無しさん:2008/11/22(土) 18:29:02
ありゃ。一気に脳みそレベルが下がっちゃったみあいw

218 :デフォルトの名無しさん:2008/11/22(土) 18:49:18
もう次から次から新しいことなんか覚えられないよ
やっぱり俺はC#でいいや
マイクロソフトと俺は心中することに決めた

219 :デフォルトの名無しさん:2008/11/22(土) 19:06:14
知ってたら教えて欲しい。

javaからクラスパスを取得する方法ってあるかい?

ClassLoader.getSystemResource("hogehoge.ini")
こんなコード書いてるんだけど、nullしか返ってこないんだ。

だから、クラスパスを表示してみてみたいと思ったんだ。

220 :デフォルトの名無しさん:2008/11/22(土) 19:21:34
System.getProperty("java.class.path")
自己解決した、これで取得できた。

System.out.println(System.getProperty("java.class.path"));
これで表示できた。

ちょっとググルキーワード変えたら出てきた。

221 :デフォルトの名無しさん:2008/11/22(土) 20:59:08
どうでもいいけど、>>200>>204
とてもわかりやすい自演をみた。

222 :デフォルトの名無しさん:2008/11/22(土) 21:09:00
エスパーさんこんばんは

223 :デフォルトの名無しさん:2008/11/22(土) 21:38:15
あの・・・エクソシストって映画なんですね・・・その首の女の子がこっち見てるんですけど・・・・

224 :デフォルトの名無しさん:2008/11/22(土) 22:35:50
Javaの勉強してだいぶ立つんだけど(俺は超底辺のブラック勤務)
独学だからいかんせん抜けが多い。でも市販の書籍だけではとてもきちんと
知識をつけることはできない。色々ググってたら、http://www.rsch.tuis.ac.jp/~ohmi/software-basic/index-a.html
っていうページみてとてもうらやましく思った。で、大学の教科書が欲しくなった。
どうやったら大学の教科書って手に入るの?

225 :デフォルトの名無しさん:2008/11/22(土) 22:40:33
amazon

226 :デフォルトの名無しさん:2008/11/22(土) 23:06:11
質問です
文字列の中で変数を使いたいのですが
どのようにしたらよいのでしょうか?

227 :デフォルトの名無しさん:2008/11/22(土) 23:14:52
変数らしきものを自力で探し出して置き換える
簡単な方法はない

228 :226:2008/11/22(土) 23:21:20
>>227
そうだったのですか・・・
では面倒ですけど、地道に変数の値を文字列に入力していくことにします。
ありがとうございました。

229 :デフォルトの名無しさん:2008/11/22(土) 23:30:57
ん?

単純に
int a=3;
String str = "1足す2は" + Integer.toString(a);
System.out.println(str);

とか↑こんな感じのことをいってるんじゃないのか?

230 :226:2008/11/22(土) 23:44:34
>>229
まさにそんな感じでした。
いま試してみたらばっちり上手くいきました。
ありがとうございました!

231 :デフォルトの名無しさん:2008/11/22(土) 23:49:38
>>229
String str = "1足す2は" + a;
でいいじゃん。文字列に+するときは自動的にtoStringされる。


232 :229:2008/11/23(日) 00:45:58
>>231
そうなのけ?Javaはもう4年くらいやってないからよくわからん。。

勉強になったよ。ありがとう。質問者さんも解決したみたいでよかった。

233 :デフォルトの名無しさん:2008/11/23(日) 01:27:55
>>232
Javaでは、String自身を除く全てのデータ型(nullも含む)について、Stringへの変換が規定されてる。で、+演算子の前後どっちかがStringなら、もう一方もStringに変換される。(Java言語仕様第3版5.1.11, 5.4, 15.18.1参照)

234 :デフォルトの名無しさん:2008/11/23(日) 03:14:13
String a=10; エラー
String a=""+10; OK

235 :デフォルトの名無しさん:2008/11/23(日) 05:01:11
>>234
で?

236 :デフォルトの名無しさん:2008/11/23(日) 10:21:50
沖縄に外国人3000万人受け入れ計画
http://life.bbs.thebbs.jp/1227401075/

こんな法案が可決したら日本は破綻する
(ちなみに東京の人口は1280万人)
選挙権がある方は良く考えて投票してください



237 :デフォルトの名無しさん:2008/11/23(日) 15:06:46
あほみたいな質問なんですが、javaのパスは通るのですがjavacのパスだけ通ってくれません。
使用しているOSはwindows XP HE SP3
インスコしたのはver6のup10

パスの記述は間違っていませんし、実際にその階層にjavacもあります
OSを再起動をしてみるのですが、ずっと迷子のままです

wikiもggrksもしてみましたが、解決法にたどり着けずに苦しんでます
だれか、こんなあほの子に救いの手をください。

238 :デフォルトの名無しさん:2008/11/23(日) 15:32:06
>>237
「パスが通らない」という意味がわからん。パスは通すもんだ。
マイコンピュータで右クリックメニューを出して「プロパティ」を選択
→「詳細設定」タブで「環境変数」ボタンを押す
→上半分の「xxx のユーザー環境変数」(xxx の部分はお前のユーザー名)のところに、変数「PATH」がないか探す
→→変数「PATH」がない場合は、「新規」ボタンを押して、変数名に「PATH」、変数値に「C:\Program Files\Java\jdk1.6.0_10\bin」を記入し、「OK」→「OK」と押す
→→変数「PATH」がある場合は、PATHの行をダブルクリックして、変数値の末尾に「;」(セミコロン。コロンと間違えないように)で区切って「C:\Program Files\Java\jdk1.6.0_10\bin」を記入し、「OK」→「OK」と押す
→コマンドプロンプトを開いて、「echo %PATH%」と入力してリターンを押す。表示される中に上で記入した値が入っていれば、設定が反映されている
→「javac」と入力してリターンを押し、使い方のメッセージが表示されれば、記入した値が正しいことが確認できる。そうじゃなければ何かミスってる


239 :デフォルトの名無しさん:2008/11/23(日) 15:55:23
>>238
それでもうまくいかなかった
#echo %path% で通っているにも拘らず

ので、一度windowsから復元をかけてインスコ前にして、
再インスコしました。再インスコしたらうまくいったので、
インスコに失敗していたのかもです。どもです。

240 :デフォルトの名無しさん:2008/11/23(日) 16:16:04
JSPでフォームに入力したテキストをMySQLに入れるプログラムを作っているのですが、
登録しても登録されていない。
MySQLのログを見ると確かにINSERT文がMySQLに送信されているのですが……
そのINSERT文を丸ごとコピペしてコマンドラインでmysqlコマンドを使って直接ぶち込むと
きちんと登録されます。
エラーログには何も残っていません。
これは何が原因でしょうか?

241 :デフォルトの名無しさん:2008/11/23(日) 16:20:38
RMI(りもーとめそっどいんヴぉけーしょん)のサンプルをたくさんやってみたいんだけど
オライリーの本しかない(´・ω・`)
でも、オライリーは昔からあんまりすきじゃない(´・ω・`)ピアソンエデュケーションとかがすき。

そういうことでRMIのオライリー以外の本とかRMIのことが割合詳しく載ってるWebページしってるひといたら
おしえて(´・ω・`)

242 :デフォルトの名無しさん:2008/11/23(日) 16:22:29
オライリーの本って、くどくど長たらしいよね(´・ω・`)

かといって、面白そうなページからやろうとすると、くどくどした
説明のところを何ページもやらないとできないようになってる(´・ω・`)

クックブックとか別だけど。

243 :デフォルトの名無しさん:2008/11/23(日) 16:36:51
>>238
>javaのパスは通るのですがjavacのパスだけ通ってくれません。
使用しているOSはwindows XP HE SP3

javaは最初からパスが通ってる。だから、パスを設定しなくても実行できる(JVMをインストールした時点で)。
で、パスが間違いなく通っているのにjavacが使えないというのは、100%ない。だからパスが間違ってる。
1)パスとパスの区切りにセミコロンはいれたか?要するに前のパスとの区切りでセミコロンはいれた?
2)パスはエクスプローラ(マイコンピュータなど)を開いて、必ずアドレスバーを表示するようにして
  jdkのインストールディレクトリ\binまでたどっていき、アドレスバーの文字をコピーしてパス設定のダイアログに貼り付ける
  この際、今まで記述してあったパスとの区切りにセミコロンを必ずいれること。アドレスバーの出し方は↓
http://www.progless.com/soft/shatv2/samples/tips/addressb/addressb.htm



244 :デフォルトの名無しさん:2008/11/23(日) 16:41:29
javaの勉強始めようと思ってる大学生です。
まともに使える言語がないので勉強しようと思ったんですが、どのような方法で
勉強するのがお勧めですか?
2週間ほどWebで教えてくれるサイトを巡って、書いてあることをひたすら読んでいるんですが、
正直スキル向上する気がしません。

for,ifなどの基本的な命令は使えます。

245 :デフォルトの名無しさん:2008/11/23(日) 16:48:53
>>240
ちゃんと MySQL に接続できてるか、とか DB 名(っちゅーか DSN)間違ってないか、とか
テスト用にローカルに立てた MySQL につないでないか、とか調べろ。それ以上はエスパーに頼め。

>>241
2年前に仕事で RMI やったけどあんまり Web に情報無いよね。本もないし…。
仕事ではクライアント側が自分の RMI オブジェクトをサーバに登録して、サーバから呼び出してもらう
ってのを作ったけど、ググった情報だけでなんとかなった。
そもそも RMI って結局はメソッド呼び出しの遠隔版だからそんなに情報必要じゃないんだよね。
まあがんばれ。

246 :デフォルトの名無しさん:2008/11/23(日) 17:07:30
>>244
ソースコードを読んで書く。適当なサンプルプログラムをひっぱってきて、読む。読んだらちょっと自分で機能を追加したり変更しりして動かしてみる。
動かすときは、デバッガで1行ずつステップ実行したり、要所要所にprint系の文を突っ込んで変数の値がどのように変化していくのかを見てみる。
何をどうやったらプログラムがプログラムとして成立しているのかを理解したら、1から書いてみる。


247 :デフォルトの名無しさん:2008/11/23(日) 17:17:51
>>246
やっぱりソースコードを自分で作成することが大事なようですね。
自分も今の方法で勉強するか、その方法で勉強するか迷っていたんです。
ありがとうございます。

質問追加してしまって申し訳ないんですが、その勉強方法をするためのソースコードとして
勧められるようなものってなにかありますか?

248 :デフォルトの名無しさん:2008/11/23(日) 17:44:21
>>243
そりゃもう何度もやってましたよ、と
おかしいから質問したのであって、記述ミスとかの話じゃないです

249 :デフォルトの名無しさん:2008/11/23(日) 18:24:34
>>248
なぜ環境変数等を晒さないの?
echo %PATH%とdir "C:\Program Files\Java\jdkxxx\bin"の出力結果
cmdがおかしいとか、記述ミスじゃないと判断する前に当然自分では確認したんだよね?


250 :デフォルトの名無しさん:2008/11/23(日) 18:37:59
>>248
とりあえず絶対pathで使えるかやってみたら?
c:\ほげほげ\javac なんとか.java
が動くかどうか。

251 :デフォルトの名無しさん:2008/11/23(日) 19:08:19
なんですぐ入れ食い状態になるの?

252 :デフォルトの名無しさん:2008/11/23(日) 19:09:45
puts("'javac' は、内部コマンドまたは外部コマンド、\n操作可能なプログラムまたはバッチ ファイルとして認識されていません。\n");
だったらうけるw

253 :デフォルトの名無しさん:2008/11/23(日) 19:44:05
javaスレだし、Cはいらん
勉強するならCからだけどなw

254 :デフォルトの名無しさん:2008/11/23(日) 20:41:43
>>249,250
239にも書いたように、再インスコで動くようになりましたよ、と。
どもですどもです。

255 :デフォルトの名無しさん:2008/11/23(日) 20:57:19
iアプリのプログラムを書いたりしてみてるんですが…

これの際にわざわざ
「どこかの鯖にそのjarをUL⇒携帯電話端末でそれをDL」
ってやらないと自分のケータイで実行することってできないの?

256 :デフォルトの名無しさん:2008/11/23(日) 20:59:37
>>255
iモード携帯電話用Java(iアプリ) Part18
http://pc11.2ch.net/test/read.cgi/tech/1214192372/

257 :デフォルトの名無しさん:2008/11/23(日) 21:01:51
>>256
スレ違いすみません。
早速除いてみます

258 :デフォルトの名無しさん:2008/11/24(月) 01:29:09
jdk1.6.0_07をインストールしたのですが、環境変数の設定が解らず困っています。
参考書を参照しているのですが。
新規CLASSPATH
新規path
新規jAVA_HOME
何を入れたらいいのでしょうか?
OSはXPです。

259 :デフォルトの名無しさん:2008/11/24(月) 01:32:09
>>258
可愛いこと言うな!コノヤロー

260 :デフォルトの名無しさん:2008/11/24(月) 01:36:18
>>259
どういう事でしょうか?

261 :デフォルトの名無しさん:2008/11/24(月) 01:49:45
 >>258
多分、その参考書には載ってないと思う。

262 :デフォルトの名無しさん:2008/11/24(月) 02:32:20
パーティ用にクイズゲームを作ろうとしていますが、
スコアボードとして「+」や「-」をクリックすると数字が増減するjavaのプログラムを組もうと試みています。しかし、テキストボックスを利用すると文字が小さすぎてパーティで利用するには不向きです。

・テキストボックスのフォントサイズを変える方法
・無理なら、数字の書かれた画像を+-クリックで増減させる方法
・それも無理ならクリックするごとに☆画像を増やす方法
・javaで無理ならFLASHのサンプルなどあればご教示いただけると幸いです。

OSはXPです。ブラウザは今のところIE6ですが、特に何でもかまいません。

263 :デフォルトの名無しさん:2008/11/24(月) 03:19:42
>>262
画面の解像度を VGA にするとか。

264 :デフォルトの名無しさん:2008/11/24(月) 03:49:53
JAVA?アプレット?javascript?

エスパー的にはjavascriptはスレ違いとしか応えようがないぜ

JavaScript
http://pc11.2ch.net/test/read.cgi/tech/1192182741/
ここで質問するといいんだろうか

265 :デフォルトの名無しさん:2008/11/24(月) 06:06:02
@Map.Entry<String, Integer> x 
Ay=y+x.getValue(); 
BSystem.out.println(y); 
Cbw.write(y);
@のようにマップのエントリを行い、
Aでintで宣言したyとxの値を足した場合
DOS画面では結果が表示されるのに(B)、ファイルに保存した場合(C)■的な文字化けになってしまいます。
MAPの値を直接足すのはダメなのでしょうか?文字コードも色々変えてるのですが変わらず困っています。
心当たりのある方お願いします。

266 :デフォルトの名無しさん:2008/11/24(月) 06:16:56
バイナリで書き込んでると予想

bw.write(""+y);

こんな風に""+を追加したら文字列として書き込んでくれるかもしれない

267 :デフォルトの名無しさん:2008/11/24(月) 06:23:09
>>266
て…天才だ!!!!!
しかも即レスでありがとうございます!!感動しました。
仕組みはよく分からないんですがバイナリになるんですね。
ここで聞いてよかった…。感謝します。

268 :デフォルトの名無しさん:2008/11/24(月) 06:30:43
照れるぜ

画面に表示する時は、当たり前のように文字列なんだけど
ファイルに保存となるとバイナリかテキストのどちらかになるんだ。

1+1だと結果は2になるけど、
""+1+1だと結果は"11"になる

>>266の方法はこのルールを使っただけなんす

269 :デフォルトの名無しさん:2008/11/24(月) 06:44:34
>>268
なるほど!勉強になります!
てっきりマップにアドレス的なものがあって変換しなきゃならないとか
色々模索してたんですが、writeのほうにそのような仕様があったんですね。
初歩的な知識不足でご迷惑おかけしました。
悩みが解消してこれで寝れます。本当にありがとうございました。

270 :デフォルトの名無しさん:2008/11/24(月) 10:38:28
英語の本は(海外の本)は、間違いが生じないように細かく詳細に書くこと基本で大事だって思想だからしょうがない。
だけどそれだけしっかり書いてある(仕様がしっかりしている)からどこでも通じるし信用できるんだけどね。
それに比べて日本の解説本は酷いだろ。
教科書とかも助教授あたりが自分の書きたいところだけ細かく書いてるだけで、5年もすれば捨てちゃうような内容だし、コンピュータ雑誌と同じじゃないの?
だからちゃんとした教科書が欲しいなら結局英語の本(とその翻訳)になっちゃうんだよね。
rfcとかもも含めてそういう堅い本が読めない奴はこの世界に入るのはあきらめたほうがいいな。

271 :デフォルトの名無しさん:2008/11/24(月) 13:42:51
258です。
どなたか教えて下さい。

272 :デフォルトの名無しさん:2008/11/24(月) 13:51:24
>>271
可愛いね^^

273 :デフォルトの名無しさん:2008/11/24(月) 14:02:37
大学で出た課題の中で、配布されたプログラムの中で
equals()とhashCode()をオーバーライドしてるんですか
その理由はjava.lang.Comparableのマニュアルを見れば分かるよ
と言われたんですが意味分かりません
どういうことなのか分かりますか?

274 :デフォルトの名無しさん:2008/11/24(月) 14:10:43
1、Javaではequalsをオーバーライドしたらhashcodeをオーバーライドしなければならない 
2、Comparableはオブジェクトの比較をするためequalsをオーバーライドしなければならない

1,2はみんなでこうしようと決めた約束事 もちろん文書には書いてある。エラーにならないかもしれないけれども

1、
http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/Object.html#equals(java.lang.Object)
http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/Object.html#hashCode()
2、
http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/Comparable.html

275 :デフォルトの名無しさん:2008/11/24(月) 14:12:41
>>273
http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/Comparable.html
>C クラスの自然順序付けは、C クラスのすべての e1 および e2 について、
>e1.compareTo(e2) == 0 が e1.equals(e2) と同じ boolean 値を保持する場合にだけ、
>「equals との一貫性」を保持します。
・・・
>自然順序付けでは、equals と一貫性があることは、必須ではありませんが強く推奨されます。
>これは、明示的なコンパレータを指定しないソートされたセットやソートされたマップを、
>自然順序付けが equals と一貫性のない要素またはキーと一緒に使用すると、
>セットとマップの動作が保証されなくなるからです。

http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/Object.html#equals(java.lang.Object)
>通常、このメソッドをオーバーライドする場合は、hashCode メソッドを常にオーバーライドして、
>「等価なオブジェクトは等価なハッシュコードを保持する必要がある」という
>hashCode メソッドの汎用規約に従う必要があることに留意してください。

上記の通りだが、どこがわからない?

276 :273:2008/11/24(月) 14:15:04
>>274
>>275
分かりました。ご丁寧にありがとうございます。

277 :デフォルトの名無しさん:2008/11/24(月) 14:28:21
マニュアルを見ろ、と言われて、何を見ればいいのかわからなかった、ということだろうか

278 :デフォルトの名無しさん:2008/11/24(月) 14:47:55
258です。
しつこいようですが、教えて下さい。

279 :デフォルトの名無しさん:2008/11/24(月) 14:50:45
何様?

280 :デフォルトの名無しさん:2008/11/24(月) 14:59:39
>>258
CLASSPATH → 設定不要。非標準のライブラリ(自作を含む)を使うときだけ気にしろ。
PATH → >>238 参照。jdk1.6.0_10 を jdk1.6.0_07 に読み変えるか、JDK6.0update10をインストールしろ。
JAVA_HOME → 設定したことないが、必要なのか? これ。

281 :デフォルトの名無しさん:2008/11/24(月) 15:24:22
>>280
ありがとうございます。
やってみます。

282 :デフォルトの名無しさん:2008/11/24(月) 16:08:09
import java.io.*;って何ですか?

283 :デフォルトの名無しさん:2008/11/24(月) 16:11:29
java.io の全てのトップレベルクラスを単純名でアクセスできるようにする。

284 :デフォルトの名無しさん:2008/11/24(月) 16:17:47
>>282
いちいちパッケージ名を含めたクラスの完全限定名をコード中に書かなくてもいいように、
java.ioパッケージに属するクラスなら短い単純名だけに省略化して書けるようにする。
java.io.Reader r = new java.io.BufferedReader(new java.io.FileReader("hoge"));
と長々と書かずに、
Reader r = new BufferedReader(new FileReader("hoge"));
と書ける。

285 :デフォルトの名無しさん:2008/11/24(月) 16:21:44
>>284
なるほど!わかりやすく説明して下さって有難う御座います♪

286 :デフォルトの名無しさん:2008/11/24(月) 23:30:45
クラス分けについて質問です

SQlDBから値をとってきたとき
取得データを
dataclassというクラス(フィールドにはUserID,passなどの個別のデータがある)
をつくり

別のクラスでインスタンスして
arraylist<dataclass>のような使い方をして入れようと思ってるのですが

このやりかただとデータが10万以上など大量になったときに
メモリを食うと書いてありました。

通常SQLDBっからresultsetでとってきたデータはどのように扱うのでしょうか

このあとJSPで表示するのに使います


287 :デフォルトの名無しさん:2008/11/24(月) 23:59:51
>>286
基本的にはその方法でOK。

データが10万レコード以上になっても、JSPでの表示のために毎度
10万レコードを全て取得する必要があるわけでは無いでしょう?

ちゃんとDBに投げるSQLクエリを吟味して、JSPでの表示に必要な
データだけを検索して取得するようにすればOK。
そうすればJava側で消費するメモリの大きさは基本的にDB中の
レコード数とは無関係になるはずです。

>このやりかただとデータが10万以上など大量になったときにメモリを食うと

杞憂かも知れませんが、非常に誤解を招く記述に思えます。
もしかするとDBからレコードを全件引っ張ってきて、Java側で絞り込み
をかけるような実装を紹介しているのかも知れません。
もしそうだとすれば、そんな参考書or参考サイトは役立たずですので
捨ててしまって下さい。

288 :デフォルトの名無しさん:2008/11/25(火) 00:01:39
>>286
一気にデータを取得して全部をひとつのリストに入れるのではなく、
表示を作り上げていく段階で少しずつ必要なデータだけを保持する。

289 :デフォルトの名無しさん:2008/11/25(火) 02:14:23
下記のソースがコンパイルエラーになるのですが、何が悪いのでしょうか?
エラー内容は「ローカル変数zが初期化されていない」というのですが。。

[Test.java]
import java.applet.*;
import java.awt.*;

public class Test extends Applet {
public void init() {
Zukei[] z;
z[0] = new Maru();
z[1] = new Sankaku();
z[2] = new Shikaku();
}

public void paint(Graphics g) {
z[0].draw(g);
}
}

290 :デフォルトの名無しさん:2008/11/25(火) 02:15:47
[Zukei.java]
import java.awt.*;

public interface Zukei {
int left = 10;
int bottom = 10;

void draw(Graphics g);
}

291 :デフォルトの名無しさん:2008/11/25(火) 02:17:10
[Maru.java]
import java.awt.Graphics;

public class Maru implements Zukei {
public void draw(Graphics g) {
g.drawString("Maru", left, bottom);
}
}

Sankaku.javaとShikaku.javaも同じような感じで定義しました。

292 :デフォルトの名無しさん:2008/11/25(火) 02:26:44
eclipseが起動しないんです。
ダブルクリックするとロゴが瞬間表示されて起動されません。
何が問題なんでしょうか?

293 :デフォルトの名無しさん:2008/11/25(火) 02:29:28
>>292
マルチ乙

294 :デフォルトの名無しさん:2008/11/25(火) 03:28:51
import java.applet.Applet;
import java.awt.event.*;
import java.awt.*;

public class Eventtest extends Applet implements MouseListener{
private int x = 0;
private int y = 0;

public void init() {
addMouseListener(this);
}

public void paint(Graphics g) {
g.drawOval(x, y, 20, 20);
}

public void mouseClicked(MouseEvent me) {
x = me.getX();
y = me.getY();
repaint();
}
}

エラーが出ます。わかる方教えてください。
Exception in thread "AWT-EventQueue-1" java.lang.Error: Unresolved compilation problem:
The type Eventtest must implement the inherited abstract method MouseListener.mouseExited(MouseEvent)

295 :デフォルトの名無しさん:2008/11/25(火) 03:46:03
>>294
The type Eventtest must implement the inherited abstract method MouseListener.mouseExited(MouseEvent)

296 :デフォルトの名無しさん:2008/11/25(火) 10:26:24
>>292
パソコン買い換えると良いよ

297 :デフォルトの名無しさん:2008/11/25(火) 12:33:48
>>289
Zukei[] z;

Zukei[] z = new Zukei[3];
にしてみれば?

298 :デフォルトの名無しさん:2008/11/25(火) 14:08:54
このようなArrayListを作ったんですが、
ArrayList arrA
      ┗listB[]
        ┣String valC
        ┗String valD

このなかのvalCを取り出そうと思い
arrA.listB[i].valCと記述したのですが、エラーが返ってきました
正しくvalCを取得する方法を教えてください。



299 :デフォルトの名無しさん:2008/11/25(火) 14:18:14
((listBの要素の型[])((ArrayList)arrA).get(arrAのインデックス))[i].valC

300 :デフォルトの名無しさん:2008/11/25(火) 14:28:38
>>299
それってVectorでも対応できるかな?
ArrayList をVectorに変えたらキャストできませんと構文エラーがでました。

301 :デフォルトの名無しさん:2008/11/25(火) 14:40:15
Vectorには対応してません。

302 :デフォルトの名無しさん:2008/11/25(火) 15:01:13
>>301
そうですか、ArrayListで対応してみます。
ありがとう御座いました。

303 :デフォルトの名無しさん:2008/11/25(火) 15:06:45
おい、おまえら!

前から思ってたんだけど、ついでだから聞かせてもらう。
VectroとArrayListの違いってなによ?煮たようなもんだろ?

304 :デフォルトの名無しさん:2008/11/25(火) 15:28:51
>>303
ttp://www.tohoho-web.com/java/collection.htm#Vector

305 :デフォルトの名無しさん:2008/11/25(火) 15:45:15
>>297
しましたがまだエラーになるみたいです。
java.lang.Error: Unresolved compilation problem:
Syntax error on token(s), misplaced construct(s)
at Test.init(Test.java:6)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

306 :デフォルトの名無しさん:2008/11/25(火) 15:46:03
>303
同期されてるかいないかによるパフォーマンスの違い。
StringBufferとStringBuilderも同様。

307 :デフォルトの名無しさん:2008/11/25(火) 16:24:56
>>304,306
表向きはそうなんだけどね・・・よくAPIを読んで比べてみなよ。
もし気がつくなら初心者卒業ってことだと思うけどね。

308 :デフォルトの名無しさん:2008/11/25(火) 16:46:11
ちゃんとインストールされてるはずなのに昨日までは入れてた
Java対応のチャットに「対応のブラウザでご利用ください」と言われるようになりました

309 :デフォルトの名無しさん:2008/11/25(火) 17:12:41
javaで綺麗なグラフ描くを描くにはどうすればよいですか

310 :デフォルトの名無しさん:2008/11/25(火) 17:15:00
graphics.drawString("グラフ描く", 0, 0)

311 :デフォルトの名無しさん:2008/11/25(火) 17:17:27
うっそ〜ん
Javaでデータからエクセルのようなグラフを描くのにはどうすれば

312 :デフォルトの名無しさん:2008/11/25(火) 17:20:55
マイクロソフト・エクセルを使うだけです。

313 :デフォルトの名無しさん:2008/11/25(火) 17:27:05
いっや〜ん
エクセル嫌い嫌いJavaで描きたい

314 :デフォルトの名無しさん:2008/11/25(火) 17:42:44
jfreechartでも検索するがいい。
自前でやるなら、Graphics,Graphics2Dを使って、310のように実装すればいい。

315 :デフォルトの名無しさん:2008/11/25(火) 17:50:33
あっりっがっとうございます!m(_ _)m

316 :デフォルトの名無しさん:2008/11/25(火) 18:02:04
>>305
まあ、こっちではそこのエラーが消えたからまあいいや。

317 :デフォルトの名無しさん:2008/11/25(火) 20:36:16
今の時代のJavaの勉強は、Applet使ってアニメーションからJavaの世界に入ったりはしないんですか。
円・ドル換算プログラムみたいにGUIコマンドアプリは分かるんですけど、アニメーション・プログラムをやるならflashなんでしょうか?

318 :デフォルトの名無しさん:2008/11/25(火) 21:01:05
実行環境の話はこっちでいいのかいな?
willcomのWX310SAについてなんだが。

319 :デフォルトの名無しさん:2008/11/25(火) 21:41:38
質問です
+、=、*、/の4つの記号と数字を含む文字列”str”をchar型に変換して
1文字ずつ調べ、もし記号だったら抜き出す。
という作業をしたいのですが、うまく動きません。
どのようにしたらよいのでしょうか?

char[] c = str.toCharArray();
char[] d = new char[200];
int j=0;

for(int i=0;i<c.length;i++){
if(c[i]==('+'|'-'|'*'|'/')){
d[j]=c[i];
j++;
}
}

320 :デフォルトの名無しさん:2008/11/25(火) 21:46:28
]==('+'|'-'|'*'|'/')

ペットたちは元気でしたか?

321 :318:2008/11/25(火) 22:04:38
反応ないけど質問書いておく
某本に載ってた手順で、開発環境としてJ2SE1.5をインスコして
プログラム作ったら、エミュレータ上では動作したがWX310SAでは動作しなかった。

けど、J2SE1.4.2をインスコしなおしたらWX310SAで動作した。

1.5と1.4で何か変わってる?
それとも単にWX310SAでは1.4しか対応してない?

322 :デフォルトの名無しさん:2008/11/25(火) 22:27:02
>>321
クラスファイルの構造が変わってる。

> > javac -help
> 使い方: javac <options> <source files>
> 使用可能なオプションには次のものがあります。
《略》
> -source <release> 指定されたリリースとソースの互換性を保つ
> -target <release> 特定の VM バージョン用のクラスファイルを生成する

Java5以上で使うなら、javacに「-target 1.4」を指定すればいいと思うよ!!

323 :318:2008/11/25(火) 23:10:11
>>322
thx
試してみる

324 :デフォルトの名無しさん:2008/11/25(火) 23:36:55
>>287-288
ありがとうございました

dataBase data =new dataBase();

sertAtribute("data1",data)

<useBean id="data1" class="pacage.dataBase">
だと

1.どちらかでdata1でつかえるのか
2.それとも全部含めて出ないとつかえないのか

data1.getData()メソッドとしてつかえるのはどれでしょうjか?

useBeanのとき同時にインスタンスしてるのかsetatributeの変数名を
引き継いでるのかいまいちわかりません



325 :デフォルトの名無しさん:2008/11/26(水) 00:41:21
>>319
Java の文字の比較方法を勉強すればうまくいくと思う。

326 :デフォルトの名無しさん:2008/11/26(水) 01:08:47
JVMはエミュレータの一種なんですか?

327 :デフォルトの名無しさん:2008/11/26(水) 01:53:21
というか何のエミュレータだと思いますか?

328 :デフォルトの名無しさん:2008/11/26(水) 02:08:29
どうでもいいがなんでシーケンシャルな処理とオブジェクト指向が対比されてんだ
あとはUMLとかで作るだけとか
描画を完全にマルチスレッドでやれると思ってるとか
コンポーネント毎にスレッド化するとか
javaFXとかjava2Dとか
オブジェクト指向とスレッドとか


ま、VRAMに直書きが描画の全てという時代なら容易にできたかもしれん。


329 :デフォルトの名無しさん:2008/11/26(水) 02:15:13
>>326
通じないことは無いだろうけど、普通エミュレーターとは言わないと思うなあ
(広義には知らない)
エミュレータってのは、実在するハードや環境なんかを模倣するものを指す
一方でJVMはその名の通り仮想的な計算機。実在しない

……と、ここまで書いてから「Java仮想マシン仕様」を読み直してみると
>最新のJava仮想マシンの実装では、より高度に洗練された方法によってWin32やSolaris上で
>Java仮想マシンのエミュレートを行っている
という文脈があるので、普通に使うっぽい


330 :デフォルトの名無しさん:2008/11/26(水) 02:19:12
>>319
書き方がC言語っぽいけど、Javaはnew char[200];みたいなことをしなくてもstr.length()があるよん
配列はポインタじゃないから、c.length でも同じ値とれるけど

http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/String.html
ここはよく読むといいよ

以下蛇足 0-9の文字で文字列を分ける=演算子を取り出す
String str="-1+2*3+4";
String split[]=str.split("[0-9]+");
for (int i = 0; i < split.length; i++) {
System.out.println(split[i]);
}
こういう方法もあるんだって知っておくのもいいかも

331 :デフォルトの名無しさん:2008/11/26(水) 02:28:43
>>329
たぶんその書き方は、Java仮想マシンという仕様を(実質オペコード)、エミュレータとして実装したってことじゃないかと思う。

332 :デフォルトの名無しさん:2008/11/26(水) 02:28:50
>>328
>どうでもいいがなんでシーケンシャルな処理とオブジェクト指向が対比されてんだ

(答) だって人工無脳なんだもん

333 :デフォルトの名無しさん:2008/11/26(水) 02:30:34
>>328
あの・・・よく読んでいるようですけど・・・もしあなたの言う「〜とか」を否定すると、Windowsなどで動く全てのGUIアプリを否定することになりますよ?

334 :デフォルトの名無しさん:2008/11/26(水) 03:23:14
>>328
おまえがコンソールアプリしか作ってない理解できないんじゃないのか?
VRAMとか言ってるけど、おまえがGUIアプリを作ってもせいぜいポトペタしかやったことないんだろww

335 :デフォルトの名無しさん:2008/11/26(水) 03:32:51
>>333
ああ、あなたも人口無能でしたか。

336 :デフォルトの名無しさん:2008/11/26(水) 03:35:47
人口無能ww

337 :デフォルトの名無しさん:2008/11/26(水) 03:37:35
ポトペタがあれば永遠に俺は幸せ!

338 :デフォルトの名無しさん:2008/11/26(水) 04:11:19
ほう

339 :デフォルトの名無しさん:2008/11/26(水) 04:20:15
ポトペタのユーザはともかく、ポトペタな開発を実現するツールキットを設計
する人は偉大だと思うな。
その才能を多くの凡庸な開発者達のために役立てているし、つまらん仕事
を最小限の手間暇で片付けられるので大変世の中に貢献している。

なのでかの人工無能くんにはポトペタでとてもマルチスレッドなGUIアプリが
構築できるツールキットを是非開発して欲しいと思う。

340 :デフォルトの名無しさん:2008/11/26(水) 04:34:25
SUNが破産手続き開始の申し立てだそうだ。記念カキコいっとけ。
http://mamono.2ch.net/test/read.cgi/newsplus/1227609444/

341 :デフォルトの名無しさん:2008/11/26(水) 07:41:44
>>340
SUN は SUN でも microsystems じゃないやつだろ。Second Life のベンチャーじゃん。
まあ Sun micro はいつもリストラ計画だの四半期ベースが改善しただの見てるこっちを
ハラハラさせるニュースが多いことは確かだが。

342 :デフォルトの名無しさん:2008/11/26(水) 08:41:13
>>339
それって座標計算とレイアウトなだけじゃないの?
そうするとゲーム開発者は偉大ってことになるし。
sincosとか使ったことないし、tanの2倍角の公式とか知らない口でしょw

343 :326:2008/11/26(水) 08:41:16
>327
俺が通っていた工業高校では、情報技術者試験のアセンブラ科目で使う
CASLを搭載したと仮定しているコンピュータのエミュレータをWindows上で動かしていて、
「仮想計算機のエミュレータ」と呼んでいたので、
実在はしないが仕様は決定されているコンピュータなら、
それをソフトウェアで再現したものはエミュレータと呼べるのかな、
じゃあJVMもエミュレータなのかな、って思ったんです。

>329
おお、ありがとう!
仕様でエミュレータって呼ばれてるんですね。
スッキリしたw

344 :デフォルトの名無しさん:2008/11/26(水) 08:55:47
>>343
ああそれそれ、JVMはCASLと同じ考えでいいんじゃないの。
実際JVM仕様を読んで自分でfile.classを吐き出す簡単な処理系を作れるなら、jrubyとかgrooovy,sclara,javafxとかのマイ言語作ってるのと同じだし、javacだってjvmプラットフォームの1つに過ぎない。
というか、仕様が最低限しかないから簡単だから俺ならJVMで動くCASLかCを作るけどね。

345 :デフォルトの名無しさん:2008/11/26(水) 08:57:09
>>342
お前どっかずれてるわ

346 :デフォルトの名無しさん:2008/11/26(水) 09:17:50
HttpClientで、executeMethodして接続しているところを割り込んで止める方法はないでしょうか?

347 :デフォルトの名無しさん:2008/11/26(水) 10:00:45
>>345
というか、おまえならどうやって作るの?

348 :デフォルトの名無しさん:2008/11/26(水) 10:02:54
リストやツリーのデータ構造を自作できない奴に何言っても無駄無駄

349 :デフォルトの名無しさん:2008/11/26(水) 10:17:39
だなw

350 :デフォルトの名無しさん:2008/11/26(水) 10:31:15
>>343
頑張って大学に入って頑張って勉強してくださいなw

351 :デフォルトの名無しさん:2008/11/26(水) 12:26:24
public static void main(String args[]){
int a = 4, b = 7;
int i, j;
for(i = 0; i < a; i++){
if (i%2 == 0){
for(j = 0; j < b; j++){
System.out.print("*");
}
}
else {
for(j = 0; j < b; j++){
System.out.print("=");
}
}
if (i%2 == 1){
System.out.println();
}
}
}

*******=======
*******=======
と表示したいのですが、最後のif文で改行処理の判断をするのではなく、これを表示処理の判定に含めたいです。
どなたかやり方を教えて下さい。出来れば簡単な方法でお願いします。


352 :デフォルトの名無しさん:2008/11/26(水) 13:03:48
フレームワークとしてマルチスレッドなGUIを構築できたら

開発環境の仕事はソースの生成アシストとナビゲーションだろ
どっちにしても難しいなこれは

俺にはむりむり

353 :デフォルトの名無しさん:2008/11/26(水) 13:15:03
>>342
ポトペタを実現するのに必要な事として座標計算とレイアウトしか
想像出来ないおまいさんはマジ幸せ者だよ。ホント。

354 :デフォルトの名無しさん:2008/11/26(水) 13:15:30
そんなデカイのを作る必要はないな。既に有用なIDEがいくらでもある。
もっと違った視点で見てみると面白い活用法が浮かぶんじゃないか?

355 :デフォルトの名無しさん:2008/11/26(水) 13:24:36
>>354
いや、俺が欲しいのはポトペタなんだが。
是非とてもマルチスレッドなGUIアプリを開発できるツールキットを開発してくれ。
それが出来ればIDEなんてEclipseのプラグインとしてサクッとすればいい。
おまいさんには簡単だろ?

356 :デフォルトの名無しさん:2008/11/26(水) 13:36:41
ていか、もう出来てるんだが?
それも座標計算とレイアウトだけで。

マルチスレッドなGUIアプリを開発できるツールキットってのは何を言ってるか意味不明だけど、
君が欲しい機能や仕様をまとめてくれればたやすいんじゃないの?

357 :デフォルトの名無しさん:2008/11/26(水) 13:42:42
たぶんなんだけど、マルチスレッドとスレッドセーフがよく分かってないんじゃないの?オジサンだからw

358 :デフォルトの名無しさん:2008/11/26(水) 13:57:28
>>356
ああ、おまいさんのいうポトペタとはドラッグアンドドロップでGUIをデザイン
出来る事だけを言うわけですね。わかります。
ポトペタなめんなよw

あとマルチスレッドなGUIツールキットの仕様については人工無能君に聞いてくれ。
元々彼がSwingその他を馬鹿にするところから始まったネタだから。

359 :デフォルトの名無しさん:2008/11/26(水) 14:04:40
ネタなのにあえて釣られることはない

360 :デフォルトの名無しさん:2008/11/26(水) 14:12:08
Java終了のお知らせ
SUNが破産手続き開始の申し立て
http://mamono.2ch.net/test/read.cgi/newsplus/1227609444/

361 :デフォルトの名無しさん:2008/11/26(水) 14:17:42
>>360
>>340で既出

362 :デフォルトの名無しさん:2008/11/26(水) 14:48:57
まあ、たしかにJava2Dでやっちゃえばなんでもありになるわな
あとはイベントどうするかってのとスレッド(協調動作)にそいつがどれほど慣れてるかだし
実際問題Java2DはGUIのときに出てくるだけで、イベントとかスレッドはGUI関係ないしなぁ

363 :デフォルトの名無しさん:2008/11/26(水) 14:49:41
Vector vlistA
├String aID
└list[]
├String kekka1
└String kekka2

指定したaIDのlist[]の中身を追加、削除したいのですが、addやremoveでは無理でした。
追加、削除方法を教えてください。


364 :デフォルトの名無しさん:2008/11/26(水) 14:57:57
ArrayList vlistA
├String aID
└ArrayList list
├String kekka1
└String kekka2

にすれべおk


365 :デフォルトの名無しさん:2008/11/26(水) 15:02:29
>>364
図がずれてました。
Vector vlistA
├String aID
└list[]
   ├String kekka1
   └String kekka2
list[]は仕様上、配列のままにしておきたいんです。


366 :デフォルトの名無しさん:2008/11/26(水) 15:04:19
そんな仕様は糞だ

367 :デフォルトの名無しさん:2008/11/26(水) 16:35:15
>>362
その通りなんだけど、個人で作って利用するプログラムと他人様が利用して
作成物の保守もするツールキットとでは設計の基準が異なるんだよね。
後者ではちゃんと利用者像を想定して、落としどころを見つける必要がある。
そのためには機能の絞り込みも必要で、何でもありにはならないんだ。

368 :デフォルトの名無しさん:2008/11/26(水) 17:13:32
>>365
list[]を追加、削除のたびにnewしてやればいいんじゃね?

もしくは、削除ならforで回して詰める、追加もforで回して隙間あけて入れる。
追加する余裕が配列になければnewしてやる

369 :デフォルトの名無しさん:2008/11/26(水) 17:24:12
>>351
簡単にということなので、変数一個減らして、for文一個減らしてif文全部無くしてみた。
import java.util.*;
class Nichan {
public static void main(String[] args) {
int a = 4, b = 7;
char[] out = new char[b*2];
Arrays.fill(out,0,b,'*');
Arrays.fill(out,b,b+b,'=');
for(int i=0; i<a/2;i++){
System.out.println(String.valueOf(out));
}
}

}

370 :351:2008/11/26(水) 18:02:51
>>369
回答ありがとうございます。
なるべく原形とどめつつ最後のif文だけ何とか出来ませんかね?
注文多くてごめんなさい。

371 :デフォルトの名無しさん:2008/11/26(水) 18:16:17
>>370
if (i%2 == 1){ /* hogehoge */ } ってことは、
if (i%2 == 0){} else { /* hogehoge */ } ってことでしょう。

for(j = 0; j < b; j++){
 System.out.print("=");
}
System.out.println();


372 :370:2008/11/26(水) 19:03:13
>>371
なるほど・・・
ありがとうございました。
いい勉強になりましたm( _ _ )m

373 :デフォルトの名無しさん:2008/11/26(水) 19:47:45
>>318,323
もう解決してるかもしれないけれど、
携帯電話・PHS 関連なら、MIDP スレも参考になる情報もあるかも。
WILLCOM の電話機なら、MIDP 2.0 に準拠しているようだから。

CLDC+MIDP+携帯電話用Javaスレッド part 8
http://pc11.2ch.net/test/read.cgi/tech/1206017034/l50

374 :319:2008/11/26(水) 20:24:06
>>320,325,330
ありがとうございました。
if(c[i]=='+'|c[i]=='-'|c[i]=='*'|c[i]=='/')
こうしなくちゃいけなかったんですね。
ようやく分かりました。
String型のメソッドは覚えておいたほうがよさそうですね。
よく読んでおきます。
splitを使ったやり方も、試して見たいと思います。
ご丁寧にありがとうございました。

375 :デフォルトの名無しさん:2008/11/26(水) 20:54:59
C出身なら if (stg.charAt(i)=='+' || stg.charAt(i)=='-') ですかね。
ジャバ出身者でtoCharArrayを使うのはなかなかいません。

376 :デフォルトの名無しさん:2008/11/26(水) 21:21:36
すいません、JAVA3Dと
http://acerola3d.sourceforge.jp/
上URLのacerola3Dを使ってappletに表示させたいのですが行き詰ってしまいまして。
どなたかご教授願えませんでしょうか?

377 :318:2008/11/26(水) 21:28:43
>>373
おお、専用スレがあったんですね。
thxです!

378 :デフォルトの名無しさん:2008/11/26(水) 21:55:53
Javaってあれだね?最初、Javaからやったらわけわかんなかったけど
色々言語やったら好きになった。便利だね。Write anywhere, Run once.だっけ?

379 :デフォルトの名無しさん:2008/11/26(水) 21:57:33
正しくは write once test anywhere

380 :デフォルトの名無しさん:2008/11/26(水) 22:07:47

ttp://xy.yu.to/ (ここは本来のサイトではないが)
この荒れまくりカオス絵チャのminiっていう部屋の
秘密スペース(枠外)への書き込みってどうやれば
できるようになるのか解析して教えろ。

あと、1人の防衛プログラマーのクリアツールが強すぎて、
荒しプログラマーがことごとく全員返り討ちになってるから
オマエラが面白くしてみろ。

ゲハハハごめんね

381 :デフォルトの名無しさん:2008/11/26(水) 22:14:32
日頃からコード書いていて処理に慣れてる人はメソッド名が長い!冗長だ!とか文句言ったりしなくなりますよww
さらに演算子オーバーロードー!!プロパティ!!とかも「はぁ?」って感じですかね?(笑)

382 :デフォルトの名無しさん:2008/11/26(水) 22:29:32
>>374
「|」じゃない。「||」だ。
まぁ、どうせ>>374のままだとエラーが出るからすぐわかるはずだけど。

383 :デフォルトの名無しさん:2008/11/26(水) 22:32:50
サーブレットで文字化けみたいになるんですが
すべて?ってのは文字化けではないですよね?
コンテンツタイプの設定でEUC_JPやShift_JISなどに変更しても変わりません
どうしたら直るか教えてもらえませんか?


384 :デフォルトの名無しさん:2008/11/26(水) 22:53:09
>>382
>>374 は確かに良い書き方ではないけど、
エラーはでないぞ。
| と || の違いを分かってないのか?


385 :319:2008/11/26(水) 22:55:03
>>375,382
なるほど〜
わざわざchar型に入れ替えるより
charAtを使った方がすっきりしますね。
一応やってみて『|』でもうまくいったのですが
この場合『||』の方がいいんですかね?


386 :デフォルトの名無しさん:2008/11/26(水) 23:03:34
>>384
げ、論理演算て整数にしか定義されないと思い込んでたよ。
型違反になると思ってた。

387 :デフォルトの名無しさん:2008/11/26(水) 23:08:39
>>386
ま、そんなもんでしょ。
ANSI Cを骨の隋までしゃぶってるわけじゃないし、そこまで細かく知ってる人いないし。
いちおう | は全部評価するってこと。

388 :デフォルトの名無しさん:2008/11/26(水) 23:12:15
charAtだと余計なメソッド呼び出しの分コストがあるかな。
ストリームだと[]で受けるから、Stringにしないでそのままst[k]とかすることはある。


389 :デフォルトの名無しさん:2008/11/26(水) 23:26:12
Javaって|はビット演算子じゃないの?

390 :デフォルトの名無しさん:2008/11/26(水) 23:41:43
>>389
| はビット単位の整数演算子でもあるけど、論理演算子でもある。

391 :デフォルトの名無しさん:2008/11/26(水) 23:41:55
>>389
そう思って>>382を書いたら恥かいた(^^;
&, |, ^ については、整数と真偽値の両方について定義されてて、整数のときはビット演算子、真偽値のときは論理演算子として振る舞う。
ただし、演算子の左右が両方とも整数か、両方とも真偽値でなければならなくて、例えば、1|trueはコンパイルエラー。
言語仕様の15.22参照。

392 :デフォルトの名無しさん:2008/11/26(水) 23:56:22
>>390,391
thx
何か微妙な仕様だなw

そこらへんは、C/C++から派生した言語として統一しておいてほしいね。
無駄に悩みそうだしw

393 :デフォルトの名無しさん:2008/11/27(木) 00:10:30
どう考えても妥当な仕様だと思うが。
これ以外のどれでもいまいちな仕様になるだろ。


394 :デフォルトの名無しさん:2008/11/27(木) 00:46:37
複数の意味を持たすメリットが微妙に見える
C/C++と同じでいいじゃん

395 :デフォルトの名無しさん:2008/11/27(木) 01:43:36
javaでは真偽値と整数は非可換なんで&や|での扱いをC/C++と同じにするのは妥当とはいえない

396 :デフォルトの名無しさん:2008/11/27(木) 01:56:44
いやいや、整数のみ(ビット演算のみ)に意味を持たせればいいじゃん、
と言う意味なのだが。

C/C++でも通常boolで|や&は使わないし。
それがイコールC/C++と同じにすることになると思うけど。

あれ?俺何か勘違いしてる?

397 :デフォルトの名無しさん:2008/11/27(木) 02:11:13
論理演算子として、

|…or。左辺も右辺も必ず評価。
||…or。左辺が真なら右辺は評価しない。
&…and。左辺も右辺も必ず評価。
&&…and。左辺が偽なら右辺は評価しない。

だと思ったけど、違った?

398 :デフォルトの名無しさん:2008/11/27(木) 02:31:29
|| や && はあるのに ^^ はないのは如何に

399 :デフォルトの名無しさん:2008/11/27(木) 02:37:44
つか、当たり前だった

400 :デフォルトの名無しさん:2008/11/27(木) 02:38:08
>>398
右も左も計算しないと結果が出ないんだから、^ と等価になるだけじゃね?

401 :デフォルトの名無しさん:2008/11/27(木) 03:42:55
>>398
ワロス
booleanでの&と&&の使い方・・・ ようするに>>397みたいなのなかなか参考書に書いてないか、気づきにくいよね

402 :デフォルトの名無しさん:2008/11/27(木) 06:41:36
if (t == null || t.length() == 0) ...
みたいな書き方をしたとき、
(t == null) が true なら t.length() が呼ばれないので
NullPointerException が発生しない。

foo() と bar() が確実に1回ずつ呼ばれないと困るとき
if (foo() | bar()) ...
みたいに書ける。


403 :デフォルトの名無しさん:2008/11/27(木) 07:39:47
このスレがはじめて役に立った

404 :デフォルトの名無しさん:2008/11/27(木) 10:02:53
>>402
>foo() と bar() が確実に1回ずつ呼ばれないと困るとき
>if (foo() | bar()) ...
>みたいに書ける。
タイプミスなのか意図的なのかが分かり難いからあまり使って欲しく無いな

405 :デフォルトの名無しさん:2008/11/27(木) 11:36:28
System.setIn(),setOut()などで入出力を変更したとします。
その後、元々の標準入力・出力を取得することはできますでしょうか?
単純に別に元々のものを持っておけばいいのですが、気になったので分かる方お願いします。

406 :デフォルトの名無しさん:2008/11/27(木) 12:40:27
携帯でプログラミングできますか

407 :デフォルトの名無しさん:2008/11/27(木) 13:07:02
>>406
おすすめしないができる。

408 :デフォルトの名無しさん:2008/11/27(木) 13:43:51
>>407
ありがとうございます
タイピングが遅いとかですかね


409 :デフォルトの名無しさん:2008/11/27(木) 14:25:20
>>305
スコープの問題は?
init メソッドの中で宣言されてるZukeiに
paintからアクセスしようとしてるからダメなんじゃねーすか?
initメソッドの外にの外にZukei[] z;って書いたらよいとおもわれ〜。

Zukei[] z;
init(){

}

>>316
うそつけ。

410 :デフォルトの名無しさん:2008/11/27(木) 15:48:25
javaで作ったプログラム(SQLサーバとやりとりして出力があるなら出力する)を3分起きに実行させ続けたいのですが
何を使ったらいいでしょう?スレッド?は違いますよね・・・

411 :デフォルトの名無しさん:2008/11/27(木) 16:00:54
cronとかタスクスケジューラとかそういう話?

412 :410:2008/11/27(木) 16:04:08
>>411
いや、javaのプログラム内で繰り返したいです
昔ちょっとやってたんですけど、HDDクラッシュでデータがなくて・・・

413 :デフォルトの名無しさん:2008/11/27(木) 16:10:15
スレッドをまわしっぱなしにしてsleepで(180)とかにすればいいのかな?

414 :デフォルトの名無しさん:2008/11/27(木) 16:15:19
>>413
sleep はミリ秒だぞ

415 :デフォルトの名無しさん:2008/11/27(木) 16:16:13
タイマーでもいけるんじゃない。このあたりで。
java.util.timer
javax.swing.Timer
java.util.concurrent.ScheduledExecutorService


416 :デフォルトの名無しさん:2008/11/27(木) 16:24:23
>>414
そうだった、180000だな、ありがと

417 :デフォルトの名無しさん:2008/11/27(木) 16:39:57
javaにはfork()は無いの?

418 :デフォルトの名無しさん:2008/11/27(木) 17:19:05
Tomcatユーザメーリングリストに参加
http://www.jajakarta.org/tomcat/faq/tomcatuser.html)したくても参加できないのですが、
どうすればよいでしょうか?

419 :デフォルトの名無しさん:2008/11/27(木) 17:25:53
TimerTask使うのがらくなんじゃね?

420 :デフォルトの名無しさん:2008/11/27(木) 17:30:37
ある関数 List<String> hoge(List<String> list); を開発しています。
hoge() には、String を要素とする List が渡されてきます。
このとき、List が保持している String は重複しているかしていないか、わかりません。

この関数の中で、重複している要素は削除して、リストを返したいです。
(Set を返却値としたかったが、呼び出し元が List を要求していて、そこは修正できない)

そこで以下のようなプログラムを書きました。

List<String> hoge(List<String> list) {
  Set<String> set = new HashSet<String>(list);
  List<String> resultList = new ArrayList<String>(set);
  return resultList;
}

このように一度 Set に入れなおすことで重複を自動的に削除し、
List に変換しています。

○質問:
Set や ArrayList に入れなおすとき、中の要素は
コピーされて渡されるのか、参照渡しになるのでしょうか?

HashSet や ArrayList のコンストラクタのソースを見ると、中で
AbstractCollection#addAll(Collection) が呼ばれているようです。
その中では、渡された Collection を Iterator で回して
得られた要素を add しているので、参照渡しにしていると考えました。

hoge() 関数には大量(10万単位)の文字列が渡ってくるので、できれば
OutOfMemory を起こしたくないため、参照渡しになってほしいです。

421 :デフォルトの名無しさん:2008/11/27(木) 17:43:41
>>420
オブジェクトを == で比較してテストすればいいじゃない。


422 :デフォルトの名無しさん:2008/11/27(木) 17:57:29
>>420
中の要素は、コピーされようがコピーされまいが参照渡し。

423 :デフォルトの名無しさん:2008/11/27(木) 18:00:04
>>422
Javaには参照渡しはない。

424 :デフォルトの名無しさん:2008/11/27(木) 18:00:56
そして議論は質問と関係ない方向へ、というわけですね

425 :デフォルトの名無しさん:2008/11/27(木) 19:36:33
private なコンストラクタしかないシングルトンがコピーできたらコレクションは最強だな

426 :デフォルトの名無しさん:2008/11/27(木) 19:56:12
俺、病気で高校中退して、25でJavaプログラマになれたんだけど、
当然、大学とかいってないから、予備知識なんてなにもない。

このスレ見るたびに、すごい専門的なこと書く人がたくさんいて、すごい自信なくす。。

個人的には、業務に間に合うように一生懸命勉強してるつもりなんだけど。

いつか、だめになるんじゃないかととても不安。

427 :デフォルトの名無しさん:2008/11/27(木) 20:03:36
大学の4年より、実務の半年のほうがよっぽど濃いかもよ?
濃いの解釈はまかせる

428 :デフォルトの名無しさん:2008/11/27(木) 20:06:02
今情報系の大学院2年だけど
学部時代で授業でやるのなんてほんの一部のプログラミング知識だけだよ
Cの基本的なことだけやって終わり
あとは自分で覚えてくだけだから、>>426より大学生の方がよっぽどレベル低いよ
ここで回答してる人たちは本当にすごい人だなと思う

429 :デフォルトの名無しさん:2008/11/27(木) 20:09:20
このスレってそんなにレベル高いか?

430 :デフォルトの名無しさん:2008/11/27(木) 20:10:22
実務では、ちゃんとやろうとしても
コピペ坊の華麗な手さばきにはついていけません

431 :デフォルトの名無しさん:2008/11/27(木) 20:12:20
さらに、野生の勘が閃く削除坊の使い手が現れると
プロジェクトは終焉を迎えます。

432 :デフォルトの名無しさん:2008/11/27(木) 20:23:33
大学で勉強するのは、研究対象として定量的に評価できるもの。
実務で必要とされるであろうものとは、方向性が異なる。
それでも、それで論文みたいなものを書くすごい人とかいるけど

433 :デフォルトの名無しさん:2008/11/27(木) 20:35:46
>>428
しょぼい大学だったからじゃないの〜?

434 :デフォルトの名無しさん:2008/11/27(木) 20:38:07
全く経験のない人はなぜか特別視するけど,
実際プログラミングの勉強なんかExcel覚えるのと変わらん

435 :デフォルトの名無しさん:2008/11/27(木) 20:43:39
そろそろマ板へ移動しよう

436 :デフォルトの名無しさん:2008/11/27(木) 20:48:57
>>433
学歴コンプか?
大学なんて入試の難易度と授業の内容に差なんかないぞ

437 :デフォルトの名無しさん:2008/11/27(木) 20:58:02
>>426
業務系のプログラマならそこそこの腕で食っていけるんじゃないかと思う

客観的な評価なんてここじゃできんから
周りのプログラマと比べて、自分より上な人と、下な人の数で判断するしかないんかな

後はプログラムを楽しいと思えてれば、楽しんで仕事してお金貰えるなんてハッピーって感じで生きていけばいいさ

438 :デフォルトの名無しさん:2008/11/27(木) 21:02:05
TreeSet<Object> tree = new TreeSet<Object>();
tree.add( /* 何か色々と追加 */ );
HashSet<Object> hash = new HashSet<Object>(tree);
assert tree.size() == hash.size();


これで AssertionError が出てくるんですが……なぜだか誰か教えていただけませんか?

439 :デフォルトの名無しさん:2008/11/27(木) 21:03:52
ってごめん! いきなりわかったっ orz
ありがとう〜(´;ω;`)ノシ

440 :hitto:2008/11/27(木) 21:35:42
開発環境: Java , Struts

JSPにおいて
<input name=sex_kbn value=1 checked>男
<input name=sex_kbn value=2>女

このようなチェックのつけ方は学んだのですが、

前画面から送られてきたsex_kbnの値が1の場合は男に、2の場合は女にあらかじめチェックを付けて、
画面を表示するとなると方法がわかりません。
教えていただけるとありがたいです。
よろしくお願いします。



441 :デフォルトの名無しさん:2008/11/27(木) 21:37:17
>>434
日本語でおk

Excel覚えるって何?Excelの存在を覚えるって事かな?


442 :デフォルトの名無しさん:2008/11/27(木) 21:37:41
>>440
マルチ乙

443 :デフォルトの名無しさん:2008/11/27(木) 22:09:13
>>441
最近こういうあおりも、もう面白くないんだよね。

おまえの方が日本語やり直しのようだなw

444 :デフォルトの名無しさん:2008/11/27(木) 23:12:00

すみませんが教えてください。

Class<T>のgetSimpleNameというメソッドを使用していますが
これがExceptionを発生します。

同じソースでも違う環境ではエラーにならないので
環境の問題だと思うのですが
何かヒントだけでもいただけないでしょうか?

445 :デフォルトの名無しさん:2008/11/27(木) 23:33:36
ゲーム製作版なんてあったんだね。知らなかった。

446 :デフォルトの名無しさん:2008/11/28(金) 00:00:51
>>444
エラーになる環境のJDKのバージョンと、
getSimpleName() 使うと Exception 出す Class<T> の生成方法やら toString() の出力結果ぷりーず

447 :デフォルトの名無しさん:2008/11/28(金) 00:40:28
>>444
生の java.lang.Exception を throw するって結構特殊な気がするので、その辺から原因を絞り込めるんじゃないだろうか?

448 :デフォルトの名無しさん:2008/11/28(金) 00:51:19
>>444はマルチポストだよ。

仕事でやってるからエラーは貼れないそうで。

仕事でやってるならにちゃんねる頼るのはどうかなー。

449 :デフォルトの名無しさん:2008/11/28(金) 01:02:32
>>444
環境依存はJavaの問題じゃないってのが答え
それと、おまえはもう来るな

450 :デフォルトの名無しさん:2008/11/28(金) 09:52:32
コレクションで、リスト構造は持つが重複を許さないようにしたい場合、リストとは別に含まれているかのチェックのためにセットを持たせたりしますか?
List#containsで判断するのはいかにもコストが高そうでいやなんです。

451 :デフォルトの名無しさん:2008/11/28(金) 10:14:22
最初から java.util.Set じゃいかんのか?

452 :デフォルトの名無しさん:2008/11/28(金) 10:43:56
>>450
あなたの言う「リスト構造」って何のために使うの?

453 :デフォルトの名無しさん:2008/11/28(金) 11:01:15
LinkedHashSet じゃダメなのか?

454 :デフォルトの名無しさん:2008/11/28(金) 11:17:35
>>453
探していたものはまさにそれです。ありがとうございました。
APIドキュメント読み足りませんでした・・

>>452
基本的にはSetとして使うのですが、加えた順序が欲しくなったんです。
具体的にいいますと、プロクシの収集を行っていたのですが、ページ中に上の方が新しいものがあったためです。
それが登録された時間までプロクシのオブジェクトに加え、Comparetorで比較というのもありかもしれませんが、何か他に方法がないかと気になったので質問させていただきました。

455 :デフォルトの名無しさん:2008/11/28(金) 11:52:31
http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/492.java

2次元画像のパターンマッチングをしているのですが、上のプログラムで
マッチングの閾値の設定がどう行われているのかよくわかりません。

また閾値を低くするにはどのようにすればいいのでしょうか。


どなたかご教授お願いします。

456 :デフォルトの名無しさん:2008/11/28(金) 12:58:15
閾値ってか白黒画像だろう扱ってるのは
カラー画像は読み込み時に toBinaryImageで白黒化されている

457 :デフォルトの名無しさん:2008/11/28(金) 13:01:01
Tomcatユーザメーリングリストに参加
http://www.jajakarta.org/tomcat/faq/tomcatuser.html)したくても参加できないのですが、
どうすればよいでしょうか?

tomcatスレがないのでここで質問させていただきました。
(正確にはありますが、関係ないようだったので)

458 :455:2008/11/28(金) 13:18:42
>>456
ではどのようにパターンを読んで抜き出しているのでしょうか?

閾値の設定は

459 :455:2008/11/28(金) 13:20:31
>>458
間違って一度書き込んでしまいました^^;

ではどうやってマッチングの閾値を設定するプログラムを作ればいいのでしょうか?
今のやつではターゲットと全く同じパターンしか抜き出すことができなくて・・・。

460 :デフォルトの名無しさん:2008/11/28(金) 14:59:52
swingでJFileChooserを使ってファイルの保存ダイアログを表示させています。
そこで「拡張子の指定がなかった場合は自動的に.txtを付与する」という機能を付けたいのですが
どういったメソッドが用意されているでしょうか

461 :デフォルトの名無しさん:2008/11/28(金) 15:07:42
getSelectedFileでもオーバーライドすれば?

462 :デフォルトの名無しさん:2008/11/28(金) 22:54:59
最近本を買って勉強を始めたのですが、本のサンプルソースを丸写ししてもコンパイルにエラーが出てしまいます。
始めたばかりでよく分からないのですが、

import java.util.Scanner;

int x = stdIn.nextInt();
がダメなようです。

いきなり変数にキーボードから代入するという初めのほうで止まってしまって困っています。
全部のソースを上げたいのですが、ロダとかいろいろ使い方が分からないので抜粋しました。

ググっても知識がなさ過ぎて、ますます分からなくなる始末でした。
もしよければどこが悪いか教えていただけると幸いです。

463 :デフォルトの名無しさん:2008/11/28(金) 22:57:16
>>462
javaのインストールとかパスとかは通したの?

464 :デフォルトの名無しさん:2008/11/28(金) 23:06:38
エクリプスいれてやってみ

465 :デフォルトの名無しさん:2008/11/28(金) 23:06:39
javaのバージョンは何使ってます?
1.5くらいからだっけ?.Scanner

466 :デフォルトの名無しさん:2008/11/28(金) 23:08:00
>>462
hello worldは実行できたの?

467 :デフォルトの名無しさん:2008/11/28(金) 23:09:27
scannerはJDK 5.0から。

468 :デフォルトの名無しさん:2008/11/28(金) 23:09:54
みんな親切だなwこんな教えて君以下のカス相手に

469 :デフォルトの名無しさん:2008/11/28(金) 23:21:08
今度から君の質問にも答えてあげるから今回はひがむな、教えて君

470 :462:2008/11/28(金) 23:29:14
hello worldはできました。
どうやらバージョンが悪かったようです。
確認したら C:\j2sdk1.4.2_18 となっていたので、新しいの入れないとダメみたいですね。

みなさん、こんな初歩の初歩の質問に答えていただきありがとうございました。

471 :デフォルトの名無しさん:2008/11/28(金) 23:33:02
for(int a=0; a<12; a++){
これのa++で1足すって事ですよね?
2づつ足したい場合は如何すれば良いんですか?

472 :デフォルトの名無しさん:2008/11/28(金) 23:36:14
a+=2

473 :デフォルトの名無しさん:2008/11/28(金) 23:39:10
>>472
有難うございます

474 :デフォルトの名無しさん:2008/11/29(土) 00:14:48
>455
どっかで見たことあると思ったら宿題スレか

475 :デフォルトの名無しさん:2008/11/29(土) 02:22:30
>>455
見た感じ、半数以上の"1"(黒?)のドットが一致すればヒットしそうだが。

476 :デフォルトの名無しさん:2008/11/29(土) 03:53:17
ResultSet の getString と getNString はどう違うんですか?
NCHAR型 読み込むときに getString 使ってると何か問題起きるとか?

477 :デフォルトの名無しさん:2008/11/29(土) 06:44:36
TreeMap<Integer, Integer> treemap = new TreeMap<Integer, Integer>();
for(〜){
treemap.put(keyl, val);
}
int j = treemap.size();
int[] order = new int[j];
for (Map.Entry<Integer, Integer> in : treemap.entrySet()) {
order[--j] = in.getValue();
System.out.println("j:"+j);
System.out.println("Key:" + in.getKey());
System.out.println("Val:" + order[j]);
}
このようにtereemapの要素を配列に降順にいれようとしたのですが、treemapの要素がマイナスのとき
それがサイズとしてカウントされませんでした。
例: 1,6,33,7,-1,-9 のときのサイズは4つ
これは何故こうなるのでしょうか?

というかそもそもこれよりも簡単綺麗に降順にして配列にいれる方法ありましたら教えてください

478 :デフォルトの名無しさん:2008/11/29(土) 09:57:10
>>477

>というかそもそもこれよりも簡単綺麗に降順にして配列にいれる方法ありましたら教えてください

降順にするならComparatorを実装したクラス一個作ってそれを使ってtreemapを
コンストラクトした上で
treemap.values().toArray()で配列を取り出すとかすればいけそうな気はする


479 :デフォルトの名無しさん:2008/11/29(土) 15:03:16
>>478
ありがとうございます
今試しにやってみたところtreemapの精度が正確ではないのか
ソートがところどころ順番がおかしくなっていました

2つの要素i,jがありそれぞれをセットとして、iで降順にソートし、その順番でjを配列に格納するにはどうしたらいいのでしょうか?
i , j
4 , 43
675, 23
262, 5

675, 23
262, 5
4 , 43
とソートしたいと思っています

int [][]ar = new int[64][2]; //無駄な配列ができますが、ループが終わるまで要素数がわからないので・・・
int j;
for(int i =0;i<64;i++){
if(iがある条件なら){
j= getKey(〜);
}
ar[i][0] = j;
ar[i][1] = i;
}
そしてこのarをar[i][0]の降順にソート
int ar2 = new int[ar.length];
for(int i=0; i<ar.length;i++){
ar2[i] = ar[i][1];
}
return ar2;

480 :デフォルトの名無しさん:2008/11/29(土) 15:26:07
>treemapの精度が正確ではないのか
うけたw

481 :デフォルトの名無しさん:2008/11/29(土) 16:46:47
>>479
どこから突っ込めばいいんだ・・・

482 :デフォルトの名無しさん:2008/11/29(土) 17:33:21
>>479
やっつけで作ってみたけど、やりたいのはこゆこと?
import java.util.*;
public class Test{
public static void main(String args[]){
TreeMap<Integer, Integer> treemap = new TreeMap<Integer, Integer>(new TestCmp());
treemap.put(Integer.valueOf(4),Integer.valueOf(43));
treemap.put(Integer.valueOf(675),Integer.valueOf(23));
treemap.put(Integer.valueOf(262),Integer.valueOf(5));
Object[] keys = treemap.keySet().toArray();
Object[][] result = new Object[keys.length][2];
int i=0;
for(Object key:keys){
result[i][0]=key;
result[i][1]=treemap.get(key);
System.out.println("key="+result[i][0]+":val="+result[i][1]);
i++;
}
}
}
class TestCmp implements Comparator{
public int compare(Object i1, Object i2){
if((Integer)i1<(Integer)i2){return 1;}
if((Integer)i1>(Integer)i2){return -1;}
return 0;
}
public boolean equals(Object o){
if(o.equals(this)){return true;}
return false;
}
}

483 :デフォルトの名無しさん:2008/11/29(土) 17:45:56
Comparatorを書かなくても元々キーの昇順にソートするComparatorを持っているからそれを逆にすればいい。
TreeMap<Integer, Integer> treemap = new TreeMap<Integer, Integer>();
treemap.put(4 , 43);
treemap.put(675 , 23);
treemap.put(262 , 5);

TreeMap<Integer, Integer> reversemap = new TreeMap<Integer, Integer>(Collections.reverseOrder(treemap.comparator()));
reversemap.putAll(treemap);

System.out.println(treemap);
System.out.println(reversemap);
配列に代入するところまでは書かない。

484 :デフォルトの名無しさん:2008/11/29(土) 17:49:26
進捗バーについての質問です。ご教授ください。

for文で約30レコードのデータをオラクルから持ってきていていまして、
そのデータのロードがあまりにも遅いために進捗バーを設定したんですけど、
for文内でsetValue()で値を随時セットしているようにしても、バーは正しく動作せず、
パッと突然0%から100%に変わってしまいます。どうやらfor文の中で値を設定しても
バーの表示が変わるのはfor文を抜けた直後なのが原因だそうですが、
だとすれば、一体どのようにすれば進捗バーはちゃんと動作してくれるのでしょうか?
Eclipseを利用して画面を作成しています。

485 :デフォルトの名無しさん:2008/11/29(土) 17:49:58
treemapが最初にありきの場合なので、
最初から逆順ソートのComparatorを持つTreeMapを作って、
それにputしていくのならこれは関係ないね。

486 :デフォルトの名無しさん:2008/11/29(土) 17:55:26
>>484
バーが正しく動作しないのではなくバーを正しく動作させていないのでは
ここらへんを参考に
ttp://java.sun.com/docs/books/tutorial/uiswing/components/progress.html

487 :デフォルトの名無しさん:2008/11/29(土) 19:24:40
JNI使って、
int[] を返す native な関数をつくり、
DLLを C/C++ で実装し、
malloc とかしてメモリ確保してそのポインタをして返しやったりした場合、

Java 側ではガベージコレクションされなくなるんでしょうか?
(new したものしかガベージコレクション対象にならない?)

また、free するような関数も DLL で実装して、
int[] (jintarray になるのかな?) を渡して
開放とかってできるんでしょうか?

DLL で画像処理させたい(MMXとかを使う)ので、
メモリアライメントがとれてる配列を使いたいので、、、

スレ違いかもしれませんが、よろしくお願いします。

488 :デフォルトの名無しさん:2008/11/29(土) 20:36:14
Serializableで、プリミティブ基本型と配列型が自動で直列化されるということは、
もし全てのクラスでSerializableを実装していると
cloneみたく自分でコピーのコード書かなくてもデープコピーになるってことでしょうか?

489 :デフォルトの名無しさん:2008/11/29(土) 21:07:17
StringのindexOfメソッドの引数は何故charではなくintなのでしょうか?

490 :デフォルトの名無しさん:2008/11/29(土) 21:10:16
>>489
charだろ

491 :デフォルトの名無しさん:2008/11/29(土) 21:22:12
>>487
とりあえずJNIスレはこの板にあるのでそちらで聞いた方が良いだろう、
という事と、JNIに準じたコードを素で実装するよりSWIGを利用した方が
色々と楽が出来ると思います。
それこそガベージコレクタ周りもサポートありますし。

492 :デフォルトの名無しさん:2008/11/29(土) 21:48:50
わからないからってすぐすれ違いにするなよ

493 :デフォルトの名無しさん:2008/11/29(土) 22:10:41
>>487
malloc で確保したメモリを返しても int[] にはならんよ。

1.4以降の NewDirectByteBuffer 使うとか?
http://pc11.2ch.net/test/read.cgi/tech/1033795664/587-596 あたりに出てるけど
ネイティブ側で確保したメモリは、JVMのガベコレは解放してくれないので
自前で解放する必要があるみたいね。

494 :デフォルトの名無しさん:2008/11/29(土) 22:11:15
いや、そういうわけじゃないんだけどね。
普通はByteBuffer.allocateDirectをつかう。
この関数は、要望が多かったから、君がやりたいようなことをそのままJVMでサポートした関数だから。
これも使いたくないって言うなら、ちゃんとAPIドキュメント(JNI)を読むこったw

495 :デフォルトの名無しさん:2008/11/29(土) 22:15:38
>>492
分かったら、ちゃんと仏様って呼ぶんだぞ

496 :487:2008/11/29(土) 22:32:12
>>491
ありがとうございます。ただ、色々と複雑な画像処理をするので、
自分で細かくカスタマイズできるレベルが希望なんです。

>>493
うおー、勉強になりました。
ちょっとこれでやってみます。ありがとうございます。

497 :デフォルトの名無しさん:2008/11/29(土) 22:37:24
APIも読んでない野郎はカス

498 :デフォルトの名無しさん:2008/11/29(土) 22:42:36
JavaってIO関連のAPIの頭の中の整理がいまいちつかないんだけど
俺の頭が悪いのか、皆そうなのか・・・

なんどやってもだめ。すぐ忘れる。

499 :デフォルトの名無しさん:2008/11/29(土) 22:44:19
こんなやつ>>492に親切に答えてやるな。
どうせAPIも読まない独学だし、こういうカスが調子に乗ったらどうすんの?
こういうのがそのうち祟り神(荒らし)になっちゃんだしな・・


500 :デフォルトの名無しさん:2008/11/29(土) 22:46:08
>>498
そのうち慣れるよ

俺も昔はインプットストリームだバッファーなんたらだって頭がおかしくなりそうだったが
最近は見慣れたし、1度書いたコードをコピペしてシャキーンと直せば解決したりもする

501 :デフォルトの名無しさん:2008/11/29(土) 22:58:47
シャキーンもなにも、JNIスレも探してないしすぐ発狂するし、こういう奴は見込みないよ。やめとけ、やめとけ。

502 :デフォルトの名無しさん:2008/11/29(土) 23:00:27
>>500
ていうか、おまえは人様が作ったパッケージを使ってるだけだろ?
自分で作ったこともないクセに偉そうにするな。おっさんw

503 :デフォルトの名無しさん:2008/11/29(土) 23:04:24
>>498
ここはおまえの日記帳じゃないからとっとと消えろw

504 :デフォルトの名無しさん:2008/11/29(土) 23:10:15
>>502
人様が作ったから頭にはいらねーんだよボケが

自分で作ったらいくらなんでも覚えとるわい!

しかし、IDついてないのにみんなよく特定できるな

505 :デフォルトの名無しさん:2008/11/29(土) 23:15:31
ソースにはIDあるよ

506 :デフォルトの名無しさん:2008/11/29(土) 23:20:23
>>504
雑魚w

507 :デフォルトの名無しさん:2008/11/29(土) 23:21:53
>>505
まじか!

俺なんて、自分が書き込んだIDもわからんぜよ

508 :デフォルトの名無しさん:2008/11/29(土) 23:45:47
>>482-483
ありがとうございます
無事実現したいことができました

509 :498:2008/11/30(日) 00:20:36
>>500
ありがとう。わけわからんくなるよね?本当に。

>>502
市ね。ごみ屑。

510 :デフォルトの名無しさん:2008/11/30(日) 00:23:47
コンストラクタの処理を途中で数秒間止めてから
その後コンストラクタの続きの処理を動かすにはどうすればいいでしょうか?
public コンストラクタ(){
System.out.println("1");
ここで数秒処理を止める
System.out.println("2");
}
このような処理にしたいのですが

511 :デフォルトの名無しさん:2008/11/30(日) 01:06:50
eclipseで動かしてるプログラムなんですが下記のエラーが出ます。
データを読み取って新たにファイルを作り出すプログラムなのですが・・・
何が原因でしょうか?

java.lang.IntrnalError: fillbuf
at org.apache.crimson.parser.InputEntity.parsedContent(InputEntity.java:545)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1871)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1552)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1824)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1552)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1824)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1552)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1824)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1552)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:534)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:318)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:287)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:650)

512 :デフォルトの名無しさん:2008/11/30(日) 01:27:40
>>511
多分、eclipse ではなくプログラムの方に問題がある感じだね。

513 :デフォルトの名無しさん:2008/11/30(日) 09:16:51
ランダムにリンクが飛ぶスクリプトを拾ったんですが、
新ウィンドウでリンクを開く場合はどうしたらいいでしょうか。
アドレスのあとにtarget="_blank"と入れてもだめでした・・・。


<form>
<input type=button onClick="jump()" value="ランダムリンク">
</form>

<script>
url = new Array();

/* リンク先のURLを好きなだけ記述 */
url[0] = "test0.html";
url[1] = "test1.html";


function jump() {
p = Math.round(Math.random() * (url.length - 1));
parent.top.document.location = url[p];
}
</script>

514 :デフォルトの名無しさん:2008/11/30(日) 09:30:01
>>513
それJavaScriptじゃ。。。
該当スレで聞いて下さい

515 :デフォルトの名無しさん:2008/11/30(日) 09:32:08
すれ違いでしたか、すみませんでした。

516 :デフォルトの名無しさん:2008/11/30(日) 12:22:00
>>509
スレが汚れるだけだからこういうの止めてくれないか?

517 :デフォルトの名無しさん:2008/11/30(日) 16:21:25
汚れるといってもあなたの陰金には負けます

518 :デフォルトの名無しさん:2008/11/30(日) 17:13:56
Unix環境などX Windowがない環境でグラフィック処理を行うと
エラーになるため、以下の環境変数を指定して実行すると正常に動作するというのを見つけました。
java -Djava.awt.headless=true hogehoge

そこで質問させてください。
awtの処理でOSに依存するネイティブな処理が走るけど、
グラフィックをサポートしていないOSではエラーとなるため
上記の設定が必要だと思ってます。
では、上記設定を行うとネイティブで行ってた処理を誰が行ってくれるのでしょうか?
Java側にネイティブのグラフィック処理に変わる実装があり、
そちらで処理してくれるのでしょうか?
それでしたら、そもそもネイティブな処理を呼び出す必要がないですよね?
java.awt.headless=true を指定すると
正常に処理される内部のメカニズムを教えてくださいm(__)m

519 :デフォルトの名無しさん:2008/11/30(日) 18:04:54
内部の実装に興味持つならJAVAやる意味はないな。
SUNの方針だと、一度ソフト上で実装(レファレンス実装)してからshippingするからなんかあるんじゃないか?
しかしもともとハードであるものをソフトでやる(エミュレーション)だから速度は遅くても、一応どこでも動くってこと。


520 :デフォルトの名無しさん:2008/11/30(日) 18:13:08
http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/awt/AWTChanges.html#headless

521 :デフォルトの名無しさん:2008/11/30(日) 19:37:07
すみません。自分自身の限界が来たので質問させてください。
Javaで非常にシンプルなボタンの作成をしてみました。
なぜだか、5番目のボタンだけキャプションが表示されません。
環境はWin+eclipseです。

トラブルシュート、ログはたくさん見たのでその他のなにか考えなければならないヒントなどいただけると
た す か り ま す

public class Test {
public void method(){
int i;
Button h[]=new Button [9];
int dx[]={1,2,3,4,5,6,7,8,9};
int dy[]={1,1,1,1,1,1,1,1,1};
String st[]={"aa","ii","uu","ee","oo","か","き","く","け"};

Display display = new Display();
Shell shell=new Shell(display);
shell.open();

for(i=0; i<9; i++){
h[i]=new Button(shell,SWT.BORDER);
h[i].setBounds(dx[i]*50,dy[i]*30,50,30);
if(i!=4){h[i].setText(st[i]);}}
while(!shell.isDisposed()){if(!display.readAndDispatch()){display.sleep();}}
display.dispose();}
public static void main(String[] args){
Test test = new Test();
test.method();}}


522 :デフォルトの名無しさん:2008/11/30(日) 19:40:31
>>521
追加です。

これは、問題があったコードを非常にシンプルにしたもので、
元のコードは1000行位あるものです。

特段お金儲け関係ではないので(ただの勉強)必死でいつまで、とかの要望はありませんが、
あまりにもシンプルすぎて調べようも無くなったのでお力拝借したいと。

ちなみにC# のスレに誤爆&非礼をわびておきました。


よろしくお願いします。
#てか、どこに問題があるんだろ。Javaのバージョンかなぁ。

523 :デフォルトの名無しさん:2008/11/30(日) 19:45:42
をっと。利用しているのはSWTです。以下importを

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;



524 :デフォルトの名無しさん:2008/11/30(日) 19:52:26
>>521
> if(i!=4){h[i].setText(st[i]);}
これじゃね?

525 :デフォルトの名無しさん:2008/11/30(日) 21:32:11
>>524
www

526 :デフォルトの名無しさん:2008/11/30(日) 21:56:05
>>524
激しくわろたw
自分自身の限界が来たって大げさ過ぎw

527 :デフォルトの名無しさん:2008/11/30(日) 21:59:28
こんな時代もあったよね

と懐かしい気持ちになりました

528 :デフォルトの名無しさん:2008/12/01(月) 01:11:18
>>486
ありがとうございます。
どうやらswingWorkerを使用する必要があるそうです。

ここでもうひとつ疑問なんですが、swingWorker<T, V>の、
<>の中身は一体なにを表しているのでしょうか。
swingWorker以外にもどこかで見たことがあるんですけど・・・。

529 :デフォルトの名無しさん:2008/12/01(月) 03:17:25
「Java ジェネリックス」で調べてみて下さい。JDK5からの新文法です。

530 :デフォルトの名無しさん:2008/12/01(月) 09:58:16
再帰呼び出しで
static int f(int n)
if n==0
return 1
else
return n*f(n-1)
というのを作ってn=3のとき最後の
returnに1、2,3と返すと思うんですけど
2や3はf(2)やf(1)の値がコンピュータに記憶されてるの?

531 :デフォルトの名無しさん:2008/12/01(月) 12:34:42
俺のコンピュータは意地でも改行しないつもりかwww.... ort

final Display display = new Display();
final Shell shell = new Shell(display);
String separator = System.getProperty("line.separator");
shell.open();

Text t = new Text(shell, SWT.BORDER);
t.setBounds(10, 10, 100, 100);
t.append("Hello world\n" + separator + '\n');
t.append("Hello world\n" + separator + '\n');


532 :デフォルトの名無しさん:2008/12/01(月) 13:36:37
質問です。
StringクラスのreplaceAll()メソッドに関してなんですが、
正規表現で、特定の文字集合にマッチした場合、
マッチした文字の後ろに特殊な記号を加えたいのです。
replaceAll(pattern, "特殊な記号");
とすると、元の文字を完全に消してしまうので
これはどのようにすればいいのでしょうか?

具体的には
replaceAll("[abcd]","特殊な記号")

文字列が、"apple"だった場合
"a特殊な記号pple"
となるようにしたいのです。


533 :デフォルトの名無しさん:2008/12/01(月) 13:38:12
replaceAll("([abcd])", "\\1特殊な記号");

534 :デフォルトの名無しさん:2008/12/01(月) 14:10:36
正規表現はどこに行けばマスターできますか?

535 :デフォルトの名無しさん:2008/12/01(月) 14:17:36
JDK5.0のWindows版しか使えない状態なのですが、Windowsサービスとして
起動しているアプリケーションに、外部からスレッドダンプを取得する
方法はあるでしょうか。以下の方法までは思いついたのですが、いずれも
トレードオフが現在取れない状態になってしまっています。

1. jstack を使う
  → JDK5.0 では、Linux 版しか無い様でした。

2. jmxremote オプションを付けて jconsole でアタッチ
  → 取得できるのですが、jconsole の UI の仕様上、全部のスレッドダンプを
    取りづらい(左のスレッドを選ぶとその情報が取れる)ので、一度に特定
    プロセスのダンプが取れる方法を探しています。

3. StackTrace と言うアプリケーションを使う
  → adaptj と言う会社の StackTrace を使うと、まさに希望したものが取れるの
    ですが、実行したい環境がインターネットに繋がらない環境であるため、
    使用できないでいます。

できる範囲は、VM の起動引数に変更を加えるまでは可能です。

536 :デフォルトの名無しさん:2008/12/01(月) 14:21:23
ありません。

537 :デフォルトの名無しさん:2008/12/01(月) 14:33:21
VMの起動引数を変えれるんなら、メインクラスを変えられるということだ
自前のメインクラスから専用のスレッドを起動しておき、
何かのトリガに反応して Thread#getAllStackTraces() を出力するようにしておけばいいのではないか

538 :デフォルトの名無しさん:2008/12/01(月) 14:48:08
>>536
そうですか...Linuxだと簡単なのに意外に苦戦して参っています。

>>537
ありがとうございます。
Thread#getAllStackTraces を出力する案は、
別途サーバに手を入れてしまうのが許される場合の案として
次善策にしていました。
この場合はどうせ手が入るからってことで、
サーバアプリなのでそのまま口を設けて出力する案で検討していま

539 :デフォルトの名無しさん:2008/12/01(月) 14:49:51
いまどきLinuxはねーよw

540 :デフォルトの名無しさん:2008/12/01(月) 15:31:49
linuxが許されるのは年金もらうまでだよね

541 :デフォルトの名無しさん:2008/12/01(月) 15:58:42
なら、おまえらはなに使ってんだよ?

542 :デフォルトの名無しさん:2008/12/01(月) 16:17:43
もちろんWindows

543 :デフォルトの名無しさん:2008/12/01(月) 16:33:03
>>534
http://www.hellohiro.com/regex.htm

544 :デフォルトの名無しさん:2008/12/01(月) 16:38:18
そのサイト、おおお!〜ましたね!っていうのがイヤだ

545 :デフォルトの名無しさん:2008/12/01(月) 18:06:01
>>544
てか、
Java初心者向けサイトのほとんどがそんな感じじゃね?

546 :デフォルトの名無しさん:2008/12/01(月) 18:15:56
念願の、Genericとアノテーションとenumに対応したEffective Java第2版が
出たそうですが、おぬしらの中の読んだ方で、感想はいかがですかな?
前書きに書いてある通りの内容ですかな?

すでに第1版をenumあたりまで読んでいるのじゃが、
これは第2版に鞍替えして読み直したほうがよろしいかな?

547 :デフォルトの名無しさん:2008/12/01(月) 18:45:16
>>545
そんなバナナ

548 :デフォルトの名無しさん:2008/12/01(月) 20:14:44
struts2って結構使われてるんでしょうか?
今、一番安定しているフレームワークって何?

549 :デフォルトの名無しさん:2008/12/01(月) 21:17:35
ところでおまいらEclipseとか使いこなせてるの?
おれは全然わかんねぇ、普通にプロジェクト作ってコード書いて実行ならできるんだが
全然使いこなしてる感じがしない、というかしてないが。
開発環境って多機能すぎる

550 :デフォルトの名無しさん:2008/12/01(月) 21:22:04
お前らSE、PG??????
やっていけてんの??????

551 :デフォルトの名無しさん:2008/12/01(月) 22:19:57
俺は>>550が一番心配だ。

552 :デフォルトの名無しさん:2008/12/01(月) 22:20:01
>>546
すれ違い?

553 :デフォルトの名無しさん:2008/12/01(月) 23:23:34
>>535
とにかく Ctrl+Break を送ればスレッドダンプするらしいので、Win32 SDK の GenerateConsoleCtrlEvent 関数
で CTRL_BREAK_EVENT を送ればいいはず。
ただしサービスとして起動している java プログラムの標準出力に出ちゃうから、標準出力をファイルか何かに
リダイレクトする必要がある。 
ここまで書いたけど、そこまでするなら JDK6 にしてもらえるように説得したほうが楽そうだな。

554 :デフォルトの名無しさん:2008/12/01(月) 23:51:37
式言語の意義とは何なんでしょうか?
seacer2の勉強してたらOGNLという言語が出てきました。
調べてみるとJavaEEに出てくるEL式などの仲間で式言語というらしいのですが、
文法見ても目的が理解できません。
web開発において式言語を使う意味というのは
JSPでアクションやサーブレットから受け取ったオブジェクトの情報を出力しやすくするため
に限ったことですか?

555 :デフォルトの名無しさん:2008/12/01(月) 23:51:48
以下のオブジェクトをシリアライズしてネットワークで他のパソコンに転送、計算を行い結果を返送させるプログラムを作成しています。
public class Element implements Serializable
{
double start;
double end;
int cut;
double d;
int sigma;
int mode;
}

556 :555:2008/12/01(月) 23:54:35
続き
送信メソッド
try {
sock = new Socket(host, Integer.parseInt(port));
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
ObjectOutputStream out = null;
try {
out = new ObjectOutputStream(sock.getOutputStream());
out.writeObject(element);
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
finally
{
try {
out.close();
sock.close();
} catch (Exception e) {
e.printStackTrace();
}

557 :555:2008/12/01(月) 23:58:02
以下のメソッドで受信を行っているのですが、EOFExceptionが発生してしまいます。
理由がさっぱりわからず困っています。どのようにすればよいのでしょうか。
try
{
ois = new ObjectInputStream(sock.getInputStream());
if(ois.readObject() instanceof Element) //計算する要素を受け取った場合
{
Element element = (Element)ois.readObject();
element.apply(simu.getRects());
Receive.this.simu.calc(); //計算
}

}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
if(ois != null)
ois.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}

558 :デフォルトの名無しさん:2008/12/02(火) 00:02:21
ここ

if(ois.readObject() instanceof Element) //計算する要素を受け取った場合

559 :デフォルトの名無しさん:2008/12/02(火) 00:03:04
>>555
ois.readObject() instanceof Element の行で
オブジェクトを読み込んでるのに
その下の行でさらに読み込もうとしてるから

560 :デフォルトの名無しさん:2008/12/02(火) 00:12:18
public static final Object CONS=new Object();
でオブジェクトのインスタンスを定数のように使いたいのですが、
直列化するとインスタンスのメモリアドレスが変わってしまい
if (arg==CONS);で比較しても上手くいきません。
古いjdkのためenumを使えずどうすれば良いでしょうか。


561 :デフォルトの名無しさん:2008/12/02(火) 00:24:45
>>560
enumが欲しいならEffective Javaを読んでenumを実装する

562 :555:2008/12/02(火) 00:26:58
>>558
>>559
出来ました、有難うございます。

563 :デフォルトの名無しさん:2008/12/02(火) 00:31:48
>>561
その教科書は持ってないんですけど、enumなんてどうやれば実装できるんですか!

564 :デフォルトの名無しさん:2008/12/02(火) 00:32:48
うざいなぁ

565 :デフォルトの名無しさん:2008/12/02(火) 00:37:15
Enumでなくてもフィールドがオブジェクトで定数(final)で一意であればいいので
例えばStringでやってみようかと思ってるのですが難しいです(;ω;)

566 :デフォルトの名無しさん:2008/12/02(火) 00:50:22
>>560
readResolve を実装しろ

567 :546:2008/12/02(火) 02:05:41
>>552
なぜスレ違いなのじゃ?

Eclipseの話をするほうがよっぽどスレ違いではないかい?

うーむ、Effective Java第2版を実際に読んでみた者は
まだこのスレに現れないか。

568 :546:2008/12/02(火) 02:08:03
>>563
Effective Java第一版に実装する方法が載っているようじゃ。
Type Safe enumでもググって見るとよいぞ。Eclipseのプラグインでも
そのようなものが存在するのじゃ。

569 :デフォルトの名無しさん:2008/12/02(火) 02:10:06
読んでる最中。Genericsの境界ワイルドカードは説明読んでもさっぱりだ。
<T extends Comparable<? super T>>って何ぞ……。

570 :デフォルトの名無しさん:2008/12/02(火) 02:15:37
Tもしくはそのスーパークラスと比較可能なT
Integer (Comparable<Integer>) とか
java.sql.Date (Comparable<java.util.Date>) が該当する

571 :デフォルトの名無しさん:2008/12/02(火) 02:24:39
<? super T>って
if(foo instanceof Bar){
//hoge
}

みたいな条件分岐がいらなくなるくらいしか思いつかないんだが・・・


572 :569:2008/12/02(火) 02:25:37
うーん、わかるようなわからんような。
interface I {}
class A implements I, Comparable<I> {...}
class B implements I, Comparable<I> {...}
static <T extends Comparalbe<? super T>> int compare1(T a, T b) {...}
static <T extends Comparalbe<T>> int compare2(T a, T b) {...}
void func() {
A a = new A();
B b = new B();
compare1(a, b); // OK
compare2(a, b); // NG
}
既存の定義はなんとか読み解けても、1から自分で定義できなさそーな気が……。

573 :デフォルトの名無しさん:2008/12/02(火) 02:35:19
>>567
注文して、到着待ち。俺の国に届くのはいつの日だよorz

>>571
実行時じゃなくてコンパイル時に怒られるから良いんじゃないのかな。
Generics使い始めると意地でもキャストを無くしたくなる。

574 :デフォルトの名無しさん:2008/12/02(火) 12:16:35
>>570
片方がsqlでもう片方がutilであるぞ

575 :デフォルトの名無しさん:2008/12/02(火) 12:20:06
>>572
ドキュメントをよく読むんだ。入門サイトもどこかにある。
Effective Javaを読む前に先にGenerics入門らしきサイトを先に
読んだほうがいいのでは。
たしかに、けっこう混乱するとは思う。
自分で作るの大変だ

576 :デフォルトの名無しさん:2008/12/02(火) 17:22:44
>>566
あの〜
意味が分からないですけど

577 :デフォルトの名無しさん:2008/12/02(火) 17:34:05
アプレットで六角形を描きたいのですが、drawPolygonメソッドがint型の配列しか引数に
取れないようなのでどうすればいいかわかりません。以下のコードをどう修正したらいいですか
import java.applet.*;
import java.awt.*;

public class hexagon extends Applet {
public void paint(Graphics g) {
double sqr3 = Math.sqrt(3.0);
double[] xPoints = {5, 15, 20, 15, 5, 0};
double[] yPoints = {0, 0, (5*sqr3), (10*sqr3), (10*sqr3), (5*sqr3)};
int nPoints = 6;
g.drawPolygon(xPoints, yPoints, nPoints);
}
}

578 :デフォルトの名無しさん:2008/12/02(火) 18:43:10
>>577
intにキャストすれば?

579 :デフォルトの名無しさん:2008/12/02(火) 18:44:54
>>578
同一インスタンスを返すようにreadResolve()をオーバーライドすればいいということかと。
readResolve()を知らないなら、直列化について詳しく調べるといい。


580 :デフォルトの名無しさん:2008/12/02(火) 19:07:11
直列化のsrcとdstでインスタンスのアドレスが違うからstatic final intみたな定数として機能してないってことが問題なんですけど?
何が問題が良く分かってないじゃないですか。それにインタフェイスではそのAPIはありませんよ。
直列化するときは普通はクラスのほう使いますけど。

581 :デフォルトの名無しさん:2008/12/02(火) 19:17:10
なんでintしか扱えないんだろうか

582 :デフォルトの名無しさん:2008/12/02(火) 19:36:09
>>580
readResolve()はANY-ACCESS-MODIFIERなメソッドだけど、
デフォルトではprivateなメソッドだから、javadocにも載ってないし、
オーバーライドしろといわれてもピンとこないのは、非常によく分かる。

ただ、直列化を使用するなら、直列化の仕様ぐらい調べようぜ。

それより、"クラスのほう"って何?




583 :デフォルトの名無しさん:2008/12/02(火) 20:04:29
当然class ObjectInputStreamですよ。
intなのは、swichの実装が32ビットだと容易だからです。
それと仕様は読んでるんですけど、参照をフィールド定数として使いたいことと直列化は関係ありません。
enumが使えるJDKならいいんでしょうが、なんか上手い方法はないでしょうか・・・・

584 :デフォルトの名無しさん:2008/12/02(火) 20:16:50
>>580
http://java.sun.com/javase/ja/6/docs/ja/api/java/io/Serializable.html

> 代替オブジェクトのインスタンスをストリームから読み込むときに
> そのオブジェクトを指定する必要のあるクラスでは、
> 次のシグニチャーを正確に指定して、この特別なメソッドを実装する必要があります。
>
> ANY-ACCESS-MODIFIER Object readResolve() throws ObjectStreamException;

1.1 だと使えないんだっけ?

585 :デフォルトの名無しさん:2008/12/02(火) 20:22:14
readResolveが一つの解決法なのは分かりますが、あなた、ちょっとしつこい

586 :デフォルトの名無しさん:2008/12/02(火) 20:23:31
もうジャバはめんどい!
C#とマイクロソフトだけで俺はしあわせ!

587 :デフォルトの名無しさん:2008/12/02(火) 20:23:53
>>585
readResolve での解決では、何か不満が?

588 :デフォルトの名無しさん:2008/12/02(火) 20:27:48
>>583
何この場か

589 :デフォルトの名無しさん:2008/12/02(火) 20:29:09
>>585
>readResolveが一つの解決法なのは分かりますが、あなた、ちょっとしつこい
いや、別人ですから。

590 :デフォルトの名無しさん:2008/12/02(火) 20:32:05
ここまで全部俺の書き込み

591 :デフォルトの名無しさん:2008/12/02(火) 20:37:57
どれがだれのだれへの発言なのか

592 :デフォルトの名無しさん:2008/12/02(火) 20:41:19
>>それにインタフェイスではそのAPIはありませんよ。
>>直列化するときは普通はクラスのほう使いますけど。
横道にそれるけど、インタフェイスとクラスの理解があやふやじゃないか。
普通はクラスのほうを直列化って、インタフェイスも直列化可能と?

593 :デフォルトの名無しさん:2008/12/02(火) 20:46:13
>>569
ワイルドカードは、
引数に対してコバリアントにしたい場合は、super を使い、
返り値に対してコバリアントにしたい場合は、extends を使う。

例えば、Comparator<T> は、T が出てくるのが、
int compare(T, T)
しかないので、extends のワイルドカードを使っても全くの無意味。

逆に、Iterator<T> は、T が出てくるのが
T next()
しかないので、super のワイルドカードを使っても全くの無意味。

ところで、Effective Java 第2版の和訳はどうなん?
第1版は和訳が酷いとかいってた人が居たけど

594 :デフォルトの名無しさん:2008/12/02(火) 20:50:23
javaでmysqlサーバに現在時刻を取得するためにクエリを発行して取得した結果が
2008-12-02 20:47:03.0
というように最後に余計な物がついてきます。これなんとかならないでしょうか?
String query = "select now();";

try{
Class.forName("org.gjt.mm.mysql.Driver");
con = DriverManager.getConnection(url, user, pass);

stmt = con.createStatement();
rs = stmt.executeQuery(query);
rs.next();
TimeStamp = rs.getString("now()");
System.out.println(TimeStamp);
}catch(Exception e){
System.err.println(e);
}

こんな感じのソースです
2008-12-02 20:47:03
これだけあればいいです


595 :デフォルトの名無しさん:2008/12/02(火) 20:51:16
5.0じゃないならreadResolveしかないだろ。なんでゴネてんだ?

596 :デフォルトの名無しさん:2008/12/02(火) 21:10:50
Swingで質問です…
JScrollPaneのViewportViewにJTreeを二つ設置したJPanelを指定したのですが
スクロールペインの中央にJTreeが並んでしまって困ってます
BoxLayoutでJPanelにJTreeを設置するとテキストがまともに表示されない(後半が途切れる)ので
GridBagLayoutで白紙のパネルをJTreeの下に設置し、JTreeを左上になんとか表示してます
こんな無理矢理な方法を使わず、素直にJTreeを二つスクロールペインの左上に設置する方法は無いでしょうか?
何方かご教授下さい…

597 :デフォルトの名無しさん:2008/12/02(火) 21:13:56
>>594
なんで getTimestamp しないの?

java.text.SimpleDateFormat あたりを参照するよろし。

598 :デフォルトの名無しさん:2008/12/02(火) 21:34:12
鯖のシステム時刻とクライアントのシステム時刻が一致している
保証はあるけ?

599 :デフォルトの名無しさん:2008/12/02(火) 21:35:47
>>597
>>598
ありがとうございます。結論から言うと、substring(0,19)で解決しました
しかしなんで末尾にへんな.0がつくのかちょっと謎です

600 :デフォルトの名無しさん:2008/12/02(火) 21:37:54
>>598
なるほどね。

ならそもそも SQL 上で整形して出力すべきだね。

601 :デフォルトの名無しさん:2008/12/02(火) 21:39:37
ん?と思ったけど Timestamp で取得してりゃ問題ないんじゃないの?
unix epoch time からの時間な訳だし…。

まぁどうでもいいや。ガンガってw

602 :デフォルトの名無しさん:2008/12/02(火) 21:44:44
>>567
eclipse万歳〜
プランクトン万歳〜


603 :デフォルトの名無しさん:2008/12/02(火) 21:53:54
eclipseなんて使ってると馬鹿になるぞ
ってのが口癖のEmacs使いの先輩がRailsを理解できない
規約言う前に原理を説明しろとか言って怒鳴る
頭固くなってんのはどっちなんだろう

604 :デフォルトの名無しさん:2008/12/02(火) 21:55:52
よく考えたら直列化で定数フィールドのアドレスが変わっても、equalsで解決できそうなのでそっちでやってみることにします。
実際はEnmuMapみたいなことが出来れば良いのですが、マップを使った配列アクセスみたいですけど
m.put(ONE,val); m.put(TWO,val2);
したあとに直列化しても
m.get(ONE).equals(val)==true であることが条件です。こういうのは出来ないのでしょうか。

605 :デフォルトの名無しさん:2008/12/02(火) 22:11:54
>>603
こんなところで先輩の悪口いってるおまえも相当アレだけどなw

606 :デフォルトの名無しさん:2008/12/02(火) 22:46:37
>>596
sage忘れた上にSwingスレがありました…本当に申し訳ないです

607 :デフォルトの名無しさん:2008/12/02(火) 23:01:39
>>603
「IDE? クソ使い難いエディタ付いてるだけのキッチンシンクが使いもんに
なるわけねーだろ、JK」と思ってたら、リファクタリング機能のあまりの
素晴しさにEclipseに転んだEmacs歴15年の俺が通りますよ、と。

まぁ、ScalaはScala Pluginが現状役に立たないので、scala-mode.el一択
なんだがな……。

608 :デフォルトの名無しさん:2008/12/02(火) 23:24:18
emacsってそんなにいいんですか?ただのエディタじゃないですか。
しかも正規表現を使った検索・置換があれば最低現十分なのに、カスタマイズが多すぎて不要な機能が多いし。
実際私が論文書くときや役所に提出する書類なんかもms word 95と表機能程度で十分ですし、一体全体エディッタやIDEに何を望んでるんですか?といってみるテストw

609 :デフォルトの名無しさん:2008/12/02(火) 23:29:42
>>603
IDE でしか coding したことないと馬鹿になるというか発想が
狭くなるという意味では先輩に合意する。けど、IDE を使って
も良いと思うし、単純ではない GUI とかは IDE 使わない方が
時間の無駄だと思う。

610 :デフォルトの名無しさん:2008/12/02(火) 23:43:13
エディタだとしてもコードのコピペで済むので、時間の無駄って感覚がわかんないんですけど。
GUIとか外見のテンプレートがあってあとはロジック書くだけってならJavaじゃなくても今の時代ならWebでいいかと。
Javaの良いところはコテコテの言語サポートや特定用途でしかつかない意味不明な機能があったりせず、
シンプルにエディタのみで、OO思考的に必要なクラスファイルを書いていくだけでいいってところだと思うんですけど。

でも数千以上のクラスファイルを管理できるぐらいに頭良くないとちょっと無理か。

611 :デフォルトの名無しさん:2008/12/02(火) 23:45:29
>>603
>先輩がRailsを理解できない
>規約言う前に原理を説明しろとか言って怒鳴る

先輩と君との間には、だいぶ深い差があると感じる。

612 :デフォルトの名無しさん:2008/12/03(水) 00:02:31
>>610
Java は色々な名前がやたら長いから通常のエディタじゃかったるくないか?
Exception 名とか

613 :デフォルトの名無しさん:2008/12/03(水) 00:20:21
自分もXEmacsからEclipseに乗り換えたクチですが、便利だなと思える機能は
「それって文法的に自明だから、自動化できるよね」という物が殆どです。

例えばインターフェイス実装時のスケルトンの自動生成なんてのは典型ですし、
リファクタリング時の参照関係の追跡と参照元の書き換えなんかもそう。
手作業でも出来るけど、時間の無駄だしエラーの元なので今では「そこは自明
なので勝手にやっちゃって下さい」という感じです。

あとはエラーやプロジェクトの状況が視覚的に分かりやすいのも良いかな。
あまり関係ないですが、インターンの学生に課題としてクラスのスケルトンと
JUnitのテスト一式を与えたら随分楽しそうに取り組んでいます。
メソッド実装してEclipse上でテストを実行する度にグリーンが増えていくのが
楽しいらしいです。

614 :デフォルトの名無しさん:2008/12/03(水) 00:25:50
C#は言語仕様をIDEで楽にプログラムできるようにしてあるとか聞くね

C++はIDE使ってもjava+eclipseほど楽になんなかった

615 :デフォルトの名無しさん:2008/12/03(水) 00:29:12
>>614
>C++はIDE使ってもjava+eclipseほど楽になんなかった
それはMFCの設計の悪さから来ているだけ。

616 :デフォルトの名無しさん:2008/12/03(水) 00:48:09
つーかjavaでeclipse以外の選択肢って無いだろ
eclipse使わない奴は自分のつまらない信念とポリシー(笑い)を主張してるだけ

617 :デフォルトの名無しさん:2008/12/03(水) 00:50:40
javaビーンズとやらもマシになったと聞くが

あれはポトペタ?が楽になっただけか?モ?

618 :デフォルトの名無しさん:2008/12/03(水) 00:54:28
>C#は言語仕様をIDEで楽にプログラムできるようにしてあるとか聞くね

この辺りを言語仕様に組み込むのは、MSっぽいし商売を感じる。
VBだけにしてくれってところだけど、そのうちVBもC#もどの言語でも垣根がなくなるんじゃないか?

dot netの機能で、C#では出来るけどJScriptでは出来ないとか言うわけにはいかないだろうし、
そもそも演算子オーバーロードーと同じく言語サポートとしてoperator - ()とするかライブラリでBigInteger.subtractにするかの差でしかないからなぁ。



619 :デフォルトの名無しさん:2008/12/03(水) 01:13:09
ポイ捨てアプリならIDEでハックでいいんじゃないかと思うけど、自作ライブラリはエディタでつくるけどね。
実際継承ばかりだから重複するコードはないし、ちょっと手を加えてsuper.method(arg)とかで、
ほとんどOO的にしか作ってないしな。

テンプレート目的で使うIDEだと、確かにイミュータブルとかstatic void method(), clone()とかの概念を全く理解できないだろうからバカになるってはあるか。
javacとjavadocは非常に優秀だからこれだけで十分だけど・・・

Exceptionとか長いのは、「れ・い・が・い」ではなくて、「えくせぷしょん」と脳内で英語で発音しながらタイプするといいですよw
英会話とか英語に慣れてないと無理でしょうけど。
なれてくると、「あん・さぽーてど・おーぺれいしょん・えくせぷしょん」とリズミカルにタイプするようになるでしょうw

620 :デフォルトの名無しさん:2008/12/03(水) 01:23:53
EclipseとNetBeans両方使ってるけどNetBeansの方が楽だな
軽いし

621 :デフォルトの名無しさん:2008/12/03(水) 01:45:25
プロフ取るのはNBの方が簡単なんで好き

622 :デフォルトの名無しさん:2008/12/03(水) 02:44:48
初心者のおじさんが通ります。

eclipseは良いですな。
初心者には。

実体を意識しなくてもコーディングできると言う意味では
○インスタンスの考え方(メモリとの関係とかポインタとか)が5年たっても身に付かなさそう
○ロジックに集中できる分素人が書いてもある程度動く(といいなぁ)
○して、初心者がプログラムに手をだす、と

いわゆる世紀末ってやつです。世紀末はY2Kをなおざりにしたまま通り過ぎましたがwww

623 :デフォルトの名無しさん:2008/12/03(水) 03:14:07
>実体を意識しなくてもコーディングできると言う意味では

IDEといっても機能は多彩なので、機能ごとに話は変わってくるかと。

コンテンツアシストやリファクタリング支援などについては泥臭い作業は
大いに省いてくれるものの、それほど「実体」から離れることになるとは
思いません。
スタブの自動生成やポトペタについては・・・確かに初心者が無理解の
まま使っていると危ないなと思う光景は、多々あります。

初心者向けで良いと思うのはコードの整形機能です(IDEに限りませんが)。
「一つメソッド書いたらCTRL+SHIFT+F」と指導しておくとオートインデントの
結果からループ構造の間違いなどに気がつくことも多いようです。
結果としてインデントの重要性を理解して、自ら意識してタブを打つように
なるのも早いような気がします。

何れにしても、初心者であれそうでない人であれ、IDEのメリットは

>ロジックに集中できる

ここに尽きる気がします。

624 :デフォルトの名無しさん:2008/12/03(水) 03:31:04
IDE が「何を自動化してくれているか」を
理解しないまま IDE を使うべきではない
とおもう

あと Eclipse vs NetBeans の議論は
ここでしないでくれ


625 :デフォルトの名無しさん:2008/12/03(水) 03:35:24
>>622
蛇足ながら、コンテンツアシスト機能も初心者には良いと思います。

というのも、プログラム勉強したばかりの人がプログラムを書くと
変数名が宣言順にa,b,c,d...だったりする事が良くあります。
その度に「ちゃんと変数の意味を考えて長い名前をつけろ〜」など
指導しますが、「だって長い変数名をタイプするの面倒だし・・・」と
無言の抵抗が返ってくることが、ままあります。

そのような場合でもコンテンツアシストによる変数名補完を覚える
と、長い変数名に対する抵抗感も随分とマシになるようです。

626 :デフォルトの名無しさん:2008/12/03(水) 03:41:03
まあねぇ。

非static を参照できないってIDEに言われて理由を聞くと、
「IDEがだめって言ったから」、じゃねぇ・・・・


627 :デフォルトの名無しさん:2008/12/03(水) 04:19:02
機能てんこもりも困るし、お節介も面倒だし、IDEも玄人と初心者用に分派するんじゃないの?
ただ、エクリプスは実際はプラグインの拡張を使っているだけでエクリプス固有(swtなど)の機能を使っているわけではないし、
もしnetbeansでも使えたら両者の機能的な差はないってことで、一太郎とワードの使用感(UI)でしかない。
netbeansはopenofficeと同じくもう一回ぐらいメジャー・バージョンアップすると最強になるんじゃないかと思う。

628 :デフォルトの名無しさん:2008/12/03(水) 10:30:46
何年経っても中身がわからないまま使ってるなんて余程向上心がないんじゃないの
しかしそんな奴実際見たことねーぞ

629 :577:2008/12/03(水) 10:36:11
ところで六角形の質問をした者ですが、そのreadresolveとやらを使って実際に
ソースを書いてもらえませんか?

630 :デフォルトの名無しさん:2008/12/03(水) 10:56:40
>>629
readResolveが出てきたのは >>579 がレス先間違っただけのような

>>577 の話なら double[] 使わずに int[] 使って
n*sqrt3 の部分を全部 (int)(n * sqrt3) にすれば?

631 :577:2008/12/03(水) 11:00:29
intにキャストすると小数点以下が失われて1になってしまうものかと思ってましたが、違うのですか

632 :デフォルトの名無しさん:2008/12/03(水) 11:19:22
>>631
System.out.println(5 * (int)sqrt3); // -> 5
System.out.println((int)(5 * sqrt3)); // -> 8

633 :デフォルトの名無しさん:2008/12/03(水) 11:21:18
了解です
ありがとう

634 :デフォルトの名無しさん:2008/12/03(水) 12:30:04
細かいところ気にするなら Math.round を使えば良い。

635 :デフォルトの名無しさん:2008/12/03(水) 13:09:01
>>629
この程度の分からないなら六角形を描くとか以前の問題だな。カス

636 :デフォルトの名無しさん:2008/12/03(水) 13:16:10
いや、だから初心者スレに来てるんだろw

ここはプロフェッショナルスレじゃないよw

637 :デフォルトの名無しさん:2008/12/03(水) 13:19:47
自分で調べられないようなカスの相手をするな。スレが荒れる

638 :デフォルトの名無しさん:2008/12/03(水) 13:26:52
>>629
>>630
すまん、レス先間違えた。
579は576へのレスのつもりだった。

639 :577:2008/12/03(水) 13:48:09
他にもっときれいな書き方とかあったら教えて下さい

640 :デフォルトの名無しさん:2008/12/03(水) 14:01:22
チンコなきれいだって?!

641 :デフォルトの名無しさん:2008/12/03(水) 14:20:56
チンカスだなお前は。ウザい消えろ

642 :デフォルトの名無しさん:2008/12/03(水) 14:24:10
カス野郎がチンカスとかほざいてるよw

643 :577:2008/12/03(水) 16:42:40
なんかよくわからないのでとりあえず他の掲示板で聞いて来ます

644 :デフォルトの名無しさん:2008/12/03(水) 16:48:29
Implって何?
どんなクラス?

645 :デフォルトの名無しさん:2008/12/03(水) 16:51:13
盗聴するクラス教えて

646 :デフォルトの名無しさん:2008/12/03(水) 16:57:24
>>644
implementationの略
インターフェイスの既定の実装を提供するクラスに対して
名前を考えるのが面倒な時に○○Implというような名前を付ける

647 :デフォルトの名無しさん:2008/12/03(水) 17:09:27
おれおクラスは学級崩壊すんでんだったぞ。

648 :デフォルトの名無しさん:2008/12/03(水) 17:46:16
このスレ糞だな。初心者のためのスレじゃないのか?
統合環境がどうだの経験者が屁みたいな話したかったら別でやってこい。
ろくなのいねぇなここは。チンカス師ね

649 :デフォルトの名無しさん:2008/12/03(水) 18:25:52
初心者のためのスレではないが、初心者歓迎なスレです。

スレ民はなぜかささくれています

650 :デフォルトの名無しさん:2008/12/03(水) 18:52:42
>>648
チンカスはおまえ。ageんな
鼻糞ww

651 :デフォルトの名無しさん:2008/12/03(水) 19:07:59
喧嘩すんな馬鹿ども

652 :デフォルトの名無しさん:2008/12/03(水) 19:20:28
鼻糞が泣いちゃうだろ。まだジャヴァ初心者なんだからさw

653 :デフォルトの名無しさん:2008/12/03(水) 20:53:36
>>639
Path2D path = new Path2D.Double();
path.moveTo(xPoints[0], yPoints[0]);
for(int i=1; i<nPoints; i++) { path.lineTo(xPoints[i], yPoints[i]); }
path.closePath();

Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.draw(path);

654 :デフォルトの名無しさん:2008/12/03(水) 21:53:18
基本的には >>577 で良いと思うけど,応用性とか考えたら

final int nPoints=6;
final float radius=20,cx=2*radius,cy=2*radius;
int [] xPoints = new int [nPoints];
int [] yPoints = new int [nPoints];
for(int j=0; j<nPoints ; ++j){
xPoints[j] = (int)Math.round(cx+radius*Math.cos(2*Math.PI*j/nPoints));
yPoints[j] = (int)Math.round(cy+radius*Math.sin(2*Math.PI*j/nPoints));
}
g.drawPolygon(xPoints, yPoints, nPoints);

と書くかな。人によるだろうけど。



655 :デフォルトの名無しさん:2008/12/03(水) 23:17:00
java.lang.Stringを拡張したしたクラスを作りたいのですが、どのように実装すればよいでしょうか?

656 :デフォルトの名無しさん:2008/12/03(水) 23:21:56
できない
Stringは「変更できない文字列」以上でも以下でもないんだから,
class StringUtil {
 public static String Hoge(String str) { /*strをなんかいじくって返す*/ }
 public static String Foo(String str, int arg) { /*strをなんかいじくって返す*/ }
 …
}
こういうクラスを作っとけば同じことでしょ?

657 :デフォルトの名無しさん:2008/12/04(木) 00:14:07
Effective C++とかでも強調されてるけど、継承考えるなら
単にメンバーにする事とどちらが良いか考えなきゃいかん。
多くの場合メンバーの方がまともな答。


658 :デフォルトの名無しさん:2008/12/04(木) 00:27:42
Stringの中身を一切変更できないようにすると何かと扱いやすいから,
それを保障するために継承を禁止してるの

659 :デフォルトの名無しさん:2008/12/04(木) 03:11:22
まんこの実装の仕方を知っているのだがどうすればいい?

660 :デフォルトの名無しさん:2008/12/04(木) 03:30:55
いや、つまんないから

661 :デフォルトの名無しさん:2008/12/04(木) 03:42:04
おまえらバカども寝ろ。明日会社だろ。暇人か?

662 :デフォルトの名無しさん:2008/12/04(木) 04:09:29
なんだこいつ?

663 :デフォルトの名無しさん:2008/12/04(木) 05:45:24
MacOSX1.5環境での質問です。
下記のような実行時エラーが出たのでlibj3dcore-ogl.soが読めないのかと思い、
LD_LIBRARY_PATHやjava.library.pathに.soファイルを含むディレクトリへのパスを追加したり、
カレントディレクトリに.soファイルのリンクを作成したりしてみましたが
一向に改善しません。

他に疑うべきポイントやなすべき操作はございませんでしょうか

--- ここからエラー出力

java.lang.reflect.InvocationTargetException
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
 at com.imakitaindustory.ui.util.ImakitaPluginLoader.createPlugin(ImakitaPluginLoader.java:80)
 at com.imakitaindustory.ui.ImakitaUI.main(ImakitaUI.java:34)

Caused by: java.lang.UnsatisfiedLinkError: no j3dcore-ogl in java.library.path
 at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1753)
 at java.lang.Runtime.loadLibrary0(Runtime.java:822)
 at java.lang.System.loadLibrary(System.java:993)
 at javax.media.j3d.MasterControl$5.run(MasterControl.java:838)
 at java.security.AccessController.doPrivileged(Native Method)
 at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:821)
 at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:252)
 at javax.media.j3d.Canvas3D.<clinit>(Canvas3D.java:3884)
 at com.imakitaindustory.ui.view.Imakita3DView.<init>(Imakita3DView.java:152)
... 11 more

664 :デフォルトの名無しさん:2008/12/04(木) 11:19:35
Mac は .so じゃなくて .jnilib だと思うけど

665 :デフォルトの名無しさん:2008/12/04(木) 13:38:42
質問させてください
bmp形式の画像を読み込んで、ピクセル毎のRGBの値を表示させたいのですが、どのクラスを使えばできますか?


666 :デフォルトの名無しさん:2008/12/04(木) 14:19:54
>>665
javax.imageio.ImageIO と java.awt.image.BufferedImage

667 :デフォルトの名無しさん:2008/12/04(木) 14:22:08
JavaからJRubyの呼び出しを行っているのですが、
オプションを指定して実行する方法がわかりません。
Fiberクラスを使うために--1.9オプションを指定する方法が知りたいです。

Fiberの機能を利用できればいいので、他の方法でもご教授ください。

668 :デフォルトの名無しさん:2008/12/04(木) 14:30:27
>>666さん
ありがとうございます!試してみます

669 :デフォルトの名無しさん:2008/12/04(木) 16:02:38
将棋倶楽部24でよく将棋を指すんですが
ちょっと前にjava更新があったのでしたところ
対局画面の右上に!←こんなのがずっとついてきます
前はこんなのなかったのに
やってない人には全く分からないと思いますので
気長に待つつもりです
誰かおね!


670 :デフォルトの名無しさん:2008/12/04(木) 16:42:16
>>669
> プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
板の注意書きくらい嫁

671 :デフォルトの名無しさん:2008/12/04(木) 18:07:40
Java6 update10 から
アプレットがポップアップしたウィンドウに
!マークが付くようになった。
以前はウィンドウの下部に
「警告:アプレットウィンドウ」とか付いてたけど。

>> 669
気にしないで大丈夫です。
「これは Java によって表示されたウィンドウです」
という注意書きのようなものです。


672 :663:2008/12/04(木) 20:22:26
>664
ありがと何が悪かったかようやくわかった!

673 :デフォルトの名無しさん:2008/12/04(木) 21:32:50
 
【サンタクロース、トナカイの酒気帯び運用罪での逮捕に、マジ逆切れw】(ZDNet)
http://builder.japan.zdnet.com/story_media/20384793/081204_sun-james-gosling_02_400x300.jpg



674 :デフォルトの名無しさん:2008/12/04(木) 21:37:38
マルチすんなカス

675 :デフォルトの名無しさん:2008/12/04(木) 22:11:21
 
【サンタクロース、トナカイの酒気帯び運用で逮捕。有罪判決に、マジ逆切れ&大暴れw(動画有り)】(ZDNet)
http://builder.japan.zdnet.com/story_media/20384793/081204_sun-james-gosling_03_400x300.jpg
http://builder.japan.zdnet.com/story_media/20384793/081204_sun-james-gosling_01_400x300.jpg
http://builder.japan.zdnet.com/story_media/20384793/081204_sun-james-gosling_02_400x300.jpg


676 :デフォルトの名無しさん:2008/12/04(木) 22:16:43
ゴズリン大先生だってムカムカじゃないか!おまえが無能だからだろ。

677 :デフォルトの名無しさん:2008/12/04(木) 23:47:48
無限大の扱いについて質問があります。

A=1/a;
if(A>3){
A=3;
}

という文で、aが0に近い値の場合、AがInfintyになってしまいます。
そして、Aが数字であるということが読み込まれずに、
下のif文が読み込まれないようなのです。
無限大の値と自然数を比べるよい方法はなにかないでしょうか?
よろしくおねがいします。

678 :デフォルトの名無しさん:2008/12/05(金) 00:05:37
POSITIVE_INFINITYはMAX_VALUEより値は大きいから問題ないと思うけど。
Double.Nanになってるとかじゃないの?Double.isNan(A)でtureを返せばそう。

679 :デフォルトの名無しさん:2008/12/05(金) 00:30:55
成る程
明日試してみます。
ありがとうございました。

680 :デフォルトの名無しさん:2008/12/05(金) 12:03:55
実はaは、0に近いマイナスの値で、マイナス無限大になってるとか・・・

681 :デフォルトの名無しさん:2008/12/05(金) 16:18:18
age

682 :デフォルトの名無しさん:2008/12/06(土) 10:33:54
Javaのコンパイラの無料ダウンロードってどうすればできますか?
一番有名なのが停止期間?か何かで…。
あとダウンロードしても英語ばっかで何すればいいのかわからないんですが(笑)

683 :デフォルトの名無しさん:2008/12/06(土) 10:41:18
よくそれでプログラムやろうと思うな
テンプレ読め

684 :デフォルトの名無しさん:2008/12/06(土) 10:43:10
やりたくはないんですけど課題として出されてるので・・・。
学校にはコンパイラあるんですけど家でもやらないと追いつかないんですよ。
そういうわけでものすごい勢いで初心者です。
小学生に2次関数やれって言われてるくらいの感じです

685 :デフォルトの名無しさん:2008/12/06(土) 10:53:07
>>684
ほい
http://services.netbeans.org/bouncer/index.php?product=netbeans-6.5-javase&os=windows

686 :デフォルトの名無しさん:2008/12/06(土) 11:09:56
>>685
ありがとうございます。
進めていくとJDKがどうのこうの…と言われて進めないのですが
JDKというのをダウンロードしようとしてもうまくいきません。
どうすればいいでしょうか?

687 :デフォルトの名無しさん:2008/12/06(土) 12:26:50
よく釣られるスレだな

688 :デフォルトの名無しさん:2008/12/06(土) 12:34:18
IBMのJREダウンロードってわっかり難いよね。
特定のバージョンのJREダウンロード見つけるのに
えらい苦労した記憶が

689 :デフォルトの名無しさん:2008/12/06(土) 16:57:49
>>684
小学生で2次関数やってる奴なんか掃いて捨てるほどいるぞ

690 :デフォルトの名無しさん:2008/12/06(土) 17:49:32
>>684
>小学生に2次関数やれって言われてるくらいの感じです

つ 公文式

その気になれば小学生だってラプラス変換。


そうか。公文でJavaの教材を作れば良いんだ。

691 :デフォルトの名無しさん:2008/12/06(土) 18:09:03
netbeansは所々日本語みたいなんですけど、日本語版とか日本語化とかはないんですか?
エクリプスよりもかなりいい感じなんですけど。

692 :デフォルトの名無しさん:2008/12/06(土) 18:14:19
>>689
だから、
無茶ってほどじゃないけど難しいことやらされてる
っていうくらいの例えじゃないのか


693 :名無し:2008/12/06(土) 18:20:19
問題 au携帯電話の「ダブル定額ライト」プランの税込料金を計算するプログラムを作成しなさい。
動作は以下のとおり。
(1)自分の学生書番号と氏名の表示
(2)利用パケット数(整数)を入力
(3)利用パケット数が0以上である場合は、税込料金(整数)を表示
(4)利用パケット数が負である場合は、エラーメッセージを表示。
補足 
@定額1わずか1000円/月(税込1050円)、12500パケットまで
A使った分だけ1000円/月(税込1050円)+超過分、12500パケット超〜52500パケット未満、0.08円/パッケト(税込0.084円)
B定額2最大4200円/月(税込4410円)で使い放題、52500パケット以上4200円/月(税込4410円)

パケット数が@5000A12500B35000C52500D8000E-1000のそれぞれの場合について実行させなさい。
難しすぎて困ってます。とける方いましたらお願いします。


694 :デフォルトの名無しさん:2008/12/06(土) 18:27:16
どこが難しいんだよw

695 :デフォルトの名無しさん:2008/12/06(土) 18:30:23
auに問い合わせろ

696 :デフォルトの名無しさん:2008/12/06(土) 18:33:29
すれ違い

697 :デフォルトの名無しさん:2008/12/06(土) 18:41:01
最初から考えることを放棄しているとしか思えない
これがゆとり教育というものか

698 :名無し:2008/12/06(土) 19:04:57
すいません。ほんとに馬鹿でソースコーがまったくわからないんです。

699 :デフォルトの名無しさん:2008/12/06(土) 19:22:41
Cの方が頭弱い人にも分かりやすく書いてある本が多いからC/C++からやった方が早く身につくよ。

700 :デフォルトの名無しさん:2008/12/06(土) 20:00:07
>>698
馬鹿だからわからないんじゃない。
ちゃんと手順を踏んで、時間と労力を注いで勉強していないから
わからないの。あえて言えば、怠け者だから。

701 :デフォルトの名無しさん:2008/12/06(土) 20:08:30
>>698
てか、こういう奴っていったい何をしたいんだろ?

702 :デフォルトの名無しさん:2008/12/06(土) 21:49:10
>>698
ここは初心者歓迎スレなんであって、馬鹿はお呼びでない

帰れ

703 :デフォルトの名無しさん:2008/12/06(土) 22:26:59
この問題だったら ruby みたいなスクリプト系言語か
mathematica/maple/maxima/matlab みたいなもんの方が
Java より楽だなぁ…

GUI 必要だともうちょっと何か使うが。


704 :デフォルトの名無しさん:2008/12/06(土) 22:53:04
javaでファイルを起動するにはどうすればいいでしょうか?
コマンドプロンプトが使えればそれでもおkです。
よろしくお願いします。

705 :デフォルトの名無しさん:2008/12/06(土) 23:18:49
System.out.print("あさげ!"+"\t");
この\tって如何言う意味ですか?


706 :デフォルトの名無しさん:2008/12/06(土) 23:19:45
タブ

707 :デフォルトの名無しさん:2008/12/06(土) 23:26:23
>>704
質問の意味がわからない。
実行ファイルをコマンドライン指定で実行したいということ?


708 :デフォルトの名無しさん:2008/12/06(土) 23:33:38
javaアプリを起動なのか、
javaからwinアプリを起動したいのか、
javaから別アプリでファイルを開きたいのか。

どれだー

709 :デフォルトの名無しさん:2008/12/06(土) 23:35:09
>>706
Sunx!


710 :デフォルトの名無しさん:2008/12/06(土) 23:35:54
結局はテキストファイルをメモ帳等のソフトで開きたいだけです。


711 :デフォルトの名無しさん:2008/12/06(土) 23:40:26
ググればわかるレベル多すぎ

712 :デフォルトの名無しさん:2008/12/06(土) 23:45:44
http://d.hatena.ne.jp/nacookan/20071128/1196237341

713 :デフォルトの名無しさん:2008/12/06(土) 23:55:34
目的の為の手段で悩み続け、肝心な目的を忘れる

714 :デフォルトの名無しさん:2008/12/07(日) 00:06:01
そのバカに釣られるおまえはもっとバカw

715 :デフォルトの名無しさん:2008/12/07(日) 00:12:09
帯グラフを描くためにはどうやってプログラムすればいいんでしょうか?

716 :デフォルトの名無しさん:2008/12/07(日) 00:21:10
>>715
まずはJavaの本買って勉強する

717 :デフォルトの名無しさん:2008/12/07(日) 00:29:32
買ってグラフィックスまで勉強したのですが、帯グラフとかデータの割合を反映させたり
少し複雑になると頭真っ白になってしまいます・・・。

718 :デフォルトの名無しさん:2008/12/07(日) 00:33:17
たぶんプログラミングにむいていないから諦める

719 :デフォルトの名無しさん:2008/12/07(日) 00:43:17
それがいい。

720 :デフォルトの名無しさん:2008/12/07(日) 01:29:40
>>717
どこがわからないのか落ち着いて考えた方が良い。
他のプログラミングができてグラフが描けないなら
むしろ算数の勉強不足の可能性大。

721 :デフォルトの名無しさん:2008/12/07(日) 02:05:35
>>715,717
A:25 B:15 C:10というデータがあって、横幅200pxで帯グラフを描くとする。

まず、データの値を全部足して(25+15+10=50)、その結果で一つ一つのデータを割る(25/50=0.5、15/50=0.3、10/50=0.2)
帯グラフの横幅をその結果にそれぞれかける(0.5x200=100、0.3x200=60、0.2x200=40)。
これでそれぞれのデータの横幅が求まったので、描く。AとかBとかのラベルも適当に重ねて描く。

これを日本語からJavaに翻訳する。

722 :デフォルトの名無しさん:2008/12/07(日) 03:08:47
system.in.readlnってなんでないんですか?

723 :デフォルトの名無しさん:2008/12/07(日) 03:18:06
行列計算をしたくてJAMAを導入したのですが
例えば
A{1,2,3}
{2,0,2}
{0,0,1}

B{0,1,0}
{1,0,0}
{0,0,1}

というようなA,B二つの3×3行列のA×Bを求めたい場合はどのように書けばいいのでしょうか?
また、計算後の行列を配列変数に代入したり、文字列として出力する場合にはどうすればいいのでしょうか?

724 :デフォルトの名無しさん:2008/12/07(日) 03:49:39
使ったことないけど回答。
掛け算はtimesメソッド。
//Matrix times(Matrix B)
// Linear algebraic matrix multiplication, A * B
http://math.nist.gov/javanumerics/jama/のExample of Useに思いっきり乗ってる。

代入はgetで拾いつつforループまわせばいんじゃね?

725 :デフォルトの名無しさん:2008/12/07(日) 03:53:10
Example of Use. The following simple example solves a 3x3 linear system Ax=b and computes the
norm of the residual.

double[][] array = {{1.,2.,3},{4.,5.,6.},{7.,8.,10.}};
Matrix A = new Matrix(array);
Matrix b = Matrix.random(3,1);
Matrix x = A.solve(b);
Matrix Residual = A.times(x).minus(b);
double rnorm = Residual.normInf();


726 :デフォルトの名無しさん:2008/12/07(日) 03:53:29
>>722
オブジェクト指向分析的に、「システム」が行の入力を持つとは考えにくいから。
やっぱ行の入力は文字の入力ストリーム全般に対して持つべきで、
ファイルとシステム、さらにGUIとか文字列ストリームで別々に行の入力を実装するのは……

727 :デフォルトの名無しさん:2008/12/07(日) 04:06:05
オブジェクト指向分析的にいえば改行コード(\n)を特定できないため、readLineを実装しても挙動が異なる。

728 :デフォルトの名無しさん:2008/12/07(日) 04:13:29
したがって、System.out.println はオブジェクト指向分析的にウソっぱちです。
こんな似非オブジェクト指向言語は捨ててしまいましょう。

729 :デフォルトの名無しさん:2008/12/07(日) 05:25:19
じゃ何がいいんですか

730 :デフォルトの名無しさん:2008/12/07(日) 06:30:17
>>728
ジャバはオブジェクト指向言語なので捨ててしまっていいのはおまえの財布の中身です。

731 :デフォルトの名無しさん:2008/12/07(日) 08:54:52
BufferedImage[][]の画像を合わせて一つのBufferedImageにしたいんですけど
どうすればいいでしょうか?

732 :デフォルトの名無しさん:2008/12/07(日) 08:56:49
どうもできません。

733 :デフォルトの名無しさん:2008/12/07(日) 09:14:41
ラッパークラスについて教えてください。
new Integer(10)というのを見て、
Integerクラスにはint型のフィールドがあるのかと思ったのですが、
APIを見てもどこにもそんなフィールどは無いようです。
int型の値10はどこに保持されているのでしょうか?
本を見てもボクシング、アンボクシングとは何かしか書いてありません。

734 :デフォルトの名無しさん:2008/12/07(日) 09:15:13
マップエディタでチップを2次元配列に入れていって最後に
大きい画像として出力したかったんですけど無理ですか…

735 :デフォルトの名無しさん:2008/12/07(日) 09:19:26
何をしたいのか意味不明です。

736 :デフォルトの名無しさん:2008/12/07(日) 09:48:46
16進数の文字列をbmp形式の画像で出力するのに適したクラス、メソッドはどんなものがありますか?

737 :デフォルトの名無しさん:2008/12/07(日) 09:57:58
16進数の文字列

738 :デフォルトの名無しさん:2008/12/07(日) 09:58:34
Color#decode()
BufferedImage →簡単なのはsetRGB(),ある程度画像知ってるならgetRasterでWritableRasterにかきこむ
ImageIO.write()

739 :デフォルトの名無しさん:2008/12/07(日) 10:12:38
Java SwingでJButton押下時に、Javaのファイルを
読み込んで、そっちのJFrameを表示させたいのですが
どうすればいいですか?


740 :デフォルトの名無しさん:2008/12/07(日) 10:32:14
少し難しい質問なんですが、str.intern()したインスタンスもやはりgcされるんでしょうか?

741 :デフォルトの名無しさん:2008/12/07(日) 11:04:29
>>733
よくわからないけど、int 型で取り出せるじゃない。
それとも実際の装備の問題?装備は標準決まってない限りは
どうなってるかは保証されてないのでは。


742 :デフォルトの名無しさん:2008/12/07(日) 12:17:57
なんなんだ、この最近の流れは?

期末の課題があちこちで出たって事か?

743 :デフォルトの名無しさん:2008/12/07(日) 12:19:58
>>734
無理じゃないよ。
そこまで専門用語が出せるなら、もう少し考えれば出来る。

744 :デフォルトの名無しさん:2008/12/07(日) 12:50:21
>>733
あるよ
ただしドキュメントに private フィールドは記載されない

745 :デフォルトの名無しさん:2008/12/07(日) 12:53:07
>>739
JButton押下時にjavaのソースファイルをコンパイルしたいという意味か?

746 :デフォルトの名無しさん:2008/12/07(日) 14:55:19
>>739
ここに来るぐらいだから、AFrameのボタンのActionListenerで
BFrame作って表示するだけなんじゃないの

747 :デフォルトの名無しさん:2008/12/07(日) 15:34:48
>>734
でっかいBufferdImageを作って、そこにチップをDrawImageしましょう

748 :デフォルトの名無しさん:2008/12/07(日) 15:36:40
コンパイルしようとすると、
'javac'は内部コマンドまたはガイブコマンド、操作可能なプログラムまたはバッチファイルとして認識されてません
って出てきます。環境変数もCLASSPATHに設定したのに・・・どうしたらいいでしょうか?

749 :デフォルトの名無しさん:2008/12/07(日) 15:38:03
すみません!!1を今見ました!!失礼しました

750 :デフォルトの名無しさん:2008/12/07(日) 17:52:30
Formatter を使った書式で、
整数であれば小数点以下を出力しない、
という書き方はありますでしょうか。

たとえば System.out.printf(t, d) で
(d == 3.1) のとき "3.1"
(d == 3.0) のとき "3"
と出力するような t の書き方はありますか。


751 :デフォルトの名無しさん:2008/12/07(日) 17:56:14
if文とかで条件指定するんじゃだめなの?

752 :デフォルトの名無しさん:2008/12/07(日) 18:11:07
できれば書式文字列のみで解決できた方が
いろいろ便利かと思いまして。
「そんな書き方はない」のであれば
しかたないので分岐などを使うつもりですが。


753 :超初心者:2008/12/07(日) 18:56:15
12月からIT企業に未経験で就職しました。今、javaの勉強を独習しております。
クラスの問題を解いているのですが、参考書を参考に解る範囲でコーディングしていますが
なかなか上手くいきません。実は1日悩んで解りませんでした。
超初心者なので少し噛み砕いて説明して頂ける方、教えてください。

問題文はこうです。
『commonパッケージにjava.util.propertiesを継承して、コンストラクタ内で
ディレクトリにあるプロパティファイルをロードするConstantPropertiesクラス
を作成しなさい。』というものです。

私の理解出来ている範囲で未完成ですがプログラムを作ってみました。
見当違いでしょうけど、宜しくお願いします。

package common;
import java.io.*;
public class ConstantProperties extends java.util.Properties
{
InputStream inStream = null;
public static ConstantProperties() throws IOException
{
Properties properties = new ConstantProperties();
try{
inStream = new BufferedInputStream(new FileSteream("property.file"));
properties.load(inSteram);
if (inStream == null)
{
throw new IOException();
}
String value = Properties.getProperties("key");
}
以下、例外処理。

754 :デフォルトの名無しさん:2008/12/07(日) 19:04:15
その会社の怖い先輩に聞けよ

755 :デフォルトの名無しさん:2008/12/07(日) 19:21:00
>>752
Formatterだかなんだかのクラスを使う

756 :デフォルトの名無しさん:2008/12/07(日) 19:29:17
>>753
あなたの理解できる範囲で書いたというプログラムなら
自分が書いたプログラムが何をしようとしてるかぐらい分かるよね?
それを噛み砕いて教えてくださいって話が意味不明なのですが・・
例えば以下のような処理なんかは、こうしたいって意図がないと書けないと思うのですが
new BufferedInputStream(new FileSteream("property.file"));


757 :デフォルトの名無しさん:2008/12/07(日) 20:10:48
Serializableは配列も直列化するのは分かりましたが、Object[]の中身も自動で直列化するんですか?
class My1 implements Serializable
{
Object[] f1;
Serializable[] f2;
}

f1, f2 の配列の中身のオブジェクトは両者ともwriteObjectを書かなくても自動で直列化(デープコピー)されるんでしょうか。

758 :超初心者:2008/12/07(日) 21:19:37
>>756
もちろんnew BufferedInputStream(new FileSteream("property.file"));は何をしているか分かりますよ。
問題に対しての解答プログラムになっていないのが分からないという事なんですよ。
自分でこういうの書いてみましたという事です。

759 :デフォルトの名無しさん:2008/12/07(日) 21:25:29
>>758
そもそも問題の意味わかってんの?

760 :デフォルトの名無しさん:2008/12/07(日) 21:28:00
>>757
はい
中身のオブジェクトがすべてSerializableを実装していればですが

761 :デフォルトの名無しさん:2008/12/07(日) 21:50:22
>>753
解りませんでした、というのは、どの点が解らないのか
教えてください、というのは、どの点について教えてほしいのか
パッケージ?
継承?
コンストラクタ?
何を答えて欲しいのか我々はどうすればいいのか質問内容は具体的に

あと、せめてコンパイルの通るコードを
コンパイルエラーが解決できないという話なら、そのエラーメッセージを
書き間違いや下手な省略は解決を難しくするから、
ソースコードやエラーメッセージはなるべく丸ごとコピペするべき

もう全部丸投げするからずばり答えを下さいという話なら宿題スレへ

762 :デフォルトの名無しさん:2008/12/07(日) 22:08:55
Object[] f1; なんですが、各要素インスタンスがSerializable実装してないときは例外発生で知らせてくれるんでしょうか?


763 :デフォルトの名無しさん:2008/12/07(日) 22:43:23
>>755
質問文に Formatter を使うって書いてあるんだけど


764 :デフォルトの名無しさん:2008/12/07(日) 22:51:15
>>726-728
やっぱり理由があるんですね

答えてくれてありがとうございました

765 :デフォルトの名無しさん:2008/12/08(月) 02:56:46
>>764
出力の場合は、原理的にバッファなしで改行までそのまま吐き出せるけど
入力の場合は、バッファを用意して改行が来るまで待たなくてはならない。
似てるようで必要とされるものが異なる。

766 :デフォルトの名無しさん:2008/12/08(月) 03:03:41
>>761
宿題じゃないんだから丸投げだからって宿題スレに誘導すんなよwww

767 :デフォルトの名無しさん:2008/12/08(月) 03:25:32
>>753
継承とはどういうものか、継承するとなにがどうなるのか。
コンストラクタをどう書くのかさえ分かってない。
未経験で入社してまだ一週間なら、こんな質問もまだ許されるだろ。
今のうちに社内の先輩なり同僚なりにガンガン聞いとけ。
そんな余裕も無いような社なら、今後もやってけないだろう。

768 :デフォルトの名無しさん:2008/12/08(月) 12:12:36
質問です。
JToolBarで作ったツールバーの中身の配置を決めたいときにはどうしたらいいんでしょうか。
検索してもツールバー自体をどこにおくかというものしかでてきませんでした。
ツールバーはEastに配置する予定です。

769 :デフォルトの名無しさん:2008/12/08(月) 14:54:55
配置って具体的には? レイアウトマネージャ変えないことにはあんまり大胆な変更は加えられないよ

770 :デフォルトの名無しさん:2008/12/08(月) 15:45:04
768です。
すいません自己解決?しました。ツールバー使わなくてもよくなりました。
申し訳ありません。

771 :デフォルトの名無しさん:2008/12/08(月) 16:47:54
>>733
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Integer.html

public final class Integer
 extends Number
  implements Comparable<Integer>

Integer クラスは、プリミティブ型 int の値をオブジェクトにラップします。Integer 型のオブジェクトには、型が int の単一フィールドが含まれます。


>APIを見てもどこにもそんなフィールどは無いようです。
本気ですか?

772 :デフォルトの名無しさん:2008/12/08(月) 19:28:32
goo辞書のようなWeb上の辞書で一度に複数の単語を引くプログラムを
作りたいのですが、糸口がつかめません。

特定のURLにアクセス→単語検索→単語の説明のみ抽出

のように処理したいのですが、何か参考になるサイト、文献がございましたら
教えてください。

773 :デフォルトの名無しさん:2008/12/08(月) 19:40:13
eclipseでpackageする場合はファイルを格納したpackage名と宣言したpackageが一致していないと駄目なんすかね?

774 :デフォルトの名無しさん:2008/12/08(月) 20:09:01
JAVAで全ての文字を半角から全角に変換させるにはどうすればいいんですか??

775 :デフォルトの名無しさん:2008/12/08(月) 20:20:41
>>772
ParserDelegatorを使うサンプルとか

776 :デフォルトの名無しさん:2008/12/08(月) 20:30:27
>>774
char型にして区間でマッピングしてやったら?

777 :デフォルトの名無しさん:2008/12/08(月) 20:56:25
Javaは配列辺りまで理解して今はクラスの基礎を勉強してる俺が
SJC-A受けてみようと思う。
今日、Amazonで参考書買った、
Sun教科書とか言うドッチカト言うと青本では無く紫本と
徹底攻略とか言う通称黒本の二冊をお急ぎ便で頼んだ。



受かると思いますか?…

778 :デフォルトの名無しさん:2008/12/08(月) 21:06:01
マルチすんな

779 :デフォルトの名無しさん:2008/12/08(月) 21:27:50
>>777
おまえみたいな奴はもし受かっても会社では通用しないな。rubyにしとけw

780 :デフォルトの名無しさん:2008/12/08(月) 21:34:23
>>779
おまえさ〜。資格ってのは、もってりゃいいってもんじゃないんだよ。
Javaの資格は結構そういっても深い知識が必要な部分もでてくるんだよ。

問題は、そこんところちゃんと理解して一応Javaプログラムの基本は知ってマスっていえることが大事なんだよ。
そんくらいの力があれば資格もいらんし、面接の時に役立つくらいなんだよ。

まず、結論から言って配列まで理解っていう程度じゃ100%受からん。おまけに、受験料が無駄だからやめときな。
それより、地道にちゃんとした力をつけることをお勧めする。

781 :デフォルトの名無しさん:2008/12/08(月) 21:44:32
意味不明

782 :デフォルトの名無しさん:2008/12/08(月) 21:50:46
いや、そこは笑うところだろ?

783 :デフォルトの名無しさん:2008/12/08(月) 22:02:38
資格持ってるからといって期待させといて、実際に仕事任せて出来なかったら逆にうらまれるだけだしな・・・
それよか、英語の文献読むことが多いだろうしtoeic受けたほうがいいよw

784 :デフォルトの名無しさん:2008/12/08(月) 22:04:12
マイクロスフとWORDマスター(ゴールド)持ってますよっ!!!って言われても、つい笑っちゃうのは俺だけじゃないはず!

785 :デフォルトの名無しさん:2008/12/08(月) 22:11:07
PCに接続しているデバイス(加速度センサ)からUDP通信で取得しているデータを
リアルタイムにグラフ化したいのですが、javaでそのようなことは可能なのでしょうか?
※イメージとしては、心電図のようなロールする感じのグラフです。
java初めて間もないので、教えていただけるとありがたいです。


786 :デフォルトの名無しさん:2008/12/08(月) 22:24:03
できません。

787 :デフォルトの名無しさん:2008/12/08(月) 22:34:45
>>785
awtとかアプレットレベルだけど、コンピュータを使って関数グラフを描くって事がわかってないと難しいんじゃない?
グラフ化したいのが目的ならjavaではなく他の専用アプリを使う。

788 :デフォルトの名無しさん:2008/12/08(月) 22:45:15
どなたか Java のお仕事くらはい…。

789 :デフォルトの名無しさん:2008/12/08(月) 22:49:12
とにかくさ〜>>777に受かるか受からないか
受かるとしたらどの位か答えてあげてよ

790 :デフォルトの名無しさん:2008/12/08(月) 22:52:13
>>785
OpenGLがいいんじゃない?

791 :デフォルトの名無しさん:2008/12/08(月) 22:54:30
Aは受けたことないからわかんね

http://suned.sun.co.jp/JPN/certification/sjcaobj.html

主な出題範囲を見る感じ100%受からないとおもた

792 :デフォルトの名無しさん:2008/12/08(月) 23:03:25
>>788
最近javaでゲームの環境(描画とかハード的な対応)が整ってきたから
ヒマならjava2dの勉強がてらゲームとかパズル作ってみるといいよ。
3dは高校程度になるけど、2dとかアニメーションなら中学程度(せいぜい連立方程式と2次方程式程度)でおk

793 :デフォルトの名無しさん:2008/12/08(月) 23:11:50
仕事だって言ってるだろうが
勉強がてらに作られたゲームをお前買ってくれんのか?

794 :デフォルトの名無しさん:2008/12/08(月) 23:13:17
だめだなぁ

795 :デフォルトの名無しさん:2008/12/08(月) 23:22:51
こんなスレで仕事を募集する人間のつくったモノなんて、誰も買おうとは思わない

796 :デフォルトの名無しさん:2008/12/08(月) 23:33:32
>>793
おまえに仕事を頼んだら何されるか分かったもんじゃないなw
もしおまえのバグで顧客が押しかけてきたら、ちゃんと責任とってくれるんだろうな?

797 :デフォルトの名無しさん:2008/12/08(月) 23:35:25
>>793
おまえ、なんか調子乗ってるだろ。もうこのスレ来ないでくれないか?おまえみたいのが一番迷惑なんだよ

798 :デフォルトの名無しさん:2008/12/08(月) 23:41:30
早いところオッサンは引退した方がいいかもなw

799 :デフォルトの名無しさん:2008/12/08(月) 23:47:31
>>793
おまえ、>>777の質問に答えてやれよ

800 :デフォルトの名無しさん:2008/12/08(月) 23:49:10
自演もいらんなw
はよ消えろww

801 :デフォルトの名無しさん:2008/12/08(月) 23:52:48
>>788
そういえば、ポトペタ開発はどうしたんですか?

802 :デフォルトの名無しさん:2008/12/08(月) 23:55:21
資格とか持ってる奴の方が実際は役に立たないのがおおいよね。

803 :デフォルトの名無しさん:2008/12/09(火) 00:00:59
数えたことが無いので知らん

804 :デフォルトの名無しさん:2008/12/09(火) 00:01:47
テストは満点、適応能力は0点なんて昔からいるだろ。

805 :デフォルトの名無しさん:2008/12/09(火) 00:08:43
>>786
そうですか…残念です。
>>787
なるほど、他当たってみます。
>>790
聞いたことはありますね。調べてみます。

↑返信ありがとうございました。
また、java関係で疑問質問等出ましたら書き込むので
そのときはよろしくお願いします。


806 :デフォルトの名無しさん:2008/12/09(火) 00:08:52
>>793は、テストは0点、協調性0点ってことですかw

807 :デフォルトの名無しさん:2008/12/09(火) 00:11:16
javaの本でどこでも読めるような小さいサイズの
リファレンスみたいなのありませんか?
入門の次くらいに読む本ならなんでもおkです。

808 :デフォルトの名無しさん:2008/12/09(火) 00:23:11
First Head Javaだっけ?あれは?

809 :デフォルトの名無しさん:2008/12/09(火) 00:26:22
>>806
どうせ古い知識とか昔の小技とかこだわってるオッサンだろw
もう化石だしほっといていいんじゃね?

810 :デフォルトの名無しさん:2008/12/09(火) 00:38:01
森田スクロールは今のコンシューマ開発でも使われている。
とか言ってみるw

811 :デフォルトの名無しさん:2008/12/09(火) 03:16:04
>>805
その様子だと、何か書き込むならもっとjavaのことを勉強してからの方がいいですよ。

812 :デフォルトの名無しさん:2008/12/09(火) 10:10:36
プログラミングの資格を誇示するやつってろくなやついないから、 >>777 には受かって欲しいなぁ。

813 :デフォルトの名無しさん:2008/12/09(火) 10:40:00
古い情報ニ種を持ってて古い一種に英語が分からずに落ちて他何も持ってない俺でも
ボソボソとだがやってけるんだから、資格なんて…資格なんてっ!

でも資格もってると実際には使えんヤツでも手当て出たりするんだよな…もったいねぇ。

814 :デフォルトの名無しさん:2008/12/09(火) 10:49:00
資格というのは手当てのために取るもんだから、持ってるからといって凄腕なわけでない。
トーイックとかもってないと上に上がれない職種も多いでしょ。
警察と同じで一種の昇給試験にちかい。
それよりも仕事もってくる嗅覚(営業)の特技が合った方が先々でやってけるw

815 :デフォルトの名無しさん:2008/12/09(火) 12:34:12
情報二種とか懐かしすぎるだろ、持ってる事忘れてたわ
取得当時はまだ高校生になったばかりだったなあ(遠い目

816 :デフォルトの名無しさん:2008/12/09(火) 12:39:27
資格なんてとって遊んでる暇があったら、仕事しなさい

817 :デフォルトの名無しさん:2008/12/09(火) 12:45:40
法的に有利にならない資格は取っても無駄

818 :デフォルトの名無しさん:2008/12/09(火) 13:24:01
質問です。
スクリプトとか訳ワカメなんですが
オンラインゲームのFEZで出てる
エガクロックのブログに張り付けたりするパーツを
G15SゲーミングキーボードのLCD画面に入れたいんですが
見てもらえば分かるかもですがエガチャンの動画?ムービー系も出てて
入れるのにはそれをなくさないといけません。
LCDスタジオつかって読み込ませようとしたんですが無理でした
一応スクリプト?みたいなのは貼っておきます
カテ違いの場合は言ってもらえればすぐ出ますので
お願いします

<script type='text/javascript' src='http://www.fezero.jp/monomousu/clock/egablog.js'></script><script>writeEgaTag('dnxfffQ4owirFR-
MQqWMNH5mDWCzVE4mMxFGmTUOMaRsmtgGH2.fwH4rYRDvJgQiNt.2vLmkJ1BtTmCdHfyKOQQa5w8eBnP
6vAdin0PhS4o_', '', '', '')</script>


819 :デフォルトの名無しさん:2008/12/09(火) 13:45:07
よくは知らんが日本語って日本人にも難しいらしいな

820 :デフォルトの名無しさん:2008/12/09(火) 13:56:21
Java と JavaScript は違うものだと何度言えば

821 :デフォルトの名無しさん:2008/12/09(火) 14:02:37
すんません
Graphics2DオブジェクトにdrawStringメソッドで文字を載せたいのですが、
反映されるのは半角英数だけ、日本語の全角文字(半角カナも)は、ごとごとく無視されます。

たとえば
g2.drawString("abcあいdeうえfおghi",100,100)のようにすると、

アウトプットは
「abcdefghi」
と表示されます。

日本語反映する方法ありましたら教えてください。

822 :デフォルトの名無しさん:2008/12/09(火) 15:06:34
フォントの問題では?
日本語のフォントを指定してみたら?

823 :デフォルトの名無しさん:2008/12/09(火) 16:15:58
>>822
そうでもないようです。

これでやろうとしているのが、iTextによるPDF生成でして。

PdfContentByte型でクリエイトできるGraphics2Dクラスにいろいろ図形などを描画していくことで表示ができる仕組みですが、
drawStringでテキストを置くときだけ、日本語文字が無視されるようです。

特殊な使い方ですが、iTextでの開発経験のある方いらっしゃいませぬか・・・

824 :デフォルトの名無しさん:2008/12/09(火) 17:18:52
俺SUGEEE人気だwwww
よく釣れたwwwwwwww

825 :デフォルトの名無しさん:2008/12/09(火) 17:20:16
ごばく

826 :デフォルトの名無しさん:2008/12/09(火) 17:34:26
>>823
>そうでもないようです。
どのような処理を行った結果、そう思うんですか?

827 :デフォルトの名無しさん:2008/12/09(火) 19:34:27
俺も iText で文字配置したりしてるけど、別に普通に出力されるねぇ。

前に日本語が表示できなかったか、文字化けしたか忘れたけど、
それはサーバーにフォントを入れたら解決した様な………気がする。
ごめん忘れたww

詳しくは忘れたけど、俺は showTextAligned で表示してるよ。
それでできない?

828 :デフォルトの名無しさん:2008/12/09(火) 20:21:53
PdfContentByte型

829 :デフォルトの名無しさん:2008/12/09(火) 21:01:13
public void mouseDragged(MouseEvent e) { }
のe.getButton()(何のボタンが押されているか取得するメソッド)がドラッグ開始時や,している最中,終了時も0(MouseEvent.NOBUTTON)なんだけどこれは仕様?
こういうのがやりたいんだけど↓
public void mouseDragged(MouseEvent e) {
if (e.getButton() == MouseEvent.MOUSE_CLICKED) {
// ドラッグ開始直後の処理
}
else if (e.getButton() == MouseEvent.MOUSE_DRAGGED) {
// ドラッグ中の処理
}
else if (e.getButton() == MouseEvent.MOUSE_CLICKED) {
// ドラッグ後の処理
}
}
ドラッグ開始直後からドラッグ中・ドラッグ後までマウスがどのように動いたかの座標を用いた処理をしたいんだけど(Canvasに描かれた絵をD&Dで移動させたい)
mousePressedやmouseReleseでe.getButton()やったらちゃんと値が出力されたんで,ここで座標を取得出来るんだろうけど処理がいろんなところに散らばるのでやりたくない.

830 :デフォルトの名無しさん:2008/12/09(火) 21:45:51
>>829
比較対象が間違ってる。
MouseEvent.MOUSE_CLICKEDやMouseEvent.MOUSE_DRAGGEDは、
MouseEvent#getID()と比較すべきもの。
MouseEventの、特にgetButton()のjavadoc嫁。

>mousePressedやmouseReleseでe.getButton()やったらちゃんと値が出力されたんで,...
たまたま、定数値が同じだっただけだろう。

831 :デフォルトの名無しさん:2008/12/09(火) 23:40:55
すまそ。Web系ってなんじゃらほい?とおもって、JSP/Servletやったら、結構おもしろい。

で、近くのBOOKOFFいって、Web系の本を探してきたら、Web+DBPressっていうのが
105円でうってたから、買ってきた。これに、EJBっていうのがあるからやってみたいんだけど
JBossっていうのが最新版とだいぶバージョンが違ってるんだけど、最新版のJBossでも動くかお(´・ω・`)?

832 :デフォルトの名無しさん:2008/12/10(水) 00:06:08
おまえなんか105円だろ。我慢しろ。

833 :デフォルトの名無しさん:2008/12/10(水) 00:19:14
eclipse のデバッグで引数に c:\*.zip みたいな指定をすると、それにマッチするファイルが
自動的に展開され、 c:\aaaaa.zip みたいな値に変わって引数として渡ってしまいます。
これをそのまま、指定した引数を渡すにはどうすれば良いのでしょうか?

また、コマンドラインでも "c:\*.zip" のようにダブルクォートで区切ってやら無いと上手く
引数で渡ってくれません。 わざわざダブルクォートで区切らないで済む方法は無いのでしょうか?

834 :デフォルトの名無しさん:2008/12/10(水) 00:26:00
Javaにおいて質問
ソートの基本選択法のメソッドを非再帰的に作ったんだけど、
これって再帰的なメソッドを作れる?

もし作れたら、その骨格を教えてください
どうにも煮詰まってしまって・・・

835 :デフォルトの名無しさん:2008/12/10(水) 00:39:47
選択法の何所を再帰化したいのかよく分からない。
最小値選択のループか、並べ替え部分の実装か。
最小値選択のループは文字単位で繰り返すので、ここを再帰化
したら再帰の深さが文字列長分になって大変だと思う。

836 :デフォルトの名無しさん:2008/12/10(水) 01:19:19
Please, I am from spain and i need the java code of Shikaku because I donエt understand Japanish, if is posible in java or englis..?
Thanks a lot
Fany

837 :デフォルトの名無しさん:2008/12/10(水) 01:30:13
>>834
言いっぱなしもあれなので、一応作ってみました。

public static void selectSort(int[] array, int offset){

  int minIndex = offset;
  for(int i = offset + 1; i < array.length; i++)
    if(array[i] < array[minIndex]) minIndex = i;

  int min = array[minIndex];
  array[minIndex] = array[offset];
  array[offset] = min;

  if(offset < array.length - 2)
    selectSort(array, offset + 1);
}

でも「文字列長分だけ再帰が深くなる」ので、実用的ではありません。

838 :デフォルトの名無しさん:2008/12/10(水) 02:08:11
>>836
might be...
Shikaku:quadrangolo
new Rectangle(0, 0, 10, 10)




839 :デフォルトの名無しさん:2008/12/10(水) 02:23:20
>>836
Dizionario ecco.
ttp://www.goihata.com/en/japanese-spanish-dictionary


840 :デフォルトの名無しさん:2008/12/10(水) 07:38:37
>>837
サンクス
試してみる

841 :デフォルトの名無しさん:2008/12/10(水) 11:47:22
地球のみんな、オラに元気と知恵をわけてくれ!!
午後から仕事で面接なんだけど、Javaで構築する開発案件で、
「Javaの技術力に自信あるヤツ急募!面接で経験や技術力をアピールしてくんろ!」
て話らしいんだけど、Javaの経験値アピールするにはどんな話がよいと思ふ?

って他人に質問するくらい、オラは低レベル(Java使った実務経験3年程度)ですょ。。。 orz


842 :デフォルトの名無しさん:2008/12/10(水) 12:01:46
技術力・・・
俺は逆コンパイラを作れるぜ!とかそういうの?

843 :デフォルトの名無しさん:2008/12/10(水) 12:06:52
あっ!ごめん。糞してくるからちょっと待っててw

844 :デフォルトの名無しさん:2008/12/10(水) 18:06:06
簡単過ぎる質問すいません javaの入門書を見ると↓が必ず書いてありますが
public static void main(String[] args)
なぜ、String[] argsに必ずしなければならないのかわかりません

簡単に教えてもらえると幸いです

845 :デフォルトの名無しさん:2008/12/10(水) 18:12:54
javaコマンドの仕様。

"java Hoge.class 1.0 start"を実行すると、{"1.0", "start"}という
文字列の配列がHogeクラス内のmainメソッドに渡される、そういう
ふうにjavaコマンドが作られているからです。

846 :844:2008/12/10(水) 18:18:39
>>845
なるほど、javaコマンドの仕様ですか
だいたい、わかりました ありがとうございます

847 :デフォルトの名無しさん:2008/12/10(水) 18:22:51
以前質問させてもらった>>736です
setRGB()を使ってみようと思ったのですが、これは引数3つですよね?
(x座標、y座標、RGB値)となっているんですが、RGB値はそれぞれ0から255の値になっています。
これはどのように指定したらいいのでしょうか?
わかる方いらっしゃったらよろしくお願いします。

848 :デフォルトの名無しさん:2008/12/10(水) 18:35:23
↑に補足で、それぞれ0から255っていうのは、Rが0から255、Gが0から255、Bが0から255で3つの数字があるって意味です。

849 :デフォルトの名無しさん:2008/12/10(水) 18:44:51
>>848
16進の数値を表す文字列とやらをintにでもすりゃいいだろ
文字列のフォーマットが明示されてないから変換方法は教えられん

850 :デフォルトの名無しさん:2008/12/10(水) 18:51:04
>>849さん レスありがとうございます
intに変換はできるのですが、そうすると数字が3つになってしまうんです。
これは6個の16進の文字列を1つのintに変換したらいいのですか?

851 :デフォルトの名無しさん:2008/12/10(水) 18:56:42
Java初心者です。

リフレクションについての質問です。
任意のディレクトリにあるJavaクラスをリフレクションで解析(メソッド名などを取り出す)したいのですが、上手くいきません。

例えば
/usr/local/jakarta-tomcat-5.0.28/webapps/sampleapp/HelloWorld.class
があり、それを解析するために
Class cls = Class.forName("HelloWorld");
のようにしてクラスを取得する必要があるのですが、このクラスのクラスパスをどのようにして指定すればよいか分かりません。
またforNameメソッドにはクラスローダというものを指定できるようですが、クラスローダの使い方(?)もよく分かりません。

どなたか分かる方教えて下さい。よろしくお願いします。

852 :デフォルトの名無しさん:2008/12/10(水) 19:19:14
>>850
左シフトして足せ

853 :デフォルトの名無しさん:2008/12/10(水) 19:28:39
>>852さん
やり方調べてやってみます。ありがとうございます。

854 :デフォルトの名無しさん:2008/12/10(水) 19:28:42
ビット演算というか16進数の計算が分からんなら紙にでも書け。高校レベルだぞ。

855 :デフォルトの名無しさん:2008/12/10(水) 19:41:22
>>852さん
これはRGB3つの数字をそれぞれ2進数に変換して左シフトするということでいいのでしょうか?
聞いてばかりで申し訳ありません ^ ^;

856 :デフォルトの名無しさん:2008/12/10(水) 20:05:08
>>847
例えば R = 10 = 0x0a, G = 100 = 0x64, B = 200 = 0xc8 だったら、 0x0a64c8 のように指定する

857 :デフォルトの名無しさん:2008/12/10(水) 20:20:54
>>856さん
ありがとうございます!例で示してくださって助かります
とりあえずこのようにやってみます。

858 :デフォルトの名無しさん:2008/12/10(水) 20:26:58
>>855
二進数に直す操作の必要はない、というかintに限らず全ての型はPCの中では2進数。

2進で表記すると、画素データはこうなってる(並び順はもしかするとBGRかもしれないので試してね):
RRRRRRRRGGGGGGGGBBBBBBBB (24bit)。
ここに、それぞれ値を入れたいわけだから、Rは16bit左シフト、Gは8bit、Bはそのまま。
>>856の例で言えば、(R<<16) + (G<<8) + (B)とする。
BufferedImageの形式がAlpha必要とかだったら、その分も考える。

>>854も言ってるけど、Javaの前に(並列でもいいけど)論理演算勉強しろ。
動けばいいっつーなら、Stringの段階でくっつけとけば、まぁなんとかなるけどね。

859 :デフォルトの名無しさん:2008/12/10(水) 21:05:00
>>858さん
どうもありがとうございます
確かに論理演算ちょっと勉強しようと思います ^ ^;
おかげで助かりました。ありがとうございました

860 :デフォルトの名無しさん:2008/12/11(木) 11:59:52
JDK付属のソースコードって、どうして汚い(カッコの位置がずれたり、インデントが滅茶苦茶等)んですか?
難読化の一種ですか?



861 :デフォルトの名無しさん:2008/12/11(木) 12:06:33
エディタのタブの設定じゃないかと言ってみる

862 :デフォルトの名無しさん:2008/12/11(木) 12:50:48
難読化の一種です。悪いのはSunです。あなたは間違ってません。

863 :デフォルトの名無しさん:2008/12/11(木) 13:04:26
>>860
8タブ、4インデントという一般的でないルールを使ってるから。

おまけに 8タブ、4インデントのルールが徹底されてないみたいで、
一部のソースは 8タブで見るとインデント狂ったりする。

864 :デフォルトの名無しさん:2008/12/11(木) 13:37:22
>8タブ、4インデントという一般的でないルールを使ってるから。
一般的だろう。 タブが8じゃないと、いたるところでタブの設定をしなければならなくなってめんどくさい。


865 :デフォルトの名無しさん:2008/12/11(木) 13:59:28
一般的にタブ幅とインデント幅は合わせる。

でないと、タブ幅の設定が違う環境で見たときにインデントが狂う。

866 :デフォルトの名無しさん:2008/12/11(木) 14:00:43
現代人にはフォーマッタがあるんだから
気に入らなければ使えばいいジャマイカ

867 :デフォルトの名無しさん:2008/12/11(木) 14:01:44
>>861
>>862
>>863
ありがとう。

>8タブ、4インデントという一般的でないルールを使ってるから。
このタブ設定に変えてみたら、うまいこといきました。

8タブ、4インデントルールというのは、下記のことでしょうか。
ttp/www.tcct.zaq.ne.jp/ayato/programming/java/codeconv_jp/CodeConventions.doc3.html#262


868 :デフォルトの名無しさん:2008/12/11(木) 14:28:16
Java EE 5っていう分厚い本、ちょっとEJBかじったくらいの俺でもおkか?

高いから買うのためらってる。身近な情報源がないので、知ってる人、回答オネ。

869 :デフォルトの名無しさん:2008/12/11(木) 19:42:13
JDKのソースはsunの昔の規則と最近の規則が混じってるからね。

870 :デフォルトの名無しさん:2008/12/11(木) 21:08:18
Object obj = null;
ってnullというオブジェクトへの参照なのでしょうか、参照アドレスをnull(0番地)に設定することなのでしょうか?

871 :デフォルトの名無しさん:2008/12/11(木) 21:20:12
>>870
単純に考えて後者

872 :デフォルトの名無しさん:2008/12/11(木) 21:57:19
{"data1","data2","data3"}(Array1) って要素持った配列があったとして
{"data3","data1","data2"}(Array2) と要素の順番が入れ替わった配列の内容を
Array1と同じ形に素早くソートするにはどうすればいいでしょうか?

今やってる方法だとArray2のdata3がArray1の何番目にあるか探して、一致するものがあったら入れ替えて…
みたいな冗長なことしてるせいで、要素数が増えるとえらいことになるorz
オマケにArray2はindexを共有してるもう一つのArray3(数値データ郡)まであるから益々ワケワカランorz
誰か知恵を貸してください…

873 :デフォルトの名無しさん:2008/12/11(木) 21:59:18
引数として配列を使うことは出来ないのでしょうか。
というのもファイルから要素数を読み込むので引数の個数が分かりません。
つまり
class sample{
void show(mat[p][q]){
…//行列を表示
}
}
class sub{
 public static void main(String args[]){
 …//まず行数pと列数qをファイルから読み込んで以下を配列mat[p][q]に代入
sub mat1=new sub();
mat1.show(mat[p][q])
}
}
みたいなことがやりたいのですが、どうしてもうまくできません。
分かりにくい説明で申し訳ありませんがよろしくお願いします。

874 :デフォルトの名無しさん:2008/12/11(木) 22:08:19
弾を発射しようと
public Tama(int x ,int y ,Image img){
this.x = x;
this.y = y;
this.img = img;
}
というtamaクラスでコンストラクタを作って、それをメインであるゲームフレームクラスに
Tama tama;
tm = Toolkit.getDefaultToolkit().getImage(適応する画像);
tama = new Tama(-2000,-2000,tm);//画面外に格納
上記の形でtamaクラスを生成し、Enterが押されたら
弾のX,Y共にキャラのX,Yをゲットして
そのキャラの位置に弾が描画されるという物を作ったのですが
何故だか弾の画像が出てこず、描画を行ってくれません。
最初は画像の取り込みミスかと思いましたが、確かめたらきちんと画像ファイルへのパスも合っていました。
エンターを押す,キャラの座標をゲットするという処理は通ってるぽいのですが・・・。
ちなみに再描画してみようとrepaint()もやってみましたけど結果変わらずでした。
初歩の初歩だと思いますが、回答して頂ければ幸いです。

875 :デフォルトの名無しさん:2008/12/11(木) 22:13:44
>>872
一旦,列ごとに配列に入れてComparatorを自分で実装してソートするとか
>>873
void show(double[][] mat)
>>874
そういうのは定石があるから覚えちゃった方が早い
http://javagame.skr.jp/
このへんとか

876 :デフォルトの名無しさん:2008/12/11(木) 22:15:19
try{
 処理A
 処理B
}
catch(){
 処理C
}

処理Cで処理Aと処理Bのどちらで例外が発生したのかわかる方法はありますか?

877 :デフォルトの名無しさん:2008/12/11(木) 22:25:43
>>875
回答ありがとうございます。
従来のやり方で行き詰ってしまっているので、そちらのサイトを参考にさせてもらいます。

878 :デフォルトの名無しさん:2008/12/11(木) 22:48:57
>>875
早速ありがとうございます。
コンパイルエラーが出てしまうのですがどうしてでしょうか。

Mat.java:30: シンボルを見つけられません。
シンボル: メソッド show(int,int,int)
場所 : sub の クラス
mat1.show(m,n,mat[p][q]);
^
エラー 1 個


879 :デフォルトの名無しさん:2008/12/11(木) 22:50:40
>>876
色々。かっこわるいけど一番簡単な方法。

boolean a_finished = false;

try{
 処理A
 a_finished = true;
 処理B
}
catch(){
if(a_finished) { ... }
}

880 :デフォルトの名無しさん:2008/12/11(木) 22:56:26
>a_finished
今時こんな命名規則、C++でも非推奨だぞってつっこんでいい?

881 :デフォルトの名無しさん:2008/12/11(木) 22:57:35
「Aが終わった」をa_finishedと表現する以外にどうしろと?

882 :デフォルトの名無しさん:2008/12/11(木) 22:57:54
>>876
発生する例外の種類で区別できるなら、それで見分ける。
できないなら、スタックトレースの中身を見るくらいしか無い。
あとはロジック(フラグやモード持たせるとか)でカバーするくらいじゃね?

883 :デフォルトの名無しさん:2008/12/11(木) 23:52:14
>>872
arraycopy したほうが速いんじゃないだろか
あるいは配列の代わりに Map を使うとか
構造体的な新しいクラスを作るとかすれば
全体の設計を改良できそうかな


884 :デフォルトの名無しさん:2008/12/11(木) 23:53:27
>>876
try-catch を2つ書くほうがよいのでは?


885 :デフォルトの名無しさん:2008/12/12(金) 00:56:07
>>881
ハイフン使うなって意味なんじゃ?

886 :デフォルトの名無しさん:2008/12/12(金) 01:55:01
意味なんじゃ?

887 :デフォルトの名無しさん:2008/12/12(金) 02:15:03
isFinishedAとかにしろって話なんじゃないか

888 :デフォルトの名無しさん:2008/12/12(金) 02:36:59
接頭辞をつけるなってことかと思った

889 :デフォルトの名無しさん:2008/12/12(金) 02:37:13
変数にis付けるの英文的にへんだろ

890 :デフォルトの名無しさん:2008/12/12(金) 02:40:51
>>876
try { 処理 A } catch { 処理 C }
try { 処理 B } catch { 処理 C }


891 :デフォルトの名無しさん:2008/12/12(金) 02:44:47
ローカル変数ならアンダーバー有りでやってるなぁ 自分は異端か?
正直変数名考えるのがめんどくさくなってローマ字表記使ってたり(ローカル変数は

892 :デフォルトの名無しさん:2008/12/12(金) 02:45:21
>>889
booleanならありだったはず

893 :デフォルトの名無しさん:2008/12/12(金) 03:59:09
>>892
そこらへんの論争はコードコンプリートに書いてあるな

894 :デフォルトの名無しさん:2008/12/12(金) 05:04:16
JavaでHelloWorldでこれなんだお?
http://www.hellohiro.com/books/item/B001HSQCH4.html

895 :デフォルトの名無しさん:2008/12/12(金) 05:19:12
フイタw

896 :デフォルトの名無しさん:2008/12/12(金) 09:28:17
>>892
関数っぽく見えるという事では?

897 :デフォルトの名無しさん:2008/12/12(金) 11:34:41
チャットソフトでの考え方について教えてください。
サーバ体多数のユーザでのチャットを考えています。
ユーザがサーバに接続したさい、チャットのユーザのリストを得るとします。
そのとき、サーバ側で新しいユーザを得たリストを作り、
全てのユーザに新しく作ったリストを返す、という方法でよいのでしょうか。

また、BufferedImageやIteratorのやり取りをしたいのですが、可能でしょうか。
もし可能でしたら、必要なコマンド、もしくは参考になるようなサイトを
教えてください。

898 :デフォルトの名無しさん:2008/12/12(金) 11:35:06
>>872
Array2 のコンパレータを作ればいいんだよね。
HashMap に key として Array1 のデータを入れ、value に順番を入れる。(hm)
で、Comparatorとしてcompare(o1, o2) を hm.get(o2)-hm.get(o1) を返すように実装する。

899 :デフォルトの名無しさん:2008/12/12(金) 11:38:27
>>876
try{
try{処理A}catch(e){なんかの処理; throw e;}
try{処理B}catch(e){なんかの処理; throw e;}
}catch{処理C}


900 :デフォルトの名無しさん:2008/12/12(金) 11:47:03
>>897
という方法でよいと思うよ
追加分だけ送るという方法もあるけど

BufferedImage自体は渡せないがgetRGBで中身のRGBデータを取り出して渡せばいいかと
Iteratorを渡すというのは・・・どういう状況?

901 :デフォルトの名無しさん:2008/12/12(金) 11:51:36
チャットは難しいぜぇ……………?

おじょうちゃん、ほんとにいいのかな?

902 :デフォルトの名無しさん:2008/12/12(金) 12:02:01
>>901
おじちゃん、あたしがんばってチャットつくるんだ!
そしたらパパかえってくるもん!

>>900
多数のクライアント側で作業をしており、その作業内容は個々の
Iteratorで蓄積しております。
その個々のIteratorを全てのクライアントで再現できれば、と考えて
おりますが、可能でしょうか。
getRGBは試してみます、有難うございます。

903 :デフォルトの名無しさん:2008/12/12(金) 12:08:13
UrlをString型に変更するプログラムがわかりません(;;)。

904 :デフォルトの名無しさん:2008/12/12(金) 12:38:32
>>903
url.toString()

905 :デフォルトの名無しさん:2008/12/12(金) 12:41:31
>>904
おおっー出来ました。ありがとうございました。(;;)

906 :デフォルトの名無しさん:2008/12/12(金) 13:36:21
初心者ですいません
ボタンを押しても反応がないのですが、どうしたらいいでしょうか。
private JButton getButton;
//省略
private JButton getButton(){
getButton = new JButton("ボタン");
getButton.addActionListener(this);
return getButton;
}

Box box = Box.createVerticalBox();
//省略
box.add(getButton());

public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("getButton")){
//何かの処理
}
}
何かの処理の部分に何の処理をおいても実行されません。
デバッグのときに反応しないことから、条件にあてはまってないと思います。
どこが間違ってるのでしょうか。

907 :デフォルトの名無しさん:2008/12/12(金) 13:39:47
すいません、ちょっと省略しすぎたので、もういちど書き直します

908 :デフォルトの名無しさん:2008/12/12(金) 14:11:01
906、907です、すいません。
省略したところをまとめていたらわかりました。
スレ汚しすいませんでした。

909 :デフォルトの名無しさん:2008/12/12(金) 15:35:43
下のプログラムもっと行数少なく出来ますか?
ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/509.java

910 :デフォルトの名無しさん:2008/12/12(金) 15:43:34
改行を消せばいいよ
適切に変数に代入していけばifの{}内の2行は一か所にまとめられるよ
行数は増えるけどそっちの方がいい

911 :デフォルトの名無しさん:2008/12/12(金) 15:48:00
>>909
行数少なくするだけなら改行全部取っ払えば・・・いやまぁ冗談だけど。
String[] names = { "アメリカ", "日本", "オーストラリア", "タイ" };
Locale[] locales = { Locale.US, Locale.JPj, Locale.AU, Locale.TH };
int index = Arrays.asList(names).indexOf(args[0]);
if (index == -1) {
System.out.println("This country is not unsupported");
} else {
Currency currency = Currency.getInstance(locales[index]);
System.out.println(args[0]+"通貨 :"+currency.getSymbol());
}
前後省略。

912 :デフォルトの名無しさん:2008/12/12(金) 15:51:28
>>909

Map<String,Locale> map;
map.put("アメリカ", Locale.US);
// ...他の国も同様に
Currency currency = Currency.getInstance(map.get(args[0]));

みたいな感じにしては?


913 :911:2008/12/12(金) 15:55:00
何気なくそのまま書き写してしまったが、
not unsupported っていうメッセージはおかしい

914 :デフォルトの名無しさん:2008/12/12(金) 16:02:53
サポートはされてるけど通貨は表示しないって意味なんだよきっと。
そもそも入力は日本語オンリーなんだから
出力されるメッセージは英語でなくていいじゃないか。
どうでもいい話だがね。


915 :デフォルトの名無しさん:2008/12/12(金) 16:09:07
>>909
public static enum locales{
  アメリカ("en", "US"), 日本("ja", "JA"), オーストラリア("en", "AU"), タイ("th", "TH");
  private Locale locale;
  private localeMap(String language, String country) {
    this.locale = new Locale(language, country);
  }
  public Locale getLocale(){return locale;}
}

public static void main(String args[]) {
  ...
  Locale locale = locales.valueOf(args[0]).getLocale();
...
System.out.println(locale.toString() + "通貨:"+currency.getSymbol());
...

動くのか?

916 :デフォルトの名無しさん:2008/12/12(金) 16:17:37
not supportedの間違いでした。911は動きました。他のも動いたらどれか使わせてもらいます。
有り難うございました。

917 :デフォルトの名無しさん:2008/12/12(金) 17:32:13
初心者なのでよくわからないのですがコードを書いてもらえるとすごく助かります。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8293.txt

918 :デフォルトの名無しさん:2008/12/12(金) 17:57:20
宿題スレ行こうね

919 :デフォルトの名無しさん:2008/12/12(金) 17:59:30
クローナブル可能……

920 :デフォルトの名無しさん:2008/12/12(金) 21:32:21
Java一生懸命やってると、Microsoftのexeが作れないのが痛いね。
C#とかC++とかまたやろうとすると、一苦労だし。。

やっぱJ#復活してくれないかな・・

921 :デフォルトの名無しさん:2008/12/12(金) 21:59:22
>>920
gcj は使ってみた?

922 :デフォルトの名無しさん:2008/12/12(金) 23:29:41
J#は絶対ないわw

923 :デフォルトの名無しさん:2008/12/13(土) 01:12:20
Shacho クラス
package pack;
public class Shacho {
  public static void main(String[] args) {
    Shain shain = new Tanto();
    shain.standUp(); }}

Tantoクラス
package pack;
public class Tanto implements Shain{
void standUp(){
System.out.println("今起きました");
}}

Shainインタフェース
package pack;
public interface Shain {
void standUp(); }

と書いてeclipseでコンパイルしたら
Exception in thread "main" java.lang.IllegalAccessError: objectBrain.Tanto.standUp()V
と怒られました。

TantoクラスのstandUpメソッドをpublicにすると大丈夫;なんですが、聞きたいのは
修飾子なしのメソッドは同一パッケージからなら使えるのではなかったでしょうか?

924 :923:2008/12/13(土) 01:38:01
>>923
多分自己解決しました。

インタフェースでのメソッドはかならずpublicになるので、それをインタフェースにする
Tantoクラスではそれより弱いアクセス権が設定できない

でよろしいでしょうか。クラスの継承と同じように。

925 :デフォルトの名無しさん:2008/12/13(土) 03:02:49
ttp://www.hellohiro.com/xmlsax.htm
サーバから送られてくるXMLデータの解析しようと
URLのプログラム参考にして作ってるのですが,
そんなファイル無いよと怒られます.
String msg;
parser.parse(msg, new Parser());
でString型で渡してるのですが上手くいきません.
受信したXMLデータを解析するにはどのクラス・メソッドを用いればよろしいのでしょうか?

926 :デフォルトの名無しさん:2008/12/13(土) 03:55:01
>>920
http://launch4j.sourceforge.net/
こういうのどうよ

927 :デフォルトの名無しさん:2008/12/13(土) 04:10:22
>>925
思い込みを止めてAPIドキュメントをきちんと読め。
SAXParser#parseで第一引数がString型の場合はそれはXMLリソースのURIだ。文字列から読むなら例えば、
parser.parse(new ByteArrayInputStream(msg.getBytes()), handler);
とか。String#getBytesは必要ならXML宣言に合わせて文字セットも指定しないといけない。

928 :デフォルトの名無しさん:2008/12/13(土) 04:14:19
クライアント側でStringに変換して保持する必要がないのなら、
サーバから送られてくるXMLデータの読み込みに使っているInputStreamを直接パーサに渡す手もある。
全然違う方法でサーバから受け取っているとかなら別だが。

929 :デフォルトの名無しさん:2008/12/13(土) 04:28:34
import java.util.Date;
public class genzainotime {
public static void main(String main[]) {
System.out.println(new Date().toString());
}
}
と同じ情報をGregorianCalendarを使って表示したいのですが、最初にインスタンスを作った後どう書けばいいですか?
import java.util.Calendar;
import java.util.GregorianCalendar;
public class genzainotime2 {
public static void main(String main[]) {
GregorianCalendar gc = new GregorianCalendar();
//この後なんて書けばいいですか

930 :デフォルトの名無しさん:2008/12/13(土) 04:45:38
System.out.println(gc.getTime());

931 :デフォルトの名無しさん:2008/12/13(土) 04:49:38
>>927-928
別のエラーが出ましたが,とりあえずこの問題は回避できそうです.
送信されてきたデータを直接InputStreamに渡す手もあるのですが,
受信後に少々操作しなければならない部分がありtoStringで変換してしまうので,直接は渡さないつもりでした.
変換処理もパーサに掛けてから行うのもいいかもしれません.考えてみます.

正直,ココ嫁系の回答が来ると思ってたので,こんなクリティカルな回答が来るとは思ってませんでした.
ありがとうございました.クリティカル過ぎて鳥肌立ちました^^;

932 :デフォルトの名無しさん:2008/12/13(土) 04:53:02
>>930
ありがとうございました。

933 :デフォルトの名無しさん:2008/12/13(土) 05:34:12
>>930
まだこんな馬鹿がいるのか

934 :デフォルトの名無しさん:2008/12/13(土) 05:53:17
Timerクラスを使って3秒おきにメッセージ「割り込み発生!」を表示させるにはどうしたらいいですか?
なんかこんな感じで↓
public static void main(String() args){
//Timerオブジェクト作成
//1秒したら3秒おきにタスクを実行するようスケジュール化
System.out.print("あいうえお");
}

935 :デフォルトの名無しさん:2008/12/13(土) 08:46:00
Java Advanced Imagingについて
日本語で詳しく説明しているサイトまたは書籍知りませんか?
探しても英語サイトばかりでorz

936 :デフォルトの名無しさん:2008/12/13(土) 10:07:58
>>934
TimerのAPIドキュメントぐらい読んだのか? その断片例すら動かないしな.
import java.util.*;
class Hoge extends TimerTask {
public static void main(String[] args) { new Timer().scheduleAtFixedRate(new Hoge(),1*1000L,3*1000L); }
public void run() { System.out.println("割り込み発生!"); }
}

937 :デフォルトの名無しさん:2008/12/13(土) 10:24:56
コードの使い方とかサンプルが欲しいってことだろ
最近そういうサイトも多くなってきたけど

938 :デフォルトの名無しさん:2008/12/13(土) 10:24:58
>>935
これは?
ttp://www.google.com/search?q=JAI入門&btnG=検索&hl=ja&lr=&client=safari&rls=en&sa=2
随分、昔に使ったときは、英語サイトしか読まなかったし、そのころ↑は発行されてなかったから、
内容は知りませんが。
ところで、JAIプロジェクトって、まだ生きてるんですか?

939 :デフォルトの名無しさん:2008/12/13(土) 10:44:35
>>938
ググレカスで済んじゃうのが多いよねw
他のことにスキル使ったら?

940 :デフォルトの名無しさん:2008/12/13(土) 10:52:09
invokeLaterって何て呼んでる?

941 :デフォルトの名無しさん:2008/12/13(土) 11:09:04
>940
2つ以上、読み方あるの?

942 :デフォルトの名無しさん:2008/12/13(土) 11:15:07
>933
で?お利口なあなたの答は?

943 :デフォルトの名無しさん:2008/12/13(土) 11:16:41
インボケレイテル

944 :デフォルトの名無しさん:2008/12/13(土) 11:17:01
インヴォケラタ

945 :デフォルトの名無しさん:2008/12/13(土) 11:23:01
ちょっ、なんで、中途半端にローマ字読みとか混じるんだよ。
英語の発音記号を

946 :デフォルトの名無しさん:2008/12/13(土) 11:33:00
淫棒空手

947 :デフォルトの名無しさん:2008/12/13(土) 11:59:19
>>946
民明書房的には、それで正しいと思うね。
少林寺の僧、邪罵が下半身の淫棒をSwingして組み手を行ったことが、
javaやSwingの名前の由来だとも言われてるからね。

948 :デフォルトの名無しさん:2008/12/13(土) 13:01:39
質問です。今入門書で勉強中なのですが、そのなかの例で

byte a = 1;
byte b = 2;
byte c = a * b ;
System.out.println(c);

この場合、cの変数が型変換されてint型になるのでエラーになるらしいのですが
前後の文章をよんでも全く意味がわかりません。
byte型は-128~127までなら扱えるんですよね?
cの計算式の結果は3なのでbyte型のままで表現できるんじゃないんですか?


とか30分悩んで質問しようとしたら整数リテラルはint型にみなされるって書いてあった。
文章書いた時間もったいなくて頭に来たから投稿する。反省はしない。

949 :デフォルトの名無しさん:2008/12/13(土) 13:04:55
条件コンパイルって

if (constantCondition) {
// constantCondition が true のコード
} else {
// constantCondition が false のコード
}

とかやって, オプティマイザが消去してくれることを期待するしかない?



950 :デフォルトの名無しさん:2008/12/13(土) 13:29:52
>>933
エラそうだなあ。

951 :デフォルトの名無しさん:2008/12/13(土) 15:42:43
後で祈る

952 :デフォルトの名無しさん:2008/12/13(土) 16:13:50
すみません。

こないだ、初給料をもらい(もちろんJavaプログラマです!)うれしくて
板の上にある広告のライブチャットっていうのやってみました。

色々な女の子がいるんですけど、そのうちこっちの画像やマイクも欲しくなって
両方で5000円くらいのを買いました。

そうしたら、すごい人にあったんです!待ちうけ画像は普通なのに
つないだらいきなり服をめくり始めてブラの上でパイオツを揉み始め、次第に
フロントホックも外して胸が丸見えでしばらく揉んでました。僕はじっとみることしかできず、
胸を裸でしばらく揉んだかとおもうと、今度はパンツの上からまんまんをいじくり始め仕舞いには脱いでしまいました。

じっくり30分見せられました。こんなことが世の中にあるんですか?

953 :デフォルトの名無しさん:2008/12/13(土) 16:35:44
誰がこのコピペ考えたんだよ

954 :デフォルトの名無しさん:2008/12/13(土) 16:35:49
WebsphereVer4の本がたくさん倉庫からでてきた。5冊くらい。

あれから、C#にすぐ移っちゃったから、無駄になった。今、もう一度やりたいんだけど、
体験版の試用期間が3ヶ月しかないお(´・ω・`)

どこかでWebsphereVer4を安く手に入れる方法を知っている人いたらおしえてください。

955 :デフォルトの名無しさん:2008/12/13(土) 16:51:03
200円で6000円か。
それだけあれば、おれならFF17買うし、ぼったクリだな。w

956 :デフォルトの名無しさん:2008/12/13(土) 17:08:27
>>949
java用のプリプロセッサは探せばいくつかあると思う
条件コンパイルだけに特化するなら自分で書いてしまってもいいんじゃないか

957 :デフォルトの名無しさん:2008/12/13(土) 17:55:11
>>948
結果は3でなくて2。
byte型の変数a,bの乗算a*bではjavaの文法に従って、被演算子が両方ともint型に変換される。
これはa,bという変数の型が変換されるのでなく、a,bを評価して得られた値の型が変換される。
この変換はa,bの値や乗算結果がbyte型で表現可能かどうかに関わらず一律に行われる。
そして、int型同士の乗算はint型になるのでa*b;はint型。
これをbyte型の変数cに代入する場合、int型からbyte型への型の縮小であるので許されない。
代入したい場合は(byte)(a*b)のようにキャストを使って変換する。
byte a = 1;とbyte b = 2;も1や2がint型の定数式なのでint型からbyte型への型の変換だけど、
c=a*bの場合と異なり、右辺が定数式でかつ左辺の型で表現可能なのでそのままで型縮小ができる。
byte a = (byte)1;と書かなくてもいい。

958 :デフォルトの名無しさん:2008/12/13(土) 18:06:21
mapにしたがって要素を並び替え、並び替えられたnum[a]=元々のnum[map[a]]になるように
以下のメソッドを定義せよ。(並び替える際、置き換える必要はなく、メモリはふんだんに使ってOK)

わかる方、コードご教示願いします。
public class arrayTest {
private double[] num;
arrayTest(double a, double b, double c...., double z){
num = new double[a];
num = new double[b];
...
}
public void permute(int[] map){
//ココになんか書く
}
public static void main(String[] args) {
arrayTest test = new arrayTest(1.3, 4.5, 19.8, 34.3, 0.4, ..);

}

959 :デフォルトの名無しさん:2008/12/13(土) 19:05:30
>>958
宿題スレいけよ

960 :デフォルトの名無しさん:2008/12/13(土) 19:22:24
>>938
JAIの本1冊しかありませんでした。買ったけど後悔してるorz。
170ページで1900円。
ほとんどサンプルソースとアプレットの画面でページが埋まってる。
JAVA入門の章(40ページ)とかでデータ型の説明とか基本的なものが入ってる。
JAIについての説明なんてほとんど皆無で、
画像の拡大・縮小やグレースケール化などのサンプルがそのまんま載ってる感じ。

良いサイトないかなぁorz..

961 :デフォルトの名無しさん:2008/12/13(土) 19:22:34
StringTokenizerって何て読んでる?
客先言ったら「ストリングトキニザー」って言われて何のこっちゃ?と思ったんだが。
俺はすとりんぐとーかないざーだと思ってたんだがな

962 :デフォルトの名無しさん:2008/12/13(土) 19:31:01
>>961
Tokenでトークンだから、izerくっつけてトークナイザーと読んでる

963 :デフォルトの名無しさん:2008/12/13(土) 19:55:51
ストリングトークナイザーだなあ

964 :デフォルトの名無しさん:2008/12/13(土) 21:26:29
すこし話はずれるけど

data = ダータ
beta = ビータ
schedule = シェジュール

と読む人もいた。


965 :デフォルトの名無しさん:2008/12/13(土) 21:40:21
CDトレイを開閉するやりかたはありますか?

966 :デフォルトの名無しさん:2008/12/13(土) 21:55:39
どなたかスレ立てをお願いできないでしょうか。

JavaFX Part1
--------------------------------------------

新世代WORA環境を実現するJavaFXを語るスレです。

2008年12月4日、ついにJavaFX1.0がリリースされました。
JavaFX Scriptだけでなく、プラットフォームとしても要注目です。

JavaFX 公式
http://www.javafx.com/

967 :デフォルトの名無しさん:2008/12/13(土) 22:04:40
>>964
それただのイギリス訛りじゃん

968 :デフォルトの名無しさん:2008/12/13(土) 23:14:20
>>964
そういや、dataが複数形だって知った時にはびっくりしたなぁ。
datumなんて見聞きした事ない。

969 :デフォルトの名無しさん:2008/12/13(土) 23:25:15
>>965
Runtime#exec()

970 :デフォルトの名無しさん:2008/12/13(土) 23:35:10
>>960
>>ほとんどサンプルソースとアプレットの画面でページが埋まってる。
>>JAVA入門の章(40ページ)とかでデータ型の説明とか基本的なものが入ってる。
>>JAIについての説明なんてほとんど皆無で、
なんだか痛そうだが、よく「〜入門」、「はじめての〜」、「3日でわかる〜」系でありがち。
ただ、内容は知らないと書いておいたので。
というか手にとって読めるんだったら、そもそも買わなければいいんじゃないのと思うけど。
まぁ、覚悟して、英語サイトを読むのが一番だと思う。





971 :デフォルトの名無しさん:2008/12/13(土) 23:57:01
datumって高校で習うぞ

972 :デフォルトの名無しさん:2008/12/14(日) 01:45:58
>>971
なんか英語スレになってるけど、それホントか?嘘つくな。

973 :デフォルトの名無しさん:2008/12/14(日) 02:10:44
俺も datum 習ったぞ。でも単数形とか複数形とか気にしないで data しか使わん。

974 :デフォルトの名無しさん:2008/12/14(日) 06:05:42
死ねよお前

975 :デフォルトの名無しさん:2008/12/14(日) 08:09:56
質問があります。
パネルのうえに赤いラベル、青いラベル、赤いボタン、青いボタンを
作ったとして、赤いものだけ透過させる方法を教えてください。

976 :デフォルトの名無しさん:2008/12/14(日) 08:14:58
いくら頑張ったところで、おまえなんか2chにいる低脳荒らしとあんまり差はないな

977 :デフォルトの名無しさん:2008/12/14(日) 08:46:17
荒れてるようですので次スレでまた質問したいと思います。すいませんでした。

978 :デフォルトの名無しさん:2008/12/14(日) 09:19:17
次スレなんてねえよ、おまえに答えを言っても理解できそうにないしな

979 :デフォルトの名無しさん:2008/12/14(日) 11:28:44
ということにしたいんですね

980 :デフォルトの名無しさん:2008/12/14(日) 12:39:33
2chなんか馴れ合いが目的だし、なんか自慢したいなら・・・普通はブログでやるよな。


981 :デフォルトの名無しさん:2008/12/14(日) 14:16:46
JavaEE1.3の頃のチュートリアルがあるからやりたいんだけど、
J2EE1.3でやることになってるんだけど、このバージョンは日本語版追補が必要で
当時インスコした覚えがあるんだ。でもいまはない(´・ω・`)
J2EE1.4でも開発できるかな?EJBがどういうものか理解できそうだからどうしても
当時の本でやりたいんだ(´・ω・`)

982 :デフォルトの名無しさん:2008/12/14(日) 15:35:33
おまえじゃ無理w

983 :デフォルトの名無しさん:2008/12/14(日) 17:16:21
その本を売って新しい本を買う足しにでもしたほうがまし

984 :デフォルトの名無しさん:2008/12/14(日) 17:31:05
そもそも古いJavaEE覚えて何か良いことあるのか?
メンテが必要なシステムがあって泣く泣く、ならまだしも。
EJB2じゃだめだと言われてEJB3になったりしてるわけだし。

理由もなくMicrosoft BASIC(≠VB)を覚えようとしているのと
変わらんように見える……。

985 :981:2008/12/14(日) 17:52:23
>>982
そんなこといわないでください><;
>>983
この本は割合読みやすいからすきなんです><;
>>984
私は古い知識が無駄になるというより、古い知識を前提に新しい知識を覚えて生きたいタイプなのです><;
で、C#もだいぶやったので、またJavaをやれば余計生き残りの力が付くと思っています><;
ですから、EJB2.0をやってから、EJB3をやりたいのです。

みなさん、JavaEE5(1.5)になってからはだいぶ変わったようなのですが、
J2EE1.3→1.4の頃はそう取り上げられなかったように思います。私の愛読紙JavaWorldやWebDB+Press
でもそれほど話題にならなかったです。ですから、J2EE1.4でJ2EE1.3の本のアプリが組めるなら是非やりたいのです。
できるかできないかだけでも、まじめにおしえてくださいませんか?よろしくお願いします。

986 :981:2008/12/14(日) 17:53:23
ちなみに、私は超底辺の半分ブラック企業にしか在籍できないため
周りにこういうことを聞けるエキスパートの人がいません。ここだけが頼りなんです。
本当によろしくお願いします。

987 :デフォルトの名無しさん:2008/12/14(日) 17:54:47
>まじめにおしえてくださいませんか?

まじめに調べてくださいませんか?本当によろしくお願いします。

988 :デフォルトの名無しさん:2008/12/14(日) 17:55:18
>>986
じゃあ自分で勉強しろよ

989 :デフォルトの名無しさん:2008/12/14(日) 18:11:32
そんなに簡単に疑似餌に喰い付くなよと思うんだが

990 :デフォルトの名無しさん:2008/12/14(日) 18:18:34
思ったから何なの?

991 :981:2008/12/14(日) 18:24:03
まじめに答える気の無いごみ屑回答者は来なくていいよ。早く区そして死んだ方がよいよ。

992 :デフォルトの名無しさん:2008/12/14(日) 18:31:49
悔しかったの?顔真っ赤だよ

993 :デフォルトの名無しさん:2008/12/14(日) 18:33:55
>>991
だったらまじめに自分で調べてみろよw
屑質問者は来なくていいよ
早く死んだほうがいいよwww

994 :981:2008/12/14(日) 18:42:08
pupupu 屑度も必死だなwww プギャー(^д^)m9

995 :デフォルトの名無しさん:2008/12/14(日) 18:46:45
EJBはゴミすぎる


996 :981:2008/12/14(日) 18:49:56
わたしのためにあらそわないで><;

997 :デフォルトの名無しさん:2008/12/14(日) 19:05:37
>>995
これから勉強しようかと思ってたのに

998 :デフォルトの名無しさん:2008/12/14(日) 19:11:58
あんなもん勉強するだけ無駄というか意味ないというか
むしろあんな知識を身につけないほうが良いというか


999 :デフォルトの名無しさん:2008/12/14(日) 20:09:58
定期的に荒れるな

1000 :デフォルトの名無しさん:2008/12/14(日) 20:16:15
どうせ鼻糞野郎だろ。相手にするな

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

293 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)