【初心者】Java質問・相談スレッド67【大歓迎】
1 :
デフォルトの名無しさん :
2005/05/22(日) 17:27:07
2
4様 ↑はネタスレだと思っているのだが如何。
初心に帰れ だから初心者大歓迎
>>4 やりとりのレベルはネタスレみたいなもんだから
ネタスレだろうと何だろうと消化すればよいかと
8 :
デフォルトの名無しさん :2005/05/22(日) 18:38:31
J2SE5を 1.5.0_01 から 1.5.0_03 にアップグレードしようとしたら こんなメッセージがでていインストールできなくなった。 どうしてさー。 再度ダウンロードしてるっつーのに。 インストールパッケージを開くことができませんでした。パッ ケージが存在し、アクセスできることを確認してください。また はアプリケーションベンダに問い合わせ、このパッケージが 有効なWindowsインストーラパッケージであることを確認し てください。 玄箱にファイルを保存しちゃいけないっつーのか? んなわけない。今までJavaを玄箱にダウンロードして玄箱から exeファイルをダブルクリックしてインストールに成功していたので 何か他のところに問題があるはずだ。 MD5やPGPのチェックサムもないし、一体どうすりゃいいんだ?
9 :
デフォルトの名無しさん :2005/05/22(日) 18:39:21
>玄箱にファイルを保存しちゃいけないっつーのか? それを確認してから来い
>>8 こういうのを見てるとココもネタスレみたいだと思う
11 :
デフォルトの名無しさん :2005/05/22(日) 18:45:06
>>8 その程度のアップグレードそんなにやりたいと思うか?
ほっとけよそんな、ちまいUpグレードたいしたこと無いって
DecimalFormat df = new DecimalFormat(); Format nf = NumberFormat.getPercentInstance(Locale.JAPAN); DecimalFormat df = (DecimalFormat)nf; df.applyPattern(" ###.000E00;-###.000E00"); System.out.println(df.format(100.0d)); System.out.println(df.format(-100.0d)); System.out.println(df.format(0.001d)); System.out.println(df.format(-0.001d)); 結果 100E00 -100E00 1.00E-03 -1.00E-03 右側の化数部の桁がそろいませんよ。 マイナスがつくとどうしてこうなるのやら。 こうやって0を余分に追加しても0が増えるだけだし df.applyPattern(" ###.000E000;-###.000E000");
>>9 > >玄箱にファイルを保存しちゃいけないっつーのか?
> それを確認してから来い
確認は済んだ。
マイドキュメントにコピーしてから実行した。
それでも駄目だ。
まったく同じポップアップウィンドウメッセージだ
_01と_03とだと結構バグフィックスされてること多いぞ
>>12 そういやFormaterだと強制符号付だね
System.out.printf("%3.3e\n",100.0);
System.out.printf("%3.3e\n",-100.0);
System.out.printf("%3.3e\n",0.1);
System.out.printf("%3.3e\n",-0.1);
-------------------------
1.000e+02
-1.000e+02
1.000e-01
-1.000e-01
初心者です。 当たり前のように書いてるpublic static void main(String args[])の(String args[])の部分はコマンドライン引数をString型で返すって意味であってますか?
Stringの配列ね
>>16 返すっつーか貰うとか 受け取るだと思われ。
>>16 StringとString[]は異なる型である。
20 :
デフォルトの名無しさん :2005/05/22(日) 20:37:05
>>15 String型で返したいし
そのフォーマットだと右端も左端も全く同じ文字数に揃わないなあ。
FieldPositionlクラスといくつかのメソッドを使って整数部と小数部の最小桁数を設定でき
+符号を" "(空文字列)で表現できたのであるていどまではなんとか
そろえることができたよ、
しかし最大桁数を削るととんでもない値になるので
そのあたりをどうにかできないかなー、って今悩んでる。
Stringを返したいのならStringのstaticメソッド使えよ。 sprintfがあるのにprintfは便利だけど文字列扱えないしといってるようなものだぞ。 ただ、Eから後ろは3桁以上はずれる doubleの範囲を考えれば3桁固定にしてくれればいいのだが まぁ、普通になにかで文字列出力して正規表現のscanfで取得すりゃぁいいね
>16 この言葉を一度は言ってみたかった。 自分で試してみろよ。
23 :
16 :2005/05/22(日) 21:43:44
あれはStringだと勝手に解釈しときます。てか違ったら違ったんだなってことにしてまたいろいろ試します。ありがとうございました
24 :
デフォルトの名無しさん :2005/05/22(日) 21:47:28
半年後
>>16 が
「自分で試してみろよ。 」
っていうのですかね。
>>22 は罪
人の意見を無視する気なら最初から聞くなよ
26 :
デフォルトの名無しさん :2005/05/22(日) 21:58:41
つうかそもそも、聞く必要の無い質問に答えたのが間違いだった orz 一生懸命、答えかいても 一歩早く「自己解決しました!」のレスがあったら最悪 だからもう俺はこういう初心者の質問には答えないようにしている
>>26 ネタスレでマジレス (´・ω・) カワイソス
28 :
デフォルトの名無しさん :2005/05/22(日) 23:27:45
>>15 DecimalFormat df = new DecimalFormat();
df.applyPattern(" ###.000E00;-###.000E00");
StringBuffer result = new StringBuffer();
FieldPosition fieldPosition = new FieldPosition(NumberFormat.FRACTION_FIELD);
df.setMinimumFractionDigits(3);
df.setMinimumIntegerDigits(1);
df.setMaximumIntegerDigits(1);
df.setGroupingUsed(false);
df.setNegativePrefix("-");
df.setPositivePrefix(" ");
このやりかたで
df.format(value, result, fieldPosition);
をつかって
二次元配列のdouble型データ
double[][] d2 = new double[][]{
{-1.2d, 2.4d, -3.3d},
{4 ,5, 111111111111116.66666d},
{0.122222222228888888888222222d, 8, 0}
};
をvalueにつっこんで並べて見たが
-1.200E00 2.400E00 -3.300E00
4.000E00 5.000E00 1.111E14
1.222E-01 8.000E00 0.000E00
1.222E-01のE-01で一文字ずれてるorz
おとなしくscanf使え
>>26 つまり勝手に自己解決と書き込めばそれだけで回答者の意欲を削ぐことができるということか
String.format(Locale.JAPAN, "%+3.3e", value);
なんとかうまくいった
>>28 がたったの一行で済むとは
-1.200e+00 +2.400e+00 -3.300e+00
+4.000e+00 +5.000e+00 +1.111e+14
+1.222e-01 +8.000e+00 +0.000e+00
しかし、接頭辞に+記号は余計。
これはどうにかならぬ?
さほどきにはならぬが
ちょときになるなり
指数部が3桁になったら?
33 :
デフォルトの名無しさん :2005/05/23(月) 04:03:28
双方向キュー(deque)のメソッドのプログラムを教えてください
36 :
33 :2005/05/23(月) 16:19:40
ソースです
そうだよそうだよ○ー○だよ
うまいヤキソバ
40 :
デフォルトの名無しさん :2005/05/23(月) 20:00:48
>>32 恐れていた事態が起きてしまった・・・・
Eclipse3.0.2のスクラップブックでこいつを実行していたら
Object[] o = new Object[]{new Double(-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0d)};
System.out.printf("%+3.3e\n",o);
-1.000e+109
なんということだ・・・・・・。
桁数が揃わなくなってしまうではないか
41 :
デフォルトの名無しさん :2005/05/23(月) 20:20:24
「シンボルを解決できません」とは,どういう意味ですか?
42 :
デフォルトの名無しさん :2005/05/23(月) 20:26:05
Object[] o = new Object[]{new BigDecimal("0.000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001")}; System.out.printf("%+3.3e\n",o); こいつの結果は +1.000e-1231 ますます困った。。。。。
そんなクラスorメソッドor変数なんて存在しませんが何か? という意味
printf厨うざい
45 :
デフォルトの名無しさん :2005/05/23(月) 20:29:47
>>43 なるほど
宣言されてないってことね
助かった やっと帰れる ありがとう
>>41 Java FAQ で検索してみてくれ
どうすればいいかわかるから
>>44 printf printf printf printf printf printf printf printf printf printf printf printf
>>45 綴りや大文字小文字を間違ってるという可能性も捨てきれない
49 :
デフォルトの名無しさん :2005/05/23(月) 20:40:45
>>48 あんさんの言うとおりだった
やっぱ写しただけのプログラムは誤字が多くなるね
つまんねえし
>>36 双方向キューのメソッドのプログラムのソースは次の通りです。
ここから ----------------
----------------ここまで
わざわざ自分でメソッドを追加する必要もありませんので
新たにメソッドをプログラムするひつようもなくソースは上記の通り。
以上、もう来ないでください。
写すのは面白くないかもしれないけどそれを弄って改造していくのは楽しいかも、がんばれ
双方向キューってどういうことなんだ?
該当するJavaのコレクションにはないわけね
LinkedList使えば一応それらしいモノは作れるという程度みたいだね
意味合い的に双方向キューってのはキューではないんだな 添え字アクセスできるlistってJavaだと普通だしなぁ
LinkedListだってだから >Vectorのような添え字アクセスができながらなおかつList並の追加挿入の軽さ 意味わからん。 アルゴリズム勉強せい
>>57 >>53 のリンク先ではそういう趣旨の説明してるし
JDKのドキュメントにはリストの標準のオペレーションによって簡単に作成し直すことができるとは書いてるが
双方向キューだとはどこにも書いてないな
Dequeを簡単に作成できるって書いてなかったっけ?
>>40 ,42
Javadocに指数部の数値は最低二桁(足りないときは0で埋める)と書いてある。
あと"3.3"だと、前の3が全体の桁数で後ろの3が小数点以下の桁数って意味だから
ちょっとおかしい。
>>60 というかそもそもprintfは指定の桁数を超えても普通に全部表示するんだけど
>>61 そんなことは知っている。
全体の桁数は小数点も含むんだからちゃんとやるなら少なくとも
5.3とか6.3であるべきだと言う話だ。
あらら どぅおぉしぃ〜てぇ〜こぉうなぁ〜る〜のぉ〜かぁ〜 なんで動かなぁ〜いぃのぉ〜かぁ〜
BigDecimal bg = new BigDecimal("0.000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001");
BigDecimal bgShort = new BigDecimal("0.000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"); Object[] o = new Object[]{ bg, bg }; System.out.printf("%+3.3e %+3.3e\n",o); System.out.printf("%+5.5e %+5.5e\n",o); System.out.printf("%+5.5e %+5.5e\n",new Object[]{ bgShort, bgShort }); System.out.printf("%+5.5e %+5.5e\n",new Object[]{ bg, bgShort }); System.out.printf("%+5.5e %+5.5e\n",new Object[]{ bgShort, bg }); System.out.printf("%+6.5e %+6.5e\n",new Object[]{ bgShort, bgShort }); System.out.printf("%+6.5e %+6.5e\n",new Object[]{ bg, bgShort }); System.out.printf("%+6.5e %+6.5e\n",new Object[]{ bgShort, bg });
67 :
デフォルトの名無しさん :2005/05/24(火) 11:04:48
これをやってみたんだが +1.000e-1231 +1.000e-1231 +1.00000e-1231 +1.00000e-1231 +1.00000e-727 +1.00000e-727 +1.00000e-1231 +1.00000e-727 +1.00000e-727 +1.00000e-1231 +1.00000e-727 +1.00000e-727 +1.00000e-1231 +1.00000e-727 +1.00000e-727 +1.00000e-1231 揃わねえ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
68 :
デフォルトの名無しさん :2005/05/24(火) 11:27:59
>>60 >
>>40 ,42
> Javadocに指数部の数値は最低二桁(足りないときは0で埋める)と書いてある。
しかしJavadocの意味がわかりずらい。0で
埋まらず -1231と表示されている。
もし0で埋まる場合は -0031となるかまたは-1200となってしまうという意味かと思った。
Javadoc↓
m が正のゼロまたは負のゼロの場合、指数は「+00」になります。
そうでない場合、結果は、引数の符号および絶対値を表す文字列になります。
符号の書式設定については、地域対応アルゴリズムを参照してください。
絶対値 m の書式設定は、値により異なります。
n を 10n <= m < 10n+1 などの一意の整数とし、a を 1 <= a < 10 となるよう
な m と 10n の数学的に正確な商とします。この場合、絶対値は、
メソッド Long.toString(long, int) で生成されるように、a の整数部であ
る 1 桁の 10 進数、小数点、a の小数部を表す 10 進数、指数記号 'e' ('\u0065')、指数の
記号、n の 10 進整数表現がこの順に並んだ形で表現されます。
また、2 桁以上になるようにゼロがパディングされます。
これをどうにかするには#とFormattableインターフェースを使えってことなんだろうけど 使い方を把握するの大変そうだ。 FormattableのJavadoc、改行がおかしくなってるし。 import java.nio.CharBuffer; import java.util.Formatter; import java.util.Formattable; import java.util.Locale; import static java.util.FormattableFlags.*; ... public class StockName implements Formattable { private String symbol, companyName, frenchCompanyName; public StockName(String symbol, String companyName, String frenchCompanyName) { ... } ... public void formatTo(Formatter fmt, int f, int width, int precision) { StringBuilder sb = new StringBuilder(); // decide form of name String name = companyName; if (fmt.locale().equals(Locale.FRANCE)) name = frenchCompanyName; boolean alternate = (f & ALTERNATE) == ALTERNATE; boolean usesymbol = alternate || (precision != -1 && precision < 10); String out = (usesymbol ? symbol : name); // apply precision if (precision == -1 || out.length() < precision) { // write it all sb.append(out); ↑この部分のdocが読みづらくなってる。 ちゃんと改行すればいいのに
いい加減普通にscanfで切り分けろ
>>67 そもそもC言語でもprintfで指数部の長さをを指定する方法はなかったはず
72 :
8 :2005/05/24(火) 16:34:05
ぐはぁ、駄目だ!
これだけ一生懸命やっているのに、
これだけ努力しているのになぜだ!!!!!!!
J2SDK1.5.0_03をインストールできない。
何度やっても
>>8 と同じメッセージが出る。
Firefoxからダウンロードし、
そのファイルをマイドキュメントに保存して
から実行してもだ。
NortonUntiVirusのAutoProtectは無効にしている。
それなのに、なぜだ?
他のマシンではうまくインストールできることを今日実際に
やってみて確認した。
ダウンロード場所をデスクトップに変更してもうまくいかない!
何度再起動してもうまくいかない。
これは一体どういうことなのだ?
NortonUntiVirus これが諸悪の元凶だな
Untiて・・・ウンチ?
うちも NortonAntiVirus 入れてるけどインストール失敗した事は無いなぁ。
一生懸命死にものぐるいでやっているのに.... 努力が報われない!!!!!!!!!!!!!!
権限ないとかな
79 :
デフォルトの名無しさん :2005/05/24(火) 17:50:17
>>73 書いてある通りAutoProtectは無効にしている。
>>77 容量は足りてる。20GBもある。
>>78 確認したが権限はある。
Administrator権限のあるユーザでログインしている。
こうなったら、HPノートPCが悪いのか、WindowsXP SP2が悪いのか・・・。
むむむ。。。
Sunに問い合わせか・・・・?
それともHPに問い合わせか?それともM$に問い合わせか?
だが、幸いなことにもう一つの手段を思いついた。
オフラインインストールパッケージをダウンロードしてからインストールだ。
アホか。 今までやってなかったのかよ。
82 :
8 :2005/05/24(火) 17:57:09
どうにかインストールがうまくいきそうだ。 皆の衆よ、お騒がせした。 と思ったら、なんだ? iTunesのインストールを中断します? ITunesのインストールが中断扱いになっていたからJava5がインストールされなかっただと? んなばかな。 iTunesのアップデートインストールは終わったはずだ。
83 :
デフォルトの名無しさん :2005/05/24(火) 17:58:38
ところでJava5はProgram Filesにインストールすべきか? 5からデフォルトではPrograms Filesになっているが 何か嫌な予感がするのでC:\直下にJ2SDKをインストールしている。
85 :
デフォルトの名無しさん :2005/05/24(火) 18:01:23
JavaアプレットでAWTのボタンを利用したいと思っております アプレット上にボタンを配置したところボタンの下側と右側に 影がついているのですがこの影は消すことはできないのでしょうか? へっぽこな質問で申し訳ありませんがよろしくお願いいたします
自分でボタン描画したら?
88 :
デフォルトの名無しさん : :2005/05/24(火) 22:08:26
お世話になります。 ソケットでサーバとクライアントを接続しています。 コーディングの概略は次の通りです。 【クライアント】 PrintWriter out = new PrintWriter(socket.getOutputStream(), true); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(),"EUC_JP")); out.println("かきくけこ"); System.out.println(in.readLine()); 【サーバ】 PrintWriter out = new PrintWriter(socket.getOutputStream(), true); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(),"Shift_JIS")); String inputLine; while ((inputLine = in.readLine()) != null) { System.out.println(inputLine); out.println(inputLine); //←これはクライアントでも文字化けしない。 String s1 = "あいうえお"; String u1 = new String(s1.getBytes("xxxxx"), "yyyyy"); out.println(u1); //←文字化けする。 } お伺いしたいのは文字コード変換についてです。 サーバ:RedhatLinux クライアント:Windowsでして、 サーバ側コーディングの String s1 = "あいうえお"; としている文字列を クライアント側の System.out.println(in.readLine()); で表示したいのですが、文字が化けて(????←このようになります)困っています。 文字コード変換しなければいけないと思うのですが、getBytesを使うのでしょうか? もしgetBytesを使うならどのように書けばいいのかがわかりません。 ご教授ください。宜しくお願いします。
89 :
デフォルトの名無しさん :2005/05/24(火) 22:16:57
よく書籍とかに付いてるコンパイラって継承とかまではできないの?
>>88 1. Stringの内部コードは決まっているので
String u1 = new String(s1.getBytes("xxxxx"), "yyyyy");
とするのは不可。
(余談:ただし例外的に8859_1デコーダ/エンコーダが8bitcleanなのを期待するコードを書くことはあるけど.)
2. PrintWriter#println(String)は出力時にデフォルトエンコーディングへの変換処理を入れる。
というわけでOutputStreamWriterを使ってごらん。
91 :
90 :2005/05/24(火) 22:30:20
決まっているからという説明は間違いか。Stringから"xxxx"で取り出したバイト列は もちろん"yyyy"でエンコードされてはいないから、new String(byte[], "yyyy") でStringに収めることは出来ない。
93 :
デフォルトの名無しさん :2005/05/24(火) 22:39:06
みなさん、ソース書くときは何で書いてますか? メモ帳?
ViaVoice.
>89が言いたいのは、書籍とかについてるコンパイラは J2SEの機能のうちのさわり程度の機能しかない「限定版」のような──例えば、継承を実際に コーディングして、コンパイルして動かしてみることはできない──そう言うものではないのか、という危惧だろうか。 ならば答えは簡単だ。 バージョンが古い可能性が高いだけでSunのサイトにある奴と同じ。 もともと無償配布してるものをわざわざ書籍用限定版なんぞ作るわきゃなかろうが。
96 :
デフォルトの名無しさん : :2005/05/24(火) 23:46:54
>>90 OutputStreamWriterのコンストラクタで
第一パラメータは何を使えばいいのでしょうか?
ファイルとかであれば、FileInputStreamのインスタンスを渡せばいいみたいですが、
"あいうえお"みたいな任意の文字列を扱いたい場合はどうすればいいのですか?
すみません。初歩的質問で。
Aという主要な機能が実装されているクラスを以下のようにどこでも参照を 保持させてしまう人がいるのですが、どうやって間違いだと指摘してあげるのが よいのでしょうか?こうやられるといつも後始末が大変で困ってます。 書かれると毎回デスマ40日コースなので困ってます。 public b(A a){ this.A = a; }
>>98 それが間違いかどうかはこっちにゃわからんよ
無能が
>>98 どうみても間違いではない
publicなのはアクセスされるとおもったほうがいいぞ
>>98 > Aという主要な機能が実装されているクラスを以下のようにどこでも参照を
A に機能が集中しすぎてないか検討すべきなのでは?
「主要な機能が実装されているクラス」てやばげ
104 :
デフォルトの名無しさん :2005/05/25(水) 01:13:02
質問です。 クラス内でメンバ変数を宣言するとき、 クラス内の上の部分で宣言するのが一般的でしょうか? クラスの一番下んトコで、チョコっと書いてあるケースが多々ありますが、 あれ、何ですか?
>publicなのはアクセスされるとおもったほうがいいぞ は? 質問の意味がワカンネーんなら黙ってろよボンクラ
>>104 > クラス内の上の部分で宣言するのが一般的でしょうか?
まぁ、一般的といえば一般的かな。
クラス内の特定メソッドだけでしか使われないメンバ変数とかは、
そのメソッドの直前で宣言されてる事もあったりするけど。
108 :
98 :2005/05/25(水) 01:17:46
どれも10kステップ以上あるクラスを平気で数多く作って どこでもそれらを参照させたコードに新機能を追加してバグを修正 して欲しいといわれる。どうしゃいいんだろう。まじでそんなコード 生成するエンジニアを相手にする方法教えてください。さすがに7ヶ月も そんなの状態でで休日が毎週ないのは死にそうだ。
ださっw
110 :
98 :2005/05/25(水) 01:30:16
トドメに少しだけスパゲッティなコードで悪いけどねとか 言われると、1日何もやる気が起きなくなります。
マネージャーに素直に伝えたらどうだ
112 :
98 :2005/05/25(水) 01:49:56
俺より先にさじ投げて知らんふりだよ。辞めるのどうせお前だけだから 俺関係ないしとか言われたぐらいだからな。誰も相談する人はいなかったりする
113 :
デフォルトの名無しさん :2005/05/25(水) 02:20:10
>>104 ,106
それが嫌がらせだとしても
コード整形ツールを使えば無問題。
コードを貰ったら即座に
整形ツールを使ってフィールドを上に、
メソッドを下にもっていくようにしましょう。
EclipseなどのIDEなら一発でできます。
114 :
88 :2005/05/25(水) 07:42:18
これどうするの? 教えて
>>114 APIリファレンスと言語仕様読め。
理解できなきゃ Java は関係ないな。
頑張って文字コードの勉強すれ。
earファイルに入れるejbのマニフェストについてよくわかりません。 どこかいい学習ページはないでしょうか? そもそもクラスを参照するためになぜマニフェストが必要なのでしょう。 普通のクラス(jar)同士であればそんなものいらないですよね?
>>117 jarファイルを展開してみれ
マニフェストファイルあるから
わからないことがあったら公式の情報を見れ
119 :
デフォルトの名無しさん :2005/05/25(水) 14:02:16
ちょっと質問。 Stringクラスのインスタン作って、そのインスタンスに「あいうえお」 を代入する。 その文字列をgetBytesメソッドを使ってJISコードに変換する。 変換したものをバイト型配列に代入する。 このバイト型配列に格納された文字コードをコンソールにどうやれば表示できるかな? 誰かお願いします。
普通に標準出力のストリームに出力してみてはどうか
121 :
119 :2005/05/25(水) 14:09:18
>120 バイト型配列は一バイトずつ格納されてるから 普通に表示すると意味不明な数字が表示され…。 JISって1文字2バイトだからどうすればいいかなぁ???
>>119 もう一回Stringに戻してSystem.out.print()するのが一番簡単。
123 :
119 :2005/05/25(水) 14:23:14
>122 先生、もう一度Stringに戻すと「あいうえお」が表示されるのではないでしょうか??? 戻し方おしえてくらはい…。
> Stringクラスのインスタン作って、そのインスタンスに「あいうえお」を代入する。 この時点で無理。
表示したいというのは、どう表示したいのか
126 :
122 :2005/05/25(水) 14:29:12
ああ、ごめん「文字コード」を表示したかったんだね。「文字」と勘違いした。 単にbyte[]の中身を表示すればいいだけじゃないの? 例えば「あいうえお」だったらbyte[]の中身は 1b 24 42 24 22 24 24 24 26 24 28 24 2a 1b 28 42 だけど、これをどう表示して欲しいんですか?
127 :
119 :2005/05/25(水) 14:30:59
>122 先生、そのままコンソールに表示したいです! printlnでいけまつか?
>>121 >普通に表示すると意味不明な数字が表示され…。
おい、まさかprint(println)メソッドで出力したんじゃないだろうな?
期待する出力例を書いてみてくれ
131 :
119 :2005/05/25(水) 14:35:26
>128 えぇ、printでやらかしましたが…。 どうすればよかですか???
エスパー発動すると、nkfみたいなフィルタを作りたいのかなあ? それだと、 System.out.write("あいうえお".getBytes("ISO-2022-JP")); ということか?
133 :
119 :2005/05/25(水) 14:37:00
>129 「あいうえお」だったらbyte[]の中身は 1b 24 42 24 22 24 24 24 26 24 28 24 2a 1b 28 42 こんな出力を期待してまつ。
134 :
デフォルトの名無しさん :2005/05/25(水) 14:39:17
アプレットのdrawimageで、画像読み取り位置の始点と終点を逆にする事で画像を反転させる方法って 多くのブラウザが未対応だとある記事にあったんだけど、その記事はかなり古そうなものだった。 対応状況は今でも相変わらずですか?
>>133 おまえ・・・
>>121 で言った意味不明な数字は期待する出力の10進数の値じゃないか?
違うならその意味不明な数字とやらがどんなものなのかコピペしてくれ
136 :
119 :2005/05/25(水) 14:44:30
>135 えぇ、10進数の数値です。 27 36 66 36 34 36 36 36 38 36 40 36 42 27 40 66 こんな感じで出力されまつ。 初心者なのでよく分らんとです。
つまり、16進数で表示したいのに、今は10進数で出てるってことね
138 :
119 :2005/05/25(水) 14:48:14
>137 そうなんですよ〜。 良い方法はないでしょうか???
最初から「byteの値を16進数で表示するにはどうしたらいいでしょうか」 と聞いてくれればっ Integer.toString(int,int)なりString.format()なり好きなの使ってくれ
140 :
119 :2005/05/25(水) 14:51:53
>139 ありがとう! 早速試してみまつ!
141 :
適当 :2005/05/25(水) 14:52:41
byte[] bytes = "あいうえお".getBytes("ISO-2022-JP"); for(int i = 0; i < bytes.length; i++) { System.out.print(Integer.toHexString(bytes[i])); System.out.print(" "); } System.out.println();
エスパーの訓練場はここですか?
(byte型 - 7)という式を引数にしている部分があって、 そこで「精度が落ちている可能性」というコンパイルエラーが出るのだけど、 引いている数字が -7 に固定なので精度は落ちないと思うのですが このコンパイルエラーを避ける方法はありませんか?
-128-7はどうすんだ?
145 :
143 :2005/05/25(水) 16:59:22
言い忘れました。 そのbyte型の変数は常に7以上です。
それをコンパイラに言い聞かせたら
ワイヤーフレームで描かれた多面体をソリッドにする時って、一から書き直さないと無理? なんか書き加えるだけでいいのかな? 教えてエロイ人。
>>148 表裏の判定と、ZバッファかZソートで奥の三角形で手前の三角形を塗りつぶさないように注意すれば良いのでは?
151 :
143 :2005/05/25(水) 18:15:03
>>149 キャストで出来ました。
ありがとうございました。
152 :
デフォルトの名無しさん :2005/05/26(木) 04:33:20
以下のような手法って、使われたりするのでしょうか? 現場で見かけましたが、意図がよくわからないのですが。 Hogeクラス型の変数 Hoge hoge を宣言して、まずnullを代入。 Hoge hoge = null; その後、コンストラクタを呼び出して、 hogeがnullのままか否かをみて、 正常にjコンストラクタが正常終了してるかどうかを 判断している模様。。。? ちなみにコンストラクタ Hoge() 内では、 結構複雑な処理が行われている。 hoge = new Hoge(); if (hoge != null) { 〜; } else { 〜; }
>>152 コンストラクタ呼び出しがインスタンスを返さないのであれば、
必ず何らかの Exception か Error を投げるはず。
なので、else ブロック(というか if文自体が)無意味。
> hoge = new Hoge();
もっとも、でなく、
try{ hoge = new Hoge(); }catch(Exception e){}//検査例外を全部握りつぶす
とかやってたら話は別だけど。
154 :
152 :2005/05/26(木) 05:09:36
>>153 ありがとうございます。
なるーほど!
しかし厳密には、以下のようになってました。
Hoge hoge = null;
try {
hoge = new Hoge();
hoge.run();
} catch (〜) {
〜;
} finally {
if (hoge != null) {
〜;
}
}
つまり、インスタンス化が失敗した場合、
catchされるが、強制的にfinallyに入るということですね。
このfinally内の振る舞いですが、if文にelseがないです。
なのでfinallyでは何もしない。
インスタンス化が成功して、run();メソッドで失敗した場合、
finally節内で処理が行われる、ということでよいのでしょうか?
155 :
デフォルトの名無しさん :2005/05/26(木) 07:23:00
みなさんはどれくらいの期間で Javaを身につけましたか?
156 :
デフォルトの名無しさん :2005/05/26(木) 07:52:15
>>153-154 > try{ hoge = new Hoge(); }catch(Exception e){}//検査例外を全部握りつぶす
> とかやってたら話は別だけど。
153、エスパー過ぎる
157 :
デフォルトの名無しさん :2005/05/26(木) 07:56:03
>>154 > インスタンス化が成功して、run();メソッドで失敗した場合、
> finally節内で処理が行われる、ということでよいのでしょうか?
run();メソッドで成功した場合も同様
158 :
デフォルトの名無しさん :2005/05/26(木) 09:06:54
直接のプログラムではなくて設定について質問です。 IIS6.0とTOMCAT5.0を連携させてJAVAを走らせるつもりなのですが ネットで調べてもIIS5.0+TOMCAT4.xしか出てきません・・・ それと、isapi_redirect.dllのファイルのある場所も判らない状態です。 どなたか、教えてください。おねがいします
こんなのならありうるけど。 InputStream in = null; OUtputStream out = null; try { in = ...; // throws IOException out = ..; // throws IOException } catch (IOException e) { /例外処理 } finally { if (in != null) { in.close(); } if (out != null) { out.close(); } }
うちの現場は理屈をよく分かってないから try { out = ..; // throws IOException } catch (IOException e) { if (out != null) { out.close(); } } finally { if (out != null) { out.close(); } } こんなん書かされるけどな。
>>160 finallyだけでいいだろ
説明しろ
それも、全ての個所に書いてあるから おまえらフレームワーク使うか、AOP使うか なんとかしろと言いたいが…私が弱すぎるんだな
「Java が身につく」って具体的に体がどうなることなんだろうか。 肌が白と黒のツートンカラーになって、頭の先がとんがり、 目が真っ赤になって真ん中でくっついて一つになったりするのだろうか。
むしろ、頭が赤く揺らめいて、 体が輪切りに、筋肉マンに出てきたスプリングマンみたいになり、 足を消滅した状態ではないかと
オブジェクト型の配列を作っているんですが クラス名 変数名 = new クラス名[4]; 変数名[0] = new クラス名(); とやってコンパイルすると 2行目に対して ']'がありません。 と <identifier>がありません。 と出ます。 何か間違っているところがあるのでしょうか?
>>167 あるからエラーが出るんだよ。
イソスタソス化が分かってないね。
>>167 クラス名[] 変数名 = new クラス名[4];
~~~
170 :
167 :2005/05/26(木) 17:30:45
返信ありがとうござます。 しかしそこは私の書き間違えで、ちゃんと[]が入っていました。 エラーの場所の詳細が書いていなかったので追加しますと。 前者のエラーは[0]の0の部分に 後者のエラーは「;」の部分に出ています。 お手数ですが、再度お願いします。
質問です。 A.javaが public class A{ B b; A(){} } B.javaが public class B{ B(){} } (2つのファイルは同フォルダ内にある) と言う状況でAをコンパイルするとA.javaの2行目のBに対して 「シンボルを解決できません」 というエラーが出るのですが、どうすれば自作のクラスを使えるんですか? 自分の昔作ったプログラムを見たらこれでうまくいってたみたいなんですが・・・。
>>170 質問するときにはソースとエラーを過不足なく
こぴぺしましょう。170が間に入って伝言ゲーム
するのはよくありません。
>>171
173 :
デフォルトの名無しさん :2005/05/26(木) 19:05:22
クラス、メソッド、オブジェクト、引き数、戻り値、なんのこっちゃ ぜんぜんわかりません。教えてください
174 :
167 :2005/05/26(木) 19:23:22
>>172 申し訳ないです。
もしかしたらオブジェクトの配列とは
main(String args[])メソッドの中でしか使えないものなのでしょうか?
だから、エラーが出るソースをそのまま貼れって エラーも
エスパー養成スレはここでしょうか?
177 :
152 :2005/05/26(木) 21:07:10
>>157 >
>>154 >
>> インスタンス化が成功して、run();メソッドで失敗した場合、
>> finally節内で処理が行われる、ということでよいのでしょうか?
>
>run();メソッドで成功した場合も同様
そうですが、オレが言いたかったのは、
わざわざfinally節を設けている理由は、
インスタンス化が成功して、run();メソッドで失敗した場合に、
処理を行わせたいから、ということですですよね?ということ。
「そうですが」と書いているということは、 runメソッドから例外が出ようが出まいがfinally節は実行される。 ということは理解しているのでしょうか?
>>177 ちなみに、インスタンス化に失敗(OutOfMemoryErrorとか、
コンストラクタで例外食らうとか)しても finallyブロックに行きますが。
180 :
デフォルトの名無しさん :2005/05/26(木) 22:12:31
DOM を保存するときに XSL を挿入したいんですが、下記の最後のステップで 例外が発生して挿入ノードを挿入できません。 String data = "type=\"text/xsl\" href=\"" + uri + "\""; ProcessingInstruction pi = doc.createProcessingInstruction("xml-stylesheet", data); doc.insertBefore(doc.getFirstChild(), pi); org.apache.crimson.tree.DomEx: HIERARCHY_REQUEST_ERR: このノードは許可されません。 at org.apache.crimson.tree.XmlDocument.insertBefore(XmlDocument.java:679) 最終的に下記のような XML を出力したいのですが、DOM ではできないんでしょうか? <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="foo.xsl"?> <foo>...</foo>
>>180 doc.insertBefore(doc.getFirstChild(), pi);
↓
doc.insertBefore(pi, doc.getFirstChild());
183 :
デフォルトの名無しさん :2005/05/26(木) 22:35:58
すいませんJava初心者です。 最近Javaを習ったんですが、どうも自分で 0からプログラムを組む事がなかなか出来ないです。 でも、やはり自分の体で覚えるのが一番なので もし何かいいJavaの問題集(基礎問が多いの)があるのなら教えてください。
184 :
デフォルトの名無しさん :2005/05/26(木) 22:40:43
余計なお世話だけど 普通、「こういうの作りたい」ってやるはずだけど そういうのないの? 作っていく過程でわからないことを自分で調べて解決していくのが早道 問題集なんてあんま意味ないと思う SJCの下のレベルの資格も意味ないと思う
185 :
183 :2005/05/26(木) 22:44:15
>>184 そう言われてみればそうだね。
自分で考えて作ってみマツ。
サンクスです。
186 :
171 :2005/05/26(木) 23:08:33
使っていたツールのせいだったようで、別のものを使ったらうまく行きました。 というわけで質問を撤回します。お騒がせしました。
187 :
デフォルトの名無しさん :2005/05/26(木) 23:09:38
>>171 -classpath .
じゃないかな?
188 :
171 :2005/05/26(木) 23:53:02
>>187 どうやらそうだったみたいです。
JMakerを使ってるんですが、解決策はありますか?
自分で探してみたけどそれに関する説明などは見つかりませんでした。
190 :
デフォルトの名無しさん :2005/05/27(金) 00:08:19
JMakerダウンロードして試してみたけどだめだねこれ ファイル閉じると空のタブとかのこるし・・・ コンパイルはこの場合先にBをコンパイルしてAをコンパイルするとOK だけど実行時にBが見つからないのエラー JMaker起動時に環境変数などセットしたバッチファイル起動してみたがダメでした 軽くていいのだけど、他のツールの方がいいと思う
191 :
171 :2005/05/27(金) 00:12:18
>>189 >ユーザークラスパス (デフォルトではカレントディレクトリ) を検索します。
それなら同じフォルダに置けば何も問題はないはずだと思うのですが、やっぱりだめです。
JMakerの仕様でしょうか。
「デフォルトでは」
193 :
171 :2005/05/27(金) 00:23:16
ということはclasspathが何かによっていじられているということですか? もう分からなくなってきました・・・。
corbaのjava実装を詳しく解説してるサイト、書籍でおすすめのもを 知りませんか? CORBA完全解説(上下)は持ってます。 IDLのoutパラメータが構造体定義で、サーバントの処理結果を クライアント側で受け取る動作までをしっかり解説してあるサイトって 見あたらないんですよね。どこもSUNのHELLOサンプルに毛が生えたような ところばかりで。 あとORBのマイナーコードの解説をしているサイト(日本語の)があれば それも教えてください。お願いします。
195 :
デフォルトの名無しさん :2005/05/27(金) 03:35:52
前スレ 687 の自己レス > class Hoge { > private long x; > Hoge() { x = 1; } > synchronized long getX() { return x; } > synchronized void setX(long x) { this.x = x; } > } > > こういうときに、インスタンスを生成してから > 他のスレッドから getX() を呼び出された場合、 > 正しく x を読めるのでしょうか? よく考えてみると、他のスレッドから getX() を呼び出すには、 このオブジェクトを他のスレッドと共有しなくてはならない。 通常は、何かしら同期を取って参照を渡すだろうけど、 このとき、オブジェクトを生成したスレッドが、ロックをリリースした時に、 それまでのキャッシュがメインメモリに吐き出されるはずだから、 別のスレッドでこのオブジェクトを使うまでには、 コンストラクタで設定した値はメインメモリに反映されると思われる。 (続く)
196 :
デフォルトの名無しさん :2005/05/27(金) 03:36:41
(続き) 別の参照の受け渡し方法の考察: (1) 別スレッドのスタート時にも、 メインメモリへの吐き出しは行われるので問題ない。 (2) static フィールドの初期値として参照を設定した場合は、 クラスロードの時にそのクラスをロックしているので問題ない。 (3) volatile 修飾子のついたフィールド経由で参照を渡している場合は、 *J2SE 1.5 (JLS 3rd) 以降なら* 書き込み時にロックのリリースと同じ効果が得られるので問題ない。 (4) J2SE 1.5 より以前だとvolatile 経由でも、また、 J2SE 1.5 でも volatile さえ使ってないと、怪しい。 ちなみに、前者の場合は、 final 修飾子をつけたフィールドへのアクセスすら怪しい。 (5) あと何かあったっけ... 以上、「怪しい」ことをしなければ コンストラクタの中身を synchronized ブロックでくくったりしなくても 良いように思われる。 まあ、フィールドが1個なら volatile つければ、 ぐたぐた悩まないで良いのかもしれないんだけど。
197 :
152 :2005/05/27(金) 07:08:45
>>178 >「そうですが」と書いているということは、
>runメソッドから例外が出ようが出まいがfinally節は実行される。
>ということは理解しているのでしょうか?
理解してます。
>>179 >ちなみに、インスタンス化に失敗(OutOfMemoryErrorとか、
>コンストラクタで例外食らうとか)しても finallyブロックに行きますが。
そうです。その通りです。
>>152 をもう一度みていただきたいのですが、
その場合、finally節にはいるが、if文の処理は行われませんよね。
つまり、finally節の「if文の内容」が実行されるのは、
インスタンス化に成功したとき。(run()が成功しようがしまいが関係ない)
わざわざfinally節の形式をとっているのは、
インスタンス化成功、run();失敗の場合でも、処理を行わせたいから、
ですよね。
この場合にエラーで終了したいなら、finallyjじゃなくて普通に書けばいいですから。。
198 :
152 :2005/05/27(金) 07:10:53
199 :
152 :2005/05/27(金) 07:15:55
追加で質問お願いしたいのですが、 Hoge hoge = null; try { hoge = new Hoge(); hoge.run(); } catch (〜) { 〜; } finally { if (hoge != null) { 〜; } } で、インスタンス化で失敗した場合や、コンストラクタで例外 でたときで、hoge != nullになることって、ありえますか?
>>199 hoge が局所変数ならありえないはず。
そうでなければ、ありえないとは言い切れない。
Hoge(){ FooBar.hoge = this; throw new Error(); }
とかされていれば、コンストラクタで例外投げてても
FooBar.hoge にインスタンスへの参照が残ったりする。
>>197 >finallyjじゃなくて普通に書けばいいですから。。
あなたのいう「普通に」書いた例を見せてくれ。
「普通に」わらた 同じコードを複数個所に書くとバグが潜む可能性があるからな 跡でパッチ当てるときとかも2箇所に当てるとか製作者じゃないとわからんとかな
203 :
デフォルトの名無しさん :2005/05/28(土) 04:31:21
普通の予想 Hoge hoge = null; try { hoge = new Hoge(); } catch (...) { // 例外処理 // return または ネストして再投げ } try { hoge.run(); } catch (...) { // 例外処理(コピペ) // hoge の後処理 // return または ネストして再投げ(コピペ) } // hoge の後処理(コピペ) // 通常処理続行
204 :
203 :2005/05/28(土) 04:46:58
すまん、これでは インスタンス化成功、run();失敗の場合でも、 hoge の後処理を行ってしまう
205 :
203 :2005/05/28(土) 04:52:21
こうか。私もまだまだ精進が足らぬようだ。 Hoge hoge = null; try { hoge = new Hoge(); hoge.run(); } catch (...) { // 例外処理 // return または ネストして再投げ } // hoge の後処理 // 通常処理続行
2分木を使いたいのですが、どのようなクラスを用いるのが一般的でしょうか ちとググってみると、TreeMapが赤黒木らしいですが、各TreeMapの インスタンスが子ノードとしてたかだか2個のTreeMapのインスタンスまたは Object(葉)を持つように実装すればいいのでしょうか なーんかあんまり美しくないような気がするのですが
207 :
152,154 :2005/05/28(土) 07:01:33
>>202 ?
すいません意味がわからんです
どことどこに、同じコードをかくって?
>>205 そういうことです。
catch節を抜けた後、finally節で囲まない部分を
「普通の処理」、といいました。
ちなみに、try節内でエラー発生した場合、cathchされますが、
その場合はメソッドの処理は終了するのでは?
returnする必要ってあるのですか?
・例外が発生しても後処理をしなければならない場合は「finallyを使うのが普通」。 ・発生した例外をcatchしただけならそこに制御が移るだけで他の処理はそのまま進む。 よくわかりもせずトンチンカンなことを言っちゃうのはしょうがないが 自分は正しい、相手が間違ってる、みたいな雰囲気で発言するのはいただけないな。
209 :
152,154 :2005/05/28(土) 08:32:14
すいません
>>207 > ちなみに、try節内でエラー発生した場合、cathchされますが、
> その場合はメソッドの処理は終了するのでは?
しない。tryブロックが例外で中途完了しても
catchブロックが正常完了すれば try-catch文は正常完了する。
catch されない例外が tryブロックで発生しても
finallyブロックは実行されるので、
>>205 と
>>199 は等価ではない。
211 :
デフォルトの名無しさん :2005/05/28(土) 09:14:10
>>152 は
Javadocにもfinallyを使えと書いてあるlock構文でもfinally使わないのだろうか
213 :
デフォルトの名無しさん :2005/05/28(土) 15:39:38
テキストエリアに改行を出力したいのですが、できません。 例えば aiueo kakikukeko と出そうとして textarea.insert("aiueo\nkakikukeko",0); を実行しても\nがそのまま出力されてしまいます。 改行をさせるにはどうしたらいいのでしょうか?
>>213 Environment.NewLine
AWTだと改行文字は機種依存してるかもね
>>215 System.getProperty("line.separator");
g.fillRect()で塗りつぶしている四角の上に 文字を表示させるプログラムを書いたのですが、 何度やってもアプレットを立ち上げた時には文字が表示されず、一度リロードをすると必ず表示されます。 立ち上げた時にも表示するにはどうしたらいいですか?
218 :
デフォルトの名無しさん :2005/05/28(土) 19:53:40
どのタイミングでpaintが呼ばれているのかもっと勉強する必要がある >一度リロードをすると必ず表示されます。 であるならば、その時行われていることを起動時に行うようにすればいい
219 :
デフォルトの名無しさん :2005/05/28(土) 23:26:05
今、大学でオブジェクト指向のところを 勉強しているのですが全然分かりません。 誰か分かりやすく教えてくれませんか?
>>219 授業料はらってんだから先生に聞いたら?
オブジェクト指向でない場合はデータを保持する主体とデータを操作する主体を わけて考えていたけど、それを一つにまとめようというのがオブジェクト指向。 素人がオブジェクト指向に触れるとHogeというクラスを操作するために HogeManagerというクラスを作りやすい傾向があるけど、そういうのはあんまりオブジェクト指向でない。 操作するための実装がいくつもあって切り替えたいとかならまた話は変わってくるけどさ。
222 :
デフォルトの名無しさん :2005/05/29(日) 00:58:21
モバイトドットコム 「今日のJavaずーと続けたいんですけど」
223 :
デフォルトの名無しさん :2005/05/29(日) 01:55:50
>>220 先生怖いです・・・
>>221 2行目までは分かります。
3行目からはついていけません・・・。
224 :
デフォルトの名無しさん :2005/05/29(日) 02:39:46
スーパー初心者の質問です。 パッケージAとBと動作確認用のMain.java(main()がある)が/java/*にあり、 Main.javaを javac Main.java すると、AとB内の関係するファイルがコンパイルされclassファイルができるのですが、 Main.javaの実行に必要なファイルがすべてコンパイルされるわけではないんです。 コンパイルはどういう関連で判断されているのでしょうか? コンパイルされなかったファイルは独自にjavacしなければいけないのデツカ?
225 :
デフォルトの名無しさん :2005/05/29(日) 02:46:22
226 :
デフォルトの名無しさん :2005/05/29(日) 03:36:35
1000個の0〜9までの整数をランダムに作り それぞれの値の割合を円グラフで表示したい。 あとは円を描くだけです。count[]を使って描きたいんですけど、どうすればいいんでしょうか?
227 :
デフォルトの名無しさん :2005/05/29(日) 03:39:54
参照型変数でStringに代入は文字列の値を代入なのでわかるのですが それ以外の参照型への代入ってのがわかりにくいのですが たとえば自分で作ったvoid型やString型クラスの変数への代入とか どういったときに使うのか、わかりやすく教えてください
>Stringに代入は文字列の値を代入なのでわかるのですが わかってないじゃん
229 :
デフォルトの名無しさん :2005/05/29(日) 09:01:20
横レス失礼。 その代入って、文字列が入ってるメモリ領域の先頭番地が 入ってるってことですよね?
231 :
224 :2005/05/29(日) 14:23:40
> コンパイルはどういう関連で判断されているのでしょうか? について、誰か解答お願いします。
233 :
デフォルトの名無しさん :2005/05/29(日) 14:46:59
void main(){ int[] count = new int[10] Random rnd = new java.util.Random() // 現時刻を種として初期化 for( int cnt = 0 ; cnt < 1000 ; cnt++ ){ count[ rnd.nextInt(10) ]++ } System.out.println( "乱数","頻度" ); for( int cnt = 0 ; cnt < 10 ; cnt++ ){ System.out.println( cnt + "," + count[cnt] ) } -------------------------------------------------------------- C:\> java hoge > randFreq.csv ってやってExcelで円グラフを書くんじゃだめ?
234 :
デフォルトの名無しさん :2005/05/29(日) 17:07:21
JTable table = new JTable(); JScrollPane sp = new JScrollPane(); sp.getViewport().setView(table); という感じでテーブルを表示しています。 テーブルのカラム数が多く、セルをタブ移動させていくと、 フレームの右側に常にフォーカスを持ったセルが来るようになりますが、 フォーカスを持ったセルがフレームの中心に表示されるようにしたいです。 用はスクロールが自動的にされるみたいなイメージで、フォーカスのあるセルが フレームの中心に表示されるようにしたいのです。 これってできますか?
Athlon64 X2 で java の実行は軽くなりますか?特に eclipse 重いです
eclipseを2にすると軽くなるよ あとはPentiumMの2GHz以上のやつにするとか マルチコアはJavaで体感速度にかなり効果あげるからX2はいいだろうね つーか、今の環境かいてもらわんと
237 :
226 :2005/05/29(日) 19:04:07
>>233 だめです。ウインドウで表示したい。
どうすれいいか分からない・・・orz
238 :
デフォルトの名無しさん :2005/05/29(日) 19:07:16
>>226 >count[]を使って描きたいんですけど
↑コレの意味さえわかれば楽なんだけど・・・どういう意味ですか?
239 :
226 :2005/05/29(日) 19:10:54
countで配列にしています
240 :
226 :2005/05/29(日) 19:15:00
>>238 説明がうまくできそうにないんで、それなしで描く方法を教えていただけませんか?
241 :
デフォルトの名無しさん :2005/05/29(日) 19:18:29
円グラフなんて便利な描画命令あるのになんでつまずくのかわからんな 自前で円描画とか塗りつぶしが難しいというのならまぁわからんでもないが
メモリを1GBぐらい積むといい。
245 :
デフォルトの名無しさん :2005/05/29(日) 20:37:49
SWT を Java 以外の言語に移植することは可能でしょうか?
246 :
デフォルトの名無しさん :2005/05/29(日) 20:49:05
import java.awt.*; import java.awt.geom.*; import javax.swing.*; public class test extends JFrame {public static void main(String[] args) {new test().start();}public void start() {int[] data = createData();this.setBounds(100, 100, 300, 300);this.setDefaultCloseOperation(EXIT_ON_CLOSE);GraphPanel gp = new GraphPanel(data);Container c = this.getContentPane();c.add(gp, BorderLayout.CENTER);this.setVisible(true);}public static int[] createData() {int[] count = new int[10];java.util.Random rnd = new java.util.Random();for (int cnt = 0; cnt < 1000; cnt++) {count[rnd.nextInt(10)]++;}return count;}public void printData(int[] data) {for (int i = 0; i < data.length; i++) {System.out.println((i + 1) + ":\t" + data[i]);}}class GraphPanel extends JPanel {private int[] data = null;private Color[] color = { Color.BLUE, Color.YELLOW, Color.RED, Color.PINK, Color.CYAN, Color.GREEN, Color.GRAY, Color.BLACK, Color.MAGENTA, Color.ORANGE };public GraphPanel(int[] data) {this.data = data;}public void paintComponent(Graphics g) {super.paintComponents(g);this.setBackground(Color.WHITE);Graphics2D g2 = (Graphics2D) g;g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);Rectangle rect = this.getBounds();g2.setColor(Color.WHITE);g2.fillRect(0, 0, (int) rect.getMaxX(), (int) rect.getMaxY());double space = 10;double r = this.getHeight() < this.getWidth() ? (this.getHeight() - space * 2) : (this.getWidth() - space * 2);double start = 90;double extent = 0;for (int i = 0; i < this.data.length; i++) {extent = (double) 360 * ((double) this.data[i] / (double) 1000);g2.setColor(color[i]);g2.fill(new Arc2D.Double(space, space, r, r, start, extent * (-1), Arc2D.PIE));start = start - extent;}g2.dispose();}}}
247 :
デフォルトの名無しさん :2005/05/30(月) 02:17:27
>>219-220 漏れも大学でオブジェクト指向の話を
C++とAdaを使って教授から聞いたがさっぱりわかんなかった。
全然意味がわからなくて
そんなときふとJavaに出会ったら
突然オブジェクト指向がわかるようになった。
あの教授は役立たず、Javaはあの教授よりも偉い
って思ったほどだよ。
もとはといえばあの授業で説明するのに使う言語をC++やAda
ではなくJavaにすれば素早く理解できたんじゃないかってとも思えてきたよ。
>>247 大学で教わるという態度が愚かだ
えさを親鳥から貰わないといけない雛鳥か?お前は
腹が減ったら食い物探しに自ら歩き回れ
249 :
デフォルトの名無しさん :2005/05/30(月) 02:47:36
>>248 親鳥から餌がもらえるうちは、貰っとけ。
奇麗事が通じる環境は幸せな環境だと思うぞ。
立ってるものなら親でも使え。
ところで、おいらの我流なOOの理解は、
最初は、データとそれに関連するメソッドを一緒に管理することだと思ってたが、
最近では、どの境界で整合性を確立するかということだと思うようになってきた。
250 :
ビギナー :2005/05/30(月) 03:31:27
以下の表現がよく本に出てくるんですが、意味がよくわからないため困っています。 new Hogehoge(this); この場合、Hogehogeクラスを生成しているのはわかるんですが、thisを引数にしているのがよくわかりません。 どういう意味でしょうか?
251 :
& ◆r/YWU7Y/52 :2005/05/30(月) 03:33:03
Hogehogeクラスを生成している × Hogehogeクラスのインスタンスを生成している ○ でした
その本を書いた奴はそういう作り方が好きなんだろ。
253 :
デフォルトの名無しさん :2005/05/30(月) 03:41:18
>>250 普通に答えると、
その生成は、あるインスタンスAのメソッドで出てきて、
A自身をコンストラクタに渡している。
邪推すると、自分自身Aを渡すことで、
生成したインスタンスから
Aのなんらかにメソッドを呼び出すことを期待している。
(相互参照は良くないので)理想的には、
そのコンストラクタの引数は何らかのインタフェースで、
Aはそのインタフェースを実装している。
おそらく、イベントか何かじゃないかな。
254 :
250 :2005/05/30(月) 03:47:42
>>253 いまいちイメージできませんでしたが、
最後の所は流石ですね。
デザインパターン(結城先生)の本を読んでいて、IteratorパターンのBookShelfクラスで実装されている
Iteratorメソッドのことなんです。
255 :
デフォルトの名無しさん :2005/05/30(月) 04:16:53
>>254 Iterator パターンならば、3番目は外れだな。。
まあ、相互参照も場合によってはありということで。。
でも、Iterator なら、静的でないインナークラスにするのが
スマートじゃないかなぁ。
256 :
デフォルトの名無しさん :2005/05/30(月) 12:56:44
>>248 アフォかお前は。
逆にこちらが大学側に授業料という餌を与えてやっているんだよ。
実際、情報科,情報学部はすさんでいる。
ほとんどの大学がオブジェクト指向プログラミング経験が貧弱な教員の巣窟だ。
デザインパターンといっても概要はわかっても実践ではろくに
使いこなせない香具師ばかりだ。
連中ができることといえば数学、電子工学、論理学、音響/画像工学、ハードウェア系
とそのほか理論もろもろ程度だ。連中がIT業界に連れ込んでも役に立たないケースは
かなり多いぞ。
>>250 あるクラスXの中でthisが使われたら
そのthisはそのクラスXのオブジェクトそのものということだ。
通常、自分のクラスの中でdoMethod()とやるが
わざわざthis.をつけてthis.doMethod()と書く必要がない
といえばわかると思われ。インスタンスフィールドについても同様
(だが、インスタンスフィールドの場合は間違いを防ぎやすいように
ローカル変数やメソッド引数と区別してthisをつけるが)。
>>253 に合わせてthisがクラスAのオブジェクトだとすると
HogeHogeはそのオブジェクトを包み込んで(包含 Aggrecation)
(HogeHogeの中にAが入っているかのように)何かをする感じかと思われ。
結城浩の本を読んでいればもっとわかりやすいのがあるので
そのうち理解できると思うが。
入力スレッドを作ってコンソールからの入力処理をさせたいんですが、 現在のコードは以下の用になってます。 見ての通り入力がなければreadLine()でブロックされて、 スレッドをプログラム内部から終了させることができない状態です。 stopメソッドは非推奨とありますが、内部から終了させたい場合、 どの様にすれば良いのでしょうか? public void run () { while (alive) { String cmd = input.readLine(); // コマンド入力がない限りブロックされる // 処理... } }
>>258 やったことはないが、止める側でThread#interrupt()して、
止められる側(コンソールの読み取りスレッド)では
InterruptedIOExceptionをキャッチして後始末、
とかじゃないかな。
>>258 1. スレッドを開始する前に setDaemon(true) しておく。
2.
>>259 のように割り込みをかける。
261 :
デフォルトの名無しさん :2005/05/30(月) 18:28:59
システムリソースが不足していますって表示されるんですけど どうすればいい?
リソースを増やせ
263 :
250 :2005/05/30(月) 20:48:04
>>257 レスは非常にありがたいのですが、
>
>>253 に合わせてthisがクラスAのオブジェクトだとすると
>HogeHogeはそのオブジェクトを包み込んで(包含 Aggrecation)
>(HogeHogeの中にAが入っているかのように)何かをする感じかと思われ。
このへんがよくイメージできませぬorz
264 :
デフォルトの名無しさん :2005/05/30(月) 21:10:38
c言語の float data[100]; fread(data,sizeof(float),100,fp); にあたるものはJAVAではどう書けばいいのでしょうか? float data[] = new float[100]; に一度にいれたいのですが、byte以外の場合の読み込みができなくて 困っています。
265 :
デフォルトの名無しさん :2005/05/30(月) 21:17:38
CreateGame〜陸海空オンライン〜 日本最大MMO製作プロジェクト始動!(してますw
数字を指定して次のような「0001、0002、0050、0100、〜」 文字列をfor文で生成したいのですが、どのように生成するのでしょうか。
>>264 普通に扱えると思うが
エンディアンにきをつけるこった
268 :
デフォルトの名無しさん :2005/05/30(月) 21:55:38
test.iniファイル(AA,001,pass,200)を格納しているlcTmapがあり、 //loadTestTbl()はtest.iniファイルを読み取るメソッドです。 TreeMap lcTmap = readFile.loadTestTbl(); コマンドライン引数(args[2]=pass)と比較して、異なる 文字列だった(例えばargs[2]=hogeとtest.iniがpass)場合に、 「パスワードが違います」と表示するにはどうすればいいのですか?
>268 lcTmap.get("AA")で"001"という内容のString、 lcTmap.get("pass")で"200"という内容のStringが返ってくるのかな。 なら、 String passwd = lcTmap.get("pass"); // nullだったら嫌なので一応 if (passwd == null || !password.equals(args[2]) ) { System.err.println("パスワードが違います"); }
ByteBuffer#asFloatBuffer()
>>266 「どのように〜」は、まさか数の生成ができないんじゃないよな?
4ケタ文字列にフォーマットしたいのなら
NumberFormat、DeciimalFormat辺りを調べろ。
JNIのNewDirectBuffer関数でByteBufferとしてJavaから扱えるようにしたネイティブのメモリ領域は DirectByteBufferのファイナライザで自動的にfreeされてしまうのでしょうか? もしそうだとすればネイティブメソッド、あるいはJavaプログラムから任意にfreeする方法はないのでしょうか?
273 :
269 :2005/05/30(月) 23:48:04
いかん、一行目、getの戻り値Stringにキャストよろorz
>>259 ,260
レスありがとう。
260さんの1)では上手く行きましたが、2)の方法が上手く行きません。以下、テストプログラム。
割り込みがキャッチできません、、俺がスレッド理解してないだけなのかな。
import java.io.*;
public class InputThread extends Thread
{
public void run () {
BufferedReader input = new BufferedReader( new InputStreamReader(System.in) );
while (true) {
try {
String cmd = input.readLine();
System.out.println("echo >> " + cmd);
} catch (InterruptedIOException e) {
e.printStackTrace();
break;
} catch (IOException e) {
e.printStackTrace();
break;
}
}
}
public static void main (String[] args) {
InputThread input = new InputThread();
input.start();
input.interrupt();
try {
input.join();
} catch (InterruptedException e) {}
}
}
>>271 ありがとうございます。
やってみます。
OpenLaszloクールだな。参考資料欲しいんだけど公式以外ってどこが ありますかね?
通常コマンドラインアプリは終了ならQとかEXITとか CTRL+Zとかなんらかの入力があるからなぁ
>>274 interruptで発生したInterruptedExceptionをどこでcatchしようと思ってるんだ。
Quit q Exit e x Help h ? Abort a ab Bye by Break Esc Ctrl-Z Ctrl-C Ctrl-Break ctrl-Alt-Del これだけ試せば大抵抜けられたな
>>278 InterruptedIOExceptionで受け取るつもりでした。
BufferedReader若しくはInputStreamReaderでラップ
した時にスローされずに内部処理されているのかな。
検証はしてませんが・・
結局、設計再考慮してデーモンとして動かすことにします。
ありがとうございました。
>>280 例えばwhileループに入る前にinterruptされたらどうなると思ってるんだ。
>>280 InterruptedIOException って Socket#getInputStream() で取れる
InputStream 以外で throw されるんだっけ?
283 :
デフォルトの名無しさん :2005/05/31(火) 20:47:01
ちょっと質問なんですが内部のバイトコード操作用ライブラリとしてBCELを利用しているAOP(アスペクト指向)のライブラリってあります でしょうか?BCELでアスペクト指向みたいなプログラムを作る方法を学びたいです。 ちなみにAspectJはソースを見てみたところASMというライブラリを内部で使っているようでした。 スレ違いだったら誘導よろです。よろしくどうぞ。
>>263 デザインパターン本でCompositeパターンあたりでも読むといいだろう
285 :
デフォルトの名無しさん :2005/06/01(水) 03:31:24
>>274 いくつかのJDKリリースでは、InterruptedIOExceptionもサポートされているが、
これは、いくつかのプラットフォームにだけ、部分的に実装されています。
という記述が、Doug Lea の本に書いてあった。
タイムアウト付きのIOメソッドでループさせ、
Interrupt が発生しているかどうかを、手動で確認するのが確実かな。
>>278 ,281
勝手なところで例外発生したらかなわん。
というか、だからというか、継承元の
InterruptedException はチェックされる例外だろ?
286 :
285 :2005/06/01(水) 03:40:35
> というか、だからというか、継承元の > InterruptedException はチェックされる例外だろ? InterruptedIOException の親クラスは IOException でしたorz
キーフックと、Javaのキーボードイベントをイベントリスナで取得する(んですよね?) の違いがいまいちよく分からないのですが、ちょっと教えて頂けませんでしょうか。 キーフックはキーが押されたとかいうイベントがOSに届く前に横取りして 加工して返したり返さなかったりする Javaの方はイベントリスナでキーボードが押されたとかいうイベントを取得しても 横取りする訳じゃないからイベント自体はOSに届く という理解であってます?
>>287 横取りってキーボード割り込みのジャンプ先を書き換えるとかしないと無理でしょ。
ところで、キーボード割り込みの横取りって、まともな使い道あるの?
javaだけではフッキングは無理だな。 JNIでAPI呼ばないと。 TextFieldなんかで定型入力させるのか? だったらリスナで十分だ。
290 :
デフォルトの名無しさん :2005/06/01(水) 20:59:29
Javaで一つ目の引数に生年月日(yyyy/mm/dd) 二つの目の引数に没年月日(yyyy/mm/dd) 二つ目の引数がnullの場合は現在の日付と時間を代入 これらを計算してして現在および没年の年齢をだしたいのですが yyyy-yyyyなら簡単なんですが誕生日の兼ね合いが難しいです 教えてください
291 :
デフォルトの名無しさん :2005/06/01(水) 21:05:10
sunのepsilonプロジェクトについて詳しく知ってる人いませんか?
swingの質問二つ、よろしいでしょうか。 Windowsで開発してるのですが、JFrameのウィンドウの最小化ボタン、最大化ボタン、終了ボタンが ありますよね。アレの最大化ボタンだけを非表示にして、_□×ではなく_×という 状態にしたいのですが、どうすればいいでしょうか。 もう一つ、JButtonみたいなものなのですが、例えばONボタンとOFFボタンがあって、 ONボタンがクリックされると、ONボタンは押しっぱなし(凹んでいる)状態に、 OFFボタンは押されていない状態に、OFFボタンがクリックされると逆の状態になるという ラジオボタンのように使えるのはないでしょうか。
294 :
デフォルトの名無しさん :2005/06/01(水) 21:27:40
>>290 java.text.DateFormat (java.text.SimpleDateFormat)
と java.util.Calendar (java.util.GregorianCalendar)。
現在日なり没日なりを越えないように、 誕生日のyearをrollして、回数をカウント。
>>293 1. 最大化ボタンは、disableする(押せないようにする)ことは出来るが
非表示には出来ない。
2. つ JRadioButton, ButtonGroup
JAVA歴の短い私に愛の手を… Accessで作ったデータベースをPDAで参照しようと思ったらどういう流れでソースを書けばいいのでしょうか? 一応PCのコマンド上ではデータの参照をできるようになったのですが、 見栄えが悪すぎるというか実用性に欠けるというか…。
見栄えの問題をいわれても・・・
300 :
デフォルトの名無しさん :2005/06/01(水) 23:00:25
AccessのデータってPDAの中に乗っかってるの? JDBCみたいにアクセスできるか?って言う質問なら 答えはNO 自分でシコシコ作るしかない
301 :
298 :2005/06/01(水) 23:02:40
説明不足で申し訳ないです。 アプレット(?)を作りたいので、見た目も分かりやすい方がいいかな?と思いまして。 なんていいますか、ユーザ側が数字を入れるとその番号にあったデータがパッと出てくるような… イメージしか言えない自分が恥ずかしい。
普通、質問するときにはPDAとかJ2MEとかの環境について書いておくものだろ。 釣りだね。
304 :
デフォルトの名無しさん :2005/06/01(水) 23:08:57
プロジェクトをまたがる たとえばEclispeで二つプロジェクトを作って 1のプロジェクトにあるpublicクラスを2のプロジェクト内 のクラスから呼び出すことって可能でしょうか?
305 :
デフォルトの名無しさん :2005/06/01(水) 23:09:42
>>298 >どういう流れでソースを書けばいいのでしょうか?
さいきん「どういう風にすればいいかわからない」と言う類の質問が多いが
別にプログラムは魔法ではない
今回の場合Accessのデータベースっていうのはつまりファイルだろ
ファイルの中をユーザが入力した数字にあったものを取ってくる方法を考えればいい
ファイルアクセス
中の文字検索 文字検索と言ってもファイルの先頭から見ていくだけだ。なんら特殊な方法はない
306 :
デフォルトの名無しさん :2005/06/01(水) 23:10:56
>>304 java -cp でクラスパス通すか
二つのクライアントのどちらかをサーバにする
以上
305とか306とかマジレスのようでマジレスでないってのも 腑抜けた質問と同様にたちわりーな。
308 :
デフォルトの名無しさん :2005/06/01(水) 23:17:24
両方とも俺だ >たちわりーな。 インポではない
>>304 プロジェクトのプロパティで、Javaのビルドパスで多のプロジェクトを参照できるように設定しろや
310 :
デフォルトの名無しさん :2005/06/01(水) 23:19:11
>>309 そういうのって
2つのEclipse起動してモいけますか?
(モがおかしくてすいませんバグです)
311 :
デフォルトの名無しさん :2005/06/01(水) 23:19:19
コマンドライン引数が何個入れられたかを調べるのにはどうしたらいいのでしょうか。
312 :
デフォルトの名無しさん :2005/06/01(水) 23:20:18
main(String[] args) { System.out.print(args.lengs); System.out.println("個"); }
args.lengs
314 :
デフォルトの名無しさん :2005/06/01(水) 23:20:56
315 :
311 :2005/06/01(水) 23:25:41
>>312 >>313 おお!早速レスしていただきありがとうございます。
おかげさまで解決しました。
316 :
デフォルトの名無しさん :2005/06/01(水) 23:26:20
317 :
311 :2005/06/01(水) 23:29:39
いやぁそれほどでも (ちゃんと動いてますよ?
318 :
デフォルトの名無しさん :2005/06/01(水) 23:29:41
320 :
デフォルトの名無しさん :2005/06/01(水) 23:45:17
釣バカ日誌
早くなんか書けよ じゅう きゅう はち・・・
萩ちゃんはほかにもループを roop と書いてジャバハウスで ひろみちゅにおちょくられてたなぁ。 ま、体育会系だしな。
最新版のJavaでは、日本人のプログラマーをを考慮してargs.lengsも 使える様になったらしい。
argsu.rengusu
326 :
デフォルトの名無しさん :2005/06/02(木) 10:35:20
くだらない質問ですが、 str が null になるかもしれない時、 if(str.equals("hoge"){ } じゃなく、 if("hoge".equals(str){ } と書くのは正当な手段ですか?
327 :
デフォルトの名無しさん :2005/06/02(木) 10:41:10
i--%5>0 iの初期値を10として、この式の結果がfalseになるのはどうしてでしょうか?
>>326 嫌になるほどがいしゅつではあるが、後者はいろんな意味で気持ち悪いのでやめれ。
nullを適切に検出して処理する癖をつけるほうがよっぽど有益です。
>>327 どうしてもなにも、0>0 はfalseだと思うが・・・。
330 :
326 :2005/06/02(木) 11:01:55
(str != null && str.equals("hoge")) とかじゃないの
>>331 にするくらいなら
>>326 の書き方で正解だ
>>331 ならstrを"hoge"しか認めていない。
それなら
>>326 のコードでいい
nullでなく、空文字でないという場合なら
str != null && !str.equals("")
でいいと思うが。
String変数にnullを入らないのが前提ならば、
>>326 の前者の書き方で全く問題ない。
でもコードミスでデバッグ段階でnullが入ってしまい、
ぬるぽを避けるためというなら
>>326 の後者でいい。
>>331 のコードは変。
hogeしか真にしない条件なら
>>326 の後者で十分。
>>333 String#equals(null)はfalseですよ。NPEは起きません。
ところで私、nullでなく空文字でないというチェックを
str != null && str.length() > 0
とやるんですが、こういう人は少数派?
>>334 ぬるぽにならない、と言っている時点でわかってないな。
336 :
デフォルトの名無しさん :2005/06/02(木) 12:45:35
System.out.println(Totalmoney+"円の貯金があります。"); return Totalmoney; だとおけで return Totalmoney; System.out.println(Totalmoney+"円の貯金があります。"); だと C:\java>javac allone.java allone.java:15: この文に制御が移ることはありません。 System.out.println(Totalmoney+"円の貯金があります。"); ^ allone.java:16: return 文が指定されていません。 エラー 2 個 とでます。 普通、帰り値を出してから(returnしてから)出力(println)をするもんだと思ってたんですが、 何で逆なんでしょうか・・・
>>335 if文は左から順に処理するのが決まってるので
先にnullかどうかの判定をしているのと同じだよ
他人が見て即座に理解できる、とか明示的なコードを書くってのは
仕事で書くならば当たり前のことだよ
>>336 おまいさんは
> 普通、帰り値を出してから(returnしてから)出力(println)をするもんだと思ってたんですが
この認識をどこからどうやって得たのか明確に示してみれ。
ある意味アバンギャルドな発想で興味深い。
>>337 覚えたての人ほどトリッキーなコードを書くよね
仕事では、のちのち別の人に丸ごと書きなおされる運命
キーイベントの取得の話なのですが、自分にフォーカスがある時だけじゃなくて フォーカスされてない時でも全プロセスのキーボードイベントを取得するのはどうやるのでしょうか
333=335=337まできて、やっと
>>333 の意味がわかった。
333=335=337は、&&演算子の左右の式の評価順序が、Cのように不定だと思っていて、
str != null && str.equals("hoge")
と書いた場合、str == null の時にぬるぽになる可能性があると思ってたんだ。なるほど。
で、それを
>>336 に指摘されて
>>337 と反論した、と。
で、
>>326 ってそんなにトリッキーか?
むしろ333のようなCからの移行組にいらぬ誤解を与えなくていいと思うんだが。
342 :
341 :2005/06/02(木) 14:24:12
343 :
デフォルトの名無しさん :2005/06/02(木) 14:27:06
if("hoge".equals(str){ } これ自体はトリッキーとはいえないが、str==nullとなっている場合があるならその処理をすべき なのかもしれない。
>Cのように不定だと思っていて、 おいおい
目的と手段がかみあってないから気持ち悪い
ぬるぽ発生条件を分かってないやつがいるな。
>>347 俺だったらそれ見つけたらすぐ書きなおすけどね
Cのif文で、代入ミスを防ぐとかで定数を左にもってくるのも同様
問題ないのに何で修正するんだ? 代入ミスも発生しないし
プログラムが動作を表さないコードだったらコメント入れてくれ コメントなくても読んだだけで動作を表すコードならなおよし
つまり、 //nullでもエラーにしないため というコメントを入れればよしってことか
謎だな
str.equals("hoge") なら 「str が "hoge" のとき」と素直に読めるが、"hoge".equals(str) だと素直に読めないだろ。 それに、そういう癖をつけちゃうと null ではまずいけど null が引っかからずに通ってしまうコードを書いてしまうかもしれないだろ。 小手先のテクニックのために気持ち悪い頭悪いソース書かれたらたまらん。 ム板っていつからこんなにクオリティ低くなった?on_ あ、昔から低いか。
>>356 素直に読めないというのが理解できない。
文字列を参照してることでnull参照を避けていることが分かるだろうに。
変数strにnullが入ってきてしまうことでデバッグに困ると言いたいのなら、
ブレークして中身見ればいいだけの話で完全にスレ違い。
>>356 要は「俺の流儀に反する」ってことだろ?
まぁ、この辺認めない人もいるかもね。自クラスで定義されたフィールドを参照するのに
フィールドに直にアクセスするか、getter/setter経由するか、という話みたいに。
>358 > 「str が "hoge" のとき」と素直に読めるが 「文章として」素直に読めるかどうかが問題。 > 文字列を参照してることでnull参照を避けていることが分かるだろうに。 そんなことはわかっている。俺もお前も。 でも、みんながみんなそう解釈してくれるとは限らん。そういう話。 > 変数strにnullが入ってきてしまうことでデバッグに困ると言いたいのなら "hoge" を前にすることで無駄に中身を確認する必要がある(品質が下がる)のなら それはやはり問題では?
>>360 無駄といえるほどの処理じゃないだろ。
2秒で分かるのに・・・。
つか、スレ違いだからもうやめれ。
>>360 に質問したいが、どんな開発環境使ってるんだ?
数年後に確実に別のやつのメンテが入る状況だったりするな つーか、ひとつのプロジェクトで各種言語が入り乱れ javaだけでも常時20人が入れ替わり立ち代り(派遣含む) 触ってる環境じゃあなあ・・・
なんかStringだけは特殊な表記法なだけに ==で内容が同じかどうかの判断はしてくれてもよかったのにな
>>328 条件が変数名の長さに左右されず常に先頭に来る分、後者の方が見やすい
>>367 逆に文字列長が様々だった場合見にくそうだが
規約なんて企業によって様々だとおもうんだが
"1".equals(x) を 1 == x とかと同じように考えてるやついない?
1 == x と書くのは x == 1 とまったく等価で意味がないからやめるべきだけど
"1".equals(x) は x.equals("1") とは等価じゃないだろ。
例えば
>>356 は
>str.equals("hoge") なら 「str が "hoge" のとき」と素直に読めるが
とか言ってるけどそもそもこれが間違いだし。
x!=null && x.equals("a") のほうがわかりやすい
376 :
326 :2005/06/03(金) 00:13:38
なかなか壮大な議論になってしまいましたね。 僕はへぼプログラマーなので、プログラムのことはよくわかりません。 この道を極めようとも思っていません。 でも、最低限のプログラム作法を知っておきたいので、質問してみました。 でも案外、中級・上級の人でも少し意見が分かれていますね。 ジャバワールドにでも質問してみるかw
個人で書くコードと仕事で他人のメンテもしなきゃならないようなコードで意見が分かれるかと。
>1 == x と書くのは x == 1 とまったく等価で意味がないからやめるべきだけど 間違えて代入式書いてしまう馬鹿対策としては、あってもよいかとおもうが。 >str != null && str.equals("hoge") >"hoge".equals(str) こんなことを気にしなきゃならないほど周りが低脳コーダばっかりなら 気にするかもしれんが、どっちにしても誤解しようがないんで、正直 どうでもいい。 低脳に合わせてコーディングするのも大変だよな。
>>378 >間違えて代入式書いてしまう馬鹿対策としては、あってもよいかとおもうが。
それが有効な対策になるコードを教えていただけませんか?
少なくともJavaでは条件式を使うところに間違えて代入文を入れたら、
コンパイラがはじくよね?
>>379 boolean x = true;
if (x = false) {
...
}
そもそも x == false とか書くのも間違ってるがな。
"***".equals(〜) って直感的に分かりにくいというよりもむしろ、 書くときにすぐ出てこないんだけど慣れの問題?
>>381 こないだコードレビューで見つけたばっかのコードだw
間違いじゃないけどこんなのも
/* 条件に該当するデータが存在 flag */
boolean dateFlag = false;
>>374 x!=null && x.equals("a")
上の条件式で真になる場合は変数xが文字列aの場合だけ。
「変数xがaである場合のみ」ということを考えるなら、
"a".equals(x)
で問題ない。それをわざわざ
>>374 のように書くのは
プログラマとしてのレベルが低いってことジャマイカ。
>>384 レベル云々の問題じゃなくって、慣れとか習慣の問題。
そこを、やれバグの温床になるだの品質が下がるだの言い出すのはレベルが低いといえるが。
"a" とか "hoge" とかだから気持ち悪いんだよ 状況によって、この文字列そのもので何だかわかる場合、 もしくは、すごくわかりやすい変数名がついた変数で あった場合なら、こんなに文句はつかない。
俺が思うに、"hoge".equals(str) だとぬるぽがでる可能性を排除することになる。 もちろんそこに目的があるのだから当たり前だが。 しかしそれではあまりにも、あまりにもロマンがなさ杉じゃないか? ぬるぽの排除されたコードなんて、コードなんて・・・。 。・゚・(;つД`); ・゚・。 うわーん
>>387 ガッ
軟弱者!( `・ω・)っつ)つД`)
if ( "ぬるぽ".equals( word ) ) { res.responce( "ガッ" ); }
>>389 resがnullなのでNullPointerException
>>386 に同感だなあ。
"hoge".equals(var) が気持ちわるい人は、
static final hoge = "hoge";
...
if (hoge.equals(var)) {
って書いても気持ちわるい?
定数が小文字なのはちょっと・・・
>>386 それは例えだって。実際は定数に決まっている。
定数でもnullを避けるためだけに盲目的にやられると 困るけどな。1文字のときとかね
public static final String KEYWORD = "hoge"; ... if ( KEYWORD.equals( var ) ) { ... うむう・・・。
398 :
デフォルトの名無しさん :2005/06/03(金) 15:07:20
以前はKEYWORD.equals( var )という書き方をしてたけど、 最近はなるべくvar.equals( KEYWORD )という書き方をしてるなぁ... というのも、このような文字列比較をするときに、 varにnullが入っているというのは予期していないことが多いので、 潜在的なバグを防ぐためにも、素直にぬるぽが飛んでくれた方が気持ちいい。 あと、多数のキーワードと比較しないといけない状況で、 switch文を使う場合は、どちみちこの手は使えないしね 例えばこんなことをするとき assert (var != null && var.length() > 0); switch(var.charAt(0)) { case 'a': if (var.equals("aho")) { ... } else if (var.equals("ahe")) { ... } break; case 'b': if (var.equals("bobo")) { ... } else if (var.equals("brazil")) { ... } break; }
>>398 > 潜在的なバグを防ぐためにも、素直にぬるぽが飛んでくれた方が気持ちいい。
NullPointerException を throwした方がいいなら、
自分で null と比較して投げた方が良いと思うが。
明示的な書き方をしたほうがいいというのはよくあることだな 同じようなので条件式の中のbooleanでfalseを調べるときとか
New I/Oの非同期通信でObjectInputStreamやObjectOutputStreamみたいなのを 使ってオブジェクトの通信をすることは可能でしょうか。 ふつうにObjectInputStreamを使おうとするとIllegalBlockingModeExceptionが 発生してしまいます。
話がループしてきている件
> 同じようなので条件式の中のbooleanでfalseを調べるときとか それは単なるアホだろう。
>398 前半は同意。 後半(switch)はキモイ。設計やり直し。
>>399 ↓こんなプログラム書くの?
if (var == null) {
throw new NullPointerException();
}
if (var.equals("hoge") {
...
}
いくらなんでも、これはやりすぎ。
ランタイム例外が飛んでプログラムが停止することで
バグ(本来nullを渡してはならない関数にnullを渡していたなど)
を早期発見できるようにするのが目的であって、
ぬるぽを投げること自体が目的ではないんだから...
>>401 configureBlocking(false)でブロッキングモードを解除、
あるいはでかいデータでなければ一旦ByteArrayOutputStreamでバイト列に格納して
非ブロッキングI/Oで送信。
真偽値なのだが、trueとfalseのほかに「未設定」という値を持ちたい場合 どうすればいいのでしょうか? booleanでなくBooleanを使うのでしょうか?
>>406 未設定がある時点で真偽値じゃねーだろ。
intでも使え。
>>406 そういう場合は、素直に数値型を使うのがいい。
public interface Constants {
public static final int YES = 1;
public static final int NO = -1;
public static final int UNKNOWN = 0;
}
という具合に。
>>407 ,408
参考になりました。ありがとうございました。
>>405 書くよ。不正な引数かそうで無いかのチェックはすべきだからね。
少なくともライブラリとかの下層のコードを書いてるなら特に。
上層で明日書き直さなければならないかもしれないコードなら必要ないけど。
うまく管理できればBooleanでnullを使うのも悪くないかも、と思う。 >407 >408 最近はenumというものがあるのですよ。
>410 nullが不正な引数なら、投げるのはIllegalArgumentExceptionだろ。
>>406 素直に enum 使え。
>>408 では型によるチェックができん。
あと、定数の列挙にinterfaceを使うのも止めた方がよさげ。
>>412 IllegalArgumentException でもいいけど、
Sun の標準API でも平気で NullPointerException 投げてるのでぬるぽで問題ない。
Object[] args = {new Integer(H), new Integer(M)}; H>0, M>0 → H 時間 M 分 H=0, M>0 → M 分 H>0, M=0 → H 時間 H=0, M=0 → 0 分 または 0 時間 となる MessageFormat 作りたいんだけど、どうフォーマット組んだら良いのかな? "{0,choice,0#|0<{0}時間}{1,choice,0#|0<{1}分}" とか組んでみたけど、H=0, M=0 の時に長さ 0 の文字列になってしまう。
416 :
415 :2005/06/03(金) 18:42:43
{0,choice,0#{1}分|0<{0}時間{1,choice,0#|0<{1}分}} のフォーマットが通れば OK なんだが、 choice の中に choice を入れる方法はないのかな?
>414 そういう話じゃないだろ。 詭弁のガイドライン 2.ごくまれな反例をとりあげる
>>417 ちょっと待て。
> 2.ごくまれな反例をとりあげる
って……
APIリファレンスの NullPointerException の「使用」見るとか、
ソースに NullPointerException でgrepかけてみればわかるよ。
不正な引数としての null に IllegalArgumentException 投げる方が少数。
> APIリファレンスの NullPointerException の「使用」見るとか、 大して無いな。
ま、
>>417 は馬鹿っつーか経験ないのがバレバレだが。
>>410 J2SEのソース見ると、放っててもぬるぽが飛ぶ場合は、
明示的に飛ばすようにはしてないみたい。
ただ、フィールドに格納する場合は、
わざわざnullチェックしてぬるぽ飛ばしてるなぁ。
nullが入ったらまずいフィールドにnullを入れてしまって、
後で使うときにぬるぽが飛んでも、そもそもの原因が分からないので、
こういうチェックの仕方は妥当なところかも知れない。
422 :
401 :2005/06/04(土) 00:33:10
>>405 SocketChannel socketChannel = serverSocketChannel.accept();
socketChannel.configureBlocking(false);
oos = new ObjectOutputStream(socketChannel.socket().getOutputStream());
ois = new ObjectInputStream(socketChannel.socket().getInputStream());
このように非同期通信でObjectInput/OutputStreamを使おうとすると、
IllegalBlockingModeExceptionが発生してしまいます。
これはStreamを使った通信だと非同期通信ができないせいだからだと思いますが、
非同期通信でObjectOutputStreamとObjectInputStreamを使った通信みたいに
簡単にObjectのやりとりをすることはできないのでしょうか。
>>412 に同意
オレもIllegalArgumentExceptionやらIllegalStateExceptionやら投げまくってる
} catch (UnsupportedEncodingException uee) { throw new IllegalStateException(uee); }
>>413 >定数の列挙にinterfaceを使うのも止めた方がよさげ。
これって最近よく聞かれるけど、どういう理由?
あくまでinterfaceはinterfaceであって、定数の入れ物では無いから
インスタンス化しないって理由だけでinterface使うな、
抽象クラスにでも入れとけ、ってこと?
煽りとかじゃなくて、趣旨を知りたいので教えてくだちい。
426 :
デフォルトの名無しさん :2005/06/04(土) 02:02:12
>418 >420 詭弁のガイドライン 4.主観で決め付ける 5.資料を示さず持論が支持されていると思わせる 9.自分の見解を述べずに人格批判をする [NullPointerException の使用] java.awt.print, javax.management, org.xml.sax.helpers [IllegalArgumentException の使用] java.awt.print, java.beans, java.beans.beancontext, java.lang, java.lang.management java.lang.ref, java.lang.reflect, java.net, java.nio.channels, java.nio.charset java.security, java.util, java.util.logging, java.util.regex, javax.management javax.management.modelmbean, javax.management.monitor, javax.management.openmbean javax.management.relation, javax.management.timer, javax.net.ssl javax.rmi.sslSecurity, javax.swing, javax.swing.plaf.synth, javax.xml.parsers javax.xml.transform, javax.xml.transform.sax
interfaceは、メンバ変数は強制的にpublic static finalになるので 定数の定義にも都合がいい。
>425 つ Effective Java
>>428 持ってないので概要だけでも教えてください
430 :
428 :2005/06/04(土) 02:32:49
>429 以下の件の質問、文句はJoshua Blochまで。 ・インターフェイスをクラスが実装するということは、クラスのインスタンスでクライアントは何ができるのかについて述べているべきものだ。 ・定数インターフェイスを実装するということは、そのクラスの実装の詳細を公開APIに漏洩することだ。そしてそのことはクラスのユーザには何の意味もない。 ・将来その定数を必要としなくなってもバイナリ互換のためにそのインターフェイスを実装し続けなければなららない。 ・finalでないクラスが実装していると、サブクラスすべてが定数により名前空間を汚染される。 ↓ ・既存クラスに強く結びついているのならばそれに含めてしまう。 (Integer.MIN_VALUEなど) ・タイプセーフenum(Effective Javaで説明、およびJDK5.0で追加)を使う。 ・Mathのような、インスタンス不可能なユーティリティクラスを使う。
引数のnullチェックは利用者がnullを入れてくる可能性があるならする。 ないならしない。 判断が難しい場合はjavadocコメントから事前条件がわかるように記述
>>426 ちゃんと調べろよ……。java.lang のソースに
NullPointerException で grep かけて調べただけでも、
> Class#isAssignableFrom(Class cls)
> Class#getField(String name)
> Class#getMetod(String name)
> Class#getDeclaredField(String name)
> Class#getDeclaredMethod(String name)
> Class#getResourceAsStream(String name)
を初めとして150ぐらい出てくるぞ。
お前は詭弁のガイドラインを出して、相手が詭弁だと決め付けてるだけ。
>>426 ちなみに、nullが不正な引数だった場合、
IllegalArgumentException を投げるのが多数派だって根拠はあんの?
何か不毛な論議が続いてるな。例外の意味付けのレイヤーが違うだけの話だろ。
NullPointerException → 物理的状況: 低レベル、詳細
IllegalArgumentException → 論理的状況: 高レベル、概要
「該当するレコードがない」と「認証に失敗」。どちらも同じ状況を表してるが
見る人にとってどっちが適切か、程度の話だ。
ところで
>>415 の良いフォーマットは誰も思いつかない?
>>434 引数3つにしてみれば?
Object[] args = {new Integer(H), new Integer(M), new Integer(H * M)};
{2,choice,0#0分|0<{0,choice,0#|0<{0}時間}{1,choice,0#|0<{1}分}}
436 :
デフォルトの名無しさん :2005/06/04(土) 03:30:51
>>427 おお、なんてメンバ変数なんて死語を使うとは
Java的にはフィールドだな。
438 :
デフォルトの名無しさん :2005/06/04(土) 04:11:29
UMLで統一すると「属性」 というとC#厨が暴れだして「それはJavaのメタデータだ!」
>>422 簡単にやりとりしたいのであれば、
ByteArrayOutputStream out = new ObjectOuputStream(new ByteArrayOutputStream());
とやって、一旦バイト配列にオブジェクトを書き出してから非同期通信する方法だな。
でかいデータであれば、一時ファイルに書き出すとか。
あるいは、非同期通信でデータを送るOutputStreamを自分で実装して、
それをObjectOutputStreamでラップしてやればいい。
いずれにしても、期待するほどお手軽な方法はないと思うよ。
440 :
426 :2005/06/04(土) 10:40:19
>>430 どうもです。 理解できました。
俺の使用法とは違っていたんで、恐らく聞かないと死ぬまで
わからなかったと思います。
- ちらしの裏 -
単にinterfaceの定数使うために implementしちゃうヤツなんていたのか・・・
importしてクラス名付きで参照するのが普通だと思ってた。
どっちでも同じ目的を達成できるけど、interfaceのimplementだとそれが簡単なため
濫用される恐れがあるのでヤメレ、って感じなのかな。
>>440 インタフェース名.定数名
でいいじゃん。implementsなんかする必要なし。
もしかして、implementsしないと使えないと思ってた?
そんなことないよね?
442 :
428 :2005/06/04(土) 11:35:54
インターフェイスだとimprementsする馬鹿を防げないってことでしょ。 ユーティリティクラスにしとけ、と。
お聞きします。 たとえば、aという数列関数があったとして、 そのaの保持できる桁数をより増やしたいのですが、 どういうふうに記述したらいいでしょうか・・・ var a : Real ; ではできないのでが・・・
>>442 Effective java の例だと final にはしてないから、
extends できるという点では変わらないと思うんだが・・・。
設計によるんじゃね? ListSelectionModelとかインターフェースに定数もってるが、そっちのほうがいいし
変数の対応桁数を増やすのってどうすればいいんでしょうか 15,16が限界なのですが、なにかプログラムすればそれ以上の桁にすることはできますか?
>>445 ListSelectionModel もダメだろ。
setSelectionMode(5) がコンパイル通っちゃうし。
>444 finalにするかどうかの話は別の章だし、いいんじゃね? 「extendsを許すこともできる、禁止もできる」「スコープを設定できる」と好意的に解釈しようよ。 interfaceだとできないことができるってことで。
>>447 あれはEnumでるまえだしそれは仕方ないだろ
定数をインターフェースに持つというだけのところでつっこんでくれ
>>446 java.math.BigDecimal
451 :
デフォルトの名無しさん :2005/06/05(日) 10:50:46
BigIntegerも
>>439 流れを無視した質問に答えてくださってありがとうございます。
やはりお手軽な方法はないのですね。
ByteArrayOutputStreamを利用した方法を試してみたいと思います。
453 :
デフォルトの名無しさん :2005/06/06(月) 00:47:26
454 :
453 :2005/06/06(月) 00:48:58
間違えた。別セッションじゃなくて、別セッションIDじゃないと。
土日、超久しぶりにふと Swing で GUI 組んでみたが、改めてみると デフォルトの UI ってかなりの糞デザインだな。大昔の VB アプリを 髣髴とさせる。まぁ出たばかりの頃は目新しさに目が行ってただけか。 Bold の和文フォントのジャギー、いい加減なんとかせいよ。
456 :
デフォルトの名無しさん :2005/06/06(月) 07:05:39
netbeans3.,6をインストールしようとしています。
そこで、setup fileをダウンロードしてインストールしようかと思ったところ、
こんな
”The suitable JVM could not be found, please run the program again
using the option -is:javahome<JAVA HOME DIR>"
エラーメッセージが出ちゃいました
ちなみにダウンロードはできました
どういうことだかわかりますか?
ファイルの場所は、
ttp://java.sun.com/j2ee/1.4/download.html の真ん中やや下の、NetBeans4.0の真下です。
457 :
デフォルトの名無しさん :2005/06/06(月) 07:47:52
3.6最近インストールした人、いますか?
VMがシステムに見つからないからこまってるんじゃないか?
>>456 適切な Java VM が見つからないので指定して起動してくれ、だ。
JDK が C:\Program Files\j2sdk1.4.2_07 にインストールされているなら、起動用のショートカットの
プロパティに "-is:javahomeC:\Program Files\j2sdk1.4.2_07" を追加してもう一度起動しろ。
>>455 俺がそのことをSwingスレで最近発言したら
「なにいってんだ?綺麗だよ」と皆に突っ込まれた;;
俺とお前だけなのか?おかしいの
>>461 そんなせっしょな他に比べりゃ外国どうぜん
おお!さか!ストラッツ!!ジャスギボォァ!
おお!さか!あ〜〜〜いやぁ!
おおさか、おおさか、あれもこれもあんで
おおさか おおさか ええとこ知ってる
おおさか おおさかThis is おおさか ストラットぉ!
みんなSystemLAFだから
Solaris10何度やってもインスコ途中でこける俺はどうすれバインダーorz
>>460 ,461
そうだよなぁ。Motif をスッピンで使ってる連中だったらすげぇ斬新なデザインなのかもw
改めて見ると Win95 や NeXT の方がマシな気がする (Win3.1よりはマシだが)。主観なんでどうでもイイけど。
NeXTか……あれはいいものだ…… その本当の価値も知らずにいぢりたおして遊んでいた大学時代がナツカスィ OS Xがその後継とはいうが、やっぱあれはMacであってNeXTじゃない(当たり前だがorz)
467 :
デフォルトの名無しさん :2005/06/06(月) 22:21:26
現在、私は45代後半で、自営業を営んでおります。 Javaの素晴らしさに感動してしまい、今更ながらJavaをやろうかと 決心いたしました。 その私が他人に質問するのも気が引けるのですが、どうしてもJavaと いうものを理解したいべく、皆様のお力をお借りできればかと存じます ■↓質問内容↓■ 検索エンジンを使用しても理解できないので質問します。 Javaは何に使われているのか、という質問なのですが、 例えば、Javaではゲームも作れますよね? それと、3D?とかも。 それ以外で、Javaが「応用」されているものはありますか? (Javaで出来る事をとにかく全て書いてもらいたいです) 何卒。何卒。どうか、ご教授よろしくおねがいします。
またおまえか
sage ろ そして半年 ROM れ
470 :
デフォルトの名無しさん :2005/06/06(月) 23:18:54
もうすっかり忘れ去れてますが Visual J#.NET ってどうっすか? 今作ってる Java のプログラム、 実行ファイルをダブルクリックする程度しかできないド素人に配布したくて、英語ページから JDK の インスコなんてさせられんのよ。 プラットフォームごとのバイナリ互換性はなくても良くて、Java ⇔ J# でソースレベルの互換性が あれば良いです (import するパッケージが違ったら無理かな? ま、最悪その程度なら…)。
つーか、.NETはインストールさせるのが必須だが
JavaはプライベートJREというのもある
手軽さならJavaのほうじゃね?
アプリ配布してるならJREは再配布できるんだが
なんで英語ページに生かせる必要があるのかと
それに
http://java.com/というのもあるというのに
472 :
デフォルトの名無しさん :2005/06/06(月) 23:37:06
なぁ Javaの開発環境一番いいと思うのなんだ?
普及度でいうとEclipseになってしまうかな…… 一方、最近このスレでは初心者向けにはNetBeansが(・∀・)イイ!!という意見が多い。
上級者でもGUI製作が入ってくると選択するしかないが
上級者なら WebSphere Application Developer くらい買えよ貧乏人。 IBM の開発プロジェクトなら 1 ライセンス \4,000 くらいで買えたはずだがな。 ネットでダウンロードできるお試し版も機能制限ないんじゃなかったっけ?
習熟度と金は関係ない罠 WebSphere Application DeveloperってSwing作成で便利だったっけ?
たしかVisualEditorは元々WSADのプラグインだったはず。 でも出来具合はあんまり変わらなかったりして。
>>476 そうだったな。上級者はテキストエディタを使ってるはずだ。
WSAD の GUI エディタちょいと触ってみてるけど普通に便利よ。
しかし NetBean にしても GUI エディタ使うときは 1024x765 じゃつらいな。
SWT の GUI エディタって無いのかな?
1024*768で使ってるが確かに厳しいな。 たためるものはすべてたたんだとしてもね。
int getNum() ↑この行に ; がありませんって表示されるんですけど、原因が分かりません。 何が考えられますかね?
原因: ; がない っていうかそれメソッドの宣言なのか?
482 :
480 :2005/06/07(火) 01:02:37
int getNum(){ return 893; } (´,_ゝ`)プッ(゚Д゚)ハァ?
484 :
480 :2005/06/07(火) 01:08:30
>>483 え?どゆこと・・・?
int getNum()
{
・・・
return num;
}
こんな感じで書いているんですが。
じゃあ厨括弧の対応が取れてないとかじゃないのか? 君の出す情報で推測できるのはここまで、以上。
486 :
480 :2005/06/07(火) 01:15:48
>>478 上級者はテキストエディタで書いてる?
激しく理解不能なんだが。
バカな俺にも理解できるように、小学生レベルで説明して頂けたら幸いかと存じますが。
バカ は自分で考えろ
489 :
デフォルトの名無しさん :2005/06/07(火) 01:53:43
有名なhash.javaのプログラムで衝突が起こるまでの過程を表示したいのですが どうやればいいですか?
Javadocを初めて使うのですが >javadoc *.java で一括ドキュメント作成をすると メインクラスしかドキュメントが作成されません >javadoc canvas.java と個別で作ろうとすると他で作ったクラスが見つからないので未定義と怒られます 全部のドキュメントを作るには何が足りないのでしょうか?
パッケージ名で指定しろ。 詳しくは javadoc -help
駄目だわけわかんね。ドキュメント整備はあきらめよう
>>476 >上級者なら WebSphere Application Developer くらい買えよ貧乏人。
なんでいまさらそんな古いものを。現行製品はRational Application Developer。
>IBM の開発プロジェクトなら 1 ライセンス \4,000 くらいで買えたはずだがな。
DeveloperWorksToolbox Subscriptionのことなら今年の2月いっぱいで新規受付終了。
>ネットでダウンロードできるお試し版も機能制限ないんじゃなかったっけ?
機能に制限はないけど、期間は限定。
>>478 >SWT の GUI エディタって無いのかな?
現行のRational Application Developerには入ってる。
495 :
デフォルトの名無しさん :2005/06/07(火) 07:25:36
初心者です ボタンをクリックしたらラベルに文字を表示するプログラムを 作りたいんですが、2つの独立したクラスで作るとラベルが参照 できないって怒られます。 一つのクラスでは作れるんですがなんとなく気分がよくないんで バラバラのクラスにしたいんです。 苦し紛れにラベル変数にprivateつけたらまた怒られました。 どうやったらつくれますか?
496 :
495 :2005/06/07(火) 07:32:51
すいません情報不足でした。 イベント処理のクラスと、mainクラスに分けたいんです。 class Buttontest{ ..... EventShori es = new EventShori(); JLabel label = new JLabel(); JButton button = new JButton(push); button.addActionListener(es); ..... ..... } class EventShori implements ActionListener{ public void actionPerformed(ActiounEvent e){ label.setText("ボタン押したよ"); } }
497 :
495 :2005/06/07(火) 07:34:32
privateじゃなくてpublicつけたら怒られたんでした。
JAVAでは、スレッド間の同期はsynchronizedで取れるんですが、 プロセス間の同期を取る方法は無いんでしょうか?
>>495 インスタンスを持っていないとインスタンス変数にはアクセスできない。
この場合なら、内部クラスにすればいいのでは?
thisとかlabelを渡すメソッドかコンストラクタを作るとか。
JDICのBrowserクラスを使おうとしているんですが、 ブラウザ表示の部分が最前面に出てしまっているようで、 メニューバー(のJMenu)がブラウザの裏に隠れてしまいます。 コンポーネントの描画順序を制御するにはどうすればよいのでしょう?
JMenu hoge; があるとして、 hoge.getPopupMenu().setLightWeightPopupEnabled(false);
>>501 この辺を参照しろってさ。
http://java.sun.com/products/jfc/tsc/articles/mixing/ 要は JPopupMenu#setDefaultLightWeightPopupEnabled(boolean)
使えって書いてあるみたいだけど。JMenu の場合は、
public JPopupMenu getPopupMenu(){
JPopoupMenu menu = super.getPopupMenu();
menu.setDefaultLightWeightPopupEnabled(false);
return menu;
}
とかすれば良いのかな? ダメだったらすまん。
>>502-503 おお、表示されるようになりました。
502氏のようにJMenuごとにセットするようにしました。
どうもありがとうございます。
昨日からずーーーーっと苦戦してます。 誰か助けて。 wikiサイト見ても原因がわかりません。 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 と表示され続けます。 PATHはインスコしたフォルダ/binになってるので間違いないと思うんですが・・・ そのbinフォルダの中にjavac.exeが無いのは普通なんですか?? もう無理ぽ。。。 助けて、もうすぐで課題提出期限がくるorz
>>505 おまえ、JDK じゃなくて JRE インストールしただろ。
JRE は実行環境のみでコンパイラなどの開発環境は付いてない。
jdk1.5.0_03です。
補足 C:\Program Files\Java\jdk1.5.0_03\binにjavac.exeはあります。 で、インスコしたフォルダC:\jdk1.5.0_03\binにjavac.exeはありません。 PATHを一回C:\Program Files\Java\jdk1.5.0_03\binにして再起動したけど、何も変わりなかったです。 うぇーまじでなんなんだ。。。
pathコマンドうってみろ
set "PATH=C:\Program Files\Java\jdk1.5.0_03\bin"
set うったらPATHにC:\Program Files\Java\jdk1.5.0_03\binありましたです。
情報は断片的にだすな。 出てきたそのままを貼り付けろカス
OS=Windows_NT Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\AT I Technologies\ATI Control Panel;C:\Program Files\Common Files\Ulead Systems\MPE G;C:\gpc\bin;C:\Program Files\Java\jdk1.5.0_03\bin
C:\Program Files\Java 配下は JRE のディレクトリだ。 そこの中に開発用のコマンドは入ってない。
C:\Program Files\Java\jdk1.5.0_03>javac.exe 使い方: javac <options> <source files> 使用可能なオプションには次のものがあります。 -g すべてのデバッグ情報を生成する -g:none デバッグ情報を生成しない -g:{lines,vars,source} いくつかのデバッグ情報だけを生成する -nowarn 警告を発生させない -verbose コンパイラの動作についてメッセージを出力する -deprecation 推奨されない API が使用されているソースの位置を出力 する -classpath <path> ユーザクラスファイルを検索する位置を指定する これは出てくるんですけど・・・
あそ。 じゃまた来年。今度は早めに質問してね。
>インスコしたフォルタ゛C:\jdk1.5.0_03\bin ダウと
>>515 そのディレクトリでそれが実行できてるということは、ちゃんとPATHの
設定ができているよう見える。
俺もそれでこの間悩んだけど、あんたはおそらく JDKをインストールしたところに、JREを上書きしている。
または新バージョンをインストールしたあとに旧バージョンをアンインストールとかな。
JDKとかJREとか出てきたから聞いてみたいんだけど、 JDK入れるとき、JREも入るよな?(オプションで削除できるけど) なんでJREが一緒にインストールされるの? JDKだけ入れてパス通せばコンパイルもできるし実行もできるのに・・・
配布前の動作確認に使う
JavaWebStartはJRE入れないと入らないんじゃなかったっけ?
>>522 JDK(SDK)に同梱されているのはprivate JREと呼ばれ、SDKツール
を動作させるのに使うJRE。いわゆるJRE(public JRE)とは区別される。
526 :
525 :2005/06/08(水) 17:06:30
ごめん、JDKをインストールするとpublic JREとprivate JREが両方 インストールされるから522の質問の答えとしては525はすげー舌足らずだった。 JDKを入れるとき、明示的なインストールオプションが存在するのが public JRE。インストールオプションにかかわらずjavac.exeと同じ場所に 存在するのがprivate JRE。これらはちゃんと区別しないと開発ターゲット のバージョンがいりくんだ開発をしたときに,はまる要素になるのでPATHの 設定等で環境を切り分けるわけ。
527 :
522 :2005/06/08(水) 17:54:53
>>526 いや、それは知ってるんですよ。(呼び方までは知らなかったけど)
俺が言いたいのは、開発だろうとテスト稼動だろうと、JDKだけ(つまりpublic JRE)を入れなくても問題無いのに、
何でインストールする時にpublic JREを入れようとするのだろうという事。
コンパイルする必要も無いならJREだけ別にDL出来るんだからそれを入れれば良いだけだし、
どうして余計なものがついているんだという疑問。
ユーザー環境と同じランタイム用意するって意味が分からないの?
でも、ユーザ環境って大抵JDKが入ってるんだよな・・・ 何かバグが出たとき、その場で修正/コンパイルできるように。
JREをインストールせずにJavaWebStartを動かすにはどうすればいいのでしょうか?
JDKが体外はいってるユーザー環境なんてきいたことねぇよ
>531 jarコマンドを使いたいためだけに 端末という端末にJDKをぶちこんだプロジェクトを知っている…… // どうせC++からspawnして呼ぶだけだからjarにこだわる必要はなかったんだが // 初期段階でjarコマンドはJREにも入ってると勘違いして仕様が作られたらしく、もうどうもこうも
別にいまどきのディスク容量なら JDK が入ってても何の問題もないだろ。 むしろ端末だけで問題解析をスムーズにできるように入れておいてもらいたいものだ。
JDKはJREと違って再配布はしちゃいかんからその辺大丈夫かよ
ウチは自社製だから何とかなったりする。
>534 もちろん、各端末から個別にJDKダウソしてインスコした(そう)ですよ。 どのみち他の各種プログラムとかジョブスケジューラとか入れないといけないから 一手間増えただけ、とも言えるが ……なんだかなぁ。
>>536 所詮気持ち悪い論だろ?
もっと経験詰めよ。
toolsは再配布可能だからそれを使うってのが一番だろうな
JavaでGUIを勉強しようかなと思っているんですが swingでタスクトレイ常駐のアプリって作れますか? swtならタスクトレイ常駐させることは出来たんですが・・・
>>539 JNI から起動する方法で RMI の常駐アプリを作ったことがある。
書き忘れ: Swing は無理
542 :
539 :2005/06/09(木) 00:26:05
>>540-541 即レスdです。
swtでガンガッテみます。
目標はメールチェッカーみたいなアプリです。
>>539 JDIC でやってるね。
mustang から使用可能になるらしい。
一番最近の snapshot に取り入れられたはず。
>>543 dです。
なんか1.5になると大分変わりそうですね
覚える事が減らない今日この頃です(´・ω・`)
mustangは現在開発中であろうところの1.6だ。
SWTでのタスクトレイの利用は別にSWTのShellウィジットの動作と連携している わけじゃない。だから、覚えることを減らしたいならタスクトレイだけ SWT使ってあとはSwingでもいいと思うけどね。 どうせJREがある環境ではSwingは必ず存在するわけだし、SWT単体に比べて SWTとSwingを併用するデメリットはないと思う。
Swingの質問です。 (JDK 1.4.2_07) JFrameでウィンドウを作ってます。で、右上のウィンドウコントロール (最小化・最大化・閉じる)ボタンをなくしたいんですが、上手い方法が見つかりません。 JDialogでも閉じるボタンは付いてきてしまいました。 どなたか方法を教えてください。
>>547 Frame#setUndecorated(boolean) すれば?
549 :
547 :2005/06/09(木) 14:26:34
>>548 どうもです。 それは試したんですが、
java.awt.IllegalComponentStateException: The frame is displayable.
でダメでした。
後出し情報ですみません。
具体的に何をやりたいかというと、まずJFrameウィンドウが2つ必要です。
1つめ win1は、main() を持っているウィンドウで、数値などを入れるTextFieldがあります。
2つめ win2は、win1のウィンドウで入力された数値などから、結果を表示するウィンドウです。
このウィンドウは常に必要なので、win1にフィールドを持たせてコンストラクタでnewしてます。
win1でshow()をオーバーライドして、super.show()の後で win2.show()してます。
そして、win1が終了すると一緒に閉じます。
ここに閉じるボタンがあると不自然なので、消しておきたい、という感じです。
Linux上でのファイル権限、ファイルの属しているユーザ名、グループ名などを取得する方法ってありますか? drwxr-xr-xなどです。
>>550 現在のユーザーでの権限なら file.canRead() .canWrite() では?
それ以外はFS依存の情報だし、SecurityManagerで抽象化された後での
権限なので、JNIでも使わないとわからないと思う。
552 :
550 :2005/06/09(木) 14:45:40
>>551 回答ありがとうございます。
むむむ、ファイルのオーナー取得とかは割と普通に必要な機能だと思ったのですが標準では無いのですね。
ふ〜む、JNIかぁ・・・。
>>549 やってないけど、setVisible前だとOKとかいうことはないかい?
あと、枠ごと消す以外には、JFrameのボタンを消す方法はない。
個別ボタンごとの対策としては、
×ボタンは、setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE) する。
最大化ボタンはsetResizable(false)でいけたかな。
最小化ボタンはどうにもならない。最小化したのをイベントで拾って、
元のサイズに戻すというかっこうわるい方法があるだけ。
554 :
551 :2005/06/09(木) 14:54:19
555 :
550 :2005/06/09(木) 15:00:47
>>554 やっぱりコマンド発行してゴリゴリ解析っていう力業になるのかぁ・・。
権限変更はchmod発行と・・・。
美しくないなぁ・・、他に良い方法があれば良いのですが・・・。
556 :
デフォルトの名無しさん :2005/06/09(木) 15:15:20
文字化けすんねんどうにかしろ!
557 :
デフォルトの名無しさん :2005/06/09(木) 15:18:38
class EmMain{ public static void main(String[] args){ Employees es; //Employee e; //Employee e = new Employee("1","あああ", "22", "0", "168", "1000000"); es = new Employees(); es.add(new Employee("1","あああ", "22", "0", "168", "1000000")); } }
558 :
549 :2005/06/09(木) 15:18:39
>>553 どうもです。 setVisible() 前にやってみたんですが、やっぱダメでした。
インスタンス生成直後にもやってみたんですが、これもダメでした。
あれは枠に付いてくるものなんですね。 JFrameではどうしようもないっぽいかも。
とりあえず、非モーダルなJDialogならウィンドウっぽく使えるんで、最大化・最小化は無いから
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE) しときます。
閉じるボタン無しのFrameは、JWindowから気合で作るしかないのかなぁ。
559 :
デフォルトの名無しさん :2005/06/09(木) 15:19:50
// Emploryees クラス class Employees{ private Employee Data; public void add(Employee Data_){ Data = Data_; System.out.printf("%s\n", Data); } }
>>556 俺もそれでこの間悩んだけど、あんたはおそらく
JDKをインストールしたところに、JREを上書きしている。
>>556 名前 山本 貴○
職業 PG見習・ゲームプログラマー
生年月日 1984/7/19
>>549 setUndecorated はピアが確定する前にやらんと例外投げて失敗するのでは?
563 :
デフォルトの名無しさん :2005/06/09(木) 16:11:19
Labelに表示させる文字列の色を変更するにはどうしたらいいんでしょうか それっぽいメソッドが見つからなくて困ってます
>>563 Component#setForeground(Color) とか?
JLabel なら fontタグで色つけられたかもしんない。
565 :
デフォルトの名無しさん :2005/06/09(木) 16:47:30
Image[] diz; URL url; コンストラクタ(){ String str; for(int i=0;i<2;i++){ str ="diz"+i+"gif"; url = getClass().getResource(str); diz[i] = getDefaultToolkit().createImage(url); } で、getResource(str);の部分で NullpointerExceptionが発生してるのですが どこが悪いのでしょうか? 該当ファイルはクラスと同じ場所にあります。
>>565 ぬるぽが出るのは本当にその行?
diz = new Image[2]; が最初に必要だったりしないかね。
567 :
デフォルトの名無しさん :2005/06/09(木) 16:52:19
はい Class cl = getClass(); url = cl.getResource(str); とやって試してみたところそうらしいです。
568 :
デフォルトの名無しさん :2005/06/09(木) 17:02:21
>>568 提出期限までまだあるじゃないか。がんばれー。
ついでに言うとすれ違い。
評価のポイントに「プログラムの独創性」が入ってるからココで聞くとえらい高得点になってばれそうだけど。
通報しますた
>>565 getClass()でnullが返るかstrがnullじゃないとそこではぬるぽは発生しないよねぇ。
例外のスタックトレースを全部さらしてみ。
>>565 まさかとは思うがファイル名のドットが抜けていてURLがnullになり、画像読み込みでぬるぽになってるんじゃ?
エラー行はほんとにそこ?
574 :
デフォルトの名無しさん :2005/06/09(木) 18:15:48
配列の要素数がプログラムを実行するまで不確定の場合は配列の作成はどのように行えばいいですか。
577 :
デフォルトの名無しさん :2005/06/09(木) 19:00:35
>>564 ありがとうございました。
setForegroundで無事解決しました。
256色GIFや、256色PNGでは透過画像を表示できたのですが、 JPEGや、フルカラーPNGで透過処理を行うにはどうすればいいでしょうか?
JPEGって透過情報持ってないだろ?
580 :
578 :2005/06/09(木) 20:02:24
JPEGの場合なら、指定色を透過させたいのですが、 1ピクセルずつ処理する以外に方法はあるでしょうか?
Javaで簡単なアプリケーションを作っているのですが、 ファイルを開くダイアログなどを呼び出して、そのダイアログを閉じたとき、 アプリケーションがその下に重なっていた場合、どうも再描画されています。 repaint()を明示的に示さない限り再描画されないようにしたいのですが、 どうすればよいのでしょうか?
>>547 setExtendedState()とか、setResizable()は試してるんだよね
>>583 オーバーライドしてその中身はどうすればよいのですか?
オーバーライドしてその中でdraw〜をしているのですが。。
いろいろ試したところ、例えば他のアプリケーションを
上に重ねたあと、縮小化したところ、再描画されてもチラつきなどは
見えなかったのですが、自分自身が開いたダイアログを閉じたときは
その重なった部分が一瞬白っぽくなります。
Swing使っているのでダブルバッファリングはしなくてもよいのですよね?
その一瞬白くなる現象を無くすいい方法はないでしょうか?
はじめまして、お聞きしたことが。 <SCRIPT LANGUAGE="JavaScript"> <!-- function my_test(){ var ten=0; for (i=0; i<document.F1.length-1; i++){ if (document.F1.elements[i].checked == true){ ten += eval(document.F1.elements[i].value) } } subwin = window.open("","sub","width=450,height=400"); if (ten<=14){ subwin.document.write("C 14点未満あなたの結果は"+ten+"点です。");} if (ten>=15&&ten<=30){ subwin.document.write("B 15〜30点以内あなたの結果は"+ten+"点です。");} if (ten>=30&&ten<=100){ subwin.document.write("A 30〜100点以内あなたの結果は"+ten+"点です。");} subwin.document.write("<center><input type='button' value='閉じる' onClick='window.close()'></center>"); } //--> </script>
続きですm(__)m 上記のスクリプトは下にフォームがありチェックされたものの点数を出します <tr bgcolor="#FFFFFF"> <td width="30"><div align="center">2</div></td> <td align="center"><div align="left">質問</div></td> <td align="center"> <input type="radio" name="R2" value=3>はい <input type="radio" name="R2" value=0>いいえ </td> </tr> 上記のようなフォームが続くのですが 点数で今はサブウィンドウが開くようになっているのですがただ単にHTMLへ ジャンプさせるにはどのように書き換えられば良いのでしょうか・・・ 何卒、皆様のお力を貸して下さいm(__)m
588 :
585 :2005/06/09(木) 20:34:22
すれ違いでした。。。すみませんm(__)m
>>584 それ、最初の質問の内容と話が違うよ。それは「再描画をしたくない」
ではなくて「再描画をするときに始めに行われる背景色での再描画をしたく
ない」だよね。ちなみにFAQ。
>>589 Swingの場合はデフォルトで背景色では塗りつぶさないのではないでしょうか?
591 :
547 :2005/06/09(木) 21:47:51
setUndecorated(false) できました。
一つでもコンポーネントを追加したらダメなようです。
しかしフレームまでなくなってしまう両刃の剣。 (略
>>582 最大化・最小化はできてもいいかなーとか思いはじめました。
できても殆ど意味はないですが、そこまで自由を奪うのもどうかな、と。
でも、閉じるボタンは消せないんですよね。 あるとUI的に矛盾が生じるんですが
これはフレームとセットでもれなく付いて来てしまうようなんで。
>>580 無い。PixelGrabber でビットマップ展開して 1 ビットずつαチャンネル追加せれ
(PixelGrabber 使ってのビットマップ展開は JDK 1.0/1.1 の頃覚えた方法なので
もっと良い方法があったら教えてやってくれ)。
というか JPEG 画像だと劣化圧縮の影響で 「指定色」 のカラーチャンネルが微妙にずれるぞ。
593 :
デフォルトの名無しさん :2005/06/09(木) 22:41:22
Timestampクラスのインスタンスに入っている日付をづらすAPI関数ってないのでしょうか? 既に入ってる日付を指定された日数分、未来にずらしたいのですが・・ 自分でやるとStringに変換して計算したり面倒で・・・
594 :
デフォルトの名無しさん :2005/06/09(木) 22:42:09
>>591 L&F を変更するとか。
見かけが変わっちゃうけど
>>593 java.util.Calendar 使ったほうが楽。
596 :
593 :2005/06/09(木) 22:48:57
>>593 Calendar cal = Calendar.getInstance();
cal.setTime(timestamp);
cal.add(Calendar.DAY_OF_MONTH, 100);
Date date = cal.getTime();
598 :
デフォルトの名無しさん :2005/06/09(木) 22:55:29
abstrutctとinterfaceって何が違うの?
>>598 > abstrutct
そんな予約語は存在しない。
> interface
こーゆー予約語は存在する。
600 :
デフォルトの名無しさん :2005/06/09(木) 23:05:04
>>598 の質問は過去に散々既出なのに
それを調べられない598のコミュニケーションスキルの
低さもたいがいなもんだろう。
>>601 それはコミュニケーションスキルというもんなんですか?
awtは何の略なんですか?
抽象窓道具一式
円楽: ハイ、じゃ歌さん ↓
a:あ、 w:わしそういうの t:ちらないよ
607 :
603 :2005/06/10(金) 00:15:51
回答ありがとうございます。調べたら Abstract Windowing Toolkitだそうで。 スレ汚しスマソ
a:あの、それ w:わたしの t:ちらし寿司なんですけど?
a:あのなぁ w:うんざりするから t:とっとと失せろ ……と罵られた結果Swingが出来たという(嘘800%)
a:愛していたのに w:分かっていた t:時の流れに身を任せても無駄だということを
ほんわかするインターネットですね
612 :
デフォルトの名無しさん :2005/06/10(金) 07:01:14
>>584 update(Graphics g) {
}
paint(Graphics g) {
}
613 :
デフォルトの名無しさん :2005/06/10(金) 09:51:38
あのシステムクラスローダを自分独自に実装したものに置き換えようと思っているので すが、普通のクラスローダを作る場合と違う「ポイント」は以下の事以外にどんな事があるでしょうか? ・クラスローダを引数に持つパブリックなコンストラクタを一つもつ ・アプリを起動するときにjava.system.class.loaderでそのクラスローダを指定 方法を簡潔に教えていただけるとありがたいです。また、システムクラスローダの置き換えをあつかっている サイトなどありましたら海外のものでもよいので教えてください。よろしくおねがいします。orz
614 :
デフォルトの名無しさん :2005/06/10(金) 13:02:33
Cをやったことがあるんだけど Javaにいっても平気? オススメの本ありますか?
Javaプログラミングレッスン辺りがいいんじゃないかな
C をやったことがあるのなら、全然平気。 どの程度やったことがあるのかにもよるけど、エキスパートクラスだったら、 いきなり、SJC-P の受験参考書をバリバリ読めば一週間程度で合格レベルまで行くはず・・・。 ・・・ もちろん、実際の開発力は、そのあと場数を踏まないとつかないが。
617 :
デフォルトの名無しさん :2005/06/10(金) 15:10:27
UNIXコマンドのtrのような文字列置換を行ってくれるクラスってありますか?
618 :
デフォルトの名無しさん :2005/06/10(金) 15:23:17
SDKはどれがお勧めなんでしょう? IBM製? SUN製?
BEA製だな
620 :
デフォルトの名無しさん :2005/06/10(金) 15:29:29
jarファイル内の画像を読み込みたいのですがうまくいきません(´・ω・`) Image img = Toolkit.getDefaultToolkit().getImage( "gozou.png" ); や、 BufferedImage img = ImageIO.read( new File("gazou.png") ); を実行してもダメでした。 jar内のファイルを読み込むには、何か特殊な処理が必要なのでしょうか?
>>618 自分で判断できない奴にはどれでも大差ない。
>>592 ありがとうございます。
さっそく試してみます(`・ω・´)
>>620 引数としてファイルだけじゃなくjar指定が必要なんじゃないの?
その場合URLClassLoaderからリソース読むとか
624 :
620 :2005/06/10(金) 21:39:24
>>623 ありがとうございます(・∀・)
URLClassLoaderでググって、試行錯誤の末できますた。
感激です(;´Д`)ハァハァ
File f = new File( "JARファイル名" );
URL url = f.toURL();
URLClassLoader loader = new URLClassLoader( new URL[]{url} );
url = loader.findResource( "JAR内のファイル名" );
BufferedImage img = ImageIO.read( url );
ちなみにURLCぁssLoaderでクラスのインスタンスも作ることが出来るので プラグイン的な開発も可能で本体とプラグインと分けて作るのもいいかもね
グラフィック処理とその他の処理を各classに分けたら repaint()やupdate()を受け付けなくなってしまいました。 どのように考えてプログラムを作ればよいでしょうか?
JTextAreaにsetTextで文字列を書き込んだとき、 テキストエリアのカーソルを末尾に持っていくにはどうすればいいですか。
628 :
デフォルトの名無しさん :2005/06/10(金) 23:02:31
>>626 ふつーにやってりゃ分離できるだろ
どのように考えればいいか、って言われてもなぁ。
public class View extends Form {
public void paint() {
}
}
public class A {
....
}
ごめん、途中でカキコしちゃった。 まぁフツーにやれよ
630 :
626 :2005/06/10(金) 23:08:31
フツーがわからなかったので聞きにきたのですが・・・。 まぁフツーにやります
631 :
デフォルトの名無しさん :2005/06/10(金) 23:11:46
>>630 いや、だからさ
グラフィックスだとか、そんなの関係なしに、
いつもクラスを分ける一般的なやり方で分けりゃOKだよ
たぶん、おまいがオブジェクト指向になれてなかったり、バグがあったりするだけの話だと思うよ
そもそも、どんな原因でエラーになってるかわかんねーな
633 :
626 :2005/06/10(金) 23:28:10
updateとrepaintのところだけ”シンボルを解決できません”ってなります。 最近やりだしたばかりなので自分で考えてみます。
634 :
デフォルトの名無しさん :2005/06/10(金) 23:29:13
>>633 そりゃぁおめぇ、updateとかrepaintを持ってるクラスをextendsさせてないだろうに
とりあえず、なんかIDE使うのがいいと思う。 ヒントとコード補完で八割がた解決する問題を、 ああでもこうでもない考えてるよりは。
>>636 >環境設定ファイルのアクセスクラスはどんな感じに作ってるんでしょうか。
普通に Properties をそのまま使ってるんじゃないでしょうか。
639 :
デフォルトの名無しさん :2005/06/11(土) 00:51:00
JAVAインストールして (j2sdk1.4.2_08) 環境変数も設定して (C:\WINDOWS;C:\WINDOWS\COMMAND;C:\j2sdk1.4.1_07\bin;) ローカルディスクに作業ディレクトリ”java”をつくり MS-DOSで作業ファイル”java”に移動し javaファイルをコンパイルしたんですが 「コマンドもしくはファイル名が正しくありません」とでて コンパイルできません どうしたらコンパイルできるようになるでしょうか? ちなみに OSはwindowsMe j2sdk1.4.2_08ディレクトリはC:下にある j2sdk1.4.2_08\binでならコンパイルできる しかし"java"でコンパイルしたい
640 :
デフォルトの名無しさん :2005/06/11(土) 00:54:42
641 :
デフォルトの名無しさん :2005/06/11(土) 00:57:26
>>640 なるほど解決しました!!
ありがとうございます・・・・んなわけない
642 :
デフォルトの名無しさん :2005/06/11(土) 01:02:36
package com.borland.samples.welcome; import javax.swing.JOptionPane; public class YearChangerApp { public static void main(String[] args) { //Create a YearChanger object. YearChanger cC = new YearChanger(); // Store the number of years in the YearChanger object. String numStr = JOptionPane.showInputDialog("Number of years"); double num = Double.parseDouble(numStr); cC.setYears(num); // Display the number of years in months, days and seconds. String message = cC.toString() + "\nThe number of Months are " + cC.findMonths() + "\nThe number of Days are " + cC.findDays() + "\nThe number of Seconds are " + cC.findSeconds(); JOptionPane.showMessageDialog(null, message); } } このコードをコンパイルすると、Create a YearChanger objectの 所に”シンボルを解決できません”というエラーコードが出ます。 これはどういったエラーなのでしょうか?すいませんお願いします
>>639 インストールしたのはj2sdk1.4.2_08なのに、
環境変数はC:\j2sdk1.4.1_07\binでいいのか?
644 :
デフォルトの名無しさん :2005/06/11(土) 01:10:06
>>642 ;と(と)と[と]と{と}の数を数えてみて
>>642 public class YearChangerApp
YearChanger cC = new YearChanger();
>>642 cC.setYears(num);
とあるから別クラスなのか。インポートしなさい。
>>637 レスありがとうございます。
そうですか。環境変数を取得する度にProperties#loadを
行っているのでしょうか。
>>638 これ煽りですか。。。 すいません。
649 :
デフォルトの名無しさん :2005/06/11(土) 18:18:31
.javaファイルを分割して記述したのですが、 あるファイル訂正して、コンパイル→実行しても訂正したところが反映されません。 classファイルを削除してからコンパイル→実行すれば訂正したところが反映されるのですが、どうしてでしょうか?
>>649 初めの1行、関係ないよね
環境もう少し書かない?
環境の所為かも知れんシ
所有権がrootになってるとか?
651 :
デフォルトの名無しさん :2005/06/11(土) 18:32:36
vine linux 3.1です。 javac a.java でコンパイルのち java aで実行しています。 デフォルトで入っていたのだと思います rootにはなっていませんでした。
>デフォルトで入っていたのだと思います 今回の問題とは関係ないんだけど それgcjだろ、 ちゃんとSunから落として来い
>>651 ひょっとするとだけど
ls -altr a.*の時間は大体あってる?
654 :
デフォルトの名無しさん :2005/06/11(土) 20:25:31
たとえば、 main.java(main関数がある) と sub.java(main.javaのサブクラスを持つ)を作成して、sub.javaだけ訂正して main関数があるmain.javaだけコンパイルをしてもうまくいきませんでした。 javac main.java java main 2つのファイルをコンパイルをするには、main関数のあるほうだけすればいいのではないのですか?
訂正した方をコンパイルするに決まってるだろ。 訂正してない方をコンパイルしてどうするんだ。
>>654 javac コマンドは main.java の中を見ただけでは sub.java をコンパイルする必要があるかどうかを判断できない。
というか、javacは指定したファイル以外は一切コンパイルしない。
\ | ,,...-‐‐‐--、, l / |、 / | ,.べ;;;;;::、--- 、:::;;`ヽ、 ''‐-‐'゙/ 、,_,.! ゙'-'゙(. //::/´ ``ヾ、 l ) (. /:,`!ヾ、. , ゙>- ヽ、_,, '゙"`ヽ, /``/::;:゙;゙::!:.:| ``'''‐--‐''゙ '-‐'゙ ゙、 / ヽ ヾ /:;'/:.:!:::l 、,r''"゙`'ヾ ,:',-‐-、,'l / -=,'゙ ./:::/:.:.|::::l / (・),. ヾ,_(・) ,'゙l ( `ヽ ,゙:::,'::::;':!::::l `"´ ''"´ | ̄__,,l,,...,,_ \ ひぃっ! -='゙ l::::l::::;':. l:::::l ` ゙、.,,_,,.``ヽ、 __) l!゙,l:::;'-、 ';::::! ,.-‐‐:、 l `ヽ、 \ また嘘をつくのですか!!! ヽ. !:l:::l/-ヽ.゙;::', U /:::::::::::r=‐'''"´`''‐,.-゙'‐-、ヽ. ) ゙!::l l"''、l ヾ゙:、 u l:::::::::::::::`'''‐‐''''‐i'゙ ,,..、 `\ l:::l,ヽ、_, ヾ;\ ゙、.,,_ノ/ ̄ ̄ノ /ヽ. ` \ ____ / !::l:゙ヽ、. ,、 ヾ、;、 ゙'‐''"7'゙/ /゙ヽ \ _,./´-、ヽ / / l::l``;::,`´:ヽ、 `ヾ:;、.,__ :::: / `'''゙ \ ゙、 ヾ;‐、''-、゙; / / l:l ";'::;'::';';! `''‐ 、.,_` ̄ / r'゙´ ̄ ̄``'''‐、 ゙、 ' l l:::!
660 :
デフォルトの名無しさん :2005/06/11(土) 21:13:37
やさしいjava P403にそれらしきことが書いていたので。
661 :
デフォルトの名無しさん :2005/06/11(土) 21:18:53
というよりも、 classファイルをすべて削除してから、 javac main.java java main とすると main.class sub.class が作成できうまくいったのだが、、、?
アッソ( ´_ゝ`)
javacのマニュアル読めば全部書いてあるのにな。
たとえば
>>654 はANTとか使った方がいいのにね
ここはマニュアルを読まない人が質問に来るスレ。 もちろんテンプレなんて読まない。
【初心者】Java質問・相談スレッド67【大歓迎】
>>665 いや答えるほうも読まないけどね。657とか。
長年の勘による回答が売りです。
>>648 アプリ起動時に設定すべき環境変数だったら
起動時に一度Propertiesを作ればいいだけだし、
何度も取得する必要があるならそのアプリから参照できるところに
一度Propertiesを作ればいいだけだし、(System Properties に突っ込んでもいいかも)
何で毎回読み込もうという考えが出てくるのかがわからない。
GeneralPathで複数の図形を定義する 下のような感じですごくソースが汚くなる 配列の形を維持したままで、綺麗に書く方法はありませんか GeneralPath[] path = new GeneralPath[]{ new GeneralPath(), new GeneralPath(), new GeneralPath(), }; path[0].moveTo(60.0f,20.0f); path[0].curveTo(0.0f,-10.0f,-20.0f,60.0f,60.0f,100.0f); path[0].curveTo(140.0f,60.0f,120.0f,-10.0f,60.0f,20.0f); path[0].closePath(); .... path[2].moveTo(40, 40); ... path[2].closePath();
>>670 サーバとかで、動的に設定を変えたいみたいなことはあるかも。
>>672 それだったらロードし直すしかないわけで、別に議論する必要性もなくなるんでは。
>>636 前スレよりコピペ
ttp://pc8.2ch.net/test/read.cgi/tech/1114850497/998 >
>>995 (907)
>つうかstaticにした段階で継承とオーバーライドを使える範疇外になる(そういう言語仕様)なんだから、
>
>staticをつかって継承やオーバーライドやコンポジションやらの利点はあきらめる。つまり
>テンプレートメソッドパターンもあきらめる。
>
>しかねえじゃん。言語仕様にいちゃもんつけたところで現実が変わるわけでも無し。
>だいたい、そこまで苦労して実現したとしても、ソース上で省略できることって
>
>Environment env = new Environment(); <--- このインスタンス化の一行
>String prop1 = env.getXXXXX()
>String prop2 = env.getYYYYYY()
>
>の最初の一行だけなんだろ? この一行でそんなに環境変数取得が面倒になるか?
>逆にこっちにすれば、Javaのオブジェクト指向機能のすべてが使えるのに。
あれじゃねぇかパス設定とかおぼえんのまんどいから さいしょはエクリプスのコンソール画面でじゅうぶんじゃね
まぁ最初に躓くか後で躓くかだけの違いだがな。
まぁそうなんだけどさ、最初に躓かせるのは 興味自体そいじゃうからヤバイ 仕事なら関係ないけどねぇやらなきゃならんから
678 :
デフォルトの名無しさん :2005/06/12(日) 05:08:46
JavaアプリのGUIのテストを自動化するにはどうすればいいですか? JUnitはGUIには使えなさそうなので
ロボット型の自動操作ツールを使う。
680 :
デフォルトの名無しさん :2005/06/12(日) 06:32:27
すいません、javaの°documentationは何処に落とせばいいのでしょうか?
パソコンのハードディスク
682 :
デフォルトの名無しさん :2005/06/12(日) 09:39:16
if (frac1.compareTo(frac2)) == -1{ message += (frac1.toString()+ "is greater than" + frac2.toString()); } else if((frac1.compareTo(frac2)) == 1{ message += (frac1.toString() + "is less than" + frac2.toString()); } else{ message += (frac1.toString() + " is equal to " + frac2.toString()); } JOptionPane.showMessageDialog(null,message); } } このif statementどこかおかしい所ありますか?? 不正な始まりとエラーが出てしまいます。
683 :
デフォルトの名無しさん :2005/06/12(日) 09:49:24
>>682 ネタですか?
if (frac1.compareTo(frac2) == -1 ){
だろ。他のもすべて書き直せ。
>>683 ネタですか?
compareTo() returns negative integer, zero or positive integer.
>>684 netaですか?
frac1ってのが何なのか分からん以上
>>683 のように構文チェックくらいしかできねぇべ
おはよう諸君
689 :
デフォルトの名無しさん :2005/06/12(日) 14:23:48
社会人一年目でjavaを会社で習った者です。 家でjavaの勉強をしようと思ってインストールしたんですが どうも上手くいきません。状態は J2SE v1.4.2_08 SDKをダウンロード後インストール 日本語版 J2SE v 1.4.0ドキュメントを解凍後、 C:\j2sdk1.4.2_08のフォルダーの 中にdocsを入れ、きちんと動作するかどうかを調べるため C:\j2sdk1.4.2_08\bin\java -veision を入力しても上手く動作しません 誰か教えてください 長文スマソ
>>689 検索でjava.exeがPC内にあるか調べてくれ
まずはそれからだ
>日本語版 J2SE v 1.4.0ドキュメントを解凍後、 C:\j2sdk1.4.2_08のフォルダーの 中にdocsを入れ、
これは今回の件とは関係ない
君が就職できて
俺が就職できないのはやっぱわけがあるんだ・・・orz
691 :
デフォルトの名無しさん :2005/06/12(日) 14:30:01
>>690 早いレスありがとうございます。
今 検索をかけています
>>693 34歳だけど関係ないっしょ
他に原因があるんだろうな
童貞ばれたかな?
695 :
real 690 :2005/06/12(日) 14:41:19
>>694 でたらめ言うなよ。
その年齢ー10以上だぞ
ついでに道程じゃないw
>>695 ちがうって俺のこと!自分の事言ってるんだよ!
698 :
695 :2005/06/12(日) 14:46:17
間違えますタ。 689です。 m(_ _)m
699 :
698 :2005/06/12(日) 14:50:40
みなさん、たいへんご迷惑をかけました java.exe も存在します。 しかし、どうやら原因はパスの設定らしいので、そちらを 勉強してきます。
700 :
689 :2005/06/12(日) 14:55:19
みなさん、たいへんご迷惑をかけました java.exe 見付かりません。 JREっていうのをダウンしないとダメですか?
おまえどっちだよ あるって言ったりないって言ったり・・・ お前最初の書き込みでおかしいなと思ったんだけど まさかDocだけインストールしているわけではないよな? しかもインストールするのはJREじゃなくてJDKだ
Java Cryptography Extension (JCE) 無制限強度の管轄ポリシーファイル 1.4.2 質問です↑は何ですか?
javaxとかjavaから始まるもののことじゃないの?
706 :
699 :2005/06/12(日) 15:10:41
700は偽者です 今、pathを設定して再起動する所です
おまえどっちだよ 690って言ったり 689って言ったり 699って言ったり・・・
>>706 >今、pathを設定して再起動する所です
なんだよWin98か
納得
709 :
699 :2005/06/12(日) 15:14:58
>>707 常に最新の番号で表示していたけど、紛らわしいようなので699に統一します
>>708 winXPですよ
>>709 なんでXPなのにPath設定後に再起動する?
プログラムの前にWindowsの操作方法とか設定方法を覚えた方がいいんじゃないの?
#source ./bash_profile とかやれ winXP
Windows の基本は再起動
713 :
デフォルトの名無しさん :2005/06/12(日) 16:35:30
>>706 >今、pathを設定して再起動する所です
この程度の知識の人がPC2台持っているのがムカつく
templatemethodパターンとインターフェイスの違いは ただインターフェイスで宣言するかどうかの違いで 概念というか使い所は同じに見えるのですが 何かこれぞ!というような違いはあるのでしょうか?
715 :
デフォルトの名無しさん :2005/06/12(日) 18:32:58
double型実数を表示するとき、小数2桁までを表示したいんですが、どうすればいいですか? 例えばf=25.35678の25.35までを表示させたいんですが。
716 :
デフォルトの名無しさん :2005/06/12(日) 18:50:09
Formatの出番だ もしくは5.0のprint
>>715 Dim x As Double : x = 3.145389
Dim y As Integer : y = 2
MsgBox (Fix(x * 10 ^ y) / 10 ^ y)
718 :
デフォルトの名無しさん :2005/06/12(日) 18:56:08
Basicきた
>>714 インターフェイスには手続きがいっさい無いが、
templatemethod の abstruct クラスには、
抽象的な手続きが記述されている。
同じインタフェースで2つの具象クラスを作る場合、
その2つに共通する手続きがあっても、
それぞれ別々に同じことを書かなければならない。
templatemethod の場合は共通する手続きを
抽象クラスに書いて、具象クラスでその手続きから呼ばれる
メソッドを書くので、共通する部分を抽象クラスに集約できる。
720 :
デフォルトの名無しさん :2005/06/12(日) 19:33:31
レスありがとうございます。正直、始めたばっかりなんでよくわかりません^^; double a,b,f; a= ; b= ; f=a*b; System.out.println("f="+f); aとbに適当な実数をいれ結果fを出力します。このときに小数2桁目までを表示させたいんです。 簡単な方法ないですか
しかしあれだな、抽象クラスという要素の「応用方法」であるテンプレートメソッドパターンと、 言語上の要素であるインターフェースを同列に並べて「同じだ」と言われても....
こ難しいことはともかく、動けばいいんだよ。動けばネ
723 :
デフォルトの名無しさん :2005/06/12(日) 20:04:19
JSFのカスタムバリデータで、複数のUIコンポーネントの入力に 依存するバリデーションを行うことはできますか?もし可能なら その方法を教えていただけないでしょうか。 (例: パスワード入力用のフィールドと再入力用のフィールドの 入力値が一致しているかどうかをチェックする)
>>722 動けばいいと思って基本をおろそかにしてると動かないときの対処ができなくなるぞ。
そんでここで糞質問を繰り返すことに。
>>723 UIComponentのgetParent()でUIコンポーネントツリーの親コンポーネントが
取得できるから、そこからIDを指定して目的のUIComponentオブジェクトを取得できる。
726 :
デフォルトの名無しさん :2005/06/12(日) 21:39:13
>>600 いや、この場合、コミュニケーションスキルが低いのは
>>598 のほうだろう。
>>598 には何でもかんでもわからなかったら自分で調べもせずに
質問スレに聞けば済むという甘えん坊のような卑しい魂胆が見え見えなのだよ。
>>598 は人が苦労したものをこっそり横取りするんじゃないか
という疑いがもたれるため、そういう輩にはウンザリしている
>>599 にからかわれたというわけだ。
727 :
717 :2005/06/12(日) 21:41:17
>718 素でVBスレと(ry public static void main(String[] args) { double x, f; int y; x = 23.53883; y = 2; f = (int)Math.abs(x * Math.pow(10, y)) / Math.pow(10, y); System.out.println("f = " + f); }
728 :
デフォルトの名無しさん :2005/06/12(日) 22:02:09
>>657 > というか、javacは指定したファイル以外は一切コンパイルしない。
そうだったのか。
そうするとやぱり
依存関係になるJavaソースファイルもまとめてコンパイルしてくれる
Apache Antのほうが利口だな。
>>727 > public static void main(String[] args) {
> double x, f;
> int y;
> x = 23.53883;
x = 23.53883d;
> y = 2;
> f = (int)Math.abs(x * Math.pow(10, y)) / Math.pow(10, y);
f = (int)Math.abs(x * Math.pow(10.0d, y)) / Math.pow(10.0d, y);
> System.out.println("f = " + new Double(f).toString());
> }
>依存関係になるJavaソースファイルもまとめてコンパイルしてくれる >Apache Antのほうが利口だな。 ant にそんな便利な機能があるとはしらなかった。 やりかたを教えてくれ。 知らなかったから、いままで、 依存関係があるソースファイルがコンパイルされるように、 build.xml に、わざわざ手で指定してたよ。
731 :
デフォルトの名無しさん :2005/06/12(日) 22:15:52
J2SE5.0 Tigerは もうすでに安定していますか? すでにJ2SE1.4で記述されているものを Tomcat4.xで使用し、 企業で使うには、顧客に勧めるには もう十分ですか? この場合、Tomcat4.xよりもTomcat5.0.x, Tomcat5.5.xを 勧めた方がよろしいでしょうか? 今、会社で顧客の仕様書にTomcat4を使用するようにと 書いてあるようですがこれを便利なTomcat5.5に変え、 便利なJavaもver.5に変えてしまいたいのですが・・・・。 Tomcatはver.4のままでもせめて Javaだけでもversion5にしたいところです。 Eclipse3.0.xを使用しているため、GenericsなどのJava5独自の文法機能を 使うのは問題ですが、それを避けて Java5から加わったメソッドやクラスだけでも使いたいものです。 Eclipse3.0.xはJava5には完全に対応していないものの、 Eclipseの起動、JavaソースのコンパイルにはJava5を使用しても見かけ上問題ないようで すが、Java5は使うなとうるさく言う(Cに慣れて実はメモリ管理ができないJavaが嫌いな)人がいます。 互換性問題はどこまで気にすべきでしょうか。 Java5に移行しても安全なら、それによって互換性による弊害が 起きないなら顧客を説得して移行してしまいたいものです。 うまく説得、証明できればいいのですが、皆さんもこんな事態に直面したことありませんか。
732 :
デフォルトの名無しさん :2005/06/12(日) 22:20:18
>>730 Jarの依存は無理。
ただの差分コンパイルと変わらないよ。
<src/>タグや<classpath/>タグで指定した
範囲内にのみ有効。
つーかJDKでもコンパイルのターゲットとなっているソースAが
あるとき、そのAはソースBに依存するとき
同じディレクトリもしくはクラスパスにほかのソースディレクトリが
指定されているならばソースBもコンパイルしてくれる。
ある程度までのJarの依存の自動化をしたければ
Apache Mavenなどを
使うといいかと。
>731 とりあえず些末なところから突っ込んでおくと Tomcat5.0系はJ2SE1.4で動くよ。
735 :
デフォルトの名無しさん :2005/06/12(日) 22:24:37
>>670 あたりでPropertiesクラスの話をしているみたいだけど
既存のものを除いて
新規にモノを作る場合、いまどきPropertiesクラスを使うメリットってあるの?
ResourceBundleクラスのほうがよさげに見えるんだけど。
それからSystem.getProperties()って使いものになるの?
Java Preferences APIがあればいらないような気がするんだけど。
Tomcat4から5への移行はTomcatの管理ツールつかっていればさくっといったかな J2SE5使うならTomcat5のほうがええ いまのところJ2SE5の安定度はかなりいい 不安定だった1.4.1や1.4.2の初期とは大分安定感が異なる 1.4系のどのバージョンつかってるかにもよるが古いまま運用しているのならかえてもええよ そろそろでてから1年たつし、1.4系でも0.0.1変わっただけで毎回安定性リセットされてたことを考えれば・・・ それにJ2SE5使うならNetBeansのほうが安全とおもわれ 最初からTomcat5内蔵してるし構文も問題なし staticimportのアシスト機能はほしい気もするが・・・ タイプセーフEnumやGenericsなどコードの安全性を高める構文が満載なので 秋以降に運用するのならもう問題ないんじゃないかね 基本的にGC時間とかパフォーマンスは地味に上昇してる
737 :
デフォルトの名無しさん :2005/06/12(日) 22:26:24
>>679 「Javaの鉄則」を読んだんだけど
Robotクラスによるテストはしないようがいいって
書いてあったよ。なんでだか忘れたけど。
>>735 全然用途が違うものを持ってきてなにを言いたいんだろう、この子は。
739 :
731 :2005/06/12(日) 22:35:57
>>733 それは知っております。
Tomcat5.5以降がJ2SE5でないと動かないことも。
J2SE5の方が高速なのでできれば5を使いたいのですが・・・・。
顧客のサーバはRed Hat LinuxでJ2SE1.4はRPMでインストールされています。
rpm -ivh コマンドでインストールしてしまいたいところですが・・・。
>>736 TomcatのAdminToolで簡単に以降できるのですか。
あのツール、そんなに安定していますでしょうか。
以前、WARファイルをブラウザから配備しようとしたとき
不安定になってしまいました。それで結局Tomcatを再インストールし
WARはWinSCPでアップロードして配備しました。
しかし、会社ではC好きな人がWARのことをよくわかってないようで
WARによるデプロイをかなり毛嫌いしているようです。
WARでデプロイしたら顧客からもらったサーバ上のディレクトリ構成どおりにしろ、と
怒ってしぶしぶWARの使用をやめてしまいました。
WARを置いて勝手にコンテキストディレクトリができたらその後にWAR
を削除すれば彼も不安にならず喜ぶのでしょうが・・・・。
740 :
デフォルトの名無しさん :2005/06/12(日) 22:36:40
>>738 何? Propertiesクラスはまだ必要なのか?
さっきから亀レスうざいな。 あ、でも本当はうさぎだけど、休んでる間に亀にぬかれてしまっただけかな?
はいはい。
>>739 だから、Tomcat5.5はJ2SE1.4.2でも動くんだってば。
>>739 コンパチビリティ機能のjarを入れれば1.4.2でも動きます。
5.5のダウンロードサイトにいって、jakarta-tomcat-5.5.9-compat.zipってのを落とせばおk。
>739 いっそWeblogicを勧めてみてはどうか。 そうすればwar嫌いなんて言ってられなくなるし。
746 :
デフォルトの名無しさん :2005/06/12(日) 23:08:25
>>743 >>744 を見て初めて知りました。
以前使ってみたら
Tomcat5.5でJ2SE1.4.2を使用してエラーメッセージに、
J2SE5.0以降でないと駄目だと書かれていたモノで。
747 :
デフォルトの名無しさん :2005/06/12(日) 23:53:27
>>745 Weblogicですか。
こちらがWelogicの経験もスキルも入手するお金もないので
勧めにくいですが。そういう例もあるのですか。
彼は顧客がどんなにバカでアフォな奴でも奴隷のように徹底的に言うことを聞く
のが美徳だと考えているようで
どこの馬の骨ともわからないと彼が独断と偏見で
判断したモノは、それがたとえ新しい技術であって
Tomcatの場合、それがたとえ一般的なTomcatの使い方であっても
習得する気はさらさら無さそうなようです。
彼の考え方はとにかく仕事を早く終わらせることそれしか頭に無いようです。
徹夜残業をしたくないからだとか。
納期に間に合うかどうかも考えずに仕事をとってくるバカ営業を
どうにかして説得すれば彼自身が徹夜残業しなくてもするのに。
残業代も出ない彼が哀れに思う。
彼と一緒に仕事をしていると、XDocletの使い方を知っていればweb.xmlを
取り扱う手間も省けもっと開発効率を高められるのに。
私はいつもそう感じています。
少しでも彼らに残業させないように開発効率を高める工夫をしているのに
そのチャンスを失ってしまうとは。私が無能なだけのか、彼が焦りすぎているだけ何か、
彼がただJavaが嫌いなだけなのか、良くわからない。
748 :
デフォルトの名無しさん :2005/06/13(月) 00:02:03
Tomcatの正しい使い方を知っていれば デプロイするときに 顧客の言われたとおりにやれと。 テスト手法もテスティングフレームワークを使えば 効率よくできるのに。 それもしないでただ急いでやることだけを考えるために、 テストするときはいつも既存のコードを書き換えてコンパイルし直して サーバにアップロードしてテストを実行する。 テストが終わったら本番環境にもどすために再びコードを 修正するという手間を強いる。 彼はいつもその原始的なやり方を行使しようとし 新しい技術を使えばそんなバカげたこともしなくて済むと 言っても彼は理解しようとしない。 CacutsといってもそれはJava標準でないから使うのはまずいなどという。 Jakarata Log4Jもそうだ。Log4Jのほうが速いのに、実績があるのに Java標準でないから信用できないといってJava Logging APIのほうをつかわないと怒る。 Jakarta Common Langを使っただけでもすぐにすごい嫌な顔する。 どんなに実績があるものでもJakartaだと信用できないようだ。 HibernateやSpringの使い方を覚えれば開発効率も大幅にアップするのに 彼はそれを習得しようともしない、理解しようともしない。 他のチームにいる人は理解しようとしているが使う機会がない。 すべてはバカ営業の仕事の取り方に問題があるためにこうなってしまったとはいえ、 彼は焦りすぎだ思う。
Tomcatの正しい使い方を知っていれば デプロイするときに Servlet/JSPを更新するたびに Tomcatを再起動するという無駄な手間を省くことができて 開発中の無駄なロスを軽減できることもしらずに server.xmlを弄るなと文句を言う。 それがたとえテスト用サーバであっても。
>747-748 これ以上はマ板の愚痴スレでな。 ついでに、「TomcatだってJakartaですよ?」とその石頭にツッコんでおいてやれ。
その彼に言ってやれ。 TomcatもJakartaの製品だ。 Java標準の仕様というものはあっても、標準の実装というものはない。 (あってもリファレンス実装であり、ライセンス上業務使用はできない)
「Strutsだって元Jakartaですよ? いまはApacheに格上げだけど」 「StrutsにはLog4J入ってますよ?」 「というかIBM WebSphereにもAntとか他にもいろいろ入ってますよ?」
>>750-751 そうですね。変わった人であることは間違いありませんが。
しゃべりかたもおかしくなってデスマーチに突入することも
恐れない匂いを漂わせています。
当方は徹夜する必要はないので問題ありませんが。
ちょっと可哀想にみえてきたので考えていました。
>>752 もっと捻りの効いた言い回しが思いつきません・・・。
言いたいことはわかるが、フリーのライブラリを使うといった場合 躊躇する人というのはたくさんいるだろう それを資料を用意して説得するしかない でもなんでもかんでもフリーのプロダクトばかりつかっていいものか、というものはある パフォーマンスがネックにならないのならばロギングは標準使ったほうがいいと思うことも多いはず JMXとの連携とかさっそくとられていたのはやはり標準APIだからだとおもうし
そのTomcatには commons-daemon.jar commons-logging-api.jar commons-el.jar commons-launcher.jar ant.jar commons-collections-3.1.jar commons-dbcp-1.2.1.jar commons-pool-1.2.jar なんかも入っていたりするのだが。
入っているからこそバージョン問題を考えると 使いにくいというのは多いだろうね
で、JAVAはいつ廃れるの? もう廃れてもいいとおもうけどさw
プログラムも書いた事のない人がなんか言ってますが....
フッ、JAVAは廃れてもJavaは廃れないさ
JAVA ○○ESSを全否定か
Javaが廃れる頃には
>>757 はプログラマを引退していることだろう
C が廃れても、Java が廃れても、printf は不滅。
コレクションのList関連ってIteratorでまわすのと、インデックスでまわすのってどっちがおすすめ? 理由付きで教えてくれ。
List の実装が ArrayList か LinkedList かで違うと思われる。 ArrayList なら中身単なる配列だからインデックス参照の方が速いが、LinkedList の インデックス参照はリスト先頭からリンクをたどる羽目になるのでは (中でインデックス テーブルなんて作ってないよな…)。
親クラスにあるprivate, protectedなクラスをパッケージ外から呼ぶのは どのようにすればいいのでしょうか? 親でなければ getDeclaredMethod(), setAccessible(true), invoke() で 呼び出すことができるのですが…。
ちょっと簡略化しすぎた。 親クラスかどうかは関係なくメソッドやフィールドのアクセスはリフレクション 使ってできるだろ。それとも private, protected なクラスのインスタンスが 生成できないという話か? それも Class#getDeclaredConstructor(), Constructor#newInstance() 使ってできるだろ。もっとも abstract メソッド 含んでたらサブクラス化しないとできないが。
768 :
765 :2005/06/13(月) 13:36:14
すみません、
× 親クラスにあるprivate, protectedなクラス
○ 親クラスにあるprivate, protectedなメソッド
でした。
>>767 public abstract class ClassA {
private int val;
private int func1() {
return val;
}
}
public final class ClassB extends ClassA {
protected void func2() {
;
}
}
とするとき、ClassBに対して
getClass().getDeclaredMethod("func1", null);
とすると、NoSuchMethodException
がスローされてしまいます。
ClassAにあるメソッドでClassBには無いから当然といえば当然なのですが…。
リフレクションを正しく理解していない気がしてきたので、もうちょっと調べてみます。
>>768 declared = 宣言された
getDeclaredMethod() はそのクラスで宣言されているメソッドを得るもの。
親クラスで宣言されているメソッドが取りたければ親クラスを指定しろ。
そういえば、無かったら、見つかるまで継承関係遡る・・・ ってな処理を昔書いた覚えがあるな。 あまり思い出したくないが。
>>764 なるほど!ありがとう!
LinkedListは使う機会無さそうだから、インデックスにしておこう。
>>770 俺漏れも
>>769-771 恥ずかしながらgetSuperclass()の存在に気づきませんでしたorz
ということで、
getClass().getSuperclass().getDeclaredMethod("func1", null);
でいけました。
ありがとうございました。
老婆心から忠告すると、 開発ツールや、デバッグやテストのためのコードならいいけど、 アプリケーションのコードでそこまでやんなきゃなんないとしたら・・・ ・要件定義が不十分で「なんでもできるクラス」で解決しようとしている。 ・依存性(EJB、画面、Web、ファイル、DB等・・・)の問題を、 アプリケーションのコードで解決しようとしている。 といった問題が起きているような気がする。
>>773 どうもです。
上記コードを書いたのは
JUnitで内部の値がどうなったか検証したかったためなので
問題ないと思います。
>>772 getMethods()で親クラスも含め、継承しているメソッド全て取れるだろ?
>>775 取れるのは public な奴だけだが、API リファレンス読んだことある?
777 :
デフォルトの名無しさん :2005/06/13(月) 23:21:49
あの、AspectJとかのAOPエンジンってload time weavingといって、クラスがクラスローダに ロードされる時点で読み込んだバイト列に手を加える事ができるんですけども、 クラスファイルのバイナリに直接手を加えていなくてもライセンス違反になるのでしょうか? ちなみに、実装方法としてはカスタムクラスローダーを作って行います。 よろしくおねがいします。
> クラスファイルのバイナリに直接手を加えていなくてもライセンス違反になるのでしょうか? リバースエンジニアリング禁止条項とかあればライセンス違反になるかも。 心配だったらベンダに直接聞いてみれば?
779 :
777 :2005/06/14(火) 00:00:20
>>778 なるほど。一般的な見解としては可能・不可能のどちらのほうが濃厚でしょうか?
(グレーゾーンというのが適当な答えなのかもしれませんが・・・・・)
>>779 ライセンスの文面すらわからんのに判断求められても……
>>778 が言うとおりベンダに直接聞いてみるってのが一番早いと思われ。
フリーの Swing 用 Look and Feel をまとめて紹介してあるサイトは無いですか?
782 :
デフォルトの名無しさん :2005/06/14(火) 00:35:36
有田おもんない
783 :
デフォルトの名無しさん :2005/06/14(火) 00:36:33
784 :
デフォルトの名無しさん :2005/06/14(火) 02:39:10
クイックソートのプログラムで比較と複写の回数を表示するには どうすればいいのでしょうか。
>>784 自分で作って自分でカウントアップすれば?
DOM を XML に保存するときに <!DOCTYPE hoge SYSTEM "hoge.dtd"> と DTD を 指定したいんだけど、できなくなったの?
>>786 指定すればいいだろ? 何が問題なんだ。
788 :
デフォルトの名無しさん :2005/06/14(火) 10:56:06
ファイルの削除で、File.delete()を使うと完全に消えてしまうので、 ごみ箱に移動させるにはどうすればいいのでしょうか?
>>788 今のところ標準APIでは不可能。
JDIC の FileUtil を使うとか、
mustangかそれ以降で標準APIに採用されるのを待つか、
JNI使って自力で実装するとか好きにしてくれ。
790 :
788 :2005/06/14(火) 13:28:56
>>787 ・Document インターフェースに setDocType() がない。
・API リファレンスに「DOM レベル 2 では、文書タイプ宣言の変更はサポートされていません。」とあった。
・読み込んだ XML をそのまま保存しても DOCTYPE 宣言が消えてる。
という理由からそう思ったんだけど、やりかたあるんですか?
792 :
デフォルトの名無しさん :2005/06/14(火) 13:46:31
javaのchar型にtrueやfalseが格納できる理由を 教えていただけませんか??? すごく基本的なことでもうしわけないです。。。。
C:\Documents and Settings\torao>copy con a.java public class a{ public static void main(String[] args){char ch = true;} } ^Z 1 個のファイルをコピーしました。 C:\Documents and Settings\torao>javac a.java a.java:2: 互換性のない型 検出値 : boolean 期待値 : char public static void main(String[] args){char ch = true;} ^ エラー 1 個
>>791 昔はできたの?
API見てみたら、確かにDocument.createDocumentType()ってのもないし、
ノードを追加するのは不可能だね。DocumentTypeノードが完全なDTD情
報を持ってるわけではないから、読み込んで保存したときに消えるのも
納得のいく動作だ。
なので、XML宣言と文書型宣言だけ自分で書いて、その後にDOMツリーを
追加するしかないように思う。
DTDつけるだけのXSLスタイルシート書くのが楽かもね。
DOCTYPEつけるだけ、に修正。
ClassLoaderの動作で困ってます。 自作したクラスローダーで任意の場所のクラスファイルを読み込んで動作させたいのですが、 その時に読み込まれるクラスが内部クラスを使用していると、その内部クラスが読込めないとエラーになってしまいます。 先輩方に対処及びアドバイスをお願いします、以下にソースを載せます。 //ロードされるクラス public class LoadedClass { public static void main(String[] args) { LoadedClass loaded = new LoadedClass(); } public LoadedClass(){ System.out.println("LoadedClass"); innerClass inner = new innerClass();//コメントにすると動作する } public class innerClass{ public innerClass(){ System.out.println("innerClass"); } } }
798 :
797 :2005/06/14(火) 15:46:57
//自作クラスローダー public class CustomClassLoader extends ClassLoader { public static void main(String[] args) { CustomClassLoader cl = new CustomClassLoader(); String fName = "D:\\test\\LoadedClass.class"; String cName = "test.LoadedClass"; Class c1 = cl.findClass(cName,fName); Object te; try { te = c1.newInstance(); } catch (Exception e) { e.printStackTrace(); } } public Class findClass(String className,String fileName) { try { File file = new File(fileName); FileInputStream in = new FileInputStream(file); byte[] buff = new byte[(int)file.length()]; in.read(buff); in.close(); Class c1 = defineClass(className, buff, 0, buff.length); resolveClass(c1); return c1; } catch (IOException ex) { ex.printStackTrace(); } return null; } }
DOM レベル 3 は、DocumentType ノードの編集をサポートしません。DocumentType ノードは読み取り専用です。 まぁDTDとの矛盾性とかあるだろうからな 小手先のテクでかえるしかあるまい
JTextFieldに入力された文字列がDBへ登録できるかを判定するメソッドを作りたいです。 String birthday = jtext.getText(); boolean canUse = canUseDB(birthday) if(canUse){ System.out.println("DBへ登録できます"); } こんな感じです。birthdayはyyyy-MM-ddになっているのかを canUseDBメソッドで調べたいです。 ご教授願います。
801 :
デフォルトの名無しさん :2005/06/14(火) 20:16:47
myButton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ Card c = deck.getNextCard(); JLabel myLabel = c.getPicture(); myContainer.add(myLabel); } }); みたいな感じでボタンを押すたびにラベルが追加されていくような プログラムを作りたかったのですが,どうもうまく行きません. どうやらコンテナに追加されるにはされるんですが, ウィンドウのサイズを変更しないと追加したラベルが見えないようなのです. どういう解決法がありますか?
ウィンドウを大きくするとか、ウィンドウの(というか描画領域の)大きさを調べて、その範囲内に追加されるようにするとか。
描画領域は十分大きいです. FlowLayoutが原因なのでしょうか??
804 :
797 :2005/06/14(火) 22:51:17
>>800 DateFormat.parseで日付に出来るか調べられると思うよ。
805 :
800 :2005/06/14(火) 23:09:28
すんません。 具体的なコードを書いてくれませんか? ほんとバカで申し訳ない( ´Д`)
807 :
デフォルトの名無しさん :2005/06/15(水) 00:08:16
HttpURLConnectionを使って、ファイルの存在を確認したあと、
アクセスできないファイルの情報を出そうとしています。
ソースは以下のような感じです。(画像数分ループする)
HttpURLConnection con =
(HttpURLConnection) new URL("
http://画像ファイルのパス ").openConnection();
if(con.getResponseCode() != 200) {
エラーのリストに追加
}
問題ないと思っているのですが、
私の上の方が、コネクションを張るたびに、サーバは応答を全部返そうとするので、
サーバに負荷がかかるとおっしゃるのです。
getInputStream()してread()することで、サーバはデータ部を送信すると思っているのですが、
違うのでしょうか?
500MあるファイルにopenConnectionするだけで、全部送信するようなことはないと思っているのですが、
どう検証すればいいかわかりません。
参考になるページなどがあれば教えていただけますでしょうか?
import java.io.*; public class input{ BufferedReader br; public input(){ br = new BufferedReader(new InputStreamReader(System.in)); } public int iint(String a)throws IOException{ int i; i=Integer.parseInt(br.readLine()); return i; } public String sString(String a)throws IOException{ return br.readLine(); } } public class aaa{ public static void main(String[] args){ input k=new input(); int ii=k.iint(); String ss=k.sString(); System.out.println(ii+ss); } }
809 :
808 :2005/06/15(水) 00:26:38
aaa.java:3: シンボルを解決できません。 シンボル: クラス input 場所 : aaa の クラス input k=new input(); ^ aaa.java:3: シンボルを解決できません。 シンボル: クラス input 場所 : aaa の クラス input k=new input(); ってエラ−が出ます。 input.javaはコンパイルできるんですけど 何故でしょうか? ^
>>805 C:\Documents and Settings\torao>copy con a.java
import java.text.*;
public class a{
public static void main(String[] args){
System.out.println("登録可能?: " + canUseDB("2001-01-01"));
System.out.println("登録可能?: " + canUseDB("hoge"));
}
private static boolean canUseDB(String date){
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try{
df.parse(date);
return true;
} catch(ParseException ex){
return false;
}
}
}
^Z
1 個のファイルをコピーしました。
C:\Documents and Settings\torao>javac a.java
C:\Documents and Settings\torao>java a
登録可能?: true
登録可能?: false
>>807 HttpURLConnection con =
(HttpURLConnection) new URL("
http://画像ファイルのパス ").openConnection();
con.setRequestMethod("HEAD");
if(con.getResponseCode() != 200) {
エラーのリストに追加
}
そのままだとGETでリクエストを出すので、setRequestMethodでHEADにした方が良いかと。
>>807 con.setRequestMethod("HEAD");
if(con.getResponseCode() != 200) {
エラーのリストに追加
}
試してないけどこれでどうだ。
>>808 input というクラスは input.java で定義しろ。
814 :
808 :2005/06/15(水) 00:38:49
>>813 input.javaで定義してますし、もう一つはaaa.javaで定義して、同じフォルダに入れてるんです
初めにinputのほうをコンパイルしてますし
815 :
807 :2005/06/15(水) 00:45:02
>>811 >>812 GETだと、出力データまで送信されてしまい、
HEADだと、メッセージヘッダだけが送信されるということですね。
この方法で試してみたいと思います。
ありがとうございました。
>>814 お、失礼。
javac *.java でも駄目か?
817 :
808 :2005/06/15(水) 00:53:23
>>816 やっばり同じエラーが出ます
トムキャットインストールしたからとかは関係ないですよね?
>>817 ローカルでソースファイル作って気づいた orz
> public int iint(String a)throws IOException{
String 型を引数に取るメソッドに対して
> int ii=k.iint();
引数省略してりゃそりゃエラーになるわな。でも何か違うような…
819 :
808 :2005/06/15(水) 01:06:05
そこを修正加えて、さらにコンパイルするときに javac -classpath C:\. aaa.java ってやったら出来ました 今まで学校や他のマシンでは今までそんなコマンド打った覚えはないんですけど、 こんなの打たずにやる方法ってないんでしょうか?
1.環境変数 CLASSPATH に追加してしまう。 2.ant 等を使う
Ruby を使う
網豆を使う
┌─────────┐ │∴∵∴∵∴∵∴∵∴│ │∴∵∴∵∴∵∴∵∴│ │∴∵∴∵∴∵∴∵∴│ │∴∵∴∵∴∵∴∵∴│ │∴∵∴∵∴∵∴∵∴│ │∴∵∴∵∴∵∴∵∴│ │∴∵∴∵∴∵∴∵∴│ │∴∵∴∵∴∵∴∵∴│ │∴∵∴∵∴∵∴∵∴│ ? │∴∵∴∵∴∵∴∵∴│ ∧∧? │∴∵∴∵∴∵∴∵∴│ (゚Д゚;∩ │∴∵∴∵∴∵∴∵∴│ (| ,ノ │∴∵∴∵∴∵∴∵∴│ | |〜 │∴∵∴∵∴∵∴∵∴│ し`J └─────────┘
キーボードから英文を入力して ある単語があれば1なければ2 という判定をしたいのですが 判定に何を使えばいいのか調べたけど分かりません どなたか教えてください
String#equals() Set#contains()
入力された英文.indexOf(ある単語) >= 0なら含まれている。 全部小文字か大文字に揃えてから調べた方がいいかもね。
試してみます。ありがとうございました
830 :
デフォルトの名無しさん :2005/06/15(水) 11:54:57
Beanに<BR>を含む文字列を格納し、 BeanのゲッターメソッドをJSPで記述し出力させているのですが 画面にそのまま<BR>が表示されてしまいます。 ソースを見ると<br>に変換されてる・・・ 画面表示させる場合に改行をさせたいのですがどうしたらいいのでしょうか?
831 :
デフォルトの名無しさん :2005/06/15(水) 11:56:09
訂正 ソースを見ると< br& gt;に変換されてる・・・
832 :
初心者 :2005/06/15(水) 13:25:52
JAVAで2Dのテクスチャーマッピングを 画像でやろうと思うんですが、どうやるかわかりません。 ここにカキコしていただいても参考になるサイトでもいいので、 教えてください。お願いします。
>>832 2Dのテクスチャーマッピングって何だ?
いわゆる、「タイリングパターン」のことじゃないの。
== と equals の違いを教えて頂けないでしょうか
==は演算子 equalsはStringクラスのメソッド
ネットで調べたらすぐヒットしました 馬鹿な質問してすみません
100% ウソではないが・・・。 Object クラスのメソッド(つまり、String クラス固有ではない)だね。
841 :
835 :2005/06/15(水) 16:33:35
文字列の比較で if(A1==A2)と if(A1.equals(A2))で結果が 違うのですが、どうしてなのか?調べても理解出来ないです
>>835 C言語わかる?
わかるなら==はポインタの判定
equalsはstrcmpのように実装
って考え方でいいと思うが
if(A1==A2)と if(A1.equals(A2))の違いは ==は参照先の場合、参照してるインスタンスが同じかどうかを比較してる プリミティブ(intとかね)の場合は内容を比較してるからややこしくなるんだよなぁ equalsは参照してるインスタンスの内容が同じかどうかを比較するメソッド (何をもって同じとするかはクラスによって違うのでequalsをオーバーライドして実装) ということになってる だから内容が同じでも違うインスタンスなら==はfalseになる
844 :
835 :2005/06/15(水) 17:22:31
わかり易い説明 ありがとうございました
Stringクラスは内部的にはchar型配列を持っているのですか?
848 :
デフォルトの名無しさん :2005/06/15(水) 23:15:36
参照型についてなんですが String s = hoge.get(〜);などは 取得してきた文字列をStringにいれるんだなぁって イメージがつくのですが 自分で作成したクラスなど宣言するパターン ResultSet rs = hoge.get(〜); NewClass nc = hoge.get(〜); などはどういった事をするのでしょうか? どうもやろうとしているイメージがわかないのですが… ResultSetに代入してどういうことが可能になるんでしょうか? わかりやすく教えてください
getの動きなんてクラスごとに様々だぞ Java以前にコンピュータ言語自体が初心者?
クラスの概念について勉強しないと 説明うけてもわからんのじゃないか
そもそも文字列をStringにいれているわけではないのでイメージ自体が大きく間違っている。
852 :
デフォルトの名無しさん :2005/06/16(木) 00:20:38
上記のアプレットを用いて、次の1, 2 のどちらかのプログラムを作成せよ。
1. data[0] (データ用メモリの 0 番地) に置かれた値の階乗を計算して出力す
るプログラム。
2. 面白い問題を自分で考えて、そのプログラム。
プログラムは、上記のアプレットのページで実行しているところを、プリント
アウトせよ。1. の場合、10 の階乗を計算しているところをプリントアウト
すること。それに、説明(どのメモリアドレスが何に用いられているかなど)
を書き加えること。
http://www.i.h.kyoto-u.ac.jp/~tsuiki/vma/vm.htmll ←上記のアプレット
1を誰か教えてください。まじおねがいします。
853 :
デフォルトの名無しさん :2005/06/16(木) 00:29:47
質問です。 JBossにWebworkで作ったJSPの入ったwarをdeployしたら、 Generated servlet error: The method _jspx_meth_ww_submit_0(JspTag, PageContext) in the type index_jsp is not applicable for the arguments (FormTag, PageContext) と出ました。 これってどういう意味ですか? JBossでwebworkを使うときはやり方があるのでしょうか?? よろしくお願いします。
Servlet/JSPのバージョンが違くて、カスタムタグが動かないんじゃない?
855 :
デフォルトの名無しさん :2005/06/16(木) 04:34:53
上手く調べればすぐわかることだと思うんですが、どうしても情報を見つけられません。 教えてもらえないでしょうか。 アプレットで、FileInputStream( file ) と FileOutputStream( file )が file を探しに行く パスはどうやって決まってるんでしょうか? ブラウザによって違ったり、appletviewer だとまた違ったり、入力と出力で違ったりして、 コントロールできません。 よろしくお願いします。
ヒント:カレントディレクトリ
>>856 java 初心者の漏れががんばってそれを答えようと思ってたのにー!
おにいちゃんのバカ!
java.io.File にそのへんのことが説明されてる。
あとはソース追っかけて、どうやって相対パスを解決してるのか
見てみるとか。
858 :
855 :2005/06/16(木) 06:34:40
>>856 >>857 どうもありがとうございます。
「入力と出力で違ったり」 は自分の勘違いだったようです。
いろんなブラウザ使ったり、appletviewer 使ったりしながらテストしてて、全部
デフォルトのパスが違うので混乱してたようです。
java.io.File のソースを見て、「入力と出力で違うはずはない」 と確信してテスト
したらわかりました。
FORTRAN しか知らなかった Java 初心者ですが、Java ってこういうときに
ソース見れるのがいいですね。
859 :
デフォルトの名無しさん :2005/06/16(木) 08:51:20
Tomcat プラグインをダウンロードするサイトへいくと Error kernel (20) Informations Demandez le catalogue Sysdeo 2005 Téléchargez la version PDF du catalogue des formations Sysdeo 2005 Renseignements et inscriptions 01.41.22.03.03 Plan d'accès au centre de formation Sysdeo Module not found The requested module eclipse could not be found. こんなのでるんですけど・・・ ダウンロードきないんですかね?
860 :
857 :2005/06/16(木) 08:52:50
>>857 >java.io.File にそのへんのことが説明されてる。
java.io.File「のドキュメント」にそのへんのことが説明されてる。
念のため。
862 :
デフォルトの名無しさん :2005/06/16(木) 15:31:24
レポート課題(2回目)
上記のアプレットを用いて、次の1, 2 のどちらかのプログラムを作成せよ。
1. data[0] (データ用メモリの 0 番地) に置かれた値の階乗を計算して出力す
るプログラム。
2. 面白い問題を自分で考えて、そのプログラム。
プログラムは、上記のアプレットのページで実行しているところを、プリント
アウトせよ。1. の場合、10 の階乗を計算しているところをプリントアウト
すること。それに、説明(どのメモリアドレスが何に用いられているかなど)
を書き加えること。
http://www.i.h.kyoto-u.ac.jp/~tsuiki/lecture/jouka/3.html 1を誰か教えてください。どこに何を記入すればいいのか。
まじおねがいします。
宿題スレいったほうがいいんじゃねーの? にしてもその宿題、メモリアドレスとか怪しさいっぱいだね。 まあいわんとしていることはわからんでもないけど。
864 :
853 :2005/06/16(木) 15:42:29
>> 854 どうもありがとうございます。 ところで、servlet/jspのバージョンはどうやって調べれば良いのでしょうか? このエラーを回避する方法を詳しく教えて頂ければ嬉しいです。 よろしくお願いします。
京都大学大学院 人間・環境学研究科 立木 秀樹 (Tsuiki Hideki) 通報しますた
866 :
デフォルトの名無しさん :2005/06/16(木) 18:28:53
ヒストグラムを表示するプログラムなんですが、 ImageFrameクラスを作って作成しなさいとあるのですが、基盤となるプログラム みたいなのないですか? 全然表示されなくて困ってます。 宜しくお願いします。
ImageFrameってなに? スレ間違えてない?
868 :
866 :2005/06/16(木) 19:19:00
JAVAのプログラムなんですが、ここは違ったですか?
標準APIにImageFrameクラスは無いので ImageFrameクラスのソースが無いと答えようがない せめてpublicメンバの一覧とか そのImageFrameの出展元が何かぐらい分かれば まだ望みはあるのだろうけれど
普通に考えれば、ImageFrameという名前のクラスを作りなさいか、 問題中にImageFrameクラスが示されているかどちらかだな。 まあ、宿題は、宿題スレに問題文ごと丸投げしなさいってこった。
クズですな。
872 :
デフォルトの名無しさん :2005/06/16(木) 20:41:32
処理なしの引数なしコンストラクタって何の意味があるのですか? 仮に記述がなくても自動的に内部で作成されるんだから 書く理由があまりないと思いますが ステップ数を稼ぐだけにしか思えないのですが
>>872 は引数ありコンストラクタを作ったことのない奴
>>872 >仮に記述がなくても自動的に内部で作成されるんだから
そのクラスでコンストラクタが定義されてないときのみ。
>>876 nazeiinaoshiosuruno?
imiwaisshojanai?
>>877 日本語が理解できていないとしか思えないな
>>877 引数付きコンストラクタ(だけ)がある場合でも一緒か?
引数付コンストラクタのみがある場合も、引数無しの自動コンストラクタは作られないよ
ある文字列から特定の文字のみを抜いた文字列を作りたい場合どうすればいいのでしょうか? 例 appleに対してpを抜いたaleがほしい。
>>881 ("apple").replaceAll("p", "")
884 :
881 :2005/06/16(木) 23:51:50
迅速なレスありがとうございます。 replaceAllってのは見たことあったのですが、正規表現という言葉の意味がわからなくて・・・。 ありがとうござました。
>>872 このスレでもよくそれ出てくるけど
class A
{
public A(){this(0,0);}
public A(int a){this(a,0)}
public A(int a,int b){(なんか処理)}
}
こんなふうに引数付きコンストラクタがあってデフォルトも選べるよ
見たいな時に使うの。
>>873 はこれが言いたかったと思う。
理解できてないやつがいるみたいだけどな。
887 :
デフォルトの名無しさん :2005/06/17(金) 00:17:25
>>862 京大生の癖に生意気だぞ。
こんな奴に誰が教えてやるものか。
こんなやつを量産したら
京大から来た奴はエリートだと勘違いして
働かせたら宿題を他人にやらせないとなにもできない
無能者が社会に放流されてしまう。
>>862 のような自分では何一つ調べることもできない
こんな奴がエリート呼ばわりされる資格はない。
>>884 そういう時は、「正規表現とは」で調べるくらいしろガキ
>>880 被奇数月コンストラクタがあると引数無しコンストラクタを
呼び出そうとするとエラーになる。
だがコンストラクタ定義が一つもない場合はその限りで鼻い
本屋に行って来い 正規表現というタイトルの本が見つかるぞ
>>890 は京大のバカ
京大の質も下がったもんだな(嘲笑激藁
学歴コンプレックス丸出しw
初心者スレくらいしかでかい顔できるところが無いんだから 派遣でも高卒でも大目に見てヤレ
職業プログラマのおっさんよぉ、 こんなところで発狂してないで、明日終電に間に合うように仕事しろよw
\___________ ________________________________________/ | V | ('A`) / ̄ノ( ヘヘ ̄ ̄
プログラマほど学歴が意味を成さない商売もあるまい
ドカタには学歴どころか人種も意味が無いだろw
意味あるよ 就職時に
901 :
727 :2005/06/17(金) 01:42:27
>>715 が元ネタです。
>>729 今更ながら、x = 23.53883d; の d はあったほうが良いものでしょうか?
うちのJavaの本調べたけど載ってないので、教えてもらえると幸いです
System.out.println("f = " + f);
System.out.println("f = " + new Double(f).toString());
あと、newでインスタンス化して、String変換したほうが良いのでしょうか?
普通は" f = " + f でいい。 ちゃんとやりたい気分なら String#valueOf(double)。
903 :
デフォルトの名無しさん :2005/06/17(金) 10:13:14
static contextで呼び出されたときにClassを取得したいんですがどうやるんでそうか abstract class Hoge { private static Hoge instance; public static Hoge getInstance() { if (instance == null) instance = ココ.newInstance(); return instance; } } class Fuga extends Hoge { } Fuga.getInstance()としたときにFugaであることを知りたいんでつが
904 :
デフォルトの名無しさん :2005/06/17(金) 10:35:49
Hogeのstaticメソッドって言う時点で無理。
>>886 872が聞いているのは、
public Foo() {
}
のように実装のないコンストラクタがなぜ必要か、ということ。それに対して
回答者は、引き数付きのコンストラクタしかないクラスを継承した場合、派生
クラスのコンストラクタでは明示的にそのコンストラクタを呼び出す必要があり、
そのようなことをしないためには基底クラスに引き数なしのコンストラクタを定義
する必要がある、ということを言っている。
906 :
デフォルトの名無しさん :2005/06/17(金) 13:23:22
>>906 主題スレへ行け。
ところでそのページ、学外からはアクセスできないようになってるね。
また理科大かよ
909 :
デフォルトの名無しさん :2005/06/17(金) 14:05:00
Javaのファイル名(.javaもしくは.class(?))を選択したら,すぐにコンパイル, 実行までしてくれるような開発アプリはないでしょうか?
911 :
デフォルトの名無しさん :2005/06/17(金) 14:26:48
こんにちは。 JBoss4.0.2でWebWork2を使ったjspを実行したら、 エラーが出ちゃいました。 14:19:45,891 ERROR [StandardWrapper[/cl_hellojms:jsp]] Servlet.service() for ser vlet jsp threw exception org.apache.jasper.JasperException: Unable to compile class for JSP Generated servlet error: The method _jspx_meth_ww_textfield_0(JspTag, PageContext) in the type sub_jsp is not applicable for the arguments (FormTag, PageContext) Generated servlet error: The method _jspx_meth_ww_submit_0(JspTag, PageContext) in the type sub_jsp is no t applicable for the arguments (FormTag, PageContext) at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErro rHandler.java:84) ・ ・ ・ (続く)
912 :
911続き :2005/06/17(金) 14:27:04
ちなみに、sub.jspは以下のソースです。 <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ taglib uri="webwork" prefix="ww" %> <html> <head> <title>sub</title> </head> <body> <center>sub</center> <ww:form action="'clTest.action'" method ="'POST'"> <ww:textfield size="3" name="'hoge'" maxlength="2" /> <ww:submit name="hogebtn" value="'登録'" /> </ww:form> </body> </html> 原因がさっぱりわからないのですが、エラーの意味は何なのでしょう? 教えてください。 よろしくおねがいします。
>原因がさっぱりわからないのですが、エラーの意味は何なのでしょう? 書いてあるじゃねえか
914 :
911 :2005/06/17(金) 15:57:46
>913 すみません、どういうことだかわからないのですが・・・。 詳しく教えてくれませんか?
>>914 英語くらい読め
読めないなら機械翻訳でもしろ
916 :
デフォルトの名無しさん :2005/06/17(金) 16:11:24
はじめまして。 DBを作成してそこに画像を貼り付けました。 JSPでそのDBを読み込んで文字等を呼び出すことはできたんですけど 画像の呼び出し方がわかりません。 教えてください
917 :
911 :2005/06/17(金) 16:20:55
JSPのJavaソースがコンパイルできないんですよね? なんでコンパイルできないかがわからないんです。 どうやって追跡していったらいいですか? 教えてください。
>>916 「LOBを使ってDBからバイナリを読み出し、それをバイナリとして出力する」サーブレットを作成する
サーブレットはmimeTypeを画像の形式で出力する
JSP側では、imgタグのsrcに"サーブレット名"を指定する
919 :
916 :2005/06/17(金) 16:32:05
>>918 LOBがわかりませんが勉強してやってみます。
ありがとうございます。
>>919 >DBを作成してそこに画像を貼り付けました
>LOBがわかりませんが
どうやってインサートしたの?
JTable で A というセルの内容を編集中に [TAB] キーで隣の B というセルに移動すると、 B の内容が A の内容になってしまうんだけど、どうすれば良いんでしょうか? _______________________________ [AAAA_ ] BBBB | +-------+---------+ |CCCC | DDDD | ~~~~~~~~~~~~~~~~~~~~~~~~ ↓タブキー _______________________________ |AAAA [AAAA ] +-------+---------+ |CCCC | DDDD | ~~~~~~~~~~~~~~~~~~~~~~~~
922 :
デフォルトの名無しさん :2005/06/17(金) 23:00:03
// コマンドラインから一行読み込んで返却するメソッド public String readCommand() throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); return br.readLine(); } コマンドラインから値を読む際のコード量を減らすため上記のようなメソッドを作成しました。 しかしこのメソッドが複数呼ばれる場合、複数のBufferedReaderオブジェクトができそうで あまり効率が良くないんじゃないかと思うのですが、何かお勧めの方法は無いでしょうか?
生成を1回にする
心配すんな。生成よりお前の手入力のほうが遅い。
バッチとかDB方面からの標準入力とかあるだろうし手入力とはかぎらんだろ
926 :
デフォルトの名無しさん :2005/06/18(土) 02:18:12
こんなエラー文が出てきたのですが Exception in thread "main" java.lang.NoSuchMethodError:main どういう状態なのですか?
thisでブチ切れていた者です 自己解決いたしました。失礼しました コツコツと勉強続けたいと思います
mainのシグニチャが違う。 以下、一字一句間違えないように写せ。 public static void main(String[] args)
アプリケーションサーバとしてResinを使ってWebアプリケーション開発の練習をしているんですが、 今まで作ってきた大量のJSPが溜まっている状態でいろいろやっていると、 普通はまったく問題なく動くJSPが突然 「pageContextが初期化されていない可能性があります」などのエラーとなってしまうようになってしまいました。 どうも、JSPをコンパイルするときにエラーになっているようなのですが・・・・・・。 Resinを再起動すればその後しばらくの間アクセスしたJSPは動くのですが、いろいろやっていると また動作しないJSPが出てきたり・・・・・・わけが分かりません。 申し訳ありませんが、どなたかご助力いただけないでしょうか?
930 :
929 :2005/06/18(土) 02:27:47
>>929 補足
環境はWindowsXP-SP2、Pentium4-2.8GHzにメモリ1GBで、
JavaVM起動オプションとしてxmsを512MB、xmxを512MBにしています。
メモリは潤沢にあるはずなんですが・・・・・・。
エラーの出るJSPのソースを少しでもいいからさらしてみそ。
932 :
929 :2005/06/18(土) 02:38:11
>>931 ソースは学校のPCにあって今(自宅)は晒せないんですが、
ひよこサーブレットにあるような
Hello Javaのいろんなパターンくらいのソースでもエラーになってしまいます。
今度持ってきますね。
なんていうか、Resin自体の設定ミスとかそっちなのかなという感じなんですが、
イマイチ分からず気持ち悪く、これを機にTomcatにでも乗り換えますかねぇ・・・・・・という感じです。
質問しっぱなしですみません、死んだように寝ます・・・・・・。
>>933 微妙だねぇ。
Windows なら動くかも知らんけど、Mac だと……
って Mac はコマンドライン無いから良いのかな?
そうじゃなくて毎回newするから前回のBufferdReaderが先読みした分のデータが欠落するんじゃないかなと思った。
>>935 コピペとかで数行流し込まれた場合はヤバイかも。
マシンの処理性能やJVMの性能を比較するため Javaのベンチマークソフトを探しています 何か定番のベンチマークソフトはありますでしょうか? 名前と入手先をご教示いただけると嬉しいです。
PocketPCでJavaを使うとすると どこのJVMを使うのが良いんでしょう?
次スレは70くらいだな。 【初心者】Java質問・相談スレッド70【大歓迎】
941 :
デフォルトの名無しさん :2005/06/18(土) 13:25:30
JDK5.0とeclipseをインストールして使っています。 C++では拡張子がcのファイルをダブルクリックするとソースが表示できましたが、 eclipseで拡張子jarのファイルをダブルクリックで開くにはどのような設定が必要ですか?
JTextArea ta = new JTextArea(); JScrollPane sp = new JScrollPane(); sp.setPreferredSize(new Dimension(300, 400); sp.setViewportView(ta); add(sp); として、テキストエリアとスクロールペインを用意しています。 テキストエリア ta に対して、ta.append("test\n"); を何度か実行すると、実行した回数だけ、テキストエリア ta に 文字列 test が追加されていきます。 ここで、スクロールペインの縦サイズを超える行数になるまで ta に 文字列を追加していくと、スクロールペイン右側にスクロールバーが 表示されます。 バーは表示されるのですが、自動的に下にスクロールされません。 (行数がエリアの縦サイズを超えてから)行数が増えていくごとに、 自動的に1行分スクロールするには、どうすれば良いのでしょうか?
943 :
デフォルトの名無しさん :2005/06/18(土) 14:25:55
既出でしたらすみません。 ファイルの存在チェックについての質問です。 【環境】 WinXP jdk1.3.1使用 【やりたいこと】 Sv1(Fileサーバ) Sv2(APサーバ) クライアント の環境で、クライアントが画面に入力したファイルが Sv1側に存在しているかどうか?をチェックしたい。 その際に、APサーバSv2を介してチェックを行う。 //ファイル存在チェック File objFile = new File(strFileAddress); if (objFile.exists() == true && objFile.isDirectory() == false){ } else { Err_Msg = "指定したファイルが存在しません。"; Err_Koumoku = "CHR2"; Err_Rec = "0"; req.setAttribute(REQ_ERR_CODE, Err_Msg); req.setAttribute(REQ_ERR_OBJ, Err_Koumoku); req.setAttribute(REQ_ERR_REC, Err_Rec); return false; } としており、
944 :
943 :2005/06/18(土) 14:26:31
続き
strFilwAddressには画面で入力したアドレスを取得し、チェックをしようとしています。
\\Sv1\C\Book1.xls
B:\Book1.xls
上記れを入力した時に、チェックができず、すべてファイルが存在しない、と帰って来てしまいます。
(上記アドレスをアドレスバー入力すると、表示されるので存在しています。)
上記のように中間にAPサーバを介してのファイルの存在チェックはどうすれば宜しいのでしょうか?
>>943-944
あるObjectの名前に、ある文字列が含まれているかどうかを判定するには どうすれば良いのでしょうか?(先頭一致で調べたいです) 例えば、自分で作った class ONameTest extends Object というクラスから 作ったオブジェクトは、"ON"から始まっているかどうかを調べたいのです。 文字列と文字列の先頭一致を判定するには、 String str1 = "abcdefg"; String str2 = "ab"; boolean bl = str1.startsWith(str2); とすれば、bl は true になったので、 Object ob = new ONameTest(); String st = ob.toString(); boolean bl = st.startsWith("ON"); としましたが、出来ませんでした。お願いします。
>945 ob.getClass().getName()
947 :
945 :2005/06/18(土) 14:43:46
すいません。スペルミスでした。出来てました。 吊ってきます・・・。
948 :
945 :2005/06/18(土) 14:44:43
>>946 そのようなスマートな方法もあるのですね。こちらも試して見ます。
私のような馬鹿者にレスしていただきありがとうございます。
>>946 ob.getClass().getName().replaceFirst("(\\w+\\.)+","");
950 :
943 :2005/06/18(土) 14:57:41
すみません・・・やっぱり無理なのでしょうか・・・?
951 :
デフォルトの名無しさん :2005/06/18(土) 16:19:18
すいません。Axisのサービスでクエリーストリング(URLXXXX?name=hogeとかの?以降の部分) のパラメータを得たいのですがどうやればよいのでしょうか。どなたか知っている方いましたら教えて下さい。 また、誤爆だった場合は誘導よろです。
>>943 >Sv1(Fileサーバ)
>Sv2(APサーバ)
> \\Sv1\C\Book1.xls
Sv2から \\Sv1\C が見えてないに1万ペリカ
953 :
943 :2005/06/18(土) 16:53:18
>>952 すみません、それが見えてるんですよ・・・
直接、アドレス入力した時は見えるんですが、
javaで見ようとした時には取得出来ていないようなのです。
objFile.length()
とやっても、あるにもかかわらず、0と帰ってきてしまうんです・・・
ネットワークドライブで接続してやるのはだめなのか?
>>954 例えば、
sv1 のCドライブをクライアントでX:\に割付る方法ですか?
その方法も試したのですが、ダメでした。
それとも、ネットワークドライブで接続してやる方法
というのが上記方法ではなく、他にあるのでしょうか?
956 :
デフォルトの名無しさん :2005/06/18(土) 17:54:34
Mapいんたーふぇいすを実装したクラスの値入りの初期化はどうするんでしたっけ?なんかこんな感じだったとおもいましたけど、うまくいきません。 HashMap hoge = new HashMap(){ put("hoge","foo"), put("hage","bar") } javadocにも見当たりませんし。おしえてえろいひと。
958 :
943 :2005/06/18(土) 18:14:10
やっぱり、出来ません・・・ と言うか、C:\〜.xlsと指定してチェックしようとした場合も、 APサーバー側から見た、C:\を見るんですね・・・
>>958 Jakarta Commons VFSでCIFS(Samba)接続してみればどうだろうか。
とやってもみずに言ってみた。
>>958 はネタなのかつりなのか気になるところだな
もしかして
>>957 の人ってできることしらなかったりしてw
>>956 HashMap hoge = new HashMap() {
{
put("hoge", "foo");
put("hage", "bar");
}
};
965 :
956 :2005/06/18(土) 19:23:37
>>959 えっ!マジですか!?
う〜ん、どうしよう・・・
ローカルは見れないとして、
なぜ、ファイルサーバの中身までチェック出来ないのか・・・
>>961 釣りじゃないです、マジです。
java初めて一週間とかなんですよ・・・
>>966 なにをどうやって
何ができて何ができないかを
表か何かに書いて整理してから相談してくれ
>>958 Sv2から \\Sv1\C が見えてないに1万ペリカ追加
Application Serverを動作させてるユーザーから \\Sv1\C が見えてない。
> 直接、アドレス入力した時は見えるんですが、
このユーザーでJavaアプリケーションを作ればアクセスできるはず。
わけもわからないのにいきなりAPServer上で動かせようとするな馬鹿
enum Status { NASHI, MARU, BATSU }; EnumMap<Status, String> statusMap = new EnumMap<Status, String>( Status.class ); ~~~~~~~~~~~~~~ と、いうコードの「Status.class」の部分の意味がわかりません。 「.class」とは、「.getClass()」の古い書き方なのかなーと思ったんですが、 それでは、コンパイルが通りませんでした。 「.class」の意味が分かる方、教えてください。
970 :
969 :2005/06/18(土) 21:16:07
EnumMap<Status, String> statusMap = new EnumMap<Status, String>( Status.class ); ~~~~~~~~~~~~~~ でした。。。
<クラス名>.class で そのクラスのjava.lang.Classオブジェクトを表す。 構文は似てるけど、厳密にはstaticフィールドとは違う。 ちなみに、コンパイラによって Class.forName("<クラス名>") に変換される。 java.lang.Object#getClass()は、そのインスタンスが属するクラスのClassオブジェクトを取得するメソッド。
972 :
デフォルトの名無しさん :2005/06/18(土) 22:09:06
JSFを業務で使ったことある人いますか? 私は恥ずかしながらまだ使ったことがありません。 (便利って話はよくきくんですが・・・) Eclipseで(業務で使える)JSFのプラグインっていつごろ出回るんだろ・・・
974 :
デフォルトの名無しさん :2005/06/18(土) 22:16:06
JSF業務であるけど、WSAD(Eclipse)でやった
975 :
デフォルトの名無しさん :2005/06/18(土) 22:16:33
無料のものを指しているんだろ?しかも使えるもの
業務で無料にこだわるのか?
977 :
デフォルトの名無しさん :2005/06/18(土) 22:21:54
じゃぁなぜそもそも業務でもこんなにEclipseが流行っているのか聞きたいな 結局は払う必要が無ければそれに越したことはない
978 :
976 :2005/06/18(土) 22:26:35
解決 し ま し た !
すくなくともうちじゃIBMのRWDの年間ライセンス料ぐらいは たいした話じゃないけどね。上のチェックもほぼスルー。 さすがにRADになると無理だけど。
>>058 ,966
> と言うか、C:\〜.xlsと指定してチェックしようとした場合も、
> APサーバー側から見た、C:\を見るんですね・・・
プログラムがAPサーバで動いてるのに、APサーバ側からみたC:\を
見るって事にどんな不自然さを感じるんだ?
> \\Sv1\C\Book1.xls
> B:\Book1.xls
> (上記アドレスをアドレスバー入力すると、表示されるので存在しています。)
じゃあクライアントマシンからは見えるってことだろうね。でもクライアントじゃなくて、
APサーバ上でプログラムが動いてるんだろ?
981 :
969 :2005/06/18(土) 22:44:36
>>971 ありがとうございます。
フィールド名だと思って、Objectクラスや、Classクラスを探したんですが、
見つからなくて、途方にくれてました。
特殊な構文なんですね。
>>938 なにをやりたいかによるんじゃないの? ベンダによってどのJSRに
準拠したモジュールを付属させているか違うし。
JSFを業務で使ってます。 アーキテクチャ設計にSunが関わっていて、トップダウンで使えと言われました。 実装は、Sun Application Server です。 試しに使ってみたMyFacesは糞でした。バグだらけ。 ちゃんと動けば、Jakarta Commons のライブラリを沢山使っていて、多機能でなかなかだと思うのですが・・・
俺は使った事なくて噂だけだけど、MyFacesは裏でいろいろ怪しい動作をしてて、 画面表示の挙動がヘンになるらしい。
>>962 957ではないが
>>964 の書き方だと
hogeはHashMapを継承した無名クラスのインスタンス
になるのはわかってる?念のためききたい。
987 :
デフォルトの名無しさん :2005/06/19(日) 02:20:54
今までC++でプログラムつくってて 構造体まではある程度わかりましたが、ポインタの理解に苦しみました。 今後、Javaでプログラムを作っていきたいのですが 入門書で何かお勧めはありますでしょうか? JDK5.0、eclipseをつかってプログラムを組んでいく予定です。
>>986 そうなんですか
まあ実害はなさそうですが、きもいのでスタティックフィールドで初期化します。やっぱperlのようにはいかないか〜
スタティックフィールド? static初期化ブロックで初期化のことか?
それです てか内部クラスになるのはコンパイルしたときそれっぽいのが生成されたからその時点でアヤシイっておもったけど、なんであのかきかたで内部クラス扱いになるかわかりません。どこよめばわかりますか?どくしゅうJavaにはかいてないぽい
>>991 というかだね、
>>964 の書き方だと、new HashMap()で作ったインスタンスをHashMap型
変数にいれてるじゃん。これ別にMap型でうけても全然問題ないだろ。というよりも、
Collectionフレームワークってそういうふうに使うもんだし。
で、Mapは単なるインターフェースだ。どうせインターフェース型の変数につっこむんなら、
入れるモンがHashMapだろうがHashMapのサブクラスだろうが、はたまたMapインターフェースを
実装した正体不明のクラスだろうが、どうでもいいとは思わんか?
993 :
デフォルトの名無しさん :2005/06/19(日) 05:25:50
まあそのとおりですが今回はポリモーフィズムがどうたらとかいうことは考える必要はなく、たんにあるクラスのなかでつかっておしまいなのでインターフェイスにぶちこむ必要はないです。さらにそこで使うことじたいイミフメイにとられかねませんしね
>>993 いやだから、勝手にHashMapのサブクラスが自動生成されても、別にどうでもいいんじゃない?といいたい
んだけど。
無名クラス( new ActionListner() { ...}とか)やったら、全部そうなってるんだし。
つまるところ、最初はMapいんたーふぇいすを実装したクラスならなんでも よかったという考えで、手っ取り早くHashMapをもってきただけです。 無名クラスができるなんて知らなかったからHashMapにそのままぶち込んだ わけでして、、、 ほんとなんだっていいですよ。
943ですが、 SV2で、\\SV1\Cは見れます どうも、SV2内のファイルにしかチェックが出来ないみたいなのです クライアントから\\SV2\Cとやると、チェック出来ます ですが、SV2で\\SV1\Cを見ようとすると、チェック出来ないのです。
997 :
937 :2005/06/19(日) 10:36:37
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。