ネタ心者歓迎!今更ながらにJava相談室 その4
■ このスレッドは過去ログ倉庫に格納されています
00011
NGNG|| ̄ ̄| ∧_∧
||Java| ( ) ∧∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
||__| ( ○ ) ( ) < 俺達の旅はここから始まる。
|| │ | │ / | \___________
((二二)) .(_(__)〜(___ノ
( ゚Д゚) < カキコする前に>>2-10をチェックしとけゴルァ!!
>>2 過去スレの一覧
>>3 Javaの基礎と よくある質問 (初心者はここをチェック!)
>>4 Java関連スレいろいろ
>>5 Javaを撲滅させたい方、死滅を心配してる方、Cとの違いを知りたい方はこちらへ
* 諸般の事情により、リンクがずれる事もあります。
0755
NGNGJDBCでExpectionがスパゲティーです。
0756デフォルトの名無しさん
NGNGFile file = new File("C:\Program Files\Apache Group\...")
とかやってない? 存在しており、とか、通常では削除できる、とか
どうやって確証したのか第三者に分からない。
というか特定のイベントの後なら、ファイルがオープンされた
ままになっているに一票か。
Write out = null;
try{
File file = new File("hoge.tmp");
out = new FileWriter(file);
out.write("hello, world");
file.delete();
} finally {
if(out != null) out.close();
}
とかやってない? もしくはまったくクローズしてなくてストリーム
オブジェクトの GC に任せちゃってるとか。
0757icbm
NGNGフラッシュを再生させるコードを教えていただけますか?
フラッシュのアクティブXを取り込んで
ショックウェーブフラッシュって白い四角を貼り付けるまではしました。
0758icbm
NGNG0759>>709
NGNGhttp://www.tetras.co.jp/yada/j_java_cgi_r.htm
0760デフォルトの名無しさん
NGNG0761デフォルトの名無しさん
NGNGjava.lang.Objectobject)
こんな宣言の書き方はよく使われるのでしょうか?(特に::)
本を見てもこのような文法の説明がなくて困っています。
この意味もよく分からないんです。よろしくお願いします。
0762デフォルトの名無しさん
NGNG>最終的に、ディレクトリ構造を3次元の木で表現しようと思ってます。
それ、既にあるよ。
去年の Night4Java(JavaOne Yokohama)で 1stPrize取ってる。
http://www.donothing.jp/filetree/
0763デフォルトの名無しさん
NGNGJavaの文法的な話をしているなら
メソッド(関数)をそんな風に単独で「宣言」することはJavaではないから
「使わない」
ドキュメントや説明の話だとすると
Javaでは「::」の部分は # を使うな。
. ピリオドでもわかるからどっちかつかっとけばいいんじゃないか?
ちなみに # 使う理由は
http://java.sun.com/j2se/1.3/ja/docs/ja/api/index.html
みたいなHTMLを自動生成するjavadocっていうツール(JDKに含まれる)
で#が使われているから。
SUNのサイトのどっかに # を使うって規約文書があったような気もする。
0764761
NGNGそうですよね、文法的にはないですよね。
サンプルプログラム中に書いてあったのではなく、本文の
説明書きの中にありました。
一瞬Perlか?と目を疑ってしまいました。
javadocに準じた書き方をした方がいいのですね。上記のsunの
サイトを眺めながら、Servletの自習をしていて?だったのです。
ありがとうございます。
Access+VBからjava移行中なので、javaめちゃむずいです。
頑張ります。
0765729
NGNGbyte[] byData = getByteImage();
ImageIcon ii = new ImageIcon( byData );
Image im = ii.getImage();
ImageObserver io = ii.getImageObserver();
BufferedImage bf = new BufferedImage( im.getWidth(io), im.getHeight( io ), BufferedImage.TYPE_INT_RGB );
Graphics2D g2 = bf.createGraphics();
g2.drawImage( im, 0, 0, io);
g2.fill3DRect(0,100,100,200,false);
ii.setImage(bf);
g2.dispose();
jLabel1.setIcon(ii);
こんな感じで作ったら、動きましたです。
こんなやり方であっているデスか?
0766デフォルトの名無しさん
NGNGいいんじゃないの? 無駄が多い気がするけど。
0767709
NGNGprint "abcde";でprintした文字列を
if(reader.readLine() == "abcde"){}
でやっても、マッチしません。改行文字を消すのかなぁ。
PerlのchompにあたるJavaのメソッドは何?
0768
NGNG0770デフォルトの名無しさん
NGNG文字列の比較は == じゃだめ。
String line = reader.readLine();
if(line == null) /* EOF 処理 */;
if(line.equals("abcde")){
…
}
0771デフォルトの名無しさん
NGNG文字列の比較は equals 使え。
0772729
NGNGImageからGrapicsを作れないのは何でですか?
Image#getGrapics()とかあるのになぜなんでしょう
0773デフォルトの名無しさん
NGNGMemoryImageSource とかを使って作った
Image から getGraphics() してみれば?
0774デフォルトの名無しさん
NGNGImageってメモリやビデオカード上のビットマップだけじゃなくて
ネットの彼方からダウン中のGIFファイルだったりすることもあるから。
本来ImageってImageSourceと表示デバイスをつなぐ単なるインターフェースみたいな物。
(だった?Java2でイメージモデル拡張されたらしいけどそっちは知らない)
0775***********
NGNG(フォルダとかファイルとか)
あれはImageのサブクラスを作ったほうがいいのか、
CanvasとかにImageを持たせてFrameに貼り付けた方がいいのか、
どっちだと思う?
それとも、もっと良い方法あるの?
0776デフォルトの名無しさん
NGNGアフォ?
0777デフォルトの名無しさん
NGNGとかJavaの持っているエンコード識別文字列の一覧を取得するAPIってどれ!?
これがわかんなくて今String[] enc = {"MS932" , "Cp1252 ..... }
ってだせー事やってる。。
誰か教えてくださいまし
0778デフォルトの名無しさん
NGNGラッキー?
0779デフォルトの名無しさん
NGNG0780デフォルトの名無しさん
NGNG作ろうとしても実行時に例外エラーでます
0781777
NGNGてゆーか、誰か教えてください(泣)
0782デフォルトの名無しさん
NGNGSwingコンポーネント使うことにして、JTable使うべし。
>>777
何で全部必要なの?
ローカルのデフォルトならSystemプロパティから取れるけど。
あと、JVMが必ずサポートしているのは、これだけらしいよ。
それ以外はランタイム提供してるベンダの気分次第つうことか。
Java プラットフォームの実装はすべて次の文字エンコーディングをサポートする必要があります。他のエンコーディングがサポートされているかどうかを調べる場合は、実装のリリースノートを参照してください
US-ASCII 7 ビット ASCII (ISO646-US/Unicode 文字セットの Basic Latin ブロック)
ISO-8859-1 ISO Latin Alphabet No. 1 (ISO-LATIN-1)
UTF-8 8 ビット Unicode 変換形式
UTF-16BE 16 ビット Unicode 変換形式、ビッグエンディアンバイト順序
UTF-16BE 16 ビット Unicode 変換形式、リトルエンディアンバイト順序
UTF-16 16 ビット Unicode 変換形式、必須初期バイト順序マークで指定したバイト順序 (入力の場合はいずれの順序も受け入れ、出力はビッグエンディアン順序)
>>780
もしかしてローカルディスクのファイル使ってイメージ作ってる?
サンドボックス制限の回避をしないと…
0783777
NGNGえ!!っていうことは「MS932」がサポートされてなくてもJavaとしてはしらねぇって事!?
つまり、InputStreamReader(inputStream, "MS932")ってコーディングはマルチプラットフォームにならないって事!?
そんなぁ〜(泣)
いや、だったら余計自分のVMがサポートしてる文字列を取得したいよ
やりたい事は、UTF-8で読み込んだファイルを色々なエンコードでファイル保存。なんだけど。。
0784782
NGNGJAVA_HOME\jre\lib\rt.jar
JAVA_HOME\jre\lib\i18n.jar
あたりにどんなコンバータクラスがあるか調べればいいかな?
解凍するとか(!)リフレクション使ってどんなコンバータクラス
持ってるか調べるとか…
0785777
NGNG色々ありがとうございます。
調べてString[]={"MS932" ,"Cp1252" ... とテーブルにしておいたとしても
それはSunのJDKを使用しないと動作保障されないって事ですよね・・
だったらSunのJDK専用ソフトって事でもいいんだけど
せめて起動時にSunのJDKで動いてなかったらワーニングダイアログ出したいが・・
jvmの種類を調べるAPIってないですよね?バージョンは取れるんですが・・
このソフトあきらめるか・・(泣)
0786デフォルトの名無しさん
NGNG1.4では標準化されてjava.nio.charsetパッケージに
収録されてる。java.nio.charset.Charset#availableCharsets()
あたりでいけそう。問題は1.4でいいのかってところかな。
0787782
NGNGSystemのプロパティに
java.vm.vendor=Sun Microsystems Inc.
とかあるけど…なんか変な方に逝ってるような。
クラスローダやリフレクションあたりのテクニックで、
実行時に、指定したエンコーディングを行えるコンバータ
クラスがあるかどうかチェックしてみる、というのが
やりたいことの実現としては一番近いかも。
>>786
1.4正式リリースまで待てば、解決ですか。
0788デフォルトの名無しさん
NGNGString s = "00000" + value;
s = s.substring(s.length() - 6);
よりもいい方法ってありますか?
0789デフォルトの名無しさん
NGNGString s = "\u000a";
}
これ、なんでコンパイル通らないんでしょうか?
public class Hoge {
String s = "\012";
}
こっちは通るんですが。
0790JAVA厨
NGNGAppletのサブクラスのpaint(Graphics g)に、直に
g.drawstring("hoge",100,100);
とすれば、hogeは当然書き出されますが、この文を「talker」という
クラスとそのなかにdrawTalk(Graphics g)メソッドを作って、
Appletのサブクラスのpaint(Graphics g)からGraphic gを引き渡して
呼び出そうとすると、コンパイラにGraphicsクラスがない、と怒られます。
「ジャワハウス」さんの方でいろいろ検索してみると、
Graphicsクラスのサブクラスにすべきでない、とか
Canvasクラスのpaintメソッドでやる、とか
書いてあったのですが、初心者ゆえわからずじまいです。
そこで質問なのですが、appletのサブクラスのPaintメソッドで
かかれるようなものを上記のように別クラスで実現させる方法を
教えていただけませんか?
こんなもの前にスレで回答は出てる、のならそのスレを教えていただけませんか?
また、このサイトに実例が載ってる、というものがあれば
それも教えていただけませんか?
厨房ですが、宜しくお願いします。
0791デフォルトの名無しさん
NGNG>コンパイラにGraphicsクラスがない、と怒られます。
これは、java.awt.Graphicsをimportしてないってことじゃないの。
0792
NGNG0x0aはNew Lineだからではないかな。
http://www.e-words.ne.jp/page.asp?p=r-ascii
つまり
public class Hoge {
String s = "\u000a";
}
は
public class Hoge {
String s = "
";
}
に等しいのでは。
0793JAVA厨
NGNGでました。すみません。
0794
NGNG>えっと、数値を右揃えに整形するのに、
>String s = "00000" + value;
>s = s.substring(s.length() - 6);
>よりもいい方法ってありますか?
DecimalFormat f = new DecimalFormat("000000");
String s = f.format(value);
というやり方もあります。
0795780
NGNGinit()
{
…
im=new BufferedImage(100,100,BuffedImage.TYPE_INT_BGR);
}
こんなかんじでここで実行事例外が出ちゃいます
プログラム自体これだけのものなんですが
0796デフォルトの名無しさん
NGNGBufferedImage が
Java 2(jdk1.2)以降でないと使えないのを知らない、
とかそーゆー事ではないよね?
0797デフォルトの名無しさん
NGNGBufferedImageはjdk1.2以降じゃないと使えない。
ブラウザは対応している?
0798780
NGNGこれはわかってました
>ブラウザは対応している?
IE5じゃ対応してナインスカ
ピクセル操作したかったんですけど他になんか
いいクラスはないでしょうか?
0799デフォルトの名無しさん
NGNGMS版とSUN版のVMきりかえられるんじゃなかったっけ?
0800デフォルトの名無しさん
NGNGそれはそうと
"Shift_JIS" == "MS932" != "SJIS" ってのは合ってますか?>識者の方
0801デフォルトの名無しさん
NGNGどっかで読んだ記憶が…
0802
NGNGだと思った。
0804デフォルトの名無しさん
NGNG表示されるのをBeansで書いてみたいのですが、javaって正規表現がなかった
ような・・・ここからここまでがurl〜というのをどうやって検索するもの
でしょうか?よろしくお願いします。(既出でしたらごめんなさい)
0806デフォルトの名無しさん
NGNG正規表現のパッケージはいくつかあるよ。
例えば、
http://jakarta.apache.org/oro/index.html
見てみて。
0807800
NGNGまとめると、1.2以降では
"Shift_JIS" == "MS932" != "SJIS"でいいってことだね。
そもそも、1.1.xには"MS932"がないから"Shift_JIS"使うしかない、と。
もう1.3しか使わないから"Shift_JIS"でいいや。ありがと。
0808デフォルトの名無しさん
NGNGちなみにこっちも見ておくと良いかも。
http://www.ingrid.org/presentations/javaone-japan-2001/
0809804
NGNGありがとうです〜
こんなクラスがあるのですね!英語が苦手なので、
http://www.ingrid.org/jajakarta/oro/
を見ました。マニュアルがまだ英語なんですね・・・
実際に書く場合、先頭が「http://」から始まる、が必要なのは
分かるのですが、逆に文末(?)の判断はどのように書くべきなの
でしょうか?よろしければお教え下さい。
0810デフォルト名無し
NGNG次のソースで、ボタンをクリックするとフリーズしてしまいます。
public void actionPerformed(ActionEvent E){
long t1 = System.currentTimeMillis();
int i = 0;
for(i =0; i <60; i++){
while( System.currentTimeMillis() - t1 <1000){
}
t1 = System.currentTimeMillis();
this.currentAngle -= 6;
if(this.currentAngle == 0 ){
this.currentAngle = 360;
}
repaint();
}
}
1秒ごとのアクションは、これではできないのですか?
良い方法があったら教えてください。
0811
NGNG別スレッドでrepaint()したら。
0813デフォルトの名無しさん
NGNGpublic void actionPerformed(ActionEvent E){
if(animator != null) return;
animator = new Thread(){
public void run(){
Thread.sleep(1000);
currentAngle -= 6;
if(currentAngle == 0){
currentAngle = 360;
}
repaint();
}
};
animator.start();
return;
}
0814↑
NGNGpublic void run(){
try{
while(! isInterrupted()){
Thread.sleep(1000);
currentAngle -= 6;
if(currentAngle == 0){
currentAngle = 360;
}
repaint();
}
} catch(InterruptedException e){/* */}
return;
}
停止させるときは:
animator.interrupt();
animator = null;
0815デフォルトの名無しさん
NGNGinstanceofってあるじゃん?
それって
左辺はObject型だよね〜。
右辺ってなに?
(String型か、)Class型とかで代用できるの?
0816デフォルトの名無しさん
NGNGこれって将来的に"Shift_JIS"使えなくなる(SJIS相当になる)ということ?
HTTPヘッダでcharset=Windows-31Jとか返すのか・・・
そんなの嫌だ・・・
0817デフォルトの名無しさん
NGNGjava.awt.image.MemoryImageSource
0818デフォルトの名無しさん
NGNGinstanceofっていうバイトコード命令があるんです
Classで判定したいときは
Class.isInstanceOf(Object object)
を使いませう
0819デフォルトの名無しさん
NGNG>818の答えは微妙にずれているような、、、
強いて言えば参照型の識別子
オブジェクト変数の宣言の行の頭に書いてあるものと同じ。
ttp://www.y-adagio.com/public/standards/tr_javalang/15.doc.htm#80289
0820デフォルト名無し
NGNGthanks a lot!!!
なるほど、Theadでの処理ですか?やってみます。
ところで、このやり方は某初心者向けの本を元にしたのですが、
System.currentTimeMillisは処理が重いからということなんですかね?
PS 仮眠してたので、レスが遅くなりました。
今からバイトです。
0821デフォルトの名無しさん
NGNGまずいのは while(){} が無駄に CPU パワーを消費していること。
前のソースだと CPU 使用率 100% がずっと続くのでまともな
アプリケーションにはならない。もし「それ」をその本の例でやっ
てるなら捨てて良し。いや、むしろ晒せ。
System#currentTimeMillis() はぜんぜん問題ない。
0822デフォルトの名無しさん
NGNG0823デフォルトの名無しさん
NGNGClass型はそう使うのか・・・。
でもinstanceofって何故かなじめない・・・。
予約語がbooleanを生成するのが何故か不自然な感じ・・・。
まあ良く使えばそのうち馴染むだろうけど。
0824デフォルトの名無しさん
NGNG馴染めないで良い。
instanceof を使わなければ何かが出来ない時は、設計者として負けた時だと思え (極論だが)。
0825デフォルトの名無しさん
NGNGだな。
むやみやたらにinstanceof使ったif文が出てくるソースは見たくない。
0826777
NGNG貴重な情報ありがとうございます!
エンコードソフトは1.4で作成します。
にしても、正式版いつ出るんでしょうね〜
SJIS != MS932だよね?
0827デフォルトの名無しさん
NGNGリフレクション絡みや、ダイナミックプロキシとかの
メタプログラミングの手法を取り込んでるときは、
instanceofなしは難しいと思うぞ。フレームワークっ
ぽいの作る時は、汎用性を上げようとするとどうしても…
RMIとかも、バリバリ使ってるみたいだ。
0828デフォルトの名無しさん
NGNG何事もなかったかのように、マイクロソフト拡張をオンにして、
Windowsアプリをバリバリ書く。
0829デフォルトの名無しさん
NGNGConnectionからPreparedStatementを取得するけど、
Connectionを閉じてしまっても、そのコネクションから
取得したPreparedStatementはその後も使いまわせますか?
0830780
NGNGその文字ピクセルをいじれればとおもったのですが
MemoryImageSourceのバッファをGraphicsで扱えないんでしょうか?
0831デフォルトの名無しさん
NGNGPixelGrabber使えばImageオブジェクトから
ピクセル値をbyte配列で取り出せるよ
0832デフォルトの名無しさん
NGNGけどさ、PixelGrabber って、普通に自前で生成した BufferedImage に対して
使うと、実はちょっと変になって出力されたりしないか?
Shape s = new Polygon(〜〜);
Graphics2D g = (Graphics2D)imageBuffer.getGraphics();
g.draw( s);
g.fill( s);
なんか、fill メソッドに Shape オブジェクトを渡して塗ろうとしたときに変に
なるんだよね。塗られる位置が 1ピクセルほどズレたりする。
これは俺の予測では、Raster と SampleModel をしっかり調整しないとダメっぽ
いような気がしている。
俺はもうこの時点で、疲れて別の代替策を考えたけど・・・< Shape オブジェクト
で塗る。
0833デフォルトの名無しさん
NGNG0834デフォルトの名無しさん
NGNGWin98系でEJBサーバ動かす意味なんてあるでしょうか???
0835デフォルトの名無しさん
NGNG都合により、どうしてもやりたいんですが、、、
やはり、存在しないんですかね。
0836デフォルトの名無しさん
NGNG追記。
PixelGrabber が悪いわけじゃなくて、BufferedImage の fill メソッド
がちょっとおかしいじゃないか?
というお話し。
0837デフォルトの名無しさん
NGNGPureJavaで出来てれば、動く事は動くでしょ。
起動用の環境設定のやり方を教えてくれるネタがないだけで。
0838デフォルトの名無しさん
NGNG無理。同時に PreparedStatement もクローズされる。
つーか、やってみりゃいいだろ。
0839デフォルトの名無しさん
NGNG保証外ってだけで動いてしまうものもけっこうあると思われ、、、
0840デフォルトの名無しさん
NGNG大抵の Windows 用 EJB コンテナは動くとおもわれ。
0841デフォルトの名無しさん
NGNGBufferedImageにピクセル単位でアクセスしたいときは
WritableRaster使うのが普通なんでないの?
0842
NGNGJ2EEをDLしてきて、"j2ee -verbose"を実行しようとしたら
"構文が違います"というエラーがでました。
調べたら%J2EE_HOME%bin\setenv.batの
set JAAS_OPTIONS=-Djava.security.auth.policy=%J2EE_HOME%\lib\security\jaas.policy
という文が駄目なようです。"="が2回出てくるのがWin98的に不味そうです。
元々J2EEはWindows98での動作保証なんて無いのは知ってましたが、
やっぱり無理なのかにゃ?
Windows98の環境変数の値に"="を含める方法ってありますか?
0843デフォルトの名無しさん
NGNG環境変数から取らないで、自前で起動バッチ作る方が
速いかもねー。
0844デフォルトの名無しさん
NGNGhttp://www.jboss.org
みたいなコンテナ専用サーバ使うんじゃないのけ?
0845デフォルトの名無しさん
NGNG0847845
NGNG0848デフォルトの名無しさん
NGNGしかし、俺が試してみたところ、俺は Windows98 ユーザだが、
うまく動かなかったがな。
0849デフォルトの名無しさん
NGNG0850デフォルトの名無しさん
NGNGLinux, Solaris, Win95, Win98, WinNT, Win2000 ― 無期限, 同時接続制限 3
http://jrun.itfrontier.co.jp/product/JRun_Server_30.cfm
IBM WebSphere Application Server Advanced Single Server Edition 4.0, Developer (日本語)
Linux, WinNT, Win2000 ― 六ヶ月有効版
http://www14.software.ibm.com/webapp/download/search.jsp?go=y&rs=wsassed
BEA WebLogic Server 6.1 (英語? 使ったことない)
WinNT, Win2000, Solaris, HP-UX, AIX, Linux
http://commerce.bea.com/downloads/weblogic_server.jsp
Windows 95 なら JRun がお勧めかな。以前一台の 95 (98だったかも) に JRun 積んで
3人くらいで開発していたから。
0851デフォルトの名無しさん
NGNGおぉ、バリバリやるぞぉ〜!
レス有難ぉ。
0852デフォルトの名無しさん
NGNGhttp://www.apple.co.jp/webobjects/index.html
それでも、WOFとEOFには遙かに及ばないけど。
前に仕事で、Servlet,JSP,EJBでやったら3ヶ月かかったアプリを、
個人的に趣味でWOで1から組み直したら1ヶ月かからんかった。
ちなみに、¥72,800の1パッケージに、開発環境&運用環境が入ってる。
開発はWindows2000&MacOSXのみ。
運用は、Java2環境なら全部OK。
対応DBは、JDBC2.0準拠ならなんでも可。
運用環境は、同時接続数無制限、1CPU単位でなく、1サーバ単位で¥7万。
以前は、¥700万以上だったのにな。今や1/100だ。
0853デフォルトの名無しさん
NGNGその節はお世話になりました。
多くの方の推薦もあってSwingをはじめました。そこで、次のようなコードを
書いたら動きました。(MouseAdapterのまねです。)
JButton btn = new JButton("BTN");
btn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt){
...
}
});
しかし、ActionListenerはインターフェースですよね。こんなことをしても
よいのか疑問になってきました。動くには動くのですが、たまたまなのか、
合法なコードなのか心配なのです。
どなたか教えていただけないでしょうか。
よろしくお願いします。
0854853
NGNG「インターフェースであっても、メソッドを上書きするように、
名無しのオブジェクトを作る」(要するに上のようにする)のが、
正しいやり方かどうかです。
よろしくお願いします。
0855デフォルトの名無しさん
NGNGhttp://www.gimlay.org/~javafaq/S016.html#S016-02
■ このスレッドは過去ログ倉庫に格納されています