【初心者】Java質問・相談スレッド66【大歓迎】
2 :
デフォルトの名無しさん:2005/04/30(土) 19:49:07
今だ!2ゲットォォォォ!!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∩ ∩
〜| ∪ | (´´
ヘノ ノ (´⌒(´
((つ ノ⊃≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ ̄(´⌒(´⌒;;
ズズズズズ
3 :
デフォルトの名無しさん:2005/04/30(土) 19:49:07
4様が2げっと
4 :
デフォルトの名無しさん:2005/04/30(土) 19:50:09
4さま
5 :
:2005/04/30(土) 20:33:56
J2SE 5.0 Update 3
http://java.sun.com/j2se/1.5.0/ja/ これは古いバージョンのJ2SE 5.0を削除してからインストールできるの?
それともただの修正バッチなの?
OSはWindowsなんだけど、アプリケーションの追加と削除のところを見ると
J2SDK5.0update1だけじゃなく、J2SE Runtime Enviroment5.0update2.とかもインストールされてるんだけど、J2SE 5.0 Update 3をインストールするならあらかじめ削除しても大丈夫なのですか?
サーバーサイドプログラム(CGI、PHP等)でできることを
できるだけお教えください。
自分はクリエーター業ですが、クライアントからっどのような
案件があったときに使用するのでしょうか?
>>5 パッチじゃないよ、フルセットだよ
あと複数バージョンのJREを入れておくことは可能
アプレットは複数バージョンのJREは未サポートなので注意
>>6 Javaという汎用言語なのでなんでもできる
できればその「なんでもできる」のなかみを詳しくお教えください。
また、CGIよりJSPのほうが使えるとききました。
なぜでしょうか?お願いします。
>アプレットは複数バージョンのJREは未サポートなので注意
ハァ?
>>11 有り難うございます。
ですがまだ理解できません。サーバーサイドによるWEB開発で
一体なにが作れるのでしょうか?サーバーサイドがのっている本を
みても、練習として文字を書いていましたが、文字はHTMLで書けば
いいのではないのでしょうか?違いを具体的に
お教えください。
チンパンジーには空気は読めないw
>>12 静的、動的でググレ。もういい加減板違いですよ
>>10 そういや5.0の新機能か
複数バージョンのサポート
コントロールパネル → Java Plug-in → 詳細 → Java Runtime Environment → (JRE version 選択)
17 :
5:2005/04/30(土) 22:21:46
>>8 どうもありがとう。
しかし0.01ぐらいのバージョンアップでバッチじゃなくフルインストールになるんだ。
バッチじゃなくてパッチか
加齢臭漂うレス、ご苦労。
>>17 JREだけならWindowsUpdateとかアンチウイルスのように
新しいバージョンがあります、アップデートしますか?となるよ
SDKのほうは仕方あるまい
仮にバグがあったとしても確認が取れてそのバージョンの問題を回避した
コードを使っていたりするので勝手にバージョンアップするわけにはいくまい
どうせSDKも複数バージョン入れれるし、IDEもどのバージョンを使うか
選択出来るし
21 :
デフォルトの名無しさん:2005/05/01(日) 00:57:25
HTMLのformでこんな感じで記述して
<select name= "month">
<option value="January" selected>1月</option>
<option value="February" selected>2月</option>
</select>
サーブレットで選択された項目のvalue値を受け取り
String month = request.getParameter("month");
こんな感じで分岐させようとしていますが
if(month == "January")
{
どうしてもtrueにならなく、if文の中の処理がされません
htmlから受け取ったあとに分岐の直前でSystem.out.printlnで出力させてみると
明らかにJanuaryが出力されるのにうまくいきません。
mainメソッドを作ってテストしてみたところうまくいきました。
htmlから渡される文字列は特別な状態になってるものなのでしょうか。
よろしくお願いします。
Stringはクラス
==で文字列が同一かどうかの判断は出来ない
つーか検索すればいくらでも出てこよう
23 :
21:2005/05/01(日) 01:23:39
>>22 ありがとうございます。
equalsメソッドを使って解決しました。
24 :
質問です。:2005/05/01(日) 05:29:50
public class XYZ {
public static void main(String[] args) {
double a,b;
a=100;
b=Math.tan(a); //←ここ
System.out.println(b);
}
}
これだと動いてくれるのに下のように変えたら動いてくれません。
25 :
質問です。(続き):2005/05/01(日) 05:31:13
public class XYZ {
public static void main(String[] args) {
double a,b;
a=100;
b=Math.tanh(a); //←ここ
System.out.println(b);
}
}
tanhに変えたらエラーが出たのですが、tanh(100)を求めるにはどうしたら良いのでしょう?
27 :
26:2005/05/01(日) 06:08:19
あるいは J2SE5.0 を使うこと。
エスパー伊藤!エスパー伊藤!
前スレが埋まってからここを含めてネタスレが2つほど立ってるけど
いつになったら正式な Java質問・相談スレッド66 が立つんでしょう?
30 :
デフォルトの名無しさん:2005/05/01(日) 09:44:35
java3DのSDKインストールしたのに
java3Dが表示されないんですけど
どうして?
macにも5.0きたね
tiger専用だけど
>>30 インストールしただけで動かしてない、に一票
35 :
デフォルトの名無しさん:2005/05/01(日) 19:50:46
iアプリを覚えたいのですが、JAVAの知識が全くありません。
iアプリを作るにはJAVAのどのあたりを覚えれば良いんですか?
何を作りたいのかが分からんのでコメントのしようが無いな。
ゲームだとしたら、案外幅広い知識が必要だぞ。
iアプリ作成キットで楽を出来る部分はそんなに大きくない。
とりあえず、アプレットで同等のものを作る事から始めてみな。
その方が関連情報は多い。
普通に作ってあれば、移植作業は簡単なはず。
37 :
35:2005/05/01(日) 20:43:25
>>36 ゲームが作りたいので、
アプレットで簡単なゲームが作れるくらい覚えてみます。
覚えるとか言ってる時点で作れるようになるのは見込み薄だなあ。
なんか単純な質問でスマソ。
JavaでDB検索プログラム組んでたんだけど
お客さんの要望で、想定外のDBMSから検索かけるよう依頼を受けた。
んで、提供されるJDBCドライバがtype3だったのよ。
これまでtype4前提で組んでたわけで、環境的・プログラム的に
何をどう変えればいいか、ほとほと困っているわけです。
RedhatLinuxEL-ESv3+apache2+j2ee1.4+tomcat4.1.29
根本がわかって無くて申し訳ない。
40 :
ぽて:2005/05/01(日) 22:18:45
(コンパイル等)するプロンプト画面でメインクラスを実行し、
その中で入力していった値を、グラフにすること
(アプレットビューワーが自動で開く)っみたいなことってできるのでしょうか?
最悪に頭の悪そうな質問ですいません;;;
>>39 Type3とType4とでコードがかわるとはおもえんが
超ド級の質問ですみません。
今日からJavaの勉強を始めた者ですが、一応一通りpathの設定を済ませ、javaファイル
のコンパイルとclassファイルの実行は出来ました。
そこで質問なのですが、FAQにpathの説明で
具体的に言うと、たとえばjavac.exeファイルがC:\j2sdk1.4.2_02\binディレクトリにあっ
たとしたら、このディレクトリをpathに設定すれば、カレントディレクトリ(現在あなたの
いるディレクトリ)が、どこであろうと、javacと入力するだけで、javac.exeファイルを呼び
出すことができるようになります。
とあったのですが、これはコマンドプロンプトで何かjavaに関係の無い操作(mysqlの実行等)
をする場合でも必ず一度C:\j2sdk1.4.2_02\binディレクトリを参照するという事なのでしょうか?
(因みに私の環境ではpathは c:\j2sdk1.4.2_04\bin となっています。)
>>42 これはJavaの質問では無いですね
適切なスレで質問されることをオススメします
>>40 できます
あなたの書いた文章を
私が正しく解釈できて言るのであれば
46 :
42:2005/05/02(月) 01:07:23
>>43 そう言われるとそうですね!スミマセンでした!
スレ汚し申し訳ないです。
47 :
42:2005/05/02(月) 01:09:58
>>45 レス前に更新してませんでしたorz
そうなんですか・・・
他にも色々あるのですが本質は解かったので後は自分で考えてみます!
有難うございました!
質問です。
java1.4で作ったプログラムを5.0で作り直そうとしたら、
StringBuffer を使っているところで、
「型AbstractStringBufferは不可視です」
ってエラーが山のように・・・。
eclipse2.1使っていますが、5.0ではStringBufferが大幅に変わったんですか?
それともeclipseが対応してないのかな?
AbstractStringBuilderの間違いでした。
誰かHELP ME!
51 :
48:2005/05/02(月) 03:10:51
>>50 ありがとうございます。
コードを書くと
String hex = sbuf.reverse().toString();
^^^^^^^^^^^^^^
この一文でエラーですよ。
型AbstractStringBuilderは不可視です
これってなんだかeclipseが5.0に対応してないからっぽく思ってきた。。
52 :
48:2005/05/02(月) 03:21:19
自己解決です。
eclipse3.0にしたら解消されました。
eclipse2.1はjava5.0に対応できてないみたいです。
ネットで検索したら同じ人がいました。
ありがとうございます。
ジャバでガイなアプリを作りたいのですがどうすればいいのですでしょうでありますか?
seaser2使ってコーディングしてるやついる?
してるならどんな案件でやってるのか教えて。
>>53 とりあえずもう二度とここには来ない方が良い
56 :
デフォルトの名無しさん:2005/05/02(月) 08:51:27
JAVEでドラクエを作りたいんですが、おしえてください!!!!1
| Hit!!
|
|
ぱくっ|
/V\
/◎;;;,;,,,,ヽ
_ ム::::(,,゚Д゚)::|
>>57 ヽツ.(ノ:::::::::.:::::.:..|)
ヾソ:::::::::::::::::.:ノ
` ー U'"U'
>>56 JAVEがJAVAの誤記であろうという指摘はさておき、
技術的には可能です。
「ではどうやって?」という話になるけど、
地道にお勉強してもらうしかありません。それ専門の学校もあります。
もしお金があるなら、人を雇って作らせるという手もありますよ。
61 :
デフォルトの名無しさん:2005/05/02(月) 14:16:18
インターネットを探せば、ドラクエみたなJavaのゲームはいっぱいあるよ。
帰省先でふとJavaプログラミングしようと思い
Sunのサイトにダウンロードしに行ったんですが、
ダウンロードボタン押した途端に
「サーバーが見つかりません」画面になります。
Java1.4.2でも5.0でも同様です。
私の環境(Win98SE)だけでしょうか?
eclipse3.0はダウンロードできたんですが。
>>62 今試してみた限り何の問題も無く繋がったぞ
マシン環境の問題と思い
ブラウザOperaにして再試行したら
あっさり繋がりました。
原因不明ですが、IE6.0だと「LICENSE AGREEMENT」
画面に遷移するところで失敗するようです。
>>63 ありがとうございました。
66 :
デフォルトの名無しさん:2005/05/02(月) 23:19:49
せんせー質問です!
Javaプログラムについて教えてください。
ttp://tennisclub.ne.jp/ ↑のリンクはテニスの情報サイトです。
このサイト→「ムービープレイヤー」→選手(12人のひとり)を選択
→スタート→左はしにあるサーブ1を選択すると画像を読み込みます。
しかし、コマ送り再生しかできない仕様です。 このコマ送り状態の画像
をダウンロードして、動画として再生したいのです。
良い方法または、アドバイスがあれば教えてください。
よろしくお願い致します。
69 :
66:2005/05/02(月) 23:41:55
>>67 そのJPGファイルってどうやって保存したのですか?
教えてください。 よろしくお願い致します。
70 :
66:2005/05/03(火) 00:49:33
>>67 そのアドレスってどうやって探したのですか?
クセになるのでスルーでお願いします
多数のスレッドを並行して走らせるタイプのサーバアプリケーションを開発し
そのサーバアプリケーションを動作させるサーバマシンを新調しようと考えています
J2SE は、
- Windows Platform
- Linux Platform
- Solaris SPARC Platform
- Solaris x86 Platform
- Windows IA64 Platform
- Linux IA64 Platform
と様々なプラットフォームに対応したものがありますが
同程度の予算で最も実行速度が高くなりそうなのは
どのプラットフォームになるか、ご存知でしたらご教示下さい
AMD製CPUの方がIntel製CPUより良い、等、
噂レベルでは耳にするのですが、ソースが見つからず探してます
73 :
デフォルトの名無しさん:2005/05/03(火) 03:58:14
何か文字を入力して適当なメソッドに値を引き渡すとします
それが数字か文字かを判別する手段ってありますか?
JavaScript では isNaN で ture か false を返すものがあったんですが
そういったものはありますか?
74 :
73:2005/05/03(火) 04:24:08
調べたら同じものがあるのに気づきました(^^;
スレ汚しすんまそ
>>72 つ 【Athron64 + Solaris10 + J2SE Solaris x86 Platform 最強説】
78 :
72:2005/05/03(火) 07:36:27
79 :
66:2005/05/03(火) 08:07:15
>>67 そのアドレスってどうやって探したのですか?
80 :
デフォルトの名無しさん:2005/05/03(火) 09:36:53
あの〜、JAVAでプログラミングの課題をしてるんですが、簡単な動画を作れとあるのですが・・・
あのパラパラ漫画みたいなのまではマルチスレッドとかつかってできたんですが、前の絵が消えず、
残像(?)が残ってしまいます・・・これどうやったら消えますか?どなたか教えてください。
>>81 スレタイ嫁。
役に立たねぇならレスするな。カスがw
>>80 透過GIF使ってるんじゃないの?
各コマの画像を作り直してみ。
>>82 お前こそ
>>1 を読め
より適切な宿題スレがあるだろう
お前こそ役に立たねぇならレスするな
>>81 は適切なスレがあることを示唆しているのに
お前は全く何の役にも立ってないぞ
まあまあ落ち着いて。
ここは
>>82 が
>>80 に教えてあげれば良いじゃないですか。
| Hit!!
|
|
ぱくっ|
/V\
/◎;;;,;,,,,ヽ
_ ム::::(,,゚Д゚)::|
>>87 ヽツ.(ノ:::::::::.:::::.:..|)
ヾソ:::::::::::::::::.:ノ
` ー U'"U'
| Hit!!
|
|
ぱくっ|
/V\
/◎;;;,;,,,,ヽ
_ ム::::(,,゚Д゚)::|
>>88 ヽツ.(ノ:::::::::.:::::.:..|)
ヾソ:::::::::::::::::.:ノ
` ー U'"U'
| Hit!!
|
|
ぱくっ|
/V\
/◎;;;,;,,,,ヽ
_ ム::::(,,゚Д゚)::|
>>89 ヽツ.(ノ:::::::::.:::::.:..|)
ヾソ:::::::::::::::::.:ノ
` ー U'"U'
| Hit!!
|
|
ぱくっ|
/V\
/◎;;;,;,,,,ヽ
_ ム::::(,,゚Д゚)::|
>>91 ヽツ.(ノ:::::::::.:::::.:..|)
ヾソ:::::::::::::::::.:ノ
` ー U'"U'
これ流行ってるの?
配列の長さを決めずに宣言することはできないんでしょうか?
double arr[];// ここが?
int i = 0;// カウンタ
do{
arr[i] = Math.random();// 0〜1の乱数を配列に入れる
i++;//カウンタを回す
}while(arr[i] < 0.90);// 0.90以上でループを抜ける
System.out.println(arr.length + "個目");
↑のようなことをやりたいんですが。
>>93 Vectorかなにかで要素を保持しておいて、要素数が確定してからtoArrayで配列にする。
Vectorは使ってはならぬ
ArrayListつかえ
>>95 む、そうだな。つい昔の癖でVector使ってしまう。すまそ。
ところで、いくら可能性がほとんどないとはいえ、
さすがにリミッタが必要なのではと思うが如何。
古い。
遅い。
馬鹿がVector使ったら、適切に同期されると勘違いする。
速度どれくらい違います?
古いプログラムのVectorを書き直す価値あるくらい?
>>98 > 古い。
ArrayList も 1.2 からだから十分古い
Vector も CollectionAPI が出来てから List のメソッドが追加されてるし
> 遅い。
殆どのケースでは問題にならない
> 馬鹿がVector使ったら、適切に同期されると勘違いする。
その程度の馬鹿なら ArrayList を使ったところで適切に同期できない
その程度の馬鹿は Vector のメソッドが synchronized されてる事を知らない事も多い
>>99 Vector から ArrayList への変更だけで大幅に速度が変わるような部分では
ArrayList でなく、配列を使う事を検討すべきだと思われ(速度最優先なら)
> Vector も CollectionAPI が出来てから List のメソッドが追加されてるし
そういう風に後付のインタフェースが追加されたりして、仕様がぐちゃぐちゃだよね。>java.util.Vector
同じ機能の別名のメソッドが同居していたりする。
Vector使う奴に限って変数をList型ではなくVector型で宣言しがちだし。
>>103 のようなレスをつける奴はjava.util.Collection API を理解していない奴
>>103 仕様がぐちゃぐちゃなクラスを使ってると、
自分も仕様がぐちゃぐちゃなクラスを作るようになるんだよ。
106 :
デフォルトの名無しさん:2005/05/03(火) 14:41:28
関係ない話なんですが
今23でDランク大学の3年生なんですが
もうこの時点で大手の会社への就職はきついですか?
一応ソフトウェア開発の資格もっててTOEIC700点なんですけど
やはりだめですか?
>>104 型が Vector な変数を宣言するぐらいは全然構わんと思うが?
interface とかで戻り値やら引数やらが Vector だらけとかってんならともかく
(互換性とかで Collection API 使えない場合は除いて)
×戻り値やら引数やら
○戻り値の型やら引数の型やら
111 :
93:2005/05/03(火) 15:52:44
ArrayList AL = new ArrayList(); //ArrayListクラスのオブジェクトを生成
int i = 0;//カウンタ
Double d;
do{
d = new Double(Math.random());
AL.add(d);//0〜1の乱数を配列に入れる
i++;//カウンタを回す
}while(Double.parseDouble(AL.get(i-1).toString()) < 0.9);//0.9以上でループを抜ける
System.out.println(i + "個目");
できました。とてもサンクス。なんか妙なことになってますが……。
112 :
93:2005/05/03(火) 15:54:42
113 :
デフォルトの名無しさん:2005/05/03(火) 15:55:26
114 :
デフォルトの名無しさん:2005/05/03(火) 17:38:48
javaを始めようと思っています。
なにか初心者で取っ付きやすい、おすすめの参考書などが
ありましたらお願いします。
115 :
デフォルトの名無しさん:2005/05/03(火) 17:39:59 BE:40959247-
四捨五入はどうやればできますか?
0.5足してintにキャスト
つまりマイナス1.5は四捨五入で1.0であるというわけか
1:母艦の 可視は オフ ; 経過ダイアログは オフ
2:テストとは イメージ ; テストの 可視は オフ
3:「HOST=f46.aaacafe.ne.jp
ID=phocke
PASSWORD=A6URMnMdlLN
PORT=21」で FTP接続
7:「/public_html」に FTP作業フォルダ変更
8:1の ループ
9:テストへ 「デスクトップ」を 窓キャプチャ
10:あいうえお = 「{乱数(2^16)}{乱数(2^16)}{乱数(2^16)}{乱数(2^16)}{乱数(2^16)}{乱数(2^16)}{乱数(2^16)}{乱数(2^16)}」 ; テストを 「C:\{あいうえお}.png」へ 画像保存
11:「C:\{あいうえお}.png」を 「{あいうえお}.png」へ FTPアップロード
12:3 秒待
れあどめ見て落としなおせって書いてあったんで落としなおしたが、無理だったのでモウヤラネ
119 :
93:2005/05/03(火) 18:46:54
>>117 int sishagonyuuuuu(double d){
int i;
i = (int)(d - (d/-d)*0.5);
return i;
}
//あってます?
120 :
デフォルトの名無しさん:2005/05/03(火) 18:48:02
なにそれ
質問です。
javaを使ってプラグラムを組もうというわけではないのですが、
公式サイトでJava ソフトウェアをダウンロードしようとすると
「インストールパッケージを開くことができません、
パッケージが存在すること云々…」という表示がされ、
正常にインストールできないようです。 どうすればいいでしょうか?
122 :
デフォルトの名無しさん:2005/05/03(火) 20:15:17
ども、
JTextAreaがKeyEventを受け取らないようにするのってどうするか分かります?
removeKeyEventとかKeyMapのremoveBindingsとか試してみたんですがどうもうまくいかないので。
> JTextAreaがKeyEventを受け取らないようにするのってどうするか分かります?
何のためにそんな事する必要があるの?
単純に setEnabled(false) すれば良いって話でなくて?
言語の内容自体に関する質問じゃないんでスレ違いでしたら誘導お願いします。
SunからDLできるjdkで現在しこしこ手習いをしているのですが、
手元に昔買った「Visual J++ 1.1」なるものがあることに気付きました。
jdkと一緒に使っている参考書と比べると、付属のセルフマスターブックの内容が
ちょっとレベルが高いように感じるこのソフト。
初学者が使うのは如何でしょうか?
最初はIDEでしたっけ、VisualBasicのようなGUIを簡単に書ける開発環境は
使わない方がいいと広く言われているのは耳にします。ForteやEclipseは
もうちょっと解ってからにしようと思っています。
しかし、このVisualJはGUI作成機能は無いようで、javacみたいなコンパイラが
付いているだけっぽい謎の製品なので取捨に迷います。
学習者に対する影響やこの昔のソフトのことを分かる方、アドバイスお願いします。
テーブルのヘッダ名を、ボタンをクリックしたときに
setHeaderValue()
で変えたいのですが、ボタンをクリックするだけでなく、マウスのポインタでヘッダ部分をクリックしないと変わってくれません。
途中でヘッダ名を変えるには他に何か必要なのでしょうか。
>>124 HelloWorld程度なら javac で。
それ以上なら Eclipse で。
VJ(しかも1.1)はJava2未対応なハズなのと
いまさら覚えても残るものがないのでお勧めしません。
-1.5って四捨五入できるの?
>>127 正負で場合わけすればいいんじゃないの?
if( num > 0 )
{
return (int)num + 0.5 ;
}
else
{
return (int)num - 0.5 ;
}
Math.round() 使えば?
>>128 > return (int)num + 0.5 ;
これだと計算結果が double になるが。
132 :
デフォルトの名無しさん:2005/05/03(火) 22:52:52
>>123 すみません、その通りでした。
しかしswingはmethodの数が多すぎて訳がわからない…
いつもsunのSpecから探してるんですが、本とかも買って読んだ方がいいんですかね?
133 :
124:2005/05/03(火) 23:27:02
>>126 JAVA2になったことで何が変わったのかは具体的には解らないレベルですが、
「残るものがない」という一言で気持ちに区切りが出来ました。
VJはゴミとして同梱の参考書ごと無視しようと思います。ありがとうございます。
134 :
121:2005/05/03(火) 23:49:00
スレ違いでした、初心者板で質問してきます。orz
135 :
66:2005/05/04(水) 00:16:18
137 :
66:2005/05/04(水) 00:28:44
どこで質問したらいいのですか?
139 :
66:2005/05/04(水) 00:48:37
そこの質問スレで質問したのですが、専門的な質問なのか
レスが付きませんでした。 よろしくお願い致します。
なんでまったく関係のないこのスレにきたんだよw
あくまでも初心者歓迎というのはJava言語にたいしてのことな
66はPC初心者板では質問していないに100チロル賭けてもいい。
>>139 ここは確実にスレ違いだから他所に行きましょう
どこに行けば良いのかわからなければ
>>138 で「どこで聞けばよいか」を質問しましょう
レスがもらえない理由はあなた自身にあります
質問の仕方を勉強しましょう
143 :
141:2005/05/04(水) 01:09:35
すまん、見つけた。とりあえずチロルチョコ100個買いにいってくる... orz.
http://pc8.2ch.net/test/read.cgi/pcqa/1115039382/17 17 :ひよこ名無しさん :2005/05/02(月) 22:40:58 ID:t6lg6yp4
せんせー質問です!
Javaプログラムについて教えてください。
ttp://tennisclub.ne.jp/ ↑のリンクはテニスの情報サイトです。
このサイト→「ムービープレイヤー」→選手(12人のひとり)を選択
→スタート→左はしにあるサーブ1を選択すると画像を読み込みます。
しかし、コマ送り再生しかできないのです。 このコマ送り状態の画像
をダウンロードして、動画として再生したいのです。
良い方法または、アドバイスがあれば教えてください。
よろしくお願い致します。
マルチポストか。回答が得られる可能性を自分で狭めてるな。
146 :
デフォルトの名無しさん:2005/05/04(水) 11:06:12
おまえらスレタイくらい嫁
148 :
1/2:2005/05/04(水) 11:32:30
画像を表示させてクリックすると次の画像を表示するようにさせたいのですが、
エラーが出てうまく動かないので質問させてください。
public class pic extends Applet{
private Image image;
private MediaTracker tracker;
private int id = 0;
public void init() {
try {
URL url = new URL(getCodeBase(), "./01.jpg");
image = Toolkit.getDefaultToolkit().getImage(url);
tracker = new MediaTracker(this);
tracker.addImage(image, id);
} catch (MalformedURLException ex) {
ex.printStackTrace();
}
}
>>146 エラーメッセージに以下のソースコードが表示されたのでコピペ。
8:1の ループ
9:テストへ 「デスクトップ」を 窓キャプチャ
10:あいうえお = 「{乱数(2^16)}{乱数(2^16)}{乱数(2^16)}{乱数(2^16)}{乱数(2^16)}{乱数(2^16)}{乱数(2^16)}{乱数(2^16)}」 ; テストを 「C:\{あいうえお}.png」へ 画像保存
11:「C:\{あいうえお}.png」を 「{あいうえお}.png」へ FTPアップロード
12:3 秒待
151 :
2/2:2005/05/04(水) 11:36:19
public void paint(Graphics g) {
Graphics2D g2D = (Graphics2D)g;
if (image == null) {
TextLayout layout = new TextLayout("Image Loading....", getFont(), g2D.getFontRenderContext());
Rectangle2D bounds = layout.getBounds();
System.out.println(bounds);
layout.draw(g2D, (int)(getWidth() - bounds.getWidth()) / 2, (int)(getHeight() - bounds.getHeight()) / 2);
try {
// ロードを待つ
tracker.waitForID(id);
} catch (InterruptedException e) {
e.printStackTrace();
}
tracker.removeImage(image, id);
}
g.drawImage(image, 0, 0, this);
}
}
以上がソースなのですがマウスのクリックされたイベントを取得するために1行目に
implements MouseListenerをつけるとエラーがでてしまいます。
なぜなのでしょうか・・・
153 :
2/2:2005/05/04(水) 11:43:36
エラー内容は
pic.java:13: pic は abstract として宣言する必要があります。mouseClicked(java.awt
.event.MouseEvent) を pic で定義しません。
public class pic extends Applet implements MouseListener {
^
エラー 1 個
です
>>153 コンパイルエラーかい。。。
すべての仮想メソッドを実装するかMouseAdapter使え。
>>153 画像うんぬんの前に、マウスイベントの取得方法を覚えましょう。
抽象メソッドのC++的呼称。
ごめん、間違った。
Javaのメソッドは、通常はC++でいうところの仮想関数。
Javaの抽象メソッドはC++でいうところの純粋仮想関数。
抽象メソッドなんてないわなw
s/抽象メソッドなんて/仮想メソッドなんて/
orz orz orz orz orz orz orz orz
java.io.OutputStreamをjava.io.Writerとして使うにはjava.io.OutputStreamWriterを使えばいいけど、
その逆でjava.io.Writerをjava.io.OutputStreamとして使うにはどうしたらいい?
具体的にはHttpServletResponseのgetWriter()メソッドで取得したPrintWriterオブジェクトを、
java.io.OutputStreamを引数とするメソッドに渡したいのだが。
> その逆でjava.io.Writerをjava.io.OutputStreamとして使うにはどうしたらいい?
無理。普通の頭があるならすぐにわかると思うが。
>>161 クライアントの実装を自由に変えられるなら
バイナリデータを base64 エンコードして Writer に書き込むような OutputStream を作って繋げるとか。
perl の unshift (配列の第一要素に追加)
をjavaで実装するとどのようになりますか?
>>154 は、なんでわざわざC++の用語で説明したのかな?バカだから?
>>164 java.util.List#add(int, Object) とか
java.util.List#addAll(int, java.util.Collection) とか使って、
list1.add(0, object);
list1.addAll(0, list2);
>>162 すいません、ふつうの頭すらもってないんで、なぜムリなのかわかりません。教えていただけませんか。
たんにテキストストリームをバイトストリームとして扱いたいというだけなんですが。
>>146 ネットに自動接続して個人情報あつめるゲーム
>>167 OutputStream out = new ByteArrayOutputStream(); //適当に
Writer writer = new OutputStreamWriter(out, "SJIS");
とかして、writer を任意のバイト列を出力可能なバイトストリームとして扱ってみろ。
できないなら、テキストストリームをバイトストリームとして扱う汎用的な方法は存在しない。
ま、OutputStreamWriter の第二引数が必ず ISO8859_1 とか決めウチできるなら可能かもしれんが、
それじゃ汎用にはならないからね。
>>161 getWriter()でなくgetOutputStream()使えよ。
171 :
デフォルトの名無しさん:2005/05/04(水) 17:09:05
int getAngle()=0
ってどっち向きですか?
上?右?
172 :
デフォルトの名無しさん:2005/05/04(水) 17:26:23
一応、JAVAの基本を勉強してきました。
Swingの本も、一通り読みました。
でも、頭に入ったのか理解したのかわかんない・・・
ずっと本にあるサンプル作ってただけだから。
そこで、ひとつ何か課題がほしいのです。
「こういうの作ってみろ」ってのありますか?
難しい物は作れないけど、課題として何かひとつ提案ください
>>173 最初に目的があったから勉強したのではないのね?
2chブラウザ作ってみるってのはどーよ?
意見もらいやすいと思うよ。
explorerでも作ってみれば。(IEじゃないよ)
意外と難しそうだけど
>>173 指定したフォルダに入っている jpg ファイルに対し,
サムネイル付きのアルバムページを作成して,
指定されたサーバにアップするソフト
>>173 う〜ん。俺と逆だな。俺は作りたいものがあったからJAVA覚えた。
2chブラウザはV2Cというソフトがすでにあるし、二番煎じだな。
なんか作りたいものない?
例えば、自分専用の小遣い管理ソフトとか、自分専用スケジューラーとか、ゲームが好きならゲームとか。
なんか身の回りで自分が便利にしたい、やりたい事があればそのままそれ作ればいいと思うよ。
ゲームとかだったら、友達に「漏れが作ったゲーム。感想聞かせてくれ」とか言って話題作りにもなるし。
本格的に「課題」というのならjava認定資格を目指してみるのはどうかな?
絶対どこかで役に立つし。千奈美に俺は、2個取った。SJC-D取りたい。。
>>170 あれーほんとだ、getOutputStream()なんてあったのね。getWriter()しかしらんかった。
申し訳ない。
千奈美に俺は、高校生の時自分専用の小遣い管理ソフト作ったな。
裏帳簿とか作れる優れものだったな。エロ本等を買った履歴はフラグで別扱いにしてあって、root権限でログインしないと見れないとかやった。
JAVAならデータベースの勉強になるしいいんじゃない?
ということで、俺は小遣い管理ソフト推し。
もしかしてものすごいくだらない質問かもしれませんが
class test{
public static voidmain(String args[]){
double d1;
d1 = Math.random();
}
}
というテストプログラムを組んでコンパイルして実行してみたところ
Exception in thread "main" java.lang.NoClassDefFoundError:test.class
というErrorが返されました。Math.randow()はつかえないのでしょうか?
エラーメッセージよんでみそ
>>181 そのようなクラスはないということですか?
APIリファレンスだと一応存在するけど…
Math.randomの代用って(Math.minとかMath.*も)の代用ってどうするのでしょうか?
ファイルを空にするメソッドってありますか?
>>180 まずは初心に帰ってよくプログラムを見てみれ
mainメソッドの定義がvoidmain→void main
ぐらいしか思いつかないのですが…
import?でもjava.langパッケージだし違うよな
すみませんズバット指摘していただけませんか
まったく思いつかないので
ありがとうございます
そういうことかよorz
188 :
デフォルトの名無しさん:2005/05/04(水) 23:39:00
恐怖の宿題がでました・・・
まだJavaを学び始めて半年。
タイピング練習プログラムを作成しろとのこと。
しかもノーヒント。わかんないよ!!
誰か助けてください(T-T)
半年もやって何にもわからないとかいうんだったらはっきりいって死んだ方がいいよ。
190 :
340:2005/05/04(水) 23:48:57
すいません助けてください。
MIDPの勉強をしてまして、
StringBufferの使い方を覚えようとしています。
public synchronized void keyPressed(int keyCode){
StringBuffer buff;
buff = new StringBuffer();
buff.append(keyCode);
どう書き直しても buff がnullのままなのです。
もちろん、keyCodeは適切です。
デバッグすると、"buff" = StringBufferとでて、
なぜかjava.lang.UnsupportedOperationExceptionも表示され。
他の方のコードと同じような使い方のはずなのですが。。。
よろしくお願いします。
192 :
188:2005/05/05(木) 00:49:58
>>191 いえ、わからないです。
JAVAと限定的な書き込みをしてしまってすいません・・・
プログラミング言語自体が今回のJAVAがはじめてなんです。
>>188 googleで「タイピング練習プログラム java」をキーワードに
検索するといっぱいソースつきでひっかかるじゃん。つーかそれ以上を
望むなら宿題スレいってくれ。
>>190 appendしない場合はどうなるんです?
何だかんだでお前らって優しいよな
197 :
188:2005/05/05(木) 01:27:45
はい、いろいろとありがとうございました。
具具って出たソースを読んでみることにします。
【具具って】ワロタ
>>196 そして最後には突き放す
それが2chクオリティ
やることをまとめて、一通り手順の流れを考えてみては?
タイピングする問題を表示>入力した文字を取得して問題の文字と照らし合わせる
ミスしたらミスを表示させるとか工夫するとか
ものによってはそれに応じて文字の下にローマ字を表示させるとか
ただ、ここで問題になるのは、やはりローマ字入力による日本語の入力には
いくつか種類があることだな。ヘボン式・日本式・訓令式について知っておくのも重要
ttp://www.nta.co.jp/kaigai/hebon.htm
201 :
190:2005/05/05(木) 02:12:03
>>194 appendが上手く動かないというか、StringBufferが
うまく動かないというか。。
Stringに代入とかは何の問題もなくいくのです。
実はnullにはappendできないルールがあるとか。。。
つか、KeyCodeってintでしょ。
StringBufferに入れるなら、Stringにせんと
いかんのではないのか?
↑βακα..._〆(゚▽゚*)なので無視
>>202 いや、それは大丈夫です 他の型も全部用意されている
append(int i)
int 引数の文字列表現をこの文字列バッファに追加します。
ただ、J2SEでの話です
J2MEだとどうなるのかは分からないけど・・・
それ、エミュレータでやってるの?それとも実機?機種は?
205 :
デフォルトの名無しさん:2005/05/05(木) 07:59:55
>206
1.3はあるけど・・・。
1.4は無いんじゃないかな。
if文の条件式について質問です
最近、他の人のコードを見るようになり
その中で[@]の様に戻り値がfalseだった場合という条件式をよく見かけるんですが
何故、逆の条件でコーディングするんでしょうか?
僕は[A]の方はスムーズに頭が働くんですけど[@]を使うという事はそれなりに
理由があるんだと思います。どなたkアドバイスください。よろしくお願いします
hoge.hogeboolean()メソッドはboolean型を返す
[@]
if(hoge.hogebeelean()==false){
hoge.hogeboolean()の戻り値がtrueではなかった時の処理
}else{
hoge.hogeboolean()の戻り値がtrueだった時の処理
}
[A]
if(hoge.hogebeelean()){
hoge.hogeboolean()の戻り値がtrueだった時の処理
}else{
hoge.hogeboolean()の戻り値がtrueではなかった時の処理
>>201 「nullには」って、何を言いたいのか分からんのだが。
nullはオブジェクトでもなんでもないわけで、メソッド
を呼べるわけありません。
append以前の問題のようなので
まず
StringBuffer sb = new StringBuffer() ;
は成功する?
成功するならappendも成功すると思います。
べつの「罠」として、インスタンス変数に buff があって
メソッド内の自動変数と混同してるなんてオチでは。
>>209 そんなのどっちも同じなのだが
仕様どおりに書くとfalseを優先的に書いたほうが後から見ても見やすいとかある
Javaに限った話じゃないので違うスレでどうぞ
>>190 最低限のコードを書いてダメならそのコードをあげてみそ
原因は今アップしてるところだけじゃわからん
初心者に多いのだが最低限の部分だけのコードにしないで
質問してくるのなんとかならんのか
デバッグの仕方が分からないから初心者なのか
>>209 社内(ないしゼミ内?)でコーディングの規約があって
条件式は「 == false 」とか「 == true 」と書くように決まって
いるんじゃないの?
言語に不慣れな人でも実践配備できるように、記述の自由度を
下げるのはよくあるはなし。三項演算子が使用禁止だとかね。
>>213 if(!hoge.hogebeelean())
と書くか
if(hoge.hogebeelean()==false)
と書くかの質問では無い気が。
215 :
213:2005/05/05(木) 13:54:31
>>214 あらま、それじゃ
if( ... )
{
A
} else {
B
}
の場合にコード量を A < B とした方がネスティングの
関係が読みやすいからでわ? A がものすごーく間延びすると
} else がどの if に掛かっているのか「?」となるから
論理を反転しておく。
どっちにしろスレ違いみたいなので。これで止めw
>>201 というか、本当にnullだったらぬるぽが出ますよ。
>216
ガッ
==trueとかキモすぎ。ぬるぽ。
219 :
デフォルトの名無しさん:2005/05/05(木) 16:09:44
現在Jsp、ServletでWebアプリを作っています。
dbconnectクラスでコネクションを生成してConnectionを帰り値として返しています。
Servletでは
Connection con = null;
dbconnect dc = new dbconnect();
con = dc.dbconnect();
Statement st = null;
st = con.createStatement();
〜
などとし、Connectionは使いまわし処理が終了したり、画面を遷移したら
closeしています。
Servlet1からServlet5までありますが、全部のServletからDBに接続する際に
dbconnectクラスを共通して上のように呼んでいます。
現在稼動中で画面はサクサク動くのですが1日のうちで何回か
dbconnectクラスで
java.sql.SQLException: Cannot connect to MySQL server on localhost:3306. Is there a MySQL server running on the machine/port you are trying to connect to? (java.net.SocketException) Cannot connect to MySQL server on localhost:3306. Is there a MySQL 〜
とでてそのあと処理のいたるところで
java.lang.NullPointerException:
とでています。
dbconnectクラスでConnectionを生成できていないのが原因だと思いますが、上のように共通クラス化して使いまわしている事が原因なのでしょうか?
220 :
219:2005/05/05(木) 16:10:15
ご教授ください
public static void main(String[] args) {
checkHeaderPart();
}
Cannot make a static reference to the non-static method checkHeaderPart() from the type
TestDecoderEncoder
private void checkHeaderPart() {
byte[] str = createHead();
}
↑何でこのメッセージでるんでしたか?
>>221 何でって Cannot make a static reference to the non-static method checkHeaderPart() from the type TestDecoderEncoder だからだろ?
public static void main(String[] args) {
このクラス hoge=new このクラス();
hogr.checkHeaderPart();
}
ってやらないから
224 :
219:2005/05/05(木) 17:00:41
どうでしょうか?
>>219 サーバに接続失敗しているだけだと思う
java.sql.SQLExceptionのエラーコードを取得してMySQLのエラーコード表と比較してください
>dbconnectクラスでConnectionを生成できていないのが原因だと思いますが、上のように共通クラス化して使いまわしている事が原因なのでしょうか?
コレが原因かどうかは見せてもらわないとなんとも言えんが
226 :
219:2005/05/05(木) 17:17:16
>>225 返信ありがとうございます
サーバー側が原因と考えられますか?
227 :
219:2005/05/05(木) 17:21:52
共通クラス化して使いまわすときはConnectionをシンクロナイズドしないと
いけないとかは、ないですよね、、、
>>219 いまのだされている手駒ではそれが一番有力だと思う
ちなみに
>共通クラス化して使いまわしている事が原因
になるのは、そのクラスの作り方が間違っている以外は原因にはならない
J2EEならDataSourceからの取得が一般だけどそれやってる?
229 :
219:2005/05/05(木) 17:28:55
こんな感じです
public class dbConnect{
public Connection dbConnect(){
Connection db_ret = null;
try{
Class.forName("com.mysql.jdbc.Driver");
db_ret =DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","id","pass");
}catch(Exception ex){
String error_msg = ex +" "+ ex.getMessage();
System.out.println("in connection create "+ex);
try{
エラー書き出し処理〜
}catch(Exception ex2){}
}
return db_ret;
}
}
サーバー環境はJAVA2 JDK1.3.1、MySQL3.23.49を使ってます。
230 :
デフォルトの名無しさん:2005/05/05(木) 17:54:38
スレッドってコンストラクタで生成しちゃいけないの!?
↓呼ぶとStackOverflowErrorになるんだけど・・・
public class HelloWorldThread2 extends Thread {
private static int b;
// コンストラクタ
public HelloWorldThread2() {
super();
HelloWorldThread2 thread1 = new HelloWorldThread2();
thread1.start();
System.out.println("コンストラクタ");
}
public static void main(String[] args) {
HelloWorldThread2 me = new HelloWorldThread2();
}
public void run() {
b=b+1;
System.out.println("runが呼ばれました。b=" + 1);
}
}
231 :
219:2005/05/05(木) 17:58:07
どうでしょうか?
>>230 呼ぶのは構わないがそのコードだとコンストラクタが
再帰的に呼ばれることになるのはわかってるか?
>>219 ここはどこかのサポート窓口じゃないんだから
そんなにすぐ回答がなかったからってウダウダ言うな。
>>219 その方法は普段自分は使わないが
(たぶん他の開発者でもいまは、そういうことやるのは少ないと思う)
毎回コネクション作るやり方だよね
ただ、プログラム的にはそれほど問題ないと思う
パフォーマンスの面から言うと、DataSource使った方がいいというぐらい
ひとつ気になるのがMySQLの最大接続数オーバーしたときにどういうエラーになるのかということ
その方法だと複数の人が接続して、MAX越えた時に「処理待ち」になるのかそれとも「即エラー」になるのか
234 :
219:2005/05/05(木) 18:14:06
>>233 DataSource勉強します
質問終了します
ありがとうございました
235 :
デフォルトの名無しさん:2005/05/05(木) 18:32:20
230です
>232
色々サンプル作って試してみてるんだけど、
さっき例のPG実行したら、
コンストラクタのログが出続けたのはその訳か・・・
スレッドの生成と実行ってどのタイミングで
やるのがベストなんでしょう・・・?
PGが起動されたら、スレッドを動かしたいんだけど
コンストラクタでやると大変なことに。。。
236 :
デフォルトの名無しさん:2005/05/05(木) 18:52:27
drawImage(java.awt.Applet.getDocumentBace(),0,0,img);
というふうにしてjpgをJFrameに表示
しようとしたのですが
どうやらNullpoが発生しているらしいのです
もしかしてgetDocumentBace()ってアプレットにしか使えないんですか?
>>235 230のコードだとコンストラクタの中で
「別の」スレッドオブジェクトを作ってるのに気づいてるか?
単にコンストラクタの中でstartを呼べばいい。
インタフェースクラスのメソッドって実装してもいいの?
>>236 アプレットって「何か」に張り付いているから
アプレット(-let)なわけで、張り付く元がなければ
機能しましぇん。
>>219 MySQLはコネクションプールなしで他のDBのコネクションプールありと同じくらいの
接続コストだし(もちろん環境によるが)そこが問題ではないと思われ
つーか、Mysqlでコネクションプールすすめると、しばらく接続がないときに
自動切断がデフォ動作なのでその対策に追われたりとか
あとそれだと接続文字列が日本語まともにとおらんだろ
すいません!参照についてよろしくお願いします。
下記のtest(i)のメソッドを呼び、3行目でnew Integerと新しい参照先をjに与えても
出力が0のままなのはどうしてでしょうか?
public class Test {
public static Integer test(Integer j) {
j = new Integer(5);
return j;
}
public static void main(String args[]){
Integer i = new Integer (0);
test (i);
System.out.println (i.intValue());
}
}
iの参照先が変わっているわけではないから。
243 :
190:2005/05/05(木) 21:47:48
>>204 210 213 216
○1.5日いじっていて下記2つがわかりました。
実はStringBufferのappenndは成功していました。
ただ、デバッガに内容が表示されていないという。。だから内容が
nullのままだと思いこんでいたようです。
(ちなみにeclipseとボーダフォンエミュレータの組み合わせ)
もうひとつが(実は元々これをやりたくて)
StringBuffer buff[] = new StringBuffer[5];
のように配列宣言した場合、buff[0].append('abc')とかやると
ボーダフォンのエミュレータが落ちるというものです。
ネットでもろもろ探したのですが、StringBufferを配列で使う方がいないようで、
そもそもの考え方に間違いがあるのではと。
今後、壁が次々に出るかと思いますが、よろしくお願いいたします。
>StringBuffer buff[] = new StringBuffer[5];
>のように配列宣言した場合、buff[0].append('abc')とかやると
>ボーダフォンのエミュレータが落ちるというものです
それって普通にJ2SEでも落ちると思う
StringBuffer buff[] = new StringBuffer[5];
ってやったあと
buff[0]はNULLだろう
だから 下の手順が正解です 初心者がはまりやすいポイントです
StringBuffer buff[] = new StringBuffer[5];
buff[0]=new StringBuffer();←ココ
buff[0].append('abc')
Javaには種類があるんですか?私はJavaでアプリが作りたいんですが、プログム経験が全然なくて、『ブログラマ養成入門講座Java@改訂版』って本買ったんですけど、DOS窓(?)内でのプログム実行しか書いてないんですが、入門講座だからなんですか?それとも種類があるんですか?
種類と言うかライブラリのセットが違うのがあるけど
気にしなくていい、言語は変わらない
>入門講座だからなんですか
多分そうだろう
GUIやりたければ また他の本買うしかない
>>242 参照先が変わっていないっていうのは
Integer j は参照先を渡してることではないということでしょうか?
プリミティブじゃないので参照渡しだと思ったんですが
>>246さんありがとうございます(*′艸`*)じゃぁこのままコツコツ勉強していきますv(^-^)v
>>242 元の回答者じゃないけど(元の回答者も認識が甘い)
finalクラスは知ってるか?
>>249 値やクラスなどで、定数化や継承させないよう固定するってイメージを持ってます。
>>247 元の回答者じゃないけど(元の回答者も認識が甘い)
finalクラスは知ってるか?
>>241 このコード何がやりたいんでしょ。
iが指し示したオブジェクトは、test()内で
jが指し示しているわけだが、
jはべつのオブジェクトを指してしまうから。
ついでにtest()の戻り値のIntegerは5でわ?
みなさんにお聞きしたいんですが、プログラミング(?)を何年(いくつ)ぐらいから始めたんですか?私は今18で、やり初めて1ヶ月もたってないんですが、遅いですか?(・_・;)
255 :
190:2005/05/05(木) 22:26:01
>>244 うおーマジですか!?
ありがとうございます。ちょっとやってみます。
ちなみに念のため、、StringBuffer buff[] = new StringBuffer[5]; で
それにappendすると落ちのはなぜなのでしょうか?
>>254 いいもん作ったもん勝ち。そんなもん気にせず突き進め。
>>255 stringbufferのインスタンスを作ってないのでぬるぽ
おれは、正直27,8で独学からはじめたけど
実務で
Java、Perl、PHP、C言語こなしている
大学でC言語とBASIC、フォートランやってたから多少は基礎があったから楽だったのかもしれないけど
259 :
241:2005/05/05(木) 22:28:32
今、なんとなく分かりました。
testに入った瞬間
mainのi → Integer( 0 ) ← testのj
j = new Integer(val)した瞬間
mainのi → Integer( 0 ) testのj → new Integer ((int)val)
と参照先が変わるってこういうことだったのですね。お騒がせしました。
244じゃないけど・・・
StringBuffer buff[] = new StringBuffer[5];
この時点での変数buffの中身は↓
buff[0] NULL
buff[1] NULL
buff[2] NULL
buff[3] NULL
buff[4] NULL
したがって、この時点でappendメソッドをたたいても
オブジェクトがNULLのため、NullPointerException(ぬるぽ)になる。
> buff[0] NULL
NULLって何だ?
ちなみに初期化時に
for(int i=0;i < buff.length;i++) {
buff[i]=new StringBuffer();
}
とやればちょっとシアワス
264 :
デフォルトの名無しさん:2005/05/05(木) 22:32:17
javaSDKをインストールして環境変数を設定しようとしたら
すでにPATHのところにボーランドのコンパイラが設定してあったんですが
この場合どうすればいいですか?
>>264 後ろに追記する。デリミタはOSで異なる。
そういう場合は
;←をつけてつなげる
C:\java\j2sdkXXX\binって書けばよい
>>256さんありがとうございます(T^T)作ったモン勝ちですよね!ありがとうございます(T^T)
>>258さんありがとうございます独学って本読んでですか?
268 :
デフォルトの名無しさん:2005/05/05(木) 22:43:52
269 :
190:2005/05/05(木) 22:49:16
>257
>>260 >>261 >>263 ありがとうございました。
てっきり、StringBuffer buff = new StringBuffer[5]
とかで、初期化が終わっていると思いこんでいました。
勉強になりました。
>>249 >
>>242 > 元の回答者じゃないけど(元の回答者も認識が甘い)
> finalクラスは知ってるか?
で、final クラスがどうしたって?
いや、、、、オレじゃないっすよ〜
274 :
デフォルトの名無しさん:2005/05/06(金) 04:37:08
275 :
デフォルトの名無しさん:2005/05/06(金) 06:52:33
276 :
デフォルトの名無しさん:2005/05/06(金) 06:55:06
ああ、予約語とかぶらないようにか。。。
277 :
デフォルトの名無しさん:2005/05/06(金) 07:42:11
「文字列を変数名として扱う方法」はありますか?例えば
class Mona {
String kita () { return "( ´∀`)キター"; }
}
class Giko {
String kita () { return "( ゚Д゚)キター"; }
}
// この他にこういうのが20個くらい
public class Test {
public static void main(String[] args){
Mona mona = new Mona();
Giko giko = new Giko();
// この下にオブジェクトが20個くらい
String kyara = args[0];
}
}
っていうカンジのコードで、kyaraという変数に "mona"とか"giko"とか言う文字列をもらうと
"( ´∀`)キター"とか"( ゚Д゚)キター"とかを出力したいわけなんだけれども
20個もあるので if〜elseでいちいち書くのはしんどいので、何かいい方法はありませんか?
Perlとかだと$$kyaraとかで実現するイメージです。よろしくお願いします
多態とデフォルトコンストラクタによるインスタンス生成を勉強
>>278 ハッシュテーブル使えばいいだけのような気が。
>>278 1.5 で追加された enum 使えば?
文字列をもらって、それに応じてインスタンス生成できればいいんじゃないの? monaって文字列
もらったMonaをインスタンス化するとか。
それだったらリフレクションでググればできる。
なぜインスタンス生成程度でリフレクションがでてくるのだ
>>284 元質問の「文字列を変数名として扱う方法」に忠実に解答するならリフレクションじゃね?
もちろん、クラスつくる必要が無くて、のちのち「こういうの20個くらい」が
追加になったり削除になったり変更になったりしないのならHashTableとかでいいだろうが。
> 「文字列を変数名として扱う方法」に忠実に解答するなら
変数名として扱うって事を忠実に行うならバイトコードを弄るとかせんといかんのでは?
メソッドは同一だし多態のほうがいいだろ
288 :
デフォルトの名無しさん:2005/05/06(金) 14:28:15
jdk1.4→1.3に変えたいんだけど、
Eclipseにどうやって認識させたらいいの?
>>288 Eclipse の話は Eclipseのスレで聞いたほうがよさげ。
> jdk1.4→1.3に変えたい
起動VMを変えたいなら-vmオプションで指定すれば…… って思ったけど、
最近の Eclipse は jdk1.3 じゃ動かんなと思いなおした。
>>288 Eclipseが載って動作するVMを変えたいのか、
出力するコードの互換レベルを変えたいのか、はっきりして。
291 :
デフォルトの名無しさん:2005/05/06(金) 16:07:46
>>289 ありがとうございます。
設定の”インストール済みのJRE”とコンパイラーいじったら
かわったみたい。
292 :
デフォルトの名無しさん:2005/05/06(金) 17:11:03
>>292 JavaとJavaScriptは異なるものなのでJavaアプレットのソースはHTMLを見ても見られません。
やるとしたらclassファイルのURLを元にバイトコードをダウンロードして自分で逆コンパイルしてください。
294 :
292:2005/05/06(金) 18:09:33
297 :
67:2005/05/06(金) 18:32:48
>>292 またかよ.
>※動画のライセンス上の都合によりまして、現在、通常再生とスロー再生機能
>は利用できません。コマ送り再生のみでのご提供となります。
って書いてあるんだから素直に従えばいいのに.
>>66以来これで3回目の質問になるけど,クラックのやりかたはこの板で聞くことじゃないよ.
これが黄金週間か!
クラックしたいのに技術レベルがまったく追いついてないのにもわらた
ゆとり教育の弊害がこんなところにも。
301 :
デフォルトの名無しさん:2005/05/06(金) 22:19:45
Java初心者向けのお勧め本を教えてください
Core Java2かなあ。
ゆとり教育の罪は大人にあるわけだが
>>303 ゆとり教育について熱く語るなら他所の板で。
305 :
デフォルトの名無しさん:2005/05/06(金) 23:01:49
ゆとり教育でない地域と比べて成績が10%伸びてるわけだがマスコミに騙されすぎてないか?
また制度変えちゃったから今さら成果でてましたとは言いにくいだろうけどな
ちなみに徹底的なマンツーマン補習が効いたらしいよ
スレ違いだ。移動しろ。
といいつつ、
>>305それは、マンツーマン補習の成果であってゆとり教育の所為ではあるまい。
>>303ゆとり教育が悪ではないと思うよ。最近の子供達が持ってる教科書と先生たちの偏見こそが問題だと。
ゆとり教育がどうこうよりも、クラスの人数を15人くらいにして、教師増やした方がよほど
効果があるだろう。マンツーマンなら(教師さえよければ)なおよし。
というわけで、Java初心者にもマンツーマン教育ということで、良い人たちよろしく。
ちなみに私は悪い人なので...
308 :
デフォルトの名無しさん:2005/05/06(金) 23:40:23
サーブレットでPOSTとGETってのが出てくると思いますが
いまいち違いが分かりません
たとえばPOSTにすれば具体的に何ができて
GETにすれば何が出来るのでしょうか?
HTMLからやり直せ
Javaでゲームを作ってるのですが、どうしてもわからない事が
あったので質問します。スレ違いだったらすいません・・・
AとBのキャラを引き付けあうようにしたいのですが、
def_x = Ax - Bx;
def_y = Ay - By;
kakudo = Math.atan2(def_y, def_x);
vx = Math.cos(kakudo);
vy = Math.sin(kakudo);
Ax -= vx; Ay -= vy;
Bx += vx; By += vy;
これだと
A
B
の位置関係でBのみがAに向かい、位置が逆だとAのみがBに向かって
しまいます。どうすればお互いに引き付けあうようにできるでしょうか。
>>311 式は間違っていないので、実装がおかしい。コードを詳しく。
ちなみに、
def_x = Ax - Bx;
def_y = Ay - By;
kyori = Math.sqrt(def_x * def_x + def_y * def_y);
vx = def_x / kyori;
vy = def_y / kyori;
とすれば、三角関数は要らない。
ちょっぴりエッチなレスをするとしたら、2つを結婚させて(ry
>>312 レスありがとうございます。
・・・そうですか、式自体がおかしいわけではないんですか。
コードのどの辺を詳しく書けばいいのかちょっとわからないなので、
とりあえず型宣言のみ書きます(全然関係なかったらすいません)。
public int def_x, def_y;
public double kakudo, vx, vy;
それと異常は、AとBがかなり近い時のみ発生し、向かっていくキャラは
X軸で言うと右側のキャラのみになり(つまり左側に来たキャラが右に
行ってくれない)、Y軸で言うと下側のキャラのみになります。
それと三角関数に関しては、その方が処理が軽くなるかなと思って
そうしたのですが、普通に三平方の定理を使っても全然問題ありませんか?
>>316 こんな感じの式でvxの値を観察してみたのですが、
def_x = Ax - Bx;
def_y = Ay - By;
kakudo = Math.atan2(def_y, def_x);
vx = 2 * Math.cos(kakudo);
vy = 2 * Math.sin(kakudo);
Ax -= vx; Ay -= vy;
Bx += vx; By += vy
vxの値が1.0を切ると片方の引き付けがなくなるようです。
>>317 処理時間は比べ方がわからなかったので比較しておりません。すみません。
>>318 ありがとうございます。三平方の定理に書き直します。
>>319 > vxの値が1.0を切ると片方の引き付けがなくなるようです。
そりゃ、vx が1.0未満なら (int)vx は 0 になるからねぇ。
っても、vx が1.0未満なら両方ともx方向だけ引き合わないだけのような気もする。
Ax -= vx; Ay -= vx;
Bx += vy; By += vy;
みたいに書き間違って無いか?
あと、vx が1.0未満の場合でも引き合いたいなら、
座標を常に double で持っておいて、int が必要な時だけキャストすれば?
>>321 >vx が1.0未満なら両方ともx方向だけ引き合わないだけのような気もする。
そうなんです。それが謎で原因の検討がつかないんです。
>Ax -= vx; Ay -= vx;
>Bx += vy; By += vy;
>みたいに書き間違って無いか?
確認してみましたが、書き間違えてはいませんでした。
>vx が1.0未満の場合でも引き合いたいなら、
>座標を常に double で持っておいて、int が必要な時だけキャストすれば?
これをしたら常に引き合うようになりました。
2時間近くに渡ってご指導いただき、ありがとうございました。
JAVAをバックグラウンドで動かして定期的に
画面イメージを取得して保存するにはどうしたらいいんでしょう?
自身のイメージ取得なら分かるのですが
printscreenを押した時のように自身を含まず他のイメージを取得したいです
よろしくお願いします
>>323 キンタマ・ウィルスみたいな動作をさせたいのけ?
純粋なJavaではそんなことできないよ。
MSのニセJava(すっかり影が薄くなったけどVisual J)なら
できるかも。
>>324 うそつくなよ
PureJavaでできるぞ
Robotクラスをのぞいてみるといい
326 :
324:2005/05/07(土) 11:43:45
>>325 java.awt.Robotって1.3以降だっけ?
>>327 そうだね。
これを使えばこのスレで3回同じ質問を繰り返した人の要求するアプリが作れるね。
でも彼はアプリを作るよりテニスの練習をした方がいい希ガス。
1.3なんてもう5年も前のお話だし
Robotの話題は何回か出てきたとおもわれ
330 :
デフォルトの名無しさん:2005/05/07(土) 12:26:37
331 :
323:2005/05/07(土) 12:47:04
動かしてませんが、まさしくこの機能のようです
早速試してきます
ありがとうございました
Webアプリの検索結果画面みたいに結果をテーブルタグで表示して前10件、次10件
見たいな感じにする場合ResultSetから表示する分だけBeanに
詰め込むというのが定石なんでしょうか?
SessionにResultSetを入れて操作する方が毎回SQL実行するよりも
早いと思うんですけど。
自分が思ったことはResultSetの開きっぱなしをどうするかといったところ
ですけど、必要なくなったとき(詳細画面等に移動したときに)
Sessionの対象ResultSetをCloseすればよいし、そのままアプリ終了されたときでも、
SessionのタイムアウトイベントでCloseすればいいのでResultSetの開きっぱなし
というのは回避されると思うんですけど、これって問題あります?。
あと、ほかにSessionに入れとくことでまずいことってあるんでしょうか?
イントラを想定しているので利用人数は20人くらいという前提です。
お前は向いていないな
orz
>>332 やめとけ。
タイムアウトするまでのSesssionが存続する期間と、
ResultSetを開いておきたい期間が違いすぎる。
「検索→ブラウザ閉じる」 を、何度も何度も繰り返すとどうなる?
あと同一セッションで異なるリクエストのときのConnectionはどう管理するの?
ResultSetを持ち続けるなんて事はしない。
全部いっぺんに取得する場合でも、毎回取得する場合でも
質問です。アプレット実行時エラーで
java.lang.InternalError: obsolete interface used
と出るのですが、エラーの意味がよくわかりません。
このエラー、アプレットを貼っ付けてるhtmlを開いている状態で
更新ボタン押しまくっているとたまーに出るので、
ソースの問題じゃないならいいなと思っているのですが・・・。
>>338 java.lang.Errorのサブクラスだからほっとけば?
更新ボタンガチャガチャ動かしてでるエラーならしょうがなさそう
>>332 >>335の書いてるように、スコープは最小限にするのが定石。
リソースを無駄に食いつぶすような可能性は極力排除したほうが良い。
それくらいわかるっしょ?
>>341 >リソースを無駄に食いつぶすような
がスコープ局地化の意味だと思っているなら早く寝て起きて勉強し直せ。
343 :
338:2005/05/08(日) 02:24:35
>>339-340 返答ありがとうございます。
338を書く前にエラー文を翻訳に突っ込んでみたら
「使用される時代遅れのインタフェース」なんて出たので、
今はサポートされていないような旧世代のメソッドなり記法なりを
使っちゃってるのかと少し思いましたが、違うっぽいですね。
ソースの問題でないようなので放置します。
メソッドをオーバーライドするときに、なぜアクセス権を狭めてはいけないのでしょうか?
言語仕様的に何か不都合があるんでしょうか?
多態が動かなくなる
346 :
344:2005/05/08(日) 03:35:55
>>345 素早い反応、ありがとう。
もうちょっと具体的に、動かなくなるサンプルコードとか
示してもらえるとありがたいです。
InterfaceA a = new ClassA();
>>346 スーパークラスとサブクラスの関係を考えてみなよ。
サブクラスはスーパークラスの全仕様を受け継いで、改変・強化したものだよな。
class Super {
public void hoge() { System.out.println("Super");}
}
class Sub extends Super {
public void hoge() { System.out.println("Sub"); } //OVERRIDE
}
上記のクラス構成で、下記プログラム
Super s = new Super();
s.hoge();
を考えて見てくれ。Super sの実体はclass Superでもclass Subでもちゃんと動かないといけない。
上記だとnew Super()になっているが、ここをnew Sub();としても、その下の「s.hoge();」は変更なしに
動かないといけない。
サブクラスはスーパークラスと置き換え可能でなければいけないということ。
で、もし上記クラス構成で、Subのhoge()がprivateだったら、new Sub();としたあとでs.hoge()をしても、
privateだからアクセスできないだろう。ということはサブクラスでスーパークラスを置き換え出来ないと
いうことだ。これがアクセス権をスーパークラスよりも狭められない理由。狭めると、スーパークラスで
許可されていた操作が、許可されなくなってしまうから。
もしここで
もしここで、なに?
「かしこ」と書きたかったのかもしれん
class Super {
public void hoge() { System.out.println("Super");}
}
class Sub extends Super {
public void hoge() { System.out.println("Sub"); } //OVERRIDE
}
class MainClass {
private int hogecall(Super cls){
cls.hoge();
return 0;
}
public static void main(String[] args){
Super a = new Super();
Sub b = new Sub();
hogecall(a);
hogecall(b);
}
ポリモフィズムの大前提:
hogecall()にはSuperおよびそのすべてのサブクラスを渡すことが出来る。
hogecall()はSuperおよびそのすべてのサブクラスを処理できる。
Subのhoge()をprivateにしてしまうとhogecall(b)は処理できない。
すなわち、ポリモフィズムの大前提が崩れてしまう。
>>342 こう書いた方が良いと思ったんだがな。
なんでもかんでもグローバルにしてバグ発生の温床とか、
永遠にVM上に残るインスタンス作るよりかな。
それはともかく、スコープの局地化って表現自体を始めて聞いた。
なので、なぜスコープを意識するのか明確に説明して頂ければと思います。
メンテのしやすさとか、そういうことなわけないですよね?
353 :
344:2005/05/08(日) 12:06:25
>>348>>351 なるほど。しかし、
----------
package foo;
public class Super {
protected void hoge() { System.out.println("Super"); } // (1)
}
class MainClass {
private static void hogecall(Super cls) { cls.hoge(); } // (2)
public static void main(String[] args) {
hogecall(new Super());
hogecall(new bar.Sub());
}
}
----------
package bar;
public class Sub extends foo.Super {
protected void hoge() { System.out.println("Sub"); }
}
----------
このコードはコンパイルできるし、
Super
Sub
と表示されますよね?(2)の位置からはSubのhoge()はアクセスできないはずなのに。
なのに、(1)をpublicと書き換えただけでコンパイルできなくなる理由がよくわからないのです。
354 :
344:2005/05/08(日) 12:17:29
まとめると、オーバーライドするときにアクセス権を狭めてはいけない理由が
「多態性を用いたメソッド呼び出しの際に、アクセスできないメソッドを
呼び出すことがないようにするため」だとしたら、
それは不完全である上にoverkillではないか、と。
356 :
デフォルトの名無しさん:2005/05/08(日) 13:07:26
javaのインストールに30分くらいかかってますが、
まだ処理に数分かかる場合がありますって出て
終わらないのだけどいいんですか?
>>353 > (2)の位置からはSubのhoge()はアクセスできないはずなのに。
いいえ。
あらあらうふふ♪
359 :
338:2005/05/08(日) 13:43:09
3つのAppletを表示させるHTMLファイルを開こうとすると
1回目は普通に表示されるのですが、そのウィンドウを閉じて
もう1度同じように開こうとするとIEがフリーズしてしまいます
それ以降何度やってもフリーズするのですが、HTMLを書き換えて
保存しなおすと(保存前と後の中身が変わっていなくても)
また1回だけ表示されるようになります
Appletを2つに減らすとこの現象は起きません
IEと共にJavaコンソールもフリーズして実行時エラーすら見れないので
お手上げ状態です
どうすれば常に正常に表示されるようになるでしょうか?
361 :
356:2005/05/08(日) 14:07:44
インストール終わりました。
362 :
359:2005/05/08(日) 14:29:02
>>360 ガッコじゃまだ文字出したり丸描いたりくらいしかやってないので
例外って言葉があるのは知ってますが意味がわからないのです…
とりあえず3つのAppletを無理やり1つにまとめたら解決できたので
今の時点ではこれで済んだことにして、
勉強が進んで例外がどういうものかわかったら見直してみることにします
>>360返答ありがとうございます
/⌒ヽ
⊂二二二( ^ω^)二⊃
| /
>>361 ヨカタ 「ブーン」でも見ていけ
( ヽノ
ノ>ノ
三 レレ
365 :
348:2005/05/08(日) 15:49:54
遅レスだけど、最後の「もしここで」は消し忘れです....orz
>>353 > (2)の位置からはSubのhoge()はアクセスできないはずなのに。
というか、実際に組んで試してみてアクセスできてるんでしょ? パッケージが違ってたって
完全名でクラス名指定すればクラスを使えるし、そうでなくたって、importすればいつでもどこでも
使えるじゃん。
不完全である上にoverkillだと思う理由はこの点だけ?
クラスがいつでもどこでもアクセス可能であることを考えれば不完全でもoverkillでもないと思うけど。
leftがright以上ならそれ以降の処理は行わない
>>366 44行目周辺をみれば、left >= right で qsort() を呼び出す可能性があるのがわかるだろ。
369 :
344:2005/05/08(日) 17:40:39
>>355 私の環境では表示されたんですが……。
こう表示されないなら、それはそれで問題あるような。
>>365 > というか、実際に組んで試してみてアクセスできてるんでしょ? パッケージが違ってたって
> 完全名でクラス名指定すればクラスを使えるし、そうでなくたって、importすればいつでもどこでも
> 使えるじゃん。
bar.Subはpublicなので確かにfoo.MainClassからアクセスできますが、
bar.Subのメンバメソッドhoge()はprotectedなのでfoo.MainClassからは
アクセスできない、と理解していたのですが違うんでしょうか。
foo.MainClassはbar.Subの派生クラスではないですし。
実際、(2)の位置に new bar.Sub() と書くのはOKですが、
(new bar.Sub()).hoge() と書くとコンパイルエラーですし。
>>369 >私の環境では表示されたんですが……。
マジで?
脳味噌腐ってるんじゃないの?
>こう表示されないなら、それはそれで問題あるような。
お前の頭だと思うよ☆
371 :
365:2005/05/08(日) 18:08:08
>>369 ああごめん。Subのほうがprotectedになってることに気がついてなかった。へたれでスマン。
protectedアクセスの話なわけね。
話がかみ合ってなかったよ。
>>369 > bar.Subのメンバメソッドhoge()はprotectedなのでfoo.MainClassからは
> アクセスできない、と理解していたのですが違うんでしょうか。
それに関しては合ってるんだが、
だからといって、
>>353 みたいな主張が出てくるのは何か違うような。
finalメソッドか privateメソッドしか書かないってんなら、それ以上考えなくて良いんだけど。
>>369 >>370がなんかいってるが、確かに表示されるからその辺は安心しろ。
で、
>>369については、
> bar.Subのメンバメソッドhoge()はprotectedなのでfoo.MainClassからは
> アクセスできない、と理解していたのですが違うんでしょうか。
ここが違う。
MainClassはあくまでSuper型のclsに対してhoge()をよんでいるのであって、clsに実行時に
入っているのがSubであるかどうかなど気にしない。コンパイル段階では、Super clsには、
Superと見なせるもの(インターフェースが同じもの)が入っていると想定するだけだよ。
インターフェースが一致しないものを渡そうとすれば、ちゃんとコンパイルエラーになる。
実際のメソッド検索は実行時に行われる(実行時にだよ)ので、この段階で実体はSubの
hoge()を呼び出すわけだが、それが多態性というもんでしょ。Superはサブクラスで置き換え
可能でなければ多態ではなくなる。
Subは完全にSuperと置き換え可能でなければならないわけで、Superを要求しているところに
Subを渡しても、単にそれがSuperであるかのように動くだけ。MainClassはあくまでSuperの
hoge()を呼んでいると思ってるわけだよ。
逆にpublic hoge()であったはずのところをサブクラスでprotected hoge()にしたら、Superは
サブクラスで完全に置き換え可能だという原則に反するでしょ。
ちょっと勘違いしている奴ぽいので 皆に聞く
protectedとpackage(何も書かない場合)の
アクセス可否の違いを言ってみろ
そのクラス内○
そのサブクラス内×
とか言う感じですべて
> ちょっと勘違いしている奴ぽいので 皆に聞く
一番勘違いしてるっぽい奴ハケーソ
protectedが絡んでるからややこしいが、
>>373の話はSuper型をInterfaceに置き換えて
みると分かりやすいように思う。
void hogeCall( hoge.hage.SuperInterface cls)をいうのがあったとして、そこにfoo.Superを入れようが、
bar.Subを入れようが、hogeCall()メソッドの中ではclsはあくまでhoge.hage.SuperInterfaceでしかない、
という話だな。
378 :
デフォルトの名無しさん:2005/05/09(月) 00:24:40
zipファイルの中にtxtファイルがあればその内容を表示し、zipファイルがあればその中身も再帰的に処理するコード
はどのように書けばよいのでしょうか。
379 :
デフォルトの名無しさん:2005/05/09(月) 00:46:49
void 解凍(アイテム file){
List<アイテム> l = file.アイテム一覧();
for(アイテム i : l){
if(i.zip判定()){
解凍(i);
} else{
処理
}
}
}
380 :
378:2005/05/09(月) 00:48:10
>>379 既存のAPIの範疇だと思いますが、具体的には?
InputStreamオブジェクトからFileオブジェクトに変換ってどうすればできますか?
いや、既存のAPIの範疇である事までわかってるんなら、
>>379の日本語部分を
既存のAPIで置き換えればいいんではないかと....
>>382 それがですね、私は今日初めてJavaを触ったものですから、APIの使い勝手がいまいちよくわからないのです。
で、どこまでできてるんですか?
>>384 まだ作っていませんが、できるところまで書いてみます。
少し待っていただけますか?
いいよ。
早かったね。
今の問題点は?
>>388 else if (filename.endsWith (".zip")) {/* この中の処理が分かりません。InputStreamオブジェクトをどうやってZipFileで扱うのかが分かりません。 */}
一旦どこかに書き出しちゃいかんの?
テンポラリファイルを作成するということですか?
もし、APIの仕様上、それ以外に方法が無いのでしたら仕方がありませんが、できれば無駄なリソースを消費したくありません。
とりあえずテンポラリ作っておいて、リソース消費が気になるならそれから考えてみれば?
テンポラリ作るときはdeleteOnExitで。
>>389 InputStream なら、ZipInputStream で読めば良いじゃん。
>>393 そうですか。ありがとうございました。最良の方法が見付かるまで努力します。
>>394 あ、本当ですね。
ありがとうございます。
スレッドの質問お願いします。
アプレットの1つのクラスで2つのスレッド(th1とth2)を作ります。
run()メソッド内でth1が活動しているときth2が決まった時間sleepします。th2の
sleepが解けたらth1は停止して、th2は処理を始めsleepにぶつかるまで活動します
。この様な常に1つだけのスレッドに活動させるループを作るにはどうすればよい
でしょうか?
あと現在活動しているスレッドの種類(th1,th2)によって呼び出すか呼び出さない
か判断させるにはどうすればよいでしょうか?
よろしくお願いします。
> 1つだけのスレッドに活動させるループを作るには
1つのスレッドでやる。
モニタ
>>398 意図はひとつのスレッドがスリープしている間は処理が行われないのならば、
他のスレッドであらかじめ計算処理して、眠らせておいたスレッドで残りの処理
プラスrepaintすればアプレットがサクサク動くのではと思ったのですが・・・
交互に動かすなら1スレッドでいいだろうに
似非タイムスライスなマルチスレッド処理をわざわざ書こうとしているってことか?
なんのためのスレッドなのかわからんな・・・
403 :
403:2005/05/09(月) 17:20:17
JAVAとは、「高級言語、機種を選ばない、そしてオブジェクト指向」
以上を学びましたが、派遣で時給2000円位のところに務めたいです。
他に学ぶことはありますか?
ちなみにHTMLとCSS、DELLコンピューターが使えます。
> 他に学ぶことはありますか?
その程度の知識しか無い人間に時給2000円払っても良いと思うような人間がいるかと言う事について、とか。
JSPとJAVAサーブレットの機能はほぼ同じだそうですが、
サーブレットをマスターしなくても、JsPのみで不便はありませんか?
jTableで列名の長さに応じてセルの幅を調節したいんですが
jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF );
TableColumn column=jTable1.getColumn("カラム1");
column.setWidth(15);
jTable1.doLayout();
これでもサイズが変更されません。お助けください・・・
言語習うのも重要だろうけど、コンピュータ、周辺機器、ファイルをまともに
扱えないとまずいね
プロジェクトが大きくなると、大容量のHDDでバックアップってのも
最低限必要
>>379 実行したらスタックがあふれて任意のコードが実行されてしまいました。
>>408 なんて言うか無理してしゃべらんでいいよ。と。
GWまだおわってないのかよ
>>410 無理なんてしてないよ、ろくに機材も扱えないのに
「プログラムできますよ!雇ってください」
いざ開発環境で作業させたら管理がめちゃくちゃ
プログラム開発環境のソフト以外はまともに扱えないとか
そんなやつ雇えねーって、足手まとい
Javaの勉強をしようと思うのですが、おすすめの本などはありますか?
わたしはプログラム初心者向けの本などはありませんでしょうか?
初心者がJavaからプログラミングを始めるのはあまり教育的ではないからLispから始めよ。
その上でJavaを覚えればJavaがどれだけアホ言語か理解できた上でプログラミングできる。
((((((;゚Д゚))))))リスリスプルプル
なんかまだ連休中なようだ。
厨房的な書き方だと思うかもしれないが、事実なのだからしかたがない。
そもそも自分と意見が合わないからと言って、相手を厨房だからスルー、
などと仕立てあげること自体がまったく子供じみた行為では無いだろうか。
>>419 また香ばしいのがw
クオリティヒクスw
>>420 ふざけるのならマ板へいけ。
ム板はマジレス以外は禁止だ。
どちらのクオリティが高いかは一目瞭然だろ。
マジレスしている分、もちろん俺の方がクオリティが若干高い。
> 厨房的な書き方だと思うかもしれないが、
なんだ、自覚があるのか。
>>422 君らの、2ちゃんねる流の感覚からすればそう思うだろうと言っているだけだ。
返答・感想不要。
>>423 わざわざJavaスレに出張してLispの布教に励むような
2ちゃんねるぐらいでしか相手にしてもらえない
>>423が
他人事みたいに「2ちゃんねる流の感覚」とか言ってもねぇ。
>>424 荒らしの相手をする奴も荒らし。放置すれ。
>>424 これ以上はスレ違いだと思ったので、感想は不要と書いたはずだが?君は荒らしか?
413の言い方はあれだし、Lispからやるのも今ひとつどうかと思うが
LispとSmalltalkとPrologあたりはやっておいて損はないよ。
これらの言語ごとの思想や哲学に触れて、プログラミングにおける
物事の捉え方を広げるためにね。
>>420みたいに、自分の確たる意見も言わずに煽るだけしか能がないのが厨房な
実際、自分と意見が合わないだけで相手を非難したり
相手の言っている内容まで屁理屈で否定しようとするから墓穴を掘るんだよ
そもそも事情や生活環境、行う行動なんて人それぞれ
だけどできないことがあれば、通用しなくなる場面にでくわす
そのとき、自分が否定していたことが本当に正しかったか?考え直すだろう
アニメーションの勉強をしてるのですが、次のように、ただ文字を左から
右に移動させていくプログラムなのですが、marqueeタグのように、スムーズに
行かず、時々カクカクと引っかかるようになるのは直せないのでしょうか。
import java.applet.*;
import java.awt.*;
public class TestAnimation extends Applet implements Runnable {
Thread runner;
int x,y;
int width,height;
int textw; // for text width in pixels
String message = "Hellocc world";
FontMetrics fm;
Image osc = null; //Off-screen graphic image
Graphics osc_g; //Off-screen graphic context
public void init () {
runner = new Thread(this);
x = 20;
y = 20;
width = getSize().width;
height = getSize().height;
fm = getFontMetrics(getFont());
textw = fm.stringWidth(message);
}
public void start() {
Graphics g = getGraphics(); //define on screen graphic context
osc = createImage(width,height); //off screen image created
osc_g = osc.getGraphics(); // define off-screen graphic context
runner.start(); // goto the run method
}
public void stop() {
runner = null;
}
public void run () {
while (true){
if (x < width){
x += 10;// message shift by this much
}else {
x = -textw;
}
drawNextFrame();// draw off-screen image
try{Thread.sleep(100);} // wait 10 m sec
catch (InterruptedException e) {}
repaint();
}
}
synchronized public void paint(Graphics g) {
if (osc != null){
g.drawImage(osc,0,0,this);
}else {
g.setColor(getBackground());
g.fillRect(0,0,getSize().width,getSize().height);
}
}
public void update (Graphics g){ //this is for painting without erasing
paint(g);
}
synchronized public void drawNextFrame() {
//this is where off screen image is drawn
osc_g.setColor(Color.black);
osc_g.fillRect(0,0,width,height);
osc_g.setColor(Color.red);
osc_g.drawString(message,x,y);
}
}
これを、次のタグで呼び出してます。
<html>
<body>
<applet code="TestAnimation.java", width=900, height=40>
</applet>
<marquee direction = right> Hello world
</marquee>
</body>
</html>
コピペしたら、インデントがなくなってしまい、読みにくくてすみません。
よろしく。
カクカクと引っかかるのは、システムとぶつかってるのでしょうか?なんか
それを回避するようなスイッチとか定石みたいなものはないですか?
お願いします。
>システムとぶつかってる
どんなシステムかが書かれていないけど、
俺以外のひとは理解できてるのか?
>>429 run() 、ホコヌク螟ヒ repaint() 、ニ、モスミ、ケ、ホ、荀皃ニ。、
drawNextFrame() 、ホコヌク螟ヌ repaint() 、ニ、モスミ、キ、ニ、゚、゙、キ、遉ヲ。」
435 :
434:2005/05/10(火) 09:55:47
うわ,文字化けした。
>>429 run() の最後に repaint() を呼び出すのをやめて,
drawNextFrame() の最後で repaint() を呼び出してみましょう
と書こうとした。
お世話になります。
現在strutsの勉強をしているのですが、
一つどうしてもわからないことがあります。
まず、前提条件として、
AというActionFormの中にBという別のActionFormが宣言されています。
Bの中にはStringの変数strが宣言されています。
また、jspは
<html:form>
<bean:define id="C" name="A" property="B" scope="session" toScope="session" />
<html:text name="C" property="str" />
</html:form>
のような感じになっています。
ここで、strの値は表示されるのですが、
フォーム上でstrの値を変更して送信しても値が変化していないのです。
一体なぜなのでしょうか?
437 :
429:2005/05/10(火) 11:27:15
>>433 あ、すみません。言い忘れていました。WindowsXP上でIE6.0で走らせてます。
JVMは1.4.2_07
<html:text name="C" property="str" />
→
<html:text property="B.str" />
439 :
436:2005/05/10(火) 12:47:06
>>438 どうもありがとうございます。
ドットで指定してみたところ、うまく動作するようになりました。
本当にどうもありがとうございました。
一回処理が終了したスレッドの処理をもう一度実行するにはどうすればよいですか?
Runnableを実装して、thread.start()し、10秒待ってからもう一度thread.start()するとInterruptedExceptionが発生してしまいます。
run()の中身はSystem.out.println("テスト")です。
普通に Runable なクラスのインスタンスを、もう一度 Thread に突っ込んで
start() でOKです
ただし441で書いてある通り、「同 Thread の再起動」は無理です
なにも起こりません
InterruptedException が発生しているのは
謎
まさかスレッド側で wait(10000)やってないですよね?
それ以前の問題として、同じ Runable なインスタンスを再実行というのは
普通はしません
以前の状態を保持しつつ同じ処理を繰り返す必要があったとしても、
フィールドで持つのは気持ち悪いです
素直に新しいインスタンスを作りましょう
インスタンスジョンソン
ホコヌク
あれ?文字化けした?
>>442 参考になります
ってかいたはずなのに
タコって言ったねヘンリエッタ
>>429 Thread.sleepに精度を期待するな。
OSによっては15msくらいずれるぞ。
もし本気でやるなら1msくらいの精度を持つ
OSネイティブのAPIをJNIから叩いて
自分でフレーム調整。
Tomcatでコネクションプーリングを使う場合、JDBCドライバはどのディレクトリに置けばいいですか。
conf/system.xmlあるいはwebapp/myapp.xmlに<Resource>と<ResourceParams>の設定を行ったのですが、
実際にDB接続すると
Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
というエラーがでます。
webapp/myapp/WEB-INF/lib/mysql-connector-java-3.1.8-bin.jar はちゃんとあります。
Tomcat 4.1.31, JDK 1.4.2, MySQL 4.0
>webapp/myapp/WEB-INF/lib/mysql-connector-java-3.1.8-bin.jar はちゃんとあります。
そこじゃなくて $CATALINA_HOME/common/lib に桶
>>448 それより固定のsleepというあたりに意味がないと思うが
ナイティブで取得できたとしても意味ないよ
ループ速度を一定にしないとね
452 :
449:2005/05/10(火) 23:19:44
>>450 うう、そんなところに置かなきゃいけないんですか。
WEB-INF/lib 以下に置けない理由って何でしょう?J2EEの仕様?Tomcatの仕様?
>>452 アプリ鯖のコネクションプーリングつかってるならアプリ鯖が見えるところに
自前のアプリで組み込んであるのならWEB-INF/の下でええ
454 :
449:2005/05/10(火) 23:41:55
>>453 なるほど、今回はTomcatが用意するコネクションプーリングを利用するから、CATALINA_HOME/common/libに置きゃなきゃだめなのか。
助かりました。どうもありがとう。
>>450,453
自分で調整するならJNIいらねーやん
System:nanoTime()とか
System:currentTimeMillis()とか
currentTimeMillis()は2000,XP、Linuxあたりなら1msでちゃんとかえってきたはず
>>458 だからOSによっては15msくらいずれるといっている。
>>459 >だからOSによっては15msくらいずれるといっている。
アーキテクチャによっては。
クライアントサイドのコードだしWinとLinuxだけでもちゃんと動くならまぁいいのでは
Macでの動作確認してないけど
>>458 JDK のバージョンによっても違うかも。
昔は System#currentTimeMillis() って最終的に GetTickCount とか使ってたような。
463 :
429:2005/05/11(水) 02:57:09
>>448,451,455,456,458,459,460,462
みなさん、どうもありがとう御座いました。15msのずれは普通ですか、でも
見た感じは、もっと、100msや200msのずれがあるような気がしますが。
currentTimeMills()とかnanoTime()を調べてためしてみます。
まぁすくなくともmarqueeタグよりは滑らかに動くな
465 :
465:2005/05/11(水) 11:47:04
お聞きします。
外部コマンドを、
Runtime#exec("外部コマンドの文字列");
で実行したいのですが、コマンド実行後の標準出力に出るデータ量が多いと、
コマンド自体が終わらずにリークしてしまいます。
かなり昔のVMのバグにそのような報告がありましたが、そのバグはFixされたとも報告ありました。
何か心あたりのある方がいらっしゃいましたら、どうぞよろしくお願いしますm(_ _)m
>>465 > コマンド自体が終わらずにリークしてしまいます。
リークの症状について詳しく。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Process.html > サブプロセスの標準入出力処理 (すなわち stdin、stdout、および stderr) は、
> 3 つのストリーム (getOutputStream()、getInputStream()、getErrorStream())
> によって親プロセスにリダイレクトされます。親プロセスはこれらのストリームを使って、
> サブプロセスに入力を送ったり、サブプロセスからの出力を取得したりします。
> ネイティブなプラットフォームには標準入出力ストリームに使うバッファのサイズが限られるものもあるので、
> サブプロセスの入力ストリームの書き込みあるいはストリーム出力の読み込みが失敗した場合、
> サブプロセスはブロックされるか、デッドロック状態になる可能性があります。
467 :
465:2005/05/11(水) 12:45:09
ご返答ありがとうございますm(_ _)m
Process#waitfor() で呼び出し元のプロセスを待たせておくと、いつまでたってもサブプロセスが終わらない、というリークです。
上にあるバッファのサイズの限度を超えている、という可能性はありますね・・・
いやいや
waitforは出力がまったくないプロセスにしかつかえんよ
469 :
465:2005/05/11(水) 12:54:40
そんなことないですよ。
465のケースでも、出力の量が少ないケースではうまくいってます。
waitforが終わったあと、プロセスから標準出力を取り出す形で。
だからそのバッファに依存だって
waitFor()で待つ前にとりだしてやらんと
たとえば極端な場合バッファサイズがほとんどないという可能性もある
472 :
465:2005/05/11(水) 12:56:47
そうみたいですね、ありがとうございました。
ようするに漏れてたわけじゃなくて詰まってたわけだな。
474 :
465:2005/05/11(水) 13:00:15
外部コマンドを実行して、大量の標準出力を取得する安全な方法ってないんですかね?
ごく普通にプロセスからストリーム取得して取り出していけば何の問題もないが?
>>467 > いつまでたってもサブプロセスが終わらない、というリークです。
そーゆーのはリークと言うのか?
っつか、
>>467の脳内で何かがリークしてるような気はするんだが。
477 :
465:2005/05/11(水) 13:08:17
話を整理しますと。
メインプロセスからサブプロセスにてコマンド実行
↓
サブプロセスのコマンド終了
↓
メインプロセスにてサブプロセスのコマンドの標準出力を取得
という流れで、サブプロセスのコマンド終了のタイミングまで待つために、waitfor()を用いてました。
この「サブプロセスのコマンド」の実行自体が終了しないのです。
確かに脳からうんこはリークしてるな。
このサブプロセスの話なんてもう何年も話されてきてぐぐればいくらでもみつかるな
なんでいまだにwaitFor()つかってるの?
480 :
465:2005/05/11(水) 13:40:18
サブプロセスの終了のタイミングを知るのに、他の方法があるのですか?
普通にストリームの終了
このスレは答える側がめちゃ偉そうだなww
483 :
465:2005/05/11(水) 13:44:05
Java以前の勉強したほうがいいかもね
パイプとか
485 :
465:2005/05/11(水) 13:45:37
そうかもしれないですね。
486 :
とうりすがりのPG:2005/05/11(水) 13:46:42
とりあえずアルゴリズムを勉強してからPG目指しましょう!
とうりすがり(←なぜかへんかんできない)
東リすがり
党利すがり(←変換したらこうなった)
十里縋り
javaって、人によって向き不向きってあるのかな
数学嫌いで国語成績高い友人はどんどん上達しているのに、数学それなりにできるけど国語力皆無な俺は全く上達できない…
ガキでもわかりそうなjava絵本買って呼んでるけど、それでも理解不能…もうだめぽ
日本人はオブジェクト指向が苦手なのだよ。
プロシージャー型でガンガン突き進め。
なんで?農耕民族だから?
習って覚えろ、というより、慣れて覚えろ、って事なのかな
記憶力はあっても、考える力が無いからなぁ…
>>491 数学嫌いな人ってのは根本的にプログラマに向いてない気がするんだが。。。
>>495 数学嫌いでも算数できれば構わんと思うが。ま、ケースバイケースだけど。
数学が出来るかどうかは関係ないとおもうぜ
ただ、論理的な思考がどうしても出来ない人はいるので
やっぱ向き不向きはあるんだなとおもた
>>495 友人は大学での成績が殆どAクラスなんだけど、数学系だけは最低のXなんよ(途中で諦めてる
彼曰く
「数学って答えが1つしか無いじゃん?俺そういうの嫌いなんだよね。国語だったら『例え』みたいな感じでも、答えっぽくなってればOKじゃん。でも数学って1つしかないから、どこか1つでも間違えたらそこでアウトだろ。それが嫌なんだよ」
「プログラミングは、答えは工夫すれば幾つでも出てくる。自分が嫌だと思った『答え』でも、改良すれば更にいい『答え』が発見できる。それが面白いんだよね」
みたいに言っていた
そういや彼はperlからjavaに入ったんだったな…
学校の授業や試験の数学が苦手でも、パズルとか法則性を見つけるのがコツなゲームとかが好きな人はプログラマに向いているんじゃない?
将棋とかオセロとかチェスとか、先のいろんなパターンの手を読んでシミュレーションするのが好きな人も。
>>497 論理的な思考か…俺はそれができないんだろうな…
どこが分からないのか分からない状態でもあるけど
さて、javaレポート終わってないけどゼミに出るか…
留年| λ.............
論理的な思考って全ての学問に必要だと思うけど…^^;
>>501 そうなのか…よくやってこれたなぁ俺…単位ギリギリだけど…ハァ…
>>501 たとえばバグが出たときわかりませんといって長いソースコードだしたりとかな
そういうのをやるのは論理的な思考が出来てない
>>500 ……マ板行って相談すれば?
>>500 がプログラム全般苦手ってんならJavaは関係ないし。
「数学って答えが1つしかないじゃん」なんてほざいてるから
数学わからんのだろう。
高校までの管理された数学なら一つしか答えが無いかも知れないけれど、一般的な数学問題はそういうわけにはいかないもんね。
>>503 とはいうものの、「『不要な部分』を省略しました」とか言って出してくる
短いソースコードには問題の部分が含まれていないという法則。
基本的に問題部分が特定できてるなら大抵の場合は自力で解決できるしね。
躓いてるなら、問題のありそうな箇所は全部出した方が良い
(NDAとかの縛りがあったら無理だけど)
数学が苦手で、パズルが得意でもアフィン変換とかできねーだろ。馬鹿どもがw
業務プログラマには要らないもん。
>>507 不具合の出るところだけの最低限のコードでテストするという
考えが思い浮かばないやつ多いよ
何年も職業プログラマやってるくせにねぇ
そして最低限のところにしたら問題はでなくなりましたとかほざきやがって
つまり違うところでバグだしてるんじゃねーかと
http://www.smg.co.jp/seminar/java/J_lecture02.html ここの2.プログラムの入力のソースをコンパイルしようとしたら
>HelloWorld.java:3: シンボルを解決できません。
>シンボル: メソッド printIn (java.lang.String)
>場所 :java.io.PrintStreamのクラス
>Systemout.out.printIn("Hello Java World!");
>
>エラー一個
と出てコンパイル出来ません…どうすればちゃんと出来るのでしょうか?
エラーメッセージまんまだな
雑誌のソースを手打ちしてた頃を思い出すなぁ
printIn じゃ無くて println
「l(エル)」です
そのエラーの意味するところは「メソッド[printIn]ってなんですか?」
とコンパイラが言っているだけ
大抵は単純な typo や Import が不完全だったりが原因
printInなんてメソッドあったっけ?
>>511のリンク先
> 上に書いてある部分を「コピーして貼り付け」、なんてことはせず、
>必ず自分で一文字一文字入力してください。
>単純な入力ミスがどのような影響を及ぼすのか、自分はどういうところで 間違えやすいか、など、
>わかることがたくさんあります。
>今は、一文字一文字打っているだけでも勉強になりますので、ここで不精しないこと!
この通りになったわけだw
println(print line)じゃなんのことか初心者には分かりづらいものね。
なんとなく形の似ている知ってる単語 In を当てはめてしまう心理は分かる。
pascalもwritelnだったなぁ。pascalはcase insensitiveだから(実装依存?)
WriteLn とか書いてる教科書も多くて間違えづらかったけど。
Systemout のほうはいくらなんでも自力で気がついてるよな?
520 :
デフォルトの名無しさん:2005/05/11(水) 20:50:43
RMIのプログラムを作っています。
サーバー側のプログラムを動かそうとすると
Nullポが発生し、
XXX_Stub.getValue(Unknown Source)
というエラーが出てしまいます。
_Stub.classって生成しただけじゃだめなのでしょうか?
psで出てくるVMのプロセスってjava --〜以外あるんでしょうか?
環境はsolaris8のjdk1.3です、が他にも居そうです。
よくわかりません、入っているかもしれません。
考えうる表記を教えてください。
>520
もうちょい噛み砕いてくれないとなんとも申せません
どうやって登録したんです?rebindすればいくんじゃない?
htmlでsubmitした値を別ウィンドウを開いてgetParameterしたいのですが
html側
<SCRIPT language="JavaScript">
<!--
function jump(){
win=window.open("next.jsp","new","width=800,height=600");
}
// -->
</SCRIPT>
中略
<form method="post" onSubmit="jump()" name="form1">
<input type="text" name="addname">
next.jsp
<%
String name = request.getParameter("addname").toString();
%>
java.lang.NullPointerExceptionがでてしまいます。
<form method="post" action="next.jsp" name="form1">とすると値は受け取れました。
別ウィンドウに値を受け渡すにはどうすればよいか教えてください。よろしくお願いします。
window.open だと、ただ単にその URL で示される JSP を呼び出すだけ
submit はされていません
URL にパラメータを付加するか、target で新規ウィンドウを指定した上で
submit をかけるかになります
もしくはJavaScript で親ウィンドウにアクセスして値を取得するか
>>524 どうも親切にありがとうございます。
まだどうやるのか自分の中でイメージできてませんが、
調べながらがんばってみようと思います。
526 :
デフォルトの名無しさん:2005/05/12(木) 15:50:07
手元にある自作のHTMLを画面に表示させたいため、
JEditorPaneを使いたいと考えているのですが、
どうすればいいのかわかりません。
ラベルに画像を表示させるのにaddを使うような感覚で、
HTMLをJEditorPaneにaddするものではないのですか?
JEditorPaneでHTMLを表示させるのに必要な手順を教えてください。
具体的なコードも出せず恐縮ですが、ご回答よろしくお願いします。
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/javax/swing/JEditorPane.html >このコンポーネントには、次のような方法でコンテンツをロードできます。
>1 setText メソッドを使うと、文字列からコンポーネントを初期化できる。この場合、現在の EditorKit が使われ、
> コンテンツ型はこの EditorKit の型であることが要求される
>2 read メソッドを使うと、Reader からコンポーネントを初期化できる。コンテンツ型が HTML の場合、<base> タグ
> が使われていないか、または HTMLDocument で Base プロパティが設定されていないと、イメージなどの相対参照
> を解決ができない。この場合、現在の EditorKit が使われ、コンテンツ型はこの EditorKit の型であることが要求される
>3 setPage メソッドを使うと、URL からコンポーネントを初期化できる。この場合、コンテンツ型は URL から判断され、
> そのコンテンツ型に登録されている EditorKit が設定される
Appletについて質問です。
AppletClassLoaderをstaticで取得する方法はないでしょうか?
staticでない方法ならgetClass().getClassLoacer()で出来ますけれど。
なぜクラスローダを取得したいと思ったのか
質問のレベルから考えるとクラスローダをいじるとはおもえんが
staticでない方法でいいじゃないか
530 :
デフォルトの名無しさん:2005/05/12(木) 16:45:59
プログラム内で時間を計りたいんですけど,
あまりに短すぎる時間なのか
処理前と処理後のgetTimeメソッドの値が変わりません.
何かアドバイスください
目的が分からんから的外れな回答かもしれんが
処理のコストを計りたい or 比較したいってのなら、
複数回実行させた処理時間を計ればいい
まさかとは思うが、同じ Date インスタンスから getTime をして
変わらないとか言ってるんじゃないよな?
532 :
デフォルトの名無しさん:2005/05/12(木) 17:00:02
>>531 Date now1 = new Date();
Date now2 = new Date();
long startTime1 = now1.getTime();
//処理
long endTime1 = now2.getTime();
としたんですけど・・・
>>530 java.lang.System#nanoTime()
>>532 こうしろ。
Date now1 = new Date();
long startTime1 = now1.getTime();
//処理
Date now2 = new Date();
long endTime1 = now2.getTime();
もしくは、こうだな。
long startTime1 = System.currentTimeMillis();
//処理
long endTime1 = System.currentTimeMillis();
同じフォーム内にある複数のコンポーネントにドラッグ&ドロップの処理をし、
コンポーネントごとに別の処理をしたいのですがどようにしたらいいのでしょうか
すみませんが教えてください
複数のコンポーネントから同じ処理をするところまではできたのですが、その先が
わかりません
DropTargetListenerをimplementsしたのですが処理の方でドロップ元を判別する
のでしょうか?
わかりにくい文章かと思いますがよろしくお願いします
>>529 jarなアプレットでリソースを取得する時に
getClass().getClassLoacer().getResource("img/hoge.jpg");
としてるのですが、このリソースを複数のクラスで共有したいので
そのオブジェクトをstaticにしたいのです。
getClassはstaticではないので上記の様には出来ませんでした。
>>539 設計が悪いだけじゃね?
なんでリソース共有するのにstaticでなきとだめとかいうことになるんだ
共有したクラスが多いのでinterfaceにしたいから
共有した
↓
共有したい
>>541 何を共有化して、何を interface にするんだか?
ちなみに、static final なフィールドを interface に持たせて
全部のクラスに implement して共有するってのは、
interface を本来の意味以外に使用するダメパターンとして有名だぞ。
そーゆー事がしたければ 1.5以降なら static import あるし。
素直にsingletonでも使えば。
いやならgetClass()じゃなくHoge.class.getClassLoader()・・つかうとか
まぁ、自クラスないとは言えクラスリテラルをコードに書きたくない
気持ちは分かる。(いや、たぶん元質問者はそこまで考えてないと
思うが)
class Foo {
// ここで thisが Foo.class の意味で使えたらと思うことはある。
}
> まぁ、自クラスないとは言えクラスリテラルをコードに書きたくない
後で別のクラスにコピペするために?
取り込んだImageの明暗を操作することは出来ますか?
>>545 > 素直にsingletonでも使えば。
>
> いやならgetClass()じゃなくHoge.class.getClassLoader()・・つかうとか
そんな事が出来たのですが。。。ありがとん。
複数のクラスからリソース読み込むコード書いて
結局リソースのためのメモリを重複してもちそうだな
551 :
526:2005/05/12(木) 22:56:12
>>537 ご回答ありがとうございます。
チュートリアルは、紹介していただいた以外の、類似したページを
みていました。
紹介していただいたページも参考に、もう少し頑張ってみたいと思います。
JLabelで画像を表示させるのはsetIconでしたね。失礼しました。
552 :
デフォルトの名無しさん:2005/05/12(木) 23:11:01
学校の課題で苦戦しております。
"住所","ナマエ","電話番号",”生年月日”
"住所","ナマエ","電話番号",”生年月日”
"住所","ナマエ","電話番号",”生年月日”
.
.
"住所","ナマエ","電話番号",”生年月日”
となっているcsvファイルをナマエ順にソートする
classを3つぐらいに分けてやるやりかたをおしえてください、もしくは参考になるページがありましたら
よろしくお願いします。
>>552 まずは行をエンティティビーンに分割するクラスを作る。
それをソートする。アルゴリズムはお好きなモノを。
表示するJSPを作成する。
結城本のデザインパターンマルチスレッド編の
Two-Phase TerminationパターンをThreadを継承したクラスではなく、
Runnableを実装したクラスで実行したいのですが、どうしてもうまくいきません。
this.interrupted();の部分が、Runnableのインターフェースでは実行できないのが原因なのですが、
何かいい方法はあるでしょうか?
Thread.interrupted()などとしても、interrupted()を実行するのはWorkerThreadではなく、
mainスレッドになってしまい、うまく動作しませんでした。
よろしくお願いします。
public class WorkerThread extends Thread {
private volatile boolean _shutdownRequested = false;
public void shutdownRequest(){
_shutdownRequested = true;
this.interrupted();
}
public void run() {
try {
while(!_shutdownRequested){
System.out.println("現在動いています");
Thread.sleep(3000);
}
} catch (InterruptedException e){
doShutdown();
}
}
private void doShutdown() {
System.out.println("このメソッドを実行してから、終了します");
}
}
スレッド以前にJavaの文法勉強したほうがいいよ
たぶん、スレッドがらみでなくてもおなじことがあればおなじように転ぶから
はげわら
◆9NQzQ21lxって公開だっけ
>>554 RunnableにするってことはどこかでThreadインスタンスを作る必要がありますから、
なんとかしてそのインスタンスを渡してそれからinterrupted()メソッドを呼び出してみては?
>>554 public class WorkerThread extends Thread {
private volatile boolean _shutdownRequested = false;
public void shutdownRequest() {
_shutdownRequested = true;
this.interrupt();
}
public void run() {
try {
while (!_shutdownRequested) {
System.out.println("現在動いています");
Thread.sleep(3000);
}
} catch (InterruptedException e) {
} finally {
doShutdown();
}
}
private void doShutdown() {
System.out.println("このメソッドを実行してから、終了します");
}
}
>>555に同意。
あとAPIドキュメントをちゃんと読みましょう。
public class WorkerThread implements Runnable {
private volatile boolean _shutdownRequested = false;
public void shutdownRequest() {
_shutdownRequested = true;
Thread.currentThread().interrupt();
}
public void run() {
try {
while (!_shutdownRequested) {
System.out.println("現在動いています");
Thread.sleep(3000);
}
} catch (InterruptedException e) {
} finally {
doShutdown();
}
}
private void doShutdown() {
System.out.println("このメソッドを実行してから、終了します");
}
}
public class WorkerThread implements Runnable {
private volatile boolean _shutdownRequested = false;
private volatile Thread _thisthread = null;
public void shutdownRequest() {
_shutdownRequested = true;
if(_thisthread != null) _thisthread.interrupt();
}
public void run() {
_thisthread = Thread.currentThread();
try {
while (!_shutdownRequested) {
System.out.println("現在動いています");
Thread.sleep(3000);
}
} catch (InterruptedException e) {
} finally {
doShutdown();
}
}
private void doShutdown() {
System.out.println("このメソッドを実行してから、終了します");
}
}
.NETのアセンブリのような仕組みはJavaにあるのですか?
>>564 何ができると「アセンブリのような仕組み」と思うかによる。
.NETのアセンブリってどんなものなのか説明してごらん?
オレモシリタイ
googleで調べろ
static なメソッドの中で、
新たにインスタンスを生成せず、
自分自身の Class オブジェクトを取得するにはどうしたら良いでしょうか?
インスタンス化されているところでの this.class に相当するものを、
static なところで取得したいです。
>>570 ClassのforNameメソッドを使う
>>526 単にHTMLのレンダリングでいいのであれば
そのHTMLの文字列をそのままJLabelのテキストに張ればいい。
SwingのたいていのコンポーネントはHTMLを解釈してくれる。
>>570 普通に、「そのクラス名.class」ってやれば?
574 :
554:2005/05/13(金) 08:44:00
>>556を書いたのは、自分ではないです。
>>563 どうもありがとうございました。
これで、バッチリ動きました。
大変勉強になりました。
>>562 この方法は自分でも試してみたのですが、
Thread.currentThread().interrupt();では、InterruptedExceptionを投げさせることが出来ないので、
たとえば、Thread.sleep(30 * 60 * 1000); のようになっていると、
シャットダウンまで最大30分待たなければならなくなります。
562 じゃなくて 563 の方法じゃないと駄目だよ
外部から呼び出したメソッドで currentThread としても、それは呼び出したスレッド
が返ってくるだけで目的のスレッドじゃないです
>>563 WorkerThread が shutdownRequest() 以外から
interrupt() された時の事を考慮してないような。
577 :
デフォルトの名無しさん:2005/05/13(金) 11:40:39
RMIサーバへのNaming.lookupで、タイムアウト時間を指定するにはどうしたらいいんでしょうか。
addToEnvironment("jnp.sotimeout", "??");したInitialContextのlookupに直すとかやってみたけど変わりません。
JLabelとかがテキストをHTMLとして解釈してくれるのは、
最初の6文字が <html> (case区別なし)である場合。
いい仕様だとは思えんが……
この仕様で助かってる人も多いと思うが
>>576 while (!_shutdownRequested && !_thisthread.isInterrupted()) {
こうしたらOKかな?
>>578 <html>を表示したいときはどうしたらいいの?
>>580 > こうしたらOKかな?
ダメだと思われ。
interrupt() された場合は、 while()ループの外に出ちゃうから、
ループの終了条件に記述追加しても補足出来ないはず。
一行だけ直すってルールでやるなら
>> Thread.sleep(3000);
try{ Thread.sleep(3000); }catch(InterruptedException e){}
にするぐらいしか無いのでは?
583 :
580:2005/05/13(金) 17:51:19
>>582 根本的に勘違い・・・
while (!_shutdownRequested) {
System.out.println("現在動いています");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {}
}
doShutdown();
多分こうすれば shutdownRequest()以外からのinterrupt()をスルーできると思う
#doShutdown()以外からのinterrupt()でも正しく終了させる方法を考えてた・・・orz
584 :
デフォルトの名無しさん:2005/05/13(金) 17:58:43
質問があります。
例えばこのサイトでは、E-mailの欄に入れる事が可能な最大文字数は制限されていませんが、
E-mail欄に入れる事のできる文字数を制限されている掲示板もあります。
その掲示板で、E-mail欄に入れる事ができる最大文字数を、
例えば半角100文字から半角200文字に増やすにはどうすればいいのでしょうか?
なぜこのスレで質問する気になったか教えてくれれば
答えてもいいよ.
申し訳ありません。PCに関しての知識は全くなく完全な初心者で、
どこのスレに質問していいかも分からなかったので、
初心者大歓迎というこのスレにて質問してみました。
>>581 "<html><body><html></body></html>" とかすれば良いのでは?
>>587 Javaに対しての質問・相談な
【】の中はおまけだ
591 :
589:2005/05/13(金) 18:12:41
失敗
"<html><body>&lt;html&gt;</body></html>"
全角& は 半角&に置き換えてね。
592 :
587:2005/05/13(金) 18:14:34
お手数ですがどのようなスレにて質問すればいいのか教えていただけないでしょうか?
>>589 htmlで記述しろって言いたいんだろうけど
その内容ははずかしいな.
>>587 どういった方法で制限かけられているかによるんじゃない?
たとえばinputタグのmaxlengthやjavascriptだったら書き直せばいい。
サーバー側のバリデートだったら無理だろう。
>>592 開発者なの?
ならそういう質問はこないと思うし
すでにそういう制限があるサイトがあってこまるというのならそこの管理者にいうしかあるまい
開発としてならWEBProg板にでもいけばよろし
<INPUT TYPE="text" NAME="mail" SIZE="26" istyle="3" MODE="alphabet" maxlength="100" VALUE="">
となっておりました。どのような方法で書き直せばいいのでしょうか?
目障りかと思いますが、時間が空いていて気が向いた方いらっしゃったら
答えていただけたら嬉しいです。
開発者でもなんでもありません。PC初心者です。
597 :
デフォルトの名無しさん:2005/05/13(金) 18:36:02
PC初心者板というのが存在します.
参考までに.
>>596 管理者にメールするのが一番PC初心者向きだね.
皆様お手数おかけしました。ありがとうございました。
601 :
587:2005/05/13(金) 22:52:14
すみませんがあと1つ質問があります。
このサイトでは、書き込むというボタンを押すと確認をするような画面が出てきます。
しかし他の掲示板を見ると、そのような機能はやはり難しいと思います。
ですので私の場合はどのような関数を作ればよいのでしょうか?
char ch = 'あ'
ってあったとして、この ch に要素を追加したいんですけど、
ch = ('あ' + 'い');
ってやると精度が落ちてる可能性とか言われちゃうんです、
+の足し算とかはint型とかだったら使えるけど、char型だと使えないのかな。
こういうことしたいときってどうやって要素追加したらいいんでしょうか?
くだらなすぎる質問かもしれませんが、何卒。
charじゃなくてStringにしてみれば?
文字と文字列は違うのよ。
604 :
602:2005/05/13(金) 23:07:27
>>603 なるほど、ちょっとやってみます。
もしかしてchar型の変数って1文字だけしか扱えないとかですか?
>>602 >+の足し算とかはint型とかだったら使えるけど、char型だと使えないのかな。
使えるけど、char型の数 + char型の数 の計算結果は2項数値昇格によって
int に格上げされるからそのままでは charには代入できない。
ちなみに、
> ch = ('あ' + 'い');
を ch= (char)('あ' + 'い');
とやっても ch は "あい" にはならない。
>>604 基本的に char は 1文字だけしか扱えない。
本当はサロゲートペアとか複合文字とかあるので1文字とは限らないんだけど。
607 :
602:2005/05/13(金) 23:35:15
>>604 >>605 なるほど、とりあえずchar型では
ch = あい
とすることはできないようですね。
で、ちょっと気になったんですが、
>> ch = ('あ' + 'い');
>を ch= (char)('あ' + 'い');
>とやっても ch は "あい" にはならない。
の(char)の部分てどんな意味があるんでしょうか?
>>607 >(char)の部分てどんな意味があるんでしょうか?
おいおい・・・
キャストでググってこい
>>607 とりあえず、「charとはなにか」を一から学びなおすことをお勧めする。
hatena.org/javaとか?
Jarの中に
・ClassA
・hoge.jpg
があるんですが、ClassAからhoge.jpgにアクセスする方法がわかりません。
どなたかご教示ください。
612 :
デフォルトの名無しさん:2005/05/14(土) 00:49:36
すみません、ちょっとお聞きしたいんですが、
サーブレットとjspで作ったサイトで携帯からのアクセスがあります。
携帯のバックボタン対策をno-cacheでやっているのですが、
クリアボタン(バックボタン)が押されたときに
指定のページに飛ばしてくれ、といわれました。
これってjavascriptで実現できますでしょうか?
携帯上でjavascriptって動くんでしょうか?
>>612 スレ違いだが、全部サーバーサイドで解決できるということだけは
教えてあげる。
戻るボタンの対策は、サーバーサイドじゃ無理でしょ。携帯の場合は読み込みなおさないし。
OperaとかPC用サイトが見れる携帯なら、JavaScript使えるのかな。
そもそもjavascriptはOFFにできるわけで
戻るボタン押してもその後ちゃんと動くようにやればいい
ヒント セッションID+データベース
617 :
桜木:2005/05/14(土) 16:38:05
今配列について勉強してますが、ある問題が分かりません。
「一連の整数(1〜100まで)を5つ入力し,その中の最大値と最小値を表示する
プログラムを作る.」
これってif文やfor文もつかうんですよね?私が考えたのは
public class hairetu {
public static void main(String[] args) {
double[]x = new double[100];
最初の値と次の値を比較(小さいほう又は大きいほうを覚える)
その値と次の値を比較 (``)
}
}
ってかんじで、細かい文の構成が浮かびませんorg
できる人にとっては簡単かもしれませんがよかったら教えてください。
ちょっと待て
一連の整数の……ってのは1〜100の中から5つ選ぶってことか?
だったら何故double型を使って、何故100個配列を用意した?
620 :
デフォルトの名無しさん:2005/05/14(土) 16:47:34
621 :
デフォルトの名無しさん:2005/05/14(土) 16:53:44
この板は山田君が元気だな。
上のほうにあるからね
しかもなんでorgなんだ?
or2だろ
626 :
デフォルトの名無しさん:2005/05/14(土) 20:27:42
質問です。
InputStreamクラスを用いて、アップロードしたxlsファイルを
中身を読み込んで、チェックするなどの作業をしているのですが、
メモリが足りなくてクライアントマシンではout of Memoryが出てしまいます。
なので、サーバにwarファイルを作って、サーバで動かしているのですが、
それでもout of Memoryになってしまいます。
ちなみにxlsファイルのサイズは4500KBくらいあるのですが、
これって常識はずれの大きさなんでしょうか。
WEBでこんなサイズのファイルを取り扱ってはいけないのでしょうか。
ちなみにクライアントのマシンのメモリは768です。
>>626 -Xmx500m でとりあえず逃げる。あともしかしてxlsファイルの
処理にPOI使ってるとしたら、あれすげーメモリ大食いだからあきらめれ。
628 :
612:2005/05/14(土) 20:33:03
レス下さった方ありがとうございます。
スレ違いでしたか?
質問相談スレだから平気だと思ったんですが、すみません。
>>613、616
まずはクライアントから要求を出さないと
サーバーサイドに来ませんよね。
携帯の端末に表示されたWebサイト上での話しですから・・・。
これを拾えるのはJavaScriptしかないと思ったんですけど、
携帯に入ってるブラウザはJavaScript使えるかよくわからなかったもので。
>>615 すみません、戻るボタンを押してもその後ちゃんと動くって
どうやったらよいのでしょう。
629 :
デフォルトの名無しさん:2005/05/14(土) 20:33:17
>>627 早速のレスありがとうございます。
POIを使ってます。
そうですか、メモリ大食いですか・・・。
パートナに薦められて使ったのですが、騙されますたorz
自分の知識不足のせいですね。。。
>>628 >>1を百回声に出して読んでください。
あとこの板のローカルルールも2回くらい読んでください。
>>629 ま、そういうのを騙されたと言うようなやつにはアドバイスしたくないわけだが。
いちいちあげ足とらなくていい
Javaで掲示板つくりたいのだけどどんな知識が必要?
633が持ってる知識をまず述べるほうが早い。
servletにjspにbeanかな
てかjspだけでいけるか
掲示板はJSPでさくっとどうぞ
637 :
633:2005/05/14(土) 23:05:20
Javaについての基本的な知識はあるつもり。
最近、サーバサイドのJavaを勉強し始めた。jspやサーブレットはあまりわかってない。
jspで作る場合、掲示板のログはtxtファイルとかに書き込むという感じでよい?
JDBCとかXML使ってもいいぞ
掲示板作るのはいいが、設置するサーバはどうすんの?
>>637 普通にPostgreSQLでも使った方が楽と思うが。
641 :
633:2005/05/14(土) 23:18:17
デザインの問題なら適当な掲示板をパールなどから移植するよろし
>>641 とりあえずやってみてダメだったらまた質問すればよろし
初心者ならTomcatが同梱されてるNetBeansがわかりやすいかな
あの〜、main()メソッドって何でstaticなのでしょうか?
えらい人教えてください、お願いします
646 :
デフォルトの名無しさん:2005/05/15(日) 00:39:23
>>645 とりあえず、static外してみたらよかろう。
クラスをロードした時にはクラスしかないからじゃないか?
648 :
633:2005/05/15(日) 00:40:49
だって、インスタンスメソッドのはずないじゃん。
staticの意味を考えてみれば・・・。
>>648 Mainと言うクラスのコンストラクタ。と言う実装でも何の支障もなかったはずだ。
そう言うメタな話でしょ。
アプリケーションのエントリポイントをどうするかなんて
やり方はいくつもあるからなあ。
>>651 それに対して
>だって、インスタンスメソッドのはずないじゃん。
>staticの意味を考えてみれば・・・。
この暴言ですよ。
653 :
645:2005/05/15(日) 00:53:37
>>647 開始されたもっとも最初の時点ではいかなるクラスインスタンスは存在してませんよね
この状態でmain()メソッドを呼び出すわけだから(呼び出すためには?)
staticとして宣言されてる必要があるということですか?
>>645>>648 だから、えらい人意外は黙っててください
まあアプリケーションを定義するインターフェース(IApplicationとでも
する)を作って、アプリケーションはそれを実装。java.exeのような
ラウンチャは指定されたクラスのインスタンスを生成し、
IApplication#run(String[] args)を呼ぶみたいな仕様もありといえば
あり。いくつかのフレームワークはこの手をつかってるね。
まあSunの偉い人に聞いてください。
>>653 大体あっている。あえて言うならば、
×いかなるクラスインスタンスは
○いかなるクラスインスタンスも
あと、文の最後には「。」をつけること。
656 :
645:2005/05/15(日) 01:13:11
うーん、実際にはjava.exeがJNIでmain()をキックするわけじゃなく
VM上でさまざまなお膳立てがされた後でクラスローダが自クラスを
ロードするわけだからなあ。単にわかりやすいっていう理由以外の
積極的な理由はないと思う。
>>653 まず仕様を大前提として考えてみると、javaのプログラムを起動する流れはこうだね。
1 javaコマンドの引数にクラス名を渡す
2 javaコマンドがJVMを起動し、JVMは指定されたクラスをロードする。
3 mainメソッドを呼び出す。mainがなければエラーになる。
こういう仕様があって、仕様に合致するには、クラスをロードした段階では
JVM内にはそのClassしかないわけで、そのクラスのstaticメソッドしか呼び出せな
いってことだよね。しかもjavaコマンド引数にメソッド名をわたすわけでもないので、
固定的な名前のメソッドを呼ぶしかない。仕様でそれがmainだと決められた。
もっとつっこんで「なんでそういう仕様にしたのか」という疑問なら、みなが
言っているようにエントリポイントのやり方なんかいろいろ考えられるんだ
けど、たぶん一番分かりやすいからだろうね。
ユーザが指定したクラス単体で起動可能である必要があるから、起動用別
クラスでは困るし、ユーザが書いたコード以外の場所で勝手にインスタンスが
作られても困るから、JVMが勝手にインスタンス化してインスタンス・メソッドを
呼び出すのでもまずい。
となると、クラスロード時に決められた名前のクラスメソッド(staticメソッド)を
呼び出して、インスタンス化などの必要な作業はそこでプログラマが明示的に
行なう、というのが一番シンプルで直感的だってことじゃないかな。
JDKをインストールしたら、なんかレジストリ弄られたりコントロールパネルに追加されたり
したんですが、これらの事を回避する事はできませんか?
昔のJDKは解凍して環境変数を設定するだけで使えたと思うのですが・・・
確かJREをインストールしないようにすれば回避できたかと
Java Plug-in とか Java Web Start とか勝手に入れるの止めて欲しいね
Java Plug-inは、ちゃんと確認のチェックが出ると思うが。
なんか問題ある?
jnlp(だっけ?)のMIMEタイプ設定するだけじゃない?
使わない機能をインストールすることは容量その他の無駄だし、セキュリティ上も問題がある
>>666 さっきからいろんなスレで一般論ばっかり書いてるみたいがだ。。。どの辺が楽しいんだ?
いろんなスレってどこだ?
今日はこのスレにしか書込んでないのだが・・・
>>659 そういうためのパブリックJREとプライベートJREなんだが
ドキュメントくらい読め
しょっちゅう「〜の最新版が…」「〜のインストールの準備…」とかウザイ。
そのたびにCPU100%になって、HDもガリガリなって、精神有害な糞ソフト
Windowsのこと?
そっか。Mac使えば?
GUIが遅い
じゃあおれOSでも使えばいいんじゃね?
>675
漢は黙ってX抜きのFreeBSD
それはGUI自体がない
Solarisでいいじゃねぇか。
681 :
633:2005/05/15(日) 22:30:33
超基本的なことを聞くが、サーブレットをコンパイルするためにはJ2SDKだけではだめなのか?
なぜかサーブレットだけがコンパイルできない。J2EEのインストールも必要かな。
J2EEつーかサーブレットコンテナな。
Tomcatならservlet.jarにクラスパス通してコンパイルすればよし。
というかそれくらいは自分でぐぐって何とかできるようでないとおぼつかないぞ……
>>681 NetBeansいれてないのか
あのIDEいれるといきなりJSP作成から入れるぞ
>>681 J2SDKだけじゃダメ。
Tomcatでもなんでもいいから、Servlet APIを提供するライブラリ(JARファイル)が必要。
685 :
633:2005/05/15(日) 23:50:32
みなさんありがとうございます。
がんばってみます。
NetBeans使っとけば、コンパイルするためとか動かすための努力は必要なくなるね。
プログラムつくるのに専念できる。
687 :
デフォルトの名無しさん:2005/05/16(月) 07:00:25
コンストラクタで設定した値は、それが final 宣言されていなくても
コンストラクタ終了時にメインメモリに書き込まれるのでしょうか?
(それとも、コンストラクタの変数への設定は、メインメモリに直接書き込まれる?)
たとえば、long や float は、複数のスレッドからのアクセスに対して
非同期ではアトミック性すら保証されていないので、
何らかの同期が必要になるのは知っているのですが、
class Hoge {
private long x;
Hoge() { x = 1; }
synchronized long getX() { return x; }
synchronized void setX(long x) { this.x = x; }
}
こういうときに、インスタンスを生成してから
他のスレッドから getX() を呼び出された場合、
正しく x を読めるのでしょうか?
それとも、コンストラクタを
Hoge() { synchronized(this) { x = 1; } }
などとしないといけないのでしょうか?
メインメモリに書き込まれてさえいれば、
他のスレッドから初めてその値を読もうとすれば、
それはメインメモリから読み取るので、万事良しなのですが。。
688 :
デフォルトの名無しさん:2005/05/16(月) 07:10:47
>>687 自己レス
>他のスレッドから初めてその値を読もうとすれば、
この部分、同期されていれば初めても何もなかったです。
失礼
メインメモリに直接書き込まなかったら、どこに書き込まれるんだろう・・・・
>>689 ローカルキャッシュからライトバックされてない状態というのもありうる。
マルチCPUの場合これは結構問題になる。
synchronizedはこのキャッシュの同期も面倒をみるように
VMの仕様で決められている。
>>687 変数1個だけが問題なら宣言にvolatileつければいい
>>686 便利なんだけど、そうするといつまでたっても
>>681みたいなのが
減らない希ガス。どこに何を配置しなければいけないとか、
ビルド時と実行時でそれぞれ必要なクラスパスとかを
理解しないままなのもどうかとおもうけどな・・・
べつにそれでいいんじゃないの?
633って自分じゃJavaの基本知識はあるとかいってるけど、
かなり怪しい感じするし覚えられることから順番に覚えていけば。
693 :
デフォルトの名無しさん:2005/05/16(月) 10:42:23
694 :
577:2005/05/16(月) 10:43:30
タイムアウト指定はないんですかねえ。
ここんとこずっとぐぐってるんですが。
>>693 > そしてTOMCATの中のwebappsの中にtestというJSPテキストをつくり、 拡張子をwarにしました。
ここが間違い
697 :
デフォルトの名無しさん:2005/05/16(月) 10:58:24
いろいろなサンプルを見ていると、
main関数のなかで自分自身のクラスをインスタンス化してメソッドを呼び出している
ものと、インスタンス化せずにメソッドにpublibをつけて呼び出すのと
2つあったのですが、どちらがいいのでしょうか?
それぞれのメリットなんかを教えていただけないでしょうか?
>>691 それは、まず動かせるようになって、概要がつかめてから改めて勉強すればいいと思う。
なにも知らないうちはまず動かすことが大事
javaを勉強することになったのですが、
コンパイラって何?って段階で、入門書片手に準備しようとしたんですが
JDKとかJ2SEをDLしようとすると何回やってもnotfoundになりますorzなぜー
他のコンパイラとか探さないとだめなんでしょうか。
初心者にすらなれてないのでスレ違いかも・・・ゴメンナサイ(´・ω・)
>>700 どこからダウンロードしようとしているんだ。
アドレスを出せ。
702 :
700:2005/05/16(月) 12:42:18
>>700 DLするならNetBeansバンドルのもの落としてNetBeans使っとき。
とりあえずNetBeans使っておけば、「コンパイラって何?」のままJavaのプログラムはひととおり勉強できる。
705 :
700:2005/05/16(月) 12:48:46
あああ。やっぱりnotfoundになってしまう〜
理由にも思い当たらない程度の頭なので、出直してキマス。
知り合いに落としてもらうとかしかないのかな。
ご迷惑おかけしてすいませんでした orz
・・・なにがnotfoundになるか説明する頭もないならしかたないな。
707 :
577:2005/05/16(月) 13:06:49
javaVMへの引数に-Drmi.〜を指定するという手法があったんで試してみました。
認識してくれないみたいでした。
RMISocketFactoryを継承するという手法があったんで試してみました。
指定できるのはsoTimeoutだけ。
しかもsoTimeoutは使われる場所が違う、ということで…。
「該当機能なし」ということで結論を出しました。
お邪魔しました。
708 :
マニア:2005/05/16(月) 13:10:52
>>700 コンパイラってのはコンパイル(プログラムを機械語に訳す)ためのアイテムって理解しましょう!
んで コンパイラとjavaとかセットになってるJDK1.4.2とかあるかダウンロードしてしまえば
あんま考えなくても大丈夫! 付録CD−Rついてるjava本とか買って勉強するといいよ
環境設定とかしたことないなら苦労するとおもうけど。苦労しただけマニアになれる!
がんばれ!
709 :
マニア:2005/05/16(月) 13:12:31
>>700 コンパイラってのはコンパイル(プログラムを機械語に訳す)ためのアイテムって理解しましょう!
んで コンパイラとjavaとかセットになってるJDK1.4.2をダウンロードしてしまえば
あんま考えなくても大丈夫! 付録CD−Rついてるjava本を買って勉強するといいよ
環境設定とかしたことないなら苦労するとおもうけど。苦労しただけマニアになれる!
がんばれ!
710 :
700:2005/05/16(月) 13:14:02
>>706 あぁあ、そういえば書いてない!ほんとに申し訳ないです
どのVerも、DLボタンを押してもページが変わらない、もしくはnotfoundになってしまって、
ダウンロードページに飛べなかったんです。
知り合いに落とせるかどうかだけ確認してもらったんですが、知り合いの方は問題無く落とせてるみたいです。
そして私も、試しにDLファイルの直リンの方を教えてもらったら落とせましたorz
お見苦しいレス残しまくってすいませんでした・・・
答えてくださった方、どうもありがとうございました。
711 :
700:2005/05/16(月) 13:18:20
>>708 なるほど〜・・・
人間が理解できるだけじゃダメなんですね。(そりゃそうか・・・)
基本理解するにも時間はかかるだろうけど、地道にがんばってみます。
ありがとうございました!
>>710 つか、あんなマニアックなURLじゃなくて、普通に最新版のURLから落とせばいいだろ
714 :
700:2005/05/16(月) 14:38:23
715 :
700:2005/05/16(月) 14:51:48
>>712 最新版も古いVerも、全部ダウンロードページに飛べなかったんですorz
本当に説明足りなくてすいませんでした。
謝ってばかりも見苦しいと思うので、これで終わりにしておきます。
失礼しました。
プロキシーがおかしいんじゃない?
ま、DLできたならいいけど。
jtable内にボタンやチェックボックスを入れるのはどうしたらよいのでしょうか・・・?
718 :
デフォルトの名無しさん:2005/05/16(月) 16:41:33
すんません。おねがいします
フォルダA
|
+--test.java
|
+--htmlフォルダ
|
+--test.html
上記のディレクトリ構成で、test.htmlをJEditorPaneのeditorPaneに
貼り付けたいんですが、
try {
editorPane.setPage("html/test.html");
} catch (IOException e) {
JOptionPane.showMessageDialog(
this,
"読み込みエラーが発生しました。",
"読み込みエラー",
JOptionPane.ERROR_MESSAGE);
}
というコードではエラーとなります。参照先の問題と思うのですが、
setPageメソッドの引数をどう記述すればいいのでしょうか?
719 :
デフォルトの名無しさん:2005/05/16(月) 17:51:54
servletのstatusってどうやって取得できるのでしょう?
setはあるけど、getはないようなので・・・
720 :
デフォルトの名無しさん:2005/05/16(月) 18:21:21
719です。
あるいはstatus初の期値ってなんなのでしょう?
一生懸命なところスマンが
> status初の期値
なんかワラタ
現在Java1.5.0使ってるんですが、1.4じゃないと見れないサイトがあるっぽい(?)んで1.4使いたいのですが、
どうすればいいでしょうか?
1.4を使えば良いんじゃ無いでしょうか
1.4落としたんですが、インターネットオプションでjavaのところに1.5しかないんですよ。
javaのフォルダには jre1.5.0_03 と j2re1.4.2_08 が入ってるんですけど・・・
どうやれば切り替えられるのでしょうか(´・ω・`)
で、ブラウザは?
XPです・・・
cmdでjava -versionしたら1.5.0でした。
>>728 情報小出し ( ゚Д゚) ウザー カエレ
>>730 も俺も ( ゚Д゚) ウザー
答える気がないならスルー
1.5インストールしたら1,4はつかえねーよ。
全部削除して最初からやれ
そうだったんですか・・・
なんか1.4入れてからJavaページ見るだけでページ全部閉じちゃうんですよね
1.5消せばいいのか
734 :
デフォルトの名無しさん:2005/05/16(月) 21:15:27
例えばFor文でまわしたグラフィックを表示したら・・・
たとえば5回まわしたら位置ずらしたら5枚できるけど、これ前に実行したヤツを一回一回消す方法はないのでしょうか?
状況よく分からんけど。
ループ中にnewで作らないで、移動させればいいんじゃないの。
>734
「消すだけなら」次のを描く前に、前のを描いた領域をそっくり背景色で塗りつぶせばいいんジャマイカ。
737 :
デフォルトの名無しさん:2005/05/16(月) 21:42:31
servletのstatus(レスポンスコード)って
どうやって取得できるのでしょう?
setはあるけど、getはないようなので・・・
もしくは、statusの初期値って何になるのでしょうか?
”SC_OK”ですかね?
ブラウザがXPって、なんだかなぁ
あるいみ
>>700は神かも知れん
俺は長年やっているが、そんなとこ行ったことない
740 :
デフォルトの名無しさん:2005/05/16(月) 21:57:16
>>736,5
う〜〜ん、そうですね。ありがとうございました。
>>734 setXORMode(Color c) とかどうだろう?
説明が足りないのでその状況で使えるかどうかわからんが
背景塗るよりはましだと思う
>>739 長年やってようが関係ないだろw
という俺もおれもこの間サイト内をいろいろまわってたら
偶然みつけたんだけどね。なんかわかりづらそうだったから
やっぱ普通のページから落とした方がいい。
>>737 君は勘違いしているのかなぁ?
HTTP応答コードはサーブレットから見た場合
受ける側ではなくて、どちらかというと作るほうなのです
なので、クライアントに返す(set)メソッドしかないのは当たり前です
たとえばわざと404出したりすることがサーブレットでできるようにしているだけのこと
自分で自分の結果知ってなんになるのか?ということです
744 :
734:2005/05/16(月) 22:08:43
>>もうちょっとつけ加えるとFill・・・で描いた図形を座標ずらしながらsleepとか使いながら動画みたいな感じにしたいのです。
パラパラ漫画みらいな
>>744 もちろん1.4であたらしく出たバッファリング方法使うよねぇ?
★使用OS
XP HomeEdition SP2
★使用ソフトウェア名とバージョン
Internet Explorer 6 sp1
★起こった出来事、表示されるメッセージなどを、具体的に詳しく
ここ(
http://www.pref.okayama.jp/e-entry/frame_right.htm)の電子申請システムを使うためにjava1.4.2をダウンロードしたんですが、
うまくいきません(javaページを開こうとするとwebページが全て閉じてデスクトップにエラーメッセージらしきものが書かれたメモができる)
★現在の状況(問題発生後に試したこととその結果)
javaスクリプトがうまくいかない場合でぐぐったところインターネットオプションを色々いじるらしいと分かり
java(SUN)タブの <applet>にJRE1.5.0_03を使用 にチェックしてあることを確認しました。
(1.4って項目が無いんで最新版のとこでいいんですよね?)
ここにチェックがあると上記のような問題が起き、チェックしないと電子申請システムが動かないということが判明しました。
八方塞です、どなたか対処法方を教えてくださいませ。お願いします。
まずJava以前にダブルバッファがどういうものかから覚えないとダメだと思われ
>>746 その開こうとしている「javaページ」のURLは?
>>748 javaの問題で、初心者大歓迎って書いてあったんですがスレ違いなんでしょうか(´・ω・`)
失礼しました・・・
初心者質問板にうつりました・・・
>>748 かわいそうなことすんなよなぁ
そのひとは『初心者大歓迎』という文字を見て せっかく入ってきたのに・・・
>>751 ああ、登録後の操作ページでそうなるってことかぁ
ちなみにJavaインストールして再起動とかしたの?
754 :
デフォルトの名無しさん:2005/05/16(月) 22:26:12
>>743 なんにも設定しないとかはできないってことでしょうか?
初期値みたいなものはないのですか?
>>753 再起動何回もしてます
初心者質問板とマルチくさくなって怒られそうだorz
マルチくさいというかマルチだろ。
いや、だから初期値は
「200」 だよ つまり さっき君が言ってたSC_OKってやつだよ
つうか、これを初期値というのもおかしな話だけど・・・
とにかくサーブレット(プログラマ)がHTTPの応答コードを返さない場合
変わりにTomcatとかApacheが
HTTP 200 OK
とか
404
500
とかいう文字列をきちんと返してくれる
何にも設定しないのは無理
ページが表示されるってことはクライアントのブラウザに必ず200が返されている
ブラウザも「200」が来たら「成功」と判断して表示するわけだから・・・
つーかHTTPプロトコル勉強しないでなぜサーブレットのPGやってんだ?
>>755 JREではなくJ2SDK5.0をインストールすることをお勧めする
もしくは、その岡山県に聞いたほうが親切対応が期待できそう
>>757 その勉強が必要だと分からないからでしょう。
その人その人で違うけど、そんなもんだと思うけどね、初心者は。
>>752 この板はプログラムを書く人の板であって、使うだけの人がきても困るけどな
もっさり感を考えるとJavaでクライアントアプリを作るのは現実的じゃないのでしょうか?
Javaはもはやサーバ用アプリ作成言語になってしまったのでしょうか?
もっさりかどうか作ってから言えよ
V2Cとか速いけどなあ。
特にJ2SE 5.0だと。
766 :
687:2005/05/17(火) 04:51:16
>>690 JLS における synchronized の例 (17.10) でも、
(long じゃなくて int だし、 変数初期化子だけど)
オブジェクトの生成時には同期を取ってない。
また、Doug Lea の本でも、
mutable なフィールド変数に対して
とりわけ同期を取っていない。
web 上に落ちてた、
Java Memory Model mailing list archive でも
それっぽい話の記事を見つけたが、結局よく分からない。
(Doug が、「そんなの問題にならん」みたいに言ってて、
話が終わってしまった印象)
結局よく分からない。
767 :
デフォルトの名無しさん:2005/05/17(火) 05:19:30
0.1刻みのfor文ってどうやって書けばいいんですか?
i++じゃ1刻みですよね
i+=0.1
769 :
デフォルトの名無しさん:2005/05/17(火) 05:38:57
770 :
デフォルトの名無しさん:2005/05/17(火) 06:51:34
>>722 javac -source 1.5 target 1.4 ファイル名.java
ってやると、多分、1.4対応のクラスファイルを作ってくれる。
771 :
デフォルトの名無しさん:2005/05/17(火) 06:53:07
あ、間違えた。
javac -source 1.5 -target 1.4 ファイル名.java
ね。
残念、今はそれが出来ない。
アプレット用JREの選択できなくなったのか・・・
775 :
デフォルトの名無しさん:2005/05/17(火) 08:37:46
777 :
775:2005/05/17(火) 09:59:34
>>776 そうすれば、生成されるファイルは問題なくなるのですが、
Java Web StartがPOSTで要求してくれないです。
処理の流れ
1) ブラウザから呼出 → サーブレット → パラメータを処理してjnlpを返却
2) Java Web Startが起動
3) 受け取ったJNLPのhrefを属性を見て、Java Web StartがJNLPファイルをリクエスト
4) jarのダウンロードと、アプリケーションの実行
こんな感じで処理されるように思います。
1)をPOSTで呼び出しても、3)がGETで呼び出すので、
パラメータが渡らなくなってしまいます。
jnlpって使ったことないんだけど。substringできないの?
538で質問した者ですが、しつこいようですがもう一度質問させてください
同じフォーム内にドラッグ&ドロップを処理する、リストボックス1とリストボックス2を使用したいのですが
リストボックス1と2では処理の内容を変えたいです。
1と2が同じ処理をするところまではできたのですが、その先がわかりません。
すみませんがご存知の方教えていただけないでしょうか。
780 :
775:2005/05/17(火) 11:46:39
>>778 JNLPは単なる定義ファイルで、
アプリケーションモジュールの場所や、起動方法を指定しているXMLファイルです。
処理は記述できません。
アプレットでいうところのアプレットタグが、別ファイルになっているようなもんです。
>>722 コントロールパネル>java>javaタブ
で、javaアプリケーションのランタイム設定の表示をクリック
ここで各バージョンを有効・無効できるので1.4.2を有効にしその他を無効にして
念のためOS再起動してみればいけるんじゃないか?
と初心者の俺がアドバイスしてみる
>>780 そのURLで呼びだされるのがサーブレットであれば、
その中でjnlpファイルのスケルトンを読み込んで、
argumentタグを書き換えてresponseに載せてやるというので
いいんじゃないの?と思ったの。
「拡張子なんて飾りです。偉(ry」と、試さず言ってるだけなので、
それでうまくいかないんだったらスマソスルーして。
うまくいかない以前に、仕組みや質問意図を取り違えてる可能性もあるけど(汁
784 :
デフォルトの名無しさん:2005/05/17(火) 13:10:54
eclipseでtomcatを使わずにブラウザ表示して
デバッグ実行する方法を教えてもらえませんでしょうか?
環境としては、XP-Proをサーバにして、
IISを使ったサーバ、クライアントシステムなんですが。。。
>>784 やりたいことがみえないんだけど,なにを
開発してるの? サーブレット? アプレット?
サーブレットとしたら環境はTomcatのかわりに
なにを使うの?
IIS だけじゃJavaサーブレットは動きませんよ?
tomcatの代替製品を使う、と。
788 :
デフォルトの名無しさん:2005/05/17(火) 14:33:55
>>782 一応、そのようにしているのが、
>>777の1)、2)の処理で、そこまではいいんですが、
あとからWeb Start自信がまた取りに来るのです。 (それが3))
その時に、前に返したのと同じようにargumentを設定して、responseに乗せてやらなければ、
起動時には使われません。
で、argumentを設定するためには、引数を渡してやればいいんですが、
引数を渡すと、今度はファイルを作れなくなるという、悪循環です。
参考に上げたサイトのように、hrefで返すjnlpファイル名に、引数情報を埋め込んだ形に
して、うまく動作することは確認しました。
しかし引数違いのキャッシュがたくさん出来てしまいます。
とりあえず、これでしのいでいます。
789 :
デフォルトの名無しさん:2005/05/17(火) 15:14:00
>>785、786
ありがとうございます。
HTML上で画面の一部にJavaアプレットで画像を起動させるプログラム
なんですが、アプレットの起動はASPXから行うような感じでして。。。
Tomcatとか使わずに、Eclipseでデバッグ環境にHTML画面を表示
させるような方法ってないんですかね?
すいません。
Eclipse初心者なものでうまく説明が不足していまして。
Eclipse2.1以上なら、なにもせずともアプレットの実行・デバッグはできる
普通にアプレットをコーディングすれば「実行」や「デバッグ」から、
そのアプレットが見えるはず
791 :
デフォルトの名無しさん:2005/05/17(火) 15:30:46
790>>
ありがとうございます。
「実行」や「デバッグ」の時に引数もしくはパラメータを設定すると
表示出来るという感じでしょうか?
後、その場合アプレットのみが表示出来ると思うのですが、
アプレットも含んだHTML全体の統合環境を表示する事というのは、
Eclipseでは出来ないのでしょうか?
自分が知ってる範囲でだけれど、思い当たるものは無い
applet viewer も、アプレットタグ以外は解釈してくれなかったと思うし
地道にブラウザで確認するしかないんじゃ?
>>789 なるほど、問題はすでにそんなとこじゃなかったのね。
やったことない人間が口を出すもんじゃないな。
794 :
デフォルトの名無しさん:2005/05/17(火) 16:19:55
>>792>>793 みなさんありがとうございました。
なるほどやっぱり難しいんですね。
参考になりました。
>>791 確かにEclispe自体に特別にhtml+appletを意図した
実行環境は存在しない。でもEclispeの世界では
htmlファイルはなんらかのhtmlブラウザに
関連付けられているし,JavaPluginの設定で
リモートデバッグの設定をしておけば,
Eclipseのリモートデバッガ機能を使って
Javaアプリケーションと同等のソース
レベルデバッグができる。だから結果的に
ワークベンチからダブルクリックして...という感じで
実行・デバッグの環境になるよ。
どうしてもIDEっぽくEclipseのワークベンチウィンドウ
内にブラウザを起動したいなら,埋め込みタイプの
ブラウザを起動させることもできるが見た目だけの
問題だよね。
>>767 i+=0.1 を採用する場合、
2進数では0.1は切りのいい数字に表せないので、
終了条件で比較を使うと誤差がでる可能性がある。
(なお i は float か double にする必要がある。)
ループには整数を使って、
中で使うときに、1/10 するのが素直な気がする。
>>797 ちょっと感動って、プログラミングの教科書にそう書いてなかったか?
>>798 >ループには整数を使って、
>中で使うときに、1/10 するのが素直な気がする。
もしこれが書いてあったとしたら数値計算の教科書としては
かなり危うい教科書だな。
>>797 あのね、ちょっと助言なんだけど、整数型で補えるところはなるべく整数型を使った方が良いです。
整数型は正確だし、多くの場合は処理も早いので。
特にループのカウンタはできるだけ整数型を使うようにしてください。
Java Web Startで、XMLを処理するプログラム作ろうと思ったんだけど
標準のJAXP使おうとすると、XMLプロセサを決める場面で
クライアントの環境を見なきゃないらしく、すっげーこわい文面のダイアログ出す
ハメになる。
なんとか出さないで処理する方法、ない?
署名する。
>>788 考えた。また頭の中モード
if 引数あり
<argument>に格納
sessionに保存
else
sessionから取得して<argument>に格納
end if
別セッション?
804 :
775:2005/05/18(水) 00:17:55
>>803 それも試したのですが、
Java Web Startが勝手にJNLPファイルを要求するリクエストは、別セッションになってしまいます。
ブラウザに対して返したセッションIDを、Java Web Startは使ってくれません。
>>805 「素直な気がする。」だからじゃないの?
807 :
デフォルトの名無しさん:2005/05/18(水) 11:48:13
7桁限定の数字にマッチングさせる正規表現がよくわかりません。
[0-9]{7}
これじゃダメでした。。
>>807 つ"(0000000|0000001|0000002|...|9999998|9999999)"
\d\d\d\d\d\d\d
>>807 (\D|^)(\d{7})(?!\d)
これで グループ2を取るとか。
>>812 (?<!\d)\d{7}(?!\d)
こっちの方がよくないか?
814 :
デフォルトの名無しさん:2005/05/18(水) 13:58:59
コマンドシェルから入力した文字列を出力するプログラムを作成しなさい。
ソースコードファイルはprog1.javaとします。
例 コマンドシェルからjava prog1 data1 data2と入力すると実行結果は
data1
data2
となります。
今JAVAについて勉強しはじめたばかりなのですがこれがわかりません。
書き方または考え方等教えていただけないでしょうか。
815 :
デフォルトの名無しさん:2005/05/18(水) 14:21:04
main について調べてみればいいと思うよ
>>815の場所に移動してみることにします。スマソ。
819 :
デフォルトの名無しさん:2005/05/18(水) 15:59:54
javaを始めたいのですが日本語のコンパイラってどこで手に入ります?
821 :
デフォルトの名無しさん:2005/05/18(水) 16:11:43
DB関係について質問させてください。
例えばDBに果物テーブルがあります。内容は、果物IDと名前です。
それに合わせてFruitと言うjavaクラスがあります。Fruitクラスは果物IDと名前のgetter/setterを持っています。
こういう状況でDBから検索や入力をするメソッドを作る場合、Fruitクラスに作るのが良いのですか?
それとも一元にDB関連を処理するクラスを作成し、staticメソッドとして実装する、と言った方法のほうが良いのですか?
>>821 話は飛ぶがHibernateとか使うといいぜ
>>821 マジレスすると、どっちもおかしいぞ。
なぜに static ?
ある独自クラスMyClassのフィールドにdoubleのListがあって、それを返す
インスタンスメソッドgetDoubleListがあり、MyClassのインスタンスmとして、
double d[] = m.getDoubleList().toArray();
としたいんですが、Object[]からdouble[]に変更できないと言われてしまいます
(double[])とキャストしようとしても駄目でした
どうすればListからプリミティブ型の配列を作れるのでしょうか
Listをやめて最初から配列を使うというのは無しでお願いします
>>824 これFAQだな
もうひとつ同じ名前のメソッドをみてみそ
826 :
デフォルトの名無しさん:2005/05/18(水) 16:49:39
すいません。
初心者なもので教えて頂きたいのですが、
appletの中で、別のappletを起動させるには
どうコーディングしたら良いのでしょうか?
16進数(文字列)から10進数(int)に変換するには
どうすればよいのでしょうか?
ここjavaか、失礼
>>825 Listの<T> T[] toArray(T[] a)ですかね?
double d[] = m.getDoubleList().toArray(double[] d);
としてもトークンに構文エラーがあると言われますし、googleでtoArrayを調べても
引数はT[] aではなくObject[]だと書かれています…
>>824(831)
>(double[])とキャストしようとしても駄目でした
キャストするならこうする。↓
double d[] = (double[])(m.getDoubleList().toArray());
>>832 Object[]からdouble[]へのキャストはできないと言われるんですが
>>831 それ構文おかしいから
本当に検索したのか?
835 :
832:2005/05/18(水) 17:48:26
ごめん。プリミティブ型か・・・。
ん?
Σ( ̄□ ̄)
double の List ってそもそもなんやねん・・・。
ちょっと待って
Doubleかも
(m.getDoubleList()).toArray(Double[]);
じゃないの。
Double [] d0 = (Double[])m.getDoubleList().toArray();
double [] d = d0;
double [] d = new double[d0.length];
for (int i = 0, m = d0.length; i < m; i++) {
d[i] = d0[i].doubleValue();
}
こうしないといけないのかなあ?
申し訳ない。そのクラスのJavadocにdoubleて書いてたんだけど、Doubleの
間違いだったみたいです
Double[]でキャストすると例外が出る理由はわからないけど…
841 :
832:2005/05/18(水) 18:28:25
Double でいいんなら
Double d[] = (Double[])(m.getDoubleList().toArray());
> 例外が出る理由はわからないけど…
その例外が何かくらい書け。
だからtoArray(Object[])のほうだとなんd
Double d[] = (Double[])(m.getDoubleList().toArray(new Double[m.getDoubleList().size()]));
一人わざと通らない書き方を教えようとしてるやつがいる
845 :
デフォルトの名無しさん:2005/05/18(水) 19:44:05
匿名内部クラスにをスレッドを
書いたのですがそれのstartの
させ方はどうすればよいのですか?
>>845 好きにすればいい。
っつか、start() 出来ない理由がわからん。
とりあえず助詞をはっきりさせてくれないと、解釈できん。
>>840 toArray()は、List内の型に関係なく、Object[]を返す。
Double[]をObject[]にキャストしたものではなくて、new Object[]したものを返す。
で、Object[]はDouble[]にキャストできない。ダウンキャストになってないし、Object[]型はDouble型に
変換できない。
Object o = new Object();
Double d = (Double)o;
がエラーになるのと同じこと。
これが (Object[])new Double[]ってな、もともとDouble[]型だったものをObject[]にキャストした
ものだったら、Double[]型に戻せるわけだが、toArray()が返すのは new Object[]で作ったものだ。
new Double[]したものを返して欲しかったら、他の人が言ってるように引数付きのtoArray()で
newする型を指定してやらないといけない。
849 :
ぷ:2005/05/18(水) 23:13:05
サウンドを取得再生する方法を教えてくださいm(__)m
JavaSoundは調べたのかい?
JavaSounds
単にappletでauファイルをサーバーから取ってきて鳴らしたいだけだったら笑えるな。
853 :
デフォルトの名無しさん:2005/05/18(水) 23:54:51
JDK 1.4 使って XML + XSL から HTML 作っています。XSL の出力エンコーディングで
euc-jp を指定してやると (<xsl:output method="html" encoding="euc-jp" />) 出力される
HTML のダブルバイト文字がすべて dddd; のエンティティ表記になります。
Shift_JIS や utf-8 だとこんなことはないのですが、euc-jp で日本語を出すにはどうしたら
良いでしょうか?
どういうPG組んでるか?
ピグモン?
>>854 StreamSource xslsrc = new StreamSource(xslfile);
StreamSource xmlsrc = new StreamSource(xmlfile);
StreamResult htmlresult = new StreamResult(htmlfile);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(xslsrc);
transformer.transform(xmlsrc, htmlresult);
だがこういう意味じゃなくて? xslfile, xmlfile, htmlfile は File 型。
元の XSL ファイルは Shift_JIS、XML は utf-8 だす。
アナタ シャチョか?
シャチョさん
861 :
デフォルトの名無しさん:2005/05/19(木) 15:04:42
JAVA1.5では1.4のときと比べて
GUIのTextAreaの使い方変わってませんか?
そう思う理由は?
Javaでwebブラウザを作ろうと思うのですが、
HTMLの描画に関して、IEコンポーネントなどを
使うなんて事はできるんでしょうか?
>>863 Firefox+Javaでググリマクリスティ
シャチョか?
シャチョさんシャチョさん
>>864 ググってみましたが、特に関係ありそうな結果はでず・・・
どういうことなんでしょう?
>>867 おお、そこのデモにあるブラウザは確かにIEコンポーネントのようですね。
JDICパッケージならば使えるって事なのかな?
調べてみる事にします。
869 :
デフォルトの名無しさん:2005/05/19(木) 22:25:05
抽象クラスとインタフェースがイマイチよく理解できません。
分かりやすく教えてください。
違うクラスでも、呼べるメソッドが同じならもう一緒ってことにしとこうよ、というのがインターフェース。
同じくスーパークラスが同じだったら、もう同じってことにしとけるよね。スーパークラスはサブクラスで
置き換え可能だから。
じゃあ継承することが前提の、共通部分だけ実装した基礎クラスみたいなの作っちまって、サブクラスで
未実装のとこだけ実装させようってのが抽象クラス。抽象クラス自体はインターフェースみたいな役割も
もってる。
>>871 abstractは完全抽象クラスじゃなくてもいいんだ。やば、仕事でOOなんか使わないから忘れつつある。
873 :
デフォルトの名無しさん:2005/05/20(金) 00:38:51
switch文を使い、成績が5→「大変優秀」、4→「優秀」、3→「普通」、それ以外→「もっとがんばろう」
というメッセージを出すプログラムを作成しなさい。
さっぱりです、おねがいします。
switch(hoge)
case 5:
大変優秀
・・・略・・・
case 3:
普通
default:
もっとがんばろう
ってか、この問題が本当にさっぱりわかんないんだったらプログラム向いてないぞ
>>875 error:ツッコミどころが多すぎます。
Error:1
>>874 誘導有難うございます。
当方JAVA初心者で自宅のPCにJAVAを落としたのですが
いまいち使い方がわからなくて(学校のと違うため)かきこんでしまいました。
end:
switch(seiseki){
case 5:
System.out.println("大変優秀");
break end;
default:
switch(seiseki){
case 4:
System.out.println("優秀");
break end;
default:
switch(seiseki){
case 3:
System.out.println("普通");
break end;
default:
System.out.println("もっとばんがろう");
break end;
}
}
}
以下、文法規則すら違う>877の「学校のJava」と「自宅のJava」とは何なのかについて推察するスレ。
学校のJava = JavaScript
派遣のJava = JavaScript
JavaScriptのほうが難しい
Webにまともなリファレンスが少ないし、IDEの補間もないし、バグでほうだいだし
以下、C言語理解は優れるが日本語理解が乏しい
>>882が日本語を学ぶスレ
>>886 >学校のと違うため
っていうところじゃないか?
単にバージョンが違うか学内専用のJAVAなのかというだけだろ
889 :
デフォルトの名無しさん:2005/05/20(金) 12:45:30
java.lang.Longクラスを見ていたら、
JavadocにはlongValueというメソッドが記述されているのに、
PCにインストールした1.4.2_04にはそのメソッドが無い。
他にも相違するメソッドがちらほら。なんでだろ?
891 :
デフォルトの名無しさん:2005/05/20(金) 13:09:07
update()とかpaint()以外で g.drawString() するには
どうしたらいいですか?
CでWM_PAINT以外でTextOut()するならGetDC()でHDCが
得られますが、javaでは g を得る方法ってありますか?
public class _2ch extends Applet
{
public static void main(String[] args){
func();//ここでこのパネルのgを引数で渡す?
}
public void mygraph(){
g.drawString("2ch world!", 30, 30);//このgを得たい
}
}
public void mygraph(Graphics g){ 略 }
ってやればいいんじゃない?
そういう問題じゃない?
>>889 longValueってNumberで定義されてるし、ないってことはあるんか
getGraphics()
898 :
デフォルトの名無しさん:2005/05/20(金) 14:11:23
おおっもう少しです!!
import java.applet.*;
import java.awt.*;
public class _2ch extends Applet
{
public static void main(String[] args){
mygraph();//ここでこのパネルのgを引数で渡す?
}
public static void mygraph(){
Graphics g = Graphics.getGraphics();
g.drawString("2ch world!", 30, 30);//このgを得たい
}
}
899 :
デフォルトの名無しさん:2005/05/20(金) 14:12:19
出ましたっ!!
C:\WINDOWS\デスクトップ\新しいフォルダ>javac _2ch.java
_2ch.java:9: シンボルを解釈処理できません。
シンボル: メソッド getGraphics ()
位置 : java.awt.Graphics の クラス
Graphics g = Graphics.getGraphics();
^
エラー 1 個
アプレットのほうのGraphicsを取得しろよ・・・
901 :
デフォルトの名無しさん:2005/05/20(金) 14:33:55
うまくいかないでし。
import java.applet.*;
import java.awt.*;
public class _2ch extends Applet
{
public static void main(String[] args){
mygraph();//ここでこのパネルのgを引数で渡す?
}
public void mygraph(){
Graphics g = this.getGraphics();//thisはこのアプレット
g.drawString("2ch world!", 30, 30);
}
}
///static でない メソッド mygraph() を static コンテキストから参照できない
なんで main から呼び出そうとしているのか
というか、もっと考えようよ
アプレット以前の問題じゃないかい?
アプレットとアプリケーションの区別がついてないってか
適当なアプレットのソースを見た方が解決が早い。
_2ch ni = new _2ch();
ni.mygraph();
アプレットのプロジェクトが、急に起動しなくなりました。
sun.applet.AppletViewer at localhost:1304
Thread [main] (Suspended (exception NullPointerException))
TrueTypeFont.open() line: 246
TrueTypeFont.verify() line 368
TrueTypeFont.<init>(String, Object, int, boolean) line 153
FontManager$1.run() rine: 205
AccessController.doPrivileged(PrivilegedAction<T>) line not available [native method]
(以下略)
TrueTypeFontとか出てますが、プロジェクトでもExplorer上でも、
いじったりなどしていないし…なんでしょう?
907 :
デフォルトの名無しさん:2005/05/20(金) 16:34:26
>>775で動的なJNLPの動的な応答について、質問したものです。
前よりマシな方法があったので、レスしておきます。
>>777で書いたように、
1) ブラウザから呼出 → サーブレット → パラメータを処理してjnlpを返却
2) Java Web Startが起動
3) 受け取ったJNLPのhrefを属性を見て、Java Web StartがJNLPファイルをリクエスト
4) jarのダウンロードと、アプリケーションの実行
3)の、「href属性を見て、Java Web StartがJNLPファイルをリクエスト」してくる時に、
サーバー側で、1)と同じレスポンスができない事が問題でした。
1)で返すJNLPレスポンスで、href=""として返すようにしたところ、
3)のリクエストが来なくなり、1)で返したJNLPデータで起動するようになりました。
その代わり、アプリケーションマネージャには、ダウンロード済みのアプリケーションとして
表示されなくなりました。ローカルのJNLPファイルのキャッシュが作成されなくなりました。
(ダウンロードされるJARファイルはキャッシュされます)
>>775参考サイトのように、アプリケーションマネージャに、
同じアプリがたくさん表示されるよりはマシだと思います。
908 :
デフォルトの名無しさん:2005/05/20(金) 20:59:35
XMLEncoder encoder = new XMLEncoder(new FileOutputStream(file));
encoder.writeObject(this);
encoder.close();
でXMLでファイルに永続化しようとしたんですけど、ファイルには
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.5.0_02" class="java.beans.XMLDecoder">
<object class="Config"/>
</java>
しか書かれません
どうすれば、インスタンスの情報をファイルに書き出せますか?
おまえら おかしすぎ わらってしまった Applet&main
お笑いの人?プロフェッショナルなボケですね
>>908 書き込もうとしてるオブジェクトはJavaBeans?
912 :
908:2005/05/20(金) 23:14:43
>>911 普通に作ったクラスです
JavaBeansとかじゃないとダメなんですか?
どうすればJavaBeansにできますか?
>>912 普通にクラス作っただけでもJavaBeansっちゃあJavaBeans。
>>911が何を聞きたいのかしらんけど、セッターゲッターでのプロパティを持つかどうかかな。
昔はJavaBeansっていったら、BeanDevelopmentKit(BDK)で使うものっていう解説が多かったな
java.beans.BeanInfo 使っているやついるのかな?いまでも
>>913 JavaBeansじゃないとXMLEncoderはきれいにまわらんよ
つまりせったーとげったー使ってるわけだが
916 :
908:2005/05/21(土) 00:06:09
セッターとゲッターをちゃんと作ってやれば、XMLで出力できるんですね
とりあえず、Eclipseで作ってみましたけど、まだ同じ結果でした
セッターとゲッターがちゃんと作られてるかみなおしてみます
getの後は大文字で・・・とかそういう決まりごとどっかにあったような・・・
それに反すると駄目だよね
>>908 ソース見せろ
918 :
908:2005/05/21(土) 00:26:38
まず短いコードでやってみな
920 :
908:2005/05/21(土) 01:32:58
多分判りました
セッターでセットした値でないと書き出されないみたいですね
なにを当たり前のことを・・・
Eclipseユーザだったら、EMF使うと気持ちいいんだけどね。
オブジェクトの永続化とか。いろいろプラグイン突っ込んでると
知らない間にインストールされてるし。
923 :
908:2005/05/21(土) 02:09:03
>>923 JavaBeansのコンストラクタは引数を持てなかったはず。
あとBetwixtでは駄目なの?
フォーマットを変えたくなった時とかでも、.betwixtを書き
替えるだけで済むし、なにより簡単。
925 :
924:2005/05/21(土) 02:42:40
今、ソース見た。
コンストラクタの中でセットした値って意味かorz
2行目は取り消しということで
927 :
デフォルトの名無しさん:2005/05/21(土) 03:00:19
>>924 Betwixtは知りませんでした
ググってみます
>>926 なるほどー
コンストラクタ内で値を設定すると
それと同じ値をセッターでセットしても書き出されないんですね
ありがとうございました
928 :
デフォルトの名無しさん:2005/05/21(土) 03:10:35
LinuxでMySQLに接続できません。
DriverManager.getConnection("jdbc:mysql://localhost/testdb?useUnicode=true",user,pass);
で↓こんな例外がでるのですが、、
Exception in thread "main" java.sql.SQLException: null, message from server: "Host 'localhost.localdomain' is not allowed to connect to this MySQL server"
これってどんなエラーか分かりますか?
DBもつくってあるのですが、、MySQLとコネクタの相性か?ともに最新で、次のものを使ってるのですが。
LinuxはFeradoCore2 MySQLは3.23.58-9.1、コネクタは3.2.0-alpha
だれか助けて〜
簡単に言うと
MySQLはユーザIDとパスワードの他に接続元のIPアドレスの3つの組で接続の許可・拒否している
MySQLのコマンドで
mysql>select * from mysql.user;
ってやてみたらわかる
その中の
Host,User,Passwdが一致していないと駄目だ
(ちなみにPasswdは暗号化されている)
そこに無ければlocalhostのユーザ追加してやれ