【初心者】Java質問・相談スレッド122【歓迎】
1 :
デフォルトの名無しさん :
2008/12/14(日) 20:58:57
>>1 さん乙です。
早速質問、申し訳ありません。
前スレでも質問したのですが、サーバ、クライアント間での要素の受け渡しについて
質問があります。
中身はVector型なのですが、できればそのまま送受信を行いたいのですができますか。
クライアント側である事柄をできるようにしてまして、別のクライアントが行った処理を
他のクライアント側でも再現したいのです。
自分で考えろ
XMLにしろ
>>5 有難うございます、なんだか解決しそうです。
7 :
デフォルトの名無しさん :2008/12/15(月) 10:50:34
>>6 4、5の回答だけで解決できそうなんて、死ぬほど優秀なプログラマだな。
これだけの指示で作ってくれるなら、SEは、死ぬほど楽できるぜよ
糞スレ終了
>>8 あらら〜
脳味噌が鼻の穴ッぽこから垂れてきちゃったんですか?w
画像に対してgetRGBで得た値をR,G.Bそれぞれの値に変換するにはどうしたらいいのでしょうか? そのままint表示させても負の値が1つ出てしまいます。
>>7 4、5の回答だけで解決できないなんて、死ぬほど馬鹿なプログラマだな。
これだけの指示で作れないなら、SEは、死ぬほど苦労するぜよ
>>10 そのint値を8ビットずつ区切って4つに分けると A, R, G, B になる
ビット操作がよくわからないなら、Colorクラスに放り込んでgetRedとか使えばいいんでないかい
Javaでint型の関数を作るには どの様に記述すれば良いですか?
>>13 protected int retInt() {
return 1;
}
なんでわざわざ protected なのか
17 :
デフォルトの名無しさん :2008/12/16(火) 02:40:44
18 :
デフォルトの名無しさん :2008/12/16(火) 02:45:18
そういや、昔、JavaDeveloperっていう雑誌もあったな・・ あれも結構いい雑誌だったんだけど。
>>10 さん レスありがとうございます。
その方法を試した結果でまた質問させていただきたいのですが、
bmp形式画像をBufferedImage im に読み込み、
int ww = im.getRGB(x,y);
Color c = new Color(ww);
int R = c.getRed(); int G = c.getGreen(); int B = c.getBlue();
としてRGBを求めてるのですが、このRGB値を16進数に変換しsetRGBを用いてbmp画像として出力するとなぜか読み込んだ画像と全く違ってしまいます。
なにか考えられる原因はありますか?
RGB値を16進数に変換するところがバグってるんだと思いますよ
>>21 さん レスありがとうございます
今のところこのようにやっています。
String rr = Integer.toString(R, 16); これをG、Bにも行い、
if(rr.length()<2) rr = "0" + rr; これで値が小さいときに0を追加しています。
rgb = rr + gg + bb; それを3つあわせて1つの文字列にして
int color = Integer.parseInt(rgb, 16);
としてこの値をsetRGB()で書き込んでいます。
どこが間違っているかわかりますか?
特に間違ってるようには見えない・・・が・・・ getRGBの値をそのままsetRGBで書き込んではいかんのか?
なんで、わざわざ文字列に変換してるの? そのまま、intで扱う方が簡単なのに。
>>23 >>24 画像を読み込んでから書き込む前にちょっとRGB値の並び替えをしてるんです。
それでうまくいかないのでその部分をコメント化してやってるんですがうまくいかなかったもので・・・
どうせ Color を使うんなら、 Color c = new Color(r, g, b); im.setRGB(x, y, color.getRGB()); すれば? im.setRGB(x, y, (r << 16) | (g << 8) | b); のほうが簡単だけど。
>>26 さん ありがとうございます。
とりあえずいまやりたい処理なんですが、
例えば2つのピクセルのRGB値を読み込んで、1つ目と2つ目のRの値を入れ替えて画像として出力する。
といったことがしたいんです。そうするとgetRGB()で得た値をそのままsetRGB()はできないんじゃないかと考えて一度文字列に変換しました。
>im.setRGB(x, y, color.getRGB()); これより↓のほうが見たまんまだと思うのは錯覚だな、きっと >im.setRGB(x, y, (r << 16) | (g << 8) | b);
>>20 >>22 ですが解決しました。
レス下さったみなさんありがとうございました。
ワイルドカードとジェネリックメソッドの違いについて悩んでいます。 void func(List<?> a) <T> void func(List<T> a) 上の二つのメソッドは、呼び出す側から見ればほぼ同じだと思うのですが、 この二つはどういうふうに使い分けるべきなのでしょうか?
>>30 funcの中でパラメタ型Tを使うか使わないか。
恐らく初歩的な話だとは思うのですが… FileReader(BufferedReader)にてテキストファイルを読み込んでいるんですが mark(),reset()が今一うまく使えません。mark,reset自体は使えるけど mark(int limit)のlimit値にファイルのサイズを与えると 60MBほどを超えた値を指定した直後にExceptionが発生してしまいます… そもそもlimitの捕らえ方が間違っているのでしょうか?ご教授下さいorz
>>30 実装の詳細が漏れてるだけ
<T> void func(List<T> a)
の方がお下品
>>32 OutOfMemoryError じゃないか?
>>35 その通りでしたorz
となると、巨大なファイルを読み込む際はストリームの現在位置をマークする方法は無いのでしょうか…?
BufferedReaderってオンメモリでやろうとするんじゃね?ストレージ上でやれば良いと思う。
大学の講義で、TCPを使ったメッセージのやりとりを行ったのですが、サンプルで使用したプログラムが納得がいきません。 以下にプログラムの内容を簡単に説明します。 Server側はServerSocketを使用、Client側はSocketを使用。 クライアントは単純にString#getBytes()で取得したデータをそのままストリームに書き出し、サーバー側はそれをバッファリングして受信します。 その読み込みの終了条件が、「例外が起きれば終了」というものでした。 つまり、クライアント側の送信が終了すれば、クライアント側プログラムが終了し、接続相手を失ったサーバーが次にストリームを読み込もうとした際に、例外が発生し終了するというものなのです。 このような処理をネットワークプログラミングでは普通に行うのでしょうか?
ローカルなファイルであれば RandomAccessFile を使うとか。
41 :
デフォルトの名無しさん :2008/12/17(水) 01:25:52
>>38 ソースを見ないと確かなことは言えんけど。
「例外が起きても終了」が正しいんじゃない?
通常は読み取るデータがなくなったら、
終了してしまえばよいわけで。
>>38 クライアントの異常終了に備えて例外をキャッチする必要があるのはもちろん、
普通にストリームがEOFに達した場合も終了とするべきだが、
読み込み方 (使うメソッド) によっては戻り値チェックでなくEOFExceptionを捕まえることになるかもしれない
>>38 普通はこんな馬鹿なやり方はしないでしょ。
たとえばこんな風に実装する。
実際にデータを送信する前に、
データのサイズを知らせるようにする。
クライアント側:
byte[] data = text.getBytes();
outputStream.writeInt(data.length);
outputStream.write(data);
outputStream.close();
サーバ側:
int size = inputStream.readInt();
byte[] data = new byte[size];
inputStream.readFully(data);
inputStream.close();
LinuxにTomcatを入れてJavaEE環境を作っているのですが、 JRE_HOMEという名前の環境変数でJREのパスを指定しないと動かないようです。 この設定は何の意味があるのでしょうか? Tomcatが内部でJRE_HOMEという参照を固定的に持ってるのですか? WindowsでTomcatを動かした時は設定した覚えはないのですが。
>>44 Linux にはいろいろな種類があって、実行ファイルとかを置く場所が種類によって異なったりするんだよ。
>>44 Tomcatを起動するスクリプトで使用している。
このスクリプトはWindowsとLinuxで違う。
詳しくはTomcatのbin以下のテキストファイルを参照。
特に、setclasspath.batかsetclasspath.sh。
Windowsでexe形式のインストーラを使用した場合は、
インストーラがレジストリ見てJAVA_HOMEに相当するパスを
自分で見つけてくれる。だから設定しなくても動く。
詳しくはここ参照。
ttp://tomcat.apache.org/tomcat-6.0-doc/setup.html
Linuxは何かと面倒です。Windowsマンセーです。
javaの基礎知識だけで作れるオススメプログラム何かないですか? 学校の課題では在庫管理プログラムを作るよう言われて作りましたが今一面白みがないので…
Swing使えればwebブラウザも作れるな
51 :
デフォルトの名無しさん :2008/12/17(水) 16:19:36
得ろ画像ビューワだろ(´・ω・`)
エロ画像かどうかは画像解析技術が必要だ。 なにモザイクがあるかどうか判別すればいい。
53 :
デフォルトの名無しさん :2008/12/17(水) 16:45:17
お前はモザイクがあるエロ画像しかみたことないのか
そんな餌で釣られるクマーry
この時期になると思い出すんだが、俺が子供のころ、 タンスの中をあさってたらなぜか俺が欲しかったおもちゃを箱付き新品で発見したんだよ。 おかしいなと思いつつ、親に聞いたら驚いたような顔をして「親戚の子にあげるつもりだった物だから」と 何度も言ってた。そのおもちゃがどういう意味を持つのか、俺が気づいたのは成長してからだったんだ。 ちゃんと隠しておいてくれよ、と思う。
56 :
デフォルトの名無しさん :2008/12/17(水) 20:39:50
Pleiades All in Oneつうのを落としたんですけど 「Eclipse 本体と便利なプラグインのセットです。」と書いてるんですが本体が入って無いんですけど そういうものなんでしょうか?
57 :
44 :2008/12/17(水) 20:49:38
>>45 >>46 お礼遅くなりましたがありがとうございました。
奥深いなぁ。windowsが内部でそんなことしてるとは知りませんでした。
というかそんな知識どうやって得るんでしょうかね。。ネットでも見ないし。
ど素人からこの業界に入った高卒の自分には限界があるんですかね。
低学歴でも出来る人はいるけど 心の中では見下してるかなやっぱり 中卒とか高卒は問題外で 正直言えば同じ立場で仕事するのも抵抗がある
と無能がほざいてますw
>>37 >>39 RandamAccessFileを利用して無事動作させることが出来ました。
ありがとうございます!
>>57 さすがにjava以前にOSから勉強した方が良い
このM野郎 ほんとにいいソフト作ったな
>>57 PCさわりはじめて半年でカーネルハッカーになった高校生なんてのもいるんだ。学歴は関係ない。
知っていることが重要なんじゃなくて、どうやったら目的の情報にたどり着けるかが重要。
付属のやオフィシャルサイトのドキュメントは情報の宝庫だ。せめて目次くらいは一通り眺めろ。
設定ファイルにも「こういうときはこう設定する」という情報がコメントアウトで記載されてることがよくあるから参考にしろ。
ぐぐるときも、通りいっぺんのキーワードじゃなくて、付属ドキュメントに書いてあるキーワードを使えば目的の情報にたどり着ける可能性が上がる。
最後の手段はソースコードだ。Javaなら、クラス名を眺めるだけでも何処で何やってるのかなんとなくわかることもある。
健闘を祈る。
すいません、1週間悩んで解決しないので助言をお願いします。 現在JFreeChartを用いて、時系列グラフを作成しています。 X軸の表示方式をMM/dd形式にして出力しようとしています。 表示範囲を10/10〜12/10とした場合、 X軸の項目として10/10,11/10,12/10と出力してほしいのですが、 現在11/1,12/1と表示されています。 DateTickUnitクラスを利用して、間隔を制御できるという記事を見かけたので 間隔を31日に設定してみましたが、表示内容は変わらずじまいでした。 JFreeChartではこのような表現は不可能なのでしょうか。 ご教授いただけましたら幸いです。 //-- 以下ソースより抜粋 DateAxis dateaxis = new DateAxis(); dateaxis.setRange(startYmd, endYmd); dateaxis.setDateFormatOverride(new SimpleDateFormt("MM/dd")); dateaxis.setAutoRange(false); int range = 31; int DayRange = DateTickUnit.DAY; DateTickUnit unit = new DateTickUnit(DayRange, range); dateaxis.setTickUnit(unit);
すみません、質問です。 ProcessBuilderで子プロセス(Notepadなどのエディタ)を起動して そのエディタが非アクティブになった時に、親プロセスから操作して アクティブに戻すことはできるのでしょうか?
java.awt.Robot使うとか?
>>66 Robotを使う方法では
Alt + Tabを自動で押すと言う方法しか思い浮かばず、
親プロセスと子プロセスの間にアクティブなウインドウが入ってしまうと
そちらに切り替わってしまうんです。
子プロセスのエディタが最小化されてても、それを指定してアクティブにすると言う方法は
ないでしょうか?
低学歴だから低能、とは思わないが、
>>46 が情報ソースとしてURL示しているのに
「ネットでも見ない」とほざく
>>44 は低能に違いない。
高卒なのにすごいやつ知ってる それは俺
70 :
デフォルトの名無しさん :2008/12/18(木) 09:03:44
なら大学も入れたはずじゃね?w
質問ー urlのリストをデータベース(mysql)に入れて、status=0に全セット a)urlでstatus=0のものを読み込む b)urlのstatus=2にする c)urlにgetでアクセスして内容を取ってくる d)c)の結果をデータベースに保存 e)urlのstatus=1にする というjavaコマンドラインのプログラムを作ってみて、 複数窓を立ち上げて同時に動かしたら 見事に全部が同じurlにアクセスして、 しかも読み込みタイミングが全く同時なんだけど どうして? なにか思いつく人教えてー 100%staticではないんだけど、、、 ロックもどきが動作していないのか どっかでデータが共有されて同じ内容を実行してしまっているのか・・・ ソースはでかすぎてのせるの大変だけど ソースレベルでみないと分からない漢字でしょうか
URL取得するときにselect for updateでロックかけたらいいんじゃね?
73 :
デフォルトの名無しさん :2008/12/18(木) 11:26:47
かなりの初心者ですがお願いします。 最近サクサクみていた動画共有サイトがあるのですが 突然先週末くらいから「インターネットサイト○○は開けません。操作は中断されました」 というエラーが出るようになり見れなくなりました。 使ってるブラウザはIE6なのですが、firefoxをインストールしたら、それでは見れました。 (でも重いので削除してIE6に戻したのですが・・) いろいろ調べて試行錯誤してみると、javascriptをオフにすると見れるようになったんです。 でも先週まではオフにしなくても見れたのに何故でしょうか。 また、ダウンロードの時間も長くなりました。原因は何ですか?
スレ違い、WEB板いけ
>>73 その動画共有サイトはFirefoxでしかテストしてないのです。
Firefoxを使いましょう。
Fileクラスについて質問させてください。 Eclipseでプロジェクト作成してその中のsrcディレクトリに javaファイルを作成してソースを書いています。 File file = new File("data.txt"); として同じsrcディレクトリにあるdata.txtファイルを 読み込んでfileを扱いたいのですが、 java.io.FileNotFoundException: data.txt (指定されたファイルが見つかりません。) とエラーが出てしまいます。 System.out.println(file.exists());を実行するとfalseになるので ファイルが見つかっていないようです。 しかしEclipseのworkspaceのパスを完全パスで指定すると上手くいきます。 Eclipseで相対パスを指定すると何か問題があるのでしょうか? ちなみにJavaSE環境です。 よろしくお願いします。
>>76 File file = new File("src", "data.txt");
System.out.println(System.getProperty("user.dir"));
System.out.println(file.getAbsoluteFile());
File file = new File("./data.txt");
81 :
76 :2008/12/18(木) 13:22:29
たくさんのレスありがとうございます。 File file = new File("src, "data.txt"); で出来ました。 System.out.println(System.getProperty("user.dir")); とすると workspace/ブロジェクト名 が出力されますね。 つまりuser.dirというのが相対パスの起点?になってるのかな。 File file = new File("src/data.txt"); としてもOKでした。 しかし、 File file = new File("./data.txt"); とすると .をカレントディレクトリと認識できずにパス名の中に「.」という文字のまま セットされて駄目でした。 勉強になりました。ありがとうございました。
82 :
64 :2008/12/18(木) 15:06:58
すいません、どなたか助言を頂けないでしょうか・・・ できない仕様ならば早急に対処しないと、無駄な工数がかかってしまいます。 厚かましいとは思いますが、よろしくお願いします。
うちの下流工程でなけりゃ無駄な工数大いに結構、だそうですw
Max/MSPでVST作成
85 :
デフォルトの名無しさん :2008/12/18(木) 17:49:43
近所のおばさんが、色目を使ってきます。困っています。僕は23で、相手は40くらいです。
AppletのgetImage()で質問です。 JDK/JRE1.6では問題なかったのですが、1.4.2にすると 4bitカラーのPNGの色が化けてしまいます。 この組み合わせで正しく描画出来た方いらっしゃいますか? 1bitや8bitでは問題無いみたいです。
標準出力で $>java hoge ............Loaded ○○% みたいなメッセージ出してる時の ○○の部分だけ増加させるのってどうやったらいいですか? System.out.println()だと無駄に行数が増える。
>>87 "\r" とか使う。
System.out.print("foo");
Thread.sleep(1000);
System.out.print("\rbar");
を試してみな。
>>86 よくあることだよ。
新しいバージョンのJREでバグが直ったと思ったら
今度は別の形式の画像ロードにバグが入ってたり。
ImageIO と Toolkit を使い分けるといい。
JPanel上で、drawString()を用いて文字を描く際に縦書きは出来ますか?また、フォントの大きさを変えることはできますか?
>>91 できるよ。
java.awt.Graphics,Graphics2Dのjavadoc読め。
あとJava2Dも調べればよし。
実際会社とかでソフトウェアの開発するならJavaとCどっちが多用されますか?
その会社がどういうものを作ってるかによるな。 その前にJavaスレでその質問をすることが適当かどうか考えような。
>>89 ありがとうございます。ImageIOで解決しました。
しかし、画像の一部を90度回転させるのにAffineTransform.rotate()
を使っていたのですが、JRE1.4.2だとオフセットがずれてる…泣きそう。
quadrantRotateは1.6からのメソッドだし…
旧バージョンのJavaにも対応って、そもそも無理なんでしょうか?
PG暦4年だけどC言語使う仕事なんて未だに1度も出会ったこと無いなー メインはJavaとPHPとRubyぐらいかな まぁ24歳で初心者から中途入社した下っ端PGですがね
>>82 >JFreeChartではこのような表現は不可能なのでしょうか。
半年前にいじった時は可能だった
やり方詳細はもう忘れたので自分で調べてちょ
98 :
91 :2008/12/19(金) 01:55:10
>>92 回答有難うございます。
フォントサイズの方は、
fontSize = this.getFont().getSize2D();
this.setFont(this.getFont().deriveFont((float)(fontSize * 1.5)));
の様にして変えることが出来ました。
ただ、目的の文字列を描画した後
this.setFont(this.getFont().deriveFont(fontSize));
としてもフォントサイズが戻りません。何故なのでしょうか。
縦書きの方はさっぱり分かりません。
affine2 = affine = this.getFont().getTransform();
affine2.rotate(-AffineTransform.TYPE_QUADRANT_ROTATION);
this.setFont(this.getFont().deriveFont(affine2));
g2.drawString();
this.setFont(this.getFont().deriveFont(affine));
ってしたら・・・文字がクルクル回りだしましたorz
99 :
91 :2008/12/19(金) 02:02:12
シャローコピーじゃ駄目ですよね。 affine = this.getFont().getTransform(); affine2 = (AffineTransform)affine.clone(); としてみましたが、回らなくなっただけで縦にはならず・・・。
縦書きならSwing Hacksに載ってるな。
>>91 縦書きって、日本語のような縦書き?
それとも、横書きを90または-90度回転するって意味?
98,99でやってることからは、後者のように見えるけど。
FontにAffineTransformを適用してもいいけど、
Graphics2DにAffineTransformを適用した方が簡単だと思う。
試行錯誤も大事だけど、Java2Dの資料を一通り読んでから試行錯誤したほうが効率いいと思うよ。
3つしか番号を登録していないさびしい携帯に、登録している番号からかけてくるか 否かをコマンドライン引数で判断するプログラムですが、うまくデバッグできません。 ご教授頂ければ幸いです。 ソースは下記です。 class keitai { public static void main ( char args[] ) { char[] num = new char [ 3 ]; num[0] = "09012345678"; num[1] = "09023456789"; num[2] = "08012345678"; for (char i = 1; i <= 3; i++) num[i] = args[i]; } }
103 :
102 :2008/12/19(金) 21:23:45
エラーは下記です。 C:\java>javac keitai.java keitai.java:5: 互換性のない型 検出値 : java.lang.String 期待値 : char num[0] = "09012345678"; ^ keitai.java:6: 互換性のない型 検出値 : java.lang.String 期待値 : char num[1] = "09023456789"; ^ keitai.java:7: 互換性のない型 検出値 : java.lang.String 期待値 : char num[2] = "08012345678"
つっこみどころが多すぎるw とりあえず、argsんとこはString[]に変えて、Setでも使ったほうがいいんじゃない? Set<String> set = new HashSet<String>(); set.add("09012345678"); set.add("09023456789"); set.add("08012345678"); if(set.contains(args[0]){ System.out.println("登録されてます。"); }else{ System.out.println("登録されてません。><"); }
105 :
デフォルトの名無しさん :2008/12/19(金) 23:52:08
vista64の環境でtomcatを使ったwebアプリの開発したいのですが 64bit対応のtomcatのインストーラが見つかりません。 アドバイスいただけると助かります。
>>105 zipを好きなところに展開すればいいやん。
Tomcat自体はJavaアプリだから、32bitも64bitも関係ない。
107 :
デフォルトの名無しさん :2008/12/20(土) 00:59:35
javaで小さめのWEB開発をしてるのですが、 お客さんに改竄対応はどうしてるの?と、聞かれて、 実はたいして何もやってないのですが、 どんな対応を入れるのが良いのでしょうか? XSSだのSQLインジェクションはフレームワークで何とかなると思ってて、 更新系の処理の場合はトランザクションのトークンチェックを入れてます。 (更新画面→更新完了画面以外は、ブラウザ戻るボタンとか自由) 改竄って意味が、例えば表示したJSPというかHTMLを、 クライアントが保存して値を書き換えてpostされても大丈夫? みたいなことだと思っています。 今のところ、クライアント上(HTMLやJS)で制御している処理については、 ちゃんとサーバーでも確認させる。 例えば無効化(disabled)にしてるから押せないから処理が動かないではなく、 無効化させる判定をサーバー側でも再度確認してから処理を実行。 ってなのぐらいしか浮かんでないのですが、アドバイスが欲しいです。
108 :
91 :2008/12/20(土) 01:18:55
>>101 後者です。縦書きではないですね、スミマセン。
出来ました。有難うございます。
>>107 よくニュースなどに出てくるウェブページ改竄クラックは、SQLインジェ
クションが多いみたいだね。SQLインジェクションがフレームワークを使
うだけで防げるかどうかはフレームワークしだい。
たぶんJavaに依存しない話で、板違いだと思われる。
110 :
デフォルトの名無しさん :2008/12/20(土) 02:38:42
>>107 XSSとSQLインジェクションが無効であることをきっちり確認して、
>今のところ、クライアント上(HTMLやJS)で制御している処理については、
>ちゃんとサーバーでも確認させる。
>例えば無効化(disabled)にしてるから押せないから処理が動かないではなく、
>無効化させる判定をサーバー側でも再度確認してから処理を実行。
がきちんとできてれば問題ないんじゃない?
で、お客さんにこういう対応しています。
大丈夫です。って資料作って言えばいいと思うよ。
111 :
108 :2008/12/20(土) 08:28:45
>>109 フレームワークと書いたけど、それだけじゃ無理かな。
プロ(?)の攻撃と同じような確認はできないですけど、
シングルコーテーション入れたりしながらチェックしてみます。
そして板についても考えたのですが、
あまりよいのが見つからなくてjavaにしちゃいました。すいません。
>>110 どうもありがとうございます。
上でも書いたのですが、もう少しチェックをちゃんとやってみます。
お客さんに聞かれたときにすんなり答えていれば、
余計な資料作成とかで時間取られないで済んでいたのになと、
後悔しています。
あまりjavaのWEB開発の経験がないのですが、セキュリティ対策って難しいですね。
散々言われてるだろうけど、ダブルポストやらブラウザの戻る制御や、
URL直打ち(予定外の遷移)やら、XSSにSQLインジェクションやら、
考えることばかりでびっくりしました。
112 :
109 :2008/12/20(土) 08:29:36
>>111 お金はかかるけど専門の会社に頼んだほうがいいよ
イントラならどうでもいいけど
114 :
デフォルトの名無しさん :2008/12/20(土) 18:57:19
わてが、Javaやってたとき(あれから5,6年になるかな・・・) あんなときはJSPやServeltが動けばいいって時代で一生懸命Web+DBPressとかJavaWorldとか 本買いあさって開発してたなあ。Webアプリのセキュリティなんてなんもいわれんかった時代じゃ。 あの頃開発したのは、どうなっとるんじゃろ?
115 :
102 :2008/12/20(土) 20:52:42
>>104 即レス有難うございます。
見慣れない言葉の連発なので、自分でできる限り調べてから、またレスさせてください。
素数のプログラムを高速化をしたいのですがヒントを教えてください。 import java.io.*; public class Sample12 { public static void main(String []args)throws IOException { System.out.println("2以上の整数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); for(int i=2; i<=num; i++){ if(i == num){ System.out.println(num +"は素数です。"); } else if(num % i==0){ System.out.println(num+"は素数ではありません。"); break; } } } }
>>116 とりあえず、numまで調べず、√numまででいい。
ファイル入出力に関して質問させてください。 テキストファイルに文字を書き込みたいのですが、 例えば 『あいうえおさしすせそたちつてと』 というテキストファイルの文章があるとして、「お」の後の位置に「かきくけこ」を加えて 『あいうえおかきくけこさしすせそたちつてと』 としたいのです。 しかし、RandomAccessFileのwriteメソッドを使うと 『あいうえおかきくけこたちつてと』 となり、元からあった「さしすせそ」が潰れてしまいます。 元々の文字を潰さずに文字を追加する方法は何か無いのでしょうか。
>>117 と言うと問題はこれですね、
for(int i=2; i<=num; i++){
if(i == num){
System.out.println(num +"は素数です。");
}
else if(num % i==0){
System.out.println(num+"は素数ではありません。");
break;
}
}
}
}
for文を使わないで書く事も考えたんですけど
流石に厳しかったです(汗
>>116 if(num % 2 == 0){
System.out.println(num+"は素数ではありません。");
}
boolean isComp = false;
for(int i = 3; i <= (int)Math.sqrt(num); i += 2){
if(num % i == 0){
ifComp = true;
break;
}
}
if(isComp){
System.out.println(num+"は素数ではありません。");
}else{
System.out.println(num +"は素数です。");
}
>>120 有難う御座います、
120さんのコードを参考にまた他のも考えてみます。
素数の高速化って本当に奥が深いですね…
トリップ生成器を作ろうと思うんですが Javaにcrypt(3)相当のAPIはありますか?
124 :
122 :2008/12/20(土) 22:45:48
>>123 それっぽいAPIが見当たらないです。。
>>118 単純な方法はないと思う。
「さしすせそ」以降のデータを全て後にずらしてから
「かきくけこ」を書き込むとか、
地道なことをやる必要がある。
質問です。 下記のプログラムを実行したのですが、a = 5 b = 4と返されます if(b == 2){ break; ここの部分で b = 2 の時処理が止まらないのはなぜですか? よく処理がわからないので解説お願いします。 class Sample { public static void main(String arge[]){ int a = 0; int b = 0; for( ; a < 5; a++) { if(a < 2){ continue; } b++; while(b < 3){ b++; if(b == 2){ break; } } } System.out.println("a = " + a + " b = " + b); } }
>126 一つ上の繰り返し構造を抜けるだけなので。 Label使う? それとも、キチンとメソッドに分ける?
「Hello world」の段階で悩んでるので教えてください。 public class sample1 { public static void main(String[] args) { System.out.println("hello world"); } } ↑をコンパイルしたらclassファイルは出来たのですが 実行できませんでした。何がダメなのかよろしくお願いします。 下記がコマンドプロンプトの結果です。バージョンは jdk1.6.0_11です。 C:\sample>javac sample1.java C:\sample>java sample1 Exception in thread "main" java.lang.NoClassDefFoundError: sample1 Caused by: java.lang.ClassNotFoundException: sample1 at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) Could not find the main class: sample1. Program will exit.
>>127 即レスありがとうございます。
試験勉強で入れ子の構造を理解しようとしてます。
まだアルゴリズムが完全に理解してないのでまず処理の見方とか
ご教授していただければありがたいです
130 :
128 :2008/12/21(日) 00:36:36
hello world すらできないって質問した者です。 半分解決しました。 java -classpath . sample1 これでhello worldが表示されたのですが これのクラスパス変数設定を変える方法がわからないので、おしえてください
>>129 甘えたりしないで教科書でちゃんと勉強してからにしてくれ。
132 :
デフォルトの名無しさん :2008/12/21(日) 05:57:08
ポリモフィズムを理解するための課題が出てAppletのpaintをオーバーライド して線を引くプログラムを書こうとしたのですがうまくいきません。まず import java.applet.Applet; import java.awt.Graphics; public class AppLine extends Applet{ public void paint(Graphics g) { g.drawLine(10, 10, 100, 100); } } と書いてAppletを継承したAppLineクラスを作成して、(これはコンパイルできました) import java.applet.Applet; import java.awt.Graphics; public class AppletMain{ public static void main(String[] args){ Applet applet1; applet1 = new AppLine(); applet1.paint(); } } と書いてコンパイルするとシンボルを見つけられません。と メソッドpaint()がおかしいという趣旨のエラーがでます。 よろしくお願いします。
どこにつっこめばいいんだ?
>>118 ファイルの途中にデータを挿入する方法は無い。
挿入したい場所以降を全部読み出して、挿入した結果で上書きしないといけない。
>>130 インストール時に環境変数CLASSPATHを設定したりしてないか?
ポリモフィズムは難しいからね。まずはエラーどおりpaint1()を疑ってみれば?
137 :
118 :2008/12/21(日) 12:00:46
javaの問題じゃないだろ
直列化についての質問なんですが 作成したクラスに Serializableを実装することで 作成したインスタンスをObjectOutoutStreamなどで保存、読み込みできるのは理解したのですが 同じ型のクラスの配列を作成し、その配列にインスタンスを複数代入した場合 この配列をどのようにしたら保存、読み込みできるのでしょうか
>>137 javaの問題じゃない。一般的なOS(WindowsとかLinux等のUNIX系OSとか)で使われるファイルシステムの原理的な制約だから、プログラミング言語を問わず同じこと。
メインフレーム系OSのファイルシステムならそういうことはできるかもしれんけど、個人で使う機会はまずない。
ファイルへのデータの挿入やそれに対するRandomAccessFileの使用は散々釣り餌に使われてきた 最後にやっぱりjavaは不便ですねで締めるのも一緒
142 :
デフォルトの名無しさん :2008/12/21(日) 12:59:52
>>136 132です
そうなんですよ。でもpaint()だけじゃなくて適当な変数をAppLine
クラスに加えて、インスタンスを介して利用しようとしてもエラーが
出るので...
java上級者の方が上のソースを見ておかしな所って無いんでしょうか?
てか論外なやり方をしてるから誰も答えてくれないんでしょうか??
ポリモフィズムは難しいしこれからJavaについていくにはデザインパターンも勉強しなくちゃいけない。
144 :
デフォルトの名無しさん :2008/12/21(日) 13:44:12
今読んでいる本で List<TShohin> shohins = q.getRssultList(); というコードがあるのですが、単語を<>で囲むとどういう意味があるんですか。
とりあえず目立つという効果がある
>>142 Appletを継承したんならmainなんて要らんだろ
エントリはinitだったか?
想像で勝手に試行錯誤するんじゃなくて、まず
Applet+作成+入門とかでググったら?
>>144 マジレスしてあげると最近のjavaで入った記法
Tshohinのリストになる、Objectじゃなく
ここで聞いていいのか分からないんですが・・・ eclipseを使ったiアプリですが、パッケージの使い方を 教えてください。 asciiの本に掲載されていたScratchPad上に簡易ファイルシステムを 構築するためのパッケージがあって、本にはソールフォルダの中に パッケージのフォルダ(spfs)を置くだけって記述があるんですが、 eclipseで使う場合、何らかの登録が必要だと思うんです。 どうやればいいんでしょうか?
150 :
デフォルトの名無しさん :2008/12/21(日) 14:42:32
>>146 Appletを継承したAppLineクラスを他のクラスで実行するにはどうしたら
いいでしょうか?
AppLine単独で実行すれば直線が引けることは解っています。
ググって調べても単独のクラスで実行するやり方しか載っていません
2,3日待ってれば答えてくれる人があわられるかもしれない。そう焦るな。
152 :
デフォルトの名無しさん :2008/12/21(日) 14:59:25
>>150 アプレットを継承したクラスを他のアプレットから継承したクラスから使うと
アプレットを2つも定義する事になるので、PCがバグルからそんなことはできない。
普通は、アプレットクラス(もしくはアプレットの継承クラス)から使うくらすは
単なるクラスで作成して、アプレットクラスを継承しない。
153 :
デフォルトの名無しさん :2008/12/21(日) 15:03:16
あーこの人か↓ ちょっと待ってる。解答書いてやる。 ポリモフィズムを理解するための課題が出てAppletのpaintをオーバーライド して線を引くプログラムを書こうとしたのですがうまくいきません。まず import java.applet.Applet; import java.awt.Graphics; public class AppLine extends Applet{ public void paint(Graphics g) { g.drawLine(10, 10, 100, 100); } } と書いてAppletを継承したAppLineクラスを作成して、(これはコンパイルできました) import java.applet.Applet; import java.awt.Graphics; public class AppletMain{ public static void main(String[] args){ Applet applet1; applet1 = new AppLine(); applet1.paint(); } } と書いてコンパイルするとシンボルを見つけられません。と メソッドpaint()がおかしいという趣旨のエラーがでます。 よろしくお願いします。
うんこうんこー
155 :
デフォルトの名無しさん :2008/12/21(日) 15:11:39
>>132 >>135 まず普通のコンソールアプリやGUIアプリはエントリポイント(アプリケーションの開始ポイント)が
メインメソッドって言う事になってて、そこで色々なメソッド呼び出して処理をする。Applet(サーブレットも)みたいな特殊な環境で動くプログラムは
メインメソッドでなくそのクラス特有のメソッドから始まる事になってる。正確に言うと動き出すのはその動作環境上で初期化したらあるメソッドが呼ばれることに
なっている。appletだとinitメソッドになってる。で、再描画が必要なときには
paintが呼び出されて、終わるときはdestroyが呼び出されるようになってる。だから、Appletを継承したクラスは
そこに指示をかけばいい。で、Appletを継承したクラスからAppletを継承したクラスを呼び出すと
これらの必須メソッドがダブることになるから、うまくいかない。Appletを継承したクラスはひとつでいいんだ。
で、君のやりたい事をやろうとするソースは次レスにのせる。
Macbookを買ったんですけど、 コンパイラ(JDKとか)はどの様に入れれば良いですか?
157 :
155 :2008/12/21(日) 15:29:17
まず簡単なほうのソースのせるね import java.awt.Graphics; public class AppLine { public static void drawLine(Graphics g) { g.drawLine(10, 10, 100, 100); } } import java.applet.Applet; import java.awt.Graphics; public class AppletMain extends Applet { public void paint(Graphics g) { AppLine.drawLine(g); } } staticっていうのが付くメソッドはインスタンス化しなくても呼び出せるからメモリの節約になるから 普通はこうやってかく。
158 :
155 :2008/12/21(日) 15:32:48
で、君(
>>132 )がやりたいというか初心者にわかりやすいのは、こっち↓。
import java.applet.Applet;
import java.awt.Graphics;
public class AppletMain extends Applet {
public void paint(Graphics g) {
AppLine appLine = new AppLine();
appLine.drawLine(g);
}
}
import java.awt.Graphics;
public class AppLine {
public void drawLine(Graphics g) {
g.drawLine(10, 10, 100, 100);
}
}
ふ〜、Appletは久しぶりぶりだから、つかれちゃったよ★
159 :
デフォルトの名無しさん :2008/12/21(日) 15:36:32
160 :
デフォルトの名無しさん :2008/12/21(日) 15:54:44
AppletMain が Applet を継承してるなんて質問者は書いてないと思うんだが。 アプレットをアプリとしても実行できるようにする程度のことだろ。
162 :
デフォルトの名無しさん :2008/12/21(日) 16:26:07
教科書読んでない奴はなにやっても無能
そもそも読んでないなら無能以前の問題じゃね?
164 :
デフォルトの名無しさん :2008/12/21(日) 17:19:01
Appletをメインから実行するのは無理だろ。。 System.runだったけか?あれでappletviewerで動かすならいいけど。
165 :
デフォルトの名無しさん :2008/12/21(日) 17:27:05
>>158 158さん丁寧にありがとうございます。
AppLine以外にAppRectを用意した時にポリモフィズムを利用して
効率的に実行用のmainクラスでAppLineとAppRectを実行したいんですが..
paintメソッドをオーバーライドしたいです
(見た目は同じpaintだけど中身は違うぜみたいな)
そろそろ怒られそうですね(^^;)
ド素人ですみませんm(__)m
AppletからJavaをはじめるのはいいことだ。Javaが普及したのはAppletでJavaの機能を世に知らしめたからだし、後続のflashとかもアプレットの猿まねっ子に過ぎない。
なあポリモーフィズムはそもそも詰まる所、動的バインディングの事で サブクラス化してオーバーライドするのは直接的にはポリモーフィズム関係ないと思うんだが? C++だと動的バインディングないから仮想関数で、 javaなら動的バインディングあるからオーバーライドすればいいだけってだけでさ。 概念とそれを実現する言語仕様は違うぞ。 概念はすでに習っててやってるんだよな? 概念理解してないならお勉強し直せってところまで戻るぞ。
オーバーライドは直接ポリモーフィズム関係ないんじゃなくて、大いに関係ある。 オブジェクトにメッセージを送信する側から見れば、同じメッセージでも各オブジェクトによって挙動が違うだろ。 Cのvtableとかも分からないでもないが、おまえの方こそ勉強しなおしなんじゃないか? オブジェクト指向の教科書読んでもどうせちんちんぷいぷいなんだろw
169 :
デフォルトの名無しさん :2008/12/21(日) 19:00:28
この流れはC++ vs smalltalkになるな。
同じメッセージでも各オブジェクトによって挙動が違うならば それは、オーバーライドなのです。
そうなんです。お勉強し直しに戻るべきなんです。
173 :
デフォルトの名無しさん :2008/12/21(日) 19:54:26
mainメソッドは普通のアプリケーション用。
アプレットは普通のアプリケーションでない。
だから、mainメソッドをもったアプレットというのはかけない。
アプレットで色々実装したいなら、
>>158 のクラスでこういう風に宣言すればいい。
import java.awt.Graphics;
public class AppLine {
public void drawLine(Graphics g) {
g.drawLine(10, 10, 100, 100);
}
public void drawRect(Graphics g) {
g.drawRect(10, 10, 100, 100);
}
public void drawLineRect(Graphics g) {
g.drawLine(10, 10, 100, 100);
g.drawRect(10, 10, 100, 100);
}
174 :
デフォルトの名無しさん :2008/12/21(日) 20:03:02
なんでもいいけど、Javaってなんでインスコしたときに環境変数の設定やってくれないんだろう。 まあ、あとあと考えると環境変数の勉強になったわっておもうけど。 Perlとかだとかってに設定してくれるよね。
175 :
デフォルトの名無しさん :2008/12/21(日) 20:25:34
perl死ね
>>174 Javaの環境変数は勝手にやってくれるOSもあるんじゃまいか?
おいらは、環境変数の設定はした覚えがない
int型の負の表現でjavaでは32ビット目をサインビットとするとは仕様には書いてないって聞いたんですが本当なんですか?
>>173 これではメソッドを自分で選択しているにすぎないんじゃないかな。
ポリモーフィズムができてないかもね
int でサインビットとな
Appletの paint をオーバライドして、ポリモーフィズムを説明しろ って、難しいな。 プログラムを示すだけではなく、どうしてそうなるかを 言葉で補足説明しないと完全にならないな。
intは32ビットのサイズがあって、その負数は32ビット目で管理することってのはJava言語仕様だよ。
>>182 ビット位置って一般的に0オリジンなんじゃ?
あの C 言語ですら、負数の場合最上位ビットが立ってる必要があるからな。
>>184 逆じゃないの?
Cはどんなマシンで動いてもいいから、負数の表現はマシン依存。
JavaはJavaVMの仕様だから、一般的な2の補数表現で統一できる。
携帯から失礼します 今ウィンドウ型アプリケーションを作ってます で、@ボタン1を押すと指定した数だけ画面にランダムに点を描画 Aボタン2を押すとその点を昇順に並べ替えて描画 って感じなんですが、 ボタン2をおすと@で描いた点がいったん消えて 更地に描画されていってしまうんです @の点を残しつつAの点を描画する事は出来ますかね? 教えてください
super.paint(g)とか呼び出してるんじゃない? それだけだとなんともいえねー
>>185 C言語では、
負数が2の補数表現でなくても良いが、
負数の最上位ビットは1でなくてはいけない。
初めまして。1つ質問させていただけrたらと思います。 【質問】 DBアクセス用クラスを作成しようと思いまして、 private static final String DATA_SOURCE_KEY = Globals.DATA_SOURCE_KEY; とコーディングし、import org.apache.struts.Globals;とインポートしたところ、 Globals.DATA_SOURCE_KEY を解決できません とエラーが発生してしまいました。 この、解決方法、または代替方法をご教授願えればと思います。 【開発環境】 Eclipse3.4 JDK1.6.0_11 Struts 1.3.10 Struts 2.0.14 【DATA_SOURCE_KEYの使用方法】 後に、setAttributeかgetAttributeで用いようと思っております。 以上です。よろしくお願いいたします。
>>188 それで肝心のJavaではどうなってるんですか?
>>177 そういう表現はしてないから、間違ってるとは言えない
192 :
デフォルトの名無しさん :2008/12/22(月) 00:43:47
なあ、みんな。俺いいこと考えたんだ。 JavaのGUI関係をフレームワークみたいに作って、VB6そっくりのGUI構築にしてやろうとおもうんだ。 売れるかな?
>>192 よほどの完成度じゃなきゃ売れないだろ
当たり前だが
>>192 なぜVB6?
2008では駄目なのか?
VB6からいまだに脱却できないようなやつはまだいるのか。
それってNetBeansのことじゃないか? ところで、VB6そっくりのGUI構築ってなんのこと
>>191 するとよく見かける val>
>>31 でサインビットを確認するのは環境依存でJavaとしては将来的にヤバイんじゃないでしょうか?
そうです。Javaの仕様書には、 Javaを使い続けても核戦争は起きないとは書かれていません。 大変危険なので、今すぐ辞めましょう。
>>200 なんだ。これのことだったんですね。ありがとうございます。
sunのライセンスに従えば出来る
さっぱり初心者なんだけどtable[i]とかってなに?? JTable = new JTable(); だけじゃ使えないの??
これはひどい。
>>204 入門書の、配列の解説を熟読。
らじゃー! いってきまーす!
Javaで作られた商用ソフトは探せば腐るほど出てくるよ
GPLか何かと勘違いをしてるのかね。
>>204 [i]
[]←は配列を表す
配列とは値のリスト化である
すなわち・・・
[3]としたとき
あ、配列数は0から数えるので
[0][1][2]と3つの変数格納場所が生成されるんだよ
んで、まぁファックユー
あとは自分で調べようぜ
つまり[i]こうきたら i=1;ならiには1が入る つまり配列には[0]と[1]があるという意味になる 実用的にすると・・・ ループ処理のときとかだ for[i]
>>204 あとJTable = new JTable();って、変数名がないな
変数名が無いとオブジェクトが生成されないので
正しくは JTable aaaa = new JTable();とか書くよ
(↑オブジェクト名を書く)
212 :
202 :2008/12/22(月) 19:25:16
>>203 >>207 レス、ありがとうございます。
今までCの標準で付いているstdio.hのような感覚で、
Javaも標準で付いているjava.mathなどを、当たり前のようにインポートしたり、
ライセンスに関して特に気にしていませんでしたが、
ですが、最近「JDKを使用して作ったプログラムは商用利用できない」
という記述を見つけたので、ライセンスのことが気になっていました。
Cの場合は最初から付いているstdioやmathなどならインクルードして
コンパイルして作ったソフトとか、自由なライセンスで配布できるのですが。
JavaではVMというちょっと特殊な形をとっているので、
ライセンスを考える前に、SUNのライセンスに従わないといけないんですね。
>>192 VB感覚でコンポーネントくっつけるのは面白いが
はっきり言って大したプログラムでもないな
擬似コードは俺がつくってやる
実装はおまえだ
//コンポーネントアイコンをクリックするとコンポーネント作成モードになる
if ボタン ここからここまでの大きさでボタンつくるよ
if テキスト ここからここまでテキスト(ry
ほら、できた
ゲームプログラマになるにはjavaとCどっちをやればいいですか。
>>214 Javaはゲーム作成用のライブラリがこれといってないよ
CはDirectXとかあるんでオススメだよ
とりあえずCやりましょう
だからここはjavaスレだと何度(ry
217 :
202 :2008/12/22(月) 19:38:20
追記。
あれから、JavaのライセンスはSCSLということが分かりました。
http://e-words.jp/w/SCSL.html >自社製品にJava 2(またはその派生物)を組み込んで販売し、
>利益をあげるような場合には、利益に応じたライセンス料を支払う必要がある
という感じなので、JARとかを配布する時にシェアウェアにするという形なら
特にライセンス料払わなくていいことが分かりました。ありがとうござました。m(_ _)m
>>217 JDKのディレクトリ内にライセンス書が転がってるから探せ
>>217 それは「ビルドするとJDK作れるソースコード」を再配布する際のライセンス。
222 :
202 :2008/12/22(月) 21:56:10
JDKのLICENSEを適当に機械翻訳で読んでました。
多分JDKのLICENSEの方には、Javaのソースコードと、
Javaのコンパイラなどのバイナリファイルについてのライセンスは書いてあり、
それをインポートした時はどうなるか等は見つかりませんでした。
>
ttp://www.sun.com/software/opensource/java/faq.jsp#g こっちの方に色々とそれっぽいことが書いてありました。
多分Javaの標準ライブラリにクラスパスをおくのみなら
GNU/Classpath Project(see
http://www.gnu.org/software/classpath/license.html )
についてのライセンスになるらしく。
GNU/Classpathをさらに読んでみると、
クラスパスにあるライブラリを修正しなければ、
作ったファイルはGPLの適用範囲外になるとも書いてありました。
まとめると、importなどでJavaの元々のライブラリを利用するのは
ソースコードを改造したわけでもないし、関係ない。
JARで配布の際もライブラリは含まれないと思うので、(動的リンクなので?)
特に制限はない。ということが分かりました。
ライブラリのソースコードをいじらないなど、普通に使う分には、
特にライセンスについては考えなくてよさそうですね。
ありがとうございました。
なんか間違ってる気がするが今の公式ビルドはOpenJDKからビルドされてるから間違えって訳でもないか。
OpenJDKと公式ビルドは別モノだよ
JDK6のいつかからOpenJDKベースだ
それはいつ? あとなんでJDK6update11のライセンスがBCLのまんま?
まず、 int[] a = new int[10] として、a[0]〜a[9]に数値を代入する そのあと、配列aにデータが何も入ってない状態にするには どうすればいい? for文で回してデータを代入するしかないのかな? 誰か教えてくださひ
>>228 データが入ってない状態って参照したときにアドレスが表示される状態ってこと?
それ宣言しなおすしかないんでね?
>>229 やっぱりそれしかないのかな
どうもありがとう
>>228 memsetつかえば一気に0とかにできるけどそういうこと?
eclipse3.2のエディターのタブ?のところを複数行に表示することはできますか?
eclipseスレ言ったほうがいんじゃね?
>>228 何も入ってないって、0 も入ってないってこと?
a=null;
それとも今までの配列を破棄するってこと?
a = new int[10];
> for文で回してデータを代入するしかないのかな とか言ってるしArrays.fillですむ話だったりして
236 :
デフォルトの名無しさん :2008/12/23(火) 08:51:02
スレッドの仕組みがよくわかりません 以下のように書くと何回も処理が繰り返されると思っていたのですが無理なようです どこが悪いのでしょうか? class kk{ public static void main(String args[]){ MyThread mt = new MyThread(); Thread th = new Thread(mt); th.start(); } } class MyThread implements Runnable{ int kk = 0; public MyThread(){} public void run(){ System.out.println("kk is" + this.kk); try{ Thread.sleep(25); }catch (Exception e){} } }
スレッドはプロセスより軽量に処理を分けるだけ。 public void run(){ while(true){ System.out.println("kk is" + this.kk); try{ Thread.sleep(25); }catch (Exception e){} } }
238 :
228 :2008/12/23(火) 11:42:31
配列について質問したヤツだけど、解決した a = null; を a[] = null;にしちゃってたわorz 色々意見を出してくれた皆さん、本当にありがとう それではノシ
239 :
デフォルトの名無しさん :2008/12/23(火) 11:51:18
>>237 そういうことだったんですか どうもありがとうございます
他言語での例えじゃない?
ちょいと前に自分でも訳のわからん質問をしたものですが もう一回質問させてもらいます case 1: A = new int[10]; g.setColor(Color.black); for (int i = 0; i < 10; i++) { A[i] = (int)(Math.random()); g.fillArc(x, y, 5, 5, 0, 360); } break; case 2: g.setColor(Color.black); for (int i = 0; i < 10; i++) { int k = i; int temp = A[k]; for (int j = i + 1; j < 10; j++) { if (A[j] < temp) { k = j; temp = A[j]; } } A[k] = A[i]; A[i] = temp; g.fillArc(x, y, 4, 4, 0, 360); } という感じで、case1でランダムに点を描画→case2でソート描画するんですけど、ソートすると一旦描画した点が消えてから、点が描画されちゃいます 何か解決策ないですかね?
前も確か答えたけど、どこでそれをやったんだよ
>>243 class MyFrame extends Frame implements ActionListener の中の
public void paint(Graphics g)の中です
paint() の機会が違うんじゃないかな。 だから別々に描かれる。
Hashtableに{a=1,b=2,c=3,d=4,e=5}、 Vectorに[d,a,b]と入っているとします。 Vectorの中身を出力する際に、Hashtableのvalueの値の順に出力(この場合a,b,dの順)したいのですが、 どのようにしたらいいでしょうか? どなたか宜しくお願いします
インスタンスを生成する時には↓の構文を使いますが、 クラス名 変数名 = new クラス名(); なぜ、変数名の前にクラス名を書かなくてはならないのですか? くだらなすぎて、すいません 教えてエロい人!!
不要といえば不要だよ C#ではvarとだけ書けばよくなったしC++でもautoでおkになるらしい 良い悪いは別にして,最近の流れではある
>>247 クラスってのは要するに型。intとかと同じ
変数を宣言する際には、Javaでは型を指定しなければならない
この場合は、変数の型を「クラス名」と宣言したということ
まあ今回のように、
そんなものわざわざ宣言しなくても、代入から自明だというケースも多い
最近だと、その辺を推論してくれる言語も増えてきている
>>249 データ型だと思えばいいのか
ありがとうございます
>>247 スーパークラス名 変数名 = new クラス名();
とか
インターフェイス名 変数名 = new クラス名();
とか。左辺と右辺で型が一致しないことはあるよね。
もちろんコンパイラによる型推論を用いることで次第に省略可能にも
なるだろうけれども、常に省略可能、とはまだまだならないと思う。
>>246 Collections.sort(vector, new Comparator(){
public int compare(Object obj1, Object obj2){
return ((Number)hashtable.get(obj1)).intValue() - ((Number)hashtable.get(obj2)).intValue();
}
});
コマンドラインで引数に c:\*.txt を指定すると args[0] には c:\abc.txt のように入ってきます。 この大本に指定された c:\*.txt を取り出すにはどうしたらいいのでしょうか?(""でくくるのは無しの方向で)
>>253 スレ違い
実際に使用しているコマンドプロンプト等のコマンドインタプリタ環境のスレに聞け
Oracle:10g JAVA :J2SE1.6 Oracleのストアドファンクションを呼び出す際に、 名前付きパラメータって使用できますか? 例えば"p1"という名前のINOUTパラメータを持つストアドプロシージャなら 次の呼び出し方で名前付きパラメータを使用できるのですが、 ------ public void callTestP(Connection conn) throws SQLException { CallableStatement cstmt = conn.prepareCall("{call test.TestP(?)}"); cstmt.setObject("p1", "para" , java.sql.Types.VARCHAR); cstmt.registerOutParameter("p1", java.sql.Types.VARCHAR); cstmt.execute(); System.out.println("実行結果:" + cstmt.getObject("p1")); } ----- ストアドファンクションを呼び出す時は、 "{? = call test.TestF(?)}"というように 返り値が発生します。 この返り値を名前付きパラメータで指定するにはどうすればいいのか悩んでいます。 (ちなみにindexでの指定はできます)
>>254 えーと 言葉足りなかったかもしれません
コマンドプロンプトで java を実行したときのお話です
それともこの悪さをしているのはjavaじゃなくて、環境依存ってことですか?
以下を取得できるツールってありますでしょうか。どれか一つでもかまいません。 ・メソッドが呼ばれた順番を時系列で取得できる ・メソッド内の処理時間が取得できる。 ・メソッドで割り当てられた最大のメモリの量
そうです。
>>256 UNIX系OSだとシェルが展開してからプログラムに引数をわたすので、そもそも展開前のワイルドカードを取得する方法はない。
Windowsだとmainメソッドを呼び出す前のスタートアップで展開してるはずなので、JNIか何かでプロセスの内部構造を叩けば取り出せるかもしれん。
>>259 UNIX系ならシングルクォーテーションで囲めば
*を受け取れる
>>260 おおもとの
>>253 で、クォートは無しって言ってる。(もとレスではダブルクォートだけど)
>>259-261 ありがとうございます。
実のところ、コマンドプロンプトで実行時にダブルクォートでくくるのは
別段そんな困りはしないんですが、eclipse では引数でクォートでくくっても
無視されてしまい debugが面倒なので、大本の質問になりました。
WindowsだとCとかで書いた場合、パスは展開されないので java が環境依存を吸収
するためにワザとやってんですかねぇ。。。ヨクワカンネ
ubuntu 上で試してみましたが、 c java ともに同じ結果でした。
つまりシングルはOKと言うことだ
>>263 一緒に描けばいいじゃん。
制御してるのは君なんだから。
そのswitch文、case毎にpaint()から抜けてる?
>>263 追伸。
悪い事は言わないから、GUI物に手を出す前に、
コマンドライン物で基礎を勉強した方がいい。
覚える事が多いとオーバーフローを起こすぞ。
java1.6、Meです。 コンソール(CUI)で、Cのgetchみたいな、 Enterを押さなくても入力されたキーを得られる 関数みたいなのがありましたら教えてください。
>>263 まぁある意味では
>>266 に賛同するかな。何をやっているのか理解しないと。
すべて paint に放り込んでるのでは。
>>265 さんが書いているように他の
ところで何を描くかを決めて一発に描けば良い。
質問させて下さい。 配列に格納されている特定の数字を探してその値を変化させるにはどうすれば良いのでしょうか? 例えば配列に80,50,65,80,35という値が入っていて その中から80の値を探して70に変えるといった感じです。 但し80が見つかったらその時点で終了して それ以降に80という値が入っていてもそれは変化させないようにしたいんです。 for文を使うと全ての値が変わってしまい上手く行きませんでした。 どなたかわかる方がいらっしゃったら教えて下さい。 よろしくお願いします。
if (array[i] == 80) break;
JSPでFizzBizz解くプログラムを組みました 我が家のテスト環境であるイクリプス+Tomcat上では動くのですが いざ借りているホームページにアップロードしても動作しません。 どうしたら動きますか?cgiは動くのですが
for文の中でif文を使う
>>273 >>269 の配列は数値の配列だし、条件式の値は真偽値でないとコンパイルエラーになるからそれはない。
具体的にトラブってるソースを
>>269 が出せばすぐ解決しそうだ。
>>271 そのサービスがJSPに対応してないなら動かない。
278 :
276 :2008/12/24(水) 09:07:45
すみません、見落としていました…
>>252 さんありがとうございます
>>269 while(a[i]==80){
a[i]=70;
a[1]++
Destroy;
}
280 :
278 :2008/12/24(水) 10:20:45
度々質問すみません
>>252 はプログラムのどこに入れればいいのかわかりません
同じメソッド内ですか?
未知のプログラムのどこに入れればいいかなんてエスパーでなきゃわからん
282 :
280 :2008/12/24(水) 10:46:02
>>281 さん、すみません
public class A{
static B b;
public static void main(String args[]) {
b = new B();
b.C();
}
}
class B{
Vector v;
Hashtable ht;
B(){
v = new Vector();
ht = new Hashtable();
ht.put("a",1);
ht.put("b",2);
ht.put("c",3);
ht.put("d",4);
ht.put("e",5);
}
public void C(){
v.add("d");
v.add("a");
v.add("b");
for(int i=0; i<v.size(); i++){
System.out.println(v.get(i));
}
}
}
public void C(){ v.add("d"); v.add("a"); v.add("b"); Collections.sort(v, new Comparator(){ public int compare(Object obj1, Object obj2){ return ((Number)ht.get(obj1)).intValue() - ((Integer)ht.get(obj2)).intValue(); } }); for(int i=0; i<v.size(); i++){ System.out.println(v.get(i)); } }
284 :
282 :2008/12/24(水) 11:08:13
>>265 >>268 実際、大した説明もないまま
課題だされちゃって・・
GUI特有のメソッドとか良くわかってないんですよね
自分で努力してみますわ
宿題スレというのがあってだな
288 :
デフォルトの名無しさん :2008/12/25(木) 00:27:22
289 :
デフォルトの名無しさん :2008/12/25(木) 01:21:10
初JAVAです。 開発環境を整えようとSUNのHPを見たのですが…沢山ありますよね。 ・IDEは、VS系で使っています。 ・テキストエディターは、VZの頃から使っています。 IDE/コンソールどちらにしようかと迷っています。 JAVA使いの方、ご教示願います。
そんなもん自分の好きにしろ
291 :
デフォルトの名無しさん :2008/12/25(木) 02:32:31
>>290 誰にでも噛み付けばいいと思って…餓鬼か?w
冬休みの宿題でもしてろww
>>289 無難にeclipse使っとけばいいと思うけど
JavaはIDEのサポートがかなり強力になることだし
少なくともテキストエディタよりはIDEがおすすめ
いや自分もVZユーザだったけど、DOS時代からの経験があってIDEも使った
事があるにしてはウブな質問でちょっと驚いた。
自分も
>>292 同様、Eclipse使っておけばよいと思う。
JavaでWebアプリを作るにしても単体アプリを作るにしても、今はJavaという
言語だけではなかなか完結せず、色々なライブラリやサーバーソフトと連携
する必要がある。その辺りの環境整備の手間暇に費やす時間の大半を省いて
くれるだけでも今のIDEにはとても利用価値があると思う。
>DOS時代からの経験があってIDEも使った事があるにしては >ウブな質問でちょっと驚いた。 つまり、古株でこういった質問が来るのは無能でFA?
>>294 おまいみたいな奴をクビにする立場なんだよw
>>291 ガキはおまえだ。
あまつさえVZすら使えてIDEも経験あるなら開発環境なんて人に聞くレベルじゃない。
ggrksでも上等。
ググル→自分で選ぶも出来んのかと。
IDE勧めたところでjavaのIDEなんて宗教。
うは、まだわかんねーのかよwクビw最優先でよろw
298 :
デフォルトの名無しさん :2008/12/25(木) 09:28:04
無能な奴は即クビの方向で・・・
そうか冬休みか
>>295 どうせ10人以下の下流だろw
師走は何かと忙しいからVZ野郎は早くクビにしといたほうがいいぞ。
どうせPGなんて5年ももたいなし派遣で固めちゃうのがいいんじゃねーのw
IDE入って無いけどxxエディタ使ってるよって言うから じゃあそれでちょっとソース見てって言ったらどうやるの?って 聞いてきた年配上司。 いったい何に使ってたんだとw
302 :
デフォルトの名無しさん :2008/12/25(木) 10:27:14
>>300 なぁ・・・・お前がどれだけ上流か知らんが中途半端なエリート志向のテクも知識もないSEの遠吠えにしかみえんぞ
下流を馬鹿にするやつにろくな設計なんて出来やしねぇよ
下流の愚痴をここでぶちまけられてもなぁ・・・ ここはおまえの糞溜めでもないしなぁ・・・・
どっちが釣られてるのか良くわからん
片方が遊んでるでもう片方が遊ばれてるに決まってるだろ。
ここまで自演でした
VZとかEMACSでウェブアプリ作る糞野郎も「絶対にいない」とは言い切れないよなぁ
>>305 片方が遊んでるつもりで片方が遊ばれ返してるつもりでということもある
つまり、両方ともが相手を釣っているつもりで両方ともが無駄なことをしている、と
両方が1人の自演ということもよくある
309 :
デフォルトの名無しさん :2008/12/25(木) 12:04:15
もうやめろよ!!!! みんな仲間だろ???
断る
ごみょんみょん
CDCのXletをEDLINで作って遊んだがラインエディタで全ソース書くもんじゃないな。
LinuxでAntのビルドファイルを作成しているのですが、 build.xmlの中でただのLinuxコマンドを記述することは可能でしょうか? 具体的には、 build.xmlの中でsubversionのupdateコマンドを叩きたいのですが svnantというライブラリを入れるほどのことでもないので svn update と、ちょろっとコマンドで書きたいのです。 よろしくお願いします。
edlinでvi作ってviでemacsつくってemacsでideつくるんだろ。もっと頭使えよw
316 :
デフォルトの名無しさん :2008/12/25(木) 14:51:38
Exception in thread "main" java.lang.NumberFormatException: For input string: "" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at mat.main(home.java:28) これってどういう意味なのでしょうか? そしてどうすればなおるのでしょうか? よろしくお願いします。
>>316 home.javaをまるごと挙げてくれたらおしえてあげるよ
318 :
デフォルトの名無しさん :2008/12/25(木) 15:08:06
home.java:28) home.javaの28行目にエラーがある。というか、Javaインタープリタが 実行中に28行目でエラーになった。
前に配列の事を聞いた初心者です。 配列じゃなくてfor文とかでオブジェクトを複数作ってる場合、 配列指定しなきゃいけないものを使うときは どうすればいいんでしょうか?
>>319 質問の意味が不明。object の配列を作りたいってこと?
>>316 Integer.parseIntに空文字列を渡したんじゃね
空文字列は数値にできないからエラー
>>316 #意訳
「Integer.parseIntメソッドで文字列をintの数値に変換しようとしたが
""なんて文字列から数値を読みこめなんて無茶な話だろ?
空文字列から数値を読み込めなんて俺はエスパーか何かか?」
#改善策
parseIntに渡す文字列周りの処理を再チェック。
>>320 for(int i = 1 ; i<= 5 ; i++){
DefaultTableModel tableModel
= new DefaultTableModel(columnNames, 50);
JTable table = new JTable(tableModel);
JScrollPane sp = new JScrollPane(table);
sp.setPreferredSize(new Dimension(200, 600));
}
でテーブル作ってて、
最初の一行を編集不可にしたいのだけど、
JTextField tf = new JTextField("0");
tf.setEditable(false);
DefaultCellEditor dce = new DefaultCellEditor(tf);
table[i].getColumnModel().getColumn(i).setCellEditor(dce)
↑
この部分ってどうしたらいいんだろうと思って。
てかtableはtableModelだからtableModelの配列指定かな?
>>314 ありがとうございます。
無事出来ました。
>>323 AbstractTableModelを継承して自作TableModelを定義するか、
DefaultTableModel#isCellEditable(int,int)をオーバライドしろ。
DefaultTableModel tableModel = new DefaultTableModel(columnNames, 50){
public boolean isCellEditable(int row, int column){
return row != 1;
}
};
AbstractTableModel継承の方が、いろいろ便利ではあるが。
327 :
デフォルトの名無しさん :2008/12/25(木) 16:59:53
>>316 です。
質問しておきながら遅くなって申し訳ありません。
キーボード入力をString型で受け付けて(一文字)からその文字が
アルファベットかどうか確かめるためにCharacter.isLetter()を
使いたいと思い、まずString型をint型に変換してそれをさらに
int型からchar型にしたらエラーが出てしまいました。
>>327 だから home.java を見せろ。
すいません それはできないです
String なら char 直接取り出せるだろ。API見ろ。 で、それ以前に String の中身が入ってねーんだよ。
話ぶったぎるけどOpenJDKのコードがマージされるようになってからwinのddrawやd3d周りのバグがやたら増えてない? sunのBTS見てて思ったんだが。
マルチスレッドのプログラムをマルチコアで実行したら、自動的に処理を振り分けてくれますか?
>>332 くれる。複数スレッド起こしてぶん回す簡単なプログラムを
動かしながらCPUモニタを見ればわかる。
public class ThreadTest implements Runnable {
public void run() {
int i = 0;
while (true) {
System.out.println(Thread.currentThread().getId() + ":" + i++);
}
}
public static void main(String[] args) {
Thread t1 = new Thread(new ThreadTest());
Thread t2 = new Thread(new ThreadTest());
t1.start();
t2.start();
}
}
334 :
デフォルトの名無しさん :2008/12/26(金) 01:44:22
JAVAをc:ではなくd:にインストールしてしまって あわててd:をフォーマットしたんだけど そしたら新たにインストールできなくなってしまった 何故かプログラムの追加と削除にはJAVAが残ってる それでアンインストールしようと試みるも 致命的な問題が発生しましたと出る
気にせずインストールしろ
お前日本語読めないの?馬鹿なの?死ぬの?
アプレットでJFreeChart使おうと思ってるんだけど そのアプレットを公開するとなるとライセンス的に何か問題ありますか? GNUライセンス調べてみても全く意味がわからないです
>>337 GPLの使ってソフトを公開する場合、ソースも公開する。
アプレットとして公開ってことは自分のwebページで、チャートが見られるようにするって意味だろ? それならソース公開は必要ないだろ? AGPLじゃないんだから
JFreeChartは"L"GPLだから。
で、結局どうすればいいのん?
まず嫁よ
>>341 javaの場合どうなるんだろうとずっと思っていたが解決した。
普通は1つの*.javaファイルに、いくつのクラスを詰め込むのですか? OSSのソースを少しだけ見たら、*.javaに1つしかクラスがなかったのですが....
内部クラス除けば、publicクラスが複数ない限り大丈夫
>>345 そういう思想。
1ファイル1クラス。
実際、.javaに複数のクラスは書けるけど、.classでは1ファイル1クラスになるし。
.javaだけの話なら、思想なんか無視しても良いんじゃない?
質問です。 メソッドを起動中に com.sun.jdi.InvocationException が発生しました。 とえらーがでるのですが,これはどういったときに出るエラーなのでしょうか? ご教示願いします。 よろしくお願いします。
キーボードの打ちすぎで右手の小指が痛いです これどうしたら痛くならない?
つめろ
次のレスに示すようなプログラムを作りました。 で、三角形描画ボタンを押して三角形を描画し、 四角形描画ボタンをおすと、三角形が一旦消えてから四角形が描画されます。 三角形を残したまま描画するにはどうすればいいですか? repaint()を上手に使えればいいのか?と思ったんですが、上手くいきません。 どなたかご教授願います。
import java.awt.*; import java.awt.event.*; class Sample_Frame extends Frame implements ActionListener { Button btn1; Button btn2; int buttonSelect = 0; public Sample_Frame(String title) { setTitle(title); setLayout(null); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); setBackground(SystemColor.control); btn1 = new Button("三角形描画"); btn1.addActionListener(this); add(btn1); btn1.setBounds(10, 75, 70, 25); btn2 = new Button("四角形描画"); btn2.addActionListener(this); add(btn2); btn2.setBounds(90, 75, 70, 25); }
public void actionPerformed(ActionEvent e) { if (e.getSource() == btn1) { buttonSelect = 1; } else { buttonSelect = 2; } repaint(); } public void paint(Graphics g) { g.setColor(Color.white); g.fillRect(20, 140, 160, 120); g.setColor(Color.gray); g.drawRect(20, 140, 160, 120); switch (buttonSelect) { case 1: g.drawLine(100, 160, 60, 240); g.drawLine(60, 240, 140, 240); g.drawLine(140, 240, 100, 160); break; case 2: g.drawRect(60, 160, 80, 80); break; } } } public class Sample { public static void main(String[] args) { Sample_Frame frm = new Sample_Frame("描画"); frm.setSize(200, 280); frm.setVisible(true); } }
switch文でどちらを描くか選択するのではなく それぞれの図形について描くか描かないかのフラグを用意して それに応じて描くようにする フラグのオンオフはボタンのアクションリスナで
>>333 有難うございます。
残念ながら、自分はマルチコアなパソコンが無いので検証は出来ないのです・・・。
357 :
352 :2008/12/27(土) 00:19:23
>>355 フラグに応じて複数のpaintメソッドを定義するって事ですか?
それと、アクショんリスナをどう使ってオンオフを決めるんですか?
ググっても良くわからなくて・・・
もう少しヒント等くださいm(__)m
>>352 ifを使う。
switchとif〜elseは使わない。
後、buttonSelectをis三角形Selectとis四角形Selectにわける。
リスナ 1) ボタン1が押されたらボタン1押されたフラグをTrueに 2) ボタン2が押されたらボタン2押されたフラグをTrueに paintメソッド 1) ボタン1押されたフラグTrueなら三角を描画 2) ボタン2押されたフラグTrueなら四角を描画
for (Shape shape : shapes) shape.Draw(); みたいにできたら綺麗だけどね
paint で一度書いたからといって、二度目の時にそれが保存されているわけじゃない。 一度目の上に二度目のを書きたいのなら、一度目に書いたのをもう一度二度目の時も書け。 つまり、その時表示されていて欲しいものを毎回全部書け。
363 :
646 :2008/12/27(土) 20:28:48
電車の中に大声で喋っててやかましい不良外人がいたので 「ファッキンジャップ!」 と叫んでビンタしてやった。
どこの誤爆か言ってごらんの有様だよ!
>>361 そのoperatorの使い方が初心者にとっては毒なんですよ
ちょっとググればわかることなのですがプログラミング体力の無いものにとっては猛毒・・・
ならば、分かりやすく書いてやるのがいいかと思う
366 :
デフォルトの名無しさん :2008/12/27(土) 20:36:53
フレームアプリケーションでの質問です。 終了ボタンを押すと、ある画像を表示して終わるようにしたいのですが、 終了ボタン押しに対応したactionPerfoemedの中でSystem.exit()や this.dispose()が存在すると前にthis.repaint()があっても処理しないまま 終わってしまいます。waitや他のフレームを作成するようにしても だめです。 どうすればよいでしょうか?
メインフレームのスレッドが終了しなければアプリケーションは終了しない。
368 :
デフォルトの名無しさん :2008/12/27(土) 21:11:52
>>367 なるほど!盲点でした。
メインフレームもほかのフレームも同義に考えていたので
あっさり捨てていました。
どうも有難うございました。
369 :
368 :2008/12/27(土) 21:30:38
>>367 、、、と思ったのですが、メインフレームを残しても
閉じたいフレームに画像を表示させることは出来ませんでした。
。
370 :
デフォルトの名無しさん :2008/12/27(土) 22:44:17
テトリスで下押しっぱなしでブロックを下に落とした後 次のブロックでは押しっぱなしをやめさしたいのですがどうしたら良いのでしょうか KeyListenerのKeyPressedで処理を受け取っているのですが……
それ用のフラグでも追加しちゃえば?
>>370 一回下キーを離すまで下キーを無効にするフラグ追加
>>366 どうせ閉じるんだから画像表示したって目に止まらない速さで閉じると思うんだが。
設計ミスってオチだろうな
javax.imageio.stream.ImageInputStreamってどうしてClosableインタフェースを実装してないんですかね? まっ、どうでも良いんですが。
>>375 Closeable がない1.4用も同じコードで管理してるからつけらんなかったとか
Closeable を後付けしたときにつけ忘れたとかじゃね?
まっ、どうでも良いんですが。
>>357 setEnabledとかないのか?
Enabled系のメソッドを使えば真偽のフラグ管理はできるはずだが
クソッ
GraphicsクラスにはEnabledメソッドがないのか
>>357 すまんが俺の力じゃ太刀打ちできん
379 :
デフォルトの名無しさん :2008/12/28(日) 15:35:25
printlnメソッドで変数を続けて出力したいのですが、 println(a,b)とか書くとエラーになってしまいます。どうすればいいでしょうか。
println(a + b)
>>380 それだとa+bが計算されて出てきちゃうんです。
単に並べて表示させたいんです。
println(a +',' + b);
>>382 aに3、bに4を入れてコンパイルして実行したら
なぜか51になって出てきました。
println(a + "," + b)
なぜそうなったかを調べてもっと理解を深めてもらおうという2ちゃん的やさしさ あったけぇ、あったけぇよ
いや本気で 一文字だったら一個でいいと思ってた。 ダブルコーテーションで""でいいとおもう
389 :
352 :2008/12/28(日) 16:16:25
三角形やら四角形やら言ってた者ですが 出来ました! セレクトボタンを分けてやったら大丈夫でした アドバイスくれた皆さん 本当にありがとうございました!
System.out.println(a + new Integer(b).toString());
391 :
デフォルトの名無しさん :2008/12/28(日) 16:44:17
正月に餅くいながら、Java談義したい。 名古屋出身のひと、Java談義しませんか?
>>391 しねえええええええええええええええええええええええええええええええ
福岡なら・・・
普段名古屋にいるけど帰省するから…
パソをさわっているうちに、間違ってjavaのファイルを削除してしまいました。 するとcabosが起動しなくなったので、javaをDLすると、使用中のPCには すでにインストールされているというメッセージがでます。 そこで、再インストールしますかというメッセージが出るので、 「はい」をクリックしても、再インストールができないんです。 コントロールパネルを見るとjavaのアイコンがありますが、 コーヒーカップの絵ではなく、真っ白です。 クリックすると、アプリケーションが見つかりませんと メッセージがでます。 javaのファイルはインストールされているけど、私のパソのOSが悪いので 認識できてないのでしょうかね。 ちなみにOSはvistaです。どうしたら元通りになるでしょう??
板違い
復元すりゃいいんじゃないの?
そんな事せずともセーフモードで入ってファイル全部消した後レジストリ抹消すればいい。
よくVO(View Object)、EO(Entity Object)という言葉を聞くのですが、 どのフレームワークで使われている概念なのでしょうか?
その言葉を聞いたとこで聞けよ
複数のスレッドを一定数ずつ順番に回したいのですが,方法がわかりません。。。 (たとえば,5つのスレッドを実行させて,ひとつ終わったら次のスレッドをひとつ実行させるみたいな感じ) joinとかwaitとかを使ってやるのかな? 5つ終わってまた5つならできるんだけど。。。 教えてエロい人m(_ _)m
配列
405 :
デフォルトの名無しさん :2008/12/28(日) 22:26:04
407 :
デフォルトの名無しさん :2008/12/28(日) 22:48:11
そっかぁ(´・ω・`)
408 :
401 :2008/12/29(月) 00:06:41
Executorすごくぴったりだったんだけど・・・ 普通のスレッドみたいにjoinみたいなことはできないのかなぁ? すべての処理が終わってからしたいことがあるんだ・・・。。。 Webで探してみても,Sleepしてからshutdown();みたいな動作しか見つからない・・・ 助けて><
コンパイルエラーが出るのですがドコが間違っているのでしょうか? import java.io.*; class jam{ static int power(double a,int b){ double x = a; int c = 2; while(c<=b){ x=a*x; c++; } return x; } public static void main(String args[])throws IOException{ double a; int b; double x; System.out.println("実数を入力してください。"); BufferedReader xx =new BufferedReader(new InputStreamReader(System.in)); a=Double.parseDouble(xx.readLine()); System.out.println("乗数の値を整数で入力してください。"); BufferedReader xxx =new BufferedReader(new InputStreamReader(System.in)); b=Integer.parseInt(xxx.readLine()); x=power(a,b); System.out.println(a+"の"+b+"乗は"+x+"です。"); } }をコンパイルすると jom.java:10: 精度が落ちている可能性 検出値 : double 期待値 : int return x; ^と出ます。何が間違ってるのでしょうか? 誰か教えて下さい。お願いします。
power関数がint型返すようになってるのにdouble型のx返してるからだろ
>>408 ThreadPoolExecutorのterminatedを上書きしておいて、
全部のタスクを投げ終わったら、shutdownをかけるとか
eclipseかnetbeans使えよっていう。 Javaなんてテクストエディタでチマチマと書くもんじゃない。
>>390 やめろ(--; 意味のないnewするんじゃねぇ。
せめて、Integer.toString(b)
いやいやString.valueOf(b)で。
a+””+b やっぱこれだろ
a+””+b = a + "," + b;
>>415 ソースを見たら、
String.valueOf(int value)→Integer.toString(int value, int radix)→Integer.toString(int value)
と、妙にまわりくどかった。
つか、何でString.valueOfはわざわざradix=10を指定してるんだ……。
すみません。質問です。 テキストファイルへ、プログラムで入力した文章を記録させ続けたいです。 1回目ならプログラムを起動させるとテキストへ入力できるのですが、2回目を行うと 1回目に入力したテキストの部分が初期化されます。 どうすれば初期化されずに、入力した文章を書き足していく事ができるんでしょうか? 下は、dic/testt.txtへ入力された文章を書き込み、終了と入力すれば終わるものです。 宜しくお願いいたします。 try{ bw=new BufferedWriter(new FileWriter("dic/testt.txt")); //文字列のキーボード処理 while(flag){ buf=ki.readKey(); //入力処理 if(buf.equals("終了")){ flag=false; }else{ bw.write(buf); bw.newLine(); } } bw.close(); System.out.print("書き込みました。");
420 :
419 :2008/12/29(月) 18:30:49
書き忘れました。 eclipseを使っています。 オラクルを勉強すれば解決できるでしょうか?
・・・Oracle?
馬鹿が沸いてるな
ファイル出力とか全然知らないけど ファイルを書く前にストリングなんぞにファイルを読み込んでそこに文字列を追加していく感じでやれないんdねすけね?
なんたらライターを作るときに、オプションかなんかで追記で開けると思うよん 間違ってるかもしれんが、とにかく追記で開く方法を探すんだ
普通にやるとテキストを初期化する ↓ そういう仕様 ↓ じゃあテキストを読み込んでテキストの続き書き込めって命令をくれてやればいい ↓ ウマー(・д・) アルゴリズム(プログラムの論理)から言うとこんな漢字でしょ
ここ数日は、カンタンな事をわざと遠回りな実装するのが流行ってんのかw
もうプログラム触る奴はとりあえずBSDのclibのソースコード全部舐めてから来いよ
いやんlibcなのに
430 :
419 :2008/12/29(月) 20:04:18
,trueという4文字を追加する事で解決しました。 今日はずっと悩んでたので涙が出ます。 皆様どうもありがとうございました。
EclipseならCtrl + クリックでそのクラスとかメソッドの中に入れるから、 FileWriterの中身を見てみるのも勉強のためにいいかも。
Mathクラスのcos()メソッドを使って余弦を求めたいんだけどうまいくいかない 引数に60を与えれば0.5になるはずなんだけど -0.952・・・になってしまう(´・ω・`)
ごめんできた 引数の値をtoRadians()で渡せばいいのか 微妙に値が違うのはDouble型を使っているからだろうな
>>434 あー更新してなかったごめん、でもthx
javadocの見方が下手糞なんだわ
StringBufferって値を消去することできないの?
>>437 全部クリアするならsetLengthメソッドで0をセットした方が楽
部分的に消すなら
>>438
特定のウィンドウをアクティブにする方法を教えてください。 それと座標も取得できると嬉しいです。 よろしくお願いします。
通常はクリックとかのイベントの発生をOSからプログラムが受けとって処理するのですが、 その逆で、イベントをプログラム上で自ら発生させてそれをOSに渡すにはどうやればいいんでしょうか? よろしくお願いします。
質問です。 ユーザによって入力された文章中に含まれるキーワードに反応して 処理を返すようにしたいんですがどうすればいいんでしょうか。 宜しくお願いします。
ここで聞くようなやつには無理だ。形態素解析でググレ。
>>440 Java では無理。自分自身ならアクティブにできるが、他のプロセスには干渉できない。
>>441 java.awt.Robot とか
445 :
442 :2008/12/31(水) 11:06:51
Robotは自動テストが主でイベントを発生させてOSに渡すのが目的のクラスじゃないようなんですが、 そういう目的のクラスはJavaでは用意されてないのでしょうか? 例えばJavaで並列計算した結果を他のアプリ・プロセスにOSのイベントで知らせるよう(又はその逆)にしたいのですが。
なんでわざわざjavaで計算してるの?
まあわざわざjavaでやるメリットはないわな
socketででも通信すりゃいいんじゃね?
ゲーム起動したらこんなんでるのですがどうすればよいでしょうか?? # An unexpected error has been detected by HotSpot Virtual Machine: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x1a18ce7d, pid=4052, tid=2636 # # Java VM: Java HotSpot(TM) Client VM (1.5.0_15-b04 mixed mode) # Problematic frame: # C [ktpraf.dll+0xece7d] ちなみに最新のjavaはインストールしました!
板違い
>>450 プログラミングに関係ないソフトの使い方の質問は板違い
何度やっても再現するならそのゲームの作者に聞け
一度出ただけなら犬に噛まれたとでも思って忘れろ
> # Java VM: Java HotSpot(TM) Client VM (1.5.0_15-b04 mixed mode) どうみても最新じゃない罠 1.5の最新版だといういい訳もできない
BottonやPanelなどをアプレットの中心に表示したいのですがどうやったらできますか?
>>454 ですが、ちょっと説明が足りなかったみたいです
BorderLayoutで中央にButtonを配置できるのですが、Buttonの大きさがすごく大きくなってしまったので・・・
http://ditaa.sourceforge.net/ このサービスを使ってみたいのですが、
コマンドプロンプトでディレクトリをこのファイルにまで移動した後
java -jar ditaa.jar
と打ったのですが
Unable to access jarfile ditaa.jar
と出てきて実行できません。
どうすればよいのでしょうか?
なんでここで聞くの?
>>454 >>455 public class Botton extends Button {
public Botton(){
super();
}
}
Bottonちゃうわ
ボットン
とりあえずPanelの中心にButtonやChoiceをおきたいのですが・・・ いろいろ調べてみたんですが、ちょっと方法が見つかりませんでした
462 :
デフォルトの名無しさん :2008/12/31(水) 22:25:48
BorderLayoutはadd(c,BorderLayout.CENTER)でコンポーネントcを中央に置ける。 サイズは東西南北に置いたコンポーネントサイズ分を引いた残り全部だ。 中央に置くのが二つなら、その二つを載せたコンテナを作ってそれをBorderLayoutで中央に置け。
グルー詰めればいいんじゃないか?
>>418 Stringの実装がIntegerの実装を見てバリバリにチューニングしてないから、としかいいようがないんじゃ?
Integer.toStringの実装が変わることを考えれば、radix=10を指定していてもなんの不思議もないと思う。
たとえば、String.valueOf(int)を実装したときは、Integer.toString(int)はInteger.toString(int,int)を呼んでたから、
Integer.toString(int,int)を直接呼ぼう、とかさ。
自分はだいたいオーバーロードするメソッドや複数のコンストラクタを書くような場合、引数の数が少ないものは引数の多いものを
足りない引数を補って呼ぶようにしているのだけれども、これって結構普通のことじゃない?
そういう考え方をString.valueOf(int)を書いた人が持ってれば、わざわざ指定する感じになると思いませんか?
>>464 いや、JavaDocのString.valueOf(int)の説明に
>The representation is exactly the one returned by the Integer.toString
>method of one argument.
と書いてあるので、
>>418 の疑問には共感できる。
今の実装だとInteger.toString(int)の実装が変わったらString.valueOf(int)
の実装も変えないと上記の説明を満たせないよね。
>引数の数が少ないものは引数の多いものを足りない引数を補って呼ぶ 俺もやるけどjavaってそういう流儀でしょ。
>>418 を見ると引数の多いのから引数の少ないを呼んでるね
メソッドの抽象化が大好きなのは俺が関数型好きだからだろうか? ストラテジーパターンよく使う。けど、クロージャが欲しい。
/* Happy New Year */
msgHdl..happy(new Year(2009));
新年早々いきなり文法エラー orz
>>462 これだと例えばButtonをおいたときに、Buttonの大きさがアプレットの大きさになってしまうんです
Buttonの大きさは普通のサイズにしたいんです
SUNの社運
>>465 なるほど、String.valueOf(int)のJavadocがそうなってるならJavadoc通りでない実装だし、
わざわざオーバーヘッドもあるしで、謎だね。
でも、Integer.toString(int)のJavadocにradix=10って明記してあるなら、radix指定バージョンにリダイレクトして
いいような気もするけど。
>>467 そうそう。だから、Integer.toStringの実装が例外的だから、String.valueOf(int)が引数多いメソッドを呼んでても
不思議じゃないんじゃない?って書いた。
特定のセル行を編集不可にしてマウスクリックで時間の表示 ができるようにしようと思って書いたんだけど、エラーでちゃった。 for(int i = 1 ; i<= 5 ; i++){ DefaultTableModel tableModel = new DefaultTableModel(columnNames, 50); JTable table = new JTable(tableModel); JTextField tf = new JTextField(""); tf.setEditable(false); DefaultCellEditor dce = new DefaultCellEditor(tf); table.getColumnModel().getColumn(0).setCellEditor(dce); table.addMouseListener(new MouseAdapter(){ public void mouseClicked(MouseEvent e){ JTable t = (JTable)e.getSource(); Calendar calendar = Calendar.getInstance(); String now = calendar.get((Calendar.HOUR_OF_DAY) + "時" + get(Calendar.MINUTE)); t.setValueAt(now, t.getSelectedRow(),t.getSelectedColumn()); } } 間違ってそうなとこを上げたのだけど、どこがいけないか指摘とか 書き直しとか良かったら教えてください
あぅ、なんかおかしいと自分でも気づいたので直してみました; で、まだエラーでるのでなおしたものを投下 for(int i = 1 ; i<= 5 ; i++){ DefaultTableModel tableModel = new DefaultTableModel(columnNames, 50); JTable table = new JTable(tableModel); JTextField tf = new JTextField(""); tf.setEditable(false); DefaultCellEditor dce = new DefaultCellEditor(tf); table.getColumnModel().getColumn(0).setCellEditor(dce); table.addMouseListener(new MouseAdapter(){ public void mouseClicked(MouseEvent e){ JTable t = (JTable)e.getSource(); Calendar calendar = Calendar.getInstance(); int hour = calendar.get(Calendar.HOUR_OF_DAY); int minute = calendar.get(Calendar.MINUTE); t.setValueAt(hour + ":" + minute, t.getSelectedRow(),t.getSelectedColumn()); } } ご指摘ご指導お願いしますだ〜!
477 :
476 :2009/01/01(木) 14:55:40
自己解決!私がアホでした!
Javaで練習がてらテキストブラウザを作ろうと思うのですが なにか参考書か参考になるサイトあるでしょうか?
479 :
デフォルトの名無しさん :2009/01/01(木) 20:52:24
お昼の書き込みで自己解決してたものです。 一列目の編集不可、一列目クリックで時間表示はできました。 しかし二列目以降のセルに右クリックでポップアップを指定したところ、 一列目にも右クリックでポップアップが表示されるようになってしまいました。 解決策がどうにも思い浮かばないので、宜しかったらご教授願います。
ソースアップしてもわらないと分からないな。
javaじゃ標準ライブラリだけでajaxに対応したグラフィカルブラウザすら作れるんだから練習にならないんじゃないかと。
>>479 が良いと思う。
jsに対応するの大変じゃね? JEditorPaneはjs実行してくれないし
>>486 元々そこら辺は拡張できるように設計されてるからパーサとペインを対応させる。
Rhino側はDOMとXMLHttpRequestを実装すればいい。
DOMもXMLHttpRequestも必要なものは標準ライブラリにある。
完全に1から実装するわけじゃないから遥かに楽だと思うけど。テキストブラウザとなれば更に楽。
当然ブラウザ実装するって言ってるんだから実装に必要な知識があることが前提だけどさ。
知識がないならブラウザの実装は練習には向いてないよ。
(事前に必要な知識が特殊で膨大すぎる)
GUIなら画像ビューア付きのファイラーが良いと思うけどね。
・Swingの基本
・ツリー表示時のファイルシステムの遅延取得
・練習だから素のJFileChooserで画像選択&アクセサリコンポーネントでプレビューペイン実装
応用としてZIPアーカイブ内ファイルも表示なんてどうだろう?(練習でこれ実装したらすごいと思う、面倒くさいから)
1から作るよりずっと楽なのは確かだけど、とっても大変。 少なくとも練習レベルじゃないよ。 現にこれ実際にちゃんと実装した人見たことない。 しかもJavaのHTMLの実装かなり甘いから標準で攻めてもどっかで躓くの見えてるしなぁ
甘くはないよ。ちゃんとHTMLの正規化もやってるし。 ただHotJavaBrowserの実装をそのまま使ってるからHTML3.2 finalで止まってるだけ。 #JWebPaneは間に合うんだろうか?
なるほど、URL叩いて画面表示だけならテキストでもHTML3.2でもできました。Javaってよくできてますね・・。 ・・・フォームのサブミットってどうやるんですか?お作法が載ってるページがみつからないんですが/(^o^)\
ただのPOSTリクエストだけど? Javaでの具体的な方法が分からないのか、 そもそもPOSTって何?って話なのかどっちなの?
先頭に大概を・・・
それくらい書籍見るなりググるなりして自分で調べていくものだってばっちゃが言ってたよ。
気のせいかうまくいかないけどやってみますよ まあ気長に待っててくれ
別に誰も待ってないからマイペースでやれ
496 :
483 :2009/01/02(金) 14:01:59
>484様 了解です。 for(int i = 1 ; i<= 5 ; i++){ DefaultTableModel tableModel = new DefaultTableModel(columnNames, 50); JTable table = new JTable(tableModel); table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); //一行目編集不可 JTextField tf = new JTextField(""); tf.setEditable(false); DefaultCellEditor dce = new DefaultCellEditor(tf); table.getColumnModel().getColumn(0).setCellEditor(dce);
497 :
483 :2009/01/02(金) 14:03:06
//一行目時間表示、ポップアップ表示 table.addMouseListener(new MouseAdapter(){ public void mouseClicked(MouseEvent e){ JTable t = (JTable)e.getSource(); JPopupMenu popup = new JPopupMenu(); Calendar calendar = Calendar.getInstance(); int hour = calendar.get(Calendar.HOUR_OF_DAY); int minute = calendar.get(Calendar.MINUTE); t.setValueAt(hour + ":" + minute, t.getSelectedRow(),0); JMenuItem up1 = new JMenuItem("1位"); JMenuItem up2 = new JMenuItem("2位"); popup.add(up1); popup.add(up2); if(SwingUtilities.isRightMouseButton(e)){ popup.show(e.getComponent(), e.getX(), e.getY()); } } }); という風に書きました。 質問内容は>483です。
ポップアップ出す前に2行目以降なのか見ればいいだろ。
GETもPOSTもろくに知らないでHTTP叩けるなんて良い時代になったなぁ。 HTTPが出てきた当時はTCP/IP丸暗記必須だった気がする。
二十年近く前の話じゃん
叩けるにしても、使えるようになるには結局GETもPOSTも勉強 しなければならないのは今も昔も変わらないと思うけどね。
サーブレットでやると勉強しなくてもできちゃうんだなこれが
textLength += (value < 0); //(←なぜか変換できない)
+演算子にはbooleanが被演算子になるような使い方はない
Cとは違うのだよCとは
偉い人にはそれがわからんのですよ
見える。。。僕にも見えるよ
508 :
デフォルトの名無しさん :2009/01/03(土) 15:39:52
計算で軌跡を書かせるプログラムを書いています。 htmlでclassを実行させた表示させたいのですが、ブラウザの画面設定が 計算結果のグラフより小さい場合、ブラウザのスライダーを動かすと再計算 を始めます。 スライダーを動かしても計算した結果を保持して表示させるにはどうすれば 良いのでしょうか?
再計算しなければいいだけ どうせ、paint()で毎回計算するようにしてるんだろ
readline()ってなんか勝手に次の行読み込みまくるんだけど 延々と同じ行を読み込ませるにはどうしたらいいんだい
よく分からんからやりたいことの要点とソースうp(うpろだ使って) グラフってのは数学的なグラフか?
>>510 毎回10行目を読み込みたいとか?
用途がわからんが無理じゃね?
そもそも、そんなことする必要がないし。
俺ミラじゃないし
C++の参照変数みたいなこと,例えば char c1[1024]; char& c2 = &c1[512]; c2[0] *=c1[0]; 見たいなことをjavaでやりたいんだけどどうすればよいでしょうか? ARC4の暗号のデコードするCのプログラムをjavaに移植しようと思ってるんだけど Cのプログラムがポインタ使って文字列をぐりぐりやってて困ってます.
>>510 java.io.BufferedReader クラスを継承して、readLine メソッドで同じ行を返すだけにすればいい。
>>510 String tmpLine;
while((tmpLine = reader.readLine()) != null){
tmpLineをごにょごにょ;
}
ってことじゃなくて?
518 :
508 :2009/01/03(土) 18:43:36
509さんの言われる通りです。 繰り返し計算させてプロットさせるんですが、ブラウザを小さくしていると 描画の結果が切れてもっと右を見ようとしてスライダーを触ると再計算が 始まります。
>>515 無理。Javaではオブジェクトの実体を異なった形で共有することは、ポインタ演算もunionも無いので不可能。
例のような演算については、配列へのリファレンスとオフセットの組でデータを扱うしかない。
>>498 解決しました、アドバイス有難うでした。
インスタンス変数 count コンストラクタ public Counter(int count){ this.count = count; } と int compareTo(Counter right) { return 0 - right.compareTo(count); } void increment(){ count = ++ count; } Counterクラスにある上の2つのメソッドを使って for(Counter rep = new Counter(0); [ ] ; rep.increment() ) { } と、いうように 繰り返しをしたいのですが、[ ]の中にどんな文を書けばいいのでしょうか?
どんな時に繰り返しを終わらせたいんだよ
>>522 すいません、書くのを忘れていました
例えば、int[] data = {64, 35, 69}この配列データを全て表示したらです。
524 :
デフォルトの名無しさん :2009/01/03(土) 22:43:26
>>515 そのコードを見るとただのポインタオフセットの変更(C++流なら別名)なだけだから、
Java流だと
off=0;
c1[off + pos++]
refoff=512;
pos=0;
c1[refoff + pos] *= c1[off]
となる。Javaでのポインタ計算は全て配列のオフセットでやるからCとJavaはプログラミング方法が少し違う。
>>525 おかしい方法ってことは重々承知なんですが
こういう課題なんです・・・。
講師に文句言った方が良いな
528 :
デフォルトの名無しさん :2009/01/04(日) 02:30:09
質問です。 Stringのオブジェクトは一度生成するとその中身を変更できないというのですが、 実際には変数名="hogehoge";などとすると値が変わります。 これは新たにインスタンスが作成され、それに参照が変化したと考えれば良いのでしょうか? この事実を認識していないと実際に起こりうる問題に関して、参考サイトなど教えてください。 よろしくお願いします。
>>510 mark()とreset()で可能なはず。
>これは新たにインスタンスが作成され、それに参照が変化したと考えれば良いのでしょうか? 良い。 (文字列リテラルのインスタンスが果たしてその場で作成されるのかどうかはともかくとして、 別のインスタンスを指すようになったという認識に問題は無い) >この事実を認識していないと実際に起こりうる問題に関して、参考サイトなど教えてください。 参考サイトはちょっとぱっと出ないけど、 String a = "hogehoge"; String b = a; とした時は a と b は同じ文字列を指すけど、 a = "piyopiyo"; としても b は "hogehoge" を指したまま、 って事は、この事実を認識していないと誤解しちゃうんじゃないかな。
>>530 さん
どうもありがとうございました。
授業で説明があまりないまま鵜呑みにしていたので、混乱していました。
>>518 paint()は再描画が必要なときに呼ばれるもの
だから、その中に計算処理を書いている時点で使い方を間違っている
計算処理と描画処理を分離しろ
>>521 Java初心者だが答えてみる
for(Counter rep = new Counter(0); rep.compareTo(new Counter(data.length())) != 0; rep.increment() ) { }
配列の長さをとるのがlength()じゃなければ適当に変えてみて。
あと、int compareTo(int)の関数はなくてもいいのか?
まあ、あったら
rep.compareTo(new Counter(data.length())) != 0
↓
rep.compareTo(data.length()) != 0
になってしまうが。
CREATE TABLE HELLO_WORLD_TABLE ( NO INTEGER NOT NULL, LANGUAGE VARCHAR(50), MESSAGE VARCHAR(100), PRIMARY KEY(NO) ); このような、HELLO_WORLD_TABLEにデータを挿入する場合、MySQLではこのように書けますが、 INSERT INTO HELLO_WORLD_TABLE VALUES ( 1 , '日本語' , 'こんにちわ 世界'); javaで例えば int num = 2; String lang = "英語"; String mess = "Hello World"; このような変数を、HELLO_WORLD_TABLEに executeUpdate()メソッドを用いて追加する際の、java流のsql文の書き方を教えてもらえませんか。
>>534 SQL文を一つのStringにしてメソッドに渡せばいいだけじゃないの?
>>535 Thxです
>>534 ですが
SQL文を一つのStringにまとめるのは分るのですが、
例えば
String sql = "insert into HELLO_WORLD_TABLE values ( num, lang, mess)";
executeUpdate(sql);
とすると、numの値はDBに、正しく挿入されるのですが、langとmessの値がnull値になります。
多分、java流のsql文の書き方が間違っていると思うのですが、間違いを指摘してもらえれば幸いです。
>>536 どちらかというとStringの使い方だな
調べたら1分で分かるレベルかと
538 :
デフォルトの名無しさん :2009/01/04(日) 09:39:27
javaというか、OSの問題かもしれませんが 自作プログラムのjarファイルのデスクトップアイコンを コーヒーから差し替えることは可能でしょうか? できればそのファイルだけ限定だとよいのですが。
>>536 やりたいことってこういうこと?
1、SQL 文をひとつの String にしたい
2、作りたい String の一部分はプログラムを書いている時点で決めていい
3、作りたい String の一部分は、プログラムが動いている時じゃないと決まらない
こういう方法は、どうでしょ。
String sql = "insert into HELLO_WORLD_TABLE values ('" + num + "', '" + lang + "', '" + mess + "')";
文字列同士をプラス演算子を使って足し算(みたく)すると、連結された String オブジェクトを
新たに作ってくれる。
文字列とプリミティブな値を、プラス演算子を使って足し算(みたく)すると、プリミティブ値を String に
変換した後、それぞれを連結した String オブジェクトを新たに作ってくれる。
#まちがってたら誰か指摘してね。
#あと、
#この方法を連発するとオブジェクトの生成→ゴミ箱行き、が多くなって、
#StringBuilder のほうが効率的じゃねーの、っていう話を、だれかしてあげてね。
そこでStringBuilderを使ったところで、
たいして効率は上がらないっていう話を、
だれか
>>539 にしてあげてね。
よくわかんないけど、SQLインジェクションの危険性についてもね。
>>539 その方法でSQL組み立てるの絶対絶対禁止禁止禁止〜〜〜!!!
SQLインジェクションの餌食です、本当にありがとうございました。
(↑リリース寸前にそういうコードを泣きながら修正して回ったのがトラウマになっているらしい)
JavaでJDBCを使う場合、普通はこうすべき。
Connection con = (省略)
PreparedStatement pst = con.prepareStatement("insert into HELLO_WORLD_TABLE values (?, ?, ?)");
pst.setInt(1, num);
pst.setString(2, lang);
pst.setString(3, mess);
pst.execute();
pst.close();
※prepared statementのパラメータインデックスは1から始まることに注意。
もっとも、実用では、生でJDBCを使うより、適当なDBアクセスライブラリを使うのが普通。
>>542 補足。実行するのが、insertじゃなくて、selectやupdateのときには、execute()じゃなくて、executeQuery()やexecuteUpdate()を使うので注意。
JDBCのAPIを要調査のこと。
534です
>>539 さん、そして他の皆様お世話になります
少し進展しました
ご教示してくださった実装で、MySQLにnull以外のデータを追加できるのですが
後だしで、大変申し訳ないのですが(コードを載せると長くなると思い、省略してました)
DB INSERT TEST SQLException:Column 'lang' not found.
となり、DBへ文字化けしたデータが追加されています、重ね重ね後だしで申し訳ありませんが、原因を教えてもらえませんでしょうか。
>>542 さん
ありがとうございます、斯様な実装は危険と解釈いたしました、
>>542 さんの掲示してくださった、コードを精査してみます。
>>534 で掲げた、変数ですが、WEBからPOSTされてきた、データで、
request.getParameter()で取得したデータです。
public class GetPostMethod extends HttpServlet {
DBConnectionPool pool = new DBConnectionPool();//DBの接続切断を行う基本クラス
Connection con = null;
Statement stmt = null;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//リクエストされた値を取得
int no = Integer.parseInt(request.getParameter("no"));
String lang = request.getParameter("lang");
String mess = request.getParameter("mess");
PrintWriter out = response.getWriter();
pool = pool.getInstance();
con = pool.getConnection();
stmt = con.createStatement();
String sql = "insert into HELLO_WORLD_TABLE values ('" + no + "', '" + lang + "', '" + mess + "')";
// データベースにデータをセット
stmt.executeUpdate(sql);
out.close();
}
}
>>544 ちょっとまてー!! 他にも突っ込み所が多過ぎて眩暈がするわ……。
1) 原則としてServletにインスタンス変数を持たせるな。いや、持たせてもいいんだけど、やるなら自分が何やってるか100%理解してからにしろ。
2) これはどう考えても変だろう。
> DBConnectionPool pool = new DBConnectionPool();//DBの接続切断を行う基本クラス
...
> pool = pool.getInstance();
poolはローカル変数にして、
DBConnectionPool pool = DBConnectionPool.getInstance();
にすべきなんじゃないのか。
3) SQLの組み立て部分については
>>542 に書いた通り。langやmessに「'」を含む文字が渡されたらどーすんだ。
4) execute(), executeQuery(), executeUpdate()をちゃんと使い分けろ。
>>546 さん
>>544 です、お世話になります。
>>DBConnectionPool pool = DBConnectionPool.getInstance();
>>にすべきなんじゃないのか。
仰せの通りです、錯覚してました、斯様に修正して見ました、駄目だしお願いできないでしょうか(大杉かもしれませんが・・・・・)よろしくお願いします。
import hellodb.import java.io.*;import java.net.*;import java.sql.*;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.http.*;
public class GetPostMethod extends HttpServlet {
Connection con = null;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
DBConnectionPool pool = DBConnectionPool.getInstance();
//リクエストされた値を取得
int no = Integer.parseInt(request.getParameter("no"));
String name = request.getParameter("lang");
String joint_names = request.getParameter("mess");
// 接続
con = pool.getConnection();
// データベースにデータをセット
PreparedStatement pst = con.prepareStatement("insert into ADDRESS_TABLE values (?, ?, ?)");
pst.setInt(1, no);
pst.setString(2, lang);
pst.setString(3, mess);
pst.executeUpdate();
pst.close();
}
}
ごめんなさい //リクエストされた値を取得 int no = Integer.parseInt(request.getParameter("no")); ※以下修正です String lang = request.getParameter("lang"); String mess = request.getParameter("mess");
>>547 ・conもローカル変数にしろ。
・使い終わったconはpoolに返却しろ。返却の仕方はDBConnectionPoolの仕様を確認しろ。
550 :
549 :2009/01/04(日) 16:47:06
Servletにインスタンス変数を持たせてはいけないのは何故か。 異なるブラウザ(例えばIEとFirefox)を同時に立ち上げ、以下のServletを「ほぼ同時(5秒以内)」に動かし(リロードでもOK)、countの値がどうなるか確認してみるべし。 そして、例えば個人情報をServletのインスタンス変数に格納したとき、2人以上のユーザが同時に同じServletにアクセスしたらどうなるか想像してみよう。 public class ServletTest extends HttpServlet { private int count = 0; protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/plain"); PrintWriter w = res.getWriter(); count++; try { Thread.sleep(5 * 1000); } catch (InterruptedException e) { // no operation } w.println("count = " + count); w.close(); } }
Servletはマルチスレッドだったのか。 知らなかったぜというか意識していなかったぜ。
String buff=”P01,P02,P03,・・・,PXX”; //PXXは必ずしも小さい順ではない。また重複はない とbuffに可変個数のPXXが文字列として入ってる時にこれをArrayList型のidという変数に id[0]=P01、id[1]=P02・・・と言う感じにArrayListに格納したいのですが、何かいい方法内でしょうか?
>>550 毎回 count=1 が出力されるんじゃない?
554 :
550 :2009/01/04(日) 22:03:37
>>553 されない。以下の環境で確認済み。
Windows XP SP3 + JDK 6.0Update11 + Apache Tomcat 6.0.18
>>552 java 文字列分割
java 配列 ソート
これでぐぐれば方法見つかると思うお
>>550 さん
>>547 、544です
ありがとうございます、大変参考になります、実行はしていないのですが
動作の想像は付きます、多分二回目のアクセスでおそらくsleepメッソッドがリセット
されるのではないのでしょうか?
ただ、排他制御に関して、synchronized を用い、このようなプロトタイプでの実装は
javaでは邪道なのでしょうか?
protected synchronized void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
〜省略
}
javaを始めて2ヶ月ほどなのでよく分らないのですが、排他制御を行う場合、C++では
一般的に、Mutexクラスなるものを実装するのですが、javaのsynchronized 修飾子とは
異なると思うのですが、いかがなものでしょうか?それともまったく見当違いでしたら
ごめんなさいです。
リセットではなく、ロックでしたね
>>556 >>557 です
すいません、嘘を書いてしまいました、Mutexではなく、
プロセス内で複数スレッドからアクセスする際に、一度にどれか1箇所からしか使わないようにするのは
CSemaphore(MFCのクラスでしたねたしか)でした、重ね重ねごめんなさい。
>>552 ArrayList<String> id = new ArrayList<String>(Arrays.asList(buff.split(",")));
もしリストをソートしたいのならCollections#sortでidをソート。
>>555 >>559 ありがとうございます。便利な方法があったんですね。自分は
for(int i=1;i<buff.length()+1;i++){
pid.add(buff.substring(i-1,i+2));
i=i+3;
}
こんな感じで無理矢理やってしまいました。。。
561 :
550 :2009/01/05(月) 01:41:35
>>556 まったくの見当違い。言いたいのは「排他制御しろ」ではなくて、
「共有すべきでないデータを共有するな」ということ。
1)
>>550 は、count = 0 のとき、別々のブラウザで同時にアクセスすると、
両方とも5秒後に「count = 2」と表示される。ここでのThread.sleepは、
単にcount++とprintlnとの間に別のスレッドが割り込む機会を設けてるだけ。
この例は、複数のスレッドで同じデータを共有する意図が無いなら、Servlet
にインスタンス変数を持たせてはいけないことを説明するためのもの。
2) 少なくとも
>>544 や
>>547 のような例なら、複数のスレッドからconやstmtを
アクセスできるようにする必要はないし、むしろアクセスできるとマズい。
わざわざインスタンス変数にしたり、さらにそれが同時にアクセスされない
ようにロックするのは、無意味にプログラムを複雑にしている分有害。
3) Javaがどうこうの話ではなく、一般論として、データを共有しない場合は
排他制御は不要だし、むしろやるべきではない。むやみに排他制御を行うと、
極端に性能が落ちたりデッドロックする可能性がある。もちろん、必要な
ところにはちゃんと排他制御すべきで、例えばServletだとSession
オブジェクトへのアクセスにはsynchronizedが必要。
562 :
デフォルトの名無しさん :2009/01/05(月) 03:01:04
↑他人のコードにケチつけるのはそれで終わりですか?
>>562 「ケチ」なのか?
別段間違ったことを書いているように見えないのだが・・・。
というか、この程度でケチというのはだめじゃね。
良くないことは良くないと突っ込めないようでは、後で問題が発生したときの揺り返しの方が大きい。
「鉄は熱いうちに打て」というが、早いうちに対処すれば問題は最小ですむが、後になれば、全体的な問題に
なりかねない。自分個人の話だけではすまなくなることがある。
そういう意味では、
>>544 のように他人の意見を聞くのはいいことだと思う。
まぁそうだねぇ 謙虚に話を聞けない奴は大成できない
565 :
デフォルトの名無しさん :2009/01/05(月) 04:03:58
プログラムというのは、新しくコード作るよりも、既存のコードを修正するほうが圧倒的に多いですよ。 そのとき「複数のスレッドからconやstmtを アクセスできるようにする必要はないし、むしろアクセスできるとマズい。 わざわざインスタンス変数にしたり、さらにそれが同時にアクセスされない ようにロックするのは、無意味にプログラムを複雑にしている」 のようなコードの保守を任されたとき、あなたの能書きではどうやって解決するんですか? 他人のコードのケチつけるだけで、結局あたなは何も出来ない無能ってことを隠してるだけでしょw
選択肢1: 技術屋としての誇りを持って、正しく動作するように書き直す 選択肢2: どうせ分かりやしない、保守してる素振りを見せて工賃を頂く 大概、1は報われない。むしろ無能呼ばわりされるのが落ち
他人のコードなんか直すくらいなら、仕様書みて全部自分で書き直したいよね
そういう状況下だと、現状の実装が仕様になってしまっているケースも。
>>563 みたいのは、「熟練技術者の極意」とかの教本を読みすぎちゃって頭が壊れて狂信になってんだろ。
洗脳されちゃってる分際で一般論がどうとかこうとか書いてあるけど、C++と同じくそれも一つのパラダイム(流行)でしかないのにね・・・
>>569 いや、
>>563 を叩く理由が全然わからないのだが・・・
一般論と言っている部分は至極普通の経験則だし、Connection
をローカル変数にしろという指摘も実際それがバグの原因になる
可能性がある以上、的確以外のなにものでもない。
変な妄想を持ち出す前に、叩くなら内容を叩けよ。
>>565 なんか違くね。
> プログラムというのは、新しくコード作るよりも、既存のコードを修正するほうが圧倒的に多いですよ。
というのは、今回の
>>544 の状況には当てはまらないし、
>>550 が書いているのは一般論としても
全く問題がない。
というかいつの間に保守コードの話になったんだ? そんな話は微塵も出てこなかったと思うが?
何がお前さんをそこまで反応させるのか分からないが、論点がずれてるよ。
まともに動作しないプログラムの不具合の指摘をケチとは恐れ入った。 好みや仕様で看過できるレベルの話ではない、致命的な欠陥なのに。 同時ログインしている他人の他ユーザの情報が読み取られるって どういうことかわかってるのか?
論理的正しさよりも、言い方の問題だと思うよ。
そういう奴が大手振ってられるのが、今のIT業界なんだよ。 だからSQLインジェクションとか平気で食らう。
コンボボックスの略し方はボボックスでいいですか
実行時に使用するjreはどこで指定されているのでしょうか? 現在jre6(update10)とjre5が存在しておりjre6の方を使用したいのです。 環境変数の「Path」、レジストリのキーにJavaが含まれているもの、を全て見てみましたがいずれも6の方が指定されていました。 他にどこで記述されているのでしょうか?
577 :
デフォルトの名無しさん :2009/01/05(月) 10:09:21
>>570-572 1年ぐらい前に孤独のPGが死体バラバラ殺人事件犯したんだよね。確か奴は月で80万以上稼いでたかな。
そいつも同じようなこと言ってキチガイぢみてたけど。
>>575 コンボボだろ
ム板の初心者スレだし一般論で何がまずいのか
気に入らない奴はマ板いけよw
既存のコードを修正する場合が多いとしたら、 当然、ちゃんと動かないところは直すだろ。 仕様とか関係ない。仕様も直すよ。
javaを始めようと思ってますがテンプレ
>>2 の**** 開発環境が必要の場合は ****
の3つはどれがお勧めですか?できればどれを使ってるか教えてください。
仕様の悪さが極小的な事は稀、ほとんどの場合、全体に及んでいるので、直すなら全体も直す事に成らないか。 結局、新しく作ったほうが早いって場合も多い。せっかくのオブジェクト指向言語で、再利用したくても、設計が悪くては使い回せない。 ところで、下らん質問だが、 クラスのメインメゾットに最初にしか実行しなくていい手順をゴッチャリ書いては駄目な理由ってあるの? サンプル見てると、コンストラクタ作って、そっちを呼んでるが、再利用する事がない場合にわざわざコンストラクタを作る必要性が理解できない。orz これを見ろとかでもあったら貼ってくれないか。javaの道は険しくて挫折しそう。orz
大抵,読み取り専用でないstatic変数はグローバル変数と同じだから使わない というようなポリシーがあるから
>>582 > 仕様の悪さが極小的な事は稀、ほとんどの場合、全体に及んでいるので、直すなら全体も直す事に成らないか。
極小的?
int a = 1<<4; この"<<"はどういう意味を表しているのでしょうか?
くく →九九 つま(ry
588 :
デフォルトの名無しさん :2009/01/05(月) 22:17:45
590 :
デフォルトの名無しさん :2009/01/05(月) 23:13:25
文字型配列を、"OKINAWA"を初期値として宣言し、文字列を 反転させて、"AWANIKO"と出力するプログラムを作りなさい。
591 :
デフォルトの名無しさん :2009/01/05(月) 23:15:22
上のミスだからいいです。
ビットシフトってなんのために存在してるの?
595 :
デフォルトの名無しさん :2009/01/06(火) 00:09:25
1. a.jarがb.jarにあるinterfaceを使う 2. このinterfaceの引数専用にDTOをつくりたい。DTOはa.jarの他のDTOに依存。 この場合、どっちのjarのパッケージにDTOを含めるのが一般的?相互依存になるのが気持ち悪い。 aとbを同じjarにするのが一番いいんだろうけど、b.jarのクラスはPOJOには作れないから分割してる。
ワロタw
>>596 interfaceをa.jarが提供してb.jarで実装クラスを作る?
やっぱり構成が間違ってる気もします。
c.jarを用意して関連するDTOを全部そこに移した方がいいのかな。。。
>interfaceをa.jarが提供してb.jarで実装クラスを作る? そんな感じだけどb.jarで実装クラス作るんじゃなくてb.jarには抽象クラス郡を収めた方が良いんじゃないかな? でb.jarをアプリケーション層とかうえの層で使う感じに。 a.jarにDTOのインターフェースを用意してb.jarにその抽象クラスを作る。それを参照するDTOImpl.jarみたいなのがあってもいいかと。 スタック図だとこう? その上の層 ------- b.jar ------- a.jar または その上の層 --------------- b.jar │ c.jar --------------- a.jar
>>599 thx!
b.jarはライブラリというよりは
アプリケーション層という位置づけなのでb.jarで実装クラスかなぁと。
他のjar用にinterfaceだけ用意するのは手法としては一般的なんでしょうか。
>DTOのインターフェース
そういうやり方もあるんですね。DTO=具象クラスという固定観念があり
思いつきませんでした。
>スタック図だとこう?
そのとおりです。
その上の層(warのコントローラとか、バッチとかビジネスロジックのクライアント)
-------
b.jar(ビジネスロジックと関連するDTO)
-------
a.jar(ミドルウェア上だけで動く)
または
その上の層
---------------
b.jar(ビジネスロジック) │ c.jar(関連するDTO)
---------------
a.jar
たまたま気づいたんだけど、 こんなコードもコンパイルできるみたいだね。 public class Foo { ; // 意味のないセミコロン } ; // 意味のないセミコロン この言語仕様は何のためにあるの? C++ を書くときのクセで クラス宣言の後にセミコロンを付けてしまう人向けとか?
式が書けるとこは空でもいいということでしょ。 ダメだったらvoidメソッドの引数が空だったときコンパイルエラーが出てしまうか、 特別扱いしなきゃならん。
>>601 JLSによればコンパイル単位は、1個以下のパッケージ宣言、0個以上のインポート宣言、0個以上の型宣言から成っていて、
型宣言は、クラスかインタフェース宣言(ClassOrInterfaceDeclaration)、もしくは、セミコロンということになっている。
だから、セミコロン1個だけが入ったソースファイルもコンパイルエラーにはならない。クラスファイルは生成されないが。
それどころか文法通り空ファイルをコンパイルしても文句は言われない。
クラス宣言の本体についてもセミコロン単独で本体の要素となることが文法で定義されている。
604 :
デフォルトの名無しさん :2009/01/06(火) 14:02:57
第2の2ch作りたいのだが・・・ さんねる 運営人募集
第2の2ch さんねる
http://www.3nell.net/ 運営人を募集してるぞ!
運営人や管理人がいるIRCに来て直接アピールだ!
Perl使えます、Java使えます、掲示板持ってます等!
http://irc.nahi.to/ IRC導入の仕方はここ 簡単
Limechat ツール
http://limechat.net/ サーバ>サーバの追加>接続>設定名とニックネーム適当に入れてOK パスいらない
サーバのプロパティ>チャンネル>新規
チャンネル名に #さんねる-Administrator を全て入れる これだけ あとはサーバ>接続
606 :
デフォルトの名無しさん :2009/01/06(火) 14:34:30
javaで user time, system time を測定するにはどうしたらいいですか。 /usr/bin/time でもいいけど、jvmの起動時間とかを含めたくないので、 コードの範囲を指定して測定する方法があればヒントだけでも教えてください。
誤差とか考えると正確に測るのは難しいよ。 スレッドだっていくつも動いてるわけでいろいろな要素を考えなければならない。 やっぱりCとかでネイティブな環境で測ったほうがいいかもしれない。
>>606 プロファイリングしたいのなら
テストしたいコードごとに測定コードを書かず
java用の既存のプロファイラを使った方がいいかと
>>603 そんな仕様があるとは知らなかった
でも何故そんな仕様に
610 :
デフォルトの名無しさん :2009/01/06(火) 17:39:00
Java5のソースをJava1.4のソースに変換するソフトはありませんか?
>>609 さあ?何かの予防的仕様かもしれないし、重要な意味があるのかもしれないし。
配列の宣言で変数名の後に[]を付けても通るのと同じように、
>>601 の言うように単に、
> クラス宣言の後にセミコロンを付けてしまう人向け
なのかもしれない。
クラス宣言の本体の要素として単独のセミコロンがあるのも、 内部クラスの宣言の後にセミコロンを付けてもいいようにだったりして。
import javax.crypto.spec.SecretKeySpec; import javax.crypto.Cipher; import javax.crypto.BadPaddingException; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; (略) jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); 例外 java.security.InvalidKeyException は報告されません。 スローするにはキャッチまたは、スロー宣言をしなければなりません。 って出るんですけど、どうしたらいいか分かりません。
>>613 jButton1ActionPerformed()がInvalidKeyExceptionを投げる可能性があ
るのかな?
もしそうなら、InvalidKeyExceptionが投げられたときにプログラムがど
うするべきかをまず考えるべし。
616 :
606 :2009/01/06(火) 19:15:03
>>607 >誤差とか考えると正確に測るのは難しいよ。
どこまで正確にはかるかは特に考えていませんが、
すくなくともJVMの起動時間は除外し、かつuser timeとsys timeぐらいはとりたいと思っています。
>スレッドだっていくつも動いてるわけでいろいろな要素を考えなければならない。
測定したいコードはマルチスレッドで動く訳ではないので、今のところスレッドまで考慮する必要はありません。
>>608 >テストしたいコードごとに測定コードを書かず
>java用の既存のプロファイラを使った方がいいかと
プロファイラとかそんな大げさなものを必要としてないんですが。
たんに、
t1 = System.getCurrentTime(); // とかなんとか
...計測したいコード...
t2 = System.getCurrentTime();
System.out.println(t2.userTime() - t1.userTime());
System.out.println(t2.systemTime() - t1.systemTime());
ぐらいのものでいんですけど。
JavaのIDEにはプロファイラがついてるから、JavaのAPIにuser timeやsystem timeを取得するようなものってありますよね。
それを紹介していただきたいのですが。
自分でマニュアルみた限りでは見つからなかったので、ご存知の方がいればお願いします。
public IntArray(int ele, int sub){ this.data = new int[ ele ]; Arrays.fill(data, sub); } public IntArray(int ele){ this.data = new int[ ele ]; Arrays.fill(data, 0); } このような複数のコンストラクタがある場合は thisの機能で、コンストラクタから別のコンストラクタを参照する場合に使用する。 という機能が使えるようなのですが、どの変でthisを使うのでしょうか?
>>617 superと同じくコンストラクタの先頭
ウインドウ型について質問です いかのようなコードを書きました(途中省略) … public void update(Graphics g) { paint(g); } public void actionPerformed(ActionEvent e) { if (e.getSource() == btn1) buttonSelect = 1; if (e.getSource() == btn2) buttonSelect = 2; if (e.getSource() == btn3) buttonSelect = 3; repaint(); } public void paint(Graphics g) { switch (buttonSelect) { case 1: g.drawLine(10, 10, 20, 20) break; case 2: g.drawLine(20, 20, 40, 40) break; case 3: g.drawLine(40, 40, 60, 60) break; } … これを実行してボタン1、ボタン2、ボタン3を押すと、updateをオーバーライドしたのに、 前に描かれた線が消えて新しい線が描かれます。 何が悪いのでしょうか?教えてくださいm(___)m
こんばんは質問させてください。 JDBCとPOIを使用してDBに入っているデータをEXCELファイルに書き出すプログラムを作成しました。 ECLIPSE環境でJVMに1GBのメモリ割り当て 30MBのEXCELファイル作成するプログラムがスレッド起動で2つ同時に動いていたのですが JARに固めて起動するとアウトオブメモリが起きてしまうのです。 とりあえずGCログを眺めてますが原因がわかりません。 何か原因調査方法がありましたら教えていただけませんか。 よろしくお願いします。
>>620 jarのダブルクリックを止めて、コマンドから-Xmxオプションを付けて実行するんだ!
622 :
606 :2009/01/06(火) 22:32:54
>>616 あれー反応がない。
Javaではuser time、system timeを取るのって難しいんでしょうか。
>>621 さん
レスありがとうございます。
マニフェストファイルいじってないのでダブルクリック起動はしてないですよー。GCログでもメモリが1024Mになってます。
でもありがとう。私もしょうもない原因な予感がしてまいりました…引き続きお願いします。
>>622 ゆーざーたいむとかしすてむたいむとかわけわかんねーが
java 時間
でぐぐれば何ぼでもでてくるやん
>>622 実行時間を取りたいってこと?
long stime = new GregorianCalendar().getTimeInMillis();
helloworld();
long etime = new GregorianCalendar().getTimeInMillis();
System.out.println(etime - stime);
こんなんじゃダメですか?
質問の意図が違ってたらごめんね
>>609 >>602 が答えだと思うんだが、ちがうのか。
メソッド引数の括弧の中は空っぽか式が書けると定義するより、
空っぽのものも式であると定義して除外しない方が自然だと思うんだが。
だから、「(式);」は(式)が空の場合、すなわちセミコロンだけでもOKなんじゃないのかね。
classの外にだって「import〜;」なんか書けるわけだから、
同様にセミコロンのみの空文だってわざわざ排除する必要はないでしょ。
メソッド引数の括弧の中の話なんて誰もしていないと思うんだが それにクラスメンバーにもともと式文はないから 空の式文が書けることがセミコロンをクラスメンバーとしている理由ではない 式や文を書くことがないクラスの外ならなおさらのこと import宣言やpackage宣言は必ずimport 識別子 ; の形をしているので セミコロンだけというものはない > 空っぽのものも式であると定義して除外しない方が自然 だけど、それがクラス宣言の内外に無意味に見えるセミコロンを許している理由ではないと思うよ セミコロンがパッケージ宣言やインポート宣言にあるとみなされる ; import java.util.*; public class Foo {} はコンパイルエラーになる
× 必ずimport 識別子 ; の形をしているので ○ 必ずpackageやimportキーワードが付くので
>>609 >>628 こんな風に書くためじゃない?
for (int i=0; i < 1000000; i++);//時間稼ぎ
>>629 参考元だけ出されても分からない。
どういう風に修正したのかの情報を。
>>631 そんな、BASICみたいな事するかよ!
>>628 解説サンクス。
それでも式だろうが宣言だろうが
末尾にセミコロンが来るという共通の形を持つ以上
やっぱり仕様の一貫性を求めた結果である気がするけどなぁ。
cpui起動os起動時間とかそういうことか? class java.util.Dateとか、System::currentTimeMillisとかとどう違うか区別出来てないでしょ。
timeが例に出てるんだから、 ユーザープロセス処理中に経過した累計時間と カーネル処理中に経過した累計時間のことじゃないの。 漏れはJavaで取得できるのかはシランが、そんなOS依存ぽいのは取得できないんじゃないか?
なんでわざわざ時間割かなきゃなんねえのwww
>>632 private static String decrypt(String key, byte[] encrypted)
ここの引数を
byte[] encrypted = (jTextArea1.getText()).getBytes();
String key = jTextField1.getText();
にしました
640 :
デフォルトの名無しさん :2009/01/07(水) 11:37:39
Appletで計算させるのに必要な変数がintが2個doubleが4個あります。 double4個の内2個は2者択一なのでchoiceで値をgetさせたいと思っています。 入力画面はできたのですが、手順のあまりの面倒くささにhtmlの入力を使う事に 変更しました。 この渡す変数は全部文字列にして渡して、appletで必要な形に変換するのが 正解ですよね?
641 :
デフォルトの名無しさん :2009/01/07(水) 11:54:33
hibernateとstruts2を使ってjavaのウェブアプリケーションを作ってるのですが、 hibernateやstruts2のようにjarファイルをtomcatに突っ込むだけのフレームワークの場合、 詳細なログはどうやって見るのでしょうか? 専用のログファイルが無いので、tomcatのログに一緒に出てくる簡単なログしか見れません。
Javaの勉強を始めたばかりですが、ソースの記述で 疑問があるので、ご教示戴けるとありがたいです。 次のようなソースがある場合、(1)〜(3)はどうなりますでしょうか? class Klass { // (1)↓ここの定義時に null を設定すべきでしょうか? // 又はコンストラクタ先頭でやっている // 「new OtherClass1()」をここで記述するのは // 適切ですか? Object obj1; public Klass(){ obj1 = new OtherClass1(); obj1. anyOperation(); // (2)↓obj1に別クラスのインスタンスを持たせたい場合に、 // newする前に obj1 = null などは不要ですか? obj1 = new OtherClass2(); // (3)↓使い終わったobj1は、null設定などでクリアしなくとも GCで回収されるという理解でよろしいのでしょうか? obj1 = null; } }
644 :
640 :2009/01/07(水) 12:28:32
ダメだ。htmlのparamにデータを渡す方法が分からん。 やっぱりjavaに戻ります。
>>644 AppletからJavaScript経由でHTMLと
データのやりとりができる。
詳しくはググれ。
ググらずともjavadocに載ってるぞ。
int型の配列を受け取り、そのコピーを内部的に保持する、というコンストラクタなんですが 配列のディープコピーがしたいのですが、これではシャロコピーなんですよね? ディープコピーにするにはどう修正したら言いのでしょうか? public Array( int val[] ){ this(val.length); for(int rep = 0; rep < val.length; rep++){ data[ rep ] = val[ rep ]; } }
>>647 intにシャローもディープもない。
その処理 or System.arraycopy() でじゅうぶん。
String型のTimeに時刻を表す文字列が入っているとき(下のような感じで)、 String Time = "20081203172500";//2008年12月3日17時25分00秒 この時刻が、「その日の20時以降かどうか」を判定するにはどんなコードを書けばよいでしょうか? 上記の例だと17時25分なのでfalseという感じで。 つまりその日の20時~0時までの間にtrueを返すようにしてほしいです
Stringクラスについて質問します 例えば「あ”いうえ”お」 ””で囲んだ部分を抽出してくれるメソッドはあるんでしょうか><
正規表現
splitが楽だろうと思う
>>643 (3)null を代入せずに終わると、誰かが Klass クラスを参照している間は GC されないことになる。
「いうえ」という文字列を抽出したいのか、 中央の三文字を抽出したいのか、 ニ文字目から四文字目までを抽出したいのか、 また別の条件のつもりなのか、 わかりません><
>>643 (1)どれもあり。 行儀の問題として自分でルールを決める。
>>655 範囲指定して抽出したということです
string.chusyutu("あいうえお",1,3)
こういう感じで2文字目、3文字目、4文字目を抜けるメソッドはないのですかね^^
659 :
650 :2009/01/07(水) 21:13:16
追記です。 String型での判定が複雑な場合GregorianCalendar形式を使ってもOKです
>>660 ありがとう!!!!
これは神メソッドだな・・・><
>>650 「その日」てのがどの日のことなのか不明だけど、そこは置いといて、
if (Time.charAt(8) == '2') {
// 20時以降
}
で良いんじゃね?
>>662 あぁ、この場合そういう手もありますね。。。
20時はあくまで例です、19時の場合もあります。
その日というのは、この場合2008年12月3日のことです。
もちろんTimeの年月日の部分が変わればその日も変わります
そのような場合はどうでしょうか?
>>663 ちょうどsubstring()の話題も出ているし、自分で考えてみたら?
桁数固定なら文字列のままでもいいし、4桁の整数だと思ってもいいし、
真面目にCalendarを使ってもいいし。比較対象の「20時」「19時」って
のがどういう形で渡ってくるのかによって最適なコードも変わるだろう
し。
>>664 Calendar型ってbefore、afterってあるんでしたっけ?
あるならなんとかできそうなんですが。。。
667 :
650 :2009/01/07(水) 22:32:36
>>664 こんな感じで作りました。calendarクラス便利でした、ありがとう
public static boolean JudgeTime(String time){
int year = Integer.parseInt(time.substring(0,4));
int month = Integer.parseInt(time.substring(4,6));
int day = Integer.parseInt(time.substring(6,8));
int hour = Integer.parseInt(time.substring(8,10));
int minute = Integer.parseInt(time.substring(10,12));
int second = Integer.parseInt(time.substring(12,14));
GregorianCalendar gc_now = new GregorianCalendar(year,month-1,day,hour,minute,second);
GregorianCalendar gc_20 = new GregorianCalendar(year,month-1,day,20,00,00);
GregorianCalendar gc_24 = new GregorianCalendar(year,month-1,day,23,59,59);
if(gc_now.after(gc_20) && gc_now.before(gc_24)){
return true;
}else{
return false;
}
}
>>650 下6桁を整数にして、200000より大きいかどうか、が単純でいいかも。
アマゾンで改訂版がどんどん出てますが 初心者なら旧版でも十分ですよね
>>668 今住んでいる国では日付の表記がDDMMYYYYなんだよな〜。
ここの人に日本ではYYYYMMDDだとか言ったら何それ馬鹿じゃない
どう考えても妙だ不自然だ極東の島国はいったい何考えてるんだ、
みたいな感じでコテンパンにコケにされたことがある。
ソートや比較も簡単だろとアピールしても「変」の一点張りだった。
計算機と親和性の高い日本式表記には感謝して良いと思う。
そして工夫を覚えない馬鹿が増える 真に豊かな地には文明は栄えない
日付け表記の国際規格 ISO 8601 は Y-M-D の順だったりする。
細か過ぎるものと大雑把すぎるものは あまり情報としては役に立たないから 年や秒を後回しに言う、というのは一見利に適っている。 しかし、順番をごちゃごちゃさせるのは機械処理には向かない。
>>667 DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
Calendar c = Calendar.getInstance();
c.steTime(formatter.parse(time));
なんて手もあります。
>>672 そこはなんてったってフランス人ですから。国際規格より俺規格。
日付を口に出して読み上げれば<<7 janvier 2009>>なんだから
書くときも07/01/2009に決まっとるだろ、てな感じです。
676 :
デフォルトの名無しさん :2009/01/08(木) 02:59:12
俺規格が酷いのは日本の方だろw 日本は鎖国ってこと知らんのか? 閉鎖感が嫌な人はどんどん海外に出て行ってしまって、日本の損失だっていわれてるだろ。
ドコモとかJALとかNHKとか。
>>677 マジレスされるとちょっと辛い。まぁ、日付の話は笑い話です。
今はフランス人も若い人は特に柔軟ですよ。
フランス人はどちらかというと個を重要視してるだけだと思うが。
フランスというのは、大統領がJPOPを歌ってCDまで発売しちゃてるところだろ。 なにが「個を重要視してる」だ。アホかw
682 :
デフォルトの名無しさん :2009/01/08(木) 07:08:12
質問です。Javaでホームページ上で出来るゲームを作ろうと思ってるんですが持ってるJava入門書のSDKはヴァージョンが古いんです・・・。 最新のは今現在どれなんですかね? またその本でするからには古いヴァージョンをインストールしたほうがいいんですかね? 教えて下さい┏○ ペコッ
┗(^o^)┓ 三 ┏ ┗ 三
684 :
640 :2009/01/08(木) 09:43:06
1/2 皆さん、初心者相手に本当にありがとうございます。 実は今週の月曜から必要に迫られてjavaを触ってますが分からないことばかりでへこたれそうです。 以下のプログラムをググリながらコピー・修正しました。代入の値を確かめるために変数の表示を させようとprintlnのルーチンを付けましたが表示されません。何が違っているんでしょうか? import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class ChoiceTest3 extends Applet implements ItemListener { double l , k0; Choice lChoice, k0Choice; String [] ls = {"50","1.0E50"}; String [] k0s = {"MATH.PI/6.0","5*MATH.PI/8.0"}; public void init() { lChoice = new Choice(); k0Choice = new Choice(); for ( int i = 0; i < 2; i++ ) { //Choiceの項目を生成 lChoice.addItem(ls [i]); k0Choice.addItem(k0s [i]); } add(new Label("l")); //ラベルを追加 add(lChoice); //Choiceの項目を追加 add(new Label("k0")); add(k0Choice); lChoice.addItemListener(this); //Choiceのイベントのリスナ設定 k0Choice.addItemListener(this); }
685 :
640 :2009/01/08(木) 09:43:57
// 2/2 //Choiceのイベント処理用メソッド public void itemStateChanged (ItemEvent e) { if (e.getSource () == lChoice) { String st1 = lChoice.getSelectedItem(); l = Double.parseDouble(st1); //文字列st1を実数lに変換 System.out.print(l); } else if (e.getSource () == k0Choice) { String st2 = k0Choice.getSelectedItem(); k0 = Double.parseDouble(st2); } } public void conf(String args[]){ System.out.println("l == "+ l); } }
特定のファイル名から特定の文字列を含む・含まないものを検索するプログラムを作っています. 例えば String ss[] = new String[]{ "C:\aababb.txt", "C\abbbb.txt", "C:\bbbba.txt", } とあった場合 ファイル名に文字列abを含んで かつ aaを含まないというのを選択したいのですが これをString#matchの正規表現でやるとどうなるのでしょうか? .*ab.*でマッチしてかつ.*aa.*とマッチするものをアンマッチにしたいのですが正規表現にこのような記述は不可能でしょうか?
無理に一つの正規表現にせず、そのまま二つの正規表現を使って 評価すれば良いのでは。あとはif文等々の中で論理演算。
フレームに貼ったパネルのpaint()メソッドが呼ばれない場合があって原因がわからず困ってるんですが・・ class JFrameTest extends JFrame{ public static void main(String[] args){ JFrameTest frame = new JFrameTest(); frame.setSize(600, 400); frame.setVisible(true); JPanelTest panel = new JPanelTest(); frame.add(panel); } } class JPanelTest extends JPanel{ public void paint(Graphics g){ g.setColor(Color.BLACK); Dimension panelSize = this.getSize(); g.fillRect(0, 0, panelSize.width, panelSize.height); } } 例えばこのプログラムを実行すると 大抵うまく動いて真っ黒に塗りつぶされたパネルが貼られたフレームが表示されるんですが 4回に1回くらいの割合で黒くならずにデフォルトの色のままのフレームが表示されてしまいます。 上手くいかない場合も例外は全く検出できず print文入れてトレースしてみるとpaint()メソッドが全く呼ばれてません ならば自分でパネルのrepaint()を呼び出せばpaint()呼んでくれるかなと思ったんですダメでした 何が原因か解る方教えてください 使ってるのはJDK1.5です
>>686 String#contains("ab")は?
日本式表記というなら元号表記だろう。1300年の伝統がある天皇陛下敬えよ。 H21/01/07だよ。
もっと伝統あるだろ・・・
今年は皇紀2669年です
javadocの文章が変すぎてわかりません。
ちゃんと正式名称で書けよ! 今日は神武天皇即位紀元弐千六百六拾九年睦月八日だ。
JDK付属のAPIドキュメントは エスパー向けの文章とか誤訳とかが多すぎる。
カフラカナハデ日捌月睦年玖拾陸佰陸阡貳元紀位即皇天武神
日本式表記に横書きはない ちゃんと縦書きにしろよ 難しく考えず一行一文字の縦書きでもいいから
>>696 その通りだがよく間違えずにタイプ出来たなw
>>699 つ StringBuilder#reverse
javaで表を作成しそれを出力するプログラムを作りたいのですが、その表の項目が次のような感じになってます ・最上段→左端が空白、その右から1,2,3…10 ・最左段→上端が空白、その下からa,b,c…g この2つは項目名です 二段目から ・2,3段目にテキストファイルから読み込んだ値を入れる ・残りの各段に2、3段目から読み込んだ値をそれぞれの計算式によって計算した値を入れる わかりにくい説明ですいません こんな感じの表を作ろうとしたのですが、ググって出てきた「swing」を使えばいいと思ってはみたもののテキストファイル読み込みなどでどうすればいいものかわからなくなってしまいました
702 :
デフォルトの名無しさん :2009/01/09(金) 01:52:34
日本鼻糞男児がいるスレはここですか?
>>696 「なかろう」は、歴史的仮名遣いでは「ナカラフ」ではなくて「ナカラウ」と書くのだよ。
705 :
デフォルトの名無しさん :2009/01/09(金) 16:04:23
706 :
デフォルトの名無しさん :2009/01/09(金) 16:07:01
Java5(1.5)のソースをJava1.4のソースに変換する方法はないでしょうか?
708 :
643 :2009/01/09(金) 16:17:50
709 :
デフォルトの名無しさん :2009/01/09(金) 17:59:06
キーボード入力で 日本語入力できなくなった
無変換キー押せw
711 :
デフォルトの名無しさん :2009/01/09(金) 18:11:39
JCPadのDOS画面で何を押しても日本語が入力できない
Alt+全角キー押せ
713 :
711 :2009/01/09(金) 18:46:31
神ktkr
javaFXスレが見つからないのですがここでいいですか?
swingすれかな。
クラス名に漢字や全角文字の名前をつけたとき、プラットホームが変わっても無問題ですか?
>>717 ありがとう。英語の呼び名が無いものばかりなんでしょうがないのです。
ローマ字にすると、今度はそれを使う人々から嫌われそうだし、自分でもわかりにくくなるので。
Javadocコメントではどうかしらね
jarにしてれば非ASCIIでもちゃんと動くんだっけ? 長年Javaを触ってるけど、非ASCIIのクラス名なんていかにもトラブルが 起きそうで避けてた。
javaまるっきりの初心者なんですが質問させてください。 昨日まではきちんと動いてたんですが、今日コンパイルしようとしたら ”Error occured dureing initilization of VM java/lang/NoClassDefFoundError: java/lang/Object" と出ました。 何のエラーなのか何処でエラーでてるのかさっぱりです。 教えてください。
>>721 でたー、なにもしてないのに動かなくなった!!!
もうね、あほかと
全角のクラス名が使えるようになってるのは、使って良いってことだと解釈して良いよね。 もし使うとまずいなら、厳格なJavaコンパイラが見逃すとは思えない(という信仰w)
問題があったらエクリプスでリファクタリングしてもらえばいいやん でもcvsにぶち込むときにファイル名に〜があったらコケタw
"〜"はUnicode<->SJISのマップが腐ってるみたいで、 "?"(NTFSで使用不可)になることがある
>>725 それはJavaのせいじゃない。WAVE DASH問題でぐぐれ。
727 :
デフォルトの名無しさん :2009/01/10(土) 06:51:10
eclipseで故意に例外をキャッチするコードなんですが public static void main(String[] args){ java.util.Scanner sc=new java.util.Scanner(System.in); System.out.println(sc.nextInt()); try{ System.out.println(gs[sc.nextInt()]); } catch(java.util.InputMismatchException e){ System.out.println("例外発生:"+e); } finally{ System.out.println("処理終了"); } これを実行してもきちんと例外をcatchしてくれず投げっぱなしのままなんです どこが問題なのでしょうか?
コマンドライン引数の処理って、何を使われていますか? 自作?
>>728 C的にハードコーディングしちゃうのが多いと思う
javaからバッチ呼び出すとき、バッチが終了するのを待つため、waitForを 使っていますが、永久待ちになるケースがあります。 ・log4jを使用すると永久待ち。 ・log4jを使用しないと5秒待ち。 Test.javaからtest2.batを呼び出しています。 このような現象をご存知でしたら、お教えください。
■Test.java public class Test { public static void main(String[] args) throws Exception { Process p = Runtime.getRuntime().exec("test2.batのパス"); p.waitFor(); } } ■Test2.java import org.apache.log4j.Logger; public class Test2 { private static final Logger logger = Logger.getLogger(Test2.class); public synchronized static void main(String[] args) { try { Test2.class.wait(5000); // log4jの機能をつかってみる logger.isDebugEnabled(); } catch (Exception e) { e.printStackTrace(); } } } ■test2.bat cd "パス" set cp=lib/log4j-1.2.9.jar; java -cp %cp% -Dlog4j.configuration=log4j2.xml Test2 exit
>>727 Scanner#nextIntはInputMismatchExceptionだけでなく、
NoSuchElementExceptionやIllegalStateExceptionを投げる可能性がある。
どれもRuntimeExceptionなので捕捉コードを書かなくてもコンパイラは通す。
NoSuchElementExceptionはInputMismatchExceptionのスーパークラスなので、
catchする順番を間違えるとコンパイルエラー。
細かな区別は不要で可能性のある実行時例外を捕捉するだけなら、
NoSuchElementExceptionとIllegalStateExceptionをcatchすれば
APIドキュメント上の例外は網羅できると思う。
大雑把にはRuntimeExceptionをcatchしても別にいいけど。
配列にもアクセスしてるからArrayIndexOutOfBoundsExceptionが投げられる可能性もある って書こうとしたがキャッチしていない実行時例外が発生したら 普通投げっぱなしでどこかへ消えるってことはないよね それとも投げっぱなしというのはcatch節を実行してくれずに例外を吐くだけって意味かな
735 :
デフォルトの名無しさん :2009/01/10(土) 17:30:32
public class Pet{ String name; public void setName(String name){ this.name=name; } public String getName(){ return name; } public String cry(){ return name; } public class Dog extends Pet{ public Dog (String name); } public String cry(){ return "わん わん" } } } public class PetTest{ public static void main(String[] args){ Pet pet = new Dog("ポチ"); System.out.println(pet.getName()+"が鳴きます。"); } } 継承のところなんですがなぜ"わんわん"と表示されるのかが分かりません。 いつDogクラスのcryを読み込んでいるのですか?
>>736 すみません、なんだかコンストラクタが全くわかってなかったみたいで
>>735 は忘れてください、メチャクチャなソースでした
JFrame上のJTableでハードディスク上にあるファイルの一覧を表示して, その一覧から特定のファイルをWindowsnのエクスプローラにD&Dすると エクスプローラ上に指定したファイルが生成されるというプログラム作っているんだけど JTableからエクスプローラにD&Dでファイル生成する方法が分かりません. D&D先のエクスプローラのパスさえ分かれば何とかなりそうなんですが,可能でしょうか?
多分無理 俺が思いつく方法は 1.JTableからドラッグされた時に発生するイベントでテンポラリファイル作成 2.テンポラリファイルをドラッグした事にする 3.エクスプローラにドロップされたら、後はウィンドウズが勝手になんとかする
JEditorText を使ってちょっと特殊なプレーンテキストエディタを作ろうとしていますが、 独自のフォーマットのファイルを読み書きしたい場合は どのように実装するのがセオリーなんでしょうか? DefaultEditorKit を継承して read/write をオーバーライドするとか? それとも普通に Document に読み書きするだけでおk?
742 :
デフォルトの名無しさん :2009/01/11(日) 07:59:41
スーパークラスのコンストラクタは、継承できないという記事を読んだのですが abstractを付けたクラスも、コンストラクタは継承できないのですか?
>>743 スーパークラスのコンストラクタは呼び出せるけど、継承できない。
だからサブクラスの方でコンストラクタ宣言しないと
サブクラスのインスタンスは作れない。
サーブレットはプログラマが特別に意識しなくても 多数のクライアントのリクエストを扱えるWebアプリケーションが作れますよね。 これはサーブレットの実装が裏でスレッドセーフにするための処理をしてくれているのでしょうか? 同一のサーブレットオブジェクトが複数のスレッドからアクセスされるためには 裏でどこかでsyncronizedされたメソッドがある、と思ったのですが ググってもそれらしき情報が無いです。 サーブレットはどのように複数クライアントのリクエストの処理を実現してるのでしょうか?
>>745 synchronizedがあったらスレッドセーフ、というわけではない。
スレッド間で共有するデータがなければ同期は不要。
サーブレットの場合、リクエストを処理するメソッドに渡される
HttpServletRequestやHttpServletResponseはスレッド毎に作られ、
他のスレッドと共有することはないので、基本的に同期する必要はない。
例外はHttpSessionで、複数画面を同時に操作していたり、ダブルクリック
してしまったりすると、タイミング次第では同一ユーザからの複数の
リクエストが同時に処理される可能性がある。このような場合には同期が
必要なので、「HttpSessionオブジェクトを対象とする」synchronized
ブロックが必要になる。
ある領域内に、ボタンを押すごとにランダムに線を描くコードを描きました そして、線を描いた後にGUIのウインドウを最小化してから元に戻すと、 また新しく違った線が描画されます。 元描いてあった線をそのまま描画するにはどうすればいいのでしょうか? アドバイスお願いします
748 :
745 :2009/01/11(日) 14:37:04
>>746 丁寧にありがとうございます。
おぉなるほど・・・サーブレット自体にはスレッド個々の情報を持たせていないんですね。
ということは自分で勝手にサーブレットにインスタンスフィールドを作る場合は
synchronizedで扱わないといけないのでしょうか?
仕事でも今まで何の対処もしていませんでしたが(汗)
749 :
745 :2009/01/11(日) 14:48:43
ググってみたら、サーブレットにフィールド作るのは普通にタブーなんですね。 う〜ん勉強になりました。
>>748 その質問自体についてはyes。
ただし、単にsynchronizedを付ければいいというわけではない。
まず、サーブレットはシングルトンで、各サーブレットクラスの
インスタンスはサーバ全体でそれぞれ1個しかないことに注意。
(SingleThreadModelをimplementsしている場合はその限りではないが、
このインターフェースはServlet API 2.4以降で非推奨となっている)
よって、サーブレットのインスタンスフィールドは、該当サーブレットを
実行する全てのスレッドで共有されてしまう。
だから、サーブレットクラスにインスタンスフィールドがある場合、
データが壊れないよう、各スレッド間での排他制御が必要。
しかし、synchronizedでくくった部分は、ロック対象のオブジェクト
を共有するスレッドが同時に1つしか動かないので、その範囲が広いと
CPUがスカスカなのに性能が出ないという悪夢が待っている。
例えば、doGet()にsynchronizedを付けてしまうと、そのサーブレットは
同時に1スレッドしか実行できないことになる。
よって、本来は、サーブレットにインスタンスフィールドを持たせるのを
原則禁止にして、なるべくsynchronizedしなくて済むよう設計すべき。
先のHttpSessionのように、どうしてもスレッド間で共有しなければならない
オブジェクトが出てくるならば止むを得ないけど。
複数ブラウザを起動したら同じPCでも別のセッションになるんでないの?
始めたばかりの初心者です。 人様から教えていただいたコードを弄りながら勉強してます。 XMLのデータから <Creator Role="hogeA">hogehogeA</Creator> <Creator Role="hogeB">hogehogeB</Creator> このように属性をつけられたデータがあるのですが このデータから hogeA=hogehogeA hogeB=hogehogeB このように出力を行いたいのですがどのように行えば良いのでしょうか DOM4Jのインポートは行っています よろしくお教え下さい
753 :
752 :2009/01/11(日) 15:28:08
DOM4Jではなく dom4jでした すみません
754 :
742 :2009/01/11(日) 15:34:18
(;;) もう来ないよ ぷんぷん
>>751 ブラウザ自体を別々に立ち上げたらそうだけど、
例えばIEで「ファイル」→「新規作成」→「ウィンドウ」
なんかで、同一プロセスの新しいウィンドウを開いた場合は
Cookieが共有されるので、同一セッションになる。
あとタブブラウザの異なるタブも同様。Google Chromeはわかんないけど。
>>754 ソケットリスナー起動しとけばいいんじゃねーの?
長いことソケット触ってないから忘れてるぜ
>>747 オフスクリーンを保存しておくか、
線分の座標を覚えておくか。
>>747 最小化からの復帰等でその領域が再描画される時にどう再描画するかはプログラマの責任。
線がどう描かれていたかはその領域は記憶しない。
だから、プログラム側でその情報を保持して、必要に応じてその情報を再描画に利用する。
ボタンを押すイベントが起きたときにどのようにその領域に線を描いているか知らないが、
ボタンを押すイベントが発生した時には線の位置情報を記録して、その領域を再描画させ、
描画のためのメソッドではその位置情報に基づいて線を描画してやるようにするとか、
領域に直接線を描くのではなく、Imageクラスなどの画像を保持するクラスに線を描き、
描画時にはそのImageをその領域に描くとか。
>>738 javaプログラム間のDnDは両方制御できるけど、javaから外部プログラムへのDnDはSWT使わないと無理。
>>738 java.awt.dnd
java.awt.datatransfer
javax.swing.TransferHandler
>639 ドライブ間をギガ単位ファイルが移動するのでテンポラリを作成するのは難しいです. >741 OLEやActiveXはよく知りません.Winapiなら(あまりよく分かってないが)少しいじった事があるけど Winapiで可能でしょうか?たしかJavaでWinapi叩けると聞いたことがあるので. ネットでみるとエクスプローラからアプリにファイルをD&DのWinapiサンプルは見つかるのですが逆方向が見つかりません. >761 Javaアプリのほうからエクスプローラにファイルの転送メッセージは遅れるんだけど エクスプローラからどこのパスにD&Dしたのかが帰ってこない. つまり ○ Javaアプリ→(ファイル情報)→エクスプローラ × エクスプローラ→(ディレクトリ情報)→Javaアプリ な状態.
>>762 一般的なD&Dなら相手がエクスプローラとは限らんのだから
圧縮ソフトに送って圧縮されてたり
サーバに転送されたりメールに添付されたりで
対象ディレクトリが必ずあるわけでもなし。
766 :
デフォルトの名無しさん :2009/01/11(日) 21:20:13
Java 5 で #ifdef みたいなことできますか?
_
コンパイル前にcppに通すとか?
デバッグ用のやつはアノテーションで代用が効く。 環境による分岐とかはそもそも実行中に判断できるようにすべき。 環境ごとに別のパッケージを作成するのはJava的に考えておかしい。
プログラム初心者ですが会社で尊敬してる先輩から Javaから始めたら土方にしかなれないっていわれました。 この発言だけはとりあえず信用してないのですが本当ですか?
でも今のjavaのバージョンアップの仕方を見る限り、プリプロセッサが サポートされるのも近いよな・・・と思う
おれは近藤の生き方のほうが好き
>>770 「じゃあ何から始めたらいいですか?」という質問の返答如何。
Cとか特定の言語を上げたら、同じことだと言ってやれ。
「そもそも言語を何から始めるとかいう概念がおかしい」とか言いはじめたら
俺的に面白い先輩認定。
プログラムが趣味ならどうとでもなる。 日常的に新しい言語を覚えることね。
Cから初めて今java+C#やってるけど、PHPとかは好きになれないなぁ
俺は20過ぎてからjavaから入ったけど ある程度経てばスタートはどの言語でも関係ない その後の勉強量次第 どんなに頑張っても幼少時代からプログラム触ってた奴や大学院まで出てる奴とかには 追いつけない部分があるのは実感するけどね。
言語を扱うのが得意な人は、別に幼少時から プログラミング言語を触っていたり、大学院を 出ている訳じゃなくて、最初から、ごく 当たり前のように普通に使うと思う。
院ぐらい行きたきゃ今からでも行けば良いじゃん、2年だし
一部のマイナーなやつをのぞいて、プログラミング言語はどれでも似たようなもんじゃないの。 方言に慣れるのと大差ないつーか。最初におぼえるのが一番大変だけどあとは似たようなもの。 高等数学が必要なプログラムはその数学を理解しないと絶対作れないし、 その他業務用のソフトも、業務の知識を知らないと作れなくて、 そういう勉強をやらないと土方にしかなれない。
ウェブページでログインボタンを押したときに常駐しているアプリケーションで入力したIDやpassを取得したいのですがどうすればいいのでしょうか?
ラジオボタンの横の文字に色を着けるときってどうすればいい?
AbstractSequentialListを用いて線形リストを実装しようとしているのですが、 addで要素を追加した線形リスト"list"に対して、Collections.sort(list); を実行した場合、どのような処理が行われているんでしょうか? nextやsetメソッドを実装しない場合、ここでエラーがでるので… Collections.sortがどのようにメソッドを呼び出しているか知りたいのです
785 :
デフォルトの名無しさん :2009/01/12(月) 19:27:11
>>784 Collectionsのソース読めばいい。
SJC−Pの試験日程って随時? 随時ってことは俺がやるよって言ったらあっちがよーいどんをしてくれるってワケかい?
>>785 初歩的な質問で申し訳ないですが、ソースはどこで確認できるのでしょうか
API仕様にはソースまでは載っていなかったので困っていました
JDK ソース でぐぐればいいやん
Javaの勉強をしようと思い以下をインストールしTocatを起動させた後に
・ apache-tomcat-5.5.27.exe
・ j2sdk-1_4_2_19-windows-i586-p.exe
http://localhost:8080/ にアクセスすると次のエラーが出てしまいます。一体何が悪いのでしょうか?
Unable to open
http://localhost:8080/ Cannot locate the Internet server or proxy server.
1※実は現在自宅サーバ(Windows XP / php5 / mysql)を運用しています。
2※タスクバーの右下にはapacheのアイコンが2つ出ています。(php用+Java用)
【PHPコードの配置階層】
C:\Program Files\Apache Software Foundation\Apache2.2\htdocs
【OS】
Windows XP
【環境変数】
CATALINA_HOME
C:\Program Files\Apache Software Foundation\Tomcat 5.5
PATH
C:\j2sdk1.4.2_19
JAVA_HOME
C:\j2sdk1.4.2_19
>>791 Javaの問題じゃない気がするし、もしそうならソースが悪いんだろ
793 :
791 :2009/01/12(月) 23:00:34
>>791 実は、以前に全く同じ操作(Javaの設定)を行った事があるのですがその時には問題無く
猫のページが正常に表示されテスト用のJSPページは起動しました。
794 :
デフォルトの名無しさん :2009/01/12(月) 23:06:30
windowsの右下の小窓的なところにjavaのアイコンが突然現れました。 最近javaを起動させた記憶も無く、なぜ出てきたか不明です。 アップデート的な何かなのかと思ってクリックしてもバージョンが表示されるだけで何も起きません。 重くなるのが嫌なので何も無いなら閉じたいのですがこれはどうしたらいいんですか? あと、出てきた原因は何でしょう? よろしくお願いいたします。 左下のjavaのアイコンを ・左でダブルクリックすると java platform standard edition6 バージョン6 アップデート7 という小窓が出てきて ・右クリックすると javaテクノロジについて java.comにアクセス コントロールパネルを開く コンソール というメニューが出てきます。
795 :
デフォルトの名無しさん :2009/01/12(月) 23:09:36
超低レベルで申し訳ないが、 JAVAで書いたテトリスとかのゲームは どうやって表示されてるんだ??
Java の機能で表示されています
797 :
デフォルトの名無しさん :2009/01/12(月) 23:12:16
プログラムを書いてコンパイルしたら自動的にどっかに 表示されるもんなのか?
実行しないと表示されません
800 :
デフォルトの名無しさん :2009/01/12(月) 23:14:30
実行したらどこに表示されるんだぜ・・・
>>797 自動的には表示されない。
表示されるように(Swing等のライブラリを使って)
プログラムを書く必要がある。
ウィンドウに表示されます
803 :
デフォルトの名無しさん :2009/01/12(月) 23:18:04
GUIってやつですか CUIでも視覚的に表示できるのか?
>>797 システム.アウト.プリント
って奴を使ったならコンソールに出てくるな
808 :
デフォルトの名無しさん :2009/01/12(月) 23:23:19
SDKを使って簡単なゲームを作ろうと思ったんだが、 プログラムを書いて実行した後に、作ったプログラムが どこに表示されるのかわからなかったもんで・・・ わかりにくくてスマソ
>>808 本買って”Hello,World”からやったほうがいいのでは?
すみませんが教えてください XMLの属性値を指定して値を取り出したいのですがやり方がわかりません <A B="1">hoge1</A> <A B="2">hoge2</A> このとき属性Bの値が 1 の物の hoge1 の値を取り出したいのですが どのように行えば出来るのでしょうか よろしくお願いします
811 :
デフォルトの名無しさん :2009/01/12(月) 23:26:17
初心者向けの本とかHPを見て今勉強してる 機械音痴でこんな次元でつまずきましたorz
812 :
791 :2009/01/12(月) 23:26:52
マジで参った。。。 もう一台のノートPCに同一の事を行って試してみる。
>>812 そもそも、tomcatのプロセスは立っているのか?
>>812 8080ポートを別の何かか使ってたり、セキュリティソフトが塞いでるんじゃね?
>>808 実行結果を出力するためには、どこに出力するかを明示的にプログラム
として記述する必要がある。勝手にどこかに出力されることはありえない。
例えば、プログラム中に「Sytem.out.println("Hello");」と記述していれば、
コマンドプロンプトで実行すると、コマンドプロンプトのウィンドウ中に
に「Hello」と表示される。
コマンドプロンプトは文字を垂れ流すことしかできないので、テトリス
みたいなことをしたければGUIアプリケーションの書き方を覚える必要がある。
816 :
デフォルトの名無しさん :2009/01/12(月) 23:45:01
>>815 なるほど
CUIでも文字の垂れ流しになる?
>>816 CUIは環境依存だからJava向けじゃない。
3rdパーティのライブラリはあるかもしれんけど、
前探したときにはあまり使えそうなもんがなかった。
>>817 Turtleってのはどうなんだろうか?
819 :
812 :2009/01/13(火) 00:01:23
>>813 右下のApache TomcatはStartを押したら実行状態のアイコンに切り替わりますが、
http://localhost:8080/ と入れると中止状態のアイコンに切り替わってしまいます。
>>814 netstat -a
を実行してみても 8080 は特に何も使用されていませんでした。
因みに自宅サーバ化していないまっさらなノートPCで同じ操作を行ってみましたが
表示されるエラーメッセージも全く同じでした。
という事は、J2SDK + Tomcatの組み合わせに問題がありそうです。
>>819 うちじゃ何の問題もなく動いてる。
Apache Tomcat 6.0.18 + JDK 6.0u11
zipを展開してコマンドラインで起動/停止してるけど。
インストールディレクトリの下のlogsディレクトリに何か出てるんじゃない?
あるいはウィルス対策関連のソフトにブロックされてるか。
821 :
820 :2009/01/13(火) 00:16:15
823 :
820 :2009/01/13(火) 01:03:05
>>822 Tomcat5.5はJava5.0以降じゃないと動かない。(1.4互換パッケージを使えば1.4.2でも動くが)
>>821 で挙げたリンク先にもわざわざ赤文字で書いてあるのに読んでないのか?
> Tomcat 5.5 requires JRE 5.0 by default.
J2SDKはJDK(Java SE Development Kit)に名前が変わって、最新版は6.0update11だ。
ttp://java.sun.com/javase/ja/6/download.html あと、自分で挙げたリンク先の最初にある文章ちゃんと読んだか?
> J2SE 1.4.2 は、2008 年 10 月 30 日をもってサービス終了
> (EOSL: End of Service Life) となりました。
って書いてあるぞ。要するに「もう使うな」ってこと。
824 :
822 :2009/01/13(火) 01:27:53
>>823 お陰様で猫のマークがページに表示されました!!
本当にありがとうございました!!
825 :
デフォルトの名無しさん :2009/01/13(火) 02:33:28
javaの初歩の初歩っぽいことで失礼なのですが、 String型の配列の中身を参照・比較する方法ってあるんでしょうか? equalsを使って逐一調べてるのが大変で・・・。 よろしくお願いします。
>>825 equalメソッド使うの面倒ってどんだけめんどくさがりだよ
827 :
デフォルトの名無しさん :2009/01/13(火) 02:38:59
人工無 能みたいなものを作ってまして。 プログラム内に直接Stringを目いっぱい打ち込んでるんですけど これらすべてにequal使うとプログラムが長くなって…。 やはり出来ませんかね?
>>827 一回変数に入れろよ
まさか
String test = "aaa"
if(test.equals("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"))
とかやってんじゃないだろうな?
829 :
デフォルトの名無しさん :2009/01/13(火) 03:06:29
それはさすがにしてないです。 String a=○○; String b=××; String c=■■; if(a.equals(○○)){} if(b.equals(○○)){} 略 のようなのばかりで、もっと効率よくできないかと思ったので。 やっぱり変数にいれるのがいいんですかね。うう。
>>829 if文の中の○○aにするしかないだろ
1個目のif文は冗長だが。
831 :
デフォルトの名無しさん :2009/01/13(火) 03:14:09
えと、それってやっぱひとつづつ 比較しなくちゃいけないってことですか?
いやいや、その例はあくまで例だろ?どうしようもないがな やるなら if(a.equals(a)){ }else if(b.equals(a)){ } くらいだろ
833 :
デフォルトの名無しさん :2009/01/13(火) 03:26:37
ああ!なるほど! aで比べ合えばいいんですね
836 :
デフォルトの名無しさん :2009/01/13(火) 03:33:54
すいません。
一例がないと分からないくらい鈍いんです。
でも、
>>832 はホント分かりやすかったです。
有難うございます。
.do でアクセスするのと .jsp でアクセスする場合の 違いについて詳しく解説しているサイトがあれば教えて下さい。
どのサイト、どの書籍を読んで満足できなかったのか書いてくれないと どの程度の詳しさを求めてるのかわかりません
EclipseでVisual Studio みたいなWEBデザイン画面(マウスでドラッグ & ドロップで画面のデザイン) を利用する事は出来ないのでしょうか?
ぐぐって色々探してみたところ、次のHTML EDITORのプラグインをダウンロードし、 htmlファイルを開いた状態でパレット内にあるアイコンをクリックしてもドラッグしても エディタ内にコントロールの雛形のコードが生成されません。 なぜコードが自動生成されないのでしょうか? tk.eclipse.plugin.htmleditor_2.0.6.1.jar
JSPやサーブレット自体は、テキストエディタに直接コードを記述した上でコマンドラインからコンパイル をする事により、WEBシステムを構築する事は出来る様になったのですが、 どうも、IDEとして世間一般で使用されているであろう、Eclipseを使うと環境面で奇怪 なエラーが出たり等でいまいちIDEの良さが分かりません。 起動もあり得ない位遅いですし。 そこでEclipseを利用する事によるメリットを教えて下さい。 ※EclipseもVisual Studio位の使い勝手が良ければJava開発でもEclipseを使いたいと 思ってますが(普通に考えればIDEを使った方が格段に生産性が高くなるハズなので) 、まだ触り始めという事もありますがEclipseの良さがいまいち分かりません。
Eclipseスレできいたらどうかな
同じ人かな?
>>841 今試したけど、ドラッグ&ドロップじゃなくってクリックでできたよ。
>>842 ・奇怪なエラー → 詳細プリーズ
・起動が重い → 我慢しる。ちなみにメモリは1GB必須ね。
正直Eclipseは、導入設定ですることが多くて、
一見さんお断りみたいなところがあるね。
Javaエディタの使い勝手は最高なんだが。
Eclipseでだめだった人は、NetBeansの方がなじめるかもしれない。
846 :
デフォルトの名無しさん :2009/01/13(火) 19:29:31
すいません質問です。 javaの経験が浅いのであまり詳しくないのですがNetBeansでADVゲームを作成してます。 文章を表示させる部分(メッセージウインドウ)がうまく表示させることができません。 個人的にはNscripterのような表示ができればうれしいのですが、どのようにすれば表示できるのでしょうか?
葵たんに聞け♪
849 :
デフォルトの名無しさん :2009/01/13(火) 21:47:35
プログラムの人は何でいっぱい色んな種類の作ったり、使ったり出来るのですか。 すごすぎてすごいんですけど。 今思いついただけでも、正規表現とjavascriptとperl/PHP/Delphi/C/C++/Eclipse 他にもいっぱいあるじゃないですか。 全部理解できますか?出来てる人いますか? それはもうCSSすら、それ以前にタグとかあなたたちは一体どういうすごいです。
interfaceとabstractについて質問 abstractは一部を作って、後はサブクラスでやってくださいよ interfaceはシグチャだけ決めてあげるから、後はかってにやれ って、イメージでおk?
>>850 アブストラクトもインターフェースもコンドームみたいなもんだ
>>850 abstractは、主な実装は面倒見てやるから必要なとこだけお前が書け、
ってイメージ。電子工作キットの配線済み基板?
interfaceは、interfaceを要求する側(引数にinterfaceを書いてある
メソッドとか)が、実装はどうでもいいからこのAPIが揃ってるオブジェクト
よこせ、ってやるために使うイメージ。USBのコネクタとか。
質問です。 SystemTrayを使って常駐させるプログラムを作っています。 JFrameで作ったフレームを「×」で終了させずそのままシステムトレイに常駐させ、 そこからアイコンクリックで「終了」を選択し終了、また「開く」を選択で フレームを開くというプログラムを目指しています。 現在システムトレイに常駐させ、アイコンをクリックし終了させるところまではできたのですが、 もう一度フレームを開く処理が上手くいきません。 「×」の処理はframe.setDefaultCloseOperation(HIDE_ON_CLOSE);で非表示にするようにしました。 また、クラスはmainのクラスとSystemTrayのクラスに分けて作っています。 SystemTrayのクラスからmainのクラスへ最初からプログラムを始めるようにしたいのですが、 コンパイルしエラーはでないものの、アイコンからまたフレームが開けません。 アドバイスなどお願いします!
>アイコンをクリックし終了させる 終了処理したならmainスレッド終わってんじゃないの? 自分の書いたコードをよく嫁
>>855 すいません、書き方が悪かったです。
アイコンを右クリックすることで「開く」と「終了」を表示させているんですが、
「終了」をクリックしてシステムトレイからアイコンを消しプログラムを終了することはできたんです。
逆に「終了」を選択せず常駐させているアイコンから「開く」を押して元出していたフレームを
表示させたいんですが、フレームの設定をしているmainに戻るように設定しても
フレームが表示されずつまずいています。
今クラスを分けているのがダメなのかといろいろ試行錯誤していますが、まだ解決できないでいます・・・。
frame.setVisible(true)
858 :
854 :2009/01/14(水) 00:00:00
お騒がせしました。 同じクラス内に入れて設定をいじってみたら「開く」で元のフレームを表示することができました。 もう一度アクションリスナでフレームについて設定を入れていなかったのが悪かったみたいです。 ありがとうございました。
859 :
デフォルトの名無しさん :2009/01/14(水) 00:17:33
windowsの右下の小窓的なところにjavaのアイコンが突然現れました。 最近javaを起動させた記憶も無く、なぜ出てきたか不明です。 アップデート的な何かなのかと思ってクリックしてもバージョンが表示されるだけで何も起きません。 重くなるのが嫌なので何も無いなら閉じたいのですがこれはどうしたらいいんですか? あと、出てきた原因は何でしょう? よろしくお願いいたします。 左下のjavaのアイコンを ・左でダブルクリックすると java platform standard edition6 バージョン6 アップデート7 という小窓が出てきて ・右クリックすると javaテクノロジについて java.comにアクセス コントロールパネルを開く コンソール というメニューが出てきます。
JSPを学習する為にEclipseを起動しプロジェクトを作成しようと思っているのですが、次の操作の後どのプロジェクト を作成すればよいのでしょうか?Eclipse上の実行ボタンを押した時にブラウザが起動しJSPで定義したページが正常 に動作する確認したいと思っています。 ファイル(F)>新規(N)> ・Dynamic Web Project ・Static Web Project
861 :
841 :2009/01/14(水) 01:41:22
>>845 > 今試したけど、ドラッグ&ドロップじゃなくってクリックでできたよ。
何度かEclipseを再起動してみましたがやはり出来ませんでした。
正常にhtml editorプラグインがeclipseに取り込まれているか次の手順にて確認をしたのですが
問題無く取り込まれている様です。
しかしながら、htmlファイルを開いた状態でパレット内にあるコントロールをクリックしても
コードの雛形は一向に作成されませんでした。
ヘルプ(E) ⇒ Eclipse Platformについて(A) ⇒ プラグインの詳細(P)
(Eclipse Platform プラグインについて)
Naoki Takezoe HTML/JSP/XMLエディタプラグイン 2.0.6.1 tk.eclipse.plugin.htmleditor
>>861 WTPとか、他のプラグインのHTMLエディタで開いているとか。
エディタをいったん閉じた後、エクスプローラで右クリックして、
開く>Amateras HTML Editorで開いてみると変わるかも。
NetBeans信者乙
865 :
デフォルトの名無しさん :2009/01/14(水) 11:29:14
画像データ(jpgファイル)などのバイナリデータのコピーを,バイトストリームではなく文字ストリームの利用によって行う事は出来ないんでしょうか?
標準環境だと文字ストリームは元ファイル読み込み時にバイナリデータをsjisとして読み込んでunicodeに変換.そしてコピー先ファイル書き込み時に,読み込んだunicodeをsjisに変換して書き込むといった事がわかりました.
ttp://www.tohoho-web.com/java/file.htm これならコピー後,理論上は元ファイルとコピー先ファイルが同じバイナリデータとなっており,コピーが出来ると思ったんですが,なぜかうまくコピーされません.(バイナリエディタで比較したところ,微妙にバイトの並びが異なっているところがあります.)
どうしてこのようになるのでしょうか?よろしくお願いします.
866 :
865 :2009/01/14(水) 11:31:06
Windows、Linux、Mac OS X の各プラットフォームで、JVMの速度が違うかどうかを知りたいです。 どなたかご存知の方がいれば教えてください。 あるいは参考になるページがあれば紹介してください。
その方法で元のバイナリデータと同じバイナリデータにできるのは、 元のバイナリデータが全てsjisのテキストとして解釈出来る場合のみ。 sijisからunicodeに変換するときに変換表にのってない文字は \uFFFDに置き換えられたりするから、完全には元に戻らない。
869 :
865 :2009/01/14(水) 11:46:50
unicodeで確認したところ,FF(sjisではマッピングされていない文字コード)が FFFDとなっていました. ありがとうございました.
>>862 サンクス
正常にパレットから雛形コードを生成する事が出来る様になりました。
HTMLの質問すれはどこですればよいですか? 初歩的なif文の使い方がわけわかめで・・・
872 :
デフォルトの名無しさん :2009/01/14(水) 13:43:47
eclipseでimplementsしたけどぜんぜん使ってないオーバロードを非表示にする方法は無いでしょうか?
質問です。 文字列からint型のハッシュ値を取得したいです。 String#hashCode()と同じ程度の速度で算出できて、 衝突耐性はそれ以上のアルゴリズムってありますか? それっぽい単語でググってみたのですが、 暗号絡みの強力な(でも遅い)アルゴリズムしか見つけられませんでした。 よろしくお願いします。
javaで作ったソフトからパソコンの電源を落とすことは可能なのだろうか…? 普通に考えて無理な気もするが… 先輩方,教えて下され><
>>876 Windows操作は、VB or C++でやれ
カスが
>>877 javaしか扱えませんので。
てか正直javaさえもまともに扱えませんが。
回答ありがとうございます。
>>876 そもそもなんでjavaで落とす必要があるのか
コマンドラインで操作してるなら
shutdown -s
とかでいいじゃん
誘導されましたのでこちらにて質問させて下さい。 実務でJavaを使ったシステム開発をしたことは無いのですが 独学で一通りJSP、サーブレット(Struts)フレームワークを使った WEBシステムを作成する事が出来る様になったのですが、 この状態でJavaの使えるレンタルサーバを借りて WEBシステムを回すのは危険でしょうか? ※実務ではクラサバしかやった事は無いですが、 趣味で5年位WEBサイト(+phpで作成したシステム)を作っています。
882 :
874 :2009/01/15(木) 01:57:18
883 :
デフォルトの名無しさん :2009/01/15(木) 01:59:52
質問させてください。 java appletで、アプレット画面上でマウスをクリックすると新しいアプレット画面を開くためにはどうすればいいですか?
質問 private static <E extends Comparable<? super E>> という記述の意味が分からんのです 日本語に翻訳してくれ
>>882 Commons Lang の HashCodeBuilder
>>884 EはComparable<?>を実装した型でなければならない。
ただし?はEの親クラスでなければならない。(Eと同じ,またはEの親クラスであれば何でもよい)
2行目の条件を満たすということは,E型のオブジェクトを?型の引数に安全に代入できるということ
つまりComparable<?>.compareTo(?)の引数に常に型安全にE型のオブジェクトを渡せることを保障できる
887 :
デフォルトの名無しさん :2009/01/15(木) 11:34:01
【Greasemonkey】 あなたが訪問するウェブページを変更するスクリプトを書くことを可能にするFirefox 拡張です。 Greasemonkeyをつかってウェブサイトをより読みやすくしたりより使いやすくしたりすることができます。 サイト管理者自身が面倒で修正していないようなレンダリングのバグをあなたが修正することができます。 ウェブページを読み上げたりブライユ点字に変換したりする補助技術をつかって、 ウェブページがよりよくなるように変更を加えることもできます。 ほかのサイトから自動的にデータを取り出して二つのサイトを、 より相互に関連したものにすることさえできます。 Greasemonkeyだけでは上のようなことは何一つできません。 インストール後何も変化がないようにみえるでしょう。 変化が見えるのは「ユーザースクリプト」と呼ばれるものをインストールし始めてからです。 ユーザースクリプトとは、Javascript のコードの集まりで、 さらにGreasemonkey がいつどこでそれを実行すればよいのかという情報をもっています。 一つのユーザースクリプトは特定のページ・サイト、あるいはいくつかのサイトをターゲットにできます。 ユーザースクリプトはJavascript ができることなら何でもできます。 それどころかユーザースクリプトはGreasemonkey が提供する特別な関数がつかえるので、 Javascript 以上のことができるのです。 いろんな人がそれぞれの用途のために書いた何百ものユーザースクリプトを含む、 Greasemonkeyスクリプトレポジトリがあります。 自分の書いたユーザースクリプトが他の人にも有用かもしれないと思ったら、 このレポジトリに加えることができます。 あるいは公開せずに自分のブラウジングを少し改善したことに満足していることもできます。 Greasemonkey メーリングリストもあります。 ここでは質問したり、ユーザースクリプトをアナウンスしたり、 新しい機能についてのアイディアを議論したりすることができます。 Greasemonkey の開発者はリストを頻繁に見ています。 彼らはあなたの質問に答えてくれることさえあるかもしれません。
2つのタブの中にパネルを5枚ずつ貼り付けて、 そのパネルの中に縦50横5のテーブルを作った。 そのテーブルの中の一つのセルの中に書かれた情報を取得する方法がわからんです。 これが噂の四次元配列なんですか。
EJB3.0に惹かれてJavaEEサーバーを構築してみたいのですが 今までstruts+hibernate+tomcatの組み合わせしか経験したことが無いので JavaEEサーバーのことについてよく分かりません。 フリーのJavaEEサーバーで最も使われているのは今でもjbossでしょうか? glassfishなるものが最近伸びてると聞きましたがjbossに対抗できるほどのものでしょうか? あるいはこの2つ以外にも有名なものがありますか? よろしくお願いします。
.jarファイルって普通にJavaVMの入ってるパソコンでアイコンダブルクリックで実行できないのでしょうか? 私の作ったプログラム(.jarファイル)がダブルクリックしても起動しないと友人から言われまして. 私のパソコンではダブルクリックで起動するのですが. JavaVMはパソコン買ったときからインストールされていると言ってました.
>>890 もっと勉強してからおいで
どうせjavaも実行できない環境なんだろ
892 :
デフォルトの名無しさん :2009/01/15(木) 17:11:01
( ^ω^)7-Zipで解凍できたお
>891 分からないならレスしないでください.
>>890 java -jar なんとか.jar
で起動するなら、関連付けの問題。
それでも駄目なら、javaがない。
>>890 買ったときからインストールされているJavaVMのことは忘れて、
最新のJavaVMをインストールしたほうがいいと友達に言ってあげたらどう?
新しいVMならセキュリティフィクスもされているし、
インストール時にちゃんと関連付けもしてくれるから、
jarをダブルクリックするだけでアプリケーションが動くようになると思うよ。
ジャバをインストールしてハッピーになりたいんです。
>894 ありがとう. 多分関連づけがされて無いんだと思う. バッチファイルつけて友人に渡す. >896 最新のものにアップデートすると関連づけしてくれると友人に伝えとく. thanx
自演乙
おまいらJavaで何やってるの?
Be○ns使ってソフト作ろうと考えてる
903 :
デフォルトの名無しさん :2009/01/15(木) 19:46:52
?
904 :
デフォルトの名無しさん :2009/01/15(木) 20:17:21
困ってるので誰かお願いします windowsの右下の小窓的なところにjavaのアイコンが突然現れました。 最近javaを起動させた記憶も無く、なぜ出てきたか不明です。 アップデート的な何かなのかと思ってクリックしてもバージョンが表示されるだけで何も起きません。 重くなるのが嫌なので何も無いなら閉じたいのですがこれはどうしたらいいんですか? あと、出てきた原因は何でしょう? よろしくお願いいたします。 左下のjavaのアイコンを ・左でダブルクリックすると java platform standard edition6 バージョン6 アップデート7 という小窓が出てきて ・右クリックすると javaテクノロジについて java.comにアクセス コントロールパネルを開く コンソール というメニューが出てきます。
>>904 なんどもうぜぇよ、それぐらい調べりゃわかるだろ
何にでも突っかかりたいお年頃
>>904 Javaアプレットがあるページを開くと出る。
閉じるだけなら、右クリックメニューで閉じれたと思う。
永遠に出さないなら、
Javaコントロールパネル→詳細→その他→システムトレイにJavaアイコンを配置
のチェックをOFF。
そもそもJavaもJavaアプレット(株のチャート図表示とか、お絵描きBBS等で
今も使われてる)もJavaでできたアプリケーションも使わないなら、Java
をアンインストールするのが吉。
908 :
874 :2009/01/15(木) 22:22:34
>>885 ありがとうございます。
HashCodeBuilderは使ったことありませんでした。
さっそくソース見たんですが、String#hashCode()とほぼ同じ感じで
ハッシュ値を求めてるようでした(h = h * 31 + c; のループ)。
とりあえずこれでいいかなという気がしてきました。
ありがとうございました。
スパークラス スパークラス型 = new サブクラス(); と書くと、何が便利なのかまったくわかりません そこら辺を、教えください
定期的に現れる質問だな 釣りか?
何にでも挿入したいお年頃
スパー
>>17 後続の行で、サブクラスに依存しない
コードを書くことになる。
それは別のサブクラスを new するように
修正しても通用する柔軟なコードだという
ことになる。
必要も無いのに細かい実装に依存した
コードは読んでも意図を掴みにくい。
new するクラス自体、スーパークラスに
できるともっといいわけだが、
事情はいろいろ有り得る。
eclipseでは問題無く実行できるのですが、jarにすると何故か一部の画像が表示されません jarを解凍して見ても画像の抜け落ち等は無かったのですが、何が原因かわかりますか?
穴があれば挿れたいように、 クラスがあればインスタンス実行したい年頃か。 // hoge.java class hoge { static void main(String[] args) { new hoge(); } hoge () { 目的の手順 } } って何か冗長で直感的じゃなくて、毎回コピペで済ませてるけど。記述は非オブジェクト指向言語のほうが楽だわ。
どうせ相対パスで指定してないとかそういう落ちだろう
俺の偽装請負先の職場にも、 コンストラクタで目的の処理をするコードを書く奴が居たよ。 なぜかそういう奴が回りから技術的な信頼が高いという 低レベルな職場だったので、絶望的で無念だった。
マ板に帰れ
922 :
デフォルトの名無しさん :2009/01/16(金) 08:20:36
長いですが質問です。 ボタンで図形の形を選択、チョイスで色選択をして図形を書きたいのですが、色は選択できるのですが、形が選択できません。ボタンを押しても何も変化がありません。 どこがおかしいのでしょうか? ---------------------------------------- import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class Sample extends Applet implements Runnable { Choice CChoice; Thread twobuttons=null; Button button0, button1; int flag=0; String dummystring="DUMMY"; String c; public void init() { super.init(); add(new Label("図形選択")); button0=new Button("円"); this.add(button0); button1=new Button("四角"); this.add(button1); CChoice = new Choice(); CChoice.addItem("赤"); CChoice.addItem("黄色"); CChoice.addItem("青"); add(CChoice); CChoice.addItemListener(new ItemAdp()); }
923 :
922続き :2009/01/16(金) 08:25:49
public void start(){ super.start(); } public void paint(Graphics g){ if(dummystring=="円"){ if(c=="赤"){ g.setColor(Color.red); }else if(c=="黄色"){ g.setColor(Color.yellow); }else{ g.setColor(Color.blue); } g.fillOval(20,20,20,20); }else{ if(c=="赤"){ g.setColor(Color.red); }else if(c=="黄色"){ g.setColor(Color.yellow); }else{ g.setColor(Color.blue); } g.fillRect(20,20,20,20); } } public void update(Graphics g){ g.clearRect(0,0, 640, 500); paint(g); }
924 :
922続き :2009/01/16(金) 08:29:46
public void start1() { twobuttons=new Thread(this); twobuttons.start(); } public void stop() { } public void run() { while(true){ if(flag==0){ dummystring="円"; }else if(flag==1){ dummystring="四角"; }else{} repaint(); try { twobuttons.sleep(120); } catch (InterruptedException e) { } } }
public boolean action(Event event, Object arg){ if(event.target==button0){ flag=0; return true; } if(event.target==button1){ flag=1; return true; } else return super.action(event,arg); } class ItemAdp implements ItemListener { public void itemStateChanged(ItemEvent e) { if (e.getSource() == CChoice) { String st = CChoice.getSelectedItem(); c = st; repaint(); } } } }
コードの記述方法についてC#とJava(php)とで記述方針が異なっているのですが Javaのコードを記述する場合にC#的な書き方をするのはご法度なのでしょか? (作法がなっていない?) 【C#】 public static TestMethod() { } 【Java(PHP)】 public static TestMethod(){ }
>>926 好きに書けばいいんでない?
開発環境だとそういう設定だけど
別にどっちでもエラーはでない
サーブレットクラスを作成しよとしているのですが import javax.servlet.http.*; の部分で "インポートされた javax.servlet は見つかりません" というエラーメッセージが表示されてしまいます。どうすれば解決しますか? ※elipseを使用しています。
>>922 どっかにアップしろよ
レスをまたぐような長さでインデントも無いコードを読めるかよ
>>927 実際のjava開発プロジェクトにこれまで入った事が無いので
実務ではどちらの記述がスタンダードなのでしょうか?
931 :
928 :2009/01/16(金) 11:43:29
環境変数に次も追加したのですが一向にエラーが出ます。 CLASSPASS C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar
CLASSPASS
↑ 環境変数に"CLASSPASS"は、ちゃんと通しました。
934 :
928 :2009/01/16(金) 12:18:45
設定している環境変数の値一覧です。 【CATALINA_HOME】 C:\Program Files\Apache Software Foundation\Tomcat 5.5 【JAVA_HOME】 【PATH】 C:\Program Files\Java\jre6\bin
935 :
928 :2009/01/16(金) 12:22:07
コマンドプロンプトより次のコードを実行すると、バージョンが表示され JDKはインストールされています。 C:\Documents and Settings\ゲスト用のユーザ>java -version java version "1.6.0_11" Java(TM) SE Runtime Environment (build 1.6.0_11-b03) Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode, sharing)
Eclipse 使ってるんなら Java EE Development フィーチャでやれよ。
>>936 >>937 レスありがとうございます。
因みにElipse上からでは無く、コマンドプロンプトからコンパイルが出来るかと思い、
javac とコマンドプロンプトから入力をしたところ、次のエラーが出てしまいます。
'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
環境変数も通しておりjava -versionコマンドは正常に実行出来るのに一体何が原因なのでしょうか?
※ただし、eclipse上からjspページのコンパイルは出来ています。
どう見てもパスが通ってない。
・EclipseにはWTPを組み込んでいるかあるいは組み込み済みの Java EE Editionを使っているか? ・Eclipse上のServerの項目の中にインストール済みのTomcatは 登録してあるか? ・Serveltを開発しようとしているプロジェクトのbuild path->library の一覧にTomcatのライブラリは含まれているか? あとパスも含めて環境変数に関しては殆ど忘れた方がよい。 Eclipseは複数のJDKやServlet Containerを使い分ける事が出来る 仕組みになっている。だから環境変数で設定するような項目の 大概はEclipse上での設定で上書きされたり優先したりするから。
友達に頼まれてゲームの武器の生成プログラムを頼まれたのですが、実行段階で『Exception in thread "main" java.lang.NoSuchMethodError: main: 17』と出てきました。 しかし、mainメソッドは別の普通に動いているやつからコピペしてきたので何の問題もないはずなのですが、それでも吐いてしまいました 以下問題と思われる文の簡易版、これでも同じエラーが出ます。 import java.security.SecureRandom; class randomtest2 { public static void main(String args[]) { int i = 0; int test[]; SecureRandom r = new SecureRandom(); int kai = r.nextInt(11); test= new int[i]; for(i=0 ; i<=10 ; i++) { test[i] = r.nextInt(101); System.out.println("test=" + test[i] + ","); } } } 正直自分ではもう手がつけられません
public class ...
>>941 そもそもコード書くレベルに達してないだろ・・・
取り敢えず、mainの中身そっくり削除してみろよ。
>>941 NoSuchMethodErrorじゃなくてArrayIndexOutOfBoundsExceptionがスローされるけど。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at randomtest2.main(ramdomtest2.java:13)
>>941 int i = 0;
...
test= new int[i];
長さ0の配列作成してど〜する。
>>940 色々やってみたところエラーは出なくなったのですが次のサーブレットコードをEclipse上から
実行してみたところ次のエラーが出てしまいます。
何が原因なのでしょうか?
Webページへのナビゲーションは取り消されました
対処方法:
ページを最新の情報に更新する。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorldServlet extends HttpServlet {
public void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// ContentTypeを設定
response.setContentType("text/html; charset=Shift_JIS");
// 出力用PrintWriterを取得
PrintWriter out = response.getWriter();
// 出力
out.println("<html>");
out.println("<head>");
out.println("<title>Hello World Servlet</title>");
out.println("</head>");
out.println("<body>");
out.println("Hello World");
out.println("</body>");
out.println("</html>");
}
}
リストに 名前とその人の情報が入っているとして 名前で検索して、検索した人の情報を全て表示させたいんですが System.out.println("検索する人物の名前を入力してください"); String number = kbd.readLine(); int name = list.indexOf(number); System.out.println(list.get(name)); としたのですが Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1 at java.util.ArrayList.get(Unknown Source) といったエラーが出てしまいました。 どうすれば改善するでしょうか?
>>947 検索したいものが見付からなかったときの処理を入れてください。
文字列にnumberとかインデックスにnameとか、変数名が謎すぎる。
>>947 try{
処理
}
catch{ArrayIndexOutOfBoundsException}
俺の言ってることは適当だから
ArrayIndexOutOfBoundsExceptionとかでググって
例外について学びなおしてくるんだな・・・
>>946 ブラウザに表示されたエラーメッセージを書かれてもたいした
ことは分からない。Eclipseのconsoleに何かTomcatからの
エラーが表示されてない?
>>951 次のメソッドの中にソースを書く形に変えたところ正常に動作する様になりました。
ありがとうございます。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
953 :
デフォルトの名無しさん :2009/01/16(金) 19:56:22
getInsetsメソッドってコンテナの枠の幅ってことでいいんですか? じゃあそのコンテナの枠の幅ってOSに由来するんですか? よくわかりませんお願いします
JAVAが凄い言語だと聞いたのですが例えば何かわかりやすい アプリや例みたいなものはないのでしょうか?
すごいって一体何がどうすごいんだか…
ライブラリとか
言語としてはかなり地味で枯れてる言語なんだけど
958 :
デフォルトの名無しさん :2009/01/17(土) 08:54:42
数学わかんねー
かなり昔からあるからなあ。昔のJavaは(ry 例外処理がやたら面倒って言語だわ。 でもパターン化してるのだからもっとすっきり記述できればいいのに。
なんでもかんでも明示的に書かせる方針の言語だからね さすが現代のCOBOL
明示的に書かせる方針というよりも明示されていることで読みやすくする方針じゃないのかな。 もちろんそのためには明示的に書かれていないといけないけれど、 素直に全部を手書きしなくてもパターン化してる部分は開発環境の力を借りて機械的に処理できるし。
Eclipseでサーブレット(JSP)システムを構築した後に*warファイルを作成し *\Tomcat 5.5\webapps この直下に*.warファイルを配置する事により作成されたサーブレットプログラム をlocalhostで実行する事が出来ました。 しかし、実際にJAVAの使えるレンタルサーバを借りて、作成したプログラムを配布する場合には、 *.warファイルをサーバにFFFTP等を使って送信するだけで良いのでしょか? ( つまり、別途面倒な設定を行う必要があるのでしょうか?) ※*.warファイルの配布だけで公開可能であれば、メンドクサイ(小難しい)設定を行う必要 が無いので利用しようかと思っています。
昨日、javacコマンドを入力すると'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 というエラーが出るという事で相談した者です。 Eclipse上からは正常にコンパイルする事が出来て(JSP/サーブレット)を実行する事が出来ているのですが、 相変わらず、Dosプロンプト画面から javac と入力するとエラーが出ています。 環境変数も設定しているはずなのに。。。 今後は、Javaでの開発はテキストエディタベースでは無く、Eclipseを使うつもりなので あまり気にしなくても問題は無いですか? (もうちょっとJavaの勉強をしたらStrutsの学習に移ろうと思っているのですが、そのタイミングで何がしかの支障が出るのでは無いかと 若干不安です。)
>>966 Java言語の質問がメインなので、微妙にスレ違いなのかも
サーバのOS毎のサーバ構築スレみたいなところで質問した方がいいかもね
>>963 java.exe は C:\WINDOWS\system32 にもあって、ここにはデフォルトで
PATH が通ってるので何も考えず使える。しかし、javac.exe は
C:\Program Files\Java\jdk1.6.0_11\bin にあるので(JDK6.0 update11
の場合)、ここに手動でPATHを通す必要がある。
>>889 「JavaEE サーバ 比較」でぐぐるといくつか情報がひっかかったぞ。
オープンソースだと他にApache Geronimoがあるな。IBMが支援してるみたい。
細かい部分は自分で調べてくれ。
GlassFishはSunが作ってて、NetBeansと一緒に配られていたような気がする。
JSFって実際の開発現場で使われているのでしょか? JSP+サーブレットで事足りている気がします。
EJBはゴミだ
>>965 レスありがとうございます。環境変数を見直してみます。
>>968 ご丁寧にありがとうございます。
お陰様でjavacコマンドが使える様になりました。
Eclipse上でJSP(サーブレット)を正常に動作させる事は出来ているのですが、 Problemタブに次の様な「警告」が出ています。 意味がよく分からないのですが、「警告」なので無視しても問題無いのでしょうか? ※因みにVisual Studioとかだとエラーは絶対に直さなくてはコンパイルが出来ませんが、 警告の場合には修正をしなくても実行する事が出来ました。 Classpath entry C:/Program Files/Apache Software Foundation/Tomcat 5.5/common/lib/servlet-api.jar will not be exported or published. Runtime ClassNotFoundExceptions may result. DynamicWebProject P/DynamicWebProject Classpath Dependency Validator Message ※Dynamic Web Project というのは私がつけたプロジェクト名です。
974 :
デフォルトの名無しさん :2009/01/18(日) 13:53:22
チョイスにより、三角関数のグラフ(sin, cos, tan)のカーブを選択して 描画領域に描画させるJavaアプリケーションを作成せよ。 という課題が出たのですが努力したのですがどうにも完成させることができませんでした。 よろしければ教えてください。 形態はJavaアプリケーション(main()で開始) GUIは制限なしです 何卒お願いいたします
宿題スレにいけ
976 :
デフォルトの名無しさん :2009/01/18(日) 15:38:12
javaをはじめ プログラム系はまったく無知です。 webショップの購入を考えていたのですが、どれも高いので 自分で作っちまえと思い、IBM(システム開発)の父に相談した所javaが良いと言われました。 それで本を買おうと思うのですが「これ読んどけ!」みたいなお勧めの本ありませんか?
978 :
デフォルトの名無しさん :2009/01/18(日) 15:42:59
>>977 なにがボクの気に障ったのかな?過去スレ読まないからかな?
>>1 は一ヶ月以上前の情報だし、まして過去スレなんて情報劣化もいいとこだろ?
最新の情報が欲しいんだよ。ボクにはわかるかな?
スルーしようぜ
馬鹿は何読んでも無理だと思う
981 :
デフォルトの名無しさん :2009/01/18(日) 15:57:07
不毛な煽りはいいから。
まぁどこのスレにでもいる
>>977 みたいな脊髄馬鹿は低レベルだから
悔しいからって連投すんなよ〜顔真っ赤だぞ、ボクちゃん
>>976 スレ立ての時期だから、アオリに来てるんだな・・・
983 :
デフォルトの名無しさん :2009/01/18(日) 16:03:55
>>976 ,981
この前、成田空港で暴れた警察庁の D Q N 人事課長(36歳)みたいな奴だなw
984 :
デフォルトの名無しさん :2009/01/18(日) 16:12:59
985 :
デフォルトの名無しさん :2009/01/18(日) 16:15:20
>>976 つ Effective Java プログラミング言語ガイド
>>981 どこのスレにも居ますね、正直邪魔
986 :
デフォルトの名無しさん :2009/01/18(日) 16:27:04
仕事で使うとかではなく趣味でJavaを学びたいです。 一般的な入門サイトのインデックスの項目を端から 読みつくしていくのは大変そうなので、 何か、エディタ等の使えるプログラムを作りながら学んでいこうと思っています。 そのように、作りながら学んでいくおすすめのサイトはありますか?
>>988 wとかついてるのが気になるんですがなにかあるんですか?
サンプルで使われてる画像がネコミミ
埋め
995 :
デフォルトの名無しさん :2009/01/18(日) 18:12:26
Flashをクライアントにして、サーバーと通信するプログラム(サーバはJava) ってアリだとおもいますか?やってみたいなあ。
そんなの普通じゃん
生め
埋め
生き埋め
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。