1 :
デフォルトの名無しさん :
04/04/11 01:49
2 :
デフォルトの名無しさん :04/04/11 01:51
追加: 世の趨勢に習い、今回からJ#関連の質問も受け付けることにしました。
1おむつ
>>2 専用スレ立てなさいよ、別言語、別処理系、別実行環境なんだから。
>>前スレ994 Color#getRGB()をInteger#toHexString()すべきではないのかね? アルファ値イラナイならビット積とってマスクすれ。
>>5 申し訳ありませんがコード書いてくださいませんか?
7 :
デフォルトの名無しさん :04/04/11 02:02
>>7 当然OKです。
今回から範囲を大幅に広げました。
return "#"+Integer.toHexString(color.getRGB()&0xFFFFFF) かな?
すみません、最後にちょっとお邪魔します。 前スレでコードを下さった方、本当にありがとうございました。 素早くて驚きました^^ 前スレ不具合を指摘された方、、、おっしゃるとおり、あのままでは 上手くいきませんでした、、ご指摘ありがとうございました。
>>9 String temp="00000"+Integer.toHexString(color.getRGB()&0xFFFFFF);
return "#"+temp.substring(temp.length()-6);
の方がヨサゲ。
ついでにC#の質問も受け付けることにしました。 気軽にご利用ください。
>>11 そういうことか、じゃあこんな感じでもいいか?
return "#"+Integer.toHexString(color.getRGB()&0x1FFFFFF).substring(1);
>>13 ダメ。color.getRGB()=0のときを考えればわかる。
>>14 すまん、間違えた。
return "#"+Integer.toHexString((color.getRGB()|0x1000000)&0x1FFFFFF).substring(1);
あんまり変わらなくなっちゃったな。
机上デバッグ有難う〜。
使えねーな
初心者スレは、馬鹿が偉そうに出しゃばるから困る。 ちゃんと答えてやらないと初心者に影響出るだろ。
コンパイルまではできるんですけど その後『NoClassDefFoundError:』となり プログラムが実行されません。 いろいろWebサイトを回っていると Classpassの設定がうんたらかんたらと 書いてあるページがったのですが、 どのように設定すればよいのかイマイチわかりません。 どなた様かお返事お願いします。
>>19 Classpathです。あとは、ここにいる馬鹿に聞くよりググるが吉。
>>20 ぐぐっていたら
設定方法がわかりました
ありがとうございました。
>>18 だから恥かしいのをこらえて最後まで書いたんじゃないかぁ!
ウエーン
>>18 がイジメルヨゥ。
君ら、大阪府の
>>9 をどれだけイジメたら気が済むのか!
Java厨がまともなコード書かないのは、 コンパイルが遅いことやまともなデバッガがないことと 無関係ではあるまい。 なんていうか、こう・・・ 脳内○○が多いと思う。
しかし・・・ なんでJavaやってて、しかも人に教えようって立場のやつが ドトネト厨の俺に指摘されるような間違いするんだ? マッタクワケワカラン・・・ ネタナンダロウカ・・・
>>25 それは藻前の脳内Java厨。
そんなことよりスレ違い。死滅スレに逝け。
C#の話題もスレ違い。専用スレがあるからそっちへ行ってやって来い。
28 :
デフォルトの名無しさん :04/04/11 12:41
>>19-20 そもそもいまどきクラスパスを定義する方が馬鹿。
Antくらい使え
おまえにはいってない。前スレからC#の話をする馬鹿がいるからあっちへいけといっとる
32 :
デフォルトの名無しさん :04/04/11 14:39
>>31 >>9 のような馬鹿よりは良いでしょ。
初心者に変な影響与えないし。
C#厨は放置で
34 :
デフォルトの名無しさん :04/04/11 14:53
35 :
デフォルトの名無しさん :04/04/11 14:54
おやおや・・・ 馬鹿なJava厨をヲチするスレになりつつありますね・・・
先生!質問です! 64bit環境になっても、 intは4バイトで long8バイトなんですか?
38 :
デフォルトの名無しさん :04/04/11 15:54
下手に変わるのがintじゃないの。
40 :
デフォルトの名無しさん :04/04/11 16:26
>>37 とっくに64bitが出ているし、実際変わっていないのだけど。
大ざっぱに言ってCocoa+Javaは、 Java-(AWT+SWING)+Cocoa だから、(pureではない)Javaだと思うけど、 J#は文法だけJavaっぽくしてるだけで、Javaとは全然関係ない代物。
数日前から勉強し始めた者です。 ある配列変数の要素を指定するときに、存在しないインデックスを 記入していてもコンパイルは出来て良いのですか? 実行時にはなにやらエラーが出るのですが。
>>42 文法的に間違ってなければコンパイルはできる。
ぬるぽコードも書き放題。
JEditorPaneでスクロールバーを自動的に最終行に持ってくる方法を、 どなたかご存じないでしょうか。 JTextAreaと同じように、 setCaretPosition( int 行数 ) とやってもスクロールしてくれません。 (そもそもJEditorPaneでの行数の取得方法がよくわからないのですが、、) ご教授よろしくお願いいたします。
質問です。 なぜこのスレのリンクには某MLが入っていないのですか? 参考書を見て考えてもわかりませんでした。 よろしくお願いします。
>>35 > Antでもクラスパスは定義するでしょ。
定義はするがわざわざ環境変数を定義するという
効率の悪いやりかたをしなくて済むということ
>>28 >そもそもいまどきクラスパスを定義する方が馬鹿。
(´д)ヒソ(´д`)ヒソ(д`)
>>49 見てみぬ振りして上げられなかったの?
私はね、これからは黙って見過ごすことにしたよ。
心の中で嗤ってるくらいでちょうど良いんだよ。
ここの連中にはね・・・
JEditorPane ep; 〜 〜 〜 ep.setCaretPosition( ep.getText().getLength() ) では、 bad position: と出てしまいます。。どなたかご教授おねがいいたします。
>>51 JEditorPaneは使ったことないから知らんけど、
JTextAreaのときは、
JTextArea ta;
〜 〜 〜
ta.setCaretPosition(ta.getDocument().getLength());
でうまくいくよ。
53 :
デフォルトの名無しさん :04/04/11 21:15
入門書片手に勉強中です。 JAVAのクラスやメソッドなどのドキュメント(ヘルプ)は、 日本語版のものってあるのでしょうか? 今までやってたVBのようにメソッドのヘルプがすぐ見られないと すごく大変・・・
>>52 上手くいきました。。
ありがとうございました。
textの長さとっても仕方なかったんですね。
勉強します。
String str = "abc"; は、次と同じです。 char data[] = {'a', 'b', 'c'}; String str = new String(data); ってどういうことやねん。 new String(data);が"abc"なの???
59 :
デフォルトの名無しさん :04/04/11 22:25
>>56 そうじゃなかったらどうなってほしいんだ。
どうもありがとう。
Mapインターフェースを実装したオブジェクトから、保持している要素を すべてリストアップする(String型を保持していると仮定)にはどういった コードを書けばいいですか。
プログラミングとかやったことのないネットサーファーだったんですが javeをこれからやってみよーと思うんだけど本ってどれがお勧めですか。
"jave"
64 :
デフォルトの名無しさん :04/04/11 23:09
>>61 Map#entrySet()#toArray()
でObjectの配列がとれる。
>>61 こっちの方がいいかも。
Map#values()#toArray(new String[0])
I Don't Know Lonliness 君のLonliness♪ みんなに愛を配る 天使なんていないから〜♪
java.io.File.createTempFileを使って、指定したディレクトリにtest.txt と言うファイルを作りたいのですが、、、 java.io.File.createTempFile("test", ".txt", dir); で作ると、test02486.txtみたいな感じに拡張子の前に5桁の任意数字が入ってしまいます。 この5桁がファイル名に入るのはなぜなんでしょうか? またどうやれば入らなくなるのでしょうか?
>>68 >この5桁がファイル名に入るのはなぜなんでしょうか?
仕様
>またどうやれば入らなくなるのでしょうか?
java.io.File#createNewFile
TempFileって意味分かる? お探しのものはFile#deleteOnExit?
>>68 ろくにパソコン使わない奴が
プログラミングはじめていいのか? というゆえん
72 :
デフォルトの名無しさん :04/04/12 10:36
Runtime.execを使って他アプリを起動させているのですが、他アプリが起動しきっているか確認したいのですがいい方法はありませんか。 あとProcess.destroy()で他アプリを終わらせているのですが、他にも方法あるんですか?
>>72 「アプリが起動しきっている」をプログラムによって測定可能な方法で定義できれば可能です。
ちなみにそんな方法は標準ライブラリにはありません。
>>66 Micro$oft曰く、
I Don't NET Lonliness 君のLonliness♪
76 :
デフォルトの名無しさん :04/04/12 15:05
int x=3.14; float i=x; なぜjavaでは、これだとエラーになるんですか。
>>76 3.14はfloatだから、intの変数であるxに代入できない。
>>76 それってCとかだとコンパイル通るけど意図した動きにはほど遠いんじゃないか?
ワーニングレベルにもよるかもしれんが。
79 :
デフォルトの名無しさん :04/04/12 15:29
そもそも、float x=3.14; ってできるの。 double x=3.14だったら、okだったような。
>>79 float x=3.14f;
にしないとだめだな。
何も付けない小数値はdouble扱いなのね。しらんかった。
>>73 標準ライブラリーにないのは承知しておりますが、VBやVC等でやるような回避方法がないかなと思ったのですが。
タイマーで待たせるくらいしかないですかね。
>>72 漏れがやったときは、アプリが起動後に標準出力にメッセージ出してたので、
メッセージを読み終えるのを別スレッドで待ってた。
よろしくおねがいします。 J2EE 1.4 SDK のフルキット 130MB をダウンロードして実行すると、 インストールの途中、しばらくして以下のエラーダイアログがポップしてインストールが失敗してしまいます。 ┌────────────────────────────────────────────────────┐ │彡田WindowsNativeToolkit_3.0.2_1.exe - エントリ ポイントが見つかりません [×] │ ├────────────────────────────────────────────────────┤ │ │ │ (×) プロシージャ エントリ ポイント GlobalMemoryStatusEx がダイナミックリンク ライブラリ KERNEL32.dll から見つかりません。 │ │ │ │ │ │ [ O K ] │ │ │ └────────────────────────────────────────────────────┘
環境は、Windows NT 4.0 Server SP6a IE5.5 ( IE4のデスクトップ統合あり ) です。 DCOMCNFGでの見直し、Windows Installer 2.0 の再インストールなどもやってみましたが状況に変化ありません。 NT 4.0 はサポート内かとおもうのですが、Server は対象外なのでしょうか? このエラーに対処し J2EE SDK をインストールすることはできるのでしょうか? 以上、どうぞよろしくご教示お願いいたします。
あのぅ txtエリアに入力された文字を所得する方法を 教えていただけませんか?
TextAreaクラスが継承しているTextComponentクラスのgetText()メソッド 選択されている文字列の場合はgetSelectedText()メソッド
>>88 そのメソッドの使い方は
JTextArea jta = new JTextarea( , 3, 20);
String str = jta.getText();
ってな感じでおk?
( ´-`)。。o(自分でやってみれば2分でできることをわざわざ質問する奴の精神はどうなっているんだろう?)
おいらはSwingは知らないけれど、 それでいいんじゃないのかな。
92 :
デフォルトの名無しさん :04/04/12 22:38
Windows で Runtime.exec() 使って外部コマンドを起動してるんだけど、 起動のたびに「ちらっ」とコマンドプロンプトウィンドウが出てしまう 環境があるみたい。これを消す方法はありますか? また「この環境では 出るよ」というような一覧情報はどこかにありませんか?
>>84 JBoss使え。
それかOSをLinuxとかに汁。
94 :
デフォルトの名無しさん :04/04/13 00:20
あっ、外部コマンドのことが出てるので 僕も便乗して・・・ 外部コマンドでバッチを起動して、 バッチの処理が終わったかどうかを 判断する必要がある場合、 みなさんはどのように対応されてますか?
Process#exitValue()を実行してIllegalThreadStateExceptionが起きたらまだ動いている、とか。 Javadoc読んだだけなのでこれでできるかどうかは知らない。
java.lang.ProcessのwaitFor()っちゅうのは 外部コマンドで起動したプロセスを監視してくれるって ことでっしゃろか? 「必要な場合に、この Process オブジェクトが表すプロセスが終了するまで 現在のスレッドを待機させます。」 と、ありましたので・・・・。
あっ 95番さんの方法もなんかよさげ・・・。
普通に標準入出力使って会話する、と言う話にならんのはなんででしょ。
>>98 標準入出力で会話をするとなると、
外部プロセスの呼び出し元は
スレッドを利用して待機して、
呼び出しプロセスから
終了の通知がきたら、
処理を終了するって
感じでよろしいのでしょうか?
unix に慣れてる人だと 標準入出力 (というか一般にパイプ) を使った 通信ってのは当たり前にやってることなんだがなあ。 まあ外部コマンド使うなら Java なんか使わず 最初からシェルスクリプトでやっちゃうか。
終了タイキならWaitFor()でエエンチャウの。フォークして女陰みたいなもんです。 外部プロセスの途中の状態を逐一監視したい場合、外部プロセ側でなにかStdoutに文字列デモはかせるよう にして、Process#getInputStraem()で取り出せるパイプからJava側にバッチのメッセージ読ませてどうに かするといいんじゃないとか、そういう話。ソケット経由でもいいけどさ。
Javaからバッチ呼ぶときって、気をつけないと、バッチがstdout、stderrに 吐き出す出力が詰まることがあるから気をつけなよ。使うかどうかは別にして、 Process#getInputStream()が返すInputStreamへの書き込みは読み込んどいて あげたほうが安全。 Windowsで動かした時は、このバッファはびっくりするほど小さかったよ。頭 抱えて悩んだ覚えがある。
おはようございます。 どうもみなさん 貴重なアドバイス ありがとうございました。 大変勉強になりました。
DOS窓からの実行でNoClassDefFoundErrorが出てしまいます それがどうもSwingかAWT関係のようで、フレームを使わない物は実行できるんです ぐーぐる先生に少し訊いてみたのですがSwingの命名関係でエラーが出る場合が、というものはあったのですが それは1.2.0時代のものでして、確証が持てませんでした。 いつもはEclipseを使っていて、こちらではエラーが出ません、これは何故なんでしょうか? 環境はWinXP+JDK1.4.2_03です
>>104 stacktrace 全部コピペしろ。
JDK入れなおしてもう一度一から設定しなおしたら動きました・・・ なんだったんだろう、すいません(つдT)
>>106 簡単に考え付くのでは、複数のJDKを新しい奴->古い奴の順で入れて
インストール時に C:\windows とかにコピーされる java.exe と javaw.exe を消してない、とか。
108 :
デフォルトの名無しさん :04/04/13 18:51
ちょっこす教えてもらいたいんですけど。 DDE(Dynamic Data Exchange)コマンドを送信されたものを受信できますか? そんなのは無理?
すみません、ご迷惑をおかけして
>>90 サン
そう思われても仕方ないですね
>>88 サン
こんなくだらない質問にわざわざ答えていただき
ありがとうございます
DDEってWin16で使われていたヤツか 懐かしいな ま、JNIで普通に使えるだろ
111 :
デフォルトの名無しさん :04/04/13 20:56
質問ですが、US版のjavaはシングルバイト仕様なんですか? 日本語アプレットを使った後でキャスティングの切り捨てが (バグ)あるような気がするんですが。
113 :
デフォルトの名無しさん :04/04/13 21:06
どなたか JavaMail つかって charset=iso-2022-jp で、 ローマ数字とか、丸数字とか出せた方いますか? 機種依存文字使うなってのもわかっているんですが、 メーラー to メーラー で、 普通に機種依存文字の受け渡しできるから、 JavaMailでもできるんじゃないかと思って。 とりあえず、 s.replace('\u2160', '\u2d35'); とかやって、対比表作ってやってもだめでした。
115 :
デフォルトの名無しさん :04/04/13 21:18
質問よろしいでしょうか。 配列に要素を加えるのって Hairetsu.add(nullpo); とかですけど、逆に配列から要素を取り除く記述ってありますか?
戻り値って何ですか? プログラムのmain()メソッドの戻り値がvoid、というのが、 さっぱりわかりません。
>>113 > charset=iso-2022-jp で、
> ローマ数字とか、丸数字とか出せた方いますか?
ISO-2022-JP にはそれらの文字は含まれない。
例えば MS932 とかの「ローマ数字とか、丸数字」が使えるエンコーダを使って、
その出力を SJIS -> JIS 変換するとか、似たような事する既存のコード探すとかしてください。
>>115 > 配列に要素を加えるのって
array[index] = val; //設定
val = array[index]; //取得
> Hairetsu.add(nullpo);
配列型 には add() なんてメソッドは無い。
配列型にあるのは public なメソッド clone() と public final int なフィールド length のみ。
>>118 あとは Object で定義されてるメソッドだけね。
120 :
デフォルトの名無しさん :04/04/13 21:37
自分のサイトに来た人がどのサイトからきたってのをログに書きたいんだけど そんなメソッドなかったっけ?教えてください。
>>116 > プログラムのmain()メソッドの戻り値がvoid、というのが、
void はメソッドの戻り値が無い事を示すマーカー。
122 :
デフォルトの名無しさん :04/04/13 21:39
123 :
デフォルトの名無しさん :04/04/13 21:48
>>116 public static void main(String args[]){
int a = kakezan(6,8);
System.out.println(a);
}
//ユーザー定義メソッドkakezan();戻り値aになる
private int kakezan(int a,int b){
retrun a*b;
}
このプログラムで説明するとmainメソッドで戻り値指定してもコンパイルエラーになる。たとえmainメソッドでリターンできたとしても受け取るところがないので
voidになる。
125 :
デフォルトの名無しさん :04/04/13 22:34
>>112 悪文スマソ。バグというのは言い過ぎでしょうね。むしろウィンドウズの
バグと呼ぶべきかも知れません。コードはわかりません。でも今までの
経験から言ってjava絡みのトラブルである事はほぼ間違いないのです。
日本語版と英語版の同じようなコードがあるとします。というか、
これ恐らく英語版を日本語版に拡張しただけだと思います。
日本語版を使用した後で英語版を使用し、その後さらにある特定のHPを
覗くとかなりの高確率でIEのプロパティがバグるのです。
>>125 具体的になにをしたらどーなったのか説明されないと
何がおきたのかサッパリわからん。
> 経験から言ってjava絡みのトラブルである事はほぼ間違いないのです。 自力で解決できない問題に対しては自分の経験はそれほどアテにしないほうがいーぞ。
129 :
デフォルトの名無しさん :04/04/13 22:56
javaのエディタはベクターに置いてる?
あるんじゃない?
131 :
デフォルトの名無しさん :04/04/13 23:03
>>126 最終的にIEでブラウズする事が出来なくなります。これを解決するには
(少なくとも自分の技量では)再起動しかありません。
>>131 それは「どーなった」の部分だけど、具体的じゃない。
なんで IE でブラウズする事ができなくなるわけ?
あと日本語版とか英語版ってなんだ?
133 :
デフォルトの名無しさん :04/04/13 23:07
んでさ、思ったんだけど、エディタとコンパイラだけでソフトって ほんとにつくれると思いますか?
とりあえずJREのバージョンだけでも書いてくれないことには何とも言えないな。 脳内バグの可能性もあるし。 ソースが見えないというのなら、そのアプレットが置いてあるページのURLだけでも分からない?
135 :
デフォルトの名無しさん :04/04/13 23:10
はい。ありがとうございます。見に行ってきます。 とりあえず、ぷよぷよとかみたいんでつが、、、。
136 :
デフォルトの名無しさん :04/04/13 23:11
(訂正) ぷよぷよとかつくってみたい
140 :
デフォルトの名無しさん :04/04/13 23:17
そうなんだ、、、。 だれかフリーウエアでぷよぷよもどきつくったひとあてにメールしてみようか、、、
勉強しててもなんか霧の中を歩くようで・・・。 コマンドラインから「java Tes this is a test」と入力して次のプログラム を実行すると、どのような出力が表示されるか。 class Test{ public static void main(String[]args){ System.out.println(args[1]); } } A this B is C a D test すいません、どういうことか教えて下さい。
142 :
デフォルトの名無しさん :04/04/13 23:21
139>>ありがとう。ページいてきたよ。
コマンドラインから「java Test this is a test」でした。すんません。
144 :
デフォルトの名無しさん :04/04/13 23:23
IDE JDK の意味がわかんないや。 情報処理用語辞典みてもきっとおいらには解らないはず
145 :
デフォルトの名無しさん :04/04/13 23:25
>>132 それはyahooJapanのゲームです。ゲームは外国でもルールが同じ為に
コード的に本家の拡張版を作る可能性が大きいと思われます。
そして特定のHPとはHotWired Japanの科学ニュースのページです。
因みにNortonで広告はカットしてます。。
Java の実行環境英語版も日本語版もまったく同じ (リソースだけ違う) なんだけど。
147 :
デフォルトの名無しさん :04/04/13 23:36
調べてきたらわかった。 ありあとう★
>>141 java クラス名 引数1 引数2 引数3 引数4
150 :
デフォルトの名無しさん :04/04/13 23:43
バージョンの調べ方がわかりません・・。
IEを使っているのなら、 「ツール」→「インターネット オプション」 「詳細設定」のタブを表示して、Java(Sun)の項目があればそこにバージョンが書いてある。 なければ、糞使えないMicrosoftVMを使っていることになる。
152 :
デフォルトの名無しさん :04/04/14 00:03
>>151 java2 1.4.2_01 でした。
153 :
デフォルトの名無しさん :04/04/14 00:49
自分のHPで公開しているJavaアプレットが 動作する人と動作しない人がいるようです。 どういった理由が考えられますか? 使っているJREのヴァージョンが古いと実行できないとかはあるんでしょうか?
155 :
デフォルトの名無しさん :04/04/14 01:12
すれ違い、ごめんなさい。 Javaプログラマの試験うけたことある人、教えて下さい。 試験は画面で解答していくみたいなんですけど、紙とえんぴつ でメモとるのはダメなんでしょうか?
>>153 SunにはあるけどMicrosoftには無いメソッドがあったりする。
まず、自分がMicrosoft版の方で動くようにすべし。
>>160 それはMicrosoftVMってやつですかね?
最新のJREを入れて貰えばそれで解決しますか?
162 :
デフォルトの名無しさん :04/04/14 11:04
>>154 解決しませんでした。今のところIEは生きてますが根本的な問題は
未解決のままです。前述の操作でハンドらが死んだりとか異様にレスが
遅くなるとか正直これでは・・・という感じです。
M$はjavaでSunと裁判やってましたから細部の刷り合わせをやる気が
無いんでしょうか。実のところこのバグはjavaを外部インストールする
以前には発生しませんでした。
msの方で調整したからSUNのJavaVMで動かしたら(ネスケで) 文字が画面からはみ出した・・・ 本家の方は起動も遅いし。提携する事になったらしいので これからいろいろ改善されるのでしょうか。。。
165 :
デフォルトの名無しさん :04/04/14 11:55
>>163 レスありがとうございます。ですがその修復では最後に再起動が
必要になりますよね。それでは意味が無いんです・・。スマソ
166 :
デフォルトの名無しさん :04/04/14 16:09
すいませんが質問です class Outer{ interface Inner1{ void meth1(); } abstract class Inner2{ abstract void meth2(); } } class Test{ public static void main(String[] str){ Outer out = new Outer(); Outer.Inner1 in = out.new Inner1(){ public void meth1(){ } }; Outer.Inner2 in = out.new Inner2(){ public void meth2(){ } }; } } これをコンパイルしようとすると "static クラスの new が修飾されています。Outer.Inner in = out.new Inner(){" とエラーになります。抽象クラスを継承した無名クラスはいけるのに、 インターフェイスはだめなのでしょうか?
ごめんなさい。in が2回でたり、エラーメッセージのInnerがなっかたり...orz class Outer{ interface Inner1{ void meth1(); } abstract class Inner2{ abstract void meth2(); } } class Test{ public static void main(String[] args){ Outer out = new Outer(); Outer.Inner1 in1 = out.new Inner1(){ public void meth1(){} }; Outer.Inner2 in2 = out.new Inner2(){ public void meth2(){} }; } } Test.java:14: static クラスの new が修飾されています。 Outer.Inner1 in1 = out.new Inner1(){ でした。
169 :
デフォルトの名無しさん :04/04/14 16:33
JFrame から JDialog をモードレスで開いていますが、 JFrame側にフォーカスを移しても、常に JDialogを JFrame の前面に置いておく 方法はないでしょうか? ダイアログの方でこんなことをやってみましたが、フォーカスまでダイアログに 移ってしまい、所望の動作にはなりませんでした。 this.addWindowListener(new java.awt.event.WindowAdapter() { public void windowDeactivated(WindowEvent e){ toFront(); } });
170 :
デフォルトの名無しさん :04/04/14 16:49
質問です。 変数Aがあり、配列にいくつか値が入っていて、 Aが配列の中に入っているかどうかを調べる書き方ってありますか?
>>170 Arrays#binarySearch
>>169 1.5 以降なら java.awt.Window#setAlwaysOnTop(boolean) で出来るかもしんないけど、
1.4 とかそれ以前だと無理だったと思う。
>>170 Arrays.asList(array).contains(val) とか。
>>171 binarySearch するには sort してある必要が…
>>173 おー、そうだ。
でも、それだとプリミティブ型の配列はダメだな。
プリミティブなら、sortしてbinarySearch
オブジェクトなら、Arrays.asList(array).contains(val)
かな
>>168 さん、早速のレスありがとうございます。
おぉ、そうなのね。
Outer.Inner1 in1 = new Outer.Inner1(){略};
コンパイルとおったー。
お世話になりました。
176 :
デフォルトの名無しさん :04/04/14 17:07
>>177 commonsはいろんなのがあるんだなぁ
InnerFrameならフレーム間の優先順位強制的に出来るけどね
質問させてください。 WindowsでJavaをやっているのですが、 Javaで書いたプログラムを実行するには、コマンドプロンプトで Java クラスファイル名 とやる以外に、EXE形式のように 実行ファイル形式にできませんか?
>>181 JAR にすればダブルクリックで起動しますが?
もしくは eclipse.exe とかでやってるのと同じように
java.exe(javaw.exe) をキックするだけの exe を作るとか。
実行ファイル作ってそいつがjavaをコールする jreは実行ファイルと一緒のアーカイブに入れて配布 サイズは大きくなるものの、ユーザーから見て通常のバイナリとなんにも変わらない
184 :
デフォルトの名無しさん :04/04/14 18:19
質問なのですが Gifなどの画像ファイルを読み込んでソフトウェア的にスプライトで アニメーションさせたいのですが、Win32APIのBitBlt関数のように 転送元の画像ファイルのx,y座標を指定させる方法は無いでしょうか? 実行環境ですがアプレットではなく、アプリケーションで実行したいです。
>>182 調べたらできました。
ありがとうございます
>>169 なんでそれでモーダルにしないの?
>>184 BitBlt風に手動で書きたいなら、
java.awt.Graphics
drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
sx1, sy1がソースイメージのx,y。
>>186 大変助かりました。
ありがとうございます。
>>186 >なんでそれでモーダルにしないの?
多分 かちゅの書き込みダイアログとか
ワードのいるか(あれはregionとってあるけど)とか
あんな具合のがほしいのであろう
189 :
デフォルトの名無しさん :04/04/14 22:33
質問です。お願いします。 SDKをインストールしようとしたら、 windowsインストーラのパッケージに問題があると出てきて、インストールできませんでした。 どうすればいいのでしょうか。 OSはwinXPです。
XPならWindowsインストーラの問題は無いと思うんだが キャッシュ殺してダウンロードし直してみたら?
たしかSDK、netbeansとセット版のやつインストーラに なんか問題あったよような。SDK単体版でやってみるといけるかも。
192 :
デフォルトの名無しさん :04/04/14 23:45
189です。
何度もすいません。
>>190 用語がわかりません。
キャッシュを殺すというのはどういうことでしょうか?
>>191 インストールしたのはこれなんですが、
j2sdk-1_4_2_01-windows-i586.exe
これはSDK単体版ではないんでしょうか?
キャッシュを消すという意味だろ。 ブラウザによっては再ダウンロードすればええだけで済むけど。 MD5でダウンロードしたファイルがサーバにあるものと違うものかどうかを チェックもしてみなよ。
>>163 そんなもんがあるのか
久々にWindows処方箋でも見てみるかな。
新しいバグ修復情報がはいってるかもな
196 :
デフォルトの名無しさん :04/04/15 00:05
public interface hoge{ //いろいろなメソッドの定義 } というインタフェースを定義して ほかのクラスで hoge.class って書いてある場合、これどういう意味があるんですか? インタフェースをclass(オブジェクト?)と認識させるってことなのかしら?
認識させるはちょっと言葉が悪いですよね・・・。 classに変換してるのでしょうか?
>>164 > msの方で調整したからSUNのJavaVMで動かしたら(ネスケで)
> 文字が画面からはみ出した・・・
Netscapeのほうが正しい表示をする。
IEは誤ったHTML記述を厳格にチェックしない。
W3CのサイトにいっておぬしのHTML妥当性をチェック汁。
> 本家の方は起動も遅いし。提携する事になったらしいので
> これからいろいろ改善されるのでしょうか。。。
M$向けに改造されることはないとみた。M$JVMなんてセキュリティホールは使うべきじゃない。
J2SE1.5でパフォーマンスがかなり上昇するのでそれに期待するとよろし。
>>196 > ほかのクラスで
> hoge.class
> って書いてある場合、これどういう意味があるんですか?
どう書いてあるんだよ。ソース見せろ。そのinterfaceがあるディレクトリを除いてみろ。
interfaceは何があってもinterface。
>>196 クラスおよびインターフェイスがクラスローダにロードされると、そのクラス
に間する情報を所有するjava.lang.Classクラスのインスタンスが生成されるの
でござる。ワケワカラン?
でもって、hoge.classは、インターフェイスhogeに対応するClassクラスのイン
スタンスへの参照を表現するのでござる。
内部的にはClass.forName("hoge.class")をよび出しているのとほぼ一緒。
(つうか、SunのJavacコンパイラは、この二つをほぼ同じバイトコードに変換する
んだけどね。)
>>199 public Class unko(){
return hoge.class
}
って書いてあります。
Classを返してます。
どういうことなのでしょうか?
>>200 わけわかります!
そういうことだったんですか。
hoge.classって書かれてるところは
上に書いてあるようにClassを返していたので
納得できまました。
VK_F1等の仮想キーコードはどうやった使えるのでしょうか? java.awt.event.KeyEventをインポートしても使えません・・・ また、これをインポートする事により、無駄に肥大するのでしょうか?
>>202 インポートしたら使えるんじゃないの。KeyEvent.VK_F1とか。
>また、これをインポートする事により、無駄に肥大するのでしょうか?
しない。インポート文は、単なるコンパイラへのヒントでしかない。
>>203 あ・・・KeyEvent,が必要だったんですね。thx
>>204 そういう書き方は、JDK1.5でのstatic import追加を待つべし。
String型をchar型に変換って出来ますか?
↑ charAtではなくて、 "u2212"という文字列(文字コード)をchar型に変換したいわけです。
208 :
デフォルトの名無しさん :04/04/15 13:43
>>206 String str1 = new String("u2212");
char char1[] = str1.toCharArray();
System.out.println(char1);
これの事か?
210 :
デフォルトの名無しさん :04/04/15 14:04
>>208-209 プロパティファイルからstring型で読み込んだ文字コード( "\u2212" )を
char型に変換してString#replace()で使用したいわけです。
早い話が、プロパティファイルで定義した \u2212(=全角ハイフン)を
別の文字に置き換えたいわけです。
何かいい方法はないものでしょうか?
>>210 自力でユニコードエスケープ展開すりゃいーじゃん。
212 :
デフォルトの名無しさん :04/04/15 14:10
すいません。 doSomethingメソッドはどのような意味があるのでしょうか?
>>212 do something == なんかする
サンプルコードとかで頻出。
>>211 すみません、ユニコードエスケープ展開とは何でしょうか?
>>214 String str = "u86f8";
str = str.substring( 1 );
char ch = (char)Integer.parseInt( str, 16 );
int型を16進のstring型にするためにはどうしたらいいのでしょうか?
>>218 java.lang.Integer#toHexString(int) とか。
executeQuery()で実行されたselectの結果をgetString()で取得すれば 必ずUnicodeですよね?
>>222 String は当然 Unicode でしかないが
DB の文字コードから変換するとき化けることもある
DB (EUC) から全角ハイフンを executeQuery()してgetString()して取得した文字コード見ると ff0dなんですよ。これってシフトジスのコードであって、unicodeでは\u2212だと思うんですけど これってどういう現象かわかります?
>>224 Mac の匂いがするな。違ったらゴメン。
\ 〜 ‖ − ¢ £ ¬ ←この辺は転送中によく化ける。場合によりけり。
うしろ 6つは、301c 2016 2212 a2 a3 ac と
ff3c ff5e 2225 ff0d ffe0 ffe1 ffe2 と
2通りあって、GUI に表示されたり getBytes() で別コードになるとき、
? などになって損失したりする。
環境によって変換テーブルが違う。
SJIS の場合は実は MS932 なのでどうたらこうたらよく聞くが、EUC でもそういうのあんのかな?
それとも中間的に SJIS に変換してるのかな?俺は疎いので分からん。
環境を事細かに書けば、誰かが最適な対処法を教えてくれる。かもしれない。
質問です。 何秒間(0.01秒単位くらいで操作できると嬉しい)処理を停止するということは出来ますか? 出来るとしたらどうすればよいですか?
XP標準のVMだと抜き色付きdrawImageが壊滅的に遅いのは仕様ですか? 抜き色無しだと負荷率0〜5%なのに抜き色付けると一気に100%に迄 達してしまうのですが。。。
>>230 JDKのバージョンとImageをどうやって生成してるかが
分からないと確定的なことは言えないけれども、
抜き色ってことは1bit透明(BITMASK)だよな、
それを普通の透明、32bitRGBAかcreateCompatibleImage( .., TRANSLUCENT)とかにしてみ。
更に起動直後に
System.setProperty( "sun.java2d.translaccel", "true");
をつける。
232 :
デフォルトの名無しさん :04/04/16 12:11
Long型の変数が 0ではなく、null の事はありますか? ある場合は、それをどうやって判断しますか? ( a == null) か a.isNull()ですか?
プリミティブ型以外はnullがある
>>232 long型の場合はnullのことはないが、Longクラスの場合はある。
その場合、 a == nullで調べる。
なるほど、ありがとうございました。
HTTPサーバが返すDateレスポンスの日時でDateクラスを 初期化したインスタンスを作るには、どうすればいいですか。
>>231 すみません。
JDSKは1.4.2_04-b05で、イメージはピクセルグラバーで指定色のαを0
にしてcreateImage(MemoryImageSource) で作ってました。
XP標準のVMでも2D関連使えるんでしょうか?
> XP標準のVM って何だ? WindowsXP なら MSJVM は標準搭載されてないはずだし… Sun の JRE 搭載してるなら発売時期によってどのバージョン持ってるか違うだろうし。
XP標準というか出荷時期によって ・MSVMあり ・MSVMなし ・sunVMあり の3種類がメーカー品に存在する
240 :
デフォルトの名無しさん :04/04/16 13:11
>>236 SimpleDateFormatクラスを使ってparseしろ。
WindowsUpdateでMSVMインストールされなかったっけ
242 :
デフォルトの名無しさん :04/04/16 13:30
質問です。JAVA歴2週間ほど、VC歴は長いです。 javaで先入れ先出しのキュー構造をサポートするクラス名はなんですか?
なに?先っちょだけいれて(ry List に add して get(0) すればそれでいいんでない? 必要に応じてスレッドセーフにして 順番だけ守って全部いっぺんに出すなら Iterator まわせばいい
先頭の取得した物から消していくと詰めにいちいち時間がかかるので イテレーターで回したいと思います。
>>242 JDK 1.5 以降なら java.util.Queue と実装クラス。
それ以前なら適当に拾ってくるか作るかすれ。
java.util.LinkedList
247 :
デフォルトの名無しさん :04/04/16 14:17
BufferedImage buffer__ --- Graphics2D g = buffer__.createGraphics(); onPaint(g); g = null; onPaint関数内で描画を行い、 明示的にgを削除する場合ってこのようにnullでいいでしょうか?
スコープからはずれてほかのところからもリンクされてない場合 明示的にnullいれなくてもGCの対象になるからそんなことはこだわる必要ないかと むしろイメージ関連などは使い終わったらdispose これも必須ではないけどな
249 :
デフォルトの名無しさん :04/04/16 14:35
onPaint直後にこの3行を含む関数を再帰処理にかける予定ですので、 スタックを積み重ねてGraphics2d gが膨大になってしまう可能性があり、 さっさと消したいと思っていました。 g.dispose();で行きたいと思います。
3行を含むってことは変数宣言箇所も含むんだから null入れる必要はないよ gcの対象になるタイミングがほんの少し違うだけ
>>237 そういう状況ならよほど何か深いことがなければ
単にJVMのバージョンを上げればよろし。
アプレットなら勝手に最新のVMで起動するタグができたはず。
>>236 java.net.HttpURLConnectionにはgetHeaderFieldDateがあるようだが。
252 :
質問者@JAVA初心者 C++歴長い :04/04/16 14:54
>>250 でもjavaって宣言しただけではポインタしか出来てなくて、
BufferedImage::createGraphics()関数内部でnew Graphics2D;と作成され、
返されていると言う訳なのではないのでしょうか?
それとも単に宣言した時と、BufferedImage::createGraphics()を呼んだあとで
メモリー使用量はかわらないのでしょうか?
createGraphicsの実装部分俺は見てないからわからんが Graphics2Dの取得をキャスト無しで使うだけの命令だから 別にメモリー多くくうとかそんなことはないはずだが つーか、disposeいれてもいれなくても俺の作ったjavaのゲームは そこがネックになることはなかったぞ ゲームなんでもちろん毎フレームGraphicsガンガン取得してるぞ
>>249 > onPaint直後にこの3行を含む関数を再帰処理にかける予定ですので、
やめろ。
っつか、C++でも一定時間経過すればスタック使い切って暴走(普通はAccessViolation で落ちるとか)すんだろ。
255 :
質問者@JAVA初心者 C++歴長い :04/04/16 15:12
>>253 なるほど、参考になりました。
でも律儀としてとりあえず入れておこうと思います。
256 :
デフォルトの名無しさん :04/04/16 15:17
> JAVAアプレットのプログラムって256色しか使えないのですか? いいえ。
258 :
デフォルトの名無しさん :04/04/16 15:26
んじゃ単に軽くするため256色にしてるだけって事ですか?
そこのサイト以前もでてきたけど死ぬほど重いな だからそのへんもあるのかと思われ しかもそのゲームって速いマシンほど速く動くという設計がおかしいヤツだったような javaは元々フルカラーしかなかった 今ではいろんな自由なbitの配置できる ほとんどの場合標準で用意されているやつだけで十分だとおもうけどね TYPE_INT_ARGBとかUSHORTとかそのへんでほとんど足りる
260 :
デフォルトの名無しさん :04/04/16 17:13
将来JAVAアプレットがFLASH並に軽くなる可能性はありますか? せめて今より少しでも軽くなってくれないものですかね
261 :
デフォルトの名無しさん :04/04/16 17:33
アプレットも動作自体はそれほど重くはないが、起動に時間がかかるな。 将来的にはマシンパワーでなんとかなるんじゃ?
263 :
デフォルトの名無しさん :04/04/16 18:03
>>245 ついにQueueが実装されるのか。
というか、今までなぜQueueがなかったんだ?
>>263 誰でも List とかで簡単に Queue 作れるからじゃない?
もしくは Core API 内部では必要なかったとか。
List系あればとくにこまらんしな
266 :
デフォルトの名無しさん :04/04/16 20:30
sex object = new manko
268 :
デフォルトの名無しさん :04/04/16 21:33
勉強用にTomcatをインストールしたいのですが、 webアプリサーバの機能があるらしいので躊躇してます。 Tomcatをインストールしたら、危険なことってありますか? (サバ板?)
>>268 セキュリティホールが見つかればその都度次バージョンが出てるし、
こまめにバージョン上げてれば大丈夫でしょう。
そんなに気になるならファイアウォール導入すれば、という話になりますが、
それは確かに板違いかな。
>>268 じゃあ、Tomcat入れて何の勉強をしたいんだよ。
一応、Webサーバとしての機能殺せるけど(mod_jk2とか使ってApacheとの連携する時とか)。
271 :
デフォルトの名無しさん :04/04/16 22:03
javaでショッピングモールを構築したいんだけど、どれくらい工数で出来るの?
>>270 サーブレットとJSPです。
大学でJAVAやってるんですが、
どんどん先取りして勉強したいのです。
>>272 サーブレット公開するには、
HTTPD 動かさなきゃしょうがないだろうが。
>>272 あなたには無理ですので、素直にHTMLでも勉強しててクダサイ。
>>272 勉強中はインターネットに接続しないことにすればOK
>>270 話が飛躍しますが、Tomcatを起動しなければ
ネットワークサービスを開始しないということでしょうか。
>>274 ルータとFWは入れてあります。
>>275 段落とかブロックの定義(?)は勉強中です。
>>277 お前には無理だよ。
無免許でいきなりF1マシン操縦するようなもんだよ。
少なくともあと一年は勉強してからまた来てくれ。
Q. Tomcatをインストールしたら、危険なことってありますか? A. いいえ
tough boy
>ルータとFWは入れてあります。 FW というのは、 内側で動いている(あなた自身が動かす)サービスの詳細と 利用しているプロトコルを全て理解し、 それに基づく設定を行って初めて意味をなすことばです。 >話が飛躍しますが、Tomcatを起動しなければ >ネットワークサービスを開始しないということでしょうか。 こんなこと人に聞く段階で、「入れてあります」なんていえねっつの。 わかんないならスタンドアロンにしたマシンで遊んでなさい。
ルータの中で遊んでる分にはぜんぜん大丈夫だよ。
>>251 それだとテキストの日時しか得られないんですよ。
手で解析するのも何だし、そもそも解析するための
クラスが用意されてると思って質問しました。
>>284 を訂正します。
すみません、それで正解でした。
286 :
デフォルトの名無しさん :04/04/17 00:06
以下のような場面でBufferedWriterの内容を標準出力に 表示させたいんですが、何か良い手はありませんか? (前略) Socket sock = null; //ソケット BufferedWriter sockout = null; sockout = new BufferedWriter( new OutputStreamWriter(sock.getOutputStream())); //以下のように様々な処理 sockout.write(method + " " + path + " HTTP/1.0\r\n"); sockout.write("Host: " + host + "\r\n"); sockout.write("Cookie: " + cookie + "\r\n"); sockout.write("\r\n"); sockout.write(query); /** ここでBufferedWriter#flush()を呼び出す前に * 標準出力にsockoutの内容を出力したい */ sockout.write("\r\n"); sockout.flush();
>>284-285 はもっとシンプルな答えがありました。
HttpURLConnection#getDate()でDateクラスを初期化すれば
良かったという。
お騒がせしました。
>>286 Jakarta Commons-IOのorg.apache.commons.io.output.TeeOutputStreamを使うと吉。
289 :
デフォルトの名無しさん :04/04/17 00:35
イメージ同士の転送方法教えて下さい。 BufferedImage dispbuff__; BufferedImage childdisp__; --- Graphics2D g = dispbuff__.createGraphics(); g.drawImage(childdisp__,10,10,???); childdisp__をdispbuff__に転送したいです。 ???の部分のImageObserverってわざわざ拡張クラス作らないといけないんですか? 簡単に転送する方法おしえてください。
>>290 ありがとうございます。nullで行きたいと思います
>>288 ぉおおっ!これはまさに求めていたクラスかも。
使用させていただきます。
ありがとうございます。
>>277 Tomcatは某企業が作ったIISとかいう脆弱なものとはちがって比較的安全です。
最近のLinuxディストリビューションにはインストールすると最初からTomcatが入っているものがよくあります。
294 :
デフォルトの名無しさん :04/04/17 02:24
たすけてください。javaアプレットで public void paint(Graphics g) { mainframe__.createDisplay(); //A g.drawString("アプリケーション実行中",10,10); } Aの行を加えただけで、drawSringのメッセージが表示されなくなる ばかりか、画面が更新されなくなってしまいます。 で、そのcreateDisplay関数ですが。 public final BufferedImage createDisplay() { return null; } と、何にもしてないのです、にもかかわらずこのような現象が起きます。 これについて考えられる原因があったら教えて下さい。
すみませんmainframe__がnewされてないだけでした…
mainframe__がぬるぽになってるとか?
init()をInit()とうっかり書いてしまってオーバーライドで呼ばれなかったようです。 誰かガッとひっぱたいてください。
298 :
デフォルトの名無しさん :04/04/17 13:08
スレ違いかもしれませんが、sunのjavaのsdkの旧バージョンが落とせる所ないでしょうか? 探しているのはj2sdk 1.3.1.05(Linux)です。 よろしくお願いします。
>>298 なぜ旧バージョンが必要なんですか?
最新版でいいんじゃないですか?
300 :
デフォルトの名無しさん :04/04/17 13:22
_, ,_ ガッ
( ‘д‘)
⊂彡☆))Д´)
>>297
旧バージョンが必要になるってのはいろいろあるよ たとえば1.4.2_04はNT未対応で1.4.2_03は対応してるとか 現行動いてるのが1.3だからとか 仕事してない人は常に最新版でいいだろうけどね
>>302 Javaにはバージョン間の互換性がないのですか?
Javaに限らず言語の仕様で無制限の下位互換はしてないわな。
>>304 だからこそ最新バージョンでいいんじゃないの?
上位互換してない言語ならクソだけど、
Javaに限ってそんなことないよね?
互換性が売りなんだし。
>>305 たとえばすでに動いているシステムが1.3.1だったとする
それようのアプリ開発を依頼された時、君は1.4.2で開発するかい?
サーバーを1.4にあげるってのは無理だと思ってくれ
そこが分からないのならいつまでたっても平行線だ
win32だって完全な互換性はなかっただろ?
それと同じことだ
既に動いているのは1.3.1をそのまま使って 新しく作るのは1.4.2を使えば良いじゃん?
だめだこいつ・・・
>>305 例えば APサーバが 1.3 以外はサポートしないとか、そういうの知らんのか?
数億円の損害が出た後、動くと思ってましたじゃすまないよ?
>>310 J2EE のようなシステムではなくてフリーの Java アプリケーションの
ようなものを言ってる?
例えばサーブレット/JSPコンテナを提供してくれるフリーのレンタルサーバがあったとしよう。 君はそこを使って、自分で作ったWebアプリケーションを公開できる。 このときレンタルサーバで動くアプリケーションサーバが1.3.1_05で 動いていたとする。その場合君はどんな環境で開発する? 1. 絶対最新の1.4.2_0x。互換性?そんなもん問題になるわけねーだろ。 問題が出たらその時直せばいいや。 それにサーバの管理者が最新のSDK使わないのが悪いんだよ。 2. しょうがないので運用環境と同じ1.3.1_05。互換性の問題が気になるからな。 ホットコード置換とか便利な機能がある1.4.2系での開発をしてもいいが、 公開前にローカルの環境で互換性のテストができるよう運用環境と同じSDKは 確保しておきたい。
JREやAPIのバージョンが指定される理由は色々あるな。
>>311 とか
>>314 のほか、既存システムが旧バージョンのJREやAPIで動いているが
互換性テストの工数を掛けたくないので古いバージョンを使うとか。
未だに1.1系 & サーブレットAPI2.0以前(JSDKとか言うんだっけ?)で動いているシステムを
サポートしている人もいるそうだし。
上位互換性あれば1.3をサポートするAPServerは1.4でも動くんじゃないの? もしかして動かないの?
たとえ互換性が完璧であってもサポートしてない環境では動かさないもの 動かす場合は完全に自己責任 それくらいわからんか?
>>317 互換性が保障されてるなら、簡単にサポートできるはずでしょ?
サポートしないって事は何か問題あるんじゃないの?
極端な言い方すると、上位互換性が確保される限りJDKの将来のバージョンにわたって 全てサポートしますって言いきれるんじゃない?
サポートの手間とか検証とかいろんなところがからんでる 100%完全互換性がありますという発表を鵜呑みにして動くヤツはいない どうやらちみはお子さまのようなんで社会に出てから同じ質問したほうがいいよ
鵜呑みに出来ない発表するのか!! JAROに訴えてやる!!
>>320 今知りたいんだけど?
物知りの人はこの板にめったにいないんだから、
今聞いちゃだめかな?
別にバージョンごとの違いを完璧に把握していて、 下位互換のアプリを組むとき絶対に、上位バージョンで修正・付加されたものは組み込まない自信があるならそれでいいんでないの? 俺は開発環境自体を合わせるし、最低限運用バージョンでのテストもせず、 自分は絶対間違えないなんていってる香具師は信用すらしないが。
>>322 お前は最終的に何が聞きたいんだ。明確に言ってくれ。
物知りの人と同等とは云わずとも 相応の知識(常識)がないと 「話」ちうものは理解できないのよ
ここは初心者質問スレだよ? 質問の仕方は理解してるか?
327 :
デフォルトの名無しさん :04/04/17 17:59
javaアプレットについて質問させていただきます。 --- abstract public class AppletMsgBase extends Applet implements MouseListener abstract void onInitApplet(Frame mainframe); このクラスをpackage test;に含め、.classファイルを作成しました。 --- その後 import test.*; public class CrtEditApp extends AppletMsgBase のクラスを作成し、仮想関数もしっかりオーバーライドしました。 --- その継承クラスをコンパイルしたら > CrtEditApp.java:3: CrtEditApp は abstract として宣言する必要があります。 > onInitApplet(test.Frame) を test.AppletMsgBase で定義しません。 > public class CrtEditApp extends AppletMsgBase ^ となりコンパイル出来ません、基本クラスをパッケージに含めずに同じディレクトリで 同時にコンパイルした場合きちんとパスします。一体何がいけないのでしょうか?
>>326 機嫌を損なわないように丁寧な話し方をするように気を使うんだろ?
329 :
デフォルトの名無しさん :04/04/17 18:11
>>324 見てなかった。
互換性ないのに互換性あるっていうのはどういうことなのかが知りたい。
矛盾してると思うけど、なんか理由があるに違いないとも思う。
>>327 エラーメッセージの通りだろ。
オーバーライドしたつもりが別名メソッドになったりとか、確認すれ。
>>372 > onInitApplet(test.Frame)
このFrameもちゃんとパッケージ移動したほうを子クラスで指してる?
スーパークラスのonInitAppletにパッケージの外からアクセスできないから、 派生したクラスのonInitAppletは別のメソッドとみなされる。 protectedにすれ。
334 :
デフォルトの名無しさん :04/04/17 19:41
基本クラスに abstract protected void onInitApplet(Frame mainframe); と宣言したら通りました、ありがとうございます。 C++とは何かと使い勝手が違いますねー。
C++やってたくせにオブジェクト指向もろくに理解できんかおまえは。
コンパイラは1.4.2_04を使って、-sourceとか-targetで下位互換の コードを生成するのは何か問題があるのか?
C++も微妙だけどな。
>>336 それで解決するならいいよ
開発環境と動作環境と合わせるのは割と普通
そこがクリティカルならなおさら
検証とって確実に完全互換の部分でも金がかかるところでは俺は躊躇するけどな
>>320 お子様…人の言うことを全部信じる人
大人…自分も含めて、人間なんて(特に企業に所属する人間なんて)ウソツキの
ロクデナシばかり(いやでもそう振舞わないといけない)だということを知って
いる人
永遠にお子様で生きられたらいいのにねえ…
340 :
デフォルトの名無しさん :04/04/18 01:08
アプレットでちらつきを無くすため更新時の画面消去を無効化する方法を 教えて下さい。 VCではOnEraseGraund()をオーバーライドするだけでしたけど、 JAVAアプレットではどうやるんですか?
341 :
デフォルトの名無しさん :04/04/18 01:12
342 :
デフォルトの名無しさん :04/04/18 01:18
>>340 「ダブルバッファ(リング)」でぐぐってみな。
343 :
デフォルトの名無しさん :04/04/18 01:21
Java使う人はダブルバファリング好きですよね・・・ リソース食いまくるのに・・・ なぜなんだろう?
>>343 好き嫌いっていうか、それしか方法ないから。
345 :
デフォルトの名無しさん :04/04/18 01:25
>>343 おまえは
>>340 か?
好きっていうか、それ以外にちらつきを無くす方法をオレは知らない。
ダブルバッファリングは簡単だし。
346 :
デフォルトの名無しさん :04/04/18 01:26
あぁ Windowしかないんでしたね・・・
ページフリップそのまま使いなさい。変な作り込み入らんし軽いから。
348 :
デフォルトの名無しさん :04/04/18 01:31
ページフリップとはいったい何のことでしょうか?
質問者です。 ダブルバッファリングとはいわゆる裏画面とかバックサーフェイスとか言われる 領域のことでしょうか、 それをpaint()でぴたっと貼り付けている訳なのですが、 一瞬灰色くなってしまうためそれをやめたいのですが…
350 :
デフォルトの名無しさん :04/04/18 01:37
>>349 上にも書いてあるけど、ググるってことを身に付けろ。
なんでもWeb上に書いてある。英語わかればなおよし。
だいたいそんな感じだけど、直接画面に描画せずに、
Imageオブジェクトを作成してそこに描画する。
画面に描画するのはそのImageオブジェクト。
351 :
デフォルトの名無しさん :04/04/18 01:39
>>350 ということは、単に文字を表示するだけのために
Imageオブジェクトが必要になるのでしょうか?
もう少し洗練させたいです。
質問者です。 update()関数をオーバーライドすればできることがわかりました。 いろいろと失礼しました。
353 :
デフォルトの名無しさん :04/04/18 01:56
質問者のほうが高度な技術を持っているようですね。 いったいどういうことなんでしょうか?
>353 質問者が自己紹介して質問するわけじゃないから、 普通にあって当然だと思うけど。 それから、やろうと思えばできるけれど、作り込みで 美しくなくなったりバージョンアップ時の手間を 考えて高度な作り込みは言及しないという場合も ある。
>>352 できたんなら、まぁいいや。
ちなみに update() を上書きしても普通はちらつき解消したりしないので。
たぶん paint() でヘンな事やってんだろーと思われ。
356 :
デフォルトの名無しさん :04/04/18 02:06
>>354 ご丁寧にどうも。
ところで、ページフリップとはいったい何のことでしょうか?
>>343 今時は Java に限らず、普通はバッファリングして切り替えるよね。
言うほどリソースも食わんし。
昔は走査線の動きを把握して垂直同期中に書き換えるとかもしてたみたいだけど。
358 :
デフォルトの名無しさん :04/04/18 02:15
>>357 そうですか?
.NETでは数個のコンポーネントがダブルバッファを採用したことについて議論を呼びましたが・・・
普通にバファリングするのはJavaだけの常識ではないのですか?
>>356 「ダブルバッファリング フリップ」とかでググってみれば分かると思われ。
>>358 あー、なんだ。コンポーネントが勝手にダブルバッファリングするので、
コンポーネントユーザはダブルバッファリング使わんで良いのが普通、
とかそーゆー話か?
361 :
デフォルトの名無しさん :04/04/18 02:19
>>359 ページフリップそのまま使いなさいと書いてあるのですが?
362 :
デフォルトの名無しさん :04/04/18 02:20
>>360 そうではありません。
今までのコンポーネントはダブルバファリングを採用していませんでした。
.NETで突然採用されたので議論を呼びました。
363 :
デフォルトの名無しさん :04/04/18 02:24
>>360 ダブルバファリングはコストがが高いので長い間禁じ手とされてきたのです。
.NETでついに解禁されたという驚きがありました。
>>363 > ダブルバファリングはコストがが高いので長い間禁じ手とされてきたのです。
はぁ。DirectX SDK が GameSDK とか呼ばれてた頃には既に一般的な手法だったな。10年前の話だ。
365 :
デフォルトの名無しさん :04/04/18 02:41
>>364 ゲームの画面とGUIコンポーネントはまったく別のものです。
366 :
デフォルトの名無しさん :04/04/18 02:46
Java使いの実力が良くわかりました。 本日はどうもありがとうございました。 追伸 余計なことかもしれませんが、もう少し基本を学んだほうがいいですよ。
>>365 詭弁だな。問題はダブルバッファリングが禁じ手だったかどうか、だろ。
ダブルバッファリングは長い間一般的な手法だった。
っつか、ダブルバッファリングなんてゲーム以外ではメディアプレイヤーや、
もしくはハデなユーザインターフェイスが必要なアプリとかぐらいでしか使わんと思うが。
ダブルバッファリングよりフリップを使ったほうが良いの?
369 :
デフォルトの名無しさん :04/04/18 03:44
BufferedReaderクラスについて教えて下さい。 ・・・とその前になんで java.io っていうやつがいるのかよくわからん。 APIには・・・文字、配列、行をバッファリングすることによって、文字型入力ストリームからテキストを効率良く読み込みます。 ってあるんだけど「バッファリング」って何のことですか?
370 :
デフォルトの名無しさん :04/04/18 04:12
>>369 Rubyスレで聞いたほうがいいですよ。
少なくとも嘘教えられる事はないですから。
>>369 > java.io っていうやつがいるのかよくわからん。
パッケージ名ね。import java.io.BufferedReader しておけば付けなくても良い。
> ってあるんだけど「バッファリング」って何のことですか?
この場合はメモリ領域を用意しておいて、そこにあらかじめデータを読み込んでおくことで
BufferedReader のユーザがデータを小出しに読み込むときに
いちいち大元のストリームの read() を呼ばなくても良くするので効率がよくなる。
372 :
デフォルトの名無しさん :04/04/18 04:25
ダブルバッファを知らない厨が知ったかぶりするスレはここですか?
374 :
デフォルトの名無しさん :04/04/18 04:35
>>373 >>367 とか嗤えますよね。
>もしくはハデなユーザインターフェイスが必要なアプリとかぐらいでしか使わんと思うが。
本当に何もわかっていないらしいです。
ダブルバッファってのは画面の描画が遅いときに 見えない画面に書いて一気に転送することで 書いている途中を見せないようするテクニック。 画面の描画が遅いJavaにとってはどこであれ必須のテクニック
377 :
デフォルトの名無しさん :04/04/18 07:46
Javaってすげーなw
378 :
デフォルトの名無しさん :04/04/18 09:42
劣った言語だよ。
379 :
デフォルトの名無しさん :04/04/18 09:43
一応書き直しとくか、劣った環境だよ。
380 :
デフォルトの名無しさん :04/04/18 10:40
こんばんわ。
SunのNetBeans IDE 3.5.1に、
ドコモのiAppli開発環境のモジュール(下記)を入れたいと思います。
"iαppli Development Kit for DoJa 3.5"
http://www.nttdocomo.co.jp/p_s/imode/java/tool_foma2.html をインストールしたいのですが、
しかし、インストールする際、ドコモのインストーラが、「NetBeans IDE 3.5.1」を認識しないので、
モジュールをインストールできません。
一応、取り扱い説明書には、「Sun One Studio4にインストールする」とかかれておりますが、
NetBeansとの違いはないので、インストールできると思うんですが…。
この辺の処理に関して、詳しい人は居ますか?
いましたら、どうやったらNetBeansにドコモのSunONE Studio4,CEモジュールがインストールできるのでしょうか?
ところでNetBeansとSun One Studioって同じものじゃないよね 一応目的は同じだけど 出来るとすればSunOneStudioを入れてから モジュールを入れてそれを取り出してNetBeansに入れるとか
>>380 Eclipseのプラグインをつかって開発することをお勧めするよ
同じじゃないってのは間違いでした でもinstallされるフォルダも違うし 登録されるレジストリの違うから認識されない と言い訳してみるw
すんませんw スレ違いでした。 とにかく、SunOne4をインストールしてみます。 古いっぽいですが。
たかがGUIごときで鬼の首をとったように喜んでいる厨はドトネト厨か
なんか口調がダブルバッファ君とお子さま君と似ているような気がする たぶん釣り
釣りじゃないよ。 マジだよ スマン、sageます。
「GUIごとき」とかいたからってそう反応するのもオコチャマ
なんにせよここにきている人が神様とは限らない 得意分野はそれぞれあるだろうしそこからはずれるとまずダメ 今までの傾向からguiまわりとかsoundまわりは弱いね んで、自己解決したようだけどpaintを使おうと思ったこと自体が間違い マニュアル読めばこれもすぐに解決できるし検索すればすぐに分かる ここはダブルバッファがどうのこうのとは別の問題 1.4からはダブルバッファが標準になったけど>Swing まず質問者が元の環境からしてちゃんと書いてないのも問題 アプレットといっても大きく分けるとAppletとJAppletとにわかれるし 描画したいコンポーネントがどこかすら書いてない あとよくサンプルでpaint系イベント部分で いろいろと処理するコード書いてるのみるけどあれはやめたほうがいい レスポンスが悪いguiになる
つーかあんまりJavaでシコシコやることでもないからな
392 :
デフォルトの名無しさん :04/04/18 13:42
RedHat9にTelnet接続して、以下のプログラムをコンパイルして 実行すると文字化けしてしまうのですが、どうすればいいでしょうか? ---------------------------- public class HelloWorld { public static void main( String args[] ) { System.out.println("日本語出力テスト"); } } ---------------------------- $ java HelloWorld ?????e??
クライアントと接続先との文字コードが一致していない これはjavaの問題じゃないぞ こういったのは接続ソフトの方の文字コードの設定しなされ
>>393 ありがとー、ズバリですた。
FTP送信時にEUCに変換したらいけますた
395 :
デフォルトの名無しさん :04/04/18 14:30
すんません、また質問です。
RedHat9にTelnet接続して、以下のようなプログラムをコンパイルして
実行すると文字化けしてしまうのですが、どうすればいいでしょうか?
Sjisページのソースを読み込んで表示したいのです。
--------------------------
URL sjisPage = null;
BufferedReader bufr = null;
sjisPage = new URL("
http://www.msn.co.jp/home.armx ");
bufr = new BufferedReader(new InputStreamReader(sjisPage.openStream()));
String line = bufr.readLine();
System.out.println(line);
--------------------------
つまりWindowsでMS932で開発してそのコードをFTPで変換して持っていった訳か FTPクライアントソフトを信頼してない訳じゃないがあまりオススメできないな どのマシンでも同じようにしたいのならUTF8をデフォにしたほうがいいような そもそもtelnetで接続コンパイル(コード送ると言うことはそういうことだよね?) ということからしてあまりいい開発環境ではない 思い切ってWindowsですべてコンパイルしてclassファイルだけ転送ってのはどうだ? jniや細かい環境依存コード書かない限り問題になることはほとんど無いだろう
>>395 > bufr = new BufferedReader(new InputStreamReader(sjisPage.openStream()));
bufr = new BufferedReader(new InputStreamReader(sjisPage.openStream(),"SJIS"));
>>395 それはredhatとか環境に関係なく文字コード依存するために危険なコードだ
必ずsjisというのならsjisに変換すればいいだけ
ブラウザで文字コードの完全な判定が出来ないのと同じ
ちなみにこれもjavaに限った話ではなくてCだろうが.netだろうがperlだろうが同じこと
仕様(やりたいこと)を細かくあげてみそ
399 :
デフォルトの名無しさん :04/04/18 14:56
みなさん、レスどうもです。
>>396 Win2Kでソース書いたのをFTPで鯖に転送して
コンパイルして実行してます。
Win側でコンパイルしてからやってみますたがダメですた。
>>397 変えてみましたが、ダメですた。
>>398 最終的にはあるページのhtmlソースを取得・解析して必要部分を
テキストファイルに出力したいと思ってます。
今は、↓こんな感じで標準出力にだしてます
$java testProgram > test.log
>399 人の特定ができないのにそんな約束意味ないよ。 スターリンとヒトラーとルーズベルトの3人の話を 思い出して対応してくれ。
>>400 つまり文字コードは分かっていないってことでしょ?
自動判別も完璧じゃないし結局人の手が入ることになるよ?
ブラウザと同じ原理
servlet/jsp使っているようなところならまずcharsetがちゃんと入っているから何とかなるんだけどね
>今は、↓こんな感じで標準出力にだしてます
>$java testProgram > test.log
これ標準出力だと大丈夫でテキスト出力が化けるってこといってるの?
その書き出す文字コードが何か分かってる?
そしてそのテキストを見るのは誰?
ftpクライアントで文字コード変換して送るのはやめなされ
ms932のままで送ってコンパイル指定でms932をいれるのがいい
まずWindowsでちゃんと動いているのがLinuxではおかしくなってるのかどうかはっきりしてくだされ
Windowsで問題なく動くのがLinuxでダメという状況以前のお話な気がする
>>402 取得先の文字コードは今回はsjis固定っす。
>これ標準出力だと大丈夫でテキスト出力が化けるってこといってるの?
標準出力も化けてます。
>その書き出す文字コードが何か分かってる?
eucですよね
>そしてそのテキストを見るのは誰?
とりあえずは私がlinux上でみれればOKです。
>ms932のままで送ってコンパイル指定でms932をいれるのがいい
了解っす。けどダメですた。
>まずWindowsでちゃんと動いているのがLinuxではおかしくなってるのかどうかはっきりしてくだされ
Winでは文字化けせず表示されます。
404 :
デフォルトの名無しさん :04/04/18 15:40
>>404 がんばっていろいろ試してはいるんですけど、
なかなか直らなくて・・・お手数かけます。<m(_)m>
>>404 自分で解決できないから書き込んでるんじゃないの?
俺は402だがこの程度の問題ではさすがにつまずかないよ
文字コードはSJIS固定ならまずはバイナリ取得してみてそれ表示してみそ
それが真にSJISなのかどうか
Winで問題ないと言うところからして取得後のデータがデフォルトキャラクタセットだから
問題ないだけというように見えるな
デフォルトキャラクタセットを使っているところをよーくみてみそ
javaアプレットで鎖線の円を描きたいのですが どうしたらよいでしょうか、ご教授願いたいのですが
>>406 ???
んーよくわからないことばかりですけどやってみます。
>>407 java.awt.BasicStrokeってのみてみそ
410 :
デフォルトの名無しさん :04/04/18 16:28
>>406 Javaには良いデバッガがないのでしょうか?
NetBeans、Eclipse、JBuilderあたりがデフォ もしかしてコマンドラインベースで開発していた?
>>409 わかりました、どうもありがとうございます
413 :
デフォルトの名無しさん :04/04/18 16:42
>>411 スレッドのデバッグがしたいのですが、ちょっと困っています。
統合ツール使えばステップ実行とか変数の中身とかみれるし そうでなくてもlogつかってトレースというのも手
415 :
デフォルトの名無しさん :04/04/18 16:59
>>414 あのぉ・・・
初心者なので、もうちょっとわかりやすく教えていただけないでしょうか?
スレッドをデバッグしたいのですが・・・
417 :
デフォルトの名無しさん :04/04/18 17:11
>>416 やっぱりただのエンコーディング問題だけだったか
ついでにいえばその取得コードは一部のコードポイントの違い「〜」とか(1)とか機種依存部分はいってる?
そのへん詳しく分かってないのならほとんどの場合MS932指定した方がいいよ
正確に言えばwindows-31jとか
注意しなきゃいけないのがSift_JISは1.4.0と1.4.1以降で扱いが違うってところかな
その参照しているページはShift_JISがms932になってるけど今は違う
420 :
デフォルトの名無しさん :04/04/18 17:28
>>418 スレッドのデバッグについて教えていただけないでしょうか?
とても困っています。
環境は?
422 :
デフォルトの名無しさん :04/04/18 17:33
>>421 Eclipse使っていますが、他の方法でもかまいません。
スレッドのデバッグって何だろう、 と言ってみるテスツ。
NetBeansならなんの設定しなくてもブレークポイント指定すれば そこで自動的に止まってスレッド、スタック、すべての変数が画面に出るから追いかけれると思う 正直初心者はNetBeansのほうが何も設定しなくていい分向いている気がする Eclipse固有のデバッグ方法ならEclipseスレいったほうがたくさん答えが返ってくるかもね
425 :
デフォルトの名無しさん :04/04/18 17:43
>>423 ブレークの条件式にスレッドを加えたいです。
インプレースリプレイスメントが使えるとなおいいのですが・・
426 :
デフォルトの名無しさん :04/04/18 18:21
そのスレッドの見たいところにブレークポイント設定すればいいんじゃ?
428 :
デフォルトの名無しさん :04/04/18 19:18
>>422 Eclipse スレ行って聞いた方が早くないか?
430 :
デフォルトの名無しさん :04/04/18 19:32
>>429 Eclipseは、標準構成で出来ないようなのです。
たぶん、プラグインもないみたいです。
それで、別のほうほうでもしかたがないかと・・・
ブレークポイントでとめて追うのが普通のデバッグじゃないの?
432 :
デフォルトの名無しさん :04/04/18 19:53
今日も釣りがいる
ミョーな雰囲気になってきますた。
435 :
デフォルトの名無しさん :04/04/18 20:00
>>431 特定の場所を実行するときに変数の中身を表示するだけなら、
通称printfデバッグといわれているものでも良いんですが・・・
printfサポートされるらしいですしw
>>431 さんは普段printfデバッグと同じことをするために
デバッガを使われるのですか?
あほな質問だと思われるでしょうが、
初心者ですのでなにとぞよろしくお願いします。
別にデバッグできるならprintデバッグでもかまわんよ。 ただ、あらゆる変数のデータがみれる時点でデバッガのほうが便利だろ。 ステップで関しすることもできるけど、同じようなことをprintでやろうと思ったら printをすべての行に入れなきゃならん。 どっちにしろprintデバッグがまず基本なんでデバッガがIDEでも使えないのなら そっちでやったら?デバッガ使うことに興味ないようだし。
437 :
デフォルトの名無しさん :04/04/18 20:04
>>436 使えるデバッガを探しています。
条件式は必須なんですけど・・・
釣りは放置で。
439 :
デフォルトの名無しさん :04/04/18 20:26
>>438 釣りじゃ有りません。
だいぶ探したのですが見つからなくて困っています。
それで質問しました。
じゃあ、お前には無理だな
441 :
デフォルトの名無しさん :04/04/18 20:51
>439 watchの条件式でスレッドの変数使いたいのか? なんか話が通じてないようだよ。オレもわからん。
スレッドのデバッグがしたいって、具体的に何がしたいのか・・・・ 441自身はわかってるんだろうけれど、他の人に伝わってないとこに 気づいてくれ。
445 :
デフォルトの名無しさん :04/04/18 21:09
>>444 これです。
どうもありがとうございました。
条件付きブレークなら最初からいってくれ Eclipse、NetBeansともに問題なくできるぞ たぶんJBuilderも大丈夫だろうな
447 :
デフォルトの名無しさん :04/04/19 02:45
すいません、よくわかんないので教えて下さい。 プログラムというよりサーバー側の技術なんですけど、サーブレットで作った HPがうまく表示されません。プロバイダはOCNのページONです。 TOMCATを自分のパソコンのCドライブの直下にいれてやるとうまくいく。(これは ローカルの話なので関係はないのですが。。。、)
エラーメッセージは Method Not Allowed The requested method POST is not allowed for the URL〜 です。
あ、早急、レスありがとうございます。 よくわかってないのに偶然できたのを進めていったらやっぱり・・・・。 ってとりあえず、勉強不足のものにありがとうございました。
char型の値からそのUnicode表現を文字列として取得するようなAPIはありますでしょうか? つまり'a'から"0061"を、'j'から"006A"(または006a)を得たいのです。 Cならsprintfを使うところですが、Java1.4ではどうすればいいのでしょうか?
>>451 そのものズバリはないので
String hex = Integer.toHexString(c);
String code = "0000".substring(0,4-hex.length()) + hex;
とかするなり適当にやってくれ。
はじめまして、よろしくお願いします 今、Java勉強しているのですが、難問にぶつかっております @Javaで学校の時間割表をつくる A管理者は(テキストの)Webページで入力ができる B生徒がブラウザ上で閲覧できる なんですが、@のHTML(form.html)からBへの行こうがうまくできません、 jspを使って普通の掲示板の縮小(国語 など、2文字しか入力させない)から なんどプログラムの変更をしてもTomcatが503エラーを起こします、、、 なんかよい方法がありましたらお力添えください。。。
うお、Integerの中にtoHexStringがあったんですね。 Characterのメソッド調べてIntegerはスルーしてました(汗 多謝です。
基本情報処理のjavaを勉強しようと思うのですがJBuilder,Eclipseどちらがいいでしょうか? C#しかやってないのでjavaの開発環境のことがよくわから知らないので困っています。
増えるときは急に増えるもんだね。 荒らしかこいつら
457 :
デフォルトの名無しさん :04/04/19 10:04
>>411 Emacs + Amtをなめとんのかい
459 :
デフォルトの名無しさん :04/04/19 10:35
一通り入門書を終えたんだが、次になにを勉強したら良いか 悩んでいます。 個人的にはswing、サーブレットなどが面白そうと思うんですが 仕事の需要、将来性を含めて考えると 何がお勧めですか?
462 :
デフォルトの名無しさん :04/04/19 10:44
463 :
デフォルトの名無しさん :04/04/19 13:27
アプレットで何とかデータを保存する方法を検討しています
cgi(perl)をアプレットから呼び出して保存するという方法があることを知ってやっています。
保存処理用cgiの開発は完了しています(正常動作はブラウザから確認済み)。
しかしどうしてもアプレットからcgiをよび出すことができません。
URL url = new URL("
http://hpcgi3.nifty.com/************/postsaving.cgi ");
URLConnection urlconnect = url.openConnection();
urlconnect.setDoOutput(true);
OutputStream os = urlconnect.getOutputStream(); //(A)
//PrintStream pout = new PrintStream(os);
//pout.print(poststr);
//pout.close();
(A)の部分でException例外が投げられます。Exception.getMessage()で調べてみると
> access denied (java.net.SocketPermission hpcgi3.nifty.com resolve)
となっていました、サーバーから何か拒否られているのでしょうか?
なんとかサーバーにファイルを保存する手だてがありましたら教えて下さい。
ちなみにクラスファイルがあるパスは
http://homepage3.nifty.com/************/aaa.class です。
一行目の「データを保存」は「データをサーバーに保存」の間違いです。
サンドボックス内ではアプレットと同じ鯖にしか接続できないぞ
>>467 cgi からアプレット渡すよーにすればいーんで無いの?
カレントディレクトリというか、ホスト名が違う (homepage3.nifty.comとhpcgi3.nifty.com)ので セキュリティマネージャに怒られている予感。 niftyはよく知らないんだが、「classファイルがcgiと見なされてしまう」 という問題が起きない場所でないと無理か。
>>469 使うクラスファイルを全部jarで固めて、
固めたjarの内容を返すcgiを
http://hpcgi3.nifty.com/ に置いて、
print "<BODY><APPLET archive='applet.cgi' code='CrtEditApp.class' width='800' height='600'></APPLET></BODY>";
するんじゃダメかな?
472 :
デフォルトの名無しさん :04/04/19 15:08
linuxでコマンドラインからjavaプログラムを実行しようと してるのですが、カレントディレクトリ以外にあるプログラムを 実行しようとするとエラーになってしまいます。 クラスパスが適切でないのかと思ってはいるんですが、 Webで調べてもカレントのを実行している例しかなくて 困ってます。 最終的にはcrontabを使って定期的に動かしたいのですが どうすればいいでしょうか? ↓現在こんな感じです。ルートから実行してます。 --------------- $ java /home/hogehoge/javaClass Exception in thread "main" java.lang.NoClassDefFoundError: /home/hogehoge/javaClass ---------------
javaはクラス階層がディレクトリそのもの そしてクラスパスはそのルート階層を表すもの
>>472 java -cp %CLASSPATH%:/home/hogehoge javaClass
475 :
デフォルトの名無しさん :04/04/19 15:55
>>457 マジレスありがとうございました!!
C#というもの自体今日知りました。。。
今回はJavaの課題ということもあり、JavaとJspとHTMLだけで作業を
言われているので残念ながら、使うことはなさそうですが、
C#の話を学校でしているとわたしが住んでいる九州ではあまりやっている人
がいないので出来ることにはこしたことないといわれましたので、
来月あたり勉強したいとおもいます!!
しかし、Javaって難しいですね、、、
空白作って30ッコもコンパイルエラーるつくりました。。。。
ありがとうございました
DBに接続する事について聞きたいのですが、接続し、その後、接続をクローズして、 また接続しようとした時、JDBCのロードや、接続をしないといけないのですか?
プーリングしろ。
479 :
デフォルトの名無しさん :04/04/19 21:56
>>477 良くわからんが、普通DBにアクセスするときは毎回接続なんてしないと思うけど。
接続をクローズするってのはどういう状況で?
ドライバのロードは1度で十分だが、前に使ったコネクションを破棄したのなら DriverManager.getConnection()はもう一度呼び出さないとな。
JAVAアプリケーションの起動時にDBにアクセスして、接続をクローズしてました。
そのあと、ユーザが何か(Select)等をした時、またDBにアクセスする為に
接続をしないといけないのかなと思ってました・・・
480氏のレスで何となく分かりますた・・・
>>478 、479、480
thxです
C/Sのようなアプリは接続しっぱなしってのがおおいよ
>>482 なるほど〜、今やってるのがC/Sなんで、接続・切断を繰り返すよりも、
接続しっぱなしの方向で考えてみます。
>>483 たまに気がつかないうちに切れてることとか、なんかの拍子で切れちゃった
ようなことにも対応した方が良いかも〜。DBシンデルかもしれないし、そうでな
いかもしれないし。
485 :
デフォルトの名無しさん :04/04/20 00:33
>>471 すばらしいヒントありがとうございます。
ためしてみるのに時間がかかってお返事遅くなりましたが、
アプレット起動htmlとjarバイナリーを送出するcgiを作成し、
全てcgiで送ってみたところサーバーセーブ用cgiにみごとアクセスすることができました。
しかしPOSTデータを送ることがまだできていません。できたら報告します。
>>484 そのへんは業務アプリだとまず作り込まない部分だな
ネットワークの切断などが起きる場合ネットワークの方をあわせるというか
サーバーが死ぬのを前提にはまずつくらんしそのへんは環境が悪いとか
ソフト開発とマシンメンテ部隊がまずべつなので縦割りのすばらしい押し付け合いが
ま、javaの場合かならずDBアクセスに例外処理書かないといけないので
スタックトレースさえ書き出していればなんとでもなるからいいが
487 :
デフォルトの名無しさん :04/04/20 00:58
ejbのjarで、内部に依存するjarを格納させる方法ってないの? manifest.mfのClass-Path: じゃjarの外部になっちゃうし。 earにするなり、jarに展開して格納させればいいんだけど、 できれば個々のejbのアーカイブ毎にうまく完結させたいと思って。 個別にearにして、後で複数のearをマージして一個にすべきかな。 何でWEB-INF/libがあってEJBに相当するものがないんだよ! WebLogicだとAPP-INFなるものもあるらしいんだけど・・・
このスレに来ると自分の勉強不足を思い知らされる・・・
>ソフト開発とマシンメンテ部隊がまずべつなので縦割りのすばらしい押し付け合いが もうウンザリしますですよ。 企業での開発って、物自身が実現する機能の良し悪しより「責任の擦りあい」 が先にいくのですよね… 作りたくないんだったら作るな!いやいや作った挙句にゴミができるなんて、 貴重な人材資源の浪費だと思うんだよねぇ。
490 :
デフォルトの名無しさん :04/04/20 02:18
>>487 Jar 内部に入れた Jar を読み込むクラスローダを自作すればよい。
Runnableアプレットのinitの中で、強制終了か例外を発生させるには どうしたら良いのでしょか。
>>487 ear と application.xml
493 :
デフォルトの名無しさん :04/04/20 11:15
JVMについて調べています。 javaアプリケーション、 javaアプレットはクライアント側でJVMが稼動している というのは何となく解りました。 ではサーブレットの場合JVMはサーバー側かクライアント側のどちらで稼動してい るのでしょうか? サーバー側でネイティブコードに変換してから、クライアントにデータを送っているのか、 Javaバイトコードをクライアント側でネイティブコードに変換しているのかが解りません。 ご存知の方お願いいたします。
>>493 サーブレットはサーバ側で動く。
クライアントはサーブレットが生成するHTMLを見てるだけ。
>>494 と言う事は、サーブレットの場合クライアント側にJVMが無くてもOKということですよね?
ありがとうございます。助かりました!
"Swing は使えないんですか?" などと追加質問してくる悪寒
ここは初心者質問相談スレですが?
>>496 なるほど!そういう問題もありますね。
で、実際そのあたりはどうなんでしょう?
>>497 私に対してですか?
ひょっとしてこれは初心者以前の問題なのですか?
本当にJava初心者なんで、ここ以外には頼るすべが無く・・・。
>>496 のことは気にしなくていいぞ
かえって混乱させるはずだ
JSP/Servletは鯖でのみ完結するからユーザーにはjavaが動いてるとかまったくわからない
というか意識させたらだめ
cgiと同じって言えばいいかな
phpやperlなどの環境はクライアントにはいれてないよね?ってこと
webなんて携帯電話でも見るわけだし
>>499 確かにネットしている時は、そのあたりを意識した事がありませんでした。
私にも理解できる素敵な説明ありがとうございます!
501 :
デフォルトの名無しさん :04/04/20 15:54
漏の学校に「じゃばお」っていうアダ名の奴がいた。 なぜ、そんなヘンテコなアダ名なんだ? yoyoyoyoyoyoyoyoyoyoyoyoy yoyoyoyoyoyoy
ジャバウォック ジャバウォ ジャバオ じゃばお
やっぱないのか・・。
>>490 それだとEJBが依存するクラスを解決できないから却下だね。
アプリ鯖によっては使えるかもしれないけど、汎用的じゃない。
>>491 現実的にそれしかない気がします。
504 :
デフォルトの名無しさん :04/04/21 00:42
.java と ,class のアイコンがほしいんですが、 何かいいのありませんか?
Macのアイコンがかっこよかった
おれは紙に duke 君のついたアイコンを自作した
507 :
デフォルトの名無しさん :04/04/21 15:32
VisualAgeとか、VisualCafeって、落ち目なの? 数年前の記事しか、見つからないけど。 あと、無償版か、体験版をどこかで、落とせないかなぁ。
Java IDEのトレンドは1年単位で変わります。
それらは商用製品で確かに落ち目というか絶滅危惧種 現在進行形で落ちかかってるのがJBuilder 9,10で少しまともにしようとしたが7,8での儲け主義に走って ユーザーをかなり手放してしまった 商用系IDEはきつい時代になってると思うよ SunやIBMみたいにベースがオープン系でそれに付加価値つけて商用にしないと きついような気がする JBuilderが一番GUIエディットとコードとの切り替えが楽だと思うけどね とりあえずJSFの実装で後1年はなんとでもなるかもしれんが、その後は フリーの実装がでてきそうだ
>>509 サンクス、えろい人。
Eclipseとか、Forteについてのコメントもキボンヌ
FleeのIDEとしてはEclipseとNetBeansは自由に選んでいいと思う Forte(名前が2度変わって今はJavaStudio)は一時期無料だったのが それはもうなしなので商用版としてみるといい こちらはIBMのWebSphereとボーランドのJBuilderと同じターゲット 経費とかの問題で10万以下の製品ということであればJBuilderかJavaStudioしか 選べないと思うけど、これらもターゲットがまた微妙に違う JBuilderのうりは激安Togetherだと思うのでUMLまわりにポイントおきたいならそっち JBuilderはEJBは高い方にしかないのに対して、sunのは10万きってるやつにはいってる 普通にスタンドアロンアプリ、アプレット、jdbcならそれぞれ無料の環境で出来る
どうせならfleaのIDEの方がいいなぁw
たしかにForeeのが、いいw
ROやってるんで癖でFleeとかいちまった
'⌒ (・_・ ) ノミ
Appleはかなりクオリティ高いIDEを無償で配布してるね サードパーティにケンカ売ってるのだろうか
簡単にGUI作れるのはいいが、JBuilderの自動生成するコードはうんこのようだ。 EclipseプラグインのVisualEditorは比較的まともなコードを吐くが重い。
かくしてJavaアプリはGUIが糞と言われるようになる。
519 :
デフォルトの名無しさん :04/04/21 22:08
アプレットでVCのMFCのCWndのようなクラスってありますか?
JBuilderのどこがよくないの? 個人的にはデフォルトコンストラクタ必須でjbcl埋め込むのがだいっきらいで netbeansへ逃げたけど、そこくらいしか問題ないような イベント部分はバージョンによってはき出すコード大きく異なる
521 :
デフォルトの名無しさん :04/04/22 00:49
>>519 FrameやJFrame使えばウィンドウは作れる。
アプレット本体は単なるコンポーネント。
ただし、アプレットの生存期間に依存しているのでページの移動すると 独立したウインドウに見えていても消える アプレットのまま独立させたいのならwebstartが楽 あれはアプレットとアプリに対応しているから
ところで{}のブロックは main(String[] args){ } か main(String[] args) { } のどっちが正式なんですか?
>>523 言語仕様としてはどちらも正しい。
Sunの推奨は前者の方法で、{の前にスペースが入る。
main(String[] args) {
}
526 :
デフォルトの名無しさん :04/04/22 13:33
すいません、言語そのものの質問とは少し違うんですけど、 boolean ってどう読めばいいんですか?
英和辞書など引けば発音がのっとるがな
>>526 ブーリアンかな?
boolはブールって読んでるけど、、、
booleanって英語じゃなかったのか・・・英和辞典に載ってなかった。
530 :
デフォルトの名無しさん :04/04/22 14:19
>>531 Advanced Learner's はあくまでも英語学習者用辞書なので、
booleanみたいに専門用語だと載ってない場合もある。
ブールいやん
534 :
デフォルトの名無しさん :04/04/22 20:25
ユーザに割り当てた java.seruciry.PublicKey と PrivateKey を認証情報と 一緒にファイルか DB に保存しておきたいんだけどどうするのがお作法なんでしょ? シリアライズしてバイナリで格納で良いのかな (クラスバージョンの問題も あるのでシリアライズしたのは恒久ストレージに入れときたくないんですが)。
>>534 java.beans.XMLEncoderなんでどうでしょう?
とんでboolean
いまだとやはり
>>535 のいうようにXMLだろうね
log4jのログレベルを変えるためには 設定ファイルに何と記述すればよいのでしょうか?
542 :
デフォルトの名無しさん :04/04/23 07:32
AWTのComponentを継承して、自分でjava.awt.Buttonみたいな 部品を作りたいのですが、どこかにいいサンプルありますか? JDKのButtonのソースを追ってみたのですが、ちょっと複雑そうなので どこかにサンプルがあればと思いました。
543 :
おしえてください :04/04/23 08:24
import java.awt.*; import javax.swing.*; public class Sample2 extends JApplet {private JLabel lb; public void init(){ Container cnt = getContentPane(); lb = new JLabel(); lb.setText("ようこそアプレットへ"); cnt.add(lb);} JAVA初心者なんですけど、Container cnt = getContentPane(); のインスタンスはどこで作られるんですか? Container cnt=new Container cnt=getContentPane();っていうふうにしなくていいんですか? よろしかったら教えてください。getContentPaneはオブジェクトを返すって なってたからですか?
>>543 > JAVA初心者なんですけど、Container cnt = getContentPane();
> のインスタンスはどこで作られるんですか?
JApplet のコンストラクタかその辺。
> Container cnt=new Container
> cnt=getContentPane();っていうふうにしなくていいんですか?
しなくていい。
545 :
デフォルトの名無しさん :04/04/23 09:59
>>542 JButton じゃなくて Button ってことはネイティブの GUI を使うって事か?
それとも JComponent でもなんでもいいから、外観を好きなようにしたいってことか?
はっきりしなさい
546 :
おしえてください :04/04/23 10:03
547 :
デフォルトの名無しさん :04/04/23 11:52
writeint ((a+b)/cd); を字句解析したらどうなるのですか?
>>547 どこまで字句解析でやるかは人それぞれだと思うけど、
言語仕様の「字句構造」の要素に分けるとこんな感じ。
identifier : writeint
separator : (
separator : (
identifier : a
operator : +
identifier : b
separator : )
operator : /
identifier : cd
separator : )
separator : ;
PCMを再生するにはAudioClip以外ではどんな方法があるんでしょうか? ゲームのSEを鳴らしたいのですが、AudioClipでは遅延が凄くて タイミングが全く合いませんでした。
>549 Java Soundを使うという手があるけど。 サンプルどこにあったかな・・・・・
> ゲームのSEを鳴らしたいのですが、AudioClipでは遅延が凄くて > タイミングが全く合いませんでした。 Javaで作る以上それは避けられない。
>>551 自分のスキルのなさ棚に上げてよく言うよ。
>>551 JavaSoundしらない人間か
Jvasounddemoでもたちあげてみろ
>>549 ,550
JDK1.5のJavaSoundにいくのが楽。
JavaSoundが完全にハードウェアアクセラレーションがかかるのが1.5から。
Windowsの場合、JMF使えば低遅延の音出力はずっと前から出来てたんだけど
専用APIだからねえ。
あとlinuxの場合は1.4くらいのときからエロいひとが
ALSAかなんかを使った爆速なJavaSound実装作成してる。
j2sdk1.4でじゃjavax.mailはサポートしていないのですか? Sessionでjava.lang.NoClassDefFoundErrorがでてしまいます。 ご教授願います。
556 :
デフォルトの名無しさん :04/04/23 17:10
559 :
デフォルトの名無しさん :04/04/23 17:38
テキストコンポーネントに画像入れられないですかね? テキストコンポーネントのDocumentオブジェクトに。
どれのことを言ってるのかわからんが Swing だったらほとんどあらゆるコンポーネントに画像を入れられる。 でも例えばスクロールバーに入れてどうするんだって話もあるがな。
Swing遅いから嫌だな〜。
>>562 自分のスキルのなさを棚に上げてよく言うよ。
マシンスペックの低さを棚に上げてよく言うよ。
565 :
デフォルトの名無しさん :04/04/23 21:44
JAVAでMP3とかのオンデマンド配信はどうやってやればいいですか?使用した方がいい言語・システムあれば教えてください。
JAVAでと書いてあって使用した方がいい言語を聞くのはギャグですか?
Java/RTP/RTSPとかの単語でぐぐってみる。
>>565 意味が分からない。オンデマンドならウェブサーバに置くだけじゃないの。
アンチ?
571 :
デフォルトの名無しさん :04/04/23 22:45
アプレットで文字を入力するエディットボックスを使うにはどうすればいいのでしょうか? また独自のエディット機能を作りたいため、それを使わず、 IMEのウインドウ(日本語入力途中に出てくるヤツ)を指定の位置で出し、 またその結果を受け取ることはアプレットでは可能でしょうか?
>>571 > アプレットで文字を入力するエディットボックスを使うにはどうすればいいのでしょうか?
java.awt.TextField(一行) java.awt.TextArea(複数行)
Swing 使う場合は javax.swing.JTextField(一行)
javax.swing.JTextArea(複数行) javax.swing.JTextPane(HTMLも描画できたり)
> また独自のエディット機能を作りたいため、それを使わず、
> IMEのウインドウ(日本語入力途中に出てくるヤツ)を指定の位置で出し、
> またその結果を受け取ることはアプレットでは可能でしょうか?
JRE 1.2 以降が必要。詳しくは java.awt.im パッケージをみてください。
>>572 自分のスキルのなさを棚に上げてよく言うよ。
俺のケツ毛の剛毛さも知らずによく言うよ。
釣られてるのはお前だってのにわかってないようだな
>>577
>>579 自分のスキルのなさを棚に上げてよく言うよ。
GZIP で圧縮転送するサーブレットフィルタ作ろうと思ったけど、 Tomcat の JSP プロセッサってオリジナルの HttpServletResponse#getWriter() で返ったやつにしか書き込めないのな。 public ServletOutputStream getOutputStream(){ return new GZIPServletOutputStream(super.getOutputStream()); } public PrintWriter getWriter(){ return super.getWriter(); // 以下だとダメらしい // return new PrintWriter( // new OutputStreamWriter(this.getOutputStream(), response.getCharacterEncoding()) // ); } 下層が Writer じゃ圧縮しようがねーよ。
585 :
デフォルトの名無しさん :04/04/24 08:49
tomcatを起動したら、環境変数の領域が足りません ってでて、起動できません。どうしたらいいですか?
587 :
デフォルトの名無しさん :04/04/24 11:45
独習JAVAが最強、この一冊でJAVAのスペシャリストになれます
javaで作ったアプリケーションを、ダブルクリックで 開けるようにするにはどうすればいいんですか? jarファイルを作っても開こうとしても、 「このファイルを開けません」としかでません。 jarを使う方法でなくてもいいので教えてください。
本一冊でスペシャリストになってしまうJAVAっていったい・・・ だいたいあれってSWINGとか扱ってないでしょ
jarファイルならWindowsかMacならダブルクリックで開くよ 環境とかかいてもらわんと
jarファイルなのに開かないんですが・・・。 環境ってこんな感じでいいですか? Windows XP java 2 SDK SE V1.4.0_01
Main-Class: hoge.Fuga を指定してないんじゃ?
593 :
デフォルトの名無しさん :04/04/24 13:33
manifestファイルで Main-Class: mainメソッドを持つクラスのファイル名 を指定するってので合ってますか?
あってる、やってみ。
やっぱりjarファイルは作れるけど開けません・・・。
そもそもサンプルのjarとか開けるのか?SDK最新を入れ直せ。
サンプルの開けなかったので入れ直します。
お手数かけました。
>>596
598 :
デフォルトの名無しさん :04/04/24 23:12
質問があります 一度起動して処理が終了したスレッドのrunメソッド(start)をもう一度呼びたいのですが runメソッドが起動しません何ででしょうか? public class Test{ public static void main(String[] args){ MyThread mythread=new MyThread(); try{ for(int i;i<10;i++){ mythread.start(); mythread.join(); } } catch(Exception e){} } } calss MyThread extends Thread{ private int count=0; public void run(){ System.out.println("G+"+count); count++; } }
>>598 一度処理が終わったスレッドを再利用することはできません。
>>598 public class Test{
public static void main(String[] args){
MyThread mythread;
try{
for(int i=0;i<10;i++){
mythread=new MyThread();
mythread.start();
mythread.join();
}
}
catch(Exception e){}
}
}
class MyThread extends Thread{
static private int count=0;
public void run(){
System.out.println("G+"+count);
count++;
}
}
で、どーよ。
>>599 そうなのですか
なんかプーリングしろといわれてどうしていいのかわからなせんでした
>>600
ええ、そういうことをスレド生成一回で済むようにしたかったんです
ありがとうございました
>>601 プーリングするなら一つ無限ループするスレッドを作っておいて
それに runnable オブジェクトを与えるようにする。
今日からJava始めましたが、サッパリ分かりません。
コンパイルできたのに、実行出来ないって、何処がいけないのでしょう?
あと↓のタグを使って作りたいんですけど、やり方わかりますか?
http://www.durius.com/
>604 おまいは数あるJava初心者向けのサイトとかを見たり、 ぐーぐる様にお願いしてみたりしたのかと
>605 初心者サイトややり方を、ぜひ教えて下さい。 御願いします
すごい初心者で申し訳ないんですけど、 MySQLデータベースから時間を表示させたいんですけど、どうしたらいいでしょうか? ブラウザからサーブレットを使い、データベースに時間を記録させ、再びデーターベースからその時間を取りだし、ブラウザに表示させる っていうのを作りたい。 (要は掲示板のことです。投稿時間を表示させたい。) で、サーブレット内で、 Date currentDate = new Date()等の時間を得るコードを使おうとするエラーが出ちゃうんですね
>606 おまいは数あるJava初心者向けのサイトとかを見たり、 ぐーぐる様にお願いしてみたりしたのかと
>>605 だからGoogleで検索したのかと、小一時間(ry
>サーブレット内で、 Date currentDate = new Date()等の時間を得るコードを使おうとするエラーが出ちゃう import java.util.Date できてるか? >データベースに時間を記録させ、再びデーターベースからその時間を取りだし MySQL だけでなくたいていの DB にある日付型を使って保存、読み出しをすればいい。 java.sql パッケージの使い方を調べればだいたいわかるとおもうが DB 自体についての質問はスレ違いなので自分で勉強しろ。
>>607 >サーブレット内で、 Date currentDate = new Date()等の時間を得るコードを使おうとするエラーが出ちゃう
実行時にエラーになるのか、コンパイル時にエラーになるのか、エラーの内容は・・・
等々、何も情報を与えようとしないで回答を求めるな。
Javaの初心者じゃなくて、質問の初心者だな、こりゃ。
Tomcatの4.1.27バージョンが欲しいんですが、Jakartaのホームページには ありません。手に入れられる所があったら教えてください。お願いします。
613 :
デフォルトの名無しさん :04/04/25 11:21
今日からJavaの勉強を始める入門者です
よろしくお願いいたします
高橋麻奈の「やさしいJava」って本を買ってきたのですが
その本の最初に、JDKをダウンロードしてインストールしろと書いてありました
そこでJDKのダウンロードサイトに行ったら
http://java.sun.com/j2se/1.4.2/download.html 『J2EE 1.4』と『J2SE v 1.4.2_04 SDK』と2つあったのですが
どっちをダウンロードすればよいのですか?
またこのJ2EEとJ2SEの違いは何がありますか?
(J2EEは有料とかそういうのがありますか?
無料だったら Enterprise Editionの方がいいような気がするのですが
そのあたりも教えてください)
>>613 J2SE v 1.4.2_04 SDK
>>613 JDKって表記はjava1時代のものだからその本はものすごく古いかも
今はJ2SDKだーね
>>613 君はサーバー用のソフトでも作るのかい?
J2EE はEnterprise Editionでサーバーとかデータベースとか用の機能
がついている
Javaの勉強だったらJ2SE
617 :
デフォルトの名無しさん :04/04/25 12:21
J2EE サンプルムービー1.5M J2SDK サンプルムービー300k
618 :
デフォルトの名無しさん :04/04/25 12:22
―――――――――――― | Get Real Player | ――――――――――――
619 :
デフォルトの名無しさん :04/04/25 13:23
すみません。識者の方お答え願います。 カンマ区切りのテキストファイルからデータを 読み込みたいのですが、どうやって良いものかわかりません。 123,112,223,122,241,241,241,241,2,1,21,41,241,.... 見たいなファイルを読み込んで、数値毎に配列に取り込みたいんです。 とりあえず、InputStreamReaderや、DataInputStream, InputStreamなどのAPIの詳細を調べたところ、DataInputStream を使うのが良いのかなと思ったのですが、DataInputStreamを 使ってもEOFExceptionが出てしまってファイルの内容を 読み込む事すら出来ません。 最初の段階から躓いているようなのですが、何をどうすれば 良いのやら分からなくなってしまいました。 上記のようなファイルを一文字ずつ読み込む事は出来ました。 その1文字ずつ読み込んでいる状態を数値毎に読み込むように するにはどうすればいいのでしょうか? 使用すべきAPIや、決まりがあるならお約束を教えてください。
>>619 java.lang.String#split
やれやれだ。。。 Javaだと何でもかんでもクラスやメソッドがあると思っているのか? Cで文字操作をしたことがないのか? もしくは、もしくはプログラムの初心者なのか? Servletにかかわらず、Dateクラスのほとんどのメソッドは推奨されてないから カレンダークラスを使えば。俺いつもカレンダークラスのインスタンス使って 時間を管理してるけど。
splitだと。こんなのあったのか? なんでもかんでもメソッドになってるじゃん。
new BufferedReader(new FileReader("hoge.txt")) でBufferedReaderオブジェクトを作り、 java.io.BufferedReader#readLine で行を読み込み、それを java.lang.String#split で分割ってことね。
>>620 ありがとうございます。
splitつかってやってみます。
>>621 Cで文字操作はした事有りますけどあまり
詳しくはやったことないです。はい。
Dateクラスは使った事ないのでわからないです。
>>610 すみません、DBで利いたらjavaで聞けと言われちゃったので。
java.sql パッケージのやり方を見ていろいろやってみます。
>>611 コンパイル時にエラーです。(シンボルは解決できません)
627 :
デフォルトの名無しさん :04/04/25 14:27
Javaは独習Javaをやった程度の初心者です。 仕事ではVB+ADO/OO4O+Databaseでやってるんですが、 自宅でもデータベースにMSDEを使ったソフトを作りたいと 思ってます。 それでVBの将来はないので、練習も兼ねて言語にJava 使おうかと思ってるんですが、JavaからMSDEを操作する ことのできるコンポーネント/クラスライブラリみたいなのは あるんでしょうか? 関連する良書なんかもあれば紹介いただけると ありがたいです。
・・・と思ったら、なんかDBの話題進行中ですね。 すんません。スレタイしか見てなかったので。
進行中かどうかは関係ないぞ MS方面とつなげるならODBCが一番手っ取り早いかと でもjavaでやるんだからこの際大規模にも耐えれてマルチプラットフォームな mysqとかを勉強するのも手 インストーラで次へ次へで終わるので難しいことは特にない
誰か602の質問に答えていただけないでしょうか
ブレークポイントをその方マルメソッドの中に設定してみたら?
FEPでへんに補完されてしまった ブレークポイントをそのメソッドの中に設定してみたら?
やってみます
やってみたのですが、どこでとめてやっても、どうしても固まってしまいます。 それに、起動した後に一回やるときにはまったく問題なく作動するのに、 メニューバーからやったときだけ固まってしまいます どうしてでしょうか
その止まる場所は特定できたの?
>>602 コードを呼び出してるスレッドが違うからなんじゃない?
スレッド表示部で確認してみろ。
>>636 できないんです
というより、問題の場所の最初の処理にブレイクポイントをつけても、固まってしまうんです。
ちなみに、ほかの場所はちゃんと動きます。
>>637 すみません、スレッド表示部って何ですか。
ググってもヘルプ見てもわからなかったんですが、
ちなみに、言い忘れましたが、環境はEclipse2.1.2です
デバッグモードデフォルトで左上のビュー
そこにスレッド表示しかないんですが…
>>615 > 今はJ2SDKだーね
それをいうと、JSDK, JWSDKと勘違いする悪寒
642 :
デフォルトの名無しさん :04/04/25 16:14
javaの1.4.2_04をダウンロードしてインストールしたんですが、 binフォルダにjavac.exeがありません。 また、DOS窓でjavac -helpを打っても 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 使えるようにするにはどうすればいいでしょうか? よろしくお願いします。
>>602 とりあえずあげてあるソースを、全部持ってきて、各ファイルにばらして実行してみた。
File Not Found(manifest.txt)
と言って落ちた。
manifest.txt はどんな内容のものがあればいいのだ?
646 :
ウンコマン :04/04/25 16:26
MySQLとJDBCを用いたプログラムで文字化けが発生します。 「ョ」「」「怐v「ア」「宦vなどが全て「?」でDBに保存されるのです。 以下のようにしてJavaファイルにベタ書きしても、他のファイルから 読み込んでも同じように「?」に変化してしまいます。 //─────────────────── PreparedStatement stmt = null; String sql = "Insert into CUSTOMER " + "values(?,?,?,?,?,?,?,?,?,?,?,?,?)"; stmt = con.prepareStatement(sql); int result = stmt.executeUpdate(); stmt.setString(4, "松均"); //─────────────────── (try-catchや他の項目は省略) このプログラムを実行した後にDBの中身を見てみると 「?松均」となってしまいます。 コマンドプロンプトで mysql > update CUSTOMER set cName='松均' where cId=20040009312; とするとキチンと「松均」で更新されています。 一体何が問題でしょうか?どなたかアドバイスよろしくお願いします <(_ _)> OS:Windows2000 MySQL:mysql-4.0.18 default-character-set=sjis
>>643 ユーザー環境変数、システム環境変数には
それぞれ必要な変数、値は追加しておきました。
binフォルダにjavac.exeがなくてもいいのでしょうか?
>>646 外してるかも知れませんがJavaは内部コードがユニコードだから、
その辺の関係ということはないんですかね?
>>642 >javaの1.4.2_04をダウンロードしてインストールしたんですが
そのダウンロードしてインストールしたjavaは、次のうちどちらですか?
「J2SE v 1.4.2_04 SDK JVM テクノロジを含む」
「J2SE v 1.4.2_04 JRE JVM テクノロジを含む」
この質問の意味がわからない場合は、ダウンロードしたファイルの名前を教えてください。
特にファイル名の最初が、j2sdk なのか、それとも j2re なのかが重要です。
>>648 うーん、まさしくその絡みだとは思うんですが、
どうにもこうにも原因がよくわかりません・・・
コマンドプロンプトではうまくいくのにぃ。。。
どなたかわかる方よろしくお願いしますぅ。。
>>646 jdbc接続部分のコードあげてみそ
たぶんキャラクタセット設定がおかしいだけの気がする
>>650 質問したときはj2reでした。
j2sdkをDLしたところうまくいきました。
お手数かけました。
ありがとうございました。
>>652 JDBC接続部では明示的なキャラクタセットは行っていません。。。
なんか明示的な設定が必要でしたっけ?
ConnectionManagerの中身は著作権もカラムためあんまりお店できません。。
//DBに接続
cm = ConnectionManager.getConnectionManager();
con = cm.getConnection();
//ConnectionManagerの中身の一部
con = DriverManager.getConnection(URL, USER, PASSWORD);
ちなみに、ちょっと出かけなければならなくなったので、
また夜に来ます。ほんとすいません。。。。
mysqlはURL部分に設定が必要です
これだけだとアレなので こんな感じ jdbc:mysql://localhost/DBName?useUnicode=true;characterEncoding=MS932
>>602 MakeRandomNumbers() の中で、無限ループしてるっぽい。
void で、かつ引数も無いメソッドなので、これ以上デバッグしたくないな。
何が in で 何が out のメソッドなのか、ぱっと見わからん。
658 :
デフォルトの名無しさん :04/04/25 17:48
すいません教えてください java.net.URLConnectionで接続タイムアウト時間を指定したいのですが どうすればよいですか?
>>658 自分でやらないと無理だと思う。
それか jakarta commons の http client でも使え。
>>658 ありがとうございます
やはり、そういうのは標準では無いのですね
Socket使うかhttp client使うかします。
661 :
デフォルトの名無しさん :04/04/25 18:05
webappをダウンロードしたけどmod_webapp.soが無くてmod_jk2って言うのしかなかった んだけどどうしたらいいの? 環境 WIN2000 Tomcat 5.0.19 Apache 2.0.49 J2SDK1.4.2_04
webappコネクタはもう無視していいよ あれは使わないし、特にWin版は安定した試しがない 今はmod_jk2だけでいい
ご回答ありがとうございます。 例えば、サーバサイトプログラムやJSPをやる場合は、 J2EEをインストールする必要があるということでしょうか? それともJ2SEでもサーバサイトプログラムやJSPは出来るのでしょうか? まだ勉強中なので、J2SEでOKだと思いますが 将来的にはそちら方面も勉強していこうと思っています。
つうか最近のApache2ってTomcatも一緒に入ってない? ためしてないけど あれそのまま動くんじゃないの?
>>663 Tomcat入れればとりあえず
それ関連のJarがそろうので
J2EEをわざわざ入れる必要ない
>>660 自分でやるといっても Socket みたいな低レベルまで行く必要はなくて
URLConnection からデータを読み出す部分をスレッド化して
ある時間経っても完了しなかったら中止するようにすればいいだけ。
>>666 ありがとうございます
以前それを試したのですが
IllegalThreadStateException(だったか?)
みたいなエラーがでてしまったので
強制的に終了するのはダメなのかなと思って
あきらめてしまいました
多分僕の作り方がまずいのだとは思いますが・・・
>>656 どうもありがとうございます!!!
その設定で文字化けせずに全部登録することができました!!!
今までは下記のように「SJIS」と設定してました。
「MS932」とすべきだったんですねぇ・・・
これはわからなかった。
jdbc:mysql://localhost/DBName?useUnicode=true;characterEncoding=SJIS
非常に感謝感謝です。ありがとうございました。
669 :
デフォルトの名無しさん :04/04/25 22:24
独習JAVAすげーーまじすげーよ。 JAVAを極めたまじで・・ JAVAエンジニアに転職します。
極めたと思ってしまう本は糞本
>>669 デジドカになるのはやめとけ。
もっと他の職種に転職した方がいいぞ。
>>627 ,629
ODBCはあんまり良くないよ。MSDEはSQLServerのサブセットで機能は
ほぼ互換だからSQLServer用のJDBCドライバ使えたはず。
>>658 1.5のURLConnectionだとsetConnectTimeoutが追加されてる。
MSSQLサーバー用のJDBCはMSKKは発表してないし あとはサードパーティの有償の物だけ ということを考えればとりあえず動けばいいと言うのならODBCでいいかと
sdk1.3ってあたりが激しくネックになる
677 :
デフォルトの名無しさん :04/04/26 12:38
アプレットで、動作させるときに、アプレットは初期化されてませんとでます。 コンパイルは、正常にとおっているのに java.lang.NULLponterEXception ってでます、ドスじょうに、なんでしょうか
678 :
デフォルトの名無しさん :04/04/26 12:54
>>677 ですが、これがソースです。イベント処理はまだやってません。
一応レイアウトだけをアプレットでだしたいのですが。
mport java.awt.*;import javax.swing.*;
public class test extends JApplet
{private JButton jb[] = new JButton[3];private JLabel jl[] = new JLabel[2];
private JTextField tf[] = new JTextField[2];private JPanel pn[] = new JPanel[2];
private JRadioButton rb[]= new JRadioButton[2];private ButtonGroup bg;
public void init(){
Container cnt = getContentPane();
jb[0]=new JButton("登録");jb[0]=new JButton("修正");
jb[0]=new JButton("完了");jl[0]=new JLabel("名前");
l[1]=new JLabel("メールアドレス");
rb[0]=new JRadioButton("男");rb[1]=new JRadioButton("女");
for(int i=0; i<tf.length;i++){
tf[i]=new JTextField();}
for(int i=0; i<pn.length;i++){
pn[i]=new JPanel();}
bg.add(rb[0]);bg.add(rb[1]);
pn[1].setLayout(new FlowLayout());
for(int i=0;i<jb.length;i++){
pn[0].add(jb[i]);}pn[0].add(rb[0]);pn[0].add(rb[1]);
cnt.add(jl[0],BorderLayout.NORTH);cnt.add(tf[0],BorderLayout.NORTH);
cnt.add(jl[1],BorderLayout.CENTER);cnt.add(tf[1],BorderLayout.CENTER);
cnt.add(pn[0],BorderLayout.SOUTH);cnt.add(pn[1],BorderLayout.SOUTH);}}
java.lang.NULLponterEXception ~~~~~~~~
答え:ブラウザが 1.2以上に対応してない しかし コピペできない DOS がなんだかわかってない 机上でデバッグできない 前途多難ですな。
あ、答えを直すの忘れた 俺も前途多難で砂 プラーン
超ド級の質問します。 J2SDKをインストールしてないと、javaプログラムはwindowsで作れない?
>>682 そんなことない。他のコンパイラ使ってもいいし、
バイナリエディタで直接classファイルを書いてもいいよw
684 :
デフォルトの名無しさん :04/04/26 13:52
質問です。 socketを使ってクライアント同士のチャットプログラムを組みたいのですが、 socketの使い方がよくわかりません。 どこかにいいサンプルとかないでしょうか?
686 :
デフォルトの名無しさん :04/04/26 14:44
配列ですけど、 String[] args; String args[]; どっちが綺麗なんですか?
>>686 好みの問題だと思うけど、個人的には宣言するときはString[] argsのほうが
いいと思う。
>>686 >String args[];
なんでこんな書き方をJavaが認めてるんだろ。
>>686 後者はバカC++使いの保護のため
正直、そんなの無いほうがわかりやすいのにな
なぜ?みんなが推奨する書き方だと 型がたくさんあるみたいじゃん。 配列なのはargsなんだからargs[]
「String[]」で型なんだよ []が付いてるだけで型がいっぱいあると考えるのはバカC++使い
>>690 引数argsがString配列型なんだよ。だから
String[] args
String[] args; -> String型の配列をargsという名前で宣言するぞ String args[]; -> String型のargsという変数は配列だぞ どっちでもいいんだけど、統一した方がいいとは思うな
String型なのは args[0],args[1],args[2],... であって、argsじゃない。
>>693 あのな、Javaでは「配列」という型があるんだよ。
C/C++みたいな、「型」の配列とは意味合いが違うの。
だから、本来は「String[] args」。どっちでもいいわけじゃない。
「String args[]」なんて書き方は689の言うとおり、
C/C++使い保護のためだけに残されているにすぎない。
どうでもいいがjdkについてくるデモ見ればどっちも使われているのが分かる まぁ、どっちでもいいってこった 俺は変数の後ろにつけてる方を推奨するかな Cしかしらんやつに説明するのが楽 この話題前にも出てきたな
俺は
>>697 のような奴をアホと呼ぶことを推奨しよう
>695 あのな、そんなことは百も承知なんだよ。 その上で書き方を無理矢理日本語にしてみただけだ。 いちいち噛み付く暇があったら、勉強や仕事で頑張りなさい。
[Java] String[] args, String args[]と書いた場合、argsは配列でもなんでもない。 String配列型への参照を保持するための型。 [C/C++] String args[]と書いた場合、argsそのものがString配列オブジェクト。 というように、扱い方が決定的に異なる。この差をはっきり明示するには、上で 示されてるように、String[] argsの方がいいと思う。 が、何をもってわかりやすいとするかは微妙な話。C/C++から移行してくる人が 実際多いんであれば、両方認める方がわかりやすいかもしれない。 初学者は混乱するかもしれないが、この辺は現状のJava利用者全体からの意見が ないとはっきりは言えない。
>>700 どうにも反論できなくなって個人攻撃か。こいつダメだな
出来るだけユーザーの多いCのシンタックスが通じるようにと 出来たのがjavaの文法だからな どちらでも出来る以上間違いではないし、sunのコードでも どっちも使われているってことで別に好きなように汁 どっちかだけが正義ってことはないのさ
>>686 String[] args;
のほうが、綺麗だと私は感じる。
宣言されてる変数の型を、宣言されてる変数の名前の左側に全部書いてあるから。
たぶん私は、似たような情報は近くにまとめて書いておくほうが綺麗だと感じる性格なのだろうと思う。
String[][] args[][][];
なんていうサイケな宣言も、これはこれで面白いとは思うけど。
でも、「どっちが綺麗なんですか?」っていう質問は、なかなかイイ釣りだね。
「どっちが正しいか」「どっちがわかりやすいか」、はたまた、「どっちが正義か」などをという
元の質問の意味を読み取れない人々の下らない議論を見れて、満足した?w
釣られるものか。
質問です。 よろしく、お願いします OS2000serverにapacheをインストールしてはいけないのですか???
>>707 そんなことはない。Apache2ならOK。
ここで聞くよりもドキュメント嫁。
読んでわからないならおまいには無理。
709 :
デフォルトの名無しさん :04/04/26 23:46
break文とcontinue文(特にラベルつき)はソースコードが読みづらくなるから 使わない方が良いと入門書に書いてあったのですが、実際はどうなんですか? 初心者向けの本だからなんでしょうか?
>>710 という事はそんな訳ねーだろって事でしょうか。
本屋で色々ぱらぱらめくってたら二冊ほどに書いてあったんです。
なのでタイトルとかは詳しく覚えてません。
他の書き方で代用できるから使わない方が良いとか書いてありました。
712 :
デフォルトの名無しさん :04/04/27 00:02
初心者なモノで、頓珍漢な質問をしていたらごめんなさい JSPやサーブレットを動かすには、WebサービスはApacheでないとダメなのですか? IISではダメなのでしょうか? IISの設定をいじくれば、IISでもJSPやサーブレットを動かすことは可能なのでしょうか? ご教示ください
>>712 ApacheでもIISでもダメ。
Servlet/JSPコンテナが必要。
714 :
デフォルトの名無しさん :04/04/27 00:05
質問です。 GoogleとかでURLがこんな感じに→%E3%81%93%E3%82%8C 変換されてますよね? これと同じ事をJavaでやるにはどうするのですか? ちなみにURLEncodeはバージョンが古くて使えません。
breakはswitch文には欠かせない。 でもオブジェクト指向を進めていくとswitchを使う場面はかなり限定される。 ラベルつきbreakは多重ループからの脱出に重宝する。 でも多重ループ自体を関数にわければreturnで済む。 continueもやっぱり関数にわければreturnで済む。 読みづらくなるから使わないほうがいいのではなく 読みやすく書こうとするとあまり使わなくなるというのが正解。 breakやcontinueを使うことで読みやすくなるのなら別に構わない。
>>714 > ちなみにURLEncodeはバージョンが古くて使えません。
java.net.URLEncoder.encode() じゃダメなの?
717 :
デフォルトの名無しさん :04/04/27 00:10
>713 Servlet/JSPコンテナってのは ここでよく言われている、TOMCATってやつですか?
718 :
デフォルトの名無しさん :04/04/27 00:13
continueなんて、存在さえ知らんかったw
2つ目の引数ってエンコーディング名じゃなかったっけ?
おいおいw
古いバージョンでつかえないとしても 自作もたいしたことないんだから別に作ってみてもいいのでは? わざわざエンコードの仕方もかいてあるんだし
>722は>719へのレスざます
725 :
デフォルトの名無しさん :04/04/27 00:20
>>715 よく分かりました。
どうもありがとう。
>>723 それが出来ればこんな質問しないですんでます・・・
>>727 ならしっかり
「わけあって1.2しか使えず、自作しなければいけないのですがスキルがないのです」
と書けや、ボケ。
729 :
デフォルトの名無しさん :04/04/27 02:23
>>728 バージョンが古いって最初っから書いてあるじゃん。
自分のミスで逆切れか?
それを読んでないのは
>>716 ,
>>720 ,
>>721 です。
>自作しなければいけないのですがスキルがないのです
私の指摘の肝はここです。これを含めて、問題点を全部かけ、と。
>>714 では言及しておらず、「標準ライブラリ以外にありませんか?」の可能性を含んでいます。
しかし自分で組めないことがわかれば、そこで初めて、
「多分クラスパス指定も覚束ないであろう」ということが推測されるわけです。
>>730 いいわけすんなよw
腐りきったやつだなw
一匹粘着がいる 間 違 い な い !
> ちなみにURLEncodeはバージョンが古くて使えません。 ・URLEncode なんてクラスもメソッドも存在しない →正しく書くべき ・何のバージョンが古いかわからない →JVMの、とはっきり記述し、どのバージョンかも明記するべき 質 問 の 仕 方 が 悪 い ん だ よ
カルシウム不足なのかな? それともキレやすい今時の日本人なのかな?
>545 たとえば ・複数行を表示できるラベル ・イメージを表示できるボタン ・「前頁」「後頁」ボタンで頁送りできるテキストエリア みたいなものをAWTで作りたいのです。 (組み込みなのでJDKは1.1相当になります) 自分で一からつくってもいいのですが、 このあたりは誰かしらつくってそうなので、 それを使えればとおもって
738 :
デフォルトの名無しさん :04/04/27 09:59
ひまわりスレは?
740 :
デフォルトの名無しさん :04/04/27 12:12
appletviewerでは実行できるけど、ブラウザでは実行できなくなりました。以前はでき たのですが。ほかの場所からホームページを開くと、実行できます。 どんな問題が考えられるでしょうか? 家の環境は、javaはj2sdk1.4.1_02で、IEは 最新バージョンです。
>>740 1.4.1_02 使ってるなら、-target 1.1 付けないでコンパイルしてるので
MSJVM が読み込めないバージョンのクラスファイル吐いてる、とかじゃなくて?
WAVから着うたに変換するアルゴリズムとかって どこで聞いたらいいですかね?
ここはなんでもありの受付スレですか
じゃあ教えてください。 .mldファイルの基本フォーマットみたいなのって公開されてないらしいんですけど、 wavを.mldに変換するにはまず何から始めればいいのでしょうか? その辺が詳しく載ってるサイトってないですかね?
>>744 激しくすれ違いなのがわからんのか?ウセロ!
つーか、どこからこのスレに辿り着いたんだ・・・
なぜC#スレに辿り着かないんだろうか
またへんなの湧いた
749 :
デフォルトの名無しさん :04/04/27 14:57
>>738 >わかっても、投稿はしないで下さいまし
はあああああああああああああああああああああああああああああああああああ???????????????????
今度は誤爆か?
751 :
デフォルトの名無しさん :04/04/27 15:10
素で誤爆してた(´・ω・`)
754 :
デフォルトの名無しさん :04/04/27 18:00
Java3Dの話もここでいいのですか? 衝突判定を WakeupOnCollisionEntry()で行ってますが、 「衝突した」ということはイベントが発生するので察知できますが、 「衝突していない」ということを知りたいのですが、どうすればいいのかわかりません。 何かいいアイデアがあったらおしえていただけないでしょうか。 よろしくお願いします。
755 :
デフォルトの名無しさん :04/04/27 20:24
質問ですが、 「Javaの質問箱」って本に、 アプリケーション向けのJ2SE、サーバサイドの向けJ2EEって書いてありました。 サーブレットやJSPを作るには、J2EEが必要ってことですか? 上の方見たら、TOMCATがいるとか書いてありましたが、 J2EEをインストしたら、TOMCATはいらないんですか?
J2SEがまずjavaの基本 J2EEはいわばエンタープライズ向けのライブラリだと思ってくれ そしてそのJ2EEの一部がServlet/JSP技術なんだが それのリファレンス実装がTomcat Tomcatさえ入れればServlet/Jspは開発できる そして統合環境使っているならこの辺知らないで作れる これで分かるかな?
> そして統合環境使っているならこの辺知らないで作れる ならいいや。
コラー!
逆にJ2SEでなくJ2EEを入れれば TOMCATはなくても実装できるってことですか? あと統合環境ってのはEclipseとかのことですか?
760 :
デフォルトの名無しさん :04/04/27 23:28
>>759 >J2EEはいわばエンタープライズ向けのライブラリだと思ってくれ
と書いてあるとおりSEの上に積み上げる物
SEが必要なくなる訳じゃない
サーブレットコンテナを標準内蔵している統合環境というと
JBuilder、NetBeans、JavaStudio、WebSphereってところか
これらはすぐに使えるのでTomcatがどうのこうのとか考える必要はない
>>759 何をやるにしてもJ2SEは必須。
加えて、J2EE SDKやTomcat等が必要。
> あと統合環境ってのはEclipseとかのことですか?
ま、だいたいそんなところ。
OracleのインストーラーってJavaで出来てるって聞いたことがあるんですが PCにJREがインストールされていなくても起動しますよね。 これはCD-ROM上にあるJVMを使って動作させることが可能ってことなのでしょうか?
764 :
デフォルトの名無しさん :04/04/28 00:07
質問です。 JSPからwindow.shouModalDialog(・・・)でモーダルダイアログをたちあげ、 たちあがったモーダルダイアログからsubmitすると、 別ウィンドウが開いちゃうんですけど、 なんとか同じダイアログ上で画面遷移できないもんですかねぇ。
Win版しか知らないと変におもうかもしれんが jre、sdkともにたんなる1ディレクトリに展開するだけ win版以外はたんなるアーカイブのものもある そこのbinの中のjava、もしくはjavawを実行すればすぐに使える 少しでもサイズを小さくしたいときとかreadmeなどの配布のライセンスを 見ながらケチればランタイムのサイズは多少は縮む 実際のところwebstartくらいしかけちれないと思うけどね winのインストーラはバージョンをレジストリに登録して検索できるようにしたり パスの通っているところに実行ファイルをおいたりしているだけ あとはブラウザのプラグインの設定とか つまり、そのbin/javaをコールするようなネイティブな実行形式作っておけば ユーザーにはjavaと分からないで実行させることが出来る もちろんautorunで実行させればoracleのようになる
>>764 まずはhtmlの動作で勉強しよう
javaとは全く関係ない部分だ
それにブラウザ依存コードだな
webアプリならスクリプトが動かない場合も想定した方がいいぞ
>>764 モーダルにiframe入れてその中にフォームを表示させろ。
そういうオスいコーディング術を身につけてどんどん糞になってくれ。
768 :
デフォルトの名無しさん :04/04/28 00:16
>>766 ありがとうございます。そうすか。。
僕も普通の画面遷移でいいと思うんですけどね。。
ダイアログが必要な場合ってのは割と多いが window.showModalDialog〜はIE以外はまともに動かなかった気がした そういうときはレイヤーで処理すべき Mozilla系でも動作確認とれていればだいたい大丈夫だろう
770 :
デフォルトの名無しさん :04/04/28 00:19
>>767 どうもです!そうか。そういうやり方もあるのですね。
参考にさせていただきます!
>>765 ありがとうございます、よくわかりました。
ユーザの環境に関係なく指定したバージョンのJVMで動作させることが可能ってことですね
>1-771 スレ違い
そういうこと たとえばユーザーの環境にすでに1.3が入っていてこれをかえたくないときとか ユーザーにjavaを意識させないとか便利に使えるよ ランタイムのサイズとして15Mくらいあるけど、これを同梱させることによって ネイティブアプリと同じ動きができるんだからこれは知っておいた方がいい SwingでLAFをSystemのやつを使えばさらによし
Windowsに初めてJRE入れた。(普段はMacを使ってまつ。) デフォルトのLAFがMetalなのに、ビクーリ。
>>774 ちなみに、デフォルトのLAFは設定で変えられる。
コネクションプールについてわかりやすい解説のあるサイトか書籍教えていただけないでしょうか
さくっと使えてざっくり拡張できて それなりに頻度ありありのライブラリの寄せ集め そこのご両人知りあせんか?ありあせんか?? antみたいなのは無い??
>>777 JakartaなどのApacheサブプロジェクトを漁るべし。
>>777 jakarta-commons 配下のプロジェクト群。
ステップカウンタ「JavaNCSS」が欲しいんだが、 どっかDownloadできるトコない? 本家がさっぱり繋がらない(;´Д`)
J2SDK+QuickTime JAVA for Winでapple配布のサンプルを元に動画変換をやろうとしています。 QT6.5Proとか新しいバージョンに実装されているファイル形式でExportしたいのですが…。 MovieExporter theMovieExp = new MovieExporter (exportType); 上記変数exportTypeに直接数値をブチこんでやればよさげなのですが、 肝心の数値を探せずに煮詰まっています。どうにかコレを得る方法はないですかね…?
>780>781 すさまじい量ありました いやーなんかjava最高、jakartaのソースってなんでこんな おっとこ前なんですか、これ見た後、 自分の書いたソース見ると汚らしくて臭いそうですよ こんぐらいのレベルで書きてー!!!これやばい、のめり込む ありがとう
Commonsは誰もが何度もプロジェクトごとに書く作業を減らすってところからきてるからな 非常にシンプルでサイズが小さいのでおいやすく改良もしやすい javaの生命線になってると思われ>Apacheの各プロジェクト
apache-ant-1.6.1 を j2sdk1.4.2_04 を入れた Windows98 で動かそうとすると、 Unable to locate tools.jar. Expected to find it in C:\J2SDK1.4.2_04\JRE\lib\tools.jar って言われてしまいました。 そこを見ると確かに tools.jar が無いんだけど、これってふつうでしょうか? C:\j2sdk1.4.2_04\lib の中にはちゃんと tools.jar があるのだけど、そっちを見に行ってくれてない模様。 Antが探しに行く場所が変なのか、SDKのインストールがうまくいってなかったのか、 それとも私がなんか間違ってるのか・・・。 1.4.2_04 を使ってる方、それ以外のバージョンの方、JAVA_HOME\JRE\lib\ の中に tools.jar って 入ってますか?
環境変数
JAVA_HOMEはちゃんとC:\j2sdk1.4.2_04を指している?
はい。正しくC:\j2sdk1.4.2_04を指しています。 コマンドラインで SET コマンド打ってみて、目で確認し、さらに、次のようにしてみました。 C:\>%JAVA_HOME%\bin\java -version java version "1.4.2_04" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_04-b05) Java HotSpot(TM) Client VM (build 1.4.2_04-b05, mixed mode) これだと、フルパス指定なので、間違ってれば動かないはず。。
ant1.6.1のソース見てみた。
>>786 のメッセージが正しいとすると
antがバグってるように見えるな。
org/apache/tools/ant/launch/Locator.java, 175行目から
String javaHome = System.getProperty("java.home");
if (javaHome.endsWith("jre")) {
javaHome = javaHome.substring(0, javaHome.length() - 4);
}
この2行目は
if (javaHome.toLowerCase().endsWith("jre")) {
だろうな。
ant.apache.orgにパッチ送ってやれ。
eclipseでデバッグするときコンソールに何を表示されなくなっちゃたのですが どうすれば表示するようになりますか? eclipseは最新版です。
>791
Eclipseのスレで尋ねた方が早いと思うが?
【Java/C/他】統合開発環境Eclipse M11
http://pc5.2ch.net/test/read.cgi/tech/1076074293/l50 ただし、意味不明だぞ。もう少し具体的に言った方が良いと思う。
「コンソールに何を表示されなく」はタイプミスで「コンソールに何も表示されなく」
だと思うが、もともと、コンソールに「何」が表示されるプログラムを走らせて
いたのか?
もしくはデバッグを初めてしたのだが、手順がわかってなくて、コンソールの
表示が消えてしまった際に、再度表示させる手順がわからないのか?
>>791 最新版っても「安定版の最新版」とか「開発版の最新版」とかイロイロあるし、
実はもっと新しいのが出てるとかって事もあるので、
ちゃんとバージョンナンバーを書いた方が良いぞ。
質問です。 RedHat9 に JRE 1.4.2_04 をインストールしました。 インストール先は /usr/java/j2re1.4.2_04/ です。 .bash_profileに、以下の二行を追加。 export JAVA_HOME=/usr/java/j2re1.4.2_04/ export PATH=$PATH:$JAVA_HOME/bin ここまで一旦チェックすると $ pwd /home/hogehoge $ java -version java version "1.4.2_04" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_04-b05) Java HotSpot(TM) Client VM (build 1.4.2_04-b05, mixed mode) $ echo $JAVA_HOME /usr/java/j2re1.4.2_04/ となり、パスは通ったようです。で、Tomcat 4.1.30 をインストールしました。 インストール先は /usr/local/tomcat/ です。 で、startup.shを起動しようとしたところ $ /usr/local/tomcat/bin/startup.sh The JAVA_HOME environment variable is not defined correctly This environment variable is needed to run this program と出て起動できません。しかし上記の通りJAVA_HOMEは設定してあります。 JAVA_HOME を /usr/java/j2re1.4.2_04 (末尾のスラッシュ削除)にしても同じ状態です。 何が悪いのかさっぱりわかりません。どなたか原因のわかる方はいらっしゃいますか?
↑自己レス: jreじゃなくてsdk入れたらこのエラーは出なくなりました。 ランタイムだけじゃ動かないのかyp
ランタイムだけでも問題なく動くよ もちろん追加のオプションが必要でjavacとかtoolsとか 手取ばやいのがsdk入れるってだけ
797 :
デフォルトの名無しさん :04/04/29 14:25
質問なんですけどdllを配布する時どうやってます? jarに含めれるんですか?検索しましたけどみつからなくって、 検索の仕方が悪い?
798 :
デフォルトの名無しさん :04/04/29 14:52
開発環境って、どれが一番初心者に優しいですか?
>798 メモ帳などのテキストエディタ
本屋行って、開発環境の使い方の説明のある本を探して その中で一番わかりやすく解説してる本を買って、 その本で解説してる開発環境を選ぶ。
つまり、メモ帳
802 :
デフォルトの名無しさん :04/04/29 15:24
いや、viに決まっている。
マカならXcode
家のマシンはショボショボなので、 秀丸でマクロやら強調表示やらでコツコツ。 会社では Eclipse かな。
クラスパスに含まれていないJarを読み込んで そのクラスを使うにはどうしたら良いんでしょうか?
クラスパスに含める
URLClassLoaderかな。
808 :
デフォルトの名無しさん :04/04/29 18:01
みなさんは、Javaでソフト開発するとき 何か統合環境をお使いでしょうか? EclipseとかJBuilderとかお使いなのでしょうか? どれを使おうか今検討中です。
>>798 初心者にsdk+テキストエディタは優しくないものの
ディレクトリとパッケージの関係とかjarがどうなってるか、
classがどうなっているかを知るにはやらせておきたい
が、実際のところ仕事でもOJTという名の下に
いきあたりばったりの開発もあるからな
とりあえず成果物ができあがればいいというのであれば
初心者に優しいのはJBuilder、NetBeans、Eclipseの順かな
Eclipseはいろいろとやれる人じゃないと厳しいし、JBuilderは
いろんなところが親切でやはりNetBeansやEclipseと段違い
>>805 URLClassLoaderで好きなjarをロードできる
810 :
デフォルトの名無しさん :04/04/29 18:11
フリーもしくは低額な金額(シェアウェア程度)で使えるなにか手ごろな、統合環境がありましたら ご教示していただけますでしょうか? ちなみに、VBとVC++はソフト作成の経験があります。
>>808 オフラインで教えてくれる人が普段使ってるものを選ぶのが無難。
まずはフリーのやつ試してみたら? EclipseとNetBeansはすぐに落とせて使えるし
>>810 VBやMFCメインみたいな感じならJBuilder
VC++でロジックやコマンドラインがメインみたいな感じならEclipse
>>797 含めることは可能なんだけど、Windows自体がdll単体のファイルになっているものしか
ロードできないのでSystem.loadとかする前にどこかにdllのイメージを単体ファイルとして
書くしかないはず。
元からばらしておくほうが楽かも。
>>814 そうですか、ちょっと気になったもので今まで通り配布することにします。
ありがとうござました。
816 :
デフォルトの名無しさん :04/04/29 19:48
質問です。ちょっと板違いかもしれませんが。 Java アプレット を製作してます。 時折サーバにアップロードしてテストをしているのですが、 ブラウザ(Opera で確認)が勝手にアプレットをキャッシュしてしまい困ってます。 キャッシュ機能をオフ、メモリキャッシュをクリアしてもアプレットのキャッシュは消えません。 ブラウザを再起動して読み込むとアプレットがやっと更新されます。 なにかの設定(サーバ、アプレット、HTMLなど)を変更することで、こうならないようにできるのでしょうか?
アプレットは常にキャッシュされる キャッシュの設定は各クライアントのプラグインで行う 基本的にサーバーにアップするものが頻繁に更新されるとは 思われないのでさほど問題にならない 問題になるのは開発時のみ そこはアプレットbッユーアやコンソールでXをおせばいいのでこれも問題にならない Webstartだとアプリだろうがアプレットだろうが 常にバージョンチェックちゃんとやってくれるので気にしなくていい
818 :
デフォルトの名無しさん :04/04/29 23:30
JComboBoxで、アイコンも一緒に表示してるんだけど アプリ立ち上げたときに、最初にコンボボックスに表示される文字列には アイコンがどうしても表示されないんだけど、どうしたら良いですか?
そのアイコンのロードと設定のコードあげてから聞こうな
821 :
デフォルトの名無しさん :04/04/30 12:51
久しぶりにJavaCCをいじってみようとおもってでぐぐったら JavaCCのサイトが消えてる。 JavaCCはいまどこで扱っているのか、 どこでダウンロードできるのか知っている人いますか?
おしっこCC
>>823 >ページを表示できません
>
>(中略)
>
>サーバーが見つからないか、DNS エラーです。
>Internet Explorer
ただのメンテ?
うちの環境が悪いのか?
>>824 お前の環境が悪いだけっぽい。
こっちでは正常に表示される。
>>824 https が禁止になってるとかじゃないの?
828 :
デフォルトの名無しさん :04/04/30 17:06
ここでいいのかわかるませんが、教えてください。 Javaアプレット内で生成したImageをPNGファイルとして保存したいのです。 独立したブラウザウィンドウを開いて、そこに一旦画像を出せば、(ユーザーが) ブラウザのメニューから保存できると思うのです。 別のウィンドウを出すのは、getAppletContext().showDocument()でできるのですが、 そこにはURLしか渡せません。 開いたウィンドウに直にデータを書き出して、画像を表示させることはできますか? あるいは、そもそも見当違いの方針を立てているのでしょうか?
>>828 アプレットだと、PNGとして出力・ローカルに保存するのは無理だな。
>>829 どうもです。ナマで保存するのは無理ですが、一旦ブラウザに単独でその
PNGを表示させれば、ユーザーは「名前をつけて保存…」で保存できると
思ったのですが、だめですか?
>>830 ブラウザってのはサーバと会話するのよ。
アプレットってのはサーバになれないのよ。
なので、アプレットからブラウザに対して「PNGとして」画像を出力することはできないのよ。
CGIやServletなどのサーバサイドを絡めれば絵板みたいにしてできるけどな。
>>831 なるほどー。目からウロコがちょっと落ちました。ありがとうございます。
一瞬「ブラウザにはファイルを表示させることもできるのでは?」と思ったけど、
それだと結局「鶏と卵」ですよね。
うーん、ユーザーに簡単な操作をさせるのはアリなので、何とかImageを
ローカルファイルに保存する手はないでしょうか?
画像をサーバー側で完全に作るというのは、できれば避けたいのです。
>>832 Alt+PrintScreenでするしか
ありがとうございます。
>>833 PNG形式の完全に制御されたbinary fileが作りたいので、パソコンに慣れて
いないユーザーということも考えると、ちょっと難しいと思います。
>>834 JavaWebStartですか。ちょっと調べてみたですが、クライアント側のインストール
が必要だとすれば、「パソコンに詳しくない人に、個々にImageを作ってあげて、
PNGでローカルに保存してもらう」という目的からいうと、イマイチみたいです。
そんなに特異なことがやりたいわけではないと思ってたんですが、サーバー側
でCGIでやるしかないのかな、と思い始めています。
>>832 >> うーん、ユーザーに簡単な操作をさせるのはアリなので、何とかImageを
>> ローカルファイルに保存する手はないでしょうか?
アプレットに署名する(signed applet)のについて調べてみ、
目的に合うかも。署名されたアプレットはファイルを書けるのでそれで普通に保存。
ユーザ画面にはアプレットがファイル書こうとしてるぞ、って表示がでるけどね。
>>835 webstartがインストール別っていつの時代だ
838 :
デフォルトの名無しさん :04/05/01 00:21
@ITでJAVAの勉強をはじめました。 サンプルでコンパイル時にエラーが出てしまうのでどこが悪いのか ヒントを教えて下さい。 エラーメッセージ GeographicInfo.java:6: クラス UsingGeographicInfo は public であり、ファイル Usi ngGeographicInfo.java で宣言しなければなりません。 public class UsingGeographicInfo { ^ エラー 1 個 コンパイルしたサンプルプログラム class GeographicInfo { double latitude; double longitude; } class UsingGeographicInfo { public static void main( String args[] ) { GeographicInfo g; g = new GeographicInfo(); g.latitude = 35.66; g.longitude = 139.75; System.out.println(g.latitude); System.out.println(g.longitude); } }
解決しました。 ずばりFAQの通りでした。 ありがとうございました。
まあ@ITもアレだけどな…
@ITの記事話半分で見た方がいい まー@ITなら掲示板だけウォッチしていたほうがいいかも
@ITがアレなんじゃなくて、Y田某がアレなのだと思うのだが・・・
まあ、そのY田某に執筆を依頼し続ける編集部もアレか・・・
会社で読めない表紙はヤメレ
裏返したらシックな感じになるハイブリッドSwing本だったらいいのにね
登録っと
849 :
デフォルトの名無しさん :04/05/01 22:03
Boland C++で作ったダイアログが結構あるので、 Swingに変換してみましたが、(nullレイアウトで) そのままの座標だと、半分くらいの大きさになってしまいました。 具体的にはC++ダイアログの各コンポーネントの座標を setBounds( x, y, width, height); に入れていっただけだけど。 1.7〜1.8倍くらいに拡大したら同じぐらいになったけど、 小数点以下の端数のせいで、ズレが発生しますた。 まぁ、それはいいとして、Javaの画面上の座標って、どんな風にきめられてるの? おすぃえてください。
>>849 >まぁ、それはいいとして、Javaの画面上の座標って、どんな風にきめられてるの?
普通にピクセル単位だろ?
しかしマルチプラットフォーム対応という観点からは null レイアウト使うのは邪道。
>>850 自分でサイズ変化に対応できるようにしとけばnullでもいいと思うよ。
ウインドウサイズに連動して絶対座標が変化するの。
>>851 nullレイアウトが推奨されないのはウィンドウサイズの問題でなくて、
フォントが変わったら文字がちゃんと表示されなくなったりするから。
SwingでIEと同じようにHTMLを表示したいんですが、 どうすればよいのでしょうか?
855 :
デフォルトの名無しさん :04/05/02 01:38
System.out.println(" "+5/3+1);とSystem.out.println(5/3+1); ってなんで答えちがくなるの??
>>855 " "+5/3+1=" "+1+1=" 1"+1+" 11"
5/3+1=1+1=2
まちがえた " "+5/3+1=" "+1+1=" 1"+1=" 11" 5/3+1=1+1=2
int型の6桁の数字をshort型の配列に一桁づつうつす クラスや方法はあるのでしょうか?
こういうこと? public class Main { public static void main(String[] args) { short[] sa = Q860(123456); for (int i=0; i<sa.length; i++) { System.out.println(sa[i]); } } public static short[] Q860(int val) { String str = Integer.toString(val); //入ってきた int を String に変換 byte[] ba = str.getBytes(); //Stringを byte 配列にバラす short[] sa = new short[ba.length]; //byte 配列と同じ長さの short 配列を用意 byte zero = "0".getBytes()[0]; //"0"のバイト表現を準備 for (int i=0; i<ba.length; i++) { //byte 配列の要素それぞれについて sa[i] = (short)(ba[i] - zero); //バイト表現同士の引き算で、元の数を short 配列の要素として格納 } return sa; //出来上がったものを返す } } マイナスの数が入ってきたときのことは考えてません。
これでいける? 汚いソースだけど、誰か採点してください。 short[] foo = new short[6]; int bar = 123456; String str = Integer.toString(bar); char[] tmp = new char[str.length()]; str.getChars(0,str.length(),tmp,0); int MAX; if(str.length()>6){ MAX=6; }else{ MAX=str.length(); } for(i=0;i<MAX;i++){ foo[6-1-i] = Short.parseShort(new String(tmp[str.length()-1-i])); }
>>861 >>862 とても参考になりました
一旦string型などにするのですね
どうも有り難うございました
Javaでウィンドウ上にボタンやらを載せられるようになりたいんですが
本何かったらいいですかね?
>>1 に載ってるWikiに紹介されてるJavaまるかじり って本は買いましたが…
なんか広く浅くって感じではずれだった…
Java Server Faces とかどうかな
(String[] args) と(String args[])は同じ意味ですか?
多分同じ
(ノД`) やっと出来たと思ったら また質問です int型の2桁の数字が2つとint型の6桁の数字を1桁ずつ写して 10桁のintにすることはできませんか 全てプラスの数です ほんとたびたび失礼します
>>868 質問の意味がわからないので例を使って説明して
>>868 ハイ
要するに
int型の12と34と567890という三つの変数があります(変数名は適当に決めるとして
それをint型で1234567890にしたいんですが
ちなみに必ず1234567890となるとは限りませんよ
a=12 b=34 c=567890 で、 d=1234567890 ってことかな?
>>870 int i,j,k,l;
i = 12;
j = 34;
k = 567890;
l = i * 100000000 + j * 1000000 + k;
。・゚・(ノД`)・゚・。 リロードしろ俺
そのとうりです
int型の範囲超えるね。最後はlong型で。 文字列結合でしたほうが楽かな。 足し算でするときはキャスト忘れずに。
文字列を経由させるなんて Coboler みたいですね。普通にやれよ。
860で作った関数なりクラスを868で利用するわけやね。
>>861 ,862
普通こうだろ。
short[] foo = new short[6];
int bar = 123456;
for (int i = 0; i < 6; i++) {
foo[5 - i] = (short) (bar % 10);
bar /= 10;
}
それに6桁未満の数値が来たときに詰めたいってんなら
桁数は対数で計算しろよ。
会社で仕事してるとさ、オブジェクトでも何でも一旦文字化して計算して復号 するという馬鹿なコードを見かけることが多いね。 そういうやつは 1.低レベルUnixオタ(Perl厨とか) 2.Coboler崩れ 3.ド素人VB使い のどれか。 SOAPだのHttpだのでそれをやるのは、プロトコルだから仕方がないだけ。 本来強い型制約言語がもたらす型安全性をぶち壊しにするこういうコード は、いい加減にしてほしい。
>>878 ウホッ!いいコード
参考になりました。
ウゲっ intの範囲超えてたんだ… きずかなかった すみません long型の10桁の(ry
前に(たしかここで)聞いて回答が得られなかったので・・・もう一度だけ Batik で ECMAScript を含んだ文書を表示/印刷しようと思うのですが、 スクリプト内で Attribute の変更や、TextNode の追加は出来るものの、 Element (具体的には <g> や <text>) の追加ができません。 印刷のときはスクリプトが動きすらしなかったのですが、 Transcoder に KEY_EXECUTE_ONLOAD を true 設定することで実現できました。 上記の問題も似たような方法で解決できるような気がするのですが・・・ 誰かご教授願います
883 :
デフォルトの名無しさん :04/05/03 04:09
質問です。 void getName(String n) { //文 } このメソッドが呼び出された場合、新しくStringオブジェクトが作られますか?
884 :
デフォルトの名無しさん :04/05/03 04:55
883は罠ですか? 再利用可能なインスタンスがあれば作られないこともあるし、 つくられることもある。 それ以外の場合は作られる。 という認識でいるけど、あんま自信ない。スタックのメモリ管理が 云々とか話?
>>883 そのメソッドの中の実装次第です。
#戻り値 void で getなんちゃらというメソッド・・・・
886 :
デフォルトの名無しさん :04/05/03 12:26
>>870 変数をa,b,cとして
String hoge = Integer.toString(a) + Integer.toString(b) + Integer.toString(c);
とかして、intに戻したら駄目なの?
>>884-885 そういう話じゃないと思う。
>>883 試してごらん。
import java.awt.Point;
void setZero(Point p) {
p.x = 0; p.y = 0;
}
Point p = new Point(10, 10);
setZero(p);
System.out.println(p.x);
新しいオブジェクトが作られてるだろうか。
void getName(String n) { String str1 = new String("unko"); String str2 = new String("kuso"); String str3 = new String("baka"); String str4 = new String("sine"); String str5 = new String("geri"); String str6 = new String("hage"); } 作られてるな
>>887 void setOrigin(Point p) {
origin = p.clone()
}
さて、新しいオブジェクトが作られてるだろうか。
やっぱ実装次第だよなぁ。
891 :
デフォルトの名無しさん :04/05/03 14:24
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class TestResize{ public static void main(String[] args) { Frame frame = new Frame(); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); frame.setLayout(new BorderLayout()); frame.add(new MyLabel("CENTER",SwingConstants.CENTER),BorderLayout.CENTER); frame.add(new MyLabel("NORTH",SwingConstants.CENTER),BorderLayout.NORTH); frame.add(new MyLabel("SOUTH",SwingConstants.CENTER),BorderLayout.SOUTH); frame.add(new MyLabel("WEST",SwingConstants.CENTER),BorderLayout.WEST); frame.add(new MyLabel("EAST",SwingConstants.CENTER),BorderLayout.EAST); frame.setSize(new Dimension(300,300)); frame.show(); } }
内部の事じゃなくて、 引数に指定した型の新しいインスタンスが作られているかどうか、じゃないの?
class MyLabel extends JLabel{ String text; public MyLabel(String str,int align){ super(str,align); this.text = str; } public void setSize(int width,int height){ System.out.println(this.text); super.setSize(width,height); } public void setSize(Dimension d) { System.out.println(this.text); super.setSize(d); } public void setPreferredSize(Dimension preferredSize) { System.out.println(this.text); super.setPreferredSize(preferredSize); } }
>>883 >void getName(String n) {
>//文
>}
getName(str);
という感じで呼び出されたら、まず、
String型のローカル変数nが作られて、
変数strの値(Stringオブジェクトへの参照)
がnに代入される。(n==strってこと。)
>>894 JDK1.4.2のソース見たけど Component#setBounds(int,int,int,int) 呼んでる。
BorderLayout が何を呼んでサイズ調整するかは仕様で決まってないみたいなので
確実にやりたいなら setXxxxx でサイズや位置変更するメソッドを全部トラップするしか無いと思われ。
『毒臭JAVA』あの本は酷かった。
春ダネエ…
>>896 回答ありがとうございます。
とりあえずテストコードでは確かにうまく呼ばれました。
これから実際のコードに適用してみたいと思います。
>>897 やっぱりそこ突っ込まれたか…
混ぜちゃだめな理由を知らないからずっと混ぜっぱなしなんだけど…
ごめんなさい。質問が不足していました。
勉強し始めたばかりの初心者でメモリの話とかではないです。
>>883 の場合、変数nの値をメソッド内で書き換えても呼び出し側で
指定した引数には影響ないと本にありました。
で、それは引数とは別のオブジェクトを参照している為らしいの
ですが、メソッドパラメータがString型でない場合にはメソッド内で
n = new A();
の様にしなければ同じオブジェクトを参照したままだ、ともありました。
String型だけはnew演算子をつかわなくても初期化できるから、
String nの所で新しいオブジェクトが出来てるのかなぁー?
と思ったのです。
わかりづらくてすいません。
>>901 String a = "abc";
のとき
String b = a;
とやっても新しいオブジェクトが作られるわけではないのと同じ。
>>900 なんのための推奨サイズか
JFrameの上にコンポーネントを載せていってそのコンポーネントの各推奨サイズをセットして
JFrameでpackを呼ぶ
環境が異なるとwindowの境界サイズ変わるのを防ぐために必須
setsizeは自分専用アプリだとしても使っちゃいけないと思うぞ
2000とXPでもデフォルトの境界サイズ大きく違うし
ピクセル指定ではなくてこの推奨サイズを積み重ねていくのがswingの基本だ
推奨サイズ以外が使われることはまずないしな
nullレイアウトのようなピクセル指定で配置したくてもまずはjpanelをのせて
その推奨サイズを設定するべし
>>901 その本に本当にそのまま書いてあったなら、もう焚いてしまった方がいい。
君の勘違いであって欲しいが、
「String型でない場合には」なんて書いてあれば多分もう×
>>901 メソッドも代入もすべて参照渡し。
String でいじっても問題ないのは String が
内容を変更することができない immutable (不変)なクラスだから。
>>883 は作られないと言うのが答え。
その本の言い分は何かおかしい。
不変クラスだから同じクラスを参照していても問題ない。
>String nの所で新しいオブジェクトが出来てるのかなぁー?
>>902 の通り単なる代入なので参照が渡されるだけですな。
ろくでもない本を読んでるからこそ こんなスレに行き着くのかもしれぬ
>>901 そもそも、String型はオブジェクトの内容を変更するメソッドがないので、
>>883 のメソッドは意味のないものになっている。
参考 StringBuffer
void getName(StringBuffer n) {
if(n == null){
// エラー処理
}
n.setLength(0); // サイズを0で初期化
n.append("abc"); // ここで名前を設定
}
>>905 揚げ足取るようで悪いけど参照渡しではないよ。
C++なんかの「いわゆる」参照渡しでは
void hoge(Foo &foo) {
foo = bar;
}
とやると呼び出しもとのオブジェクト自体が変わっちゃうけどJavaで
void hoge(Foo foo) {
foo = bar;
}
とやっても呼び出しもとには影響しない。
>>907 getName という名前のメソッドで set するあなたの良識を疑う
>>909 そもそも元投稿の803がvoid getName(String s)なんて書いてたから
それで説明しているのでしょう
英小文字「a」はアスキーコードでは10進数の97ですが、 ではint型の値97からString型の値aに変換するには どうしたら良いでしょうか? どなたかお知恵を貸して下さいませ。
「参照渡し」かどうかをこのスレで話すときは、 それが何なのかを定義してからじゃないとだめかも。 「Cで言うところの参照渡し」、とか、 「オブジェクトへの参照がコピーされて渡される、という意味での参照渡し」とか。。 (ポインタあるなし議論も同じ。)
↑ですが解決しました。 char c = 97; String.valueOf(c); くだらない質問してすみません。
>>908 ああ、確かにそういう意味では参照渡しじゃないね。
参照をコピーしているのは参照渡しとは言わない方がいいのかも?
参照を値渡し。
なんか過去mlで見た流れだな
>>903 903さんがSwingのレイアウト手法を学んだページor本を紹介してもらえませんか?
ふつーにSwing触っていればわかるようなもんだが? まぁswingさわり始めたときは1.1のころでオプションのときだったから 地道にやっていればわかるだけ pack使っていないコードみたらまず糞だと思えばいい
919 :
デフォルトの名無しさん :04/05/03 22:01
URLエンコードのことなんだけど。 googleでShift_JISだと「日付」は「%93%FA%95t」になってるんだけど、 URLDecoder.decode("%93%FA%95t","Shift_JIS"); で文字化けしてしまう。 どうしたらうまくデコードできるんだろうか。
UTF-8じゃねーの?
googleはデフォutf8だぞ
923 :
デフォルトの名無しさん :04/05/03 22:12
URLDecoder.decode("%93%FA%95%74","Shift_JIS"); はちゃんと「日付」になる。
924 :
デフォルトの名無しさん :04/05/03 22:18
結局tとかを%74に変換するような処理を書いた。 スマートな方法ってないのかなぁ
URLEncoderとセットで使うものかと
つまりRefererの解析なんかには使えない、ということ?
Refererは偽装してナンボ
どこに責任があるのでせう?
930 :
デフォルトの名無しさん :04/05/04 00:14
java3Dで作った3Dポリゴンをブラウザで表示してHPに載せたいんですが そんなことってできますか?
キャプチャーしてJPEGにでもすれば?
932 :
デフォルトの名無しさん :04/05/04 00:18
いきなりですが、ポリモーフィズムを実現するためにプログラムつくってるんですが。 プログラム自体をつくるのに手間取っています。どうか語慈悲を・・。 エラー文 FoodCaller.java:9: 変数 f は初期化されていない可能性があります。 String name = f.getName(); ^ FoodCaller.java public class FoodCaller { public static void main (String args[]) { Food f; if (args[0].equals("banana")) { f = new Banana(); } else if(args[0].equals("apple")) { f = new Apple(); } String name = f.getName(); } } Food.java public class Food { public String getName(){ return "Food"; } }
933 :
デフォルトの名無しさん :04/05/04 00:18
追加 Apple.java public class Apple extends Food{ public String getName() { return "Apple"; } } Banana.java public class Banana extends Food{ public String getName() { return "Banana"; } }
>>932 こういう場合は
Food f;
のところ
Food f = null;
じゃない?
>>934 やっぱだめですか・・・
前どっかのサイトでジャバで作られたゲームがブラウザ上で
遊べるサイトがあったのを見てjava3Dと勘違いしちゃったみたいです・・・。
あれはjava3Dじゃなくてjavaアプレットとかいうやつですか?
>>932 args[0] が "orange" だった場合を考えてみよう。
>>932 コンパイラは、
「args[0]が"banana"でも"apple"でも無い場合fに値が入らないのでまずいよ」
と怒っているのです。選択肢は3つ。
1. Food f = nullとして、nullで初期化。
とりあえずコンパイルエラーは消えますが、当然ながら実行時にぬるぽが起きます。
2. Food f = new Food()として、Foodオブジェクトで初期化。
コンパイルエラーは消え、実行時にぬるぽも起きません。
Foodオブジェクトが1つ無駄になるのがいやーんな感じですが。
3. else を追加し、そこでFoodオブジェクトを生成。
コンパイルエラーは消え、実行時にぬるぽも起きず、
Foodオブジェクトが無駄になることもありません。
エラーとは関係ないですが、抽象クラスになりそうなFoodクラスを
インスタンス化できるのが変な感じですね。
Null Objectパターンを適用してNullFoodクラスを定義したらどうでしょう?
abstract public class Food{
abstract public String getName();
}
public class NullFood extends Food{
public String getName(){
return "";
}
}
if (args[0].equals("banana")) { f = new Banana(); } else if(args[0].equals("apple")) { f = new Apple(); } else return;
941 :
デフォルトの名無しさん :04/05/04 01:02
939さんの3で解決させてもらいました。 しかし、この自分が持ってるテキストの説明のプログラム・・・。 嘘ばっかりだな。
>>941 次の被害者を出さないためにそのテキストのタイトル晒しキボン。
>>940 それだったら throw new IllegalArgumentException(args[0]); とかしたほーが。
>>944 漏れも例外投げるのが一番普通かと思ってしまったが。