【初心者】Java質問・相談スレッド122【歓迎】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/12/14(日) 20:58:57JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理 http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
【初心者】Java質問・相談スレッド121【歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1226851794/
次スレは>>990あたりで。
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
0002デフォルトの名無しさん
2008/12/14(日) 20:59:33■ AWT と Swing は --
Java低速GUI Swing 8
ttp://pc11.2ch.net/test/read.cgi/tech/1227234261/l50
■ SWT は --
Java 高速GUI SWT 3
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50
■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part18
ttp://pc11.2ch.net/test/read.cgi/tech/1214192372/l50
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 8
ttp://pc11.2ch.net/test/read.cgi/tech/1206017034/l50
■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 66 ★★
ttp://pc11.2ch.net/test/read.cgi/tech/1221652206/l50
**** 開発環境が必要の場合は ****
■ J2SE 1.4.0
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/index.html
■ J2SE 5.0 (1.5.0)
ttp://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
ttp://java.sun.com/javase/ja/6/
**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
ttp://www.java.com/ja/
0003デフォルトの名無しさん
2008/12/14(日) 23:31:05早速質問、申し訳ありません。
前スレでも質問したのですが、サーバ、クライアント間での要素の受け渡しについて
質問があります。
中身はVector型なのですが、できればそのまま送受信を行いたいのですができますか。
クライアント側である事柄をできるようにしてまして、別のクライアントが行った処理を
他のクライアント側でも再現したいのです。
0004デフォルトの名無しさん
2008/12/14(日) 23:42:420005デフォルトの名無しさん
2008/12/14(日) 23:53:070006デフォルトの名無しさん
2008/12/15(月) 00:03:47有難うございます、なんだか解決しそうです。
0007デフォルトの名無しさん
2008/12/15(月) 10:50:344、5の回答だけで解決できそうなんて、死ぬほど優秀なプログラマだな。
これだけの指示で作ってくれるなら、SEは、死ぬほど楽できるぜよ
0008デフォルトの名無しさん
2008/12/15(月) 13:00:260009デフォルトの名無しさん
2008/12/15(月) 14:08:18あらら〜
脳味噌が鼻の穴ッぽこから垂れてきちゃったんですか?w
0010デフォルトの名無しさん
2008/12/15(月) 18:35:58そのままint表示させても負の値が1つ出てしまいます。
0011デフォルトの名無しさん
2008/12/15(月) 19:09:494、5の回答だけで解決できないなんて、死ぬほど馬鹿なプログラマだな。
これだけの指示で作れないなら、SEは、死ぬほど苦労するぜよ
0012デフォルトの名無しさん
2008/12/15(月) 19:26:05そのint値を8ビットずつ区切って4つに分けると A, R, G, B になる
ビット操作がよくわからないなら、Colorクラスに放り込んでgetRedとか使えばいいんでないかい
0013デフォルトの名無しさん
2008/12/15(月) 21:43:10どの様に記述すれば良いですか?
0014デフォルトの名無しさん
2008/12/15(月) 21:52:03protected int retInt() {
return 1;
}
0015デフォルトの名無しさん
2008/12/15(月) 22:30:31有難う!
0016デフォルトの名無しさん
2008/12/16(火) 02:26:380017デフォルトの名無しさん
2008/12/16(火) 02:40:44http://cropcrusher.web.infoseek.co.jp/shufujava/j2ee/appservs/websphere2.html
0018デフォルトの名無しさん
2008/12/16(火) 02:45:180019デフォルトの名無しさん
2008/12/16(火) 10:05:25ちょびっと捻ってみた
0020デフォルトの名無しさん
2008/12/16(火) 15:42:52その方法を試した結果でまた質問させていただきたいのですが、
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画像として出力するとなぜか読み込んだ画像と全く違ってしまいます。
なにか考えられる原因はありますか?
0021デフォルトの名無しさん
2008/12/16(火) 15:50:580022デフォルトの名無しさん
2008/12/16(火) 15:56:39今のところこのようにやっています。
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()で書き込んでいます。
どこが間違っているかわかりますか?
0023デフォルトの名無しさん
2008/12/16(火) 16:04:47getRGBの値をそのままsetRGBで書き込んではいかんのか?
0024デフォルトの名無しさん
2008/12/16(火) 16:09:43そのまま、intで扱う方が簡単なのに。
0025デフォルトの名無しさん
2008/12/16(火) 16:11:57画像を読み込んでから書き込む前にちょっとRGB値の並び替えをしてるんです。
それでうまくいかないのでその部分をコメント化してやってるんですがうまくいかなかったもので・・・
0026デフォルトの名無しさん
2008/12/16(火) 16:22:02Color c = new Color(r, g, b);
im.setRGB(x, y, color.getRGB());
すれば?
im.setRGB(x, y, (r << 16) | (g << 8) | b);
のほうが簡単だけど。
0027デフォルトの名無しさん
2008/12/16(火) 16:28:38とりあえずいまやりたい処理なんですが、
例えば2つのピクセルのRGB値を読み込んで、1つ目と2つ目のRの値を入れ替えて画像として出力する。
といったことがしたいんです。そうするとgetRGB()で得た値をそのままsetRGB()はできないんじゃないかと考えて一度文字列に変換しました。
0028デフォルトの名無しさん
2008/12/16(火) 16:41:03これより↓のほうが見たまんまだと思うのは錯覚だな、きっと
>im.setRGB(x, y, (r << 16) | (g << 8) | b);
0029デフォルトの名無しさん
2008/12/16(火) 18:53:05レス下さったみなさんありがとうございました。
0030デフォルトの名無しさん
2008/12/16(火) 19:03:19void func(List<?> a)
<T> void func(List<T> a)
上の二つのメソッドは、呼び出す側から見ればほぼ同じだと思うのですが、
この二つはどういうふうに使い分けるべきなのでしょうか?
0031デフォルトの名無しさん
2008/12/16(火) 20:31:33funcの中でパラメタ型Tを使うか使わないか。
0032デフォルトの名無しさん
2008/12/16(火) 20:40:15FileReader(BufferedReader)にてテキストファイルを読み込んでいるんですが
mark(),reset()が今一うまく使えません。mark,reset自体は使えるけど
mark(int limit)のlimit値にファイルのサイズを与えると
60MBほどを超えた値を指定した直後にExceptionが発生してしまいます…
そもそもlimitの捕らえ方が間違っているのでしょうか?ご教授下さいorz
0033デフォルトの名無しさん
2008/12/16(火) 21:23:53実装の詳細が漏れてるだけ
<T> void func(List<T> a)
の方がお下品
0034デフォルトの名無しさん
2008/12/16(火) 21:32:26>ある型パラメーターがメソッド・シグニチャーの中で 1 度しか現れないのであれば、
>その型パラメーターはおそらく、名前付きの型パラメーターではなくワイルドカードであるべき
らしいです。
「キャプチャー・ヘルパー」イディオムを使って型パラメータを消せとエロイ人は言っているようです。
0035デフォルトの名無しさん
2008/12/16(火) 21:55:12OutOfMemoryError じゃないか?
0036デフォルトの名無しさん
2008/12/16(火) 22:15:10その通りでしたorz
となると、巨大なファイルを読み込む際はストリームの現在位置をマークする方法は無いのでしょうか…?
0037デフォルトの名無しさん
2008/12/16(火) 22:41:270038デフォルトの名無しさん
2008/12/16(火) 23:28:11以下にプログラムの内容を簡単に説明します。
Server側はServerSocketを使用、Client側はSocketを使用。
クライアントは単純にString#getBytes()で取得したデータをそのままストリームに書き出し、サーバー側はそれをバッファリングして受信します。
その読み込みの終了条件が、「例外が起きれば終了」というものでした。
つまり、クライアント側の送信が終了すれば、クライアント側プログラムが終了し、接続相手を失ったサーバーが次にストリームを読み込もうとした際に、例外が発生し終了するというものなのです。
このような処理をネットワークプログラミングでは普通に行うのでしょうか?
0039デフォルトの名無しさん
2008/12/16(火) 23:29:30RandomAccessFile を使うとか。
0040デフォルトの名無しさん
2008/12/16(火) 23:30:510041デフォルトの名無しさん
2008/12/17(水) 01:25:52ソースを見ないと確かなことは言えんけど。
「例外が起きても終了」が正しいんじゃない?
通常は読み取るデータがなくなったら、
終了してしまえばよいわけで。
0042デフォルトの名無しさん
2008/12/17(水) 10:42:49クライアントの異常終了に備えて例外をキャッチする必要があるのはもちろん、
普通にストリームがEOFに達した場合も終了とするべきだが、
読み込み方 (使うメソッド) によっては戻り値チェックでなくEOFExceptionを捕まえることになるかもしれない
0043デフォルトの名無しさん
2008/12/17(水) 11:01:30普通はこんな馬鹿なやり方はしないでしょ。
たとえばこんな風に実装する。
実際にデータを送信する前に、
データのサイズを知らせるようにする。
クライアント側:
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();
0044デフォルトの名無しさん
2008/12/17(水) 11:56:39JRE_HOMEという名前の環境変数でJREのパスを指定しないと動かないようです。
この設定は何の意味があるのでしょうか?
Tomcatが内部でJRE_HOMEという参照を固定的に持ってるのですか?
WindowsでTomcatを動かした時は設定した覚えはないのですが。
0045デフォルトの名無しさん
2008/12/17(水) 12:52:02Linux にはいろいろな種類があって、実行ファイルとかを置く場所が種類によって異なったりするんだよ。
0046デフォルトの名無しさん
2008/12/17(水) 13:27:55Tomcatを起動するスクリプトで使用している。
このスクリプトはWindowsとLinuxで違う。
詳しくはTomcatのbin以下のテキストファイルを参照。
特に、setclasspath.batかsetclasspath.sh。
Windowsでexe形式のインストーラを使用した場合は、
インストーラがレジストリ見てJAVA_HOMEに相当するパスを
自分で見つけてくれる。だから設定しなくても動く。
詳しくはここ参照。
ttp://tomcat.apache.org/tomcat-6.0-doc/setup.html
0047デフォルトの名無しさん
2008/12/17(水) 14:06:280048デフォルトの名無しさん
2008/12/17(水) 14:49:45学校の課題では在庫管理プログラムを作るよう言われて作りましたが今一面白みがないので…
0049デフォルトの名無しさん
2008/12/17(水) 15:02:39メモ帳とか
0050デフォルトの名無しさん
2008/12/17(水) 15:25:250051デフォルトの名無しさん
2008/12/17(水) 16:19:360052デフォルトの名無しさん
2008/12/17(水) 16:36:05なにモザイクがあるかどうか判別すればいい。
0053デフォルトの名無しさん
2008/12/17(水) 16:45:170054デフォルトの名無しさん
2008/12/17(水) 16:58:120055デフォルトの名無しさん
2008/12/17(水) 18:24:33タンスの中をあさってたらなぜか俺が欲しかったおもちゃを箱付き新品で発見したんだよ。
おかしいなと思いつつ、親に聞いたら驚いたような顔をして「親戚の子にあげるつもりだった物だから」と
何度も言ってた。そのおもちゃがどういう意味を持つのか、俺が気づいたのは成長してからだったんだ。
ちゃんと隠しておいてくれよ、と思う。
0056デフォルトの名無しさん
2008/12/17(水) 20:39:50「Eclipse 本体と便利なプラグインのセットです。」と書いてるんですが本体が入って無いんですけど
そういうものなんでしょうか?
005744
2008/12/17(水) 20:49:38>>46
お礼遅くなりましたがありがとうございました。
奥深いなぁ。windowsが内部でそんなことしてるとは知りませんでした。
というかそんな知識どうやって得るんでしょうかね。。ネットでも見ないし。
ど素人からこの業界に入った高卒の自分には限界があるんですかね。
0058デフォルトの名無しさん
2008/12/17(水) 21:07:30心の中では見下してるかなやっぱり
中卒とか高卒は問題外で
正直言えば同じ立場で仕事するのも抵抗がある
0059デフォルトの名無しさん
2008/12/17(水) 21:42:100060デフォルトの名無しさん
2008/12/17(水) 21:43:16>>39
RandamAccessFileを利用して無事動作させることが出来ました。
ありがとうございます!
0061デフォルトの名無しさん
2008/12/17(水) 22:12:41さすがにjava以前にOSから勉強した方が良い
0062デフォルトの名無しさん
2008/12/17(水) 22:28:49ほんとにいいソフト作ったな
0063デフォルトの名無しさん
2008/12/17(水) 22:31:29PCさわりはじめて半年でカーネルハッカーになった高校生なんてのもいるんだ。学歴は関係ない。
知っていることが重要なんじゃなくて、どうやったら目的の情報にたどり着けるかが重要。
付属のやオフィシャルサイトのドキュメントは情報の宝庫だ。せめて目次くらいは一通り眺めろ。
設定ファイルにも「こういうときはこう設定する」という情報がコメントアウトで記載されてることがよくあるから参考にしろ。
ぐぐるときも、通りいっぺんのキーワードじゃなくて、付属ドキュメントに書いてあるキーワードを使えば目的の情報にたどり着ける可能性が上がる。
最後の手段はソースコードだ。Javaなら、クラス名を眺めるだけでも何処で何やってるのかなんとなくわかることもある。
健闘を祈る。
0064デフォルトの名無しさん
2008/12/17(水) 23:05:08現在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);
0065デフォルトの名無しさん
2008/12/18(木) 00:07:08ProcessBuilderで子プロセス(Notepadなどのエディタ)を起動して
そのエディタが非アクティブになった時に、親プロセスから操作して
アクティブに戻すことはできるのでしょうか?
0066デフォルトの名無しさん
2008/12/18(木) 00:10:090067デフォルトの名無しさん
2008/12/18(木) 00:23:47Robotを使う方法では
Alt + Tabを自動で押すと言う方法しか思い浮かばず、
親プロセスと子プロセスの間にアクティブなウインドウが入ってしまうと
そちらに切り替わってしまうんです。
子プロセスのエディタが最小化されてても、それを指定してアクティブにすると言う方法は
ないでしょうか?
0068デフォルトの名無しさん
2008/12/18(木) 08:24:35>>46が情報ソースとしてURL示しているのに
「ネットでも見ない」とほざく>>44は低能に違いない。
0069デフォルトの名無しさん
2008/12/18(木) 08:43:44それは俺
0070デフォルトの名無しさん
2008/12/18(木) 09:03:440071デフォルトの名無しさん
2008/12/18(木) 10:49:09urlのリストをデータベース(mysql)に入れて、status=0に全セット
a)urlでstatus=0のものを読み込む
b)urlのstatus=2にする
c)urlにgetでアクセスして内容を取ってくる
d)c)の結果をデータベースに保存
e)urlのstatus=1にする
というjavaコマンドラインのプログラムを作ってみて、
複数窓を立ち上げて同時に動かしたら
見事に全部が同じurlにアクセスして、
しかも読み込みタイミングが全く同時なんだけど
どうして?
なにか思いつく人教えてー
100%staticではないんだけど、、、
ロックもどきが動作していないのか
どっかでデータが共有されて同じ内容を実行してしまっているのか・・・
ソースはでかすぎてのせるの大変だけど
ソースレベルでみないと分からない漢字でしょうか
0072デフォルトの名無しさん
2008/12/18(木) 11:24:330073デフォルトの名無しさん
2008/12/18(木) 11:26:47最近サクサクみていた動画共有サイトがあるのですが
突然先週末くらいから「インターネットサイト○○は開けません。操作は中断されました」
というエラーが出るようになり見れなくなりました。
使ってるブラウザはIE6なのですが、firefoxをインストールしたら、それでは見れました。
(でも重いので削除してIE6に戻したのですが・・)
いろいろ調べて試行錯誤してみると、javascriptをオフにすると見れるようになったんです。
でも先週まではオフにしなくても見れたのに何故でしょうか。
また、ダウンロードの時間も長くなりました。原因は何ですか?
0074デフォルトの名無しさん
2008/12/18(木) 11:30:340075デフォルトの名無しさん
2008/12/18(木) 11:52:51その動画共有サイトはFirefoxでしかテストしてないのです。
Firefoxを使いましょう。
0076デフォルトの名無しさん
2008/12/18(木) 11:53:33Eclipseでプロジェクト作成してその中の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環境です。
よろしくお願いします。
0077デフォルトの名無しさん
2008/12/18(木) 12:13:19File file = new File("src", "data.txt");
0078デフォルトの名無しさん
2008/12/18(木) 12:50:060079デフォルトの名無しさん
2008/12/18(木) 12:57:550080デフォルトの名無しさん
2008/12/18(木) 13:07:45008176
2008/12/18(木) 13:22:29File 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");
とすると
.をカレントディレクトリと認識できずにパス名の中に「.」という文字のまま
セットされて駄目でした。
勉強になりました。ありがとうございました。
008264
2008/12/18(木) 15:06:58できない仕様ならば早急に対処しないと、無駄な工数がかかってしまいます。
厚かましいとは思いますが、よろしくお願いします。
0083デフォルトの名無しさん
2008/12/18(木) 15:59:400084デフォルトの名無しさん
2008/12/18(木) 17:48:150085デフォルトの名無しさん
2008/12/18(木) 17:49:430086デフォルトの名無しさん
2008/12/18(木) 18:08:41JDK/JRE1.6では問題なかったのですが、1.4.2にすると
4bitカラーのPNGの色が化けてしまいます。
この組み合わせで正しく描画出来た方いらっしゃいますか?
1bitや8bitでは問題無いみたいです。
0087デフォルトの名無しさん
2008/12/18(木) 21:46:35$>java hoge
............Loaded ○○%
みたいなメッセージ出してる時の
○○の部分だけ増加させるのってどうやったらいいですか?
System.out.println()だと無駄に行数が増える。
0088デフォルトの名無しさん
2008/12/18(木) 21:53:10"\r" とか使う。
System.out.print("foo");
Thread.sleep(1000);
System.out.print("\rbar");
を試してみな。
0089デフォルトの名無しさん
2008/12/18(木) 21:58:44よくあることだよ。
新しいバージョンのJREでバグが直ったと思ったら
今度は別の形式の画像ロードにバグが入ってたり。
ImageIO と Toolkit を使い分けるといい。
0090デフォルトの名無しさん
2008/12/18(木) 22:04:47即レスさんきう。
できました。
0091デフォルトの名無しさん
2008/12/18(木) 22:08:280092デフォルトの名無しさん
2008/12/18(木) 23:34:05できるよ。
java.awt.Graphics,Graphics2Dのjavadoc読め。
あとJava2Dも調べればよし。
0093デフォルトの名無しさん
2008/12/18(木) 23:54:080094デフォルトの名無しさん
2008/12/18(木) 23:59:26その前にJavaスレでその質問をすることが適当かどうか考えような。
0095デフォルトの名無しさん
2008/12/19(金) 00:07:47ありがとうございます。ImageIOで解決しました。
しかし、画像の一部を90度回転させるのにAffineTransform.rotate()
を使っていたのですが、JRE1.4.2だとオフセットがずれてる…泣きそう。
quadrantRotateは1.6からのメソッドだし…
旧バージョンのJavaにも対応って、そもそも無理なんでしょうか?
0096デフォルトの名無しさん
2008/12/19(金) 01:23:01メインはJavaとPHPとRubyぐらいかな
まぁ24歳で初心者から中途入社した下っ端PGですがね
0097デフォルトの名無しさん
2008/12/19(金) 01:42:55>JFreeChartではこのような表現は不可能なのでしょうか。
半年前にいじった時は可能だった
やり方詳細はもう忘れたので自分で調べてちょ
009891
2008/12/19(金) 01:55:10回答有難うございます。
フォントサイズの方は、
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
009991
2008/12/19(金) 02:02:12affine = this.getFont().getTransform();
affine2 = (AffineTransform)affine.clone();
としてみましたが、回らなくなっただけで縦にはならず・・・。
0100デフォルトの名無しさん
2008/12/19(金) 07:14:430101デフォルトの名無しさん
2008/12/19(金) 12:31:42縦書きって、日本語のような縦書き?
それとも、横書きを90または-90度回転するって意味?
98,99でやってることからは、後者のように見えるけど。
FontにAffineTransformを適用してもいいけど、
Graphics2DにAffineTransformを適用した方が簡単だと思う。
試行錯誤も大事だけど、Java2Dの資料を一通り読んでから試行錯誤したほうが効率いいと思うよ。
0102デフォルトの名無しさん
2008/12/19(金) 21:22:33否かをコマンドライン引数で判断するプログラムですが、うまくデバッグできません。
ご教授頂ければ幸いです。
ソースは下記です。
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];
}
}
0103102
2008/12/19(金) 21:23:45C:\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"
0104デフォルトの名無しさん
2008/12/19(金) 21:34:36とりあえず、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("登録されてません。><");
}
0105デフォルトの名無しさん
2008/12/19(金) 23:52:0864bit対応のtomcatのインストーラが見つかりません。
アドバイスいただけると助かります。
0106デフォルトの名無しさん
2008/12/20(土) 00:50:15zipを好きなところに展開すればいいやん。
Tomcat自体はJavaアプリだから、32bitも64bitも関係ない。
0107デフォルトの名無しさん
2008/12/20(土) 00:59:35お客さんに改竄対応はどうしてるの?と、聞かれて、
実はたいして何もやってないのですが、
どんな対応を入れるのが良いのでしょうか?
XSSだのSQLインジェクションはフレームワークで何とかなると思ってて、
更新系の処理の場合はトランザクションのトークンチェックを入れてます。
(更新画面→更新完了画面以外は、ブラウザ戻るボタンとか自由)
改竄って意味が、例えば表示したJSPというかHTMLを、
クライアントが保存して値を書き換えてpostされても大丈夫?
みたいなことだと思っています。
今のところ、クライアント上(HTMLやJS)で制御している処理については、
ちゃんとサーバーでも確認させる。
例えば無効化(disabled)にしてるから押せないから処理が動かないではなく、
無効化させる判定をサーバー側でも再度確認してから処理を実行。
ってなのぐらいしか浮かんでないのですが、アドバイスが欲しいです。
0109デフォルトの名無しさん
2008/12/20(土) 01:48:29よくニュースなどに出てくるウェブページ改竄クラックは、SQLインジェ
クションが多いみたいだね。SQLインジェクションがフレームワークを使
うだけで防げるかどうかはフレームワークしだい。
たぶんJavaに依存しない話で、板違いだと思われる。
0110デフォルトの名無しさん
2008/12/20(土) 02:38:42XSSとSQLインジェクションが無効であることをきっちり確認して、
>今のところ、クライアント上(HTMLやJS)で制御している処理については、
>ちゃんとサーバーでも確認させる。
>例えば無効化(disabled)にしてるから押せないから処理が動かないではなく、
>無効化させる判定をサーバー側でも再度確認してから処理を実行。
がきちんとできてれば問題ないんじゃない?
で、お客さんにこういう対応しています。
大丈夫です。って資料作って言えばいいと思うよ。
0111108
2008/12/20(土) 08:28:45フレームワークと書いたけど、それだけじゃ無理かな。
プロ(?)の攻撃と同じような確認はできないですけど、
シングルコーテーション入れたりしながらチェックしてみます。
そして板についても考えたのですが、
あまりよいのが見つからなくてjavaにしちゃいました。すいません。
>>110
どうもありがとうございます。
上でも書いたのですが、もう少しチェックをちゃんとやってみます。
お客さんに聞かれたときにすんなり答えていれば、
余計な資料作成とかで時間取られないで済んでいたのになと、
後悔しています。
あまりjavaのWEB開発の経験がないのですが、セキュリティ対策って難しいですね。
散々言われてるだろうけど、ダブルポストやらブラウザの戻る制御や、
URL直打ち(予定外の遷移)やら、XSSにSQLインジェクションやら、
考えることばかりでびっくりしました。
0113デフォルトの名無しさん
2008/12/20(土) 09:28:43お金はかかるけど専門の会社に頼んだほうがいいよ
イントラならどうでもいいけど
0114デフォルトの名無しさん
2008/12/20(土) 18:57:19あんなときはJSPやServeltが動けばいいって時代で一生懸命Web+DBPressとかJavaWorldとか
本買いあさって開発してたなあ。Webアプリのセキュリティなんてなんもいわれんかった時代じゃ。
あの頃開発したのは、どうなっとるんじゃろ?
0116デフォルトの名無しさん
2008/12/20(土) 21:40:12import 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;
}
}
}
}
0117デフォルトの名無しさん
2008/12/20(土) 21:46:20とりあえず、numまで調べず、√numまででいい。
0118デフォルトの名無しさん
2008/12/20(土) 21:55:46テキストファイルに文字を書き込みたいのですが、
例えば
『あいうえおさしすせそたちつてと』
というテキストファイルの文章があるとして、「お」の後の位置に「かきくけこ」を加えて
『あいうえおかきくけこさしすせそたちつてと』
としたいのです。
しかし、RandomAccessFileのwriteメソッドを使うと
『あいうえおかきくけこたちつてと』
となり、元からあった「さしすせそ」が潰れてしまいます。
元々の文字を潰さずに文字を追加する方法は何か無いのでしょうか。
0119デフォルトの名無しさん
2008/12/20(土) 21:56:14と言うと問題はこれですね、
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文を使わないで書く事も考えたんですけど
流石に厳しかったです(汗
0120デフォルトの名無しさん
2008/12/20(土) 22:04:20if(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 +"は素数です。");
}
0121デフォルトの名無しさん
2008/12/20(土) 22:07:38有難う御座います、
120さんのコードを参考にまた他のも考えてみます。
素数の高速化って本当に奥が深いですね…
0122デフォルトの名無しさん
2008/12/20(土) 22:22:34Javaにcrypt(3)相当のAPIはありますか?
0123デフォルトの名無しさん
2008/12/20(土) 22:26:09javax.crypto は?
0125デフォルトの名無しさん
2008/12/20(土) 23:07:42単純な方法はないと思う。
「さしすせそ」以降のデータを全て後にずらしてから
「かきくけこ」を書き込むとか、
地道なことをやる必要がある。
0126デフォルトの名無しさん
2008/12/21(日) 00:04:40下記のプログラムを実行したのですが、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);
}
}
0127デフォルトの名無しさん
2008/12/21(日) 00:11:21一つ上の繰り返し構造を抜けるだけなので。
Label使う? それとも、キチンとメソッドに分ける?
0128hello worldすら・・・
2008/12/21(日) 00:17:41public 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.
0129デフォルトの名無しさん
2008/12/21(日) 00:20:31即レスありがとうございます。
試験勉強で入れ子の構造を理解しようとしてます。
まだアルゴリズムが完全に理解してないのでまず処理の見方とか
ご教授していただければありがたいです
0130128
2008/12/21(日) 00:36:36半分解決しました。
java -classpath . sample1
これでhello worldが表示されたのですが
これのクラスパス変数設定を変える方法がわからないので、おしえてください
0131デフォルトの名無しさん
2008/12/21(日) 01:08:05甘えたりしないで教科書でちゃんと勉強してからにしてくれ。
0132デフォルトの名無しさん
2008/12/21(日) 05:57:08して線を引くプログラムを書こうとしたのですがうまくいきません。まず
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()がおかしいという趣旨のエラーがでます。
よろしくお願いします。
0133デフォルトの名無しさん
2008/12/21(日) 06:20:020134デフォルトの名無しさん
2008/12/21(日) 10:21:47ファイルの途中にデータを挿入する方法は無い。
挿入したい場所以降を全部読み出して、挿入した結果で上書きしないといけない。
0135デフォルトの名無しさん
2008/12/21(日) 10:22:59インストール時に環境変数CLASSPATHを設定したりしてないか?
0136デフォルトの名無しさん
2008/12/21(日) 11:17:070138デフォルトの名無しさん
2008/12/21(日) 12:04:430139デフォルトの名無しさん
2008/12/21(日) 12:12:55作成したクラスに Serializableを実装することで
作成したインスタンスをObjectOutoutStreamなどで保存、読み込みできるのは理解したのですが
同じ型のクラスの配列を作成し、その配列にインスタンスを複数代入した場合
この配列をどのようにしたら保存、読み込みできるのでしょうか
0140デフォルトの名無しさん
2008/12/21(日) 12:37:58javaの問題じゃない。一般的なOS(WindowsとかLinux等のUNIX系OSとか)で使われるファイルシステムの原理的な制約だから、プログラミング言語を問わず同じこと。
メインフレーム系OSのファイルシステムならそういうことはできるかもしれんけど、個人で使う機会はまずない。
0141デフォルトの名無しさん
2008/12/21(日) 12:54:12最後にやっぱりjavaは不便ですねで締めるのも一緒
0142デフォルトの名無しさん
2008/12/21(日) 12:59:52132です
そうなんですよ。でもpaint()だけじゃなくて適当な変数をAppLine
クラスに加えて、インスタンスを介して利用しようとしてもエラーが
出るので...
java上級者の方が上のソースを見ておかしな所って無いんでしょうか?
てか論外なやり方をしてるから誰も答えてくれないんでしょうか??
0143デフォルトの名無しさん
2008/12/21(日) 13:17:010144デフォルトの名無しさん
2008/12/21(日) 13:44:12List<TShohin> shohins = q.getRssultList();
というコードがあるのですが、単語を<>で囲むとどういう意味があるんですか。
0145デフォルトの名無しさん
2008/12/21(日) 13:47:380146デフォルトの名無しさん
2008/12/21(日) 13:49:01Appletを継承したんならmainなんて要らんだろ
エントリはinitだったか?
想像で勝手に試行錯誤するんじゃなくて、まず
Applet+作成+入門とかでググったら?
0147デフォルトの名無しさん
2008/12/21(日) 13:56:35マジレスしてあげると最近のjavaで入った記法
Tshohinのリストになる、Objectじゃなく
0148デフォルトの名無しさん
2008/12/21(日) 14:00:58ありがとうございます
0149デフォルトの名無しさん
2008/12/21(日) 14:21:14eclipseを使ったiアプリですが、パッケージの使い方を
教えてください。
asciiの本に掲載されていたScratchPad上に簡易ファイルシステムを
構築するためのパッケージがあって、本にはソールフォルダの中に
パッケージのフォルダ(spfs)を置くだけって記述があるんですが、
eclipseで使う場合、何らかの登録が必要だと思うんです。
どうやればいいんでしょうか?
0150デフォルトの名無しさん
2008/12/21(日) 14:42:32Appletを継承したAppLineクラスを他のクラスで実行するにはどうしたら
いいでしょうか?
AppLine単独で実行すれば直線が引けることは解っています。
ググって調べても単独のクラスで実行するやり方しか載っていません
0151デフォルトの名無しさん
2008/12/21(日) 14:57:490152デフォルトの名無しさん
2008/12/21(日) 14:59:25アプレットを継承したクラスを他のアプレットから継承したクラスから使うと
アプレットを2つも定義する事になるので、PCがバグルからそんなことはできない。
普通は、アプレットクラス(もしくはアプレットの継承クラス)から使うくらすは
単なるクラスで作成して、アプレットクラスを継承しない。
0153デフォルトの名無しさん
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()がおかしいという趣旨のエラーがでます。
よろしくお願いします。
0154デフォルトの名無しさん
2008/12/21(日) 15:06:420155デフォルトの名無しさん
2008/12/21(日) 15:11:39まず普通のコンソールアプリやGUIアプリはエントリポイント(アプリケーションの開始ポイント)が
メインメソッドって言う事になってて、そこで色々なメソッド呼び出して処理をする。Applet(サーブレットも)みたいな特殊な環境で動くプログラムは
メインメソッドでなくそのクラス特有のメソッドから始まる事になってる。正確に言うと動き出すのはその動作環境上で初期化したらあるメソッドが呼ばれることに
なっている。appletだとinitメソッドになってる。で、再描画が必要なときには
paintが呼び出されて、終わるときはdestroyが呼び出されるようになってる。だから、Appletを継承したクラスは
そこに指示をかけばいい。で、Appletを継承したクラスからAppletを継承したクラスを呼び出すと
これらの必須メソッドがダブることになるから、うまくいかない。Appletを継承したクラスはひとつでいいんだ。
で、君のやりたい事をやろうとするソースは次レスにのせる。
0156デフォルトの名無しさん
2008/12/21(日) 15:17:06コンパイラ(JDKとか)はどの様に入れれば良いですか?
0157155
2008/12/21(日) 15:29:17import 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っていうのが付くメソッドはインスタンス化しなくても呼び出せるからメモリの節約になるから
普通はこうやってかく。
0158155
2008/12/21(日) 15:32:48import 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は久しぶりぶりだから、つかれちゃったよ★
0159デフォルトの名無しさん
2008/12/21(日) 15:36:32http://java.com/ja/download/manual.jsp
とか
http://www.apple.com/jp/ftp-info/reference/javaformacosx105update1.html
とか?
http://www.stackasterisk.jp/tech/java/macDk01_01.jspにはMacOSXではこれらが標準でインストールされているので、なにもしなくても既にJavaアプリケーションの実行・開発環境が備わっています。思い立ったらすぐ!Java!が可能です。
ってかいてあるよ。おれはMACは良く知らん。
0160デフォルトの名無しさん
2008/12/21(日) 15:54:44なんだおまえ?
0161デフォルトの名無しさん
2008/12/21(日) 16:18:18アプレットをアプリとしても実行できるようにする程度のことだろ。
0162デフォルトの名無しさん
2008/12/21(日) 16:26:070163デフォルトの名無しさん
2008/12/21(日) 16:44:220164デフォルトの名無しさん
2008/12/21(日) 17:19:01System.runだったけか?あれでappletviewerで動かすならいいけど。
0165デフォルトの名無しさん
2008/12/21(日) 17:27:05158さん丁寧にありがとうございます。
AppLine以外にAppRectを用意した時にポリモフィズムを利用して
効率的に実行用のmainクラスでAppLineとAppRectを実行したいんですが..
paintメソッドをオーバーライドしたいです
(見た目は同じpaintだけど中身は違うぜみたいな)
そろそろ怒られそうですね(^^;)
ド素人ですみませんm(__)m
0166デフォルトの名無しさん
2008/12/21(日) 17:43:590167デフォルトの名無しさん
2008/12/21(日) 17:45:52サブクラス化してオーバーライドするのは直接的にはポリモーフィズム関係ないと思うんだが?
C++だと動的バインディングないから仮想関数で、
javaなら動的バインディングあるからオーバーライドすればいいだけってだけでさ。
概念とそれを実現する言語仕様は違うぞ。
概念はすでに習っててやってるんだよな?
概念理解してないならお勉強し直せってところまで戻るぞ。
0168デフォルトの名無しさん
2008/12/21(日) 18:57:51オブジェクトにメッセージを送信する側から見れば、同じメッセージでも各オブジェクトによって挙動が違うだろ。
Cのvtableとかも分からないでもないが、おまえの方こそ勉強しなおしなんじゃないか?
オブジェクト指向の教科書読んでもどうせちんちんぷいぷいなんだろw
0169デフォルトの名無しさん
2008/12/21(日) 19:00:28ちんちんぷいぷい概念乙
0170デフォルトの名無しさん
2008/12/21(日) 19:01:010171デフォルトの名無しさん
2008/12/21(日) 19:18:28それは、オーバーライドなのです。
0172デフォルトの名無しさん
2008/12/21(日) 19:26:100173デフォルトの名無しさん
2008/12/21(日) 19:54:26アプレットは普通のアプリケーションでない。
だから、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);
}
0174デフォルトの名無しさん
2008/12/21(日) 20:03:02まあ、あとあと考えると環境変数の勉強になったわっておもうけど。
Perlとかだとかってに設定してくれるよね。
0175デフォルトの名無しさん
2008/12/21(日) 20:25:340176デフォルトの名無しさん
2008/12/21(日) 20:36:42Javaの環境変数は勝手にやってくれるOSもあるんじゃまいか?
おいらは、環境変数の設定はした覚えがない
0177デフォルトの名無しさん
2008/12/21(日) 20:40:350178デフォルトの名無しさん
2008/12/21(日) 21:07:47何処で聞いたの、そんなこと。
0179デフォルトの名無しさん
2008/12/21(日) 21:30:11これではメソッドを自分で選択しているにすぎないんじゃないかな。
ポリモーフィズムができてないかもね
0180デフォルトの名無しさん
2008/12/21(日) 21:30:340181デフォルトの名無しさん
2008/12/21(日) 21:37:49って、難しいな。
プログラムを示すだけではなく、どうしてそうなるかを
言葉で補足説明しないと完全にならないな。
0182デフォルトの名無しさん
2008/12/21(日) 22:00:460183デフォルトの名無しさん
2008/12/21(日) 22:13:25ビット位置って一般的に0オリジンなんじゃ?
0184デフォルトの名無しさん
2008/12/21(日) 22:18:010185デフォルトの名無しさん
2008/12/21(日) 22:32:08逆じゃないの?
Cはどんなマシンで動いてもいいから、負数の表現はマシン依存。
JavaはJavaVMの仕様だから、一般的な2の補数表現で統一できる。
0186デフォルトの名無しさん
2008/12/21(日) 22:56:06今ウィンドウ型アプリケーションを作ってます
で、�@ボタン1を押すと指定した数だけ画面にランダムに点を描画
�Aボタン2を押すとその点を昇順に並べ替えて描画
って感じなんですが、
ボタン2をおすと�@で描いた点がいったん消えて
更地に描画されていってしまうんです
�@の点を残しつつ�Aの点を描画する事は出来ますかね?
教えてください
0187デフォルトの名無しさん
2008/12/21(日) 23:05:37それだけだとなんともいえねー
0188デフォルトの名無しさん
2008/12/21(日) 23:28:43C言語では、
負数が2の補数表現でなくても良いが、
負数の最上位ビットは1でなくてはいけない。
0189デフォルトの名無しさん
2008/12/21(日) 23:56:18【質問】
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で用いようと思っております。
以上です。よろしくお願いいたします。
0190デフォルトの名無しさん
2008/12/22(月) 00:06:41それで肝心のJavaではどうなってるんですか?
0191デフォルトの名無しさん
2008/12/22(月) 00:08:10そういう表現はしてないから、間違ってるとは言えない
0192デフォルトの名無しさん
2008/12/22(月) 00:43:47JavaのGUI関係をフレームワークみたいに作って、VB6そっくりのGUI構築にしてやろうとおもうんだ。
売れるかな?
0193デフォルトの名無しさん
2008/12/22(月) 01:02:19まかせた!
0194デフォルトの名無しさん
2008/12/22(月) 01:03:17よほどの完成度じゃなきゃ売れないだろ
当たり前だが
0195デフォルトの名無しさん
2008/12/22(月) 01:11:39なぜVB6?
2008では駄目なのか?
0196デフォルトの名無しさん
2008/12/22(月) 01:31:490197デフォルトの名無しさん
2008/12/22(月) 01:53:38ところで、VB6そっくりのGUI構築ってなんのこと
0198デフォルトの名無しさん
2008/12/22(月) 02:19:31するとよく見かける val>>>31 でサインビットを確認するのは環境依存でJavaとしては将来的にヤバイんじゃないでしょうか?
0199デフォルトの名無しさん
2008/12/22(月) 02:50:48Javaを使い続けても核戦争は起きないとは書かれていません。
大変危険なので、今すぐ辞めましょう。
0200デフォルトの名無しさん
2008/12/22(月) 07:43:17「間違いとは言えない」ってのは屁理屈レベルでの話だろ。
int は 32ビットで2の補数表現使う、って書いてあるから val>>31 で符号みても大丈夫。
http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.2.1
> The integral types are byte, short, int, and long, whose values are 8-bit, 16-bit,
> 32-bit and 64-bit signed two's-complement integers, respectively, and char,
> whose values are 16-bit unsigned integers representing UTF-16 code units (§3.1).
0201デフォルトの名無しさん
2008/12/22(月) 10:20:51なんだ。これのことだったんですね。ありがとうございます。
0202デフォルトの名無しさん
2008/12/22(月) 17:11:46>http://rd.vector.co.jp/soft/other/java/se033524.html
このreadmeに次のような文章が書いてあります。
http://wtar00.ld.infoseek.co.jp/applet/alctitle/readme.txt
>・基本的に商用利用はできません。
>(JDKを使用して開発しているためです。)
JDKを使用して作ったプログラムは商用利用できないのでしょうか。
ZIPブラウザー
>http://rd.vector.co.jp/soft/other/java/se111965.html
例えば、上記のソフトの場合はシェアウェアなので、
商用利用はしてもいいと思っているのですが。
ただ改めて思うとJDKの著作権はSUN社にあると思うので、心配になりました。
0203デフォルトの名無しさん
2008/12/22(月) 17:27:260204デフォルトの名無しさん
2008/12/22(月) 18:09:18JTable = new JTable();
だけじゃ使えないの??
0205デフォルトの名無しさん
2008/12/22(月) 18:11:05>>204
入門書の、配列の解説を熟読。
0206デフォルトの名無しさん
2008/12/22(月) 18:22:19いってきまーす!
0207デフォルトの名無しさん
2008/12/22(月) 18:25:290208デフォルトの名無しさん
2008/12/22(月) 18:51:120209デフォルトの名無しさん
2008/12/22(月) 19:18:16[i]
[]←は配列を表す
配列とは値のリスト化である
すなわち・・・
[3]としたとき
あ、配列数は0から数えるので
[0][1][2]と3つの変数格納場所が生成されるんだよ
んで、まぁファックユー
あとは自分で調べようぜ
0210デフォルトの名無しさん
2008/12/22(月) 19:19:37i=1;ならiには1が入る
つまり配列には[0]と[1]があるという意味になる
実用的にすると・・・
ループ処理のときとかだ
for[i]
0211デフォルトの名無しさん
2008/12/22(月) 19:22:32あとJTable = new JTable();って、変数名がないな
変数名が無いとオブジェクトが生成されないので
正しくは JTable aaaa = new JTable();とか書くよ
(↑オブジェクト名を書く)
0212202
2008/12/22(月) 19:25:16レス、ありがとうございます。
今までCの標準で付いているstdio.hのような感覚で、
Javaも標準で付いているjava.mathなどを、当たり前のようにインポートしたり、
ライセンスに関して特に気にしていませんでしたが、
ですが、最近「JDKを使用して作ったプログラムは商用利用できない」
という記述を見つけたので、ライセンスのことが気になっていました。
Cの場合は最初から付いているstdioやmathなどならインクルードして
コンパイルして作ったソフトとか、自由なライセンスで配布できるのですが。
JavaではVMというちょっと特殊な形をとっているので、
ライセンスを考える前に、SUNのライセンスに従わないといけないんですね。
0213デフォルトの名無しさん
2008/12/22(月) 19:26:23VB感覚でコンポーネントくっつけるのは面白いが
はっきり言って大したプログラムでもないな
擬似コードは俺がつくってやる
実装はおまえだ
//コンポーネントアイコンをクリックするとコンポーネント作成モードになる
if ボタン ここからここまでの大きさでボタンつくるよ
if テキスト ここからここまでテキスト(ry
ほら、できた
0214デフォルトの名無しさん
2008/12/22(月) 19:26:480215デフォルトの名無しさん
2008/12/22(月) 19:30:58Javaはゲーム作成用のライブラリがこれといってないよ
CはDirectXとかあるんでオススメだよ
とりあえずCやりましょう
0216デフォルトの名無しさん
2008/12/22(月) 19:31:250217202
2008/12/22(月) 19:38:20あれから、JavaのライセンスはSCSLということが分かりました。
http://e-words.jp/w/SCSL.html
>自社製品にJava 2(またはその派生物)を組み込んで販売し、
>利益をあげるような場合には、利益に応じたライセンス料を支払う必要がある
という感じなので、JARとかを配布する時にシェアウェアにするという形なら
特にライセンス料払わなくていいことが分かりました。ありがとうござました。m(_ _)m
0218デフォルトの名無しさん
2008/12/22(月) 19:42:09ゲームプログラマになるならまずここ
http://dixq.net/index.html
0219デフォルトの名無しさん
2008/12/22(月) 20:23:57JDKのディレクトリ内にライセンス書が転がってるから探せ
0220デフォルトの名無しさん
2008/12/22(月) 20:35:05それは「ビルドするとJDK作れるソースコード」を再配布する際のライセンス。
0221デフォルトの名無しさん
2008/12/22(月) 21:34:49ttp://www.sun.com/software/opensource/java/faq.jsp#g
ほい
0222202
2008/12/22(月) 21:56:10多分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で配布の際もライブラリは含まれないと思うので、(動的リンクなので?)
特に制限はない。ということが分かりました。
ライブラリのソースコードをいじらないなど、普通に使う分には、
特にライセンスについては考えなくてよさそうですね。
ありがとうございました。
0223デフォルトの名無しさん
2008/12/22(月) 22:17:07うお、丁寧なレスすいません;
頑張って勉強致します!
0224デフォルトの名無しさん
2008/12/22(月) 22:36:360225デフォルトの名無しさん
2008/12/22(月) 22:55:420226デフォルトの名無しさん
2008/12/22(月) 23:03:390227デフォルトの名無しさん
2008/12/22(月) 23:20:55あとなんでJDK6update11のライセンスがBCLのまんま?
0228デフォルトの名無しさん
2008/12/22(月) 23:58:24int[] a = new int[10]
として、a[0]〜a[9]に数値を代入する
そのあと、配列aにデータが何も入ってない状態にするには
どうすればいい?
for文で回してデータを代入するしかないのかな?
誰か教えてくださひ
0229デフォルトの名無しさん
2008/12/23(火) 00:01:09データが入ってない状態って参照したときにアドレスが表示される状態ってこと?
それ宣言しなおすしかないんでね?
0230デフォルトの名無しさん
2008/12/23(火) 00:32:52やっぱりそれしかないのかな
どうもありがとう
0231デフォルトの名無しさん
2008/12/23(火) 00:36:55memsetつかえば一気に0とかにできるけどそういうこと?
0232デフォルトの名無しさん
2008/12/23(火) 00:53:530233デフォルトの名無しさん
2008/12/23(火) 01:04:260234デフォルトの名無しさん
2008/12/23(火) 01:50:19何も入ってないって、0 も入ってないってこと?
a=null;
それとも今までの配列を破棄するってこと?
a = new int[10];
0235デフォルトの名無しさん
2008/12/23(火) 02:11:11とか言ってるしArrays.fillですむ話だったりして
0236デフォルトの名無しさん
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){}
}
}
0237デフォルトの名無しさん
2008/12/23(火) 09:35:01public void run(){
while(true){
System.out.println("kk is" + this.kk);
try{
Thread.sleep(25);
}catch (Exception e){}
}
}
0238228
2008/12/23(火) 11:42:31a = null; を a[] = null;にしちゃってたわorz
色々意見を出してくれた皆さん、本当にありがとう
それではノシ
0239デフォルトの名無しさん
2008/12/23(火) 11:51:18そういうことだったんですか どうもありがとうございます
0240デフォルトの名無しさん
2008/12/23(火) 13:06:40なんでCで答えてんだよw
0241デフォルトの名無しさん
2008/12/23(火) 13:09:210242デフォルトの名無しさん
2008/12/23(火) 13:15:16もう一回質問させてもらいます
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でソート描画するんですけど、ソートすると一旦描画した点が消えてから、点が描画されちゃいます
何か解決策ないですかね?
0243デフォルトの名無しさん
2008/12/23(火) 13:46:590244デフォルトの名無しさん
2008/12/23(火) 14:41:33class MyFrame extends Frame implements ActionListener の中の
public void paint(Graphics g)の中です
0245デフォルトの名無しさん
2008/12/23(火) 15:45:50だから別々に描かれる。
0246デフォルトの名無しさん
2008/12/23(火) 15:49:06Vectorに[d,a,b]と入っているとします。
Vectorの中身を出力する際に、Hashtableのvalueの値の順に出力(この場合a,b,dの順)したいのですが、
どのようにしたらいいでしょうか?
どなたか宜しくお願いします
0247デフォルトの名無しさん
2008/12/23(火) 17:32:50クラス名 変数名 = new クラス名();
なぜ、変数名の前にクラス名を書かなくてはならないのですか?
くだらなすぎて、すいません 教えてエロい人!!
0248デフォルトの名無しさん
2008/12/23(火) 17:45:29C#ではvarとだけ書けばよくなったしC++でもautoでおkになるらしい
良い悪いは別にして,最近の流れではある
0249デフォルトの名無しさん
2008/12/23(火) 17:51:00クラスってのは要するに型。intとかと同じ
変数を宣言する際には、Javaでは型を指定しなければならない
この場合は、変数の型を「クラス名」と宣言したということ
まあ今回のように、
そんなものわざわざ宣言しなくても、代入から自明だというケースも多い
最近だと、その辺を推論してくれる言語も増えてきている
0250デフォルトの名無しさん
2008/12/23(火) 17:58:27データ型だと思えばいいのか
ありがとうございます
0251デフォルトの名無しさん
2008/12/23(火) 18:02:23スーパークラス名 変数名 = new クラス名();
とか
インターフェイス名 変数名 = new クラス名();
とか。左辺と右辺で型が一致しないことはあるよね。
もちろんコンパイラによる型推論を用いることで次第に省略可能にも
なるだろうけれども、常に省略可能、とはまだまだならないと思う。
0252デフォルトの名無しさん
2008/12/23(火) 18:04:10Collections.sort(vector, new Comparator(){
public int compare(Object obj1, Object obj2){
return ((Number)hashtable.get(obj1)).intValue() - ((Number)hashtable.get(obj2)).intValue();
}
});
0253デフォルトの名無しさん
2008/12/23(火) 18:54:31この大本に指定された c:\*.txt を取り出すにはどうしたらいいのでしょうか?(""でくくるのは無しの方向で)
0254デフォルトの名無しさん
2008/12/23(火) 19:00:23スレ違い
実際に使用しているコマンドプロンプト等のコマンドインタプリタ環境のスレに聞け
0255デフォルトの名無しさん
2008/12/23(火) 19:01:46JAVA :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での指定はできます)
0256デフォルトの名無しさん
2008/12/23(火) 19:21:50えーと 言葉足りなかったかもしれません
コマンドプロンプトで java を実行したときのお話です
それともこの悪さをしているのはjavaじゃなくて、環境依存ってことですか?
0257デフォルトの名無しさん
2008/12/23(火) 19:45:03・メソッドが呼ばれた順番を時系列で取得できる
・メソッド内の処理時間が取得できる。
・メソッドで割り当てられた最大のメモリの量
0258デフォルトの名無しさん
2008/12/23(火) 19:45:430259デフォルトの名無しさん
2008/12/23(火) 19:58:58UNIX系OSだとシェルが展開してからプログラムに引数をわたすので、そもそも展開前のワイルドカードを取得する方法はない。
Windowsだとmainメソッドを呼び出す前のスタートアップで展開してるはずなので、JNIか何かでプロセスの内部構造を叩けば取り出せるかもしれん。
0260デフォルトの名無しさん
2008/12/23(火) 20:03:36UNIX系ならシングルクォーテーションで囲めば
*を受け取れる
0261デフォルトの名無しさん
2008/12/23(火) 20:09:43おおもとの>>253で、クォートは無しって言ってる。(もとレスではダブルクォートだけど)
0262デフォルトの名無しさん
2008/12/23(火) 20:28:28ありがとうございます。
実のところ、コマンドプロンプトで実行時にダブルクォートでくくるのは
別段そんな困りはしないんですが、eclipse では引数でクォートでくくっても
無視されてしまい debugが面倒なので、大本の質問になりました。
WindowsだとCとかで書いた場合、パスは展開されないので java が環境依存を吸収
するためにワザとやってんですかねぇ。。。ヨクワカンネ
ubuntu 上で試してみましたが、 c java ともに同じ結果でした。
0263デフォルトの名無しさん
2008/12/23(火) 21:24:45何か対処法ありますか?
0264デフォルトの名無しさん
2008/12/23(火) 21:41:180265デフォルトの名無しさん
2008/12/23(火) 21:47:08一緒に描けばいいじゃん。
制御してるのは君なんだから。
そのswitch文、case毎にpaint()から抜けてる?
0266デフォルトの名無しさん
2008/12/23(火) 21:49:31追伸。
悪い事は言わないから、GUI物に手を出す前に、
コマンドライン物で基礎を勉強した方がいい。
覚える事が多いとオーバーフローを起こすぞ。
0267デフォルトの名無しさん
2008/12/23(火) 22:44:25コンソール(CUI)で、Cのgetchみたいな、
Enterを押さなくても入力されたキーを得られる
関数みたいなのがありましたら教えてください。
0268デフォルトの名無しさん
2008/12/23(火) 23:07:37まぁある意味では >>266 に賛同するかな。何をやっているのか理解しないと。
すべて paint に放り込んでるのでは。>>265 さんが書いているように他の
ところで何を描くかを決めて一発に描けば良い。
0269デフォルトの名無しさん
2008/12/24(水) 00:15:10配列に格納されている特定の数字を探してその値を変化させるにはどうすれば良いのでしょうか?
例えば配列に80,50,65,80,35という値が入っていて
その中から80の値を探して70に変えるといった感じです。
但し80が見つかったらその時点で終了して
それ以降に80という値が入っていてもそれは変化させないようにしたいんです。
for文を使うと全ての値が変わってしまい上手く行きませんでした。
どなたかわかる方がいらっしゃったら教えて下さい。
よろしくお願いします。
0270デフォルトの名無しさん
2008/12/24(水) 00:17:570271デフォルトの名無しさん
2008/12/24(水) 00:20:36我が家のテスト環境であるイクリプス+Tomcat上では動くのですが
いざ借りているホームページにアップロードしても動作しません。
どうしたら動きますか?cgiは動くのですが
0272デフォルトの名無しさん
2008/12/24(水) 00:21:370273デフォルトの名無しさん
2008/12/24(水) 01:21:33>>270 じゃないけど、条件文の中で == じゃなく = としちゃったとか。
0274デフォルトの名無しさん
2008/12/24(水) 01:43:06>>269の配列は数値の配列だし、条件式の値は真偽値でないとコンパイルエラーになるからそれはない。
具体的にトラブってるソースを>>269が出せばすぐ解決しそうだ。
0275デフォルトの名無しさん
2008/12/24(水) 02:20:18そのサービスがJSPに対応してないなら動かない。
0276デフォルトの名無しさん
2008/12/24(水) 08:39:270277デフォルトの名無しさん
2008/12/24(水) 08:41:560279デフォルトの名無しさん
2008/12/24(水) 09:09:05while(a[i]==80){
a[i]=70;
a[1]++
Destroy;
}
0281デフォルトの名無しさん
2008/12/24(水) 10:27:510282280
2008/12/24(水) 10:46:02public 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));
}
}
}
0283デフォルトの名無しさん
2008/12/24(水) 11:02:56v.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));
}
}
0285デフォルトの名無しさん
2008/12/24(水) 12:58:49>>268
実際、大した説明もないまま
課題だされちゃって・・
GUI特有のメソッドとか良くわかってないんですよね
自分で努力してみますわ
0286デフォルトの名無しさん
2008/12/24(水) 13:20:030287デフォルトの名無しさん
2008/12/24(水) 16:00:40>>279さんので出来ました!
レスして下さった方々ありがとうございました。
0288デフォルトの名無しさん
2008/12/25(木) 00:27:22視点を映画のようにどんどん変更していくようにするにはどうすれば良いのでしょうか?
ttp://www.hm5.aitai.ne.jp/~minemura/CG/view/Work1/birds2/birds2.html
0289デフォルトの名無しさん
2008/12/25(木) 01:21:10開発環境を整えようとSUNのHPを見たのですが…沢山ありますよね。
・IDEは、VS系で使っています。
・テキストエディターは、VZの頃から使っています。
IDE/コンソールどちらにしようかと迷っています。
JAVA使いの方、ご教示願います。
0290デフォルトの名無しさん
2008/12/25(木) 02:22:100291デフォルトの名無しさん
2008/12/25(木) 02:32:31誰にでも噛み付けばいいと思って…餓鬼か?w
冬休みの宿題でもしてろww
0292デフォルトの名無しさん
2008/12/25(木) 02:52:07無難にeclipse使っとけばいいと思うけど
JavaはIDEのサポートがかなり強力になることだし
少なくともテキストエディタよりはIDEがおすすめ
0293デフォルトの名無しさん
2008/12/25(木) 06:42:44事があるにしてはウブな質問でちょっと驚いた。
自分も>>292同様、Eclipse使っておけばよいと思う。
JavaでWebアプリを作るにしても単体アプリを作るにしても、今はJavaという
言語だけではなかなか完結せず、色々なライブラリやサーバーソフトと連携
する必要がある。その辺りの環境整備の手間暇に費やす時間の大半を省いて
くれるだけでも今のIDEにはとても利用価値があると思う。
0294デフォルトの名無しさん
2008/12/25(木) 08:14:31>ウブな質問でちょっと驚いた。
つまり、古株でこういった質問が来るのは無能でFA?
0295デフォルトの名無しさん
2008/12/25(木) 08:49:48おまいみたいな奴をクビにする立場なんだよw
0296デフォルトの名無しさん
2008/12/25(木) 09:00:10ガキはおまえだ。
あまつさえVZすら使えてIDEも経験あるなら開発環境なんて人に聞くレベルじゃない。
ggrksでも上等。
ググル→自分で選ぶも出来んのかと。
IDE勧めたところでjavaのIDEなんて宗教。
0297デフォルトの名無しさん
2008/12/25(木) 09:13:340298デフォルトの名無しさん
2008/12/25(木) 09:28:040299デフォルトの名無しさん
2008/12/25(木) 09:29:380300デフォルトの名無しさん
2008/12/25(木) 10:10:24どうせ10人以下の下流だろw
師走は何かと忙しいからVZ野郎は早くクビにしといたほうがいいぞ。
どうせPGなんて5年ももたいなし派遣で固めちゃうのがいいんじゃねーのw
0301デフォルトの名無しさん
2008/12/25(木) 10:14:34じゃあそれでちょっとソース見てって言ったらどうやるの?って
聞いてきた年配上司。
いったい何に使ってたんだとw
0302デフォルトの名無しさん
2008/12/25(木) 10:27:14なぁ・・・・お前がどれだけ上流か知らんが中途半端なエリート志向のテクも知識もないSEの遠吠えにしかみえんぞ
下流を馬鹿にするやつにろくな設計なんて出来やしねぇよ
0303デフォルトの名無しさん
2008/12/25(木) 10:37:34ここはおまえの糞溜めでもないしなぁ・・・・
0304デフォルトの名無しさん
2008/12/25(木) 10:43:050305デフォルトの名無しさん
2008/12/25(木) 10:53:530306デフォルトの名無しさん
2008/12/25(木) 11:07:210307デフォルトの名無しさん
2008/12/25(木) 11:27:400308デフォルトの名無しさん
2008/12/25(木) 11:56:47片方が遊んでるつもりで片方が遊ばれ返してるつもりでということもある
つまり、両方ともが相手を釣っているつもりで両方ともが無駄なことをしている、と
両方が1人の自演ということもよくある
0309デフォルトの名無しさん
2008/12/25(木) 12:04:15みんな仲間だろ???
0310デフォルトの名無しさん
2008/12/25(木) 12:43:570311デフォルトの名無しさん
2008/12/25(木) 12:44:400312デフォルトの名無しさん
2008/12/25(木) 12:47:500313デフォルトの名無しさん
2008/12/25(木) 13:20:40build.xmlの中でただのLinuxコマンドを記述することは可能でしょうか?
具体的には、
build.xmlの中でsubversionのupdateコマンドを叩きたいのですが
svnantというライブラリを入れるほどのことでもないので
svn update
と、ちょろっとコマンドで書きたいのです。
よろしくお願いします。
0314デフォルトの名無しさん
2008/12/25(木) 13:50:52execタスク
0315デフォルトの名無しさん
2008/12/25(木) 14:00:570316デフォルトの名無しさん
2008/12/25(木) 14:51:38at 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)
これってどういう意味なのでしょうか?
そしてどうすればなおるのでしょうか?
よろしくお願いします。
0317デフォルトの名無しさん
2008/12/25(木) 14:52:23home.javaをまるごと挙げてくれたらおしえてあげるよ
0318デフォルトの名無しさん
2008/12/25(木) 15:08:06home.javaの28行目にエラーがある。というか、Javaインタープリタが
実行中に28行目でエラーになった。
0319デフォルトの名無しさん
2008/12/25(木) 15:27:31配列じゃなくてfor文とかでオブジェクトを複数作ってる場合、
配列指定しなきゃいけないものを使うときは
どうすればいいんでしょうか?
0320デフォルトの名無しさん
2008/12/25(木) 15:29:03質問の意味が不明。object の配列を作りたいってこと?
0321デフォルトの名無しさん
2008/12/25(木) 15:42:28Integer.parseIntに空文字列を渡したんじゃね
空文字列は数値にできないからエラー
0322デフォルトの名無しさん
2008/12/25(木) 15:42:35#意訳
「Integer.parseIntメソッドで文字列をintの数値に変換しようとしたが
""なんて文字列から数値を読みこめなんて無茶な話だろ?
空文字列から数値を読み込めなんて俺はエスパーか何かか?」
#改善策
parseIntに渡す文字列周りの処理を再チェック。
0323デフォルトの名無しさん
2008/12/25(木) 15:43:49for(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の配列指定かな?
0324デフォルトの名無しさん
2008/12/25(木) 15:50:06ありがとうございます。
無事出来ました。
0325デフォルトの名無しさん
2008/12/25(木) 15:58:43AbstractTableModelを継承して自作TableModelを定義するか、
DefaultTableModel#isCellEditable(int,int)をオーバライドしろ。
DefaultTableModel tableModel = new DefaultTableModel(columnNames, 50){
public boolean isCellEditable(int row, int column){
return row != 1;
}
};
AbstractTableModel継承の方が、いろいろ便利ではあるが。
0326デフォルトの名無しさん
2008/12/25(木) 16:04:46http://www.javadrive.jp/tutorial/jtable/index7.html
ここか?
0327デフォルトの名無しさん
2008/12/25(木) 16:59:53質問しておきながら遅くなって申し訳ありません。
キーボード入力をString型で受け付けて(一文字)からその文字が
アルファベットかどうか確かめるためにCharacter.isLetter()を
使いたいと思い、まずString型をint型に変換してそれをさらに
int型からchar型にしたらエラーが出てしまいました。
0328デフォルトの名無しさん
2008/12/25(木) 18:59:54だから home.java を見せろ。
0329デフォルトの名無しさん
2008/12/25(木) 19:01:49それはできないです
0330デフォルトの名無しさん
2008/12/25(木) 19:10:58で、それ以前に String の中身が入ってねーんだよ。
0331デフォルトの名無しさん
2008/12/26(金) 00:10:56sunのBTS見てて思ったんだが。
0332デフォルトの名無しさん
2008/12/26(金) 00:53:350333デフォルトの名無しさん
2008/12/26(金) 01:08:36くれる。複数スレッド起こしてぶん回す簡単なプログラムを
動かしながら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();
}
}
0334デフォルトの名無しさん
2008/12/26(金) 01:44:22あわててd:をフォーマットしたんだけど
そしたら新たにインストールできなくなってしまった
何故かプログラムの追加と削除にはJAVAが残ってる
それでアンインストールしようと試みるも
致命的な問題が発生しましたと出る
0335デフォルトの名無しさん
2008/12/26(金) 01:45:330336デフォルトの名無しさん
2008/12/26(金) 01:46:140337デフォルトの名無しさん
2008/12/26(金) 01:49:49そのアプレットを公開するとなるとライセンス的に何か問題ありますか?
GNUライセンス調べてみても全く意味がわからないです
0338デフォルトの名無しさん
2008/12/26(金) 02:47:11GPLの使ってソフトを公開する場合、ソースも公開する。
0339デフォルトの名無しさん
2008/12/26(金) 02:50:33それならソース公開は必要ないだろ?
AGPLじゃないんだから
0340デフォルトの名無しさん
2008/12/26(金) 03:37:190341デフォルトの名無しさん
2008/12/26(金) 03:45:260342デフォルトの名無しさん
2008/12/26(金) 04:10:540343デフォルトの名無しさん
2008/12/26(金) 12:11:390344デフォルトの名無しさん
2008/12/26(金) 14:16:27javaの場合どうなるんだろうとずっと思っていたが解決した。
0345デフォルトの名無しさん
2008/12/26(金) 15:20:38OSSのソースを少しだけ見たら、*.javaに1つしかクラスがなかったのですが....
0346デフォルトの名無しさん
2008/12/26(金) 15:23:260347デフォルトの名無しさん
2008/12/26(金) 15:42:07そういう思想。
1ファイル1クラス。
実際、.javaに複数のクラスは書けるけど、.classでは1ファイル1クラスになるし。
.javaだけの話なら、思想なんか無視しても良いんじゃない?
0348デフォルトの名無しさん
2008/12/26(金) 17:48:24メソッドを起動中に com.sun.jdi.InvocationException が発生しました。
とえらーがでるのですが,これはどういったときに出るエラーなのでしょうか?
ご教示願いします。
よろしくお願いします。
0349デフォルトの名無しさん
2008/12/26(金) 19:53:35これどうしたら痛くならない?
0350デフォルトの名無しさん
2008/12/26(金) 20:00:470351デフォルトの名無しさん
2008/12/26(金) 22:51:180352デフォルトの名無しさん
2008/12/26(金) 22:55:23で、三角形描画ボタンを押して三角形を描画し、
四角形描画ボタンをおすと、三角形が一旦消えてから四角形が描画されます。
三角形を残したまま描画するにはどうすればいいですか?
repaint()を上手に使えればいいのか?と思ったんですが、上手くいきません。
どなたかご教授願います。
0353352�@
2008/12/26(金) 22:57:14import 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);
}
0354352�A
2008/12/26(金) 22:58:33if (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);
}
}
0355デフォルトの名無しさん
2008/12/26(金) 23:20:17それぞれの図形について描くか描かないかのフラグを用意して
それに応じて描くようにする
フラグのオンオフはボタンのアクションリスナで
0356デフォルトの名無しさん
2008/12/27(土) 00:03:48有難うございます。
残念ながら、自分はマルチコアなパソコンが無いので検証は出来ないのです・・・。
0357352
2008/12/27(土) 00:19:23フラグに応じて複数のpaintメソッドを定義するって事ですか?
それと、アクショんリスナをどう使ってオンオフを決めるんですか?
ググっても良くわからなくて・・・
もう少しヒント等くださいm(__)m
0358デフォルトの名無しさん
2008/12/27(土) 01:35:38ifを使う。
switchとif〜elseは使わない。
0359デフォルトの名無しさん
2008/12/27(土) 01:43:350360デフォルトの名無しさん
2008/12/27(土) 01:47:031) ボタン1が押されたらボタン1押されたフラグをTrueに
2) ボタン2が押されたらボタン2押されたフラグをTrueに
paintメソッド
1) ボタン1押されたフラグTrueなら三角を描画
2) ボタン2押されたフラグTrueなら四角を描画
0361デフォルトの名無しさん
2008/12/27(土) 08:40:36みたいにできたら綺麗だけどね
0362デフォルトの名無しさん
2008/12/27(土) 10:12:15一度目の上に二度目のを書きたいのなら、一度目に書いたのをもう一度二度目の時も書け。
つまり、その時表示されていて欲しいものを毎回全部書け。
0363646
2008/12/27(土) 20:28:48「ファッキンジャップ!」
と叫んでビンタしてやった。
0364デフォルトの名無しさん
2008/12/27(土) 20:34:270365デフォルトの名無しさん
2008/12/27(土) 20:35:38そのoperatorの使い方が初心者にとっては毒なんですよ
ちょっとググればわかることなのですがプログラミング体力の無いものにとっては猛毒・・・
ならば、分かりやすく書いてやるのがいいかと思う
0366デフォルトの名無しさん
2008/12/27(土) 20:36:53終了ボタンを押すと、ある画像を表示して終わるようにしたいのですが、
終了ボタン押しに対応したactionPerfoemedの中でSystem.exit()や
this.dispose()が存在すると前にthis.repaint()があっても処理しないまま
終わってしまいます。waitや他のフレームを作成するようにしても
だめです。
どうすればよいでしょうか?
0367デフォルトの名無しさん
2008/12/27(土) 21:09:440368デフォルトの名無しさん
2008/12/27(土) 21:11:52なるほど!盲点でした。
メインフレームもほかのフレームも同義に考えていたので
あっさり捨てていました。
どうも有難うございました。
0369368
2008/12/27(土) 21:30:38、、、と思ったのですが、メインフレームを残しても
閉じたいフレームに画像を表示させることは出来ませんでした。
。
0370デフォルトの名無しさん
2008/12/27(土) 22:44:17次のブロックでは押しっぱなしをやめさしたいのですがどうしたら良いのでしょうか
KeyListenerのKeyPressedで処理を受け取っているのですが……
0371デフォルトの名無しさん
2008/12/27(土) 22:46:220372デフォルトの名無しさん
2008/12/27(土) 23:23:45一回下キーを離すまで下キーを無効にするフラグ追加
0373デフォルトの名無しさん
2008/12/28(日) 01:18:32どうせ閉じるんだから画像表示したって目に止まらない速さで閉じると思うんだが。
0374デフォルトの名無しさん
2008/12/28(日) 01:42:330375デフォルトの名無しさん
2008/12/28(日) 03:48:39まっ、どうでも良いんですが。
0376デフォルトの名無しさん
2008/12/28(日) 09:26:55Closeable がない1.4用も同じコードで管理してるからつけらんなかったとか
Closeable を後付けしたときにつけ忘れたとかじゃね?
まっ、どうでも良いんですが。
0377デフォルトの名無しさん
2008/12/28(日) 14:05:59setEnabledとかないのか?
Enabled系のメソッドを使えば真偽のフラグ管理はできるはずだが
0378デフォルトの名無しさん
2008/12/28(日) 14:09:22GraphicsクラスにはEnabledメソッドがないのか
>>357すまんが俺の力じゃ太刀打ちできん
0379デフォルトの名無しさん
2008/12/28(日) 15:35:25println(a,b)とか書くとエラーになってしまいます。どうすればいいでしょうか。
0380デフォルトの名無しさん
2008/12/28(日) 15:41:260381デフォルトの名無しさん
2008/12/28(日) 15:50:29それだとa+bが計算されて出てきちゃうんです。
単に並べて表示させたいんです。
0382デフォルトの名無しさん
2008/12/28(日) 15:55:440383デフォルトの名無しさん
2008/12/28(日) 16:05:39aに3、bに4を入れてコンパイルして実行したら
なぜか51になって出てきました。
0384デフォルトの名無しさん
2008/12/28(日) 16:07:570385デフォルトの名無しさん
2008/12/28(日) 16:09:35絶対わざとだろw
0386デフォルトの名無しさん
2008/12/28(日) 16:10:26あったけぇ、あったけぇよ
0387デフォルトの名無しさん
2008/12/28(日) 16:10:55できました。ありがとう。
0388デフォルトの名無しさん
2008/12/28(日) 16:11:33一文字だったら一個でいいと思ってた。
ダブルコーテーションで""でいいとおもう
0389352
2008/12/28(日) 16:16:25出来ました!
セレクトボタンを分けてやったら大丈夫でした
アドバイスくれた皆さん
本当にありがとうございました!
0390デフォルトの名無しさん
2008/12/28(日) 16:37:150391デフォルトの名無しさん
2008/12/28(日) 16:44:17名古屋出身のひと、Java談義しませんか?
0392デフォルトの名無しさん
2008/12/28(日) 16:45:27しねえええええええええええええええええええええええええええええええ
0393デフォルトの名無しさん
2008/12/28(日) 16:53:460394デフォルトの名無しさん
2008/12/28(日) 17:16:340395デフォルトの名無しさん
2008/12/28(日) 18:19:46するとcabosが起動しなくなったので、javaをDLすると、使用中のPCには
すでにインストールされているというメッセージがでます。
そこで、再インストールしますかというメッセージが出るので、
「はい」をクリックしても、再インストールができないんです。
コントロールパネルを見るとjavaのアイコンがありますが、
コーヒーカップの絵ではなく、真っ白です。
クリックすると、アプリケーションが見つかりませんと
メッセージがでます。
javaのファイルはインストールされているけど、私のパソのOSが悪いので
認識できてないのでしょうかね。
ちなみにOSはvistaです。どうしたら元通りになるでしょう??
0396デフォルトの名無しさん
2008/12/28(日) 18:28:380397デフォルトの名無しさん
2008/12/28(日) 18:30:120398デフォルトの名無しさん
2008/12/28(日) 19:04:130399デフォルトの名無しさん
2008/12/28(日) 19:11:56どのフレームワークで使われている概念なのでしょうか?
0400デフォルトの名無しさん
2008/12/28(日) 19:44:140401デフォルトの名無しさん
2008/12/28(日) 20:45:45(たとえば,5つのスレッドを実行させて,ひとつ終わったら次のスレッドをひとつ実行させるみたいな感じ)
joinとかwaitとかを使ってやるのかな? 5つ終わってまた5つならできるんだけど。。。
教えてエロい人m(_ _)m
0402デフォルトの名無しさん
2008/12/28(日) 20:54:48Executor とか?
0403デフォルトの名無しさん
2008/12/28(日) 21:00:210404デフォルトの名無しさん
2008/12/28(日) 21:34:50おぉ。こんなのあるんだ! ありがとー
0405デフォルトの名無しさん
2008/12/28(日) 22:26:048161
これをローカルで動かせるようにできないですか><
0406デフォルトの名無しさん
2008/12/28(日) 22:36:32>>1くらい読め
JavaScriptなんか読み方もしらねーよ
0407デフォルトの名無しさん
2008/12/28(日) 22:48:110408401
2008/12/29(月) 00:06:41普通のスレッドみたいにjoinみたいなことはできないのかなぁ? すべての処理が終わってからしたいことがあるんだ・・・。。。
Webで探してみても,Sleepしてからshutdown();みたいな動作しか見つからない・・・ 助けて><
0409デフォルトの名無しさん
2008/12/29(月) 00:35:40import 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;
^と出ます。何が間違ってるのでしょうか?
誰か教えて下さい。お願いします。
0410デフォルトの名無しさん
2008/12/29(月) 00:38:470411デフォルトの名無しさん
2008/12/29(月) 01:19:26ThreadPoolExecutorのterminatedを上書きしておいて、
全部のタスクを投げ終わったら、shutdownをかけるとか
0412デフォルトの名無しさん
2008/12/29(月) 02:03:59>>409です。
本当にありがとうございました!!
0413デフォルトの名無しさん
2008/12/29(月) 03:05:41Javaなんてテクストエディタでチマチマと書くもんじゃない。
0414デフォルトの名無しさん
2008/12/29(月) 08:37:19やめろ(--; 意味のないnewするんじゃねぇ。
せめて、Integer.toString(b)
0415デフォルトの名無しさん
2008/12/29(月) 08:41:290416デフォルトの名無しさん
2008/12/29(月) 12:49:22やっぱこれだろ
0417デフォルトの名無しさん
2008/12/29(月) 13:47:330418デフォルトの名無しさん
2008/12/29(月) 16:25:38ソースを見たら、
String.valueOf(int value)→Integer.toString(int value, int radix)→Integer.toString(int value)
と、妙にまわりくどかった。
つか、何でString.valueOfはわざわざradix=10を指定してるんだ……。
0419デフォルトの名無しさん
2008/12/29(月) 18:18:07テキストファイルへ、プログラムで入力した文章を記録させ続けたいです。
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("書き込みました。");
0420419
2008/12/29(月) 18:30:49eclipseを使っています。
オラクルを勉強すれば解決できるでしょうか?
0421デフォルトの名無しさん
2008/12/29(月) 19:14:390422デフォルトの名無しさん
2008/12/29(月) 19:19:03おまじないの方じゃない?
0423デフォルトの名無しさん
2008/12/29(月) 19:21:240424デフォルトの名無しさん
2008/12/29(月) 19:23:32ファイルを書く前にストリングなんぞにファイルを読み込んでそこに文字列を追加していく感じでやれないんdねすけね?
0425デフォルトの名無しさん
2008/12/29(月) 19:25:16間違ってるかもしれんが、とにかく追記で開く方法を探すんだ
0426デフォルトの名無しさん
2008/12/29(月) 19:26:59↓
そういう仕様
↓
じゃあテキストを読み込んでテキストの続き書き込めって命令をくれてやればいい
↓
ウマー(・д・)
アルゴリズム(プログラムの論理)から言うとこんな漢字でしょ
0427デフォルトの名無しさん
2008/12/29(月) 19:42:510428デフォルトの名無しさん
2008/12/29(月) 19:58:210429デフォルトの名無しさん
2008/12/29(月) 19:59:390430419
2008/12/29(月) 20:04:18今日はずっと悩んでたので涙が出ます。
皆様どうもありがとうございました。
0431デフォルトの名無しさん
2008/12/29(月) 21:32:29おまいはJavaDocに目を通すことを覚えた方がいい。
http://java.sun.com/javase/ja/6/docs/ja/
http://java.sun.com/javase/ja/6/docs/ja/api/index.html
0432デフォルトの名無しさん
2008/12/30(火) 00:42:23FileWriterの中身を見てみるのも勉強のためにいいかも。
0433デフォルトの名無しさん
2008/12/30(火) 12:11:56引数に60を与えれば0.5になるはずなんだけど
-0.952・・・になってしまう(´・ω・`)
0434デフォルトの名無しさん
2008/12/30(火) 12:22:05引数はラジアン単位だ。
ttp://java.sun.com/javase/ja/6/docs/ja/api/java/lang/Math.html#cos(double)
> パラメータ:
> a - ラジアンで表した角度
0435デフォルトの名無しさん
2008/12/30(火) 12:33:20引数の値をtoRadians()で渡せばいいのか
微妙に値が違うのはDouble型を使っているからだろうな
0436デフォルトの名無しさん
2008/12/30(火) 12:34:35あー更新してなかったごめん、でもthx
javadocの見方が下手糞なんだわ
0437デフォルトの名無しさん
2008/12/30(火) 19:22:040438デフォルトの名無しさん
2008/12/30(火) 20:48:30ttp://java.sun.com/javase/ja/6/docs/ja/api/java/lang/StringBuffer.html#delete(int,%20int)
0439デフォルトの名無しさん
2008/12/30(火) 22:11:55全部クリアするならsetLengthメソッドで0をセットした方が楽
部分的に消すなら>>438
0440デフォルトの名無しさん
2008/12/30(火) 22:19:25それと座標も取得できると嬉しいです。
よろしくお願いします。
0441デフォルトの名無しさん
2008/12/30(火) 23:18:25その逆で、イベントをプログラム上で自ら発生させてそれをOSに渡すにはどうやればいいんでしょうか?
よろしくお願いします。
0442デフォルトの名無しさん
2008/12/31(水) 00:36:02ユーザによって入力された文章中に含まれるキーワードに反応して
処理を返すようにしたいんですがどうすればいいんでしょうか。
宜しくお願いします。
0443デフォルトの名無しさん
2008/12/31(水) 08:54:160444デフォルトの名無しさん
2008/12/31(水) 09:25:20Java では無理。自分自身ならアクティブにできるが、他のプロセスには干渉できない。
>>441
java.awt.Robot とか
0446デフォルトの名無しさん
2008/12/31(水) 11:38:40そういう目的のクラスはJavaでは用意されてないのでしょうか?
例えばJavaで並列計算した結果を他のアプリ・プロセスにOSのイベントで知らせるよう(又はその逆)にしたいのですが。
0447デフォルトの名無しさん
2008/12/31(水) 13:52:100448デフォルトの名無しさん
2008/12/31(水) 13:54:100449デフォルトの名無しさん
2008/12/31(水) 14:02:340450デフォルトの名無しさん
2008/12/31(水) 16:06:11# 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はインストールしました!
0451デフォルトの名無しさん
2008/12/31(水) 16:42:440452デフォルトの名無しさん
2008/12/31(水) 16:43:32プログラミングに関係ないソフトの使い方の質問は板違い
何度やっても再現するならそのゲームの作者に聞け
一度出ただけなら犬に噛まれたとでも思って忘れろ
0453デフォルトの名無しさん
2008/12/31(水) 17:04:44どうみても最新じゃない罠
1.5の最新版だといういい訳もできない
0454デフォルトの名無しさん
2008/12/31(水) 17:12:010455デフォルトの名無しさん
2008/12/31(水) 17:37:03BorderLayoutで中央にButtonを配置できるのですが、Buttonの大きさがすごく大きくなってしまったので・・・
0456デフォルトの名無しさん
2008/12/31(水) 18:00:44このサービスを使ってみたいのですが、
コマンドプロンプトでディレクトリをこのファイルにまで移動した後
java -jar ditaa.jar
と打ったのですが
Unable to access jarfile ditaa.jar
と出てきて実行できません。
どうすればよいのでしょうか?
0457デフォルトの名無しさん
2008/12/31(水) 19:17:440458デフォルトの名無しさん
2008/12/31(水) 19:40:37public class Botton extends Button {
public Botton(){
super();
}
}
0459デフォルトの名無しさん
2008/12/31(水) 19:51:390460デフォルトの名無しさん
2008/12/31(水) 19:52:460461デフォルトの名無しさん
2008/12/31(水) 21:38:31いろいろ調べてみたんですが、ちょっと方法が見つかりませんでした
0462デフォルトの名無しさん
2008/12/31(水) 22:25:48サイズは東西南北に置いたコンポーネントサイズ分を引いた残り全部だ。
中央に置くのが二つなら、その二つを載せたコンテナを作ってそれをBorderLayoutで中央に置け。
0463デフォルトの名無しさん
2008/12/31(水) 22:45:290464デフォルトの名無しさん
2009/01/01(木) 01:45:06Stringの実装がIntegerの実装を見てバリバリにチューニングしてないから、としかいいようがないんじゃ?
Integer.toStringの実装が変わることを考えれば、radix=10を指定していてもなんの不思議もないと思う。
たとえば、String.valueOf(int)を実装したときは、Integer.toString(int)はInteger.toString(int,int)を呼んでたから、
Integer.toString(int,int)を直接呼ぼう、とかさ。
自分はだいたいオーバーロードするメソッドや複数のコンストラクタを書くような場合、引数の数が少ないものは引数の多いものを
足りない引数を補って呼ぶようにしているのだけれども、これって結構普通のことじゃない?
そういう考え方をString.valueOf(int)を書いた人が持ってれば、わざわざ指定する感じになると思いませんか?
0465デフォルトの名無しさん
2009/01/01(木) 02:11:50いや、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)
の実装も変えないと上記の説明を満たせないよね。
0466デフォルトの名無しさん
2009/01/01(木) 02:12:34俺もやるけどjavaってそういう流儀でしょ。
0467デフォルトの名無しさん
2009/01/01(木) 02:16:550468デフォルトの名無しさん
2009/01/01(木) 02:58:54ストラテジーパターンよく使う。けど、クロージャが欲しい。
0469デフォルトの名無しさん
2009/01/01(木) 06:11:320470デフォルトの名無しさん
2009/01/01(木) 06:18:080471デフォルトの名無しさん
2009/01/01(木) 06:19:270472デフォルトの名無しさん
2009/01/01(木) 08:01:41これだと例えばButtonをおいたときに、Buttonの大きさがアプレットの大きさになってしまうんです
Buttonの大きさは普通のサイズにしたいんです
0474デフォルトの名無しさん
2009/01/01(木) 09:13:25なるほど、String.valueOf(int)のJavadocがそうなってるならJavadoc通りでない実装だし、
わざわざオーバーヘッドもあるしで、謎だね。
でも、Integer.toString(int)のJavadocにradix=10って明記してあるなら、radix指定バージョンにリダイレクトして
いいような気もするけど。
>>467
そうそう。だから、Integer.toStringの実装が例外的だから、String.valueOf(int)が引数多いメソッドを呼んでても
不思議じゃないんじゃない?って書いた。
0475デフォルトの名無しさん
2009/01/01(木) 13:27:28ができるようにしようと思って書いたんだけど、エラーでちゃった。
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());
}
}
間違ってそうなとこを上げたのだけど、どこがいけないか指摘とか
書き直しとか良かったら教えてください
0476デフォルトの名無しさん
2009/01/01(木) 14:11:38で、まだエラーでるのでなおしたものを投下
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());
}
}
ご指摘ご指導お願いしますだ〜!
0477476
2009/01/01(木) 14:55:400478デフォルトの名無しさん
2009/01/01(木) 20:42:00なにか参考書か参考になるサイトあるでしょうか?
0479デフォルトの名無しさん
2009/01/01(木) 20:52:24練習がてら、ならこのあたりで宿題解いてみるのもいいんじゃない。
★★ Java の宿題ここで答えます Part 66 ★★
http://pc11.2ch.net/test/read.cgi/tech/1221652206/
0480デフォルトの名無しさん
2009/01/01(木) 21:14:26http://www.google.com/search?num=50&hl=ja&safe=off&q=%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6+java&lr=lang_ja
0481デフォルトの名無しさん
2009/01/01(木) 21:45:59いや、作るほうなんですが・・・
0482デフォルトの名無しさん
2009/01/01(木) 22:46:03>>480 じゃ参考にもならないのか
0483デフォルトの名無しさん
2009/01/01(木) 22:48:14一列目の編集不可、一列目クリックで時間表示はできました。
しかし二列目以降のセルに右クリックでポップアップを指定したところ、
一列目にも右クリックでポップアップが表示されるようになってしまいました。
解決策がどうにも思い浮かばないので、宜しかったらご教授願います。
0484デフォルトの名無しさん
2009/01/01(木) 23:17:490485デフォルトの名無しさん
2009/01/01(木) 23:28:18>>479が良いと思う。
0486デフォルトの名無しさん
2009/01/01(木) 23:34:39JEditorPaneはjs実行してくれないし
0487デフォルトの名無しさん
2009/01/02(金) 00:34:32元々そこら辺は拡張できるように設計されてるからパーサとペインを対応させる。
Rhino側はDOMとXMLHttpRequestを実装すればいい。
DOMもXMLHttpRequestも必要なものは標準ライブラリにある。
完全に1から実装するわけじゃないから遥かに楽だと思うけど。テキストブラウザとなれば更に楽。
当然ブラウザ実装するって言ってるんだから実装に必要な知識があることが前提だけどさ。
知識がないならブラウザの実装は練習には向いてないよ。
(事前に必要な知識が特殊で膨大すぎる)
GUIなら画像ビューア付きのファイラーが良いと思うけどね。
・Swingの基本
・ツリー表示時のファイルシステムの遅延取得
・練習だから素のJFileChooserで画像選択&アクセサリコンポーネントでプレビューペイン実装
応用としてZIPアーカイブ内ファイルも表示なんてどうだろう?(練習でこれ実装したらすごいと思う、面倒くさいから)
0488デフォルトの名無しさん
2009/01/02(金) 00:38:23少なくとも練習レベルじゃないよ。
現にこれ実際にちゃんと実装した人見たことない。
しかもJavaのHTMLの実装かなり甘いから標準で攻めてもどっかで躓くの見えてるしなぁ
0489デフォルトの名無しさん
2009/01/02(金) 01:05:23ただHotJavaBrowserの実装をそのまま使ってるからHTML3.2 finalで止まってるだけ。
#JWebPaneは間に合うんだろうか?
0490デフォルトの名無しさん
2009/01/02(金) 05:06:12・・・フォームのサブミットってどうやるんですか?お作法が載ってるページがみつからないんですが/(^o^)\
0491デフォルトの名無しさん
2009/01/02(金) 05:11:29Javaでの具体的な方法が分からないのか、
そもそもPOSTって何?って話なのかどっちなの?
0492デフォルトの名無しさん
2009/01/02(金) 05:12:300493デフォルトの名無しさん
2009/01/02(金) 05:16:060494デフォルトの名無しさん
2009/01/02(金) 05:45:56まあ気長に待っててくれ
0495デフォルトの名無しさん
2009/01/02(金) 13:42:330496483
2009/01/02(金) 14:01:59for(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);
0497483
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です。
0498デフォルトの名無しさん
2009/01/02(金) 15:02:380499デフォルトの名無しさん
2009/01/02(金) 16:20:17HTTPが出てきた当時はTCP/IP丸暗記必須だった気がする。
0500デフォルトの名無しさん
2009/01/02(金) 16:28:460501デフォルトの名無しさん
2009/01/02(金) 16:37:39しなければならないのは今も昔も変わらないと思うけどね。
0502デフォルトの名無しさん
2009/01/02(金) 17:37:580503デフォルトの名無しさん
2009/01/03(土) 00:08:060504デフォルトの名無しさん
2009/01/03(土) 03:18:530505デフォルトの名無しさん
2009/01/03(土) 03:25:420506デフォルトの名無しさん
2009/01/03(土) 12:43:220507デフォルトの名無しさん
2009/01/03(土) 12:47:470508デフォルトの名無しさん
2009/01/03(土) 15:39:52htmlでclassを実行させた表示させたいのですが、ブラウザの画面設定が
計算結果のグラフより小さい場合、ブラウザのスライダーを動かすと再計算
を始めます。
スライダーを動かしても計算した結果を保持して表示させるにはどうすれば
良いのでしょうか?
0509デフォルトの名無しさん
2009/01/03(土) 15:55:09どうせ、paint()で毎回計算するようにしてるんだろ
0510デフォルトの名無しさん
2009/01/03(土) 15:57:10延々と同じ行を読み込ませるにはどうしたらいいんだい
0511デフォルトの名無しさん
2009/01/03(土) 16:00:44グラフってのは数学的なグラフか?
0512デフォルトの名無しさん
2009/01/03(土) 16:14:27毎回10行目を読み込みたいとか?
用途がわからんが無理じゃね?
0513デフォルトの名無しさん
2009/01/03(土) 16:32:390514デフォルトの名無しさん
2009/01/03(土) 16:46:290515デフォルトの名無しさん
2009/01/03(土) 17:54:50char c1[1024];
char& c2 = &c1[512];
c2[0] *=c1[0];
見たいなことをjavaでやりたいんだけどどうすればよいでしょうか?
ARC4の暗号のデコードするCのプログラムをjavaに移植しようと思ってるんだけど
Cのプログラムがポインタ使って文字列をぐりぐりやってて困ってます.
0516デフォルトの名無しさん
2009/01/03(土) 18:16:38java.io.BufferedReader クラスを継承して、readLine メソッドで同じ行を返すだけにすればいい。
0517デフォルトの名無しさん
2009/01/03(土) 18:17:49String tmpLine;
while((tmpLine = reader.readLine()) != null){
tmpLineをごにょごにょ;
}
ってことじゃなくて?
0518508
2009/01/03(土) 18:43:36繰り返し計算させてプロットさせるんですが、ブラウザを小さくしていると
描画の結果が切れてもっと右を見ようとしてスライダーを触ると再計算が
始まります。
0519デフォルトの名無しさん
2009/01/03(土) 18:57:08無理。Javaではオブジェクトの実体を異なった形で共有することは、ポインタ演算もunionも無いので不可能。
例のような演算については、配列へのリファレンスとオフセットの組でデータを扱うしかない。
0520デフォルトの名無しさん
2009/01/03(土) 19:01:18解決しました、アドバイス有難うでした。
0521デフォルトの名無しさん
2009/01/03(土) 21:34:28コンストラクタ 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() ) { } と、いうように
繰り返しをしたいのですが、[ ]の中にどんな文を書けばいいのでしょうか?
0522デフォルトの名無しさん
2009/01/03(土) 22:28:550523デフォルトの名無しさん
2009/01/03(土) 22:32:20すいません、書くのを忘れていました
例えば、int[] data = {64, 35, 69}この配列データを全て表示したらです。
0524デフォルトの名無しさん
2009/01/03(土) 22:43:26そのコードを見るとただのポインタオフセットの変更(C++流なら別名)なだけだから、
Java流だと
off=0;
c1[off + pos++]
refoff=512;
pos=0;
c1[refoff + pos] *= c1[off]
となる。Javaでのポインタ計算は全て配列のオフセットでやるからCとJavaはプログラミング方法が少し違う。
0525デフォルトの名無しさん
2009/01/03(土) 22:50:43変なことしないで拡張for文使えよ
0526デフォルトの名無しさん
2009/01/03(土) 22:58:16おかしい方法ってことは重々承知なんですが
こういう課題なんです・・・。
0527デフォルトの名無しさん
2009/01/03(土) 23:25:320528デフォルトの名無しさん
2009/01/04(日) 02:30:09Stringのオブジェクトは一度生成するとその中身を変更できないというのですが、
実際には変数名="hogehoge";などとすると値が変わります。
これは新たにインスタンスが作成され、それに参照が変化したと考えれば良いのでしょうか?
この事実を認識していないと実際に起こりうる問題に関して、参考サイトなど教えてください。
よろしくお願いします。
0529デフォルトの名無しさん
2009/01/04(日) 02:32:16mark()とreset()で可能なはず。
0530デフォルトの名無しさん
2009/01/04(日) 02:39:15良い。
(文字列リテラルのインスタンスが果たしてその場で作成されるのかどうかはともかくとして、
別のインスタンスを指すようになったという認識に問題は無い)
>この事実を認識していないと実際に起こりうる問題に関して、参考サイトなど教えてください。
参考サイトはちょっとぱっと出ないけど、
String a = "hogehoge";
String b = a;
とした時は a と b は同じ文字列を指すけど、
a = "piyopiyo"; としても b は "hogehoge" を指したまま、
って事は、この事実を認識していないと誤解しちゃうんじゃないかな。
0531デフォルトの名無しさん
2009/01/04(日) 02:43:15どうもありがとうございました。
授業で説明があまりないまま鵜呑みにしていたので、混乱していました。
0532デフォルトの名無しさん
2009/01/04(日) 03:08:17paint()は再描画が必要なときに呼ばれるもの
だから、その中に計算処理を書いている時点で使い方を間違っている
計算処理と描画処理を分離しろ
0533デフォルトの名無しさん
2009/01/04(日) 03:28:56Java初心者だが答えてみる
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
になってしまうが。
0534デフォルトの名無しさん
2009/01/04(日) 07:55:25NO 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文の書き方を教えてもらえませんか。
0535デフォルトの名無しさん
2009/01/04(日) 08:09:17SQL文を一つのStringにしてメソッドに渡せばいいだけじゃないの?
0536デフォルトの名無しさん
2009/01/04(日) 08:37:47>>534ですが
SQL文を一つのStringにまとめるのは分るのですが、
例えば
String sql = "insert into HELLO_WORLD_TABLE values ( num, lang, mess)";
executeUpdate(sql);
とすると、numの値はDBに、正しく挿入されるのですが、langとmessの値がnull値になります。
多分、java流のsql文の書き方が間違っていると思うのですが、間違いを指摘してもらえれば幸いです。
0537デフォルトの名無しさん
2009/01/04(日) 09:33:56どちらかというとStringの使い方だな
調べたら1分で分かるレベルかと
0538デフォルトの名無しさん
2009/01/04(日) 09:39:27自作プログラムのjarファイルのデスクトップアイコンを
コーヒーから差し替えることは可能でしょうか?
できればそのファイルだけ限定だとよいのですが。
0539デフォルトの名無しさん
2009/01/04(日) 10:22:39やりたいことってこういうこと?
1、SQL 文をひとつの String にしたい
2、作りたい String の一部分はプログラムを書いている時点で決めていい
3、作りたい String の一部分は、プログラムが動いている時じゃないと決まらない
こういう方法は、どうでしょ。
String sql = "insert into HELLO_WORLD_TABLE values ('" + num + "', '" + lang + "', '" + mess + "')";
文字列同士をプラス演算子を使って足し算(みたく)すると、連結された String オブジェクトを
新たに作ってくれる。
文字列とプリミティブな値を、プラス演算子を使って足し算(みたく)すると、プリミティブ値を String に
変換した後、それぞれを連結した String オブジェクトを新たに作ってくれる。
#まちがってたら誰か指摘してね。
#あと、
#この方法を連発するとオブジェクトの生成→ゴミ箱行き、が多くなって、
#StringBuilder のほうが効率的じゃねーの、っていう話を、だれかしてあげてね。
0540デフォルトの名無しさん
2009/01/04(日) 11:16:37たいして効率は上がらないっていう話を、
だれか>>539にしてあげてね。
0541デフォルトの名無しさん
2009/01/04(日) 11:43:000542デフォルトの名無しさん
2009/01/04(日) 12:14:59その方法で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アクセスライブラリを使うのが普通。
0543デフォルトの名無しさん
2009/01/04(日) 12:33:03補足。実行するのが、insertじゃなくて、selectやupdateのときには、execute()じゃなくて、executeQuery()やexecuteUpdate()を使うので注意。
JDBCのAPIを要調査のこと。
0544デフォルトの名無しさん
2009/01/04(日) 12:58:20>>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();
}
}
0545デフォルトの名無しさん
2009/01/04(日) 13:15:11無理じゃね?
0546デフォルトの名無しさん
2009/01/04(日) 13:37:59ちょっとまてー!! 他にも突っ込み所が多過ぎて眩暈がするわ……。
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()をちゃんと使い分けろ。
0547デフォルトの名無しさん
2009/01/04(日) 14:34:41>>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();
}
}
0548デフォルトの名無しさん
2009/01/04(日) 14:38:16//リクエストされた値を取得
int no = Integer.parseInt(request.getParameter("no"));
※以下修正です
String lang = request.getParameter("lang");
String mess = request.getParameter("mess");
0549デフォルトの名無しさん
2009/01/04(日) 16:35:21・conもローカル変数にしろ。
・使い終わったconはpoolに返却しろ。返却の仕方はDBConnectionPoolの仕様を確認しろ。
0550549
2009/01/04(日) 16:47:06異なるブラウザ(例えば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();
}
}
0551デフォルトの名無しさん
2009/01/04(日) 18:02:26知らなかったぜというか意識していなかったぜ。
0552デフォルトの名無しさん
2009/01/04(日) 19:56:56とbuffに可変個数のPXXが文字列として入ってる時にこれをArrayList型のidという変数に
id[0]=P01、id[1]=P02・・・と言う感じにArrayListに格納したいのですが、何かいい方法内でしょうか?
0553デフォルトの名無しさん
2009/01/04(日) 20:39:10毎回 count=1 が出力されるんじゃない?
0554550
2009/01/04(日) 22:03:37されない。以下の環境で確認済み。
Windows XP SP3 + JDK 6.0Update11 + Apache Tomcat 6.0.18
0555デフォルトの名無しさん
2009/01/04(日) 22:38:52java 文字列分割
java 配列 ソート
これでぐぐれば方法見つかると思うお
0556デフォルトの名無しさん
2009/01/05(月) 00:33:21>>547、544です
ありがとうございます、大変参考になります、実行はしていないのですが
動作の想像は付きます、多分二回目のアクセスでおそらくsleepメッソッドがリセット
されるのではないのでしょうか?
ただ、排他制御に関して、synchronized を用い、このようなプロトタイプでの実装は
javaでは邪道なのでしょうか?
protected synchronized void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
〜省略
}
javaを始めて2ヶ月ほどなのでよく分らないのですが、排他制御を行う場合、C++では
一般的に、Mutexクラスなるものを実装するのですが、javaのsynchronized 修飾子とは
異なると思うのですが、いかがなものでしょうか?それともまったく見当違いでしたら
ごめんなさいです。
0557デフォルトの名無しさん
2009/01/05(月) 00:35:080558デフォルトの名無しさん
2009/01/05(月) 00:43:47すいません、嘘を書いてしまいました、Mutexではなく、
プロセス内で複数スレッドからアクセスする際に、一度にどれか1箇所からしか使わないようにするのは
CSemaphore(MFCのクラスでしたねたしか)でした、重ね重ねごめんなさい。
0559デフォルトの名無しさん
2009/01/05(月) 00:45:25ArrayList<String> id = new ArrayList<String>(Arrays.asList(buff.split(",")));
もしリストをソートしたいのならCollections#sortでidをソート。
0560デフォルトの名無しさん
2009/01/05(月) 00:51:13>>559
ありがとうございます。便利な方法があったんですね。自分は
for(int i=1;i<buff.length()+1;i++){
pid.add(buff.substring(i-1,i+2));
i=i+3;
}
こんな感じで無理矢理やってしまいました。。。
0561550
2009/01/05(月) 01:41:35まったくの見当違い。言いたいのは「排他制御しろ」ではなくて、
「共有すべきでないデータを共有するな」ということ。
1) >>550は、count = 0 のとき、別々のブラウザで同時にアクセスすると、
両方とも5秒後に「count = 2」と表示される。ここでのThread.sleepは、
単にcount++とprintlnとの間に別のスレッドが割り込む機会を設けてるだけ。
この例は、複数のスレッドで同じデータを共有する意図が無いなら、Servlet
にインスタンス変数を持たせてはいけないことを説明するためのもの。
2) 少なくとも>>544や>>547のような例なら、複数のスレッドからconやstmtを
アクセスできるようにする必要はないし、むしろアクセスできるとマズい。
わざわざインスタンス変数にしたり、さらにそれが同時にアクセスされない
ようにロックするのは、無意味にプログラムを複雑にしている分有害。
3) Javaがどうこうの話ではなく、一般論として、データを共有しない場合は
排他制御は不要だし、むしろやるべきではない。むやみに排他制御を行うと、
極端に性能が落ちたりデッドロックする可能性がある。もちろん、必要な
ところにはちゃんと排他制御すべきで、例えばServletだとSession
オブジェクトへのアクセスにはsynchronizedが必要。
0562デフォルトの名無しさん
2009/01/05(月) 03:01:040563デフォルトの名無しさん
2009/01/05(月) 03:23:51「ケチ」なのか?
別段間違ったことを書いているように見えないのだが・・・。
というか、この程度でケチというのはだめじゃね。
良くないことは良くないと突っ込めないようでは、後で問題が発生したときの揺り返しの方が大きい。
「鉄は熱いうちに打て」というが、早いうちに対処すれば問題は最小ですむが、後になれば、全体的な問題に
なりかねない。自分個人の話だけではすまなくなることがある。
そういう意味では、>>544 のように他人の意見を聞くのはいいことだと思う。
0564デフォルトの名無しさん
2009/01/05(月) 03:59:19謙虚に話を聞けない奴は大成できない
0565デフォルトの名無しさん
2009/01/05(月) 04:03:58そのとき「複数のスレッドからconやstmtを
アクセスできるようにする必要はないし、むしろアクセスできるとマズい。
わざわざインスタンス変数にしたり、さらにそれが同時にアクセスされない
ようにロックするのは、無意味にプログラムを複雑にしている」
のようなコードの保守を任されたとき、あなたの能書きではどうやって解決するんですか?
他人のコードのケチつけるだけで、結局あたなは何も出来ない無能ってことを隠してるだけでしょw
0566デフォルトの名無しさん
2009/01/05(月) 04:29:27選択肢2: どうせ分かりやしない、保守してる素振りを見せて工賃を頂く
大概、1は報われない。むしろ無能呼ばわりされるのが落ち
0567デフォルトの名無しさん
2009/01/05(月) 04:30:320568デフォルトの名無しさん
2009/01/05(月) 04:57:280569デフォルトの名無しさん
2009/01/05(月) 05:11:07洗脳されちゃってる分際で一般論がどうとかこうとか書いてあるけど、C++と同じくそれも一つのパラダイム(流行)でしかないのにね・・・
0570デフォルトの名無しさん
2009/01/05(月) 05:22:18いや、>>563を叩く理由が全然わからないのだが・・・
一般論と言っている部分は至極普通の経験則だし、Connection
をローカル変数にしろという指摘も実際それがバグの原因になる
可能性がある以上、的確以外のなにものでもない。
変な妄想を持ち出す前に、叩くなら内容を叩けよ。
0571デフォルトの名無しさん
2009/01/05(月) 05:51:38なんか違くね。
> プログラムというのは、新しくコード作るよりも、既存のコードを修正するほうが圧倒的に多いですよ。
というのは、今回の>>544の状況には当てはまらないし、>>550が書いているのは一般論としても
全く問題がない。
というかいつの間に保守コードの話になったんだ? そんな話は微塵も出てこなかったと思うが?
何がお前さんをそこまで反応させるのか分からないが、論点がずれてるよ。
0572デフォルトの名無しさん
2009/01/05(月) 07:56:10好みや仕様で看過できるレベルの話ではない、致命的な欠陥なのに。
同時ログインしている他人の他ユーザの情報が読み取られるって
どういうことかわかってるのか?
0573デフォルトの名無しさん
2009/01/05(月) 08:24:370574デフォルトの名無しさん
2009/01/05(月) 08:25:30だからSQLインジェクションとか平気で食らう。
0575デフォルトの名無しさん
2009/01/05(月) 09:03:580576デフォルトの名無しさん
2009/01/05(月) 09:44:38現在jre6(update10)とjre5が存在しておりjre6の方を使用したいのです。
環境変数の「Path」、レジストリのキーにJavaが含まれているもの、を全て見てみましたがいずれも6の方が指定されていました。
他にどこで記述されているのでしょうか?
0577デフォルトの名無しさん
2009/01/05(月) 10:09:211年ぐらい前に孤独のPGが死体バラバラ殺人事件犯したんだよね。確か奴は月で80万以上稼いでたかな。
そいつも同じようなこと言ってキチガイぢみてたけど。
0578デフォルトの名無しさん
2009/01/05(月) 11:37:20コンボボだろ
ム板の初心者スレだし一般論で何がまずいのか
気に入らない奴はマ板いけよw
0579デフォルトの名無しさん
2009/01/05(月) 11:39:47派遣か50万ちょっと。つまり普通。
0580デフォルトの名無しさん
2009/01/05(月) 11:42:15当然、ちゃんと動かないところは直すだろ。
仕様とか関係ない。仕様も直すよ。
0581デフォルトの名無しさん
2009/01/05(月) 16:09:33の3つはどれがお勧めですか?できればどれを使ってるか教えてください。
0582デフォルトの名無しさん
2009/01/05(月) 16:35:56結局、新しく作ったほうが早いって場合も多い。せっかくのオブジェクト指向言語で、再利用したくても、設計が悪くては使い回せない。
ところで、下らん質問だが、
クラスのメインメゾットに最初にしか実行しなくていい手順をゴッチャリ書いては駄目な理由ってあるの?
サンプル見てると、コンストラクタ作って、そっちを呼んでるが、再利用する事がない場合にわざわざコンストラクタを作る必要性が理解できない。orz
これを見ろとかでもあったら貼ってくれないか。javaの道は険しくて挫折しそう。orz
0583デフォルトの名無しさん
2009/01/05(月) 16:38:39というようなポリシーがあるから
0584デフォルトの名無しさん
2009/01/05(月) 16:44:30> 仕様の悪さが極小的な事は稀、ほとんどの場合、全体に及んでいるので、直すなら全体も直す事に成らないか。
極小的?
0585デフォルトの名無しさん
2009/01/05(月) 19:17:16クラスメソッドを勘違いしてないか?
0586デフォルトの名無しさん
2009/01/05(月) 21:20:39この"<<"はどういう意味を表しているのでしょうか?
0587デフォルトの名無しさん
2009/01/05(月) 21:30:45つま(ry
0588デフォルトの名無しさん
2009/01/05(月) 22:17:45もしくは↓ここに書いてあるフォント構成ファイルのうちどれが選ばれているのか。
ttp://java.sun.com/javase/ja/6/docs/ja/technotes/guides/intl/fontconfig.html
Linux(ubuntu)で確認したいのですが↑このページの「Linux では、Sun、RedHat、Turbo、SuSE」
…って、ubuntuの場合はどうなるの?
fontconfig.propertiesを書くにしてもどうやって書けばいいのか…orz
0589デフォルトの名無しさん
2009/01/05(月) 22:32:06ビットシフト
0590デフォルトの名無しさん
2009/01/05(月) 23:13:25反転させて、"AWANIKO"と出力するプログラムを作りなさい。
0591デフォルトの名無しさん
2009/01/05(月) 23:15:220592デフォルトの名無しさん
2009/01/05(月) 23:17:230593デフォルトの名無しさん
2009/01/05(月) 23:21:02論理演算するため
0594デフォルトの名無しさん
2009/01/05(月) 23:42:07ビットをシフトするため
0595デフォルトの名無しさん
2009/01/06(火) 00:09:252. このinterfaceの引数専用にDTOをつくりたい。DTOはa.jarの他のDTOに依存。
この場合、どっちのjarのパッケージにDTOを含めるのが一般的?相互依存になるのが気持ち悪い。
aとbを同じjarにするのが一番いいんだろうけど、b.jarのクラスはPOJOには作れないから分割してる。
0596デフォルトの名無しさん
2009/01/06(火) 00:25:45ライブラリの構成間違ってないすか?
0597デフォルトの名無しさん
2009/01/06(火) 00:34:270598デフォルトの名無しさん
2009/01/06(火) 00:36:47interfaceをa.jarが提供してb.jarで実装クラスを作る?
やっぱり構成が間違ってる気もします。
c.jarを用意して関連するDTOを全部そこに移した方がいいのかな。。。
0599デフォルトの名無しさん
2009/01/06(火) 01:15:56そんな感じだけどb.jarで実装クラス作るんじゃなくてb.jarには抽象クラス郡を収めた方が良いんじゃないかな?
でb.jarをアプリケーション層とかうえの層で使う感じに。
a.jarにDTOのインターフェースを用意してb.jarにその抽象クラスを作る。それを参照するDTOImpl.jarみたいなのがあってもいいかと。
スタック図だとこう?
その上の層
-------
b.jar
-------
a.jar
または
その上の層
---------------
b.jar │ c.jar
---------------
a.jar
0600デフォルトの名無しさん
2009/01/06(火) 01:40:36thx!
b.jarはライブラリというよりは
アプリケーション層という位置づけなのでb.jarで実装クラスかなぁと。
他のjar用にinterfaceだけ用意するのは手法としては一般的なんでしょうか。
>DTOのインターフェース
そういうやり方もあるんですね。DTO=具象クラスという固定観念があり
思いつきませんでした。
>スタック図だとこう?
そのとおりです。
その上の層(warのコントローラとか、バッチとかビジネスロジックのクライアント)
-------
b.jar(ビジネスロジックと関連するDTO)
-------
a.jar(ミドルウェア上だけで動く)
または
その上の層
---------------
b.jar(ビジネスロジック) │ c.jar(関連するDTO)
---------------
a.jar
0601デフォルトの名無しさん
2009/01/06(火) 02:29:53こんなコードもコンパイルできるみたいだね。
public class Foo {
; // 意味のないセミコロン
}
; // 意味のないセミコロン
この言語仕様は何のためにあるの?
C++ を書くときのクセで
クラス宣言の後にセミコロンを付けてしまう人向けとか?
0602デフォルトの名無しさん
2009/01/06(火) 04:21:22ダメだったらvoidメソッドの引数が空だったときコンパイルエラーが出てしまうか、
特別扱いしなきゃならん。
0603デフォルトの名無しさん
2009/01/06(火) 04:54:29JLSによればコンパイル単位は、1個以下のパッケージ宣言、0個以上のインポート宣言、0個以上の型宣言から成っていて、
型宣言は、クラスかインタフェース宣言(ClassOrInterfaceDeclaration)、もしくは、セミコロンということになっている。
だから、セミコロン1個だけが入ったソースファイルもコンパイルエラーにはならない。クラスファイルは生成されないが。
それどころか文法通り空ファイルをコンパイルしても文句は言われない。
クラス宣言の本体についてもセミコロン単独で本体の要素となることが文法で定義されている。
0604デフォルトの名無しさん
2009/01/06(火) 14:02:57第2の2ch さんねる http://www.3nell.net/
運営人を募集してるぞ!
運営人や管理人がいるIRCに来て直接アピールだ!
Perl使えます、Java使えます、掲示板持ってます等!
http://irc.nahi.to/ IRC導入の仕方はここ 簡単
Limechat ツール
http://limechat.net/
サーバ>サーバの追加>接続>設定名とニックネーム適当に入れてOK パスいらない
サーバのプロパティ>チャンネル>新規
チャンネル名に #さんねる-Administrator を全て入れる これだけ あとはサーバ>接続
0605デフォルトの名無しさん
2009/01/06(火) 14:09:09同人ゲームサークルここだけはやめとけ!85
http://changi.2ch.net/test/read.cgi/2chbook/1226238020/
0606デフォルトの名無しさん
2009/01/06(火) 14:34:30/usr/bin/time でもいいけど、jvmの起動時間とかを含めたくないので、
コードの範囲を指定して測定する方法があればヒントだけでも教えてください。
0607デフォルトの名無しさん
2009/01/06(火) 15:11:30スレッドだっていくつも動いてるわけでいろいろな要素を考えなければならない。
やっぱりCとかでネイティブな環境で測ったほうがいいかもしれない。
0608デフォルトの名無しさん
2009/01/06(火) 16:41:55プロファイリングしたいのなら
テストしたいコードごとに測定コードを書かず
java用の既存のプロファイラを使った方がいいかと
0609デフォルトの名無しさん
2009/01/06(火) 17:27:53そんな仕様があるとは知らなかった
でも何故そんな仕様に
0610デフォルトの名無しさん
2009/01/06(火) 17:39:000611デフォルトの名無しさん
2009/01/06(火) 17:46:12さあ?何かの予防的仕様かもしれないし、重要な意味があるのかもしれないし。
配列の宣言で変数名の後に[]を付けても通るのと同じように、
>>601の言うように単に、
> クラス宣言の後にセミコロンを付けてしまう人向け
なのかもしれない。
0612デフォルトの名無しさん
2009/01/06(火) 17:55:06内部クラスの宣言の後にセミコロンを付けてもいいようにだったりして。
0613デフォルトの名無しさん
2009/01/06(火) 18:02:48import 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 は報告されません。
スローするにはキャッチまたは、スロー宣言をしなければなりません。
って出るんですけど、どうしたらいいか分かりません。
0614デフォルトの名無しさん
2009/01/06(火) 18:32:36jButton1ActionPerformed()がInvalidKeyExceptionを投げる可能性があ
るのかな?
もしそうなら、InvalidKeyExceptionが投げられたときにプログラムがど
うするべきかをまず考えるべし。
0615デフォルトの名無しさん
2009/01/06(火) 18:38:35出来ました!
ありがとうございます
0616606
2009/01/06(火) 19:15:03>誤差とか考えると正確に測るのは難しいよ。
どこまで正確にはかるかは特に考えていませんが、
すくなくとも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を取得するようなものってありますよね。
それを紹介していただきたいのですが。
自分でマニュアルみた限りでは見つからなかったので、ご存知の方がいればお願いします。
0617デフォルトの名無しさん
2009/01/06(火) 19:17:20this.data = new int[ ele ];
Arrays.fill(data, sub);
}
public IntArray(int ele){
this.data = new int[ ele ];
Arrays.fill(data, 0);
}
このような複数のコンストラクタがある場合は
thisの機能で、コンストラクタから別のコンストラクタを参照する場合に使用する。
という機能が使えるようなのですが、どの変でthisを使うのでしょうか?
0618デフォルトの名無しさん
2009/01/06(火) 19:25:16superと同じくコンストラクタの先頭
0619デフォルトの名無しさん
2009/01/06(火) 21:50:58いかのようなコードを書きました(途中省略)
…
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
0620デフォルトの名無しさん
2009/01/06(火) 22:15:49JDBCとPOIを使用してDBに入っているデータをEXCELファイルに書き出すプログラムを作成しました。
ECLIPSE環境でJVMに1GBのメモリ割り当て
30MBのEXCELファイル作成するプログラムがスレッド起動で2つ同時に動いていたのですが
JARに固めて起動するとアウトオブメモリが起きてしまうのです。
とりあえずGCログを眺めてますが原因がわかりません。
何か原因調査方法がありましたら教えていただけませんか。
よろしくお願いします。
0621デフォルトの名無しさん
2009/01/06(火) 22:27:56jarのダブルクリックを止めて、コマンドから-Xmxオプションを付けて実行するんだ!
0623デフォルトの名無しさん
2009/01/06(火) 22:39:40または、>>621をマニフェストに書いちゃう。
0624デフォルトの名無しさん
2009/01/06(火) 22:44:45レスありがとうございます。
マニフェストファイルいじってないのでダブルクリック起動はしてないですよー。GCログでもメモリが1024Mになってます。
でもありがとう。私もしょうもない原因な予感がしてまいりました…引き続きお願いします。
0625デフォルトの名無しさん
2009/01/06(火) 23:06:02ゆーざーたいむとかしすてむたいむとかわけわかんねーが
java 時間
でぐぐれば何ぼでもでてくるやん
0626デフォルトの名無しさん
2009/01/06(火) 23:06:35実行時間を取りたいってこと?
long stime = new GregorianCalendar().getTimeInMillis();
helloworld();
long etime = new GregorianCalendar().getTimeInMillis();
System.out.println(etime - stime);
こんなんじゃダメですか?
質問の意図が違ってたらごめんね
0627デフォルトの名無しさん
2009/01/06(火) 23:08:28>>602が答えだと思うんだが、ちがうのか。
メソッド引数の括弧の中は空っぽか式が書けると定義するより、
空っぽのものも式であると定義して除外しない方が自然だと思うんだが。
だから、「(式);」は(式)が空の場合、すなわちセミコロンだけでもOKなんじゃないのかね。
classの外にだって「import〜;」なんか書けるわけだから、
同様にセミコロンのみの空文だってわざわざ排除する必要はないでしょ。
0628デフォルトの名無しさん
2009/01/06(火) 23:36:38それにクラスメンバーにもともと式文はないから
空の式文が書けることがセミコロンをクラスメンバーとしている理由ではない
式や文を書くことがないクラスの外ならなおさらのこと
import宣言やpackage宣言は必ずimport 識別子 ; の形をしているので
セミコロンだけというものはない
> 空っぽのものも式であると定義して除外しない方が自然
だけど、それがクラス宣言の内外に無意味に見えるセミコロンを許している理由ではないと思うよ
セミコロンがパッケージ宣言やインポート宣言にあるとみなされる
;
import java.util.*;
public class Foo {}
はコンパイルエラーになる
0629デフォルトの名無しさん
2009/01/06(火) 23:41:21ここを参考にGUIで暗号化ソフトを作ってるんですけど、複合が上手くいきません。
ここの例だと入力される文が最初からbyte型なので、
getBytesでフォームのテキストを変換してみるとコンパイルエラーは出なかったんですが、
いざ複合化しようとすると異常終了してしまいます
0630デフォルトの名無しさん
2009/01/06(火) 23:42:24○ 必ずpackageやimportキーワードが付くので
0631デフォルトの名無しさん
2009/01/06(火) 23:45:07こんな風に書くためじゃない?
for (int i=0; i < 1000000; i++);//時間稼ぎ
0632デフォルトの名無しさん
2009/01/06(火) 23:47:41参考元だけ出されても分からない。
どういう風に修正したのかの情報を。
0633デフォルトの名無しさん
2009/01/07(水) 00:00:45そんな、BASICみたいな事するかよ!
0634デフォルトの名無しさん
2009/01/07(水) 00:28:27解説サンクス。
それでも式だろうが宣言だろうが
末尾にセミコロンが来るという共通の形を持つ以上
やっぱり仕様の一貫性を求めた結果である気がするけどなぁ。
0635デフォルトの名無しさん
2009/01/07(水) 01:50:05class java.util.Dateとか、System::currentTimeMillisとかとどう違うか区別出来てないでしょ。
0636デフォルトの名無しさん
2009/01/07(水) 01:55:21ユーザープロセス処理中に経過した累計時間と
カーネル処理中に経過した累計時間のことじゃないの。
漏れはJavaで取得できるのかはシランが、そんなOS依存ぽいのは取得できないんじゃないか?
0637デフォルトの名無しさん
2009/01/07(水) 05:36:13そこまで分かってんならAPI嫁。
0638デフォルトの名無しさん
2009/01/07(水) 08:26:230639デフォルトの名無しさん
2009/01/07(水) 09:57:48private static String decrypt(String key, byte[] encrypted)
ここの引数を
byte[] encrypted = (jTextArea1.getText()).getBytes();
String key = jTextField1.getText();
にしました
0640デフォルトの名無しさん
2009/01/07(水) 11:37:39double4個の内2個は2者択一なのでchoiceで値をgetさせたいと思っています。
入力画面はできたのですが、手順のあまりの面倒くささにhtmlの入力を使う事に
変更しました。
この渡す変数は全部文字列にして渡して、appletで必要な形に変換するのが
正解ですよね?
0641デフォルトの名無しさん
2009/01/07(水) 11:54:33それはトップシークレットだ。
0642デフォルトの名無しさん
2009/01/07(水) 12:02:05hibernateやstruts2のようにjarファイルをtomcatに突っ込むだけのフレームワークの場合、
詳細なログはどうやって見るのでしょうか?
専用のログファイルが無いので、tomcatのログに一緒に出てくる簡単なログしか見れません。
0643デフォルトの名無しさん
2009/01/07(水) 12:25:55疑問があるので、ご教示戴けるとありがたいです。
次のようなソースがある場合、(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;
}
}
0644640
2009/01/07(水) 12:28:32やっぱりjavaに戻ります。
0645デフォルトの名無しさん
2009/01/07(水) 12:33:00AppletからJavaScript経由でHTMLと
データのやりとりができる。
詳しくはググれ。
0646デフォルトの名無しさん
2009/01/07(水) 13:25:590647デフォルトの名無しさん
2009/01/07(水) 17:34:10配列のディープコピーがしたいのですが、これではシャロコピーなんですよね?
ディープコピーにするにはどう修正したら言いのでしょうか?
public Array( int val[] ){
this(val.length);
for(int rep = 0; rep < val.length; rep++){
data[ rep ] = val[ rep ];
}
}
0648デフォルトの名無しさん
2009/01/07(水) 17:41:49intにシャローもディープもない。
その処理 or System.arraycopy() でじゅうぶん。
0649デフォルトの名無しさん
2009/01/07(水) 17:48:29わかりました、ありがとうございます
0650デフォルトの名無しさん
2009/01/07(水) 20:35:06String Time = "20081203172500";//2008年12月3日17時25分00秒
この時刻が、「その日の20時以降かどうか」を判定するにはどんなコードを書けばよいでしょうか?
上記の例だと17時25分なのでfalseという感じで。
つまりその日の20時~0時までの間にtrueを返すようにしてほしいです
0651デフォルトの名無しさん
2009/01/07(水) 20:38:25例えば「あ”いうえ”お」
””で囲んだ部分を抽出してくれるメソッドはあるんでしょうか><
0652デフォルトの名無しさん
2009/01/07(水) 20:51:190653デフォルトの名無しさん
2009/01/07(水) 20:51:500654デフォルトの名無しさん
2009/01/07(水) 20:54:57(3)null を代入せずに終わると、誰かが Klass クラスを参照している間は GC されないことになる。
0655デフォルトの名無しさん
2009/01/07(水) 20:57:14中央の三文字を抽出したいのか、
ニ文字目から四文字目までを抽出したいのか、
また別の条件のつもりなのか、
わかりません><
0656デフォルトの名無しさん
2009/01/07(水) 20:57:55(2)全く不要。
0657デフォルトの名無しさん
2009/01/07(水) 21:02:16(1)どれもあり。 行儀の問題として自分でルールを決める。
0658デフォルトの名無しさん
2009/01/07(水) 21:13:11範囲指定して抽出したということです
string.chusyutu("あいうえお",1,3)
こういう感じで2文字目、3文字目、4文字目を抜けるメソッドはないのですかね^^
0659650
2009/01/07(水) 21:13:16String型での判定が複雑な場合GregorianCalendar形式を使ってもOKです
0660デフォルトの名無しさん
2009/01/07(水) 21:13:48substring
0661デフォルトの名無しさん
2009/01/07(水) 21:18:27ありがとう!!!!
これは神メソッドだな・・・><
0662デフォルトの名無しさん
2009/01/07(水) 21:35:58「その日」てのがどの日のことなのか不明だけど、そこは置いといて、
if (Time.charAt(8) == '2') {
// 20時以降
}
で良いんじゃね?
0663デフォルトの名無しさん
2009/01/07(水) 21:39:58あぁ、この場合そういう手もありますね。。。
20時はあくまで例です、19時の場合もあります。
その日というのは、この場合2008年12月3日のことです。
もちろんTimeの年月日の部分が変わればその日も変わります
そのような場合はどうでしょうか?
0664デフォルトの名無しさん
2009/01/07(水) 21:44:04ちょうどsubstring()の話題も出ているし、自分で考えてみたら?
桁数固定なら文字列のままでもいいし、4桁の整数だと思ってもいいし、
真面目にCalendarを使ってもいいし。比較対象の「20時」「19時」って
のがどういう形で渡ってくるのかによって最適なコードも変わるだろう
し。
0665デフォルトの名無しさん
2009/01/07(水) 22:01:42Calendar型ってbefore、afterってあるんでしたっけ?
あるならなんとかできそうなんですが。。。
0666デフォルトの名無しさん
2009/01/07(水) 22:10:36add()
0667650
2009/01/07(水) 22:32:36こんな感じで作りました。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;
}
}
0668デフォルトの名無しさん
2009/01/07(水) 22:47:58下6桁を整数にして、200000より大きいかどうか、が単純でいいかも。
0669デフォルトの名無しさん
2009/01/07(水) 23:25:24初心者なら旧版でも十分ですよね
0670デフォルトの名無しさん
2009/01/07(水) 23:35:14今住んでいる国では日付の表記がDDMMYYYYなんだよな〜。
ここの人に日本ではYYYYMMDDだとか言ったら何それ馬鹿じゃない
どう考えても妙だ不自然だ極東の島国はいったい何考えてるんだ、
みたいな感じでコテンパンにコケにされたことがある。
ソートや比較も簡単だろとアピールしても「変」の一点張りだった。
計算機と親和性の高い日本式表記には感謝して良いと思う。
0671デフォルトの名無しさん
2009/01/08(木) 00:08:39真に豊かな地には文明は栄えない
0672デフォルトの名無しさん
2009/01/08(木) 00:23:060673デフォルトの名無しさん
2009/01/08(木) 00:26:02あまり情報としては役に立たないから
年や秒を後回しに言う、というのは一見利に適っている。
しかし、順番をごちゃごちゃさせるのは機械処理には向かない。
0674デフォルトの名無しさん
2009/01/08(木) 00:33:33DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
Calendar c = Calendar.getInstance();
c.steTime(formatter.parse(time));
なんて手もあります。
0675デフォルトの名無しさん
2009/01/08(木) 01:16:43そこはなんてったってフランス人ですから。国際規格より俺規格。
日付を口に出して読み上げれば<<7 janvier 2009>>なんだから
書くときも07/01/2009に決まっとるだろ、てな感じです。
0676デフォルトの名無しさん
2009/01/08(木) 02:59:12そこで、石原知事登場か。
0677デフォルトの名無しさん
2009/01/08(木) 03:03:18日本は鎖国ってこと知らんのか?
閉鎖感が嫌な人はどんどん海外に出て行ってしまって、日本の損失だっていわれてるだろ。
0678デフォルトの名無しさん
2009/01/08(木) 03:05:150679デフォルトの名無しさん
2009/01/08(木) 03:16:19マジレスされるとちょっと辛い。まぁ、日付の話は笑い話です。
今はフランス人も若い人は特に柔軟ですよ。
0680デフォルトの名無しさん
2009/01/08(木) 03:58:310681デフォルトの名無しさん
2009/01/08(木) 04:46:14なにが「個を重要視してる」だ。アホかw
0682デフォルトの名無しさん
2009/01/08(木) 07:08:12最新のは今現在どれなんですかね?
またその本でするからには古いヴァージョンをインストールしたほうがいいんですかね?
教えて下さい┏○ ペコッ
0683デフォルトの名無しさん
2009/01/08(木) 08:38:04┏ ┗ 三
0684640
2009/01/08(木) 09:43:06皆さん、初心者相手に本当にありがとうございます。
実は今週の月曜から必要に迫られて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);
}
0685640
2009/01/08(木) 09:43:57//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);
}
}
0686デフォルトの名無しさん
2009/01/08(木) 16:08:48例えば
String ss[] = new String[]{
"C:\aababb.txt",
"C\abbbb.txt",
"C:\bbbba.txt",
}
とあった場合
ファイル名に文字列abを含んで かつ aaを含まないというのを選択したいのですが
これをString#matchの正規表現でやるとどうなるのでしょうか?
.*ab.*でマッチしてかつ.*aa.*とマッチするものをアンマッチにしたいのですが正規表現にこのような記述は不可能でしょうか?
0687デフォルトの名無しさん
2009/01/08(木) 16:24:58評価すれば良いのでは。あとはif文等々の中で論理演算。
0688デフォルトの名無しさん
2009/01/08(木) 20:53:56class 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です
0689デフォルトの名無しさん
2009/01/08(木) 21:22:14String#contains("ab")は?
0690デフォルトの名無しさん
2009/01/08(木) 21:43:39H21/01/07だよ。
0691デフォルトの名無しさん
2009/01/08(木) 21:46:110692デフォルトの名無しさん
2009/01/08(木) 22:32:590693デフォルトの名無しさん
2009/01/08(木) 22:41:280694デフォルトの名無しさん
2009/01/08(木) 22:55:50今日は神武天皇即位紀元弐千六百六拾九年睦月八日だ。
0695デフォルトの名無しさん
2009/01/08(木) 22:57:38エスパー向けの文章とか誤訳とかが多すぎる。
0696デフォルトの名無しさん
2009/01/08(木) 23:05:160697デフォルトの名無しさん
2009/01/09(金) 00:17:16ちゃんと縦書きにしろよ
難しく考えず一行一文字の縦書きでもいいから
0698デフォルトの名無しさん
2009/01/09(金) 00:19:03>>696はちゃんとなってるね
>>694とか見て即レスしちまった
0699デフォルトの名無しさん
2009/01/09(金) 00:19:27その通りだがよく間違えずにタイプ出来たなw
0700デフォルトの名無しさん
2009/01/09(金) 00:21:09つ StringBuilder#reverse
0701デフォルトの名無しさん
2009/01/09(金) 01:05:34・最上段→左端が空白、その右から1,2,3…10
・最左段→上端が空白、その下からa,b,c…g
この2つは項目名です
二段目から
・2,3段目にテキストファイルから読み込んだ値を入れる
・残りの各段に2、3段目から読み込んだ値をそれぞれの計算式によって計算した値を入れる
わかりにくい説明ですいません
こんな感じの表を作ろうとしたのですが、ググって出てきた「swing」を使えばいいと思ってはみたもののテキストファイル読み込みなどでどうすればいいものかわからなくなってしまいました
0702デフォルトの名無しさん
2009/01/09(金) 01:52:340703デフォルトの名無しさん
2009/01/09(金) 02:22:50まず読み込みか、GUIかどっちか手を付けたら?
丸投げなら
★★ Java の宿題ここで答えます Part 66 ★★
http://pc11.2ch.net/test/read.cgi/tech/1221652206/l50
swingは
Java低速GUI Swing 8
http://pc11.2ch.net/test/read.cgi/tech/1227234261/l50
読み込みのどこが分からないのか書かないとこのスレは厳しい。
ちゃんとjavaの本読んで読み込み勉強してくれ。
0704デフォルトの名無しさん
2009/01/09(金) 10:11:24「なかろう」は、歴史的仮名遣いでは「ナカラフ」ではなくて「ナカラウ」と書くのだよ。
0705デフォルトの名無しさん
2009/01/09(金) 16:04:23すいませんこれってオブジェクト指向を組めてますか?
というかオブジェクト指向ってなんですか?
0706デフォルトの名無しさん
2009/01/09(金) 16:07:010707デフォルトの名無しさん
2009/01/09(金) 16:13:22★★ Java の宿題ここで答えます Part 66 ★★
http://pc11.2ch.net/test/read.cgi/tech/1221652206/816
0709デフォルトの名無しさん
2009/01/09(金) 17:59:06日本語入力できなくなった
0710デフォルトの名無しさん
2009/01/09(金) 18:01:500711デフォルトの名無しさん
2009/01/09(金) 18:11:390712デフォルトの名無しさん
2009/01/09(金) 18:32:360713711
2009/01/09(金) 18:46:310714デフォルトの名無しさん
2009/01/09(金) 19:01:050715デフォルトの名無しさん
2009/01/09(金) 19:34:480716デフォルトの名無しさん
2009/01/09(金) 21:45:420717デフォルトの名無しさん
2009/01/09(金) 22:18:44問題ない。けど嫌われる。」
0718デフォルトの名無しさん
2009/01/09(金) 22:39:29ありがとう。英語の呼び名が無いものばかりなんでしょうがないのです。
ローマ字にすると、今度はそれを使う人々から嫌われそうだし、自分でもわかりにくくなるので。
0719デフォルトの名無しさん
2009/01/09(金) 22:48:540720デフォルトの名無しさん
2009/01/10(土) 01:43:09長年Javaを触ってるけど、非ASCIIのクラス名なんていかにもトラブルが
起きそうで避けてた。
0721デフォルトの名無しさん
2009/01/10(土) 02:25:52昨日まではきちんと動いてたんですが、今日コンパイルしようとしたら
”Error occured dureing initilization of VM
java/lang/NoClassDefFoundError: java/lang/Object"
と出ました。
何のエラーなのか何処でエラーでてるのかさっぱりです。
教えてください。
0722デフォルトの名無しさん
2009/01/10(土) 02:27:55でたー、なにもしてないのに動かなくなった!!!
もうね、あほかと
0723デフォルトの名無しさん
2009/01/10(土) 02:31:15もし使うとまずいなら、厳格なJavaコンパイラが見逃すとは思えない(という信仰w)
0724デフォルトの名無しさん
2009/01/10(土) 02:48:03でもcvsにぶち込むときにファイル名に〜があったらコケタw
0725デフォルトの名無しさん
2009/01/10(土) 03:01:35"?"(NTFSで使用不可)になることがある
0726デフォルトの名無しさん
2009/01/10(土) 03:08:12それはJavaのせいじゃない。WAVE DASH問題でぐぐれ。
0727デフォルトの名無しさん
2009/01/10(土) 06:51:10public 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してくれず投げっぱなしのままなんです
どこが問題なのでしょうか?
0728デフォルトの名無しさん
2009/01/10(土) 11:54:12自作?
0729デフォルトの名無しさん
2009/01/10(土) 12:59:03自作する必要もない
>>727
キャッチする例外間違えてたりしない?
0730デフォルトの名無しさん
2009/01/10(土) 13:01:10C的にハードコーディングしちゃうのが多いと思う
0731デフォルトの名無しさん
2009/01/10(土) 13:22:42使っていますが、永久待ちになるケースがあります。
・log4jを使用すると永久待ち。
・log4jを使用しないと5秒待ち。
Test.javaからtest2.batを呼び出しています。
このような現象をご存知でしたら、お教えください。
0732731つづき
2009/01/10(土) 13:23:33public 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
0733デフォルトの名無しさん
2009/01/10(土) 16:27:55Scanner#nextIntはInputMismatchExceptionだけでなく、
NoSuchElementExceptionやIllegalStateExceptionを投げる可能性がある。
どれもRuntimeExceptionなので捕捉コードを書かなくてもコンパイラは通す。
NoSuchElementExceptionはInputMismatchExceptionのスーパークラスなので、
catchする順番を間違えるとコンパイルエラー。
細かな区別は不要で可能性のある実行時例外を捕捉するだけなら、
NoSuchElementExceptionとIllegalStateExceptionをcatchすれば
APIドキュメント上の例外は網羅できると思う。
大雑把にはRuntimeExceptionをcatchしても別にいいけど。
0734デフォルトの名無しさん
2009/01/10(土) 16:40:24って書こうとしたがキャッチしていない実行時例外が発生したら
普通投げっぱなしでどこかへ消えるってことはないよね
それとも投げっぱなしというのはcatch節を実行してくれずに例外を吐くだけって意味かな
0735デフォルトの名無しさん
2009/01/10(土) 17:30:32String 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を読み込んでいるのですか?
0736デフォルトの名無しさん
2009/01/10(土) 17:41:00全然、コンパイルできない
0737デフォルトの名無しさん
2009/01/10(土) 18:17:59すみません、なんだかコンストラクタが全くわかってなかったみたいで
>>735は忘れてください、メチャクチャなソースでした
0738デフォルトの名無しさん
2009/01/11(日) 00:44:20その一覧から特定のファイルをWindowsnのエクスプローラにD&Dすると
エクスプローラ上に指定したファイルが生成されるというプログラム作っているんだけど
JTableからエクスプローラにD&Dでファイル生成する方法が分かりません.
D&D先のエクスプローラのパスさえ分かれば何とかなりそうなんですが,可能でしょうか?
0739デフォルトの名無しさん
2009/01/11(日) 03:39:25俺が思いつく方法は
1.JTableからドラッグされた時に発生するイベントでテンポラリファイル作成
2.テンポラリファイルをドラッグした事にする
3.エクスプローラにドロップされたら、後はウィンドウズが勝手になんとかする
0740デフォルトの名無しさん
2009/01/11(日) 03:41:30独自のフォーマットのファイルを読み書きしたい場合は
どのように実装するのがセオリーなんでしょうか?
DefaultEditorKit を継承して read/write をオーバーライドするとか?
それとも普通に Document に読み書きするだけでおk?
0741デフォルトの名無しさん
2009/01/11(日) 03:54:39このへん
【OLE】オートメーション総合スレ【ActiveX】
http://pc11.2ch.net/test/read.cgi/tech/1137771139/l50
0742デフォルトの名無しさん
2009/01/11(日) 07:59:41URL("http://www.abc.co.jp/index.html");
でconnectしたときのSocketの取得はどうやったらいいですか?
socket.setSoTimeout(1000*60);
とかしたいので教えてください。ぐぐってもわからなかったです
0743デフォルトの名無しさん
2009/01/11(日) 11:40:22abstractを付けたクラスも、コンストラクタは継承できないのですか?
0744デフォルトの名無しさん
2009/01/11(日) 11:46:11スーパークラスのコンストラクタは呼び出せるけど、継承できない。
だからサブクラスの方でコンストラクタ宣言しないと
サブクラスのインスタンスは作れない。
0745デフォルトの名無しさん
2009/01/11(日) 12:49:22多数のクライアントのリクエストを扱えるWebアプリケーションが作れますよね。
これはサーブレットの実装が裏でスレッドセーフにするための処理をしてくれているのでしょうか?
同一のサーブレットオブジェクトが複数のスレッドからアクセスされるためには
裏でどこかでsyncronizedされたメソッドがある、と思ったのですが
ググってもそれらしき情報が無いです。
サーブレットはどのように複数クライアントのリクエストの処理を実現してるのでしょうか?
0746デフォルトの名無しさん
2009/01/11(日) 13:41:32synchronizedがあったらスレッドセーフ、というわけではない。
スレッド間で共有するデータがなければ同期は不要。
サーブレットの場合、リクエストを処理するメソッドに渡される
HttpServletRequestやHttpServletResponseはスレッド毎に作られ、
他のスレッドと共有することはないので、基本的に同期する必要はない。
例外はHttpSessionで、複数画面を同時に操作していたり、ダブルクリック
してしまったりすると、タイミング次第では同一ユーザからの複数の
リクエストが同時に処理される可能性がある。このような場合には同期が
必要なので、「HttpSessionオブジェクトを対象とする」synchronized
ブロックが必要になる。
0747デフォルトの名無しさん
2009/01/11(日) 14:31:01そして、線を描いた後にGUIのウインドウを最小化してから元に戻すと、
また新しく違った線が描画されます。
元描いてあった線をそのまま描画するにはどうすればいいのでしょうか?
アドバイスお願いします
0748745
2009/01/11(日) 14:37:04丁寧にありがとうございます。
おぉなるほど・・・サーブレット自体にはスレッド個々の情報を持たせていないんですね。
ということは自分で勝手にサーブレットにインスタンスフィールドを作る場合は
synchronizedで扱わないといけないのでしょうか?
仕事でも今まで何の対処もしていませんでしたが(汗)
0749745
2009/01/11(日) 14:48:43う〜ん勉強になりました。
0750デフォルトの名無しさん
2009/01/11(日) 15:13:24その質問自体についてはyes。
ただし、単にsynchronizedを付ければいいというわけではない。
まず、サーブレットはシングルトンで、各サーブレットクラスの
インスタンスはサーバ全体でそれぞれ1個しかないことに注意。
(SingleThreadModelをimplementsしている場合はその限りではないが、
このインターフェースはServlet API 2.4以降で非推奨となっている)
よって、サーブレットのインスタンスフィールドは、該当サーブレットを
実行する全てのスレッドで共有されてしまう。
だから、サーブレットクラスにインスタンスフィールドがある場合、
データが壊れないよう、各スレッド間での排他制御が必要。
しかし、synchronizedでくくった部分は、ロック対象のオブジェクト
を共有するスレッドが同時に1つしか動かないので、その範囲が広いと
CPUがスカスカなのに性能が出ないという悪夢が待っている。
例えば、doGet()にsynchronizedを付けてしまうと、そのサーブレットは
同時に1スレッドしか実行できないことになる。
よって、本来は、サーブレットにインスタンスフィールドを持たせるのを
原則禁止にして、なるべくsynchronizedしなくて済むよう設計すべき。
先のHttpSessionのように、どうしてもスレッド間で共有しなければならない
オブジェクトが出てくるならば止むを得ないけど。
0751デフォルトの名無しさん
2009/01/11(日) 15:25:200752デフォルトの名無しさん
2009/01/11(日) 15:25:23XMLのデータから
<Creator Role="hogeA">hogehogeA</Creator>
<Creator Role="hogeB">hogehogeB</Creator>
このように属性をつけられたデータがあるのですが このデータから
hogeA=hogehogeA
hogeB=hogehogeB
このように出力を行いたいのですがどのように行えば良いのでしょうか
DOM4Jのインポートは行っています
よろしくお教え下さい
0753752
2009/01/11(日) 15:28:08dom4jでした すみません
0754742
2009/01/11(日) 15:34:180755デフォルトの名無しさん
2009/01/11(日) 15:35:14ブラウザ自体を別々に立ち上げたらそうだけど、
例えばIEで「ファイル」→「新規作成」→「ウィンドウ」
なんかで、同一プロセスの新しいウィンドウを開いた場合は
Cookieが共有されるので、同一セッションになる。
あとタブブラウザの異なるタブも同様。Google Chromeはわかんないけど。
0756デフォルトの名無しさん
2009/01/11(日) 15:52:44ブラウザによってちがう。
0757デフォルトの名無しさん
2009/01/11(日) 15:55:59ソケットリスナー起動しとけばいいんじゃねーの?
長いことソケット触ってないから忘れてるぜ
0758デフォルトの名無しさん
2009/01/11(日) 16:41:54オフスクリーンを保存しておくか、
線分の座標を覚えておくか。
0759デフォルトの名無しさん
2009/01/11(日) 16:43:35最小化からの復帰等でその領域が再描画される時にどう再描画するかはプログラマの責任。
線がどう描かれていたかはその領域は記憶しない。
だから、プログラム側でその情報を保持して、必要に応じてその情報を再描画に利用する。
ボタンを押すイベントが起きたときにどのようにその領域に線を描いているか知らないが、
ボタンを押すイベントが発生した時には線の位置情報を記録して、その領域を再描画させ、
描画のためのメソッドではその位置情報に基づいて線を描画してやるようにするとか、
領域に直接線を描くのではなく、Imageクラスなどの画像を保持するクラスに線を描き、
描画時にはそのImageをその領域に描くとか。
0760デフォルトの名無しさん
2009/01/11(日) 16:45:14javaプログラム間のDnDは両方制御できるけど、javaから外部プログラムへのDnDはSWT使わないと無理。
0761デフォルトの名無しさん
2009/01/11(日) 18:07:33java.awt.dnd
java.awt.datatransfer
javax.swing.TransferHandler
0762デフォルトの名無しさん
2009/01/11(日) 18:29:49ドライブ間をギガ単位ファイルが移動するのでテンポラリを作成するのは難しいです.
>741
OLEやActiveXはよく知りません.Winapiなら(あまりよく分かってないが)少しいじった事があるけど
Winapiで可能でしょうか?たしかJavaでWinapi叩けると聞いたことがあるので.
ネットでみるとエクスプローラからアプリにファイルをD&DのWinapiサンプルは見つかるのですが逆方向が見つかりません.
>761
Javaアプリのほうからエクスプローラにファイルの転送メッセージは遅れるんだけど
エクスプローラからどこのパスにD&Dしたのかが帰ってこない.
つまり
○ Javaアプリ→(ファイル情報)→エクスプローラ
× エクスプローラ→(ディレクトリ情報)→Javaアプリ
な状態.
0763デフォルトの名無しさん
2009/01/11(日) 19:12:17一般的なD&Dなら相手がエクスプローラとは限らんのだから
圧縮ソフトに送って圧縮されてたり
サーバに転送されたりメールに添付されたりで
対象ディレクトリが必ずあるわけでもなし。
0764デフォルトの名無しさん
2009/01/11(日) 19:29:39http://www.amazon.co.jp//dp/4839913862/
0765デフォルトの名無しさん
2009/01/11(日) 19:30:19http://www.amazon.co.jp/dp/4839913862/
0766デフォルトの名無しさん
2009/01/11(日) 21:20:130767デフォルトの名無しさん
2009/01/11(日) 21:37:010768デフォルトの名無しさん
2009/01/11(日) 21:50:170769デフォルトの名無しさん
2009/01/11(日) 21:59:57環境による分岐とかはそもそも実行中に判断できるようにすべき。
環境ごとに別のパッケージを作成するのはJava的に考えておかしい。
0770デフォルトの名無しさん
2009/01/11(日) 22:18:44Javaから始めたら土方にしかなれないっていわれました。
この発言だけはとりあえず信用してないのですが本当ですか?
0771デフォルトの名無しさん
2009/01/11(日) 22:18:55サポートされるのも近いよな・・・と思う
0772デフォルトの名無しさん
2009/01/11(日) 22:22:420773デフォルトの名無しさん
2009/01/11(日) 22:56:30「じゃあ何から始めたらいいですか?」という質問の返答如何。
Cとか特定の言語を上げたら、同じことだと言ってやれ。
「そもそも言語を何から始めるとかいう概念がおかしい」とか言いはじめたら
俺的に面白い先輩認定。
0774デフォルトの名無しさん
2009/01/11(日) 23:14:29日常的に新しい言語を覚えることね。
0775デフォルトの名無しさん
2009/01/11(日) 23:18:220776デフォルトの名無しさん
2009/01/12(月) 01:13:24ある程度経てばスタートはどの言語でも関係ない
その後の勉強量次第
どんなに頑張っても幼少時代からプログラム触ってた奴や大学院まで出てる奴とかには
追いつけない部分があるのは実感するけどね。
0777デフォルトの名無しさん
2009/01/12(月) 05:25:45プログラミング言語を触っていたり、大学院を
出ている訳じゃなくて、最初から、ごく
当たり前のように普通に使うと思う。
0778デフォルトの名無しさん
2009/01/12(月) 06:10:54それはない
0779デフォルトの名無しさん
2009/01/12(月) 12:06:520780デフォルトの名無しさん
2009/01/12(月) 16:32:44方言に慣れるのと大差ないつーか。最初におぼえるのが一番大変だけどあとは似たようなもの。
高等数学が必要なプログラムはその数学を理解しないと絶対作れないし、
その他業務用のソフトも、業務の知識を知らないと作れなくて、
そういう勉強をやらないと土方にしかなれない。
0781デフォルトの名無しさん
2009/01/12(月) 17:49:420782デフォルトの名無しさん
2009/01/12(月) 18:02:140783デフォルトの名無しさん
2009/01/12(月) 18:13:42キーロガーでも仕掛けたら?
0784デフォルトの名無しさん
2009/01/12(月) 19:09:34addで要素を追加した線形リスト"list"に対して、Collections.sort(list);
を実行した場合、どのような処理が行われているんでしょうか?
nextやsetメソッドを実装しない場合、ここでエラーがでるので…
Collections.sortがどのようにメソッドを呼び出しているか知りたいのです
0785デフォルトの名無しさん
2009/01/12(月) 19:27:11Collectionsのソース読めばいい。
0786デフォルトの名無しさん
2009/01/12(月) 19:29:56随時ってことは俺がやるよって言ったらあっちがよーいどんをしてくれるってワケかい?
0787デフォルトの名無しさん
2009/01/12(月) 19:32:52786ですが自己解決しますた
http://www.sanryu.net/sjcp/
0788デフォルトの名無しさん
2009/01/12(月) 20:08:47初歩的な質問で申し訳ないですが、ソースはどこで確認できるのでしょうか
API仕様にはソースまでは載っていなかったので困っていました
0789デフォルトの名無しさん
2009/01/12(月) 20:20:50でぐぐればいいやん
0790デフォルトの名無しさん
2009/01/12(月) 20:41:44どうも有り難うございます!
0791デフォルトの名無しさん
2009/01/12(月) 22:49:53・ 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
0792デフォルトの名無しさん
2009/01/12(月) 22:54:54Javaの問題じゃない気がするし、もしそうならソースが悪いんだろ
0793791
2009/01/12(月) 23:00:34実は、以前に全く同じ操作(Javaの設定)を行った事があるのですがその時には問題無く
猫のページが正常に表示されテスト用のJSPページは起動しました。
0794デフォルトの名無しさん
2009/01/12(月) 23:06:30最近javaを起動させた記憶も無く、なぜ出てきたか不明です。
アップデート的な何かなのかと思ってクリックしてもバージョンが表示されるだけで何も起きません。
重くなるのが嫌なので何も無いなら閉じたいのですがこれはどうしたらいいんですか?
あと、出てきた原因は何でしょう?
よろしくお願いいたします。
左下のjavaのアイコンを
・左でダブルクリックすると
java platform standard edition6
バージョン6 アップデート7
という小窓が出てきて
・右クリックすると
javaテクノロジについて
java.comにアクセス
コントロールパネルを開く
コンソール
というメニューが出てきます。
0795デフォルトの名無しさん
2009/01/12(月) 23:09:36JAVAで書いたテトリスとかのゲームは
どうやって表示されてるんだ??
0796デフォルトの名無しさん
2009/01/12(月) 23:10:590797デフォルトの名無しさん
2009/01/12(月) 23:12:16表示されるもんなのか?
0798デフォルトの名無しさん
2009/01/12(月) 23:13:550799デフォルトの名無しさん
2009/01/12(月) 23:14:22え?
0800デフォルトの名無しさん
2009/01/12(月) 23:14:300801デフォルトの名無しさん
2009/01/12(月) 23:15:36自動的には表示されない。
表示されるように(Swing等のライブラリを使って)
プログラムを書く必要がある。
0802デフォルトの名無しさん
2009/01/12(月) 23:17:190803デフォルトの名無しさん
2009/01/12(月) 23:18:04CUIでも視覚的に表示できるのか?
0804デフォルトの名無しさん
2009/01/12(月) 23:18:57コマンドプロンプトに表示されるだろ
0805デフォルトの名無しさん
2009/01/12(月) 23:19:19???
0806デフォルトの名無しさん
2009/01/12(月) 23:19:48昔は文字で何とかしてたもんだ。
0807デフォルトの名無しさん
2009/01/12(月) 23:20:12システム.アウト.プリント
って奴を使ったならコンソールに出てくるな
0808デフォルトの名無しさん
2009/01/12(月) 23:23:19プログラムを書いて実行した後に、作ったプログラムが
どこに表示されるのかわからなかったもんで・・・
わかりにくくてスマソ
0809デフォルトの名無しさん
2009/01/12(月) 23:24:36本買って”Hello,World”からやったほうがいいのでは?
0810デフォルトの名無しさん
2009/01/12(月) 23:25:31XMLの属性値を指定して値を取り出したいのですがやり方がわかりません
<A B="1">hoge1</A>
<A B="2">hoge2</A>
このとき属性Bの値が 1 の物の hoge1 の値を取り出したいのですが
どのように行えば出来るのでしょうか
よろしくお願いします
0811デフォルトの名無しさん
2009/01/12(月) 23:26:17機械音痴でこんな次元でつまずきましたorz
0812791
2009/01/12(月) 23:26:52もう一台のノートPCに同一の事を行って試してみる。
0813デフォルトの名無しさん
2009/01/12(月) 23:29:45そもそも、tomcatのプロセスは立っているのか?
0814デフォルトの名無しさん
2009/01/12(月) 23:34:298080ポートを別の何かか使ってたり、セキュリティソフトが塞いでるんじゃね?
0815デフォルトの名無しさん
2009/01/12(月) 23:35:13実行結果を出力するためには、どこに出力するかを明示的にプログラム
として記述する必要がある。勝手にどこかに出力されることはありえない。
例えば、プログラム中に「Sytem.out.println("Hello");」と記述していれば、
コマンドプロンプトで実行すると、コマンドプロンプトのウィンドウ中に
に「Hello」と表示される。
コマンドプロンプトは文字を垂れ流すことしかできないので、テトリス
みたいなことをしたければGUIアプリケーションの書き方を覚える必要がある。
0816デフォルトの名無しさん
2009/01/12(月) 23:45:01なるほど
CUIでも文字の垂れ流しになる?
0817デフォルトの名無しさん
2009/01/12(月) 23:50:54CUIは環境依存だからJava向けじゃない。
3rdパーティのライブラリはあるかもしれんけど、
前探したときにはあまり使えそうなもんがなかった。
0818デフォルトの名無しさん
2009/01/12(月) 23:52:33Turtleってのはどうなんだろうか?
0819812
2009/01/13(火) 00:01:23右下のApache TomcatはStartを押したら実行状態のアイコンに切り替わりますが、
http://localhost:8080/
と入れると中止状態のアイコンに切り替わってしまいます。
>>814
netstat -a
を実行してみても 8080 は特に何も使用されていませんでした。
因みに自宅サーバ化していないまっさらなノートPCで同じ操作を行ってみましたが
表示されるエラーメッセージも全く同じでした。
という事は、J2SDK + Tomcatの組み合わせに問題がありそうです。
0820デフォルトの名無しさん
2009/01/13(火) 00:10:44うちじゃ何の問題もなく動いてる。
Apache Tomcat 6.0.18 + JDK 6.0u11
zipを展開してコマンドラインで起動/停止してるけど。
インストールディレクトリの下のlogsディレクトリに何か出てるんじゃない?
あるいはウィルス対策関連のソフトにブロックされてるか。
0821820
2009/01/13(火) 00:16:151.4対応のパッケージ使うか、JDKのバージョンを上げろ。
ttp://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-5/v5.5.27/README.html
0822デフォルトの名無しさん
2009/01/13(火) 00:48:48Tomcat5.5と組み合わせて使用する為にJ2SDKの最新版を
次のHPよりダウンロードしたのですが、このバージョンだとダメなのですか?
http://java.sun.com/j2se/1.4.2/ja/download.html
0823820
2009/01/13(火) 01:03:05Tomcat5.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) となりました。
って書いてあるぞ。要するに「もう使うな」ってこと。
0825デフォルトの名無しさん
2009/01/13(火) 02:33:28String型の配列の中身を参照・比較する方法ってあるんでしょうか?
equalsを使って逐一調べてるのが大変で・・・。
よろしくお願いします。
0826デフォルトの名無しさん
2009/01/13(火) 02:34:22equalメソッド使うの面倒ってどんだけめんどくさがりだよ
0827デフォルトの名無しさん
2009/01/13(火) 02:38:59プログラム内に直接Stringを目いっぱい打ち込んでるんですけど
これらすべてにequal使うとプログラムが長くなって…。
やはり出来ませんかね?
0828デフォルトの名無しさん
2009/01/13(火) 02:50:18一回変数に入れろよ
まさか
String test = "aaa"
if(test.equals("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"))
とかやってんじゃないだろうな?
0829デフォルトの名無しさん
2009/01/13(火) 03:06:29String a=○○;
String b=××;
String c=■■;
if(a.equals(○○)){}
if(b.equals(○○)){}
略
のようなのばかりで、もっと効率よくできないかと思ったので。
やっぱり変数にいれるのがいいんですかね。うう。
0830デフォルトの名無しさん
2009/01/13(火) 03:09:01if文の中の○○aにするしかないだろ
1個目のif文は冗長だが。
0831デフォルトの名無しさん
2009/01/13(火) 03:14:09比較しなくちゃいけないってことですか?
0832デフォルトの名無しさん
2009/01/13(火) 03:21:18やるなら
if(a.equals(a)){
}else if(b.equals(a)){
}
くらいだろ
0833デフォルトの名無しさん
2009/01/13(火) 03:26:37aで比べ合えばいいんですね
0834デフォルトの名無しさん
2009/01/13(火) 03:30:190835デフォルトの名無しさん
2009/01/13(火) 03:31:110836デフォルトの名無しさん
2009/01/13(火) 03:33:54一例がないと分からないくらい鈍いんです。
でも、>>832はホント分かりやすかったです。
有難うございます。
0837デフォルトの名無しさん
2009/01/13(火) 03:56:58でアクセスするのと
.jsp
でアクセスする場合の
違いについて詳しく解説しているサイトがあれば教えて下さい。
0838デフォルトの名無しさん
2009/01/13(火) 07:43:08どの程度の詳しさを求めてるのかわかりません
0839デフォルトの名無しさん
2009/01/13(火) 08:07:28こことか
くだらねぇ質問はここで@自宅鯖 37台目
http://pc11.2ch.net/test/read.cgi/mysv/1229512444/l50
Apache統合スレ 9 (HTTPServer以外も含む)
http://pc11.2ch.net/test/read.cgi/mysv/1219482693/l50
【Windows】サーバーソフト2【FTPD・HTTPD】
http://pc11.2ch.net/test/read.cgi/mysv/1067150049/l50
【IIS】Internet Information Services 総合スレ2
http://pc11.2ch.net/test/read.cgi/mysv/1118420314/l50
0840デフォルトの名無しさん
2009/01/13(火) 11:54:03を利用する事は出来ないのでしょうか?
0841デフォルトの名無しさん
2009/01/13(火) 12:59:48htmlファイルを開いた状態でパレット内にあるアイコンをクリックしてもドラッグしても
エディタ内にコントロールの雛形のコードが生成されません。
なぜコードが自動生成されないのでしょうか?
tk.eclipse.plugin.htmleditor_2.0.6.1.jar
0842デフォルトの名無しさん
2009/01/13(火) 14:54:32をする事により、WEBシステムを構築する事は出来る様になったのですが、
どうも、IDEとして世間一般で使用されているであろう、Eclipseを使うと環境面で奇怪
なエラーが出たり等でいまいちIDEの良さが分かりません。
起動もあり得ない位遅いですし。
そこでEclipseを利用する事によるメリットを教えて下さい。
※EclipseもVisual Studio位の使い勝手が良ければJava開発でもEclipseを使いたいと
思ってますが(普通に考えればIDEを使った方が格段に生産性が高くなるハズなので)
、まだ触り始めという事もありますがEclipseの良さがいまいち分かりません。
0843デフォルトの名無しさん
2009/01/13(火) 15:00:430844デフォルトの名無しさん
2009/01/13(火) 16:24:11NetBeansの方が向いてるかもね。こんな感じ。
ttp://www.netbeans.org/kb/60/web/intro.html
0845デフォルトの名無しさん
2009/01/13(火) 16:35:52>>841
今試したけど、ドラッグ&ドロップじゃなくってクリックでできたよ。
>>842
・奇怪なエラー → 詳細プリーズ
・起動が重い → 我慢しる。ちなみにメモリは1GB必須ね。
正直Eclipseは、導入設定ですることが多くて、
一見さんお断りみたいなところがあるね。
Javaエディタの使い勝手は最高なんだが。
Eclipseでだめだった人は、NetBeansの方がなじめるかもしれない。
0846デフォルトの名無しさん
2009/01/13(火) 19:29:31javaの経験が浅いのであまり詳しくないのですがNetBeansでADVゲームを作成してます。
文章を表示させる部分(メッセージウインドウ)がうまく表示させることができません。
個人的にはNscripterのような表示ができればうれしいのですが、どのようにすれば表示できるのでしょうか?
0847デフォルトの名無しさん
2009/01/13(火) 20:31:100848デフォルトの名無しさん
2009/01/13(火) 21:06:38java関係ないだろ。
0849デフォルトの名無しさん
2009/01/13(火) 21:47:35すごすぎてすごいんですけど。
今思いついただけでも、正規表現とjavascriptとperl/PHP/Delphi/C/C++/Eclipse
他にもいっぱいあるじゃないですか。
全部理解できますか?出来てる人いますか?
それはもうCSSすら、それ以前にタグとかあなたたちは一体どういうすごいです。
0850デフォルトの名無しさん
2009/01/13(火) 21:55:28abstractは一部を作って、後はサブクラスでやってくださいよ
interfaceはシグチャだけ決めてあげるから、後はかってにやれ
って、イメージでおk?
0851デフォルトの名無しさん
2009/01/13(火) 22:09:46アブストラクトもインターフェースもコンドームみたいなもんだ
0852デフォルトの名無しさん
2009/01/13(火) 22:10:03abstractは、主な実装は面倒見てやるから必要なとこだけお前が書け、
ってイメージ。電子工作キットの配線済み基板?
interfaceは、interfaceを要求する側(引数にinterfaceを書いてある
メソッドとか)が、実装はどうでもいいからこのAPIが揃ってるオブジェクト
よこせ、ってやるために使うイメージ。USBのコネクタとか。
0853デフォルトの名無しさん
2009/01/13(火) 22:11:23なるほど、わかったよ
ありがとう
0854デフォルトの名無しさん
2009/01/13(火) 22:37:17SystemTrayを使って常駐させるプログラムを作っています。
JFrameで作ったフレームを「×」で終了させずそのままシステムトレイに常駐させ、
そこからアイコンクリックで「終了」を選択し終了、また「開く」を選択で
フレームを開くというプログラムを目指しています。
現在システムトレイに常駐させ、アイコンをクリックし終了させるところまではできたのですが、
もう一度フレームを開く処理が上手くいきません。
「×」の処理はframe.setDefaultCloseOperation(HIDE_ON_CLOSE);で非表示にするようにしました。
また、クラスはmainのクラスとSystemTrayのクラスに分けて作っています。
SystemTrayのクラスからmainのクラスへ最初からプログラムを始めるようにしたいのですが、
コンパイルしエラーはでないものの、アイコンからまたフレームが開けません。
アドバイスなどお願いします!
0855デフォルトの名無しさん
2009/01/13(火) 23:03:45終了処理したならmainスレッド終わってんじゃないの?
自分の書いたコードをよく嫁
0856デフォルトの名無しさん
2009/01/13(火) 23:14:33すいません、書き方が悪かったです。
アイコンを右クリックすることで「開く」と「終了」を表示させているんですが、
「終了」をクリックしてシステムトレイからアイコンを消しプログラムを終了することはできたんです。
逆に「終了」を選択せず常駐させているアイコンから「開く」を押して元出していたフレームを
表示させたいんですが、フレームの設定をしているmainに戻るように設定しても
フレームが表示されずつまずいています。
今クラスを分けているのがダメなのかといろいろ試行錯誤していますが、まだ解決できないでいます・・・。
0857デフォルトの名無しさん
2009/01/13(火) 23:30:140858854
2009/01/14(水) 00:00:00同じクラス内に入れて設定をいじってみたら「開く」で元のフレームを表示することができました。
もう一度アクションリスナでフレームについて設定を入れていなかったのが悪かったみたいです。
ありがとうございました。
0859デフォルトの名無しさん
2009/01/14(水) 00:17:33最近javaを起動させた記憶も無く、なぜ出てきたか不明です。
アップデート的な何かなのかと思ってクリックしてもバージョンが表示されるだけで何も起きません。
重くなるのが嫌なので何も無いなら閉じたいのですがこれはどうしたらいいんですか?
あと、出てきた原因は何でしょう?
よろしくお願いいたします。
左下のjavaのアイコンを
・左でダブルクリックすると
java platform standard edition6
バージョン6 アップデート7
という小窓が出てきて
・右クリックすると
javaテクノロジについて
java.comにアクセス
コントロールパネルを開く
コンソール
というメニューが出てきます。
0860デフォルトの名無しさん
2009/01/14(水) 01:31:55を作成すればよいのでしょうか?Eclipse上の実行ボタンを押した時にブラウザが起動しJSPで定義したページが正常
に動作する確認したいと思っています。
ファイル(F)>新規(N)>
・Dynamic Web Project
・Static Web Project
0861841
2009/01/14(水) 01:41:22> 今試したけど、ドラッグ&ドロップじゃなくってクリックでできたよ。
何度か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
0862デフォルトの名無しさん
2009/01/14(水) 02:18:35WTPとか、他のプラグインのHTMLエディタで開いているとか。
エディタをいったん閉じた後、エクスプローラで右クリックして、
開く>Amateras HTML Editorで開いてみると変わるかも。
0863デフォルトの名無しさん
2009/01/14(水) 04:46:49eclipseってそんなに良いか?【エクリプス】
http://pc11.2ch.net/test/read.cgi/tech/1099300344/l50
Eclipse統合M26【Java/C/PHP/Ruby/Python/Perl】
http://pc11.2ch.net/test/read.cgi/tech/1224536200/l50
0864デフォルトの名無しさん
2009/01/14(水) 06:45:220865デフォルトの名無しさん
2009/01/14(水) 11:29:14標準環境だと文字ストリームは元ファイル読み込み時にバイナリデータをsjisとして読み込んでunicodeに変換.そしてコピー先ファイル書き込み時に,読み込んだunicodeをsjisに変換して書き込むといった事がわかりました.
ttp://www.tohoho-web.com/java/file.htm
これならコピー後,理論上は元ファイルとコピー先ファイルが同じバイナリデータとなっており,コピーが出来ると思ったんですが,なぜかうまくコピーされません.(バイナリエディタで比較したところ,微妙にバイトの並びが異なっているところがあります.)
どうしてこのようになるのでしょうか?よろしくお願いします.
0866865
2009/01/14(水) 11:31:06ttp://www.nextindex.net/java/IO/file.html
のCCopy.javaです
0867デフォルトの名無しさん
2009/01/14(水) 11:34:48どなたかご存知の方がいれば教えてください。
あるいは参考になるページがあれば紹介してください。
0868デフォルトの名無しさん
2009/01/14(水) 11:38:23元のバイナリデータが全てsjisのテキストとして解釈出来る場合のみ。
sijisからunicodeに変換するときに変換表にのってない文字は
\uFFFDに置き換えられたりするから、完全には元に戻らない。
0869865
2009/01/14(水) 11:46:50FFFDとなっていました.
ありがとうございました.
0870デフォルトの名無しさん
2009/01/14(水) 11:50:57サンクス
正常にパレットから雛形コードを生成する事が出来る様になりました。
0871デフォルトの名無しさん
2009/01/14(水) 12:49:30初歩的なif文の使い方がわけわかめで・・・
0872デフォルトの名無しさん
2009/01/14(水) 13:43:47http://pc11.2ch.net/test/read.cgi/hp/1208023080/
0873デフォルトの名無しさん
2009/01/15(木) 00:11:280874デフォルトの名無しさん
2009/01/15(木) 00:49:46文字列からint型のハッシュ値を取得したいです。
String#hashCode()と同じ程度の速度で算出できて、
衝突耐性はそれ以上のアルゴリズムってありますか?
それっぽい単語でググってみたのですが、
暗号絡みの強力な(でも遅い)アルゴリズムしか見つけられませんでした。
よろしくお願いします。
0875デフォルトの名無しさん
2009/01/15(木) 00:55:47ヒント:自作
0876デフォルトの名無しさん
2009/01/15(木) 01:27:43普通に考えて無理な気もするが…
先輩方,教えて下され><
0877デフォルトの名無しさん
2009/01/15(木) 01:31:24Windows操作は、VB or C++でやれ
カスが
0878デフォルトの名無しさん
2009/01/15(木) 01:33:39javaしか扱えませんので。
てか正直javaさえもまともに扱えませんが。
回答ありがとうございます。
0879デフォルトの名無しさん
2009/01/15(木) 01:34:52そもそもなんでjavaで落とす必要があるのか
コマンドラインで操作してるなら
shutdown -s
とかでいいじゃん
0880デフォルトの名無しさん
2009/01/15(木) 01:53:54実務でJavaを使ったシステム開発をしたことは無いのですが
独学で一通りJSP、サーブレット(Struts)フレームワークを使った
WEBシステムを作成する事が出来る様になったのですが、
この状態でJavaの使えるレンタルサーバを借りて
WEBシステムを回すのは危険でしょうか?
※実務ではクラサバしかやった事は無いですが、
趣味で5年位WEBサイト(+phpで作成したシステム)を作っています。
0881デフォルトの名無しさん
2009/01/15(木) 01:56:13趣味でやるなら好きにやればいいじゃん
0882874
2009/01/15(木) 01:57:18アルゴリズムの自作はちょっと荷が重いですw
もう少し探していたところ、Cとかで文字列のハッシュ値生成関数が色々あるようでした。
そこらへんから良さそうなものを探してみます。
ttp://java-house.jp/ml/archive/j-h-b/020543.html
これも良さげでした。
ありがとうございました。
0883デフォルトの名無しさん
2009/01/15(木) 01:59:52java appletで、アプレット画面上でマウスをクリックすると新しいアプレット画面を開くためにはどうすればいいですか?
0884デフォルトの名無しさん
2009/01/15(木) 02:09:48private static <E extends Comparable<? super E>>
という記述の意味が分からんのです
日本語に翻訳してくれ
0885デフォルトの名無しさん
2009/01/15(木) 04:19:11Commons Lang の HashCodeBuilder
0886デフォルトの名無しさん
2009/01/15(木) 11:23:58EはComparable<?>を実装した型でなければならない。
ただし?はEの親クラスでなければならない。(Eと同じ,またはEの親クラスであれば何でもよい)
2行目の条件を満たすということは,E型のオブジェクトを?型の引数に安全に代入できるということ
つまりComparable<?>.compareTo(?)の引数に常に型安全にE型のオブジェクトを渡せることを保障できる
0887デフォルトの名無しさん
2009/01/15(木) 11:34:01あなたが訪問するウェブページを変更するスクリプトを書くことを可能にするFirefox 拡張です。
Greasemonkeyをつかってウェブサイトをより読みやすくしたりより使いやすくしたりすることができます。
サイト管理者自身が面倒で修正していないようなレンダリングのバグをあなたが修正することができます。
ウェブページを読み上げたりブライユ点字に変換したりする補助技術をつかって、
ウェブページがよりよくなるように変更を加えることもできます。
ほかのサイトから自動的にデータを取り出して二つのサイトを、
より相互に関連したものにすることさえできます。
Greasemonkeyだけでは上のようなことは何一つできません。
インストール後何も変化がないようにみえるでしょう。
変化が見えるのは「ユーザースクリプト」と呼ばれるものをインストールし始めてからです。
ユーザースクリプトとは、Javascript のコードの集まりで、
さらにGreasemonkey がいつどこでそれを実行すればよいのかという情報をもっています。
一つのユーザースクリプトは特定のページ・サイト、あるいはいくつかのサイトをターゲットにできます。
ユーザースクリプトはJavascript ができることなら何でもできます。
それどころかユーザースクリプトはGreasemonkey が提供する特別な関数がつかえるので、
Javascript 以上のことができるのです。
いろんな人がそれぞれの用途のために書いた何百ものユーザースクリプトを含む、
Greasemonkeyスクリプトレポジトリがあります。
自分の書いたユーザースクリプトが他の人にも有用かもしれないと思ったら、
このレポジトリに加えることができます。
あるいは公開せずに自分のブラウジングを少し改善したことに満足していることもできます。
Greasemonkey メーリングリストもあります。
ここでは質問したり、ユーザースクリプトをアナウンスしたり、
新しい機能についてのアイディアを議論したりすることができます。
Greasemonkey の開発者はリストを頻繁に見ています。
彼らはあなたの質問に答えてくれることさえあるかもしれません。
0888デフォルトの名無しさん
2009/01/15(木) 13:59:07そのパネルの中に縦50横5のテーブルを作った。
そのテーブルの中の一つのセルの中に書かれた情報を取得する方法がわからんです。
これが噂の四次元配列なんですか。
0889デフォルトの名無しさん
2009/01/15(木) 15:17:42今までstruts+hibernate+tomcatの組み合わせしか経験したことが無いので
JavaEEサーバーのことについてよく分かりません。
フリーのJavaEEサーバーで最も使われているのは今でもjbossでしょうか?
glassfishなるものが最近伸びてると聞きましたがjbossに対抗できるほどのものでしょうか?
あるいはこの2つ以外にも有名なものがありますか?
よろしくお願いします。
0890デフォルトの名無しさん
2009/01/15(木) 16:51:35私の作ったプログラム(.jarファイル)がダブルクリックしても起動しないと友人から言われまして.
私のパソコンではダブルクリックで起動するのですが.
JavaVMはパソコン買ったときからインストールされていると言ってました.
0891デフォルトの名無しさん
2009/01/15(木) 16:54:53もっと勉強してからおいで
どうせjavaも実行できない環境なんだろ
0892デフォルトの名無しさん
2009/01/15(木) 17:11:010893デフォルトの名無しさん
2009/01/15(木) 17:19:16分からないならレスしないでください.
0894デフォルトの名無しさん
2009/01/15(木) 17:23:19java -jar なんとか.jar
で起動するなら、関連付けの問題。
それでも駄目なら、javaがない。
0895デフォルトの名無しさん
2009/01/15(木) 17:27:11わかってねーのはおめーだろw
0896デフォルトの名無しさん
2009/01/15(木) 17:27:33買ったときからインストールされているJavaVMのことは忘れて、
最新のJavaVMをインストールしたほうがいいと友達に言ってあげたらどう?
新しいVMならセキュリティフィクスもされているし、
インストール時にちゃんと関連付けもしてくれるから、
jarをダブルクリックするだけでアプリケーションが動くようになると思うよ。
0897デフォルトの名無しさん
2009/01/15(木) 17:32:340898デフォルトの名無しさん
2009/01/15(木) 17:32:55ありがとう.
多分関連づけがされて無いんだと思う.
バッチファイルつけて友人に渡す.
>896
最新のものにアップデートすると関連づけしてくれると友人に伝えとく.
thanx
0899デフォルトの名無しさん
2009/01/15(木) 17:41:09雑魚のくせに、なんだおまえ?
0900デフォルトの名無しさん
2009/01/15(木) 17:42:440901デフォルトの名無しさん
2009/01/15(木) 19:41:300902デフォルトの名無しさん
2009/01/15(木) 19:43:380903デフォルトの名無しさん
2009/01/15(木) 19:46:520904デフォルトの名無しさん
2009/01/15(木) 20:17:21windowsの右下の小窓的なところにjavaのアイコンが突然現れました。
最近javaを起動させた記憶も無く、なぜ出てきたか不明です。
アップデート的な何かなのかと思ってクリックしてもバージョンが表示されるだけで何も起きません。
重くなるのが嫌なので何も無いなら閉じたいのですがこれはどうしたらいいんですか?
あと、出てきた原因は何でしょう?
よろしくお願いいたします。
左下のjavaのアイコンを
・左でダブルクリックすると
java platform standard edition6
バージョン6 アップデート7
という小窓が出てきて
・右クリックすると
javaテクノロジについて
java.comにアクセス
コントロールパネルを開く
コンソール
というメニューが出てきます。
0905デフォルトの名無しさん
2009/01/15(木) 20:18:30なんどもうぜぇよ、それぐらい調べりゃわかるだろ
0906デフォルトの名無しさん
2009/01/15(木) 20:47:010907デフォルトの名無しさん
2009/01/15(木) 21:17:46Javaアプレットがあるページを開くと出る。
閉じるだけなら、右クリックメニューで閉じれたと思う。
永遠に出さないなら、
Javaコントロールパネル→詳細→その他→システムトレイにJavaアイコンを配置
のチェックをOFF。
そもそもJavaもJavaアプレット(株のチャート図表示とか、お絵描きBBS等で
今も使われてる)もJavaでできたアプリケーションも使わないなら、Java
をアンインストールするのが吉。
0908874
2009/01/15(木) 22:22:34ありがとうございます。
HashCodeBuilderは使ったことありませんでした。
さっそくソース見たんですが、String#hashCode()とほぼ同じ感じで
ハッシュ値を求めてるようでした(h = h * 31 + c; のループ)。
とりあえずこれでいいかなという気がしてきました。
ありがとうございました。
0909デフォルトの名無しさん
2009/01/15(木) 22:23:22と書くと、何が便利なのかまったくわかりません
そこら辺を、教えください
0910デフォルトの名無しさん
2009/01/15(木) 22:41:50釣りか?
0911デフォルトの名無しさん
2009/01/15(木) 22:58:47ヒント:デザインパターン
0912デフォルトの名無しさん
2009/01/15(木) 22:59:140913デフォルトの名無しさん
2009/01/15(木) 23:06:590914デフォルトの名無しさん
2009/01/16(金) 01:57:36後続の行で、サブクラスに依存しない
コードを書くことになる。
それは別のサブクラスを new するように
修正しても通用する柔軟なコードだという
ことになる。
必要も無いのに細かい実装に依存した
コードは読んでも意図を掴みにくい。
new するクラス自体、スーパークラスに
できるともっといいわけだが、
事情はいろいろ有り得る。
0915デフォルトの名無しさん
2009/01/16(金) 02:01:45おや?
× >>17
◯ >>909
0916デフォルトの名無しさん
2009/01/16(金) 03:46:10jarを解凍して見ても画像の抜け落ち等は無かったのですが、何が原因かわかりますか?
0917デフォルトの名無しさん
2009/01/16(金) 03:47:46クラスがあればインスタンス実行したい年頃か。
// hoge.java
class hoge {
static void main(String[] args) {
new hoge();
}
hoge () {
目的の手順
}
}
って何か冗長で直感的じゃなくて、毎回コピペで済ませてるけど。記述は非オブジェクト指向言語のほうが楽だわ。
0918デフォルトの名無しさん
2009/01/16(金) 03:52:50自前で描画してるのか、どこかの画像ファイル読み込んで表示させてるのか。
エスパースレはこちら。
エスパーが質問に答えるスレ
http://pc11.2ch.net/test/read.cgi/tech/1187922645/l50
0919デフォルトの名無しさん
2009/01/16(金) 05:50:470920デフォルトの名無しさん
2009/01/16(金) 07:33:42コンストラクタで目的の処理をするコードを書く奴が居たよ。
なぜかそういう奴が回りから技術的な信頼が高いという
低レベルな職場だったので、絶望的で無念だった。
0921デフォルトの名無しさん
2009/01/16(金) 07:37:150922デフォルトの名無しさん
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());
}
0923922続き
2009/01/16(金) 08:25:49super.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);
}
0924922続き
2009/01/16(金) 08:29:46twobuttons=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) {
}
}
}
0925デフォルトの名無しさん
2009/01/16(金) 08:30:18if(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();
}
}
}
}
0926デフォルトの名無しさん
2009/01/16(金) 11:28:00Javaのコードを記述する場合にC#的な書き方をするのはご法度なのでしょか?
(作法がなっていない?)
【C#】
public static TestMethod()
{
}
【Java(PHP)】
public static TestMethod(){
}
0927デフォルトの名無しさん
2009/01/16(金) 11:30:04好きに書けばいいんでない?
開発環境だとそういう設定だけど
別にどっちでもエラーはでない
0928デフォルトの名無しさん
2009/01/16(金) 11:32:32import javax.servlet.http.*;
の部分で "インポートされた javax.servlet は見つかりません"
というエラーメッセージが表示されてしまいます。どうすれば解決しますか?
※elipseを使用しています。
0929デフォルトの名無しさん
2009/01/16(金) 11:33:00どっかにアップしろよ
レスをまたぐような長さでインデントも無いコードを読めるかよ
0930デフォルトの名無しさん
2009/01/16(金) 11:33:47実際のjava開発プロジェクトにこれまで入った事が無いので
実務ではどちらの記述がスタンダードなのでしょうか?
0931928
2009/01/16(金) 11:43:29CLASSPASS
C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar
0932デフォルトの名無しさん
2009/01/16(金) 11:46:160933デフォルトの名無しさん
2009/01/16(金) 12:03:25環境変数に"CLASSPASS"は、ちゃんと通しました。
0934928
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
0935928
2009/01/16(金) 12:22:07JDKはインストールされています。
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)
0936デフォルトの名無しさん
2009/01/16(金) 12:24:37それはそうとして、Eclipseでコンパイルするときは、
環境変数は無視される。
プロジェクト毎のビルドパスにjarファイルを追加すること。
0937デフォルトの名無しさん
2009/01/16(金) 12:25:490938デフォルトの名無しさん
2009/01/16(金) 13:04:21レスありがとうございます。
因みにElipse上からでは無く、コマンドプロンプトからコンパイルが出来るかと思い、
javac とコマンドプロンプトから入力をしたところ、次のエラーが出てしまいます。
'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
環境変数も通しておりjava -versionコマンドは正常に実行出来るのに一体何が原因なのでしょうか?
※ただし、eclipse上からjspページのコンパイルは出来ています。
0939デフォルトの名無しさん
2009/01/16(金) 13:09:070940デフォルトの名無しさん
2009/01/16(金) 13:19:16Java EE Editionを使っているか?
・Eclipse上のServerの項目の中にインストール済みのTomcatは
登録してあるか?
・Serveltを開発しようとしているプロジェクトのbuild path->library
の一覧にTomcatのライブラリは含まれているか?
あとパスも含めて環境変数に関しては殆ど忘れた方がよい。
Eclipseは複数のJDKやServlet Containerを使い分ける事が出来る
仕組みになっている。だから環境変数で設定するような項目の
大概はEclipse上での設定で上書きされたり優先したりするから。
0941デフォルトの名無しさん
2009/01/16(金) 13:29:59しかし、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] + ",");
}
}
}
正直自分ではもう手がつけられません
0942デフォルトの名無しさん
2009/01/16(金) 13:47:190943デフォルトの名無しさん
2009/01/16(金) 13:48:37そもそもコード書くレベルに達してないだろ・・・
取り敢えず、mainの中身そっくり削除してみろよ。
0944デフォルトの名無しさん
2009/01/16(金) 13:53:12NoSuchMethodErrorじゃなくてArrayIndexOutOfBoundsExceptionがスローされるけど。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at randomtest2.main(ramdomtest2.java:13)
0945デフォルトの名無しさん
2009/01/16(金) 13:59:35int i = 0;
...
test= new int[i];
長さ0の配列作成してど〜する。
0946デフォルトの名無しさん
2009/01/16(金) 18:29:34色々やってみたところエラーは出なくなったのですが次のサーブレットコードを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>");
}
}
0947デフォルトの名無しさん
2009/01/16(金) 18:30:30名前とその人の情報が入っているとして
名前で検索して、検索した人の情報を全て表示させたいんですが
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)
といったエラーが出てしまいました。
どうすれば改善するでしょうか?
0948デフォルトの名無しさん
2009/01/16(金) 18:34:29検索したいものが見付からなかったときの処理を入れてください。
文字列にnumberとかインデックスにnameとか、変数名が謎すぎる。
0949デフォルトの名無しさん
2009/01/16(金) 18:45:08try{
処理
}
catch{ArrayIndexOutOfBoundsException}
俺の言ってることは適当だから
ArrayIndexOutOfBoundsExceptionとかでググって
例外について学びなおしてくるんだな・・・
0950デフォルトの名無しさん
2009/01/16(金) 18:50:42ありがとうございます。
0951デフォルトの名無しさん
2009/01/16(金) 18:54:00ブラウザに表示されたエラーメッセージを書かれてもたいした
ことは分からない。Eclipseのconsoleに何かTomcatからの
エラーが表示されてない?
0952デフォルトの名無しさん
2009/01/16(金) 19:18:24次のメソッドの中にソースを書く形に変えたところ正常に動作する様になりました。
ありがとうございます。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
0953デフォルトの名無しさん
2009/01/16(金) 19:56:22じゃあそのコンテナの枠の幅ってOSに由来するんですか?
よくわかりませんお願いします
0954デフォルトの名無しさん
2009/01/17(土) 00:06:47アプリや例みたいなものはないのでしょうか?
0955デフォルトの名無しさん
2009/01/17(土) 00:10:400956デフォルトの名無しさん
2009/01/17(土) 00:11:300957デフォルトの名無しさん
2009/01/17(土) 00:13:360958デフォルトの名無しさん
2009/01/17(土) 08:54:420959デフォルトの名無しさん
2009/01/17(土) 09:13:38例外処理がやたら面倒って言語だわ。
でもパターン化してるのだからもっとすっきり記述できればいいのに。
0960デフォルトの名無しさん
2009/01/17(土) 09:41:54さすが現代のCOBOL
0961デフォルトの名無しさん
2009/01/17(土) 10:12:11もちろんそのためには明示的に書かれていないといけないけれど、
素直に全部を手書きしなくてもパターン化してる部分は開発環境の力を借りて機械的に処理できるし。
0962デフォルトの名無しさん
2009/01/17(土) 12:16:34*\Tomcat 5.5\webapps
この直下に*.warファイルを配置する事により作成されたサーブレットプログラム
をlocalhostで実行する事が出来ました。
しかし、実際にJAVAの使えるレンタルサーバを借りて、作成したプログラムを配布する場合には、
*.warファイルをサーバにFFFTP等を使って送信するだけで良いのでしょか?
( つまり、別途面倒な設定を行う必要があるのでしょうか?)
※*.warファイルの配布だけで公開可能であれば、メンドクサイ(小難しい)設定を行う必要
が無いので利用しようかと思っています。
0963デフォルトの名無しさん
2009/01/17(土) 12:32:06操作可能なプログラムまたはバッチ ファイルとして認識されていません。
というエラーが出るという事で相談した者です。
Eclipse上からは正常にコンパイルする事が出来て(JSP/サーブレット)を実行する事が出来ているのですが、
相変わらず、Dosプロンプト画面から javac と入力するとエラーが出ています。
環境変数も設定しているはずなのに。。。
今後は、Javaでの開発はテキストエディタベースでは無く、Eclipseを使うつもりなので
あまり気にしなくても問題は無いですか?
(もうちょっとJavaの勉強をしたらStrutsの学習に移ろうと思っているのですが、そのタイミングで何がしかの支障が出るのでは無いかと
若干不安です。)
0964デフォルトの名無しさん
2009/01/17(土) 12:35:26本当にPATHが通ってるのか怪しい
0965デフォルトの名無しさん
2009/01/17(土) 12:57:38jreにしか通してない。
0966デフォルトの名無しさん
2009/01/17(土) 16:35:500967デフォルトの名無しさん
2009/01/17(土) 17:36:55Java言語の質問がメインなので、微妙にスレ違いなのかも
サーバのOS毎のサーバ構築スレみたいなところで質問した方がいいかもね
0968デフォルトの名無しさん
2009/01/17(土) 22:01:17java.exe は C:\WINDOWS\system32 にもあって、ここにはデフォルトで
PATH が通ってるので何も考えず使える。しかし、javac.exe は
C:\Program Files\Java\jdk1.6.0_11\bin にあるので(JDK6.0 update11
の場合)、ここに手動でPATHを通す必要がある。
0969デフォルトの名無しさん
2009/01/17(土) 22:10:20「JavaEE サーバ 比較」でぐぐるといくつか情報がひっかかったぞ。
オープンソースだと他にApache Geronimoがあるな。IBMが支援してるみたい。
細かい部分は自分で調べてくれ。
GlassFishはSunが作ってて、NetBeansと一緒に配られていたような気がする。
0970デフォルトの名無しさん
2009/01/17(土) 23:54:38JSP+サーブレットで事足りている気がします。
0971デフォルトの名無しさん
2009/01/18(日) 00:14:520972デフォルトの名無しさん
2009/01/18(日) 00:32:02レスありがとうございます。環境変数を見直してみます。
>>968
ご丁寧にありがとうございます。
お陰様でjavacコマンドが使える様になりました。
0973デフォルトの名無しさん
2009/01/18(日) 00:46:35Problemタブに次の様な「警告」が出ています。
意味がよく分からないのですが、「警告」なので無視しても問題無いのでしょうか?
※因みに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 というのは私がつけたプロジェクト名です。
0974デフォルトの名無しさん
2009/01/18(日) 13:53:22描画領域に描画させるJavaアプリケーションを作成せよ。
という課題が出たのですが努力したのですがどうにも完成させることができませんでした。
よろしければ教えてください。
形態はJavaアプリケーション(main()で開始)
GUIは制限なしです
何卒お願いいたします
0975デフォルトの名無しさん
2009/01/18(日) 14:00:180976デフォルトの名無しさん
2009/01/18(日) 15:38:12webショップの購入を考えていたのですが、どれも高いので
自分で作っちまえと思い、IBM(システム開発)の父に相談した所javaが良いと言われました。
それで本を買おうと思うのですが「これ読んどけ!」みたいなお勧めの本ありませんか?
0977デフォルトの名無しさん
2009/01/18(日) 15:39:55>>1くらいよめ
臍噛んで死ね
0978デフォルトの名無しさん
2009/01/18(日) 15:42:59なにがボクの気に障ったのかな?過去スレ読まないからかな?
>>1は一ヶ月以上前の情報だし、まして過去スレなんて情報劣化もいいとこだろ?
最新の情報が欲しいんだよ。ボクにはわかるかな?
0979デフォルトの名無しさん
2009/01/18(日) 15:44:030980デフォルトの名無しさん
2009/01/18(日) 15:51:300981デフォルトの名無しさん
2009/01/18(日) 15:57:07まぁどこのスレにでもいる>>977みたいな脊髄馬鹿は低レベルだから
悔しいからって連投すんなよ〜顔真っ赤だぞ、ボクちゃん
0982デフォルトの名無しさん
2009/01/18(日) 16:03:20スレ立ての時期だから、アオリに来てるんだな・・・
0983デフォルトの名無しさん
2009/01/18(日) 16:03:55この前、成田空港で暴れた警察庁の D Q N 人事課長(36歳)みたいな奴だなw
0984デフォルトの名無しさん
2009/01/18(日) 16:12:59死ぬのはおまえの方w
DQN死ねww
0986デフォルトの名無しさん
2009/01/18(日) 16:27:04ヤフーのニュースから早速削除されてるし、警察庁の圧力があったんじゃね?
この課長補佐だけど、不倫相手とお忍び旅行(ドイツ)いくのを空港の検査委員にとがめられ発狂したってもっぱらの噂だよねw
ま、こんだ鼻糞野郎はクビだろ。
「『県警本部長を呼べ!』 警察庁キャリアが成田空港で暴言」
http://dr-nobody.blog.so-net.ne.jp/2009-01-15-1
0987デフォルトの名無しさん
2009/01/18(日) 16:47:58一般的な入門サイトのインデックスの項目を端から
読みつくしていくのは大変そうなので、
何か、エディタ等の使えるプログラムを作りながら学んでいこうと思っています。
そのように、作りながら学んでいくおすすめのサイトはありますか?
0988デフォルトの名無しさん
2009/01/18(日) 17:06:36http://wisdom.sakura.ne.jp/
0989デフォルトの名無しさん
2009/01/18(日) 17:08:58スタイル機能つきエディタ
http://www.javadrive.jp/tutorial/appli_word/index.html
0990デフォルトの名無しさん
2009/01/18(日) 17:23:15wとかついてるのが気になるんですがなにかあるんですか?
0991デフォルトの名無しさん
2009/01/18(日) 17:31:500992デフォルトの名無しさん
2009/01/18(日) 17:39:23次スレよろ
0993デフォルトの名無しさん
2009/01/18(日) 17:49:05ありがとうございます
0994デフォルトの名無しさん
2009/01/18(日) 17:51:040995デフォルトの名無しさん
2009/01/18(日) 18:12:26ってアリだとおもいますか?やってみたいなあ。
0996デフォルトの名無しさん
2009/01/18(日) 18:18:240997デフォルトの名無しさん
2009/01/18(日) 18:27:240998デフォルトの名無しさん
2009/01/18(日) 18:28:520999デフォルトの名無しさん
2009/01/18(日) 18:30:501000デフォルトの名無しさん
2009/01/18(日) 18:32:38次スレ立てました
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。