【初心者】Java質問・相談スレッド99【大歓迎】at TECH
【初心者】Java質問・相談スレッド99【大歓迎】 - 暇つぶし2ch1:デフォルトの名無しさん
07/03/05 01:35:28
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
URLリンク(www.wikiroom.com)

これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

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

前スレッド
【初心者】Java質問・相談スレッド98【大歓迎】
スレリンク(tech板)

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。URLリンク(pc10.2ch.net)

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

2:デフォルトの名無しさん
07/03/05 01:37:20
ずるしてらくしてかれいに2げっとかしらかしら~

3:3get
07/03/05 11:59:08
     ∧_∧
ピュ.ー (  ^3^) <エェー これからも僕を応援して下さいNE(^3^)。
  =〔~∪java~〕
  = ◎―◎                      java&サン



4:デフォルトの名無しさん
07/03/05 12:09:12
Javaからウェブカメラの映像を取得するには
JNIとか使わなきゃむりぽ?

5:デフォルトの名無しさん
07/03/05 12:16:58
>>4
ローカルのカメラならドライバ次第では?
ネット上の映像ならソケットで取れないか?

6:デフォルトの名無しさん
07/03/05 12:21:08
>>4
JMF

7:4
07/03/05 12:32:02
>>5
ローカルなんだ。
いろんなカメラに対応させたいんだが。

>>6
調べてみる。
トンクス

8:デフォルトの名無しさん
07/03/05 13:25:35
このエフェクトはどうやって作られているのでしょうか?
画像を縦方向に1ドット単位で刻む→それらをx軸の画面中央から離れた分だけ縦に拡大処理→再結合して表示、
なんていうのしか思いつきませんorz

URLリンク(couples.jp)

9:デフォルトの名無しさん
07/03/05 13:47:11
アプレットに表示されている線や複数の画像を、
一つの大きな画像と見て拡大縮小等の処理を行いたいのですがどんな感じで作れば良いでしょうか?

10:デフォルトの名無しさん
07/03/05 14:38:41
>>9
Graphics2DとImage使ったらできないかな?

11:デフォルトの名無しさん
07/03/05 15:10:27
>>10
ご回答ありがとうございました。
恥ずかしながら、その単語は初めて聞きました。調べて勉強してみます。

12:デフォルトの名無しさん
07/03/05 15:25:28
ラストスレおめでと。
残り少ないけどよろ。
(:D)| ̄|_

13:デフォルトの名無しさん
07/03/05 18:37:22
JAVAにおける文字コードについて質問なのですが、こちらでよろしいでしょうか?

OutputStreamWriterなどで文字コードを指定のうえ
ファイルを読み込み、読み込んだファイルをそのまま出力する処理を
作成していますが機種依存文字(丸1や(株))が文字化けしてしまいます。
「MS932」を指定するだけでは足りないのでしょうか?

動作環境はREDHUTでTOMCATのバージョンは5.5です。
なおWindows環境での動作確認ではうまく処理できました。

14:13
07/03/05 18:39:22
// ファイル読込準備
InputStream istream = null;
BufferedReader br = null;
istream =formFile.getInputStream();
br = new BufferedReader(new InputStreamReader(istream,"MS932"),65535);

// ファイル出力準備
File uploadFile = new File("ディレクトリ名", "ファイル名");
OutputStreamWriter bos = null;
bos = new OutputStreamWriter(new FileOutputStream(uploadFile.getAbsolutePath()), "MS932");


boolean flg = true;
String fileText = new String();
StringBuffer sb = new StringBuffer();

while (flg) {
fileText = br.readLine();
if(fileText==null){
flg=false;
}else{
if(!fileText.equals("")){
sb.append(fileText + "\r");
}
}
}

bos.write(sb.toString());
bos.close();
istream.close();

15:デフォルトの名無しさん
07/03/05 18:42:35
>>1のWikiroomが403なんだけどたまたま?
それともつぶれた?

16:デフォルトの名無しさん
07/03/05 18:46:30
>>13
まずはTomcat関係無しに、Redh a tのjavaで文字化けせずに
Windows-31Jの文章が読み書きできるか確認。

それと、MS932ではなく、Windows-31Jにしておいた方がいいですよ。
Windows-31Jは、IANA登録名ですから。

17:デフォルトの名無しさん
07/03/05 18:53:51
すみません、eclipseなんですが、中括弧の付く位置が初期設定では
メソッド() { こんな感じになってるんですが、
メソッド()
{
こんな感じにする事はできないのでしょうか?見難くってやってられません。
もし設定を変える方法を知っていたら教えてください。お願いします。

18:デフォルトの名無しさん
07/03/05 19:20:46
>>17
Window>Preference
Java>Code Style>Formatter

19:デフォルトの名無しさん
07/03/05 19:28:05
質問1)
テキストファイルに書かれた数字を配列にいれるにはどうすればいいの?
hoge.txtは以下のとおり

12
34
56
78

ってかいてあって、java hoge.txtと実行すると
配列aa[0]~aa[3]に上から順に数字が入るようにしたい。教えて

質問2)
配列に入った数値a[0]=12, a[1]=34, a[2]=56, a[3]=78を
nag.txtに順番に
12
34
56
78
と書き込みをしたい。どうすればできるの。一つでもいいから誰か教えて

20:デフォルトの名無しさん
07/03/05 19:29:58
>>13
System.out.println(java.nio.charset.Charset.foName("MS932").getClass());

とかやって、実装してるクラスを確認してみるとか。

21:17
07/03/05 19:30:52
一応設定は上手く行きました。教えてくれてありがとうございます。

22:デフォルトの名無しさん
07/03/05 19:31:17
>>19
宿題は宿題スレに。

★★ Java の宿題ここで答えます Part 60 ★★
スレリンク(tech板)

23:13
07/03/05 19:40:14
>>16
Windows-31J指定の件了解です。
またJAVAにて読み書きできるかについてですが可能でした。

以下コードをREDHAT上にて実行。
(input.txtはSJISにて丸1と全角ハイフンを記述、output.txtに正しく出力)

FileInputStream fis = new FileInputStream("input.txt");
InputStreamReader ir = new InputStreamReader(fis , "MS932");
BufferedReader br = new BufferedReader(ir);
String msg = br.readLine();

FileOutputStream fos = new FileOutputStream("output.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos , "MS932");
BufferedWriter bw = new BufferedWriter(osw);
bw.write(msg);

24:デフォルトの名無しさん
07/03/05 19:50:21
>>23
何だろうねぇ?
Tomcatの起動オプションに強制指定入れてみる?
-Dfile.encoding=MS932
これ。

25:デフォルトの名無しさん
07/03/05 20:00:11
>19やさすぃいJavaにそのまま書いてあるお
(:D)| ̄|_

26:デフォルトの名無しさん
07/03/05 20:51:47
>>19
package hoge;
public class txt {
private static final String aaa = "hoge.txt";
private final String aaaa = "nag.txt";
private static int[] aa = new int[4];
private int[] a = new int[4];
public static void main(String[] a) throws Exception {
java.io.BufferedReader b = null;
try {
b = new java.io.BufferedReader(new java.io.FileReader(aaa));
for (int i = 0; i < 4; i++) aa[i] = Integer.parseInt(b.readLine());
new txt().a();
} finally {
if (b != null) b.close();
}
}
private void a() throws Exception {
for (int i = 0; i < 4; i++) a[i] = aa[i];
java.io.BufferedWriter b = null;
try {
b = new java.io.BufferedWriter(new java.io.FileWriter(aaaa));
for (int i = 0; i < 4; i++) { for (char c : String.valueOf(a[i]).toCharArray()) b.write(c - '0' + '0'); b.newLine(); }
} finally {
if (b != null) b.close();
}
}
}

27:前スレ976
07/03/05 21:11:21
前スレ>>987
Linuxの設定、Java version関係なく
sendする直前に、recv処理をすることで対応できました。
回答どもです。

28:19
07/03/05 21:20:03
>26

29:19
07/03/05 21:21:25
>26 ありがとう、ところでこれコンパイルは通るけど、実行すると以下のようなエラーがでる

Exception in thread "main" java.lang.NoClassDefFoundError: txt (wrong name: hoge
/txt)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)

30:デフォルトの名無しさん
07/03/05 21:33:02
もう涙が出ちゃう。・゚・(ノД`)・゚・。

31:デフォルトの名無しさん
07/03/05 21:37:30
なるほど、スレタイ通りだ。wwwww

32:デフォルトの名無しさん
07/03/05 21:38:21
>>29
そのファイルの拡張子はどうなってる?

33:19
07/03/05 21:42:49
javac txt.java
java txt
で実行しているわよ

34:デフォルトの名無しさん
07/03/05 21:47:27
とりあえず>>1は読んだか?

35:デフォルトの名無しさん
07/03/05 21:48:55
>>33
hoge ってディレクトリ掘って、そん中に txt.class をつっこめ。
そのあと java hoge.txt ね。

>>19
> ってかいてあって、java hoge.txtと実行すると
ってのが原因。

36:19
07/03/05 21:50:11
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 URLリンク(www.wikiroom.com)
これでしょ。これは前から知っててとっくに解決済み。そもそも
これ解決してないなら他のプログラムとかは通らないでしょ。
eclipseでやあっている

37:デフォルトの名無しさん
07/03/05 21:53:01
パッケージ宣言とっちゃえば?

38:デフォルトの名無しさん
07/03/05 21:54:09
>>36
そこに書いてあるのはパッケージ使わない場合だけだから、
今回は参考にならんよ?

39:デフォルトの名無しさん
07/03/05 21:54:55
> パッケージ宣言とっちゃえば?
>>19 の仕様に反するんだけど。

40:13
07/03/05 22:00:31
ちょっと確認したのですが、この方法でサーバに生成されたファイルの
文字コードを確認したらEUCになっていました。これってサーバ依存の
文字コードがデフォルトで選択されているってことですよね。
ただ「OutputStreamWriter」でエンコーディングの指定をしているにも
関わらずそのようになってしまったのはなんでだろう…。

41:デフォルトの名無しさん
07/03/05 22:06:43
>>40
> この方法
それって >>14>>23

EUC って丸付き数字あったっけか?

42:19
07/03/05 22:12:09
>>37 俺も思った

43:デフォルトの名無しさん
07/03/05 23:23:40
synchronized修飾子を指定したメソッドなんですが、
スレッド名.wait()を使用するとjava.lang.IllegalMonitorStateException: current thread not ownerが出ます。
この場合どんなことが原因だと考えられるのでしょうか?

44:デフォルトの名無しさん
07/03/05 23:44:52
wait() を用いたこと

45:デフォルトの名無しさん
07/03/06 00:07:06
>>43
エラーメッセージの通り。
もしくは、モニターの所有権について >>43 が理解できてない事。

46:デフォルトの名無しさん
07/03/06 00:08:25
>>44-45
失礼しました。勉強しなおしてきます。

47:デフォルトの名無しさん
07/03/06 00:09:48
>>43
Objectのwaitメソッドを使っているわけだからその辺のドキュメント漁れば答えが見えてくるはずなんだけど…

> このメソッドを呼び出すのは、このオブジェクトのモニターを所有するスレッドだけでなければ
> なりません。スレッドがオブジェクトのモニターのオーナになる方法については、notify メソッド
> を参照してください。

直接的ではないにせよ最低限のヒント位は出ているから、普段からAPIドキュメントみるクセをつけた方が良いかと。

48:デフォルトの名無しさん
07/03/06 01:50:04
すんません。
URLリンク(homepage2.nifty.com)
ここ見て、swtからwin32APIが扱えることを知ったんだけど、
キーイベントやウィンドウのリサイズきかなくない?
ウィンドウは拾えてるみたいなんだけど…

49:デフォルトの名無しさん
07/03/06 02:11:29
え?ここJNIあり?
幅広いね

50:デフォルトの名無しさん
07/03/06 06:49:35
GUIで質問があります。
JComboBoxで選択した文字を、JLabelに出力するようしたいのですが、
どのようにやれば良いのでしょうか?
このGUI(URLリンク(www.uploda.org))の場合、
『output』というところにTokyo, Osaka, Nagoyaと選択したら出力されるようにしたいです。

51:デフォルトの名無しさん
07/03/06 07:19:39
>>50
addActionListenerかaddItemListenerを使う。
簡単なのはActionListenerのほうかな。
編集可能か否かでちょっと違うかもしれないが。

JComboBoxのAPIを見ること。


52:デフォルトの名無しさん
07/03/06 08:57:45
なんでそんなことが分からないレベルで2chに質問しようと思いつくのか。
それとも釣りか。

53:13
07/03/06 09:04:58
>>41
14の方です。23の方はうまくいってます。EUCに丸文字ないので
ばけていたのだと思います…。が、14の方法で何故EUCファイルが
できてしまったのでしょう…。現在それを調べています。

54:デフォルトの名無しさん
07/03/06 13:29:19
//クラスのインポート
import java.util.*;
public class Hiduke {
public static void main(String[] args){
//インスタンス化
Calendar now = Calendar.getInstance();

int y = now.get(now.YEAR); //年を取得
int m = now.get(now.MONTH) + 1; //月を取得
int d = now.get(now.DATE); //日を取得

//日付を表示
System.out.println(y+"年"+m+"月"+d+"日");
}
}
この場合、引数ってのはどれにあたるのでしょうか?

55:デフォルトの名無しさん
07/03/06 13:33:54
String[] args
now.YEAR
now.MONTH
now.DATE
y+"年"+m+"月"+d+"日"

メソッドに渡してるものは全部引数

56:デフォルトの名無しさん
07/03/06 13:34:56
何の引数?
コマンドライン引数ならmainメソッドのargsだが、プログラム中では利用
されていないね。
getの引数はnow.YEARとかだな。
printlnの引数はy + ... + "日"という式。

本筋とは関係ないけど、Calendarは日時を表すオブジェクトではないので
nowという誤解させるような名前を付けるのは好ましくない。


57:デフォルトの名無しさん
07/03/06 14:13:12
>>55-56
迅速な対応ありがとうございます。また質問なのですが
上の日付の書式を書くとなるとどう書けばいいのでしょうか?

58:デフォルトの名無しさん
07/03/06 14:18:06
SimpleDateFormat

59:デフォルトの名無しさん
07/03/06 14:28:21
何も知らない俺がiアプリで計算機程度のソフト作れるようになるには
どのくらいの時間かかりますか?

60:デフォルトの名無しさん
07/03/06 14:52:25
そんなことを2chに聞きに来るような人には一生無理だと思います。

61:デフォルトの名無しさん
07/03/06 14:54:04
>>59
「作る時間」じゃなくて「作れるようになるまでの時間」って事?
今からでも作れるよ。君に足りないのは技術力じゃなく決断力だ。

62:デフォルトの名無しさん
07/03/06 14:55:32
>>15
普通に見られるぞ。

63:デフォルトの名無しさん
07/03/06 14:56:19
>>13
native2asciiとか使ったことある?

64:デフォルトの名無しさん
07/03/06 14:57:37
>>17
Eclipseは専用スレがあるから、一応、そちらで。

【初心者】EclipseでJavaの勉強 2時間目【大歓迎】
スレリンク(tech板)
【Java/C/PHP/Perl/Ruby/Python/TeX】Eclipse M22
スレリンク(tech板)


65:デフォルトの名無しさん
07/03/06 14:59:48
>>29
でたー、これわざとやってるとしか(ry
ファイル名.java.txtになってたってやつかー


66:デフォルトの名無しさん
07/03/06 15:01:41
>>40
コンパイルオプションで指定した文字コードは?

だめならとりあえずnative2ascii

Stringオブジェクトを使うとき、文字コード指定していないとかでは?
JISAutoDetectとか昔、懐かしいことしていた記憶がある・・・・


67:デフォルトの名無しさん
07/03/06 15:02:56
質問に答えればいいのにプログラマってごちゃごちゃうるさいね。

>>59
適当だけど40時間(8h/日なら5日間、4h/日なら10日間)ぐらいじゃない?
計算機ロジック自体は簡単だけど、
開発ビルド環境、iアプリの作り方、サーバへのアップとダウソでハマると思う。

68:デフォルトの名無しさん
07/03/06 15:03:48
>>63
>>66

>>13

69:デフォルトの名無しさん
07/03/06 15:03:56
思うんだが、丸文字丸文字いうてるやつは
丸文字の意味を間違えてないか? と突っ込んでみる。



70:デフォルトの名無しさん
07/03/06 15:04:50
>>67
つうか、お前がプログラマなんだろ。
俺はプログラマじゃないから答えてやらないよ。

71:デフォルトの名無しさん
07/03/06 15:06:17
丸文字といえば、やはりこれ

丸文字書体の手書き風TrueTypeフォント「ことり文字ふぉんと」v1.0が公開
先端が尖っていない滑らかな女の子らしい運筆で書かれている

URLリンク(www.forest.impress.co.jp)

72:デフォルトの名無しさん
07/03/06 15:07:14
>>67
おまえは、場合によっては、質問者に
余計なお世話だと思われることだろう。


73:デフォルトの名無しさん
07/03/06 15:08:01
そもそも>>67の発言はあくまで推測だし。
単なる丼勘定



74:デフォルトの名無しさん
07/03/06 15:08:34
>>67
相手は「何も知らない」って言ってるんだぜ?
あの質問から読み取れる情報は「日本語は理解できている」程度なんだぜ?

75:デフォルトの名無しさん
07/03/06 15:19:03
>>67
お前の解答って「作る時間」じゃねーの?w
質問は「作れるようになる時間」だぞ。
『質問に答えればいいのに』答えられてないじゃんwwwww

76:デフォルトの名無しさん
07/03/06 15:19:30
>>70>>72-74
必死すぎ

77:デフォルトの名無しさん
07/03/06 15:23:37
>>76
本人乙

78:デフォルトの名無しさん
07/03/06 15:28:52
何この自作自演連レス

79:デフォルトの名無しさん
07/03/06 15:39:01
>>67
あれてるけどさんくす。

環境は整いました。
アップダウンは昔HP作ってたからたぶん問題なし。

が、プログラム自体に戸惑って止まってます。
BASICはやったことあったけど、javaとは全然違うね。難しい。


80:デフォルトの名無しさん
07/03/06 15:53:14
1.4対応の本は虎対応本に買い換えたほうがいいの?

81:デフォルトの名無しさん
07/03/06 16:10:42
使えなくなるわけではないが、別途Tiger(つーかいまはその次のMustangが最新)
の知識を得る必要はある。


82:デフォルトの名無しさん
07/03/06 16:13:11
コンパイルはでける。
実行すると、下記の表示される↓

[Fatal Error]:1:5: Invalid byte 1 of 1-byte UTF-8 sequece.

実行ソースは、やさしげなJava活用編、XML文書をDOMによって読み書きする(p291)です。

83:デフォルトの名無しさん
07/03/06 16:26:22
JOptionPane.showInputDialogのダイアログに出てくるテキストフィールドに、
初期状態から文字を表示させておくことはできないのでしょうか?

84:デフォルトの名無しさん
07/03/06 16:31:24
>>82
いきなりなんの話だ?

XML中に表明しているエンコーディングと実際のエンコーディングが
食い違ってるんじゃないの?


85:デフォルトの名無しさん
07/03/06 16:37:53
>>83
初期値を指定できるshowInputDialogを使う。
1.4以降なら3つあるはず。


86:デフォルトの名無しさん
07/03/06 16:40:28
>85
~Dialog("Your Name?","65")

87:デフォルトの名無しさん
07/03/06 17:04:38
>>85-86
ありがとうございました。無事解決しました。

88:デフォルトの名無しさん
07/03/06 17:06:44
>82は解決しませんでした。
諦めました、スルーして下さい。

89:デフォルトの名無しさん
07/03/06 17:39:16
>>76
質問者本人か?

質問する前に日本語を勉強しようや。

さもなければ、半島に帰りな

90:デフォルトの名無しさん
07/03/06 17:40:05
>>79
また自演だ。コテハンぴゅあとかいうドトネト厨の荒らしだろお前w

91:デフォルトの名無しさん
07/03/06 19:12:15
>>88
諦めるもなにも読んだまんまだが?
まずはxmlの仕様を勉強しろ

>>84
正確には文字コードが指定されてなかったんでパーサがサポートするデフォルトの文字コードで読みに行ったらテキストのエンコードがUTF-8じゃなかったから仕様に従って致命的なエラー扱いにしたんだな。

何も考えてない奴が一番初めにコケるテンプレ嫁以前の問題だな。ググれば幾らでも出てくる。

92:デフォルトの名無しさん
07/03/06 20:10:53
>>82
バイナリエディタで開いて1byte目にBOMついてないか確認しろ。

93:デフォルトの名無しさん
07/03/06 21:14:39
javaファイル、xmlファイル、どっちがBOM付きでどっちがUTF-8?

94:デフォルトの名無しさん
07/03/06 21:21:59
mustangからBOM付きUTF-8扱えるようになってたような。

95:デフォルトの名無しさん
07/03/06 21:29:15
javaファイル
→BOM付きshift_jis
xmlファイル
→BOM無しshift_jis
ですよね?よね?

96:デフォルトの名無しさん
07/03/06 21:35:55
BOMってのはUTF-16の話だ。


97:デフォルトの名無しさん
07/03/06 21:52:34
>>96
URLリンク(unicode.org)
> Q: Can a UTF-8 data stream contain the BOM character (in UTF-8 form)?
> A: Yes, UTF-8 can contain a BOM.

URLリンク(bugs.sun.com)
UTF-8 decoder handling of byte-order mark has changed

98:デフォルトの名無しさん
07/03/06 23:01:15
原因がわかりまちた。
xmlファイルの文頭にこれ→<!--注釈-->をつけたことが原因でしたぁ~ん
(:D)| ̄|_ ごめんなご

99:デフォルトの名無しさん
07/03/06 23:45:51
ソケットのストリームにおいて、コネクションを維持しながら
文字ストリームで通信した後にオブジェクトストリームで通信をしたいのですが、
文字ストリームのcloseメソッドの呼び出しって行う必要はあるのでしょうか?

100:デフォルトの名無しさん
07/03/06 23:50:43
らくしてかれいにスレッド99コメント99げっとかしらかしら~
(:D)| ̄|_

101:99
07/03/07 00:16:57
それは気がつかなんだ。
(:D)| ̄|_ ごめんなご

102:48
07/03/07 01:50:52
すれ違いだったんだろうか…
ここまで見事にスルーされるとは思ってなかったぜ。


103:デフォルトの名無しさん
07/03/07 02:19:25
>>102
SWT関連なら専用スレがあるよ
スレリンク(tech板)l50

104:デフォルトの名無しさん
07/03/07 03:42:07
StreamTokenizerで
自然対数表示で書かれたdouble値を読み込むことってできないでしょうか?

例えば、2.52224e-005という文字列を読み込んだときに
0.00025224 と認識させたいのですが、

double a = st.nval;

とすると、a=2.52224となってしまいます。

105:デフォルトの名無しさん
07/03/07 03:52:52
>>103
そこGUIだから

106:デフォルトの名無しさん
07/03/07 03:58:56
>>106
それ、常用対数。

107:104
07/03/07 04:00:20
>自然対数表示で書かれたdouble値を読み込むことってできないでしょうか?

自然対数表示じゃなくて、指数表示の間違いでした

108:デフォルトの名無しさん
07/03/07 04:17:32
(:D)| ̄|_
メインOSとデータをフォーマットしてしまったぜ!
イェィ( ̄ー ̄)b

109:デフォルトの名無しさん
07/03/07 04:23:40
>>105
だから何?

110:デフォルトの名無しさん
07/03/07 04:40:06
>>107
URLリンク(java-house.jp)

111:デフォルトの名無しさん
07/03/07 05:04:04
>>105
??GUIだから誘導されてるんじゃ・・・

112:104
07/03/07 05:25:00
>>110
ありがとうございます、解決しました~

113:デフォルトの名無しさん
07/03/07 09:08:49
なんだよ1日たってみたら自演扱いかよ。
しかもわけわからんコテ扱い。
初めてこの板来てこれだしな。

プログラマってのはこんなにレベル低いのか?
それともアホがここにすみついてんのか?

114:デフォルトの名無しさん
07/03/07 09:24:53
自分が馬鹿なのを認識できないクズが一匹いますね

115:デフォルトの名無しさん
07/03/07 09:56:02
誰?
>>67か?

116:デフォルトの名無しさん
07/03/07 12:25:35
うっすら涙目の>>113登場。

117:デフォルトの名無しさん
07/03/07 14:08:47
入力ファイルから値を受け取りそれぞれのクラスで処理してその結果を
出力ファイルにだすっていうプログラムを作りたいんですけど
入力ファイルはどういうふううに作成すればいいのでしょうか?
メモ帳からではないですよね?


118:デフォルトの名無しさん
07/03/07 14:20:27
>>113
ん、母体が大きくなるとアホも居ますわ。すまんこやけどスルーしたってください。

119:デフォルトの名無しさん
07/03/07 14:23:30
>>117
> 入力ファイルから値を受け取りそれぞれのクラスで処理して
の部分が曖昧なのでなんともいえない。

メモ帳でも作れるかもしんないし、作れないかもしれない。

120:デフォルトの名無しさん
07/03/07 14:23:44
>>117
入力ファイルがテキストファイルならメモ帳で作っても問題ないんじゃない?

というか、やりたいことに対して、その意味が自分で分かってないってことは
・・・・宿題?
宿題が分からない場合は
1.友人に相談
2.教師に相談
3.宿題スレで相談
こんな感じでリアルをもう少し活用してみましょう。

121:デフォルトの名無しさん
07/03/07 14:30:31
レス、ありがとうございます。
すみません言葉たらずでした…
レコード形式?みたいにデータを入力していってその
値を受け取るって形にしたいのですがこういうのは
メモ帳で作れます?

122:デフォルトの名無しさん
07/03/07 14:37:56
レコード形式って?


123:デフォルトの名無しさん
07/03/07 14:39:15
>>121
作れるかどうかメモ帳起動してみればいいんじゃないのかな?

124:デフォルトの名無しさん
07/03/07 15:54:56
>>113
ならプログラマやめれば?


125:デフォルトの名無しさん
07/03/07 16:07:27
Javaを用いて、既存のファイルやフォルダのコピー、移動を行いたいのですが、
どのような方法がありますか?

Fileクラスにロードしたファイルを、renameTo()メソッドで移動をしてみたのですが、
ディレクトリをまたいだり、ルートフォルダが異なったりするとうまくいきません。
API仕様書には、環境に大きく依存すると書いてあり、確かにそのような気配がします。
(ちなみに、環境はWindowsXPです。)

Runtime.exec()や、ProcessBuilderを用いてバッチ処理のような形で実現させるしかないのでしょうか?
あるいは、java.ioパッケージを駆使するしかないのでしょうか?
その場合は、どのクラスを使うと便利か、示唆していただけないでしょうか。

126:デフォルトの名無しさん
07/03/07 16:21:55
Jakarta Commons IOあたりにあるかとも思ったが、ないね。


127:デフォルトの名無しさん
07/03/07 17:53:12
Swing関係のAPIに書かれてる
「警告: このクラスの直列化されたオブジェクトは、今後のSwing リリースと・・・略・・・XMLEncoderを参照してください。 」
の意味がよく分かっていないのですが
「XMLで書け」って意味でしょうか?

128:デフォルトの名無しさん
07/03/07 18:11:25
>>XMLEncoderを参照してください
とりあえず嫁。なぜ読まん?

129:デフォルトの名無しさん
07/03/07 18:14:28
>>128
既に何度も読んだ。マジで意味が分からん・・・。

130:デフォルトの名無しさん
07/03/07 18:17:51
シリアライズしてもいいけど、Serializableを使うとバイナリ互換問題が
ついて回るので、RMIみたいな短期の場合にのみ使ってくれ。保存して
おいて別バージョンのSwingで読めなくてもしらないよ。そういう用途に
はXMLEncoder/Decoderを使ってくれ。



131:デフォルトの名無しさん
07/03/07 18:26:48
各環境に合わせてコンパイルし直せ
さもなくばXMLEncoder使え

って事であってます?

132:デフォルトの名無しさん
07/03/07 18:30:41
ちゃうちゃう
シリアライズしたものをファイルとかに保存して、それ読み込んで使ったりすると
JREのバージョンが変わったときに読めなくなる/使えなくなるよってこと。

133:デフォルトの名無しさん
07/03/07 18:34:29
>>131
うーん、そうじゃなくて、他のバージョンのJVM上にオブジェクトの
シリアライズイメージを送ったとき、問題出るかもしれんよ、ということ。
コンパイルし直ししても、

JDK6の javax.swing.Hogehoge
をJDK8 のJVM上に送ったとき、そこでインスタンスが復元出来ないかもしれないってこと。
具体的には、そのクラスの serialVersionUID が将来変えられる可能性があるということかな。

134:デフォルトの名無しさん
07/03/07 18:34:56
>>132
お手数掛けました。
ありがとうございました。

135:デフォルトの名無しさん
07/03/07 19:37:58
>>126
あるだろう。コピーくらいなら。


Runtimeなんていらない。

java.ioだけでどうにかできるはず。
根性いるかも知れないけど。

まずFileクラスでフォルダを指定して、
フォルダの中をdir()で再帰的に調べて記憶しておく。

つぎに移動やコピー。
ここでは、移動(コピー)先フォルダを指定したら。
移動(コピー)先フォルダ名のパス文字列をつかってFileクラスでディレクトリ作成。
あとは同じディレクトリにファイルやサブディレクトリなどを再帰的にコピー。



136:デフォルトの名無しさん
07/03/07 19:38:41
>>129
SerializableがXMLEncoderに変わっただけ。

つうかググれ。


137:デフォルトの名無しさん
07/03/07 19:39:51
>>131
ここに答えが乗っている

URLリンク(ja.wikipedia.org)

138:デフォルトの名無しさん
07/03/07 19:52:07
>>135
ファイルの中身だけコピーするならなんとかなると思うけど。

属性とか所有者とか、シンボリックリンクではコピー先にシンボリックリンクを作るとか、
そーゆー事まで考え出すと java.io だけじゃ無理のような。

139:デフォルトの名無しさん
07/03/07 20:43:09
>>136
おまえはその前に、リロード汁w

140:デフォルトの名無しさん
07/03/07 22:38:44
Mac OS X使ってます。
OS XにはAPIドキュメントというものはないんでしょうか?
Eclipceで日本語のホバー表示をするために、
MergeDoc(URLリンク(mergedoc.sourceforge.jp))というのを入れたいんですが、
APIドキュメントというのが必要らしいです。

141:デフォルトの名無しさん
07/03/07 22:47:18
>>140
/System/Library/Frameworks/JavaVM.framework/Versions/バージョン/
Home/docs/


142:デフォルトの名無しさん
07/03/07 23:02:33
>>141
/System/Library/Frameworks/JavaVM.framework/Versions/バージョン/
Home/
まではあるんですが、docsフォルダがないです。。。

143:デフォルトの名無しさん
07/03/07 23:10:40
ああ、ADCからダウンロードしないとないかも。


144:デフォルトの名無しさん
07/03/07 23:13:57
URLリンク(www.apple.com)
これか?


145:デフォルトの名無しさん
07/03/08 00:00:56
ActionListener等ってFrameとかにimplementsして使うのが普通ですか?
この方法だと自分のやりたい事がどうもスッキリとできないんです

146:デフォルトの名無しさん
07/03/08 00:10:24
オセロや将棋のプログラムを作りたいのですが、どのプログラム言語が適しているのか教えてください。
プログラムの知識は、どの言語でも使うif文とかfor文とかを最近覚えた程度の全くの初心者です。
数学は独学だけど大学程度の数学なら分かるつもりです。論文や専門書もかなり読みました。
アルゴリズムとか超興味あります。
しかし何から手をつければ良いのか検討が付かないのアドバイスをください。
ちなみに学生なのでPCを買うお金が無いので学校の5~10年ぐらい昔の古いPCが開発環境です。

147:デフォルトの名無しさん
07/03/08 00:13:18
オセロや将棋程度ならなんでもOK。
強いて言えば、VBがユーザインタフェースを作りやすいけど、開発環境にお金がかかる。
Javaなら無料だけど古いPCでは厳しいか。


148:デフォルトの名無しさん
07/03/08 00:13:53
lisp

149:デフォルトの名無しさん
07/03/08 00:15:38
>>145
- 複数箇所で使い回すならクラス(場合によってはメンバークラス)。
- その場限りなら匿名クラス。
にしている。


150:145
07/03/08 00:22:34
>>149
具体的に言えば、

Aボタンを押したらBテキストフィールドから値を受け取り
Cテキストフィールドを更新するといった処理を複数作る

という事をしたいんですが、この場合はメンバクラスとして作るのがスマートですかね?
おそらく匿名クラスや普通のクラスではややこしい書き方をしないと出来ないと思うので

151:デフォルトの名無しさん
07/03/08 00:33:13
>>150
フレームのメンバーになっているボタンやテキストへのアクセスが出来た
ほうが便利だろうから、メンバークラスがよいように見える。


152:145
07/03/08 00:40:31
>>149,151
レスありがとうございます
その辺りのスコープの問題はメンバクラスにする事で何とかするのが普通なんですね

ボタンやラベルを一つのパネルに纏めてしまって、そのパネルもメンバクラスに・・・
なんてすればさらにコードが読みやすくできるのかなぁ

153:デフォルトの名無しさん
07/03/08 02:11:06
>>138
パーミッションだけならJavaでもできる。

他は・・・
Runtimeとかかねえ

Jakarta Commons VFSでにたようなことできなかったかな・・・

154:デフォルトの名無しさん
07/03/08 02:17:36
>>145,152
乗り遅れた…
個人的にはオブジェクトの役割が比較的きっちり分かれるMVCが好み

URLリンク(java.sun.com)
↑英語ですが…日本語でも山ほど資料はあるのでググってみて

ちゃんと設計すればプラガブルになるので変更や拡張が楽だしぃ



155:デフォルトの名無しさん
07/03/08 03:55:02
>>111
よく読め。
GUIの話題なんて一言も振ってない。

156:デフォルトの名無しさん
07/03/08 04:03:14
その通り
キーイベントやウィンドウのリサイズが利かないって話題なんだからCUI関係だよ
GUIと間違えちゃいかん

157:デフォルトの名無しさん
07/03/08 04:21:08
APIリファレンスって印刷して使うものなの?
ものすごい量になる悪寒

158:デフォルトの名無しさん
07/03/08 04:46:51
>>157
お前の想定している状況がイマイチ分からん。

シリアライズの話だけどそもそもアプリケーションプログラマがSwingコンポーネントをシリアライズするってどういう場合?

元々シリアライズってファイルシステムなんかに永続的にオブジェクトの状態を保存する目的のものじゃないでしょ?
ネットワーク超えてたれ流すためでしょ?

シリアライズを永続的な保存目的に使いだしたからXMLEncoder/XMLDecoderが出てきたの?

159:デフォルトの名無しさん
07/03/08 07:10:33
永続的な目的云々もそうだが、ことさらSwingのAPIにだけシリアライズに
よるバージョン問題のことが書いてある理由も謎だ。


160:125
07/03/08 08:04:27
>>126
>>135
>>153
返答ありがとうございます。
手間が掛かりそうなので、簡単に実現できそうなRubyに乗り換えることにしました。
Swingが使えないのが残念ですが。
ちなみに作ろうとしていたのはエロ画像の自動整理プログラムでした。

161:デフォルトの名無しさん
07/03/08 10:01:01
ひとつのつながったテキストを区切って別々のページに保存したいときって
どうすればいいですか?

162:デフォルトの名無しさん
07/03/08 10:02:30
>>153
6.0 のパーミッション操作も全部じゃないよ。

外部ライブラリ使うなら、JConfig 使うとかした方が楽かも。

163:デフォルトの名無しさん
07/03/08 10:03:34
>>161
「別々のページに保存」ってのが具体的に何したいのかわからん。

164:デフォルトの名無しさん
07/03/08 10:10:33
えと、100行のテキストがあったとして、10行ずつ区切って
別のファイルに保存ってことです。

165:デフォルトの名無しさん
07/03/08 10:16:31
言ってる事をそのままコードにするだけだからどこがどう出来てないのか情報がないと教えようがない

166:デフォルトの名無しさん
07/03/08 10:19:44
URLリンク(java.sun.com) にAPIドキュメント追加されてる。

167:デフォルトの名無しさん
07/03/08 10:55:36
今クローラーってのを作る課題なんですけど、リンク先をページから
拾ってきて、ページごとに保存しなくちゃいけないんです。
で、リンク先抜き出してソース落とすとこまではできたんですけど、
全部つながってひとつのファイルに保存されちゃうんで、それを
区切って保存したいってことです。

168:デフォルトの名無しさん
07/03/08 11:03:08
>>167
再帰的にやればいいんじゃね?


169:デフォルトの名無しさん
07/03/08 11:18:38
>>167
> 全部つながってひとつのファイルに保存されちゃうんで
……。つなげなければ良いんじゃね?

170:デフォルトの名無しさん
07/03/08 11:46:43
何でつながるのかわかってないんじゃね?

171:145
07/03/08 12:33:17
>>154
レスありがとうございます

>ちゃんと設計すればプラガブルになるので変更や拡張が楽だしぃ
確かにメンバクラスにすると再利用が難しくなるかなぁと思ってました

そこでMVCという単語を絡めて検索した所
まさに今考えていた事が既に話し合われていた場所を発見する事ができました
URLリンク(www.atmarkit.co.jp)

まだしっかりとは読んでいないのですが、これで気持ちよく開発が進めれそうです
本当にありがとうございました ;D

172:デフォルトの名無しさん
07/03/08 14:10:21
商品番号、日付、単価、数量
0001,20070308,1200,50
とテキストファイルに記入。

日付の値は日付の処理を行うメソッドに渡し、単価と数量の値は
計算する処理を行うメソッドに渡す。
ということをしたいのですが可能でしょうか?
可能ならばやり方を教えていただきたいです。

173:デフォルトの名無しさん
07/03/08 14:10:59
>>167
そもそもなんで繋がってんのか分からんがクローラー作るならWWW Wanderer(Wandex),
Aliweb, WebCrawlerを調べてみな?

まあ、見つけられたらの話だが・・・国内鯖で見つからんなら

URLリンク(en.wikipedia.org)

で調べりゃあるから、ちゃんと探せば技術文書も論文も化石が埋まってるから。(但し殆どがwwwの歴史の論文だけど)

AliwebとWebCrawlerは存命の筈だけど

#あと鯖に迷惑だから素人にそんなもん作らせるなと糞講師に言っとけ!(-Α-")

174:デフォルトの名無しさん
07/03/08 14:13:46
>>172
屑仕様な宿題は出しても不可能な仕様の宿題を出す訳ないでしょ?
宿題スレのテンプレ持ってお引っ越ししましょうね?

175:デフォルトの名無しさん
07/03/08 14:14:21
>>172
split

176:デフォルトの名無しさん
07/03/08 14:17:22
2chに宿題訊きにくるような奴と将来一緒に仕事したくないなあ

177:デフォルトの名無しさん
07/03/08 15:09:13
>>168
そして再帰的にやって
相互リンクで永久ループにハマってあぼーん

178:デフォルトの名無しさん
07/03/08 15:11:00
>>176
たんと礼儀とルールと一般常識をわきまえて聞くなら良いけど
質問に答えてくれないと逆ギレするようなやつとは一緒に仕事したくないよな~


179:デフォルトの名無しさん
07/03/08 17:30:50
>>177
基底条件ってもんくらい分かってるだろ?
でなきゃループ内で再帰やったとき止まらんw

180:デフォルトの名無しさん
07/03/08 18:32:06
1つのjavaファイルに、複数の public class を記述すると、
コンパイルしたときに、$付きの class ファイルが生成されます。
こんな書き方ありなんでしょうか?

181:デフォルトの名無しさん
07/03/08 18:47:22
>>180
JVMの身にもなってみろ

182:デフォルトの名無しさん
07/03/08 19:16:30
>>180
あり。

> 1つのjavaファイルに、複数の public class を記述すると、
入れ子になったクラスなら $ とかがつくし、
トップレベルに public なクラスが複数あったら
コンパイルエラーにしないと言語仕様に反する。

183:デフォルトの名無しさん
07/03/08 19:57:55
Javaのことはまったくわかりません。
場違いだったら構わず指摘してください。よろしくお願いします。

URLリンク(www.strangepuzzle.com)

このサイトにあるルービックキューブ用のタイマーを
動かしたいのですが、ダウンロードしたあと
何をしたらいいのかまったくわからないんです。

どうすればタイマーを動かすことができるのでしょうか。


184:デフォルトの名無しさん
07/03/08 21:09:20
>複数の public class
コンパイラ通るのか!?

185:デフォルトの名無しさん
07/03/08 21:10:26
質問させてください。

例えば、DBの1レコードごとに一つのHTMLページのソースが入ってる状態があります。


1レコード目 1 トップページ
2レコード   2 サブページ1
3レコード   3 サブページ2

HTTPリクエストに応じたレコードをJSPで表示で表示しているとします。

通常ならリクエストの形は
URLリンク(hogehoge.jsp?id=2)<)

↑のリクエストの形で2レコード目の要求として扱う方法はないでしょうか?
2ちゃんねるみたいに
スレリンク(tech板)
というふうにクエリ使わないで/だけでやる方法をさがしています

186:デフォルトの名無しさん
07/03/08 21:46:42
javax.servlet.http.HttpServletRequest#getPathInfo()

187:デフォルトの名無しさん
07/03/09 00:14:40
javaで英単語教材を作ってます。
今は、ボタンを押すごとに

//空所補充問題文
The rocket launch had to be ( ) because of unexpected bad weather.

//空所に入る選択肢
・aborted
・allotted
・ascribed
・accumulated

といった感じで、50個ぐらいある問題文と選択肢のセットをテキストファイルから画面に
readLine()で表示させているのですが、今の方法だとテキストファイルに並んでいる
順番でしか表示されません。やりたいことは次のとおりです。

1.この問題文と選択肢のセットをランダムな順番で表示させたい。
2.選択肢も、常に同じ4つの単語ではなくランダムな組み合わせで表示させたい。

ちなみに今は問題文と選択肢のテキストを別々のファイルに保存しているのですが
これも問題ありでしょうか?よろしくお願いします。

188:デフォルトの名無しさん
07/03/09 00:45:19
import java.io.*;
import java.util.*;
public class EnglishTest1 {
public static void main(String[] args) throws IOException {
String dataBody = "The rocket launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n"
+ "The missile launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n"
+ "The Vista launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n";
ArrayList<Question> questions = new ArrayList<Question>();
BufferedReader r = new BufferedReader(new StringReader(dataBody));
try {
for (String line; (line = r.readLine()) != null;) {
ArrayList<String> data = new ArrayList<String>(Arrays.asList(line.split(";")));
Question q = new Question();
q.questionText = data.remove(0);
q.choices = data;
q.correctAnswerNumber = 0;
questions.add(q);
}
} finally {
r.close();
}
Random random = new Random();
while (questions.size() > 0) {
Question q = questions.remove(random.nextInt(questions.size()));
System.out.println(q.questionText);
}
}
}
class Question { String questionText; ArrayList<String> choices; int correctAnswerNumber; }


189:デフォルトの名無しさん
07/03/09 00:46:11
あとは自分で。

190:デフォルトの名無しさん
07/03/09 00:59:52
すまん Collections.shuffle(List) の方がいいな
import java.io.*;
import java.util.*;
public class EnglishTest2 {
public static void main(String[] args) throws IOException {
String dataBody = "The rocket launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n"
+ "The missile launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n"
+ "The Vista launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n";
ArrayList<Question> questions = new ArrayList<Question>();
BufferedReader r = new BufferedReader(new StringReader(dataBody));
try {
for (String line; (line = r.readLine()) != null;) {
ArrayList<String> data = new ArrayList<String>(Arrays.asList(line.split(";")));
Question q = new Question(data.remove(0), data, 0);
questions.add(q);
}
} finally {
r.close();
}
Collections.shuffle(questions);
for (Question q : questions) {
System.out.println(q.questionText);
for (String choice : q.choices) System.out.println(" - " + choice);
}
}
}
class Question {
final String questionText; final List<String> choices; final int correctAnswerNumber;
public Question (String questionText, List<String> choices, int correctAnswerNumber) {
this.questionText = questionText; this.choices = Collections.unmodifiableList(choices); this.correctAnswerNumber = correctAnswerNumber;
}
}

191:デフォルトの名無しさん
07/03/09 01:09:34
Generics関係でArrays.sortの質問です。
やじるしのところで警告が出てしまいます。
抑えるにはどうすればいいでしょうかよろしくお願いします。<(_ _)>

ArrayList<Sensyu> al = new ArrayList<Sensyu>();
al.add(new Sensyu("tako", 20 ));// ArrayListにデータを追加
al.add(new Sensyu("yuura", 30 ));
al.add(new Sensyu("ponko", 53 ));

Object[] oa = al.toArray();// 配列に変換

DataComparator dcom = new DataComparator();
Arrays.sort( oa, dcom); //←‥ここで警告:[unchecked] 無検査変換が出てしまいます。

---- ---- ---- -----
public Sensyu(String namaeMoji, int ten ){
namae = namaeMoji;
tokuten = ten ;
}
---- ---- ---- -----
public class DataComparator implements java.util.Comparator{
public int compare(Object o1, Object o2){
return ((Sensyu)o2).tokuten - ((Sensyu)o1).tokuten;
}
}

192:デフォルトの名無しさん
07/03/09 01:31:39
>>191
public class DataComparator implements java.util.Comparator<Sensyu> {

193:デフォルトの名無しさん
07/03/09 02:41:11
>>192さんありがとうございます。
でもまだうまくいきません‥
public class DataComparator implements java.util.Comparator<Sensyu> {
になおして中身を
public int compare(HairetuArraysTest.Sensyu o1, HairetuArraysTest.Sensyu o2) {
return o2.tokuten - o1.tokuten;
}
---- ---- ---- -----

Arrays.sort( oa, dcom);
の部分を ↓
Arrays.sort( (Sensyu[]) oa, dcom); //この行番号でエラーメッセージが出てしまう。
するとコンパイル時に何の警告も出ません。しかし、
実行すると

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [LHairetuArraysTest$Sensyu;
というメッセージが出てしまうのですが、どうしましょ?(o・・o)/~

194:デフォルトの名無しさん
07/03/09 02:49:47
toArray で Object[] に変換してるから。
Sensy[] に変換するよう引数をとる toArray の方を使いましょう。

195:193
07/03/09 03:05:33
>>194さんありがとう
toArray
public <T> T[] toArray(T[] a)
のことですね、

Sensyu[] oa = al.toArray( ここがわかりませんどうしましょドジですいません );

196:デフォルトの名無しさん
07/03/09 04:09:57
>>195
new Sensyu[0]でも何でもいいからSensyu[]型を放り込んでおけば、
もしサイズが足りなければ新たに確保してくれる。
APIリファレンスのtoArrayの項目をきちんと読むんだ。

197:193
07/03/09 04:29:14
>>196さんありがとうございます。
でっ、できました。ヽ(^o^)丿
難解だけどAPIリファレンス出来るだけ読むようにします。
つきあってくれてありがとう‥

198:デフォルトの名無しさん
07/03/09 04:48:13
音声の再生についての質問です。
好きなタイミングで音声を鳴らしたり消したりしたいのですが、
スレッド処理を用いている場合はどう書いたらいいのでしょうか?
startメソッドにac.loop;と書くと延々鳴ってしまいますし、
runメソッド内に書くとやはり音声の冒頭部分だけが繰り返し再生されてしまいます。

ソース
URLリンク(sourcepost.sytes.net)

startメソッドに再生部分を記述
URLリンク(www.za.ztv.ne.jp)

199:デフォルトの名無しさん
07/03/09 10:26:18
どなたかご存知でしたら教えてください。
JavaでPDFを作成するiTEXTにて
テーブルを作成するときに途中でページからはみ出そうなときは
次ページに改ページしてくれる方法ってないでしょうか?
よろしくおねがいします。

200:デフォルトの名無しさん
07/03/09 11:21:38
>>198
アプレットは単音鳴らすか鳴らせ続けるかだからループさせつつ任意のタイミング止めて再開とかしたいなら適当なサウンドエンジン使った方が良いよ。

>>199
どっかで制御方法見た気がするが・・・javadocくらい叩き込んだ?

201:デフォルトの名無しさん
07/03/09 11:30:17
>200
javadocはよくわかりませんが
こちらのサイトでiTEXTのコマンドについては大体わかったのですが
URLリンク(itextdocs.lowagie.com)
質問した内容のサンプルコードが無かったので悩んでます。

202:デフォルトの名無しさん
07/03/09 11:36:18
>200
ありがとうございます。
iTEXTのJAVAdoc見つかりました。
理解できるか分かりませんがちょっと読んでみようと思います。


203:デフォルトの名無しさん
07/03/09 11:39:01
table.tableFitsPage
きっとコレジャン!
200サンクス!

204:デフォルトの名無しさん
07/03/09 13:53:33
>>191
いろいろ解決方法はあるみたいだが、

al = Collections.checkedList(al, Sensyu.class);

を使いたくなってくるなあ。これならObjectなど他の型に渡しても
警告が出なくなる。

@SupressWarning("unchecked")でもいいけどさ

205:デフォルトの名無しさん
07/03/09 14:54:12
URLリンク(sdlc6e.sun.com)
まとめ見てここからダウンロードしようとしてるんですけどこの後どうすればいいんですか?

206:デフォルトの名無しさん
07/03/09 16:47:43
>>205
Accept License Agreement してから
Java(TM) SE Development Kit Documentation 6, Japanese 選べば?
英語版欲しいなら、English の方選んで。

207:デフォルトの名無しさん
07/03/09 16:50:25
>>206
サンクス

208:デフォルトの名無しさん
07/03/09 19:47:33
英語読めない奴が英語版欲しいと思えんが、jdk6のl10n終わって良かったな。
相変わらず変な訳だが

209:デフォルトの名無しさん
07/03/09 20:04:01
そういやなんでJavaって日本語版あるんだろ?

210:デフォルトの名無しさん
07/03/09 20:18:14
むしろ英語マニュアルのが読みやすい俺ガイル

211:デフォルトの名無しさん
07/03/09 21:09:04
>>208
i10n って、日本語訳終わっただけで中国語訳とかまだじゃない?

212:デフォルトの名無しさん
07/03/09 21:37:28
>>209

1. 市場が大きい。
2. 訳の需要が大きい。

日本語は造語力が大きいので高等教育で用いられる用語も訳すことが出来、
結果として日本語しかできなくても高等教育が受けられる。
アジアの準先進国の言語などでそれほど造語力が高くない場合、そこまで
できないので、英語で高等教育を行わざるを得なくなり、結果として高等
教育を受けた人はみな英語が出来るので、英語で困らなくなってしまう。

という意見を聞いたことがある。


213:デフォルトの名無しさん
07/03/09 21:43:59
日本だろうと曲がりなりにも高等教育を受けたら普通英語ぐらいできると思うのだが

もし高等教育の意味が文字通り高卒の事だったのなら謝る

214:デフォルトの名無しさん
07/03/09 21:49:04
>>213
学校教育英語に幻想持ってないか?


215:デフォルトの名無しさん
07/03/09 21:52:08
ただ単にi18nの一環でかつ日本人は母国語版を欲しがる人種ってだけじゃね?

技術文書の翻訳版を欲しがるのは日本人くらいだし

216:125
07/03/09 22:32:27
Rubyでは簡単に実現できたので、再びJavaに戻ってきて作成しています。

ファイルのコピー、移動はFileクラスとFileInputStream,FileOutputStreamあたりを使うことで、簡単に実現できました。

ところでお聞きしたいのですが、InputStreamのread( byte[] buffer )、OutputStreamのwrite( byte[] buffer )で使用する
配列サイズというのは、どれくらいが適しているのでしょうか?
バッファーが大きければ処理が早く済むがメモリの消費量が大きくなる、ということはなんとなくわかるのですが、
適量のバッファーサイズの見当がつきません。

現在主流となっているマシンスペックだと、適量のバッファーサイズとはどれくらいなのでしょうか?

217:187
07/03/09 22:37:51
>>190
返事が遅くなってしまってすみません。
提示していただいたコードを参考にやってみます。
ありがとうございました。

218:デフォルトの名無しさん
07/03/09 22:40:22
>>213
英語で小説読もうとして三日であきらめたことを思い出した
資料としてなら読み進めるのは大して苦じゃないが大量になるとかなりウザい
メインで英語使うなんて信じられん

219:デフォルトの名無しさん
07/03/09 22:54:05
>>216
セオリーは無いと思う。
俺はなんとなく 4kB ~ 16kB あたり取ってるが。

220:デフォルトの名無しさん
07/03/09 23:01:30
>>218
小説と技術文書は全然違うでしょ。
語彙空間がまるで違うよ。
俺自分の専攻の論文ならすらすら読めるけど、
一般向けの小説(ハリウッド映画の原作)は
3ページで挫折しかけてるw

221:デフォルトの名無しさん
07/03/10 00:26:59
jarファイルをダブルクリックしても反応してくれません。
(Test.classファイル)
class Test{
    public static void main(String[] args){
        System.out.println("aaa");
    }
}
これを
 jar cf Test.jar Test.class でjarファイル生成
 jar xf Test.jar でjarを解凍
 マニフェストファイルにMain-Class: Testを追加して保存
 jar cfm Test.jar META-INF\MANIFEST.MF Test.class で再びjarに圧縮
こいつをダブルクリックしてもコマンドプロンプトが出てきてくれないです。
エラーメッセージも出ず無反応です。
ただし、コマンドプロンプトから
 java -jar Test.jar と打ち込むと
aaa と表示されます。
どなたかお助けください。


222:デフォルトの名無しさん
07/03/10 00:47:21
関連付けの問題か、あるいはコマンドプロンプトが一瞬出ているのに気付かないかのどっちか

223:デフォルトの名無しさん
07/03/10 01:00:44
3つの整数をキーボード入力させてそこから計算させるプログラムを作っているのですが、
入力させた文字列の中に英字または小数がある場合、「○個目には整数を入力してください」という
メッセージを表示させたいのですが、Integer.parseIntでの例外をNumberFormatException
で拾うという手段を取ってみたのですが、この場合何個目の入力が整数でないのかを個別に
表示することが出来ません。どの入力が間違っていても同一のメッセージ表示しか出来ません。

この方法以外に入力された文字列の中で整数以外の入力を判別して、どの入力がエラーなのかを知らせる方法はありますか?


224:デフォルトの名無しさん
07/03/10 01:02:50
ちとその部分のコード書いてみ?

225:デフォルトの名無しさん
07/03/10 01:10:12
>>221
Windowsだとjavaじゃなくjavawに関連づけられてるかもしれない。


226:デフォルトの名無しさん
07/03/10 01:31:23
>>222
>>225
ありがとうございます。今見てみましたが、javawなってました。
javaにかえて再びwクリックしてみると一瞬だけコマンドプロンプトが表示されましたが、すぐに消えてしまいました。
これはこういうものなのでしょうか?コマンドプロンプトの画面をずっと表示させておくことは出来ますか?





227:デフォルトの名無しさん
07/03/10 01:45:48
BufferReaderか何か使ってキーボード入力待ちにするのが一番お手軽w

228:デフォルトの名無しさん
07/03/10 01:50:28
今ならjava.util.Scannerを薦めたい。
URLリンク(www.javadrive.jp)

229:デフォルトの名無しさん
07/03/10 02:04:30
なるほど。勉強になりました。ありがとうございました。

230:デフォルトの名無しさん
07/03/10 03:57:05
空の文字列 "" と、null の違いがよくわからない。。。

231:デフォルトの名無しさん
07/03/10 04:16:57
>>230
空の文字列は、長さは0だけど文字列。つまり、Stringのオブジェクトが存在する。
nullは、何もないということ、オブジェクトがないという状態を表す。

232:デフォルトの名無しさん
07/03/10 04:20:30
>>221
パッケージ作っといて修飾名でクラス指定してないって訳じゃなさそうだね。

winの関連づけはjavawだからそれはいじらないでコマンドプロンプトから打て。

CUIプログラムをクリックしても動きません!って発想が既におかしい。プロンプト立ち上げてからならjavaが終了してもプロンプトが残ってて消えないはず。

OSのしくみとかそこら辺を分かってないだけだからまずそこら辺を勉強した方が良い。
てか独学?専門生?

>>230
MS VMだと同義w
nullはObject派生型なんだけど値は何にも関連付けられてない。

空文字列は"\u000000"になるんだっけ?
他言語やってて言語によって定義が違うから掴めないの?
ただ単にjavaのnullが分かってない?
後者ならjavaの本見ればいい。

233:デフォルトの名無しさん
07/03/10 04:39:01
>>232
> MS VMだと同義w
そんな話は聞いた事がない。

> nullはObject派生型なんだけど値は何にも関連付けられてない。
Java では null は null型だよ。空型とか訳される事もあるけど。
Object からは派生してない特別な型。

> 空文字列は"\u000000"になるんだっけ?
は?

薀蓄語りたいなら、ちゃんと言語仕様ぐらい見てからやれ。

234:デフォルトの名無しさん
07/03/10 04:39:56
>>232
>nullはObject派生型なんだけど値は何にも関連付けられてない。

null は null 型のただ一つの値。
Object 派生型でもないし値が関連付けられていないわけでもない。

235:デフォルトの名無しさん
07/03/10 05:39:34
>>232
何か自分の知識を語りたいのは分かるんだが
その表現をする言語力が伴っていないようで少し哀れ
相手の理解力を超えた表現しか出来てないよ・・・・

236:223
07/03/10 06:45:41
>>224
遅いレスで申し訳ありません。

try{
timeAtBat = Integer.parseInt(str1);
sacrifice = Integer.parseInt(str2);
hit = Integer.parseInt(str3);


average = (double)hit / (timeAtBat - sacrifice);

NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(3);

System.out.println("打率は" + formatter.format(average) + "です。");
}
catch (NumberFormatException e) {
System.out.println("数は0~1000の整数で入力ください");
}

str1,2,3はBufferedReaderを使って読み込んでいます。
System.out.println("数は0~1000の整数で入力ください");の部分を
打席数、安打数、犠打数のどの入力が整数でないのかを"~数は0~1000の整数で入力ください"
でそれぞれメッセージを表示させたいのです。

助言をいただけたら幸いです。


237:デフォルトの名無しさん
07/03/10 09:01:07
>>236
parseInt を3つまとめてtry-catchするんじゃなくて、
ひとつづつtry-catchすればわかるじゃん。
あとはカウンタ変数でも作って、今何番目のparseIntやってるかわかるようにするとか。

238:223
07/03/10 09:06:27
>>237
ひとつずつキャッチする手はもうやってみたのですが、やっぱりそれが一番早いですかね?
カウンタ変数のほうをチャレンジしてみたいと思います。
ありがとうございました!

239:223
07/03/10 09:17:34
>>237
忘れてました。ひとつずつtryのすぐあとでcatchしていくと例外は拾えるんですけど、
処理をそこで終われないですよね?その後にある計算式は例外でも実行されてしまって
エラーになってしまいました。
もし、ひとつずつtry-catchしていくのであれば、どこに計算式などを入れるべきですか?


240:デフォルトの名無しさん
07/03/10 09:41:12
>>236
入力ください
で吹いたw

241:デフォルトの名無しさん
07/03/10 09:42:37
>処理をそこで終われないですよね?
return;

242:デフォルトの名無しさん
07/03/10 10:39:34
>>239
try-catchだと記述が長ったらしくなるから、parseをラップするメソッドを作る手もある。
引数は文字列、戻り値はInteger但しparse失敗時はnull。
そのメソッドの中でtry-catchを使う。
.NETにあるTryPaseの亜流みたいなもん。

243:デフォルトの名無しさん
07/03/10 10:55:31
HashMapを使って文字列と数字を扱いたいのですが
HashMap<String, int>はintがObjectじゃないからできないんでしょうか?
この場合HashMap<String, Integer>とするべきですか?

244:221
07/03/10 10:59:49
>>232
スクールに通ってましたが素人同然です('A`)
関連付けはjavawを変更できないとすると、
結局>>221のプログラムはwクリックでは実行出来ないということでしょうか?
誰かにこのプログラムを使ってもらう時に
「コマンドプロンプトからjava -jar Test.jarって入力してね」
と言うのはちと苦しいです。

245:デフォルトの名無しさん
07/03/10 11:03:57
>>243
プリミティブ型は入れられないのでそうする必要がある。
使うときはautoboxing/unboxingが効くので直接プリミティブを使う
コードを書いてもOK。コンパイラがこっそりIntegerに入れたり出したり
してくれる。



246:デフォルトの名無しさん
07/03/10 11:05:08
@echo OFF
java -jar Test.jar

なバッチを一緒に置いておいてもダメだっけか?

最近WindowsでJava使ってないから忘れたわ。


247:デフォルトの名無しさん
07/03/10 11:15:38
>>245
ありがとうございます
色々調べたり実験したりでちょっと遅れてしましました

宣言だけIntegerにすれば、他ではintとして扱っても問題ないんですね


248:デフォルトの名無しさん
07/03/10 11:52:50
>>244
ダブルクリックみたいなGUIど真ん中なことやりたかったら、普通はswingとか使う。
コマンドプロンプトがどうしても必要な場合は>>246の言うとおりバッチでラップすればおk。

249:デフォルトの名無しさん
07/03/10 14:31:28
>>219
ありがとうございます。
調べてみたら、Javaの上位IOクラスは内部バッファとして8192byteつかっていることがわかりました。
その値に統一して使いたいと思います。

250:デフォルトの名無しさん
07/03/10 14:34:43
バッチファイル使うんなら、pause で入力待ちすればOKか。

251:221
07/03/10 15:47:13
バッチファイルというのは初耳でした。
>>246をTest.jarのあるフォルダにa.batとして保存してこれをwクリックで無事実行できました!
皆さんに感謝します。

252:230
07/03/10 17:44:56
なるほど、ヌル文字列とヌルポインタの関係みたいなもんですね(`・ω・´)
遅レスですが、ありがとうございました。

253:デフォルトの名無しさん
07/03/10 17:55:32
Cのようなポインタを使用するプログラムだと常識として覚えてるものだが、
JAVAのようなオブジェクト指向だとポインタ意識しなくていいから知らない人が増えてきたな。
便利になると共に起こる、知識不足の弊害だな。

254:デフォルトの名無しさん
07/03/10 18:10:00
>>253
>JAVAのようなオブジェクト指向だとポインタ意識しなくていいから
んなアホな

255:デフォルトの名無しさん
07/03/10 18:13:10
>>254
ポインタ操作って普通に使わないでしょう。

256:デフォルトの名無しさん
07/03/10 19:23:16
ポインタ演算とか冗長な書き方を許容してないだけでポインタを使ってることを意識しないわけじゃないだろ

257:デフォルトの名無しさん
07/03/10 19:27:04
意識しなくていいというと語弊があるが、
実際に意識していない初心者が増えてきたってことだと思う。

258:デフォルトの名無しさん
07/03/10 21:02:20
private int id;
public int getId(){return id;}
public void showId(){
  System.out.println("idは" + ● + "です。");
}
この場合、●に入れるのはidかgetId()のどっちがいいんかな。
好みの問題でおk?

259:デフォルトの名無しさん
07/03/10 21:03:49
>>216
つうか、他のIOクラスでデコレートすれば
サイズなんて気にしなくても良いはずだが。


260:デフォルトの名無しさん
07/03/10 21:06:24
>>246
つうか、マニフェストとJava Web Start使えよ

261:デフォルトの名無しさん
07/03/10 21:22:11
>>258
getId() がいいと思う。


262:デフォルトの名無しさん
07/03/10 21:27:19
>>261
thx

263:デフォルトの名無しさん
07/03/10 21:39:39
>>261
おなじ暮らすないならidでもいいとは思うけど。

264:デフォルトの名無しさん
07/03/10 23:06:13
>>261
うーん、悩ましい問題だなぁ…好みというか、目的による?
けど、まぁ、getId()のほうが良いと思う。

例えばそのクラスのサブクラスでgetId()をオーバーライドして
getId() { return "00" + id; }
とかしたときに・・・

265:デフォルトの名無しさん
07/03/10 23:11:29
>>264を風呂入る前に訂正

まず、アンカーは>>258に。

あと、
×getId() { return "00" + id; } 
○getId() { return "00" + super.getId(); }

266:デフォルトの名無しさん
07/03/10 23:13:02
>>265
…駄目だ俺(笑

getId()は int なのな。
まぁ意図は汲み取ってください(汗

267:デフォルトの名無しさん
07/03/11 01:21:31
抽象化はその部分における汎用性・再利用性を増すが
同時に複雑さが増し、保守が難しくなる。

また、よく考えられていない抽象化は、
結局それを使う場合に1から考え直す必要があり、
無駄な労力になる。むしろ、誤解を生む弊害すらある。

そして、「よく考える」とは言っても難しく、的外れになることが多く、
無駄な抽象化がプログラム中に散乱することになりやすい。

そこで、アジャイル的には、まず単純に作って、
例えば顧客に叩いてもらって、抽象化が必要なところを早期に発見する。
(テスト駆動なら、まずテストに叩かれるだろう)

その観点から見ると、
必要と分かるときが来るまで getId() よりも id を使うのがいい。

268:デフォルトの名無しさん
07/03/11 03:00:38
外から見ることを基準に考えちゃ駄目なのかな。
getId で取得した値と showId で表示した値は、大抵の場合で一致しなければおかしいから、
直感的に考えた場合は id より getId のほうが適切だろうと思う。たとえ getId が final だったとしてもね。

269:デフォルトの名無しさん
07/03/11 03:05:07
追記:「外から見る」ってのは、id が private であって外から見れないことも含めてる。
外から見た場合、id を使うと 『何かよく分からないけど ID の内部表現を showId が表示している』 ってなって分かり難いんじゃないかと。

270:デフォルトの名無しさん
07/03/11 08:53:30
>>268-269
同意

使う側の視点で考えるのがいいと思う
idという情報をを操作したい人のためのものなのだからその人のことを
考えなければ、悪く言えば独りよがりな実装になってしまうと思う

271:デフォルトの名無しさん
07/03/11 09:06:40
俺の経験から言うと、極力生のフィールドは使うべきではない。
ボトルネックになる可能性、どうしても生フィールドでなければできない処理などは
例外的に使用を許可する、くらいの縛りを加えるようにする方が良い。
トラブル対応、仕様変更対応には絶対にこの方針が必要。無いと死ぬ。大規模だとね。

272:デフォルトの名無しさん
07/03/11 09:19:12
使う場所によってフィールドを直接参照したりgetter経由だったり
まちまちなのは良くない。


273:デフォルトの名無しさん
07/03/11 11:09:41
モジュール結合度の観点から考える結合度は低い方が独立性が高いため、
データ結合で単一のデータを引数として渡すべき。

274:デフォルトの名無しさん
07/03/11 11:29:20
iを打てば補完できるのでid。
getterはgetIまで打たないと補完が面倒。

275:デフォルトの名無しさん
07/03/11 12:02:11
>>271
同意!

>>274
開発時に面倒臭がって楽しようとすると後々痛い目にあったりする予感


276:デフォルトの名無しさん
07/03/11 12:32:01
30個近くのclassファイルをjarにコンパイルするにはどうすればいいんですか?

277:デフォルトの名無しさん
07/03/11 12:49:20
>>276
jar cf foo.jar *.class
詳しくはここを読め。
URLリンク(java.sun.com)
「jarにコンパイル」と言われると違和感を覚えるな。

278:デフォルトの名無しさん
07/03/11 13:17:31
>>274
getまで打てば、そのクラスのアクセッサが一覧出来るのでむしろ便利。
フィールド名だとごちゃごちゃしてる。
>>271
んだんだ。
それに、遅延初期化の為にも入れているかな。
private Hogehoge hogehoge;
public Hogehoge getHogehoge(){
if( hogehoge==null ){
hogehoge = new Hogehoge();
}
return hogehoge;
}

(synchronized はどうしたとかややこしい話は取りあえず抜きな、初心者スレだと荒れそうだから)

279:デフォルトの名無しさん
07/03/11 13:25:43
>>278
フィールドが20個あればgetまで打っても20個出てきてそこから選ばないといけない。
変数名なら頭文字打つだけで絞り込める。
まあ俺はthis.をつけるのでそこまで打つだけでOKのときもあるが。

280:デフォルトの名無しさん
07/03/11 13:26:13
>>277
j2re1.4.2_13 をDL、インストールしてみたのですがこの後がわかりません
コマンドプロンプトに打ち込んでも

'jar' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

とでてきてしまいます;;

281:デフォルトの名無しさん
07/03/11 13:59:17
パスが通ってない
>>1を読め

282:デフォルトの名無しさん
07/03/11 14:06:44
>>280
j2re だと jar 入ってないような。 j2dk か jdk 使え。

283:デフォルトの名無しさん
07/03/11 14:07:40
>>280
コマンドプロンプトに
java -version
って打ってみ?

284:デフォルトの名無しさん
07/03/11 14:45:08
フィールドが20個あったらthis打っても20個候補が出るだろうによw

285:デフォルトの名無しさん
07/03/11 14:48:50
JAVAでもプロパティ導入すればいいのに・・・
わざわざ毎回アクセッサメソッドつくるとフィールド参照からメソッド記述にするのめんどくさい。

286:デフォルトの名無しさん
07/03/11 14:49:35
>>284
getと3文字打つのが怠いんだろうね。
って、どんだけwwww

まぁ、publicアクセス不要なフィールドにはgetter付けないから
20個フィールドがあってもホントはもっと絞れるんだけどね。

287:デフォルトの名無しさん
07/03/11 14:55:29
>>285
リファクタリング機能がある開発環境使えば良いじゃん。

288:デフォルトの名無しさん
07/03/11 14:56:56
>>285
jdk7の議論でプロパティは話題に上っている。

[mustang/Java SE 6] 次世代Javaの動向 4 [dolphin]
スレリンク(tech板)
の中に、情報へのポインタがあるよ。

まだ本決まりじゃなくて構文は揺れてるだろうけど、
クロージャよりは揉めずに入りそうな気がしてる。

289:デフォルトの名無しさん
07/03/11 15:19:31
>>258
つ もしかして "自己カプセル化"

290:デフォルトの名無しさん
07/03/11 15:38:54
>>265
同じクラスないであればthis.idで良いジャマイカ

スーパーなときだけgetId()

291:デフォルトの名無しさん
07/03/11 15:40:32
>>278
Factory MethodパターンやFlyweightパターンで
改造したくなってくるなあ。


292:デフォルトの名無しさん
07/03/11 15:41:42
>>284
どういうクラスなんだか。委譲も集約を
ちゃんと使っていれば極力減らすこともできよう

293:デフォルトの名無しさん
07/03/11 15:42:06
>>285
IDEで自動生成しろよ


294:デフォルトの名無しさん
07/03/11 16:42:11
>>292
たとえば携帯電話のスペックをオブジェクトで表現しようとしたら
20なんて軽く超えると思うけど。どうやって削るの?

高さ

厚さ
質量
連続待受時間静止時
連続待受時間移動時
連続通話時間音声通話時
連続通話時間テレビ電話時
液晶サイズメインディスプレイ
液晶サイズサブディスプレイ
液晶最大同時発色数メインディスプレイ
液晶最大同時発色数サブディスプレイ
液晶解像度(ドット数)メインディスプレイ
液晶解像度(ドット数)サブディスプレイ
名前最大登録件数
電話番号最大登録件数
メールアドレス最大登録件数
メール保存容量送信メール
メール保存容量受信メール
iアプリ保存件数
ミュージックプレーヤー
バックグラウンド再生
連続再生
iメロディ・着信メロディ
バーコードリーダー
赤外線通信対応
Bluetooth通信
FOMAプラスエリア対応

295:デフォルトの名無しさん
07/03/11 16:49:44
携帯電話という込み入ったものをひとつのクラスで完結させようとするという発想が恐ろしい気がする
液晶が別のメーカーのだったら一気に変えないといけないんだよな、そのクラス……

296:デフォルトの名無しさん
07/03/11 16:54:28
>>294
なんで無理して一つのクラスでやるんだよw

297:デフォルトの名無しさん
07/03/11 16:54:52
いやいや、例ですよ。車でも住宅でもなんでもいいけど変数が20なんて珍しくない。

298:デフォルトの名無しさん
07/03/11 17:00:53
>>295の言葉を借りるが、
車でも住宅でもなんでもいいけど込み入ったものをひとつのクラスで完結させようとするという発想が恐ろしい気がする

299:デフォルトの名無しさん
07/03/11 17:02:24
オブジェクト指向なんだから、きちんと設計してから作らないとね。
まず、デザインパターンを覚えるといいかな。

300:デフォルトの名無しさん
07/03/11 17:08:54
だー、論点そこじゃねえええ。
1つのクラスですべてを完結させるなんて一度も書いてねえ。
親クラス、子クラスのように抽象化していったって
20以上の変数を持つクラスはありえるってことです。

301:デフォルトの名無しさん
07/03/11 17:15:42
あったらあったで仕方ないだろ。
おれならまず分けることを考えるが。

302:デフォルトの名無しさん
07/03/11 17:18:16
そりゃjava.awt.Componentとか持ち出してきたら50個くらい持ってるようなのもあるわ
しかし普通はそんなのはないぞ

303:デフォルトの名無しさん
07/03/11 17:22:12
よくこんなどーでもいい話題にがんがんレスが付けられるな

304:デフォルトの名無しさん
07/03/11 17:33:27
あったら、あきらめる。

以上。

305:デフォルトの名無しさん
07/03/11 18:08:06
どっちみち「エディタで候補を絞るのがメンドイから」なんて理由でクラス設計したらあかん罠w

306:デフォルトの名無しさん
07/03/11 18:18:15
private int hogehoge;

って書いたら、内部で使うために

private int getHogehoge() {
 return hogehoge;
}

て書かなきゃいけないん?

307:デフォルトの名無しさん
07/03/11 18:29:53
内部なら直にアクセスしろよ

308:デフォルトの名無しさん
07/03/11 18:30:40
自己カプセルフィールドって考えもある

309:デフォルトの名無しさん
07/03/11 18:44:40
さすがにそういうあたりは必要なときにリファクタリングすればいいようにおもうなあ

310:デフォルトの名無しさん
07/03/11 18:54:48
privateなら変更することになっても影響範囲は閉じてるし、
必要になってからメソッドにするでいいよ。


311:デフォルトの名無しさん
07/03/11 19:31:02
あるURL
[1] URLリンク(www.hogehoge.ho.ge)
からのHTMLの(?)相対アドレス
[2] "bbb.html" に対応するURLは
[3] URLリンク(www.hogehoge.ho.ge)
だと思うのですが、

[1]と[2]から[3]を得る機能はJavaSE6にはありますか?

312:デフォルトの名無しさん
07/03/11 20:23:39
>>311
java.net.URI uri = java.net.URI.create("URLリンク(www.hogehoge.ho.ge)).resolve("bbb.html"); とか。

313:デフォルトの名無しさん
07/03/11 20:56:28
>>294
配列

or


ハイスペック携帯電話のみサポートに切り替えて解決

314:デフォルトの名無しさん
07/03/11 21:00:53
>>300
『分割し、統治せよ』

『アジャイルソフトウェア開発奥義』にはそう乗っている。


だが、
どうしてもクラスを分割できなければ、
やれることはまだまだある。
ディスプレイのサイズなんぞstaticでやれ。
そんなに苦しいなら配列でやれ。


315:デフォルトの名無しさん
07/03/11 21:02:53
>>311
そういう機能


とはいわん気がするが。


そういうAPIはありますか、だろ。

機能というとまるで言語仕様のことみたいだ。

その手のAPIは言語仕様とは別だしな


316:デフォルトの名無しさん
07/03/11 21:28:56
クラスの設計についての本読み始めたところだから結構興味がある。
VCのMFCなんか数十個の関数や変数を含んでいるクラスが普通だから
そこまで分割する必要があるのかどうか、
分割するといいことがあるのか知りたいところ。

317:デフォルトの名無しさん
07/03/11 21:37:17
ソースファイルの数が増えてリッチな気分が味わえます。

318:デフォルトの名無しさん
07/03/11 21:39:55
保守性に強くなるとかそんなんだろ
コピペが減るとか

319:デフォルトの名無しさん
07/03/11 21:51:43
>>314
すまんが、何ページ?

320:デフォルトの名無しさん
07/03/11 22:07:18
MFCはDocumentViewアーテクチャだからあまり参考にするべきでないけど。
変数や関数の数自体は気にするべきではない。
気にするべきはモジュール結合度と強度、クラス設計で委譲・継承などのデザインパターンといったところを気にするべき。

321:デフォルトの名無しさん
07/03/11 22:19:18
質問よろしくです。
tiffファイルを操作する簡易エディタを作りたいと思っています。
やりたいこと
・複数のtiffファイルを結合して保存する。
・複数頁のtiffファイルを1ページ毎に分けて保存する。
・画像の上にテキストを挿入する
Java Advanced Imaging(JAI)を使えば簡単に作れますか?
他に便利なAPIがあれば教えてください?


322:デフォルトの名無しさん
07/03/11 23:36:16
質問です。
Javaのメソッドで、C++でいうところのconstなクラス関数を作りたいのですが、可能なのでしょうか?
つまり、そのメソッドはメンバー変数の書き換えを行なわないということを保証させたいのです。

色々調べてみたところ、Javaにconstはないとのこと。
似たような機能か?と思ってfinalについても調べてみましたが、期待した内容ではありませんでした。


323:デフォルトの名無しさん
07/03/11 23:37:58
>>322
>finalについても調べてみましたが、期待した内容ではありませんでした。

kwsk

324:デフォルトの名無しさん
07/03/11 23:43:08
>>323
・finalとついたメソッドは、オーバーライドされなくなる
・finalとついた変数は、書き換えられることがなくなる(配列の中身などは書き換えられるので注意)
・finalとついたクラスは、継承されなくなる
といった効果のようでした。

325:デフォルトの名無しさん
07/03/11 23:53:29
>>322
static

326:デフォルトの名無しさん
07/03/11 23:56:46
>>322
enumじゃダメなん?

327:デフォルトの名無しさん
07/03/11 23:58:04
322の内容が理解できない人が多くてワロタw

328:デフォルトの名無しさん
07/03/11 23:59:59
>>325
ああ、なるほど。確かに。
でも、ちょっと別の制限が強くなりすぎますね。

やりたいことは

abstract class IScene
{
abstract void Task();
abstract void Draw();
}
として、これをオーバーライドさせてゲームのシーンを作らせたいのです。
その際、Drawではメンバー変数の書き換えを禁止させたいのです。

329:デフォルトの名無しさん
07/03/12 00:07:51
staticだと、インスタンス内の変数書き換えは不可能になるが、読み込みも不可能になっちまうか・・・

330:デフォルトの名無しさん
07/03/12 00:14:34
メンバー変数を、参照は出来るが変更は不可にしたいということなら、
変数はprivateで宣言しておいて、publicもしくはprotectedなアクセサメソッドを
公開しておけばいいんじゃない?

331:デフォルトの名無しさん
07/03/12 00:18:13
>>330
それ全然『メンバー変数の書き換えが行なわれないこと』が保証できてねーじゃん
継承する側がいくらでも間違いを犯せる
C++でもconst_castしちまえばメンバー変数いじれるけどなw

332:デフォルトの名無しさん
07/03/12 00:19:41
public interface Const{
  public static final ~
}

じゃダメなの?

333:デフォルトの名無しさん
07/03/12 00:24:07
>>322
基本的に無理。
標準APIのメソッド呼び出した時に、そのメソッドがインスタンスの状態を変更しない事まで考えるなら。
JSR-308 のサンプルにある @ReadOnly が それっぽいけど、早くてもJDK7にならないと入らない。

自分のクラスのメンバ変数の書き換え禁止だけなら、@Const みたいなアノテーション自作して、
@Const処理するようなAPTまで自作すれば出来なくはないけど……

334:デフォルトの名無しさん
07/03/12 00:24:44
>>331
なんで?

abstract class IScene
{
private var1;


abstract void Task();
abstract void Draw();

public getVAr1(){
return var1;
}
}

ということだけど。
「Drawではメンバー変数の書き換えを禁止させたいのです」
という要求には答えてると思うけど。
もっとも、Task()メソッドからも書き換えは出来ないけど。


335:デフォルトの名無しさん
07/03/12 00:24:53
>>332
すいません、>>328がinterfaceで書くべきものだということは分かるのですが、
それでメンバー変数が書き換えされないことが保証される理由がわかりません。
>>332のfinalは何に対してついているものなのでしょうか?(変数?メソッド?)

336:デフォルトの名無しさん
07/03/12 00:27:05
>>334
質問者じゃねーけど、やりたいことくらいは推測できる。お前も少しは推測して書いてやれよw
継承元の変数をいじらせたくないって要望じゃねーだろ。
継承先の変数であってもいじらせたくねーんだろ。

337:332
07/03/12 00:33:37
>>335
constというか不変変数って意味で回答したんだけど
どっからでもアクセスできるしあなたが求めてるものとは違うと思う。
俺には難しくてついていけてないw
一応意図したものは↓みたいなもの。

public interface Const{
  /** 1ページの表示件数 */
  public static final int COUNT_PER_PAGE = 10
  /** 全ページに共通のタイトルプレフィックス */
  public static final String TITLE_PREFIX = "[HOGEHOGESERVICE]";
}

338:デフォルトの名無しさん
07/03/12 00:33:54
>>336
そういう意味か?
自分で定義した変数を読み取り専用にするなんて、
C++でもできないだろ。

スーパークラスで管理する状態などを、サブクラスで勝手に
書き換えられるのが嫌なんじゃないのかな。

だから>>334でいいかと思うのだが。

339:デフォルトの名無しさん
07/03/12 00:38:14
えっとすいません。情報が交錯しているようなので再度説明します。

public interface IScene
{
void Task();
void Draw();
};

ゲームにおいて、全てのシーンは上を継承することを複数人プロジェクトにおいて義務づけます。
そして、このシーンを適切に毎フレーム呼び出す機構は私が作ります。

TaskとDrawは基本的に交互に呼ばれるのですが、フレームスキップが発生した時Drawの呼び出しが飛ばされる可能性もあるのです。
その際、Drawの中でメンバー変数の書き換えをするようなプログラムをされると、わかりにくいバグに繋がります。

C++の時は
class IScene
{
void Task() = 0;
void Draw()const = 0;
};
で大丈夫だったのですが…。
という相談です。
>>333については今ぐぐりながら理解しようとしているところです…。

340:デフォルトの名無しさん
07/03/12 00:39:20
>>338
>自分で定義した変数を読み取り専用にするなんて、
>C++でもできないだろ。
できるよハゲw
const関数は何のためにあんだ。


341:デフォルトの名無しさん
07/03/12 00:43:20
C++のconstメンバ関数が何なのか知らない奴がレスしてるな。


342:338
07/03/12 00:43:38
悪い、別に断言したつもりはなかったんだが。
「C++でもできないだろ」
じゃなくて
「C++で出来たっけ?」だな。
C++はずいぶんやってないんで忘れた。



343:デフォルトの名無しさん
07/03/12 00:56:05
てか、なんでJavaにはconstがないのか不思議でならない。
キーワードだけは定義されてるって書いてあるけど、なんで削られたん?

344:デフォルトの名無しさん
07/03/12 01:15:37
C# には const あるけど const 関数は無いな。

345:デフォルトの名無しさん
07/03/12 01:18:40
>>343
お馬鹿なJavaプログラマにはまともに使いこなすことができないだろうという判断から。

346:デフォルトの名無しさん
07/03/12 01:23:46
むしろその逆で過剰な安全装置と見なされて削られたって話じゃないの?
C++をメインで使ってる身からすると全然過剰だとは思わないけど。

347:デフォルトの名無しさん
07/03/12 04:47:35
const関数で呼び出されたら、その中から変数にアクセスする際に
やはり const として宣言されていない関数は呼び出すことができないのかな

348:デフォルトの名無しさん
07/03/12 06:43:57
コンパイル時に「変数が変更される可能性があります」とエラーが出る
呼び出せたらconstの意味がない

349:デフォルトの名無しさん
07/03/12 09:19:31
JavaってC#におけるXmlSerializerのようなものは無いんでしょうか?
オブジェクトを丸ごと渡してやればXMLファイルに書き出してくれて、
XMLファイルを丸ごと渡してやればもとのオブジェクトを生成してくれるという

350:デフォルトの名無しさん
07/03/12 09:34:33
>>349
近いのは java.beans.XMLEncoder と java.beans.XMLDecoder かな?
保存できるのは beans のプロパティだけになっちゃうけど。

351:デフォルトの名無しさん
07/03/12 16:33:01
String s;
if(s = "")
{

}

間違えて上のコードを入力したとき s = "" の部分に「型の不一致: String から boolean には変換できません。」
というエラーメッセージが出てきました。
自分にはどう見ても右辺左辺ともにString型としか思えないのですが、なぜこのようなメッセージが出たのですか?


352:デフォルトの名無しさん
07/03/12 16:39:02
まず、javaでは比較する場合は==を使う
=だと代入になってしまい、ifの中にはbooleanを入れなきゃいけないのにStringになってしまう
次に、==にしてもお前の期待する動作はしない
java String 比較 でググれ

353:デフォルトの名無しさん
07/03/12 17:03:10
>>352

Stringの比較はequals()メソッドで行うということですね
簡潔でわかりやすいレスありがとうございます

354:デフォルトの名無しさん
07/03/12 17:19:32
>>353
そっちはどちらかというとこの質問においてはオマケ。
=を比較のつもりで使っているほうが本質的な間違い。

355:デフォルトの名無しさん
07/03/12 17:26:02
>>354
すみません。はじめの時点で言葉足らずでした

比較に = を使ってはいけないのは知っていたのですが、

VBの癖でついやってしまい、エラーが出て、

>>351の疑問が出たので質問させていただきました。


356:デフォルトの名無しさん
07/03/12 17:30:11
Javaでアプリケーションを作成しています。
二重起動を防止する案を考えているのですが
File.createTempFile(String prefix, String suffix)でファイルを生成して
File.deleteOnExit()で削除指定
ファイルの有無で起動中かどうかを判断するという処理にしようかと思ってます。

『もっと良い案があるよ』
『そのやり方だとこういう問題が発生する』
等御意見頂けますでしょうか。

357:デフォルトの名無しさん
07/03/12 18:51:39
>>356
createTempFile だと、
prefix + "java.io.Fileが勝手に付加する文字列" + suffix って
名前のファイルを作っちゃわない? 二重起動防止にならんと思うけど。

あと、deleteOnExit だと、正常に終了できなかった場合はファイル残ったままになるよ。
もっとも、正常に終了できなかった場合にファイルを削除する方法は
今のところ提供されてないので二重起動の場合はダイアログだして
ユーザが選択できるようにした方が良いかも。v2c がやってるみたいに。


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