【初心者】Java質問・相談スレッド73【大歓迎】
1 :
デフォルトの名無しさん :
2005/10/11(火) 17:32:35
_ /〜ヽ (。・-・) ぼくプリン。よろしくね。 ゚し-J゚
3 :
デフォルトの名無しさん :2005/10/11(火) 17:50:13
よろしく
>1 乙 さっそくですが質問を。 Java InputMethod FrameWorkで作成したインプットメソッドをLinuxで使うにはどうしたらいいでしょうか?
Eclipseで開発をしているのですが、クラスの継承において 引数をもったコンストラクタを持つ親クラスから子クラスを派生させると、 暗黙的スーパー・コンストラクター super() は未定義です。 別のコンストラクターを明示的に呼び出す必要があります。 と表示されてしまいます。 そこで、子クラスのコンストラクタを public sub(int i){ super(i); } の様にしたのですが、これだと メソッド super(i) は型 sub で未定義です。 という風に表示されてうまくいきません。 どのようにして表現すればいいのでしょうか?
すいません、自己解決しますた・・・ superって書いたら親クラスのコンストラクタになるんですね、失礼しました
7 :
初心者 :2005/10/11(火) 20:20:39
普通に開けるが
9 :
デフォルトの名無しさん :2005/10/11(火) 20:24:23
>>4 そのままでは無理だと思われ。
Java InputMethod Framework-xim のブリッジとか作れば出来るかもしれんが。
10 :
デフォルトの名無しさん :2005/10/11(火) 20:25:03
11 :
初心者 :2005/10/11(火) 20:30:51
12 :
初心者 :2005/10/11(火) 20:38:31
すみません逝けました。 原因はPeerGuardianのせいでした。 また分からないことがあったら、宜しくお願いします。
13 :
デフォルトの名無しさん :2005/10/11(火) 20:44:12
随分とおかしなソフトを入れてるもんだな
たまたま見かけたスレで参照渡しがないと聞いて混乱してる初心者です どういうこと?
>>1 スレ立て乙です。
Java製のバイナリエディタを自作したいんですがどうすれば良いですか?
とりあえず「Hello world」と
「FINAL_FANTASY」という名前のジョークプログラムをJavaで組めたくらいの初心者レベルです
機能は最小限でよくて、プログラムを組む練習として作りたいです。
16 :
デフォルトの名無しさん :2005/10/11(火) 20:59:56
まずは読み込みからかな
>>14 初心者がなぜ参照渡しがないと聞いて混乱するのがよくわからんが。
C とかの経験はある?
>>14 public class RefTest {
public static void main(String[] args) {
String a = "abc";
refChange(a); //参照を渡す
System.out.println(a); //さて、何が出力されるでしょうか?
}
public static void refChange(String a) {
a = "def"; //ここで参照先を変えてみる
}
}
前スレの人はこのことを言ってるんだと思われ
19 :
17 :2005/10/11(火) 21:06:43
>>17 >>18 >>19 ありがとうございます
C言語はポインタがなんとかわかる程度でした
参照渡しの理解が浅かったみたいです
>>18 さんの例でなんとなくわかりました
>>19 のサイト読んできます
お手数かけてスイマセン
参照で渡すには其れ用のオブジェクトを使う必要があるってことか。。。
void f(Object* o) // java void f(Object** o) // javaではできません
最近勉強が滞りがち・・ なんか楽しく勉強する方法ないかな?
美人のお姉さんに教えてもらう
25 :
初心者 :2005/10/11(火) 21:42:49
コマンドプロンプトで、自分のは、C:\Documents and Settings\user> となっているんですが、本では、C:\Documents and Settings\sela> となっています。どうやったら、変更できますか? 本に沿っていきたいので、宜しくお願いします。
>>25 そのselaの部分を脳内変換すればいいだけ。
そこらへんの仕組みを理解せずにへたに変えないほうがいい。
27 :
デフォルトの名無しさん :2005/10/11(火) 21:49:35
C:\Documents and Settingsにselaって名前のディレクトリを作ればいいんじゃないのか
28 :
初心者 :2005/10/11(火) 21:51:02
なんか感謝が感じられないな。 やりなおし
今日Javaを始めようと思ったんですが、本に載ってたJDKっていうツールが見つかりません それらしきものをインストールしたんですが、NetBeansとかいうソフトしかインストールできなくて… どれを落としてインストール、起動すればいいんでしょうか?
31 :
デフォルトの名無しさん :2005/10/11(火) 22:40:56
>>25-27 マジレスしていいものかどうか悩むんだが、あえてマジレス
>>25 Javaの問題ではなくWindowsにおけるユーザ管理の問題なのだ。
Windowsでは
1:インストールしたドライブのトップディレクトリにDocuments and Settingsと言う名前のディレクトリが作られる
2:ログインユーザ名のディレクトリがDocuments and Settingsにつくられる
3:すなわち書籍のselaと言うディレクトリはselaと言う著者のログイン名である。
ようするにselaの部分を自分のログイン名と置き換えればよいのである。
32 :
デフォルトの名無しさん :2005/10/11(火) 22:43:59
>>30 java.sun.comのサイトからおとしたNetBeansならJDKも込みだ。
1.5系列(ようするにJ2SE5とか言うところから落とした奴)ならウィンドウズのProgram Filesディレクトリ以下にjavaってフォルダがあるのでそこに導入されてる。
とりあえずコマンドプロンプトからjavacとか入力した結果どんな応答をしたかだけでも書き込んでくれ
33 :
デフォルトの名無しさん :2005/10/11(火) 22:47:01
木田居る?
いない
ArrayListの中の各要素にArrayListを入れる場合には宣言はどういう風にすればよいのでしょうか? i=0; while ((tmp = br.readLine()) != null) { j = 0; stk = new StringTokenizer(tmp,","); while (stk.hasMoreTokens()) { list[i][j].add(Integer.parseInt(stk.nextToken())); j++; } i++; } 以上のコードを動作させたいのですが、宣言の部分で躓いてしまっています。。。
ん?宣言ならこうだが ArrayList<Integer>[][] list;
intをいれたいリストのリスト宣言なんて List<List<Integer>> list = new ArrayList<ArrayList<Integer>>(); でいいだろ?
あ、 List<List<Integer>> list = new ArrayList<List<Integer>>(); だった
ださ・・・
起動してソースコードを記述、F5でビルド、F7で実行(逆だったかも)ってのができるJava用のソフトってありますか?
F11でメイク、F6で実行だとNetBeansとか
44 :
初心者 :2005/10/12(水) 00:31:43
>>31 様
すっごく分かりやすかったです。理解できました。
>>29 様
>>31 様
有難う御座います!これからも宜しくお願いします!
45 :
デフォルトの名無しさん :2005/10/12(水) 00:51:18
文字列でそれぞれ下記のようにあった場合 00:01→00:05 12:19→12:20 17:56→18:00 みたいに五分ごとに時間を切り下げたいのですが どうすればいいのでしょうか?
100 PRINT "おっぱいの数=桃の割れ目の数=";2 JAVAってBASICみたくこんな感じで作れるんですか?
System.out.println("おっぱいの数=桃の割れ目の数="2); 2ってなに?
その程度でいいのなら staticimportつかえば行番号はつかえんがBASICとあんまかわらんかな
たくさんオブジェクトを生成したときに OutOfMemoryError が出るかどうかを事前に知るのは Runtime.freeMemory() で良いの? それとも、もっと確かな方法ってあるんですか? あるいは OutOfMemoryError を捕まえて回復させても大丈夫とか。
GoToHell
>>45 切り上げじゃね?
Integer#valueOfで数値変換して四捨五入すれば?
>>45 String s = "00:01";
int n = ((Integer.parseInt(s.substring(0, 2)) * 60 + Integer.parseInt(s.substring(3, 5)) + 4) / 5) * 5;
String result = String.format("%02d:%02d", n == 24 * 60 ? 0 : n / 60, n % 60);
System.out.println(result);
53 :
デフォルトの名無しさん :2005/10/12(水) 11:18:46
以前住所録のシステムを作っていて 現在違うシステムの作成をしているのですが そのxmlなどをコピペしてやったら サーブレットで サーブレット a は現在利用できません となりました。 いろいろ調べてもわからなかったので教えてください。 ちなみに <servlet-class>Search1Servlet</servlet-class> <url-pattern>/Search1Servlet</url-pattern> はちゃんと変えています。 宜しくお願いします。
54 :
デフォルトの名無しさん :2005/10/12(水) 11:24:51
>>52 Math.ceil()やfloor()など、
NumberFormatやMessageFormatなどを使いたくなってくるのだが
もう時代遅れか?
ちなみに <servlet-class>Search1Servlet</servlet-class> <url-pattern>/Search1Servlet</url-pattern> はちゃんと変えています。 ちゃんとできているように見えない or 他の設定項目が無いからわからない。 そもそもコンパイル済みクラスファイルは正しい位置にデプロイされているのか? Servletはデフォルトパッケージではダメだぞ。
コマンドプロンプトで、J:\>sourceの中のファイルを確認したいのですが、 J:\>source>dir 'source' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と、表示されます。何でか分かりません。 宜しくお願いします。
>>56 "source"というコマンドが存在しないまたはsourceというコマンドのあるディレクトリにPathが含まれていないから。
スレ違いなのでこれ以降はWindows板へどうぞ。
>>57 様
Windows板ってどこですか?
PC等→Windows→?です。
ごめんなさい。
>>61 自己解決できました。
また、引っかかりました。
public class sample {
public static void main(string[] args) {
system.out.println("hello");
}
}
んで、
J:\source>javac sample.java
sample.java:2: シンボルを見つけられません。
シンボル: クラス string
場所 : sample の クラス
public static void main(string[] args) {
^
sample.java:3: パッケージ system は存在しません。
system.out.println("hello");
^
エラー 2 個
これって、どうゆうことですか?プログラムの書き方、間違ってますか?
この質問も、板違いですか?
宜しくお願いします。
またコイツか 相手しない方が良いですよ
>>63 かなりショックです。
もしかして、うざいですか?
うざかったら、もう辞めます。ごめんなさい。
このレベルで質問してるようだと、この先ずっと質問し続けることになるから 初心者レベルの本一冊買ったほうが手っ取り早い。 本読んでこの質問が出るようなら、それは理解できてないのと同じ。 ちなみに、 string -> String system -> System に直すべし。
66 :
デフォルトの名無しさん :2005/10/12(水) 13:32:22
>>62 string -> String
system -> System
大文字小文字は区別される。
サンプルの本かサイト見てるなら目を皿の様にして見比べてみたほうが良い。
>>65 >>66 そうゆうことでしたか。
すみません、反省しました。
しばらく人の手を借りず、自分の力でやってみます。
迷惑かけて申し訳ありませんでした。
レベルが上がったら、また、宜しくお願いします。
有難う御座いました。
68 :
デフォルトの名無しさん :2005/10/12(水) 13:52:45
◆s2skiAkO1Y このトリでググって笑った
俺も
>>67 とほぼ同レベルだから
なにげに参考になってたりする・・
札幌で 投稿者:さち◆2pJ2Y76JcE 投稿日:1月21日(金) 20時48分56秒 ブラと下着上下セット欲しい人。良かったら定期的にやりとり出来る方がいました ら・・・・・アド付けてくれると連絡早いですよ。洗濯籠にブラと下着2セット 今日着用したストッキングもあります。 これ?
さちさん 投稿者:マッチ◆s2skiAkO1Y 投稿日:1月21日(金) 21時49分33秒 削除 交換しましょうか? -------------------------------------------------------------------------------- 交換は 投稿者:さち◆2pJ2Y76JcE 投稿日:1月21日(金) 21時45分36秒 削除 実用性のあるものがいいなぁ^^ -------------------------------------------------------------------------------- これからですか? 投稿者:マッチ◆s2skiAkO1Y 投稿日:1月21日(金) 21時40分14秒 削除 今日これから交換ですか?何と交換いいんですか?
偶然…だよな!?
はじめまして。 JAVAでSwingを使って15パズル(スライドパズル)を作る課題が出たんですけど、何か良いサイトなどあれば教えてください。 大学の講義で出された課題ですけど、JAVAはまったく勉強したことがない学生しかいないのに、このような課題が出されてしまいました。 よって現在知識0です。が、提出は1週間後。みんな困ってます。 どうかよろしくお願いします。
宿題スレ行け で、 >JAVAはまったく勉強したことがない らしいが課題が出たのはJavaの講義だったんじゃないの? 当然それまでの講義の内容を踏まえて作れ、ってことでしょう? 知識0で困ってるのは講義出てないからじゃ? 被害者ヅラムカツク
77 :
75 :2005/10/12(水) 16:01:26
いや、まじで誰も習ってません。Cのみでした。のにいきなりJAVAの課題が出ました。 そんなんで誰もできるわけないのに意味不明です。 が、宿題スレいきます。
いや、もしそれが本当なら、課題をこなそうとするのでなく、 その先生に抗議すべきじゃないのか
情報科とかはそれが普通だと思うが。 一週間ももらえたのか、ラッキーだね。
いちいちイライラしてたら禿げるよ まぁフィナステリドが発売されれば問題ないか と言ってみたものの 宿題スレに行ってらっしゃいてのは同じ まぁ スライドパズル Java でググれ
そりゃ酷いな。 吊るしちまえ。
82 :
75 :2005/10/12(水) 16:09:03
その先生曰く、みんな当然JAVAをやったことがあると思っていたそうです。 そして誰もJAVA未経験な事実を知ったら、資料を用意してくれましたが、まったく役に立たないものでした。 抗議したところで既に始まっている授業なので変わらないでしょう。 やるしかないってことですね。
Javaで、PHPの様な可変変数を使うことは出来ないのでしょうか? 変数というか関数なのですが funcA(){ return funcB; } funcC(){ this.funcA(); } の様な感じにしたいのですが・・・
同考えてもありえない。 ぜってー嘘
>>83 そりゃ設計でいかようにでも。
デザインパターンでも勉強すれば如何か。
86 :
76 :2005/10/12(水) 16:43:53
class Test { int i; Test(int i) { this.i = i; } public String toString() { return "test・・・ " + i; } } class M { public static void main(String args[]) { Test t = new Test(1); System.out.println(t); } } 上のプログラムの最後から三行目ですが System.out.printlnの中身をt.toString()ではなくtとしただけで 「test・・・ 1」が表示されます。 なんでtoStringメソッドと同じ機能を持つのでしょうか? JAVAの本を見てもメソッドの使い方は(オブジェクト参照変数).(メソッド名)としか 書かれてなかったので。
println(Object) は中で toString やってる
Javaで整数値の任意の桁を得たいんですけど、最もスタンダードな方法ってどんなのですか? 今はStringに変換後、substringで取得して整数値に再変換という方法でやっています。 もっと効率の良い方法はありますでしょうか?
>>89 n の千の位が得たいなら n % 10000 / 1000 とか。
GUI上でボタンを作るのに Button b1 = new Button("ボタン1"); と書くと思うんですけど、 たくさん(10個とか言うレベルじゃなくて100個とか) 作りたい場合は、 Button b1 = new Button("ボタン1"); Button b2 = new Button("ボタン2"); Button b3 = new Button("ボタン3"); ・・・・ と、100個書かないといけないんでしょうか?
>>92 Button[] b = new Button[100];
for(int i = 0; i < b.length; i++)
b[i] = new Button("ボタン" + i);
>>93 そうか、ボタンでも普通に配列使えるのか。
つーか、考えてみたらあたりまえか。
ありがとう。
96 :
デフォルトの名無しさん :2005/10/12(水) 20:54:14
受信するメッセージ内容によって呼び出すメソッドを変えたい (コールするメソッドを動的に変えたい) のですが、速度パフォーマンスが重要なためリフレクションは使えません。 デザインパターンなど、なにか他に良い方法はありますでしょうか? (Chain of Responsibilityも速度的に除外と考えています。) 格好悪いですが、case文でひたすら分岐させるのが一番良いのかとも思ってます。
CoR が例外になるくらいなら、いっその事 java を止めれば良いのに。真面目な話で。
まあ良いや。受信メッセージを表すクラス内に、予め呼び出すメソッドを含ませておけば良いかと。
99 :
96 :2005/10/12(水) 21:13:16
>>97 ,98さん
まじめな話、javaやめる?っていう議論は何度かあったのですが、
再利用性を考えてjavaでシステム構築(←速度とトレードオフですが)
することになりました。
>受信メッセージを表すクラス内に、予め呼び出すメソッドを含ませておけば
具体的には、メッセージを格納するBeanに値をセットする時点で実行して欲しい
メソッドを識別する何か(フラグなど)も一緒にセットして投げるということでしょうか?
さっそくのレスありがとうございます。
>>99 >具体的には、メッセージを格納するBeanに値をセットする時点で……
public abstract class Message { // メッセージの中に
public abstract void Command(); // 実行したいメソッドを入れておくとか
}
こういうこと。時と場合を選ぶけど。
それ以外なら、switch になるかな〜。
日曜からjavaはじめた俺様が来ましたよ。
http://uppp.dip.jp/src/uppp15857.zip.html ちょっとこのソース見てくれ。
処理は、今の時間を取得し、その時間を
見た目で表示するプログラムなんだが、
周りにjavaやってるやついなくて
誰に聞いていいかわからないので
オマイラの力を借りたい。
とりあえず、おかしなとこを指摘してくれ。
時刻の表示の仕方は
現在時刻が 20:55:30だとすると
1 2 4 8 ←16進数で考える
■ X ■ ■ ←2
■ ■ ■ ■ ←0
X ■ X ■ ←5
X ■ X ■ ←5
X X ■ ■ ←3
■ ■ ■ ■ ←0
といったようになる。
中抜きの四角が出ないのでその辺はつっこまないでくれ。
今のところTimerで一秒ごとに表示切り替えすることを考えている。
>>101 private static Calendar calendar = Calendar.getInstance();
private static final String[] TIME_STR = {"■■■■","□■■■","■□■■","□□■■","■■□■","□■□■","■□□■","□□□■","■■■□","□■■□"};
public static synchronized String clock() {
StringBuilder ret = new StringBuilder();
calendar.setTimeInMillis(System.currentTimeMillis());
int h = calendar.get(Calendar.HOUR_OF_DAY);
int m = calendar.get(Calendar.MINUTE);
int s = calendar.get(Calendar.SECOND);
ret.append(TIME_STR[h/10]).append("\n");
ret.append(TIME_STR[h%10]).append("\n");
ret.append(TIME_STR[m/10]).append("\n");
ret.append(TIME_STR[m%10]).append("\n");
ret.append(TIME_STR[s/10]).append("\n");
ret.append(TIME_STR[s%10]).append("\n");
return ret.toString();
}
こんなんじゃ駄目かね?
103 :
デフォルトの名無しさん :2005/10/12(水) 23:44:26
私Java勉強中です。 初心者用の書籍を読み、書いてあることは理解しました。 設計についてもいくつか書籍を呼んだのですが、なかなか うまくいきません。 どういった方法で学習していけばよいのでしょうか? 特に設計について、何をイメージすればよいのか、 イメージなどせずに処理内容をひたすら追っかけていけばよいのか よい方法が見つかりません。 教えてください。よろしくお願いします。
104 :
デフォルトの名無しさん :2005/10/12(水) 23:46:46
他のプログラム言語の経験はあるのか? ないんだったらいきなり設計なんて無理 プログラムを沢山書いて 経験をつまないと
105 :
デフォルトの名無しさん :2005/10/12(水) 23:50:55
>>104 ほかの言語の経験はありません。
設計についていつも怒られています。
愛のムチととってよいのか、できない私が悪いのか・・・。
早速のレスありがとうございます
106 :
デフォルトの名無しさん :2005/10/12(水) 23:53:18
起こられるって誰に? 上司?
107 :
デフォルトの名無しさん :2005/10/12(水) 23:53:59
>>103 プログラミングと設計って結構大きな壁がありますよね
プログラムは書籍見て例題解けば分りますが
設計はなかなか・・・
とりあえず@Itのアーキテクト部分にヒントになるようなものがありますから
大体目を通して,簡単なソフトの設計をしてみるのが一番かと
そういう私も設計なんて orz
109 :
デフォルトの名無しさん :2005/10/12(水) 23:58:58
言語経験がなくて、まだjava勉強中の人間に設計させるのか それは大変だな
110 :
103 :2005/10/12(水) 23:59:11
>>103 ありがとうございます。
見に行ってみます。
111 :
103 :2005/10/13(木) 00:00:18
プログラムした事無いSEって結構多いみたいだよ
>>102 オ・・・ッ スゲ- ありがとございます。
こういうふううに考えるんですね。
自分の作ったやつ見ると泣きたくなる。
これからもがんばるぜ。
114 :
デフォルトの名無しさん :2005/10/13(木) 01:03:24
>>112 ぶっちゃけた話、俺の会社のSEにプログラム書ける奴が殆どいない。
なぜか運用の俺が殆ど社内の開発やってる状態。
今時のSEなんて、「Windowsの設定ができる人」程度が殆どだ。
まー近いうちに辞めるけど。
>今時のSEなんて、「Windowsの設定ができる人」程度 それはちがーう!! と日曜からプログラマな ネットワーク運用の俺が言ってみる。
JPanelをスクロールしたいのですが、どうすればいいのでしょうか。
117 :
デフォルトの名無しさん :2005/10/13(木) 01:27:51
スクロールペイン
118 :
116 :2005/10/13(木) 01:52:51
Scrollableを実装していないコンポーネントに JScrollPane適用するにはどうすれば良いのでしょうか。
俺の経験上、プログラムなんて誰でもできると 嘯くようなSEは十中八九無能だったなぁ。 そもそもスーパーが付くSEとPGは紙一重であって 境界線なんてないんだよ。
Integerの配列を0で初期化する簡単な方法ありますか?
121 :
116 :2005/10/13(木) 02:06:52
Arrays#fill
>>116 JScrollPane scroll = new JScrollPane(panel);
123 :
デフォルトの名無しさん :2005/10/13(木) 02:20:51
Linux(Suse 9.2)にsunからダウンロードしたJDKをインストールして、JDKのbinディレクトリに パスを通したあと、書きのプログラムをjavacでコンパイルしてjavaコマンドで実行したところ、 class HelloWorld { static public void main(String args[]){ System.out.println("Hello world !"); } } 書きのエラーが出ました。何か設定し忘れているのでしょうか?どなたか教えてください。 Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/class
124 :
デフォルトの名無しさん :2005/10/13(木) 02:24:53
public class HelloWorld
public static void main
×java HelloWorld.class
○java HelloWorld
>>124 ,125
127 :
デフォルトの名無しさん :2005/10/13(木) 02:41:16
それは別に問題ないだろ
128 :
123 :2005/10/13(木) 06:53:47
publicをつけてみたのですがやはり同じでした。
とある画像Aを読み込んだImageオブジェクトを用意しておいて メインウィンドウのコンストラクタと、paintメソッド内とでそれぞれウィンドウに描画してるんですが 起動時に表示してくれません これどうしたらいいんでしょうか
>>129 同症状が再現される一番短いソース貼って
つまり今のからどんどんシェイプアップしたヤツ
import java.awt.*; import java.awt.event.*; import javax.swing.JFrame; public class MainWindow extends JFrame { public static void main(String[] args) { MainWindow app = new MainWindow(); app.show(); } private Image imgTest; public MainWindow() { pack(); Insets inst = getInsets(); setSize(16*30 + inst.left*2, 16*30 + inst.top + inst.bottom); Toolkit tk = Toolkit.getDefaultToolkit(); imgTest = tk.createImage("Button.jpg"); getGraphics().drawImage(imgTest, 0, 0, this); } public void paint(Graphics g) { super.paint(g); g.drawImage(imgTest, 0, 0, this); } } 行数があれなんで、System.exit()は省略してます
Cだったら、構造体って POINT pt1=pt2; って感じでディープコピーできるわけですが、 java の場合、clone メソッドをディープクローンするように実装しておいて POINT pt1=(POINT)pt2.clone(); ってやるしかない? 毎回、(POINT)xx.clone()って書くのが面倒なんですよ。 書き忘れて、pt1=pt2ってやったらバグの原因になるし・・・・。 java の使用だと思ってあきらめるしかないですか?
つかJavaに構造体なんてあったのか?
ちなみにclone()もシャローコピー
Cは構造体のコピーって未定義だったような
138 :
デフォルトの名無しさん :2005/10/13(木) 13:50:06
初心者で恥ずかしながら質問させていただきます JFrameを継承したクラスに 5つのボタンを持つパネルを貼っています. そのボタンには初期値として乱数で割り当てられた数値のラベルがあり それらのボタンとは別に配置してあるソートボタンを押すとラベルの昇順に並べて表示する という処理を行っているのですが, ソートボタンを押して表示させようとしても 画面を大きくしたり,マウスを5つのボタンの上に持っていくと表示されるのですが ソートボタンを押しただけでは表示されません... public void actionPerformed の中ではソート処理と ソートによって並び替えられたボタンをパネルにaddして パネルのrepaint()を呼び出しています
>>131 JFrame では描画メソッドのオーバーライドをするもんでない。
JComponent あたりを継承して、その paintComponent メソッドで描画することにして、
JFrame の contentPane に配置するべき。
>>138 revalidate でどうじゃろか。
140 :
138 :2005/10/13(木) 14:16:32
>>139 解決しました!
本当に有難うございます( ´Д⊂
repaint()とrevalidate()の使い分けの指針みたいなものがあるのでしょうか・・・
repaintはpaintComponentをよびだすだけ コンポーネントの配置関係とは別の話
142 :
131 :2005/10/13(木) 14:39:51
>>139 JComponentを継承してクラスを作り、その中で↓のようにpaintComponentを定義してみました
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(imgTest, 0, 0, this);
}
で、実行してみるとヌルポが出ました・・・
これじゃダメなんですか?
>>142 画像をロードしてないんじゃ?
ツールキットのロードは非同期処理だよ?
おとなしくImageIOつかいなされ
>>132 java.awt.Point p2 = new Point(p1)
でがまん。あとcの代入はディープコピーじゃないよ。
>>143 ImageIO.read(new File("ファイル名");
としたんですが、読み込めずにnullになります
画像はJPEGなんですが、サポート形式を列挙してみても、JPEGは対応しているとでます
ImageIOでの画像読み込みって、これで合ってますよね?
>>83 doMethod(int x, int y, long[] obj){
}
はいこれが可変長引数
末端だけ可変長引数にできる。
Java5からは以下と上記は同義である。
doMethod(int x, int y, long... obj){
}
ただし以下のようなメソッドシグニチャ定義はできず、コンパイルエラーとなる。
doMethod(int x, int y, long... obj, int y){
}
>>145 ファイル名ミスってるとか画像ファイルが壊れてるとか
ファイル名はフルパスでいれた?
>>147 いえ、相対パスです
フルパスじゃないとダメなんですか・・・
カレントディレクトリの指定がおかしいとおもってね IDE使ってる人はよくそれでミスしてるから
>>131 app.show();
↓
app.setVisible(true);
>>150 それはどういう・・・?
showはダメってこと?
今は非推奨になってる
>>131 Button.jpg → this.getClass().Button.jpg
154 :
94 :2005/10/13(木) 17:49:48
以下のようにボタン16個をGridLayoutで配置するプログラムを作ったところ、 8行目のfor(int i=0; i<b.length; i++)に「型の開始が不正です」というエラーが出て 一番最後の}に「<identifier> がありません。」というエラーが出てしまいました。 理由が全然わからないんですけど、どこか間違ってますか? import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Sample extends JFrame { Button b[] = new Button[16]; for(int i=0; i<b.length; i++) { b[i] = new Button("ボタン"+i); } Sample() { super("sample"); Container c = getContentPane(); c.setLayout(new GridLayout(4,4,0,0)); for(i=0; i<b.length; i++) { c.add(b[i]); } } public static void main(String[] args) { JFrame frame = new Sample(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(800,800); frame.setVisible(true); } }
>>154 for の場所が変。
コンストラクタか、さもなくばどっかのメソッドに入れるべし。
それはそれとして、何を作ろうとしてるかすぐ分かるな(w
>>154 そのforループをsuper("sample"); の次の行に移動させましょう。
あと、2つめのループのところで軽いエラーが出るので直すこと。
157 :
94 :2005/10/13(木) 18:18:23
>>155-156 ああそうか、フレームに貼るからコンストラクタに入れなきゃいけないのか。
マジでありがとう。
で、お察しの通り電卓作ってますw
>>157 Swing使ってるならJButtonつかえ
AWTは危険
>>114 >
>>112 > ぶっちゃけた話、俺の会社のSEにプログラム書ける奴が殆どいない。
> なぜか運用の俺が殆ど社内の開発やってる状態。
> 今時のSEなんて、「Windowsの設定ができる人」程度が殆どだ。
そのSEウザーってかそんな奴にSEなんて名乗らせるべきじゃなーだ
営業以下の低レベル
public と private ってどう違うの
>>132 > Cだったら、構造体って
>
> POINT pt1=pt2;
>
> って感じでディープコピーできるわけですが、
> java の場合、clone メソッドをディープクローンするように実装しておいて
>
> POINT pt1=(POINT)pt2.clone();
>
> ってやるしかない?
> 毎回、(POINT)xx.clone()って書くのが面倒なんですよ。
> 書き忘れて、pt1=pt2ってやったらバグの原因になるし・・・・。
> java の使用だと思ってあきらめるしかないですか?
POINTクラスが不変クラスやシングルトンクラスであれば
clone()使わなくてもとくに問題はない。
不変クラスの作り方については、自分でググッてね。
POINT型へのダウンキャストはJava5からはGenericsによって
不要になったと思う。
Cloneableインターフェースを実装し
とりあえず、clone()メソッドをオーバーライドしておくことだね。
163 :
デフォルトの名無しさん :2005/10/13(木) 19:17:58
プライベート・ライアンを思い出した
164 :
132 :2005/10/13(木) 20:28:31
>>144 コピーコンストラクタってJavaでも普通に使われるんですね。
その方法で行ってみたいと思います。
>>161 不変クラスについては知りませんでした。
それも検討してみます。
Unix/Linuxのtime関数みたいな、現在の日時をある日からの秒数で取得できるようなメソッドありませんか?
Eclipseで、拡張forループを使用しようとして、 for(ObjectA a : obj){ } と言う風に記述したところ Syntax error, 'for each' statements are only available if source level is 5.0 と表示され、実行できません・・・ ObjectAは作成したクラスの型なのですが、level is 5.0の部分が分からず困っております。 どうしてこのようなエラーが出るのでしょうか・・・
jdk5.0は入っているのか? 入っているなら設定でコンパイラのバージョンを5.0に変更
>>144 Javaではclone()をオーバーライドするだけで済むというのに
コピーコンストラクタなんかいらんだろ
電卓作るのはいい練習なの? めんどくさいだけだと思うんですが?
>>171 頭ん中ですぐ作れるならそいつにとっては「めんどくさいだけ」
頭でぱっとイメージできない段階なら「いい練習になる」
簡単に作れそうだと思ったのに実際には作れなくてそのままほっとくのはダメな奴
>>54 時代遅れっつうかダサいっていうかセンス無い
>>167 初歩的な事だったんですね、すません。
なるほどlevel5.0はバージョンの事だったのか・・・
>>168 clone をオーバライドするときとはサブクラスでの動作が違う。
Windows2000にJ2EE1.4をインストールしようとしてsunのページからダウンロードしてきたんですが、 J2EEにJDK1.4が含まれてるみたいなんです。 自分のPCにはJDK5.0が既にインストールされてるんですが、 これってどうなるんでしょう?
別に問題ない
180 :
デフォルトの名無しさん :2005/10/13(木) 23:42:39
逆行列を返す関数 public Matrix inv() ってのはどうやってつかえばいいですか? いま配列で3×3行列を保存できるようにしてるんですけど そのint test[][] = new int[3][3] ; やったら public Matrix inv(test) ってかんじにすれば逆行列になりますか?
181 :
デフォルトの名無しさん :2005/10/14(金) 00:20:55
>134 pt1とpt2がどちらも実体であればディープコピーになるんじゃないかな? コンパイラが吐いたアセンブリを見たらmemcpy()が呼ばれていたような気がする。
183 :
デフォルトの名無しさん :2005/10/14(金) 02:10:01
StrutsとTomcatとmysqlでWebアプリ作ってたときに人から突っ込まれたことについて質問です。 public class HogeUtil{ public static List getHogeList(Connection con){ return con.execute(hogesql); } } ↑こんな感じのstaticメソッドを作ったら、 「マルチスレッドのアプリで、staticメソッド内でSQLを発行するのは 他のスレッドによって変数が書き換えられて正しい結果が期待できない」 と言われてしまいました。 これは本当なんでしょうか? (ちなみに、static じゃなくクラスをnew してメソッドを呼べばOKらしいですが。)
>>183 ウソ
メソッドの中でインスタンス変数やstatic変数を使っている場合,
そのメソッドが複数スレッドから共有されるオブジェクトに属しているなら,
「常に」正しい結果が期待できるかどうかを考慮しなければならない.
これはそのメソッドがstaticか否かに拠らない.
注意すべき,というか,使うべきでないのは「変更可能なstatic変数」であってstaticメソッドではない.
185 :
184 :2005/10/14(金) 02:38:08
>>183 > return con.execute(hogesql);
この hogesql が変更可能なstatic変数であるなら,
「正しい結果を期待できない」のはyes.
この hogesql が変更可能なstatic変数であるなら,
メソッドだけを非staticにしてもやっぱり「正しい結果を期待できない」
逆に,仮に↓であれば,メソッドがstaticかどうかに関係なく,期待した結果を得られる.
private static final String hogesql = "select ...";
186 :
183 :2005/10/14(金) 02:49:53
>>184 >>185 よくわかりますた(もちろんhogesqlはstaticでない変数です)。
最初に聞いたそのときはそんな馬鹿なと思ったんですが、
conの実装依存じゃないか?とか思い始めてしまい、信じかけていました。
ありがとうございました。
187 :
デフォルトの名無しさん :2005/10/14(金) 07:59:00
スレ違いかも知れませんが、エクリプスを使っているのですが、 再起動するたびに左側のエクスプローラみたいな奴のツリーが 閉じた状態になってしまうのですが、これって前回起動時の状態 を維持ってできないでしょうか?
Wikiに池
189 :
184 :2005/10/14(金) 09:13:51
>>186 少し訂正
使うべきでないのは「変更可能な被共有オブジェクト」
staticでないインスタンス変数でも,インスタンスが複数スレッドから共有されてたらアウト.
Servletのインスタンス変数とかね.
その中でも(変更可能な)static変数が極めて危険なのは「非共有にする術が無い」から.
マルチスレッドプログラミングの第一歩は「できる限り被共有オブジェクトを作らない」こと.
そのclassファイルを実行しようとjava Jsmp1と入れるとException in thread "main" java.lang.NoClassDefFoundError: Jsmp1というエラーが出ます 直訳すると「糸の「主な」java.lang.NoClassDefFoundErrorの例外: Jsmp1」という意味らしいのですが きちんとclassファイルを実行するにはどうしたらいいのでしょうか?
193 :
デフォルトの名無しさん :2005/10/14(金) 09:53:56
jdkのbinディレクトリにクラス作るやつ初めて見た とりあえず違う場所に作業フォルダ作れば
194 :
デフォルトの名無しさん :2005/10/14(金) 09:58:59
解決できないので、もう一度質問させてください Linux(Suse 9.2)にsunからダウンロードしたJDKをインストールして、JDKのbinディレクトリに パスを通したあと、書きのプログラムをjavacでコンパイルしてjavaコマンドで実行したところ、 public class HelloWorld { static public void main(String args[]){ System.out.println("Hello world !"); } } 書きのエラーが出ます。どのプログラムも開発できない状態なので、どなたか教えていただけないでしょうか? Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/class
jdkのbinディレクトリにクラス作った者ですがw MS-DOSの作業ディレクトリが最初マイドキュメントだったのですが、そこの状態だとjavacコマンドが無効だったので jdkのbinを作業ディレクトリにしました MS-DOSの作業ディレクトリをどこにすればいいのか教えてください
JFrameを継承したメインクラスにボタンを貼り付けて表示する場合について質問です フレーム全体をBorderLayoutで,それぞれのNorth,South等の各領域にボタンを複数持つパネルを 貼り付けていきたいんですが,JFrameのgetContentPane().Add()で各領域に貼り付ける方法 全体用のパネルを作って,それをBorderLayoutにセットして,その上にボタンがあるパネルを貼り付け 最後に全体用のパネルをJFrameのgetContentPane().Add()する方法 とりあえず後者にしてみようと思うのですが一般的にはどちらの方が多いのでしょうか?
>>1 を見ずに書き込みをしてましたクラスパッチを設定してみます
>>196 どっちでもいいが、ウインドウのクライアントサイズを自前で処理したいのなら
パネルをまず貼り付けてたほうがpack一発でサイズがきまるのでいい
ウインドウの隅を5から10ピクセルあけたほうが画面はすっきりするので
パネルにエンプティボーダいれてみると楽だとかはある
クラスパッチ
すいませんjdkのbinディレクトリにクラスを作った者ですがクラスパッチを設定したら 出来るようになりました 初歩的な質問すみなせんでした^^;
クラスパッチじゃなくてクラスパスな
203 :
デフォルトの名無しさん :2005/10/14(金) 12:02:06
初心者丸出しの質問で申し訳ありません。 必死でしらべたのですがわかりません… public class Jikken2Class { public static void main(String[] args) { System.out.println("Hello,WORLD!!"); } } というクラスを作成しましたが、 エクリプスでは実行できるのですが、 MS-DOSプロンプトで実行すると Exception in thread "main" java.lang.NoClassDerFoundEffor: Jikken2Class/java というエラーが出てしまいます。 これはなぜなのでしょうか… どうかご教授願います。
直前のレスも見ず,
>>1 も見ない
こうなるともう荒らしだな
DOM の Text 要素に "\r\n" を入れて XML 出力すると
<改行> と 出てしまうようだが、XML って "\n" のみしか改行とみなさない仕様 なんだっけ? java version "1.4.2_09" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_09-b05) Java HotSpot(TM) Client VM (build 1.4.2_09-b05, mixed mode)
ごめん、消えた <改行>
>>199 有難うございます
参考にさせていただきます
208 :
デフォルトの名無しさん :2005/10/14(金) 12:50:30
パスの設定をしろ
最低限
>>1 も読まないやつは初心者以下なので歓迎しません
お聞きしたいことがあります Javaでパッケージを使うと jp.com.tests.a; とかなりますよね この場合実際にWindowsならjp\com\test\aってフォルダが無いと駄目らしいんですが これってEclipseのPluginのようにjp.com.test.aってフォルダを作る方法とかないんでしょうか?
>>211 > EclipseのPluginのように
ってのがよくわからん。
Eclipseの「パッケージ・エクスプローラー」ビューのこと?
あれは実際にはjp\com\test\aというディレクトリ階層構成だが、
Eclipse上では「jp.com.test.a」と見せているだけだよ
>>212 言葉足らずで申し訳ありません
> EclipseのPluginのように
というのはEclipse.exeがあるフォルダのPluginフォルダのことです
そのフォルダの中身はorg.eclipse.〜というフォルダがあったもので
そのような方法が有るのかとふと思いまして・・・
話は少し変わりますが,実際にフォルダが階層になっている場合は
package jp.com.tests.a;
package jp.com.tests.b;
というパッケージを作ったら
jp\com\testsに両方が無いと駄目なのですよね・・
ディレクトリ名を jp.com.test.a にする? それは非常にお勧めできない。 Eclipseのやり方、いや、一般的なやりかたにしなさい。 さもないとそのコードを丸投げされた他社に迷惑がかかる。
>>213 ClassLoaderを継承して自分で作れば出来るはず。
初心者スレではオススメできない方法だな。 つーか普通はまずやらない。
そんなにフォルダが嫌い?
でも、 ディレクトリ名を jp.com.test.a にするのは、ある意味正しい。 Javaのパッケージは正確には階層構造・ツリー構造ではないから。 jp.com.test パッケージと jp.com.test.a パッケージには何ら親子関係は存在せず、 全く別のパッケージとして扱われているにすぎないのだから。 でも、他社(というか他人)が「へ?」と思うことはしない方がいい、には一票。
>>1 を見ていませんでした。それにしても環境ぐらい自動で設定してくれればいいのに。
>>215 その前に jp.com.tests.a ってディレクトリに対応したコンパイラを書かないとダメなんでは?
219 :
211 :2005/10/14(金) 15:35:04
>>214 >>215 >>216 アドバイス有難うございます
素直に階層構造にすることにします.
>>215 いえ,嫌いじゃないです.
ただ,こうゆうやり方もあるのかな?と疑問に思ったもので;
>>216 階層構造でもなく親子関係は無いんですね
それなのにもしjp.com.test,jp.com.test.aのようなパッケージングをした場合には
実際にはクラスを親子関係のあるフォルダ配置しないと
動かないんですね・・・
脳内で整理してきます
>>211-218 おまえら・・・。
Eclipse の plugin は ディレクトリ名を ClassLoader が解釈してるわけじゃないだろ。
windows用のコンパイラ・ランタイムが、パッケージをそういう風に管理することに しているだけで、javaの仕様としては階層構造でなくてもいいのだよ。 階層的な「ディレクトリ」って概念が無いプラットフォームも存在するから。 つーても、俺は階層構造のヤツしか知らんのだがな。 J2MEとかどうなのかな。 AS400でも、java環境から見える側では仮想的に階層構造になってるし。
>>220 そもそも plugin フォルダのはバージョン番号とか付いてるし、
Java の言語機能の package とは何の関係も無い。
フォルダ名が他のPluginとバッティングしないようにパッケージ名を含めた名前にしてるってだけかもね。
>>205 DOMのレベルではそのとおり。\nのみが改行コード。
\r\nで出力したかったら、シリアライズするコードで何かする必要がある。
Javaで着メロ読み込む着メロプレイヤーアプリ作りたいです キャリアごとの拡張命令じゃないと流せないらしいとのことなんですが ご指導のほどお願いします
JavaSEで流したいのか?
教えていただきたいスクリプトがあります。
>>1 のWikiを見てもわからなかっので・・・。
機動戦士ガンダムに出てくる、ハロの動きをするスクリプトを作りたいのですが
どうやったら、ランダムにはねるようになるのかわからなくて^^;
よろしくお願いします。
乱数をお使いください
普通にソース書いてただけなのに、警告で "ex1.java": パッケージ C:\Documents and Settings\Administrator\jbproject\Lesson4\src\lesson4\ex1.java (ソース unnamed package に記述) がディレクトリ C:\Documents and Settings\Administrator\jbproject\Lesson4\src\lesson4\ex1.java に合致しません。 というエラーが出てしまいます。原因は何なんでしょうか?
ありえねぇパッケージ名だな
public class Question4 { public static void main(String[] args){ System.out.println("今何時ですか?(24時間表記で)"); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in),1); try{ String line = reader.readLine(); int t = Integer.parseInt(line); if (t >= 24 || 0 > t){ System.out.println(t + "時 時刻が正しくありません。"); } else if(t >= 0 && 12 >= t){ System.out.println(t + "時 午前です。"); } else if(t >= 13 && 23 >= t){ System.out.println(t + "時 午後です。"); } else{ System.out.println(t + "時 正午です。"); } catch(IOException e){ System.out.println(e); } catch(NumberFormatException e){ System.out.println("不正な時刻です。"); } } } } これで「catchへのtryがありません」というエラーが出るんですがどうしてですか?
括弧の対応がおかしいだけ
public class Question4 { public static void main(String[] args){ System.out.println("今何時ですか?(24時間表記で)"); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in),1); try{ ・・・ → catch(IOException e){ System.out.println(e); } catch(NumberFormatException e){ System.out.println("不正な時刻です。"); } } } }
jar -cv -f XXX.jar -m MANIFEST.MF *.class ↑XXX.jarとMANIFEST.MFを用意して、実行汁 感想: ピーピーうるさくてかなわんwwww
>>216 > でも、 ディレクトリ名を jp.com.test.a にするのは、ある意味正しい。
> Javaのパッケージは正確には階層構造・ツリー構造ではないから。
> jp.com.test パッケージと jp.com.test.a パッケージには何ら親子関係は存在せず、
> 全く別のパッケージとして扱われているにすぎないのだから。
異議ありっ!
先生、パッケージjp.com.test.aとパッケージjp.com.test.bとパッケージjp.com.testに
それぞれクラスが入っていたら煩雑になってツリーが形成されず
パッケージの数が数百と膨大なとき、ファイルを読みにくいんですが。
よってディレクトリでわけるべきだと私は思います。
>>211 Ecipseは3.1からパッケージ名がJARファイル名になった。
ディレクトリは関係ない。Eclipseを起動したときなどに
自動的にJARが展開されTomcatのcontextのように自動的にディレクトリができる。
>>235 そんなことをするならAntの<jar>タスクの使用をお勧め汁
さらにjarの中で<manifest>タグを上手く使って
マニフェストファイルもantが自動生成するのだ
>>236 規格の話と運用の話をごっちゃにするなよ。
確かにディレクトリツリーの方が運用上使いやすいが
規格上はそんなことはどうでもよいって話だろ。
servletで404エラーになります これを直す方法をどなたかご教授ください。お願いします。 ログです↓ 2005-10-15 14:21:50 StandardWrapper[/MyWebApp:org.apache.catalina.INVOKER.MyfirstServlet]: サーブレット org.apache.catalina.INVOKER.MyfirstServlet を利用不可能にマークします 2005-10-15 14:21:50 invoker: パス /MyWebApp/servlet/MyfirstServlet にサーブレットインスタンスを割り当てることができません javax.servlet.ServletException: ラッパがサーブレットクラス MyfirstServlet またはそれが依存するクラスを見つけることができません
Swing のコンポーネントって Document や ListModel とかのクラスに addXxxListener() して モデルの状態変更の通知を受けて自分も更新してるじゃん。で、その Swing コンポーネント が消える時には removeXxxListener() しなきゃいけないと思うんだけど、具体的にどの タイミング (つうかメソッドの中) でやっておるのですか?
あんまりremoveListenerは使ってないと思うよ コンポーネントを破棄したらリスナーいみなくなるわけだし
とあるコンポーネントの描画内容を Image にしたいんですが (スクリーン キャプチャみたいな感じ)、Image.getGraphics() をどのメソッドに渡せば 良いんでしょうか? また、コンポーネントを画面に表示しないでそういった ことはできないでしょうか?
>>242 マジで? リスナのインスタンスはモデル側 (Document とか ListModel とか) が持ってるから、
モデルを使いまわそうとすればメモリリークになるじゃん。リスナは更新通知のためにコンポー
ネントも参照してるだろうから、それだとマジでコンポーネントも GC されないことになるんだけど。
>マジで? リスナのインスタンスはモデル側 (Document とか ListModel とか) が持ってるから どういう意味か説明して欲しい
普通リスナーは通知する方が保持してるでしょ。保持してなかったらイベント起きても 通知できないし。
for文の基本のプログラムで、 public class Graph { public static void main(String[] args){ for (int i = 0; i < 10 ; i++){ System.out.println(i + ":"); for (int j = 0; j < i; j++){ System.out.println("*"); } } System.out.println(""); } } これをjBuilder2005で実行すると、 0: 1: * 2: * * …みたいな感じになってしまうんですが、*を:の横に並べるにはどうしたらいいんでしょうか?
print
printlnがどういう動作かを調べることもせんのかキミは
>>241 JTableみたけどsetModel内でしかremoveTableModelListener呼んでないな
JTable#setModelに自分で作ったaddListener呼ばれても無視するモデルをセットするしかないかな
>>243 通常描画内容はオフスクリーンバッファに描画しておいて、その結果を画面に出すだけで
画面の内容を取り込むということはしない
>>251 JTable のソースってどこにありますか?
>>241 オブザーバーパターンがどういう動きしてるかしってるか?
>>253 JDKのディレクトリにsrc.zipってのがあるから展開
>>240 ご教授ではなくご教示くださいのほうが
失礼に値しにくい
>>255 Eclipseを使えば展開せずとも
Java標準APIソースコードの閲覧はもっと容易になるのだが。
Eclipseで当該コードを選択して宣言を開くで見れる
>>240 Tomcatか?
Tomcatを停止し、
workの中をすべて削除してから
再起動して
Servletのページを見てみるとどうなる?
server.xml,
contextのweb.xmlの設定はどうなっている? XDocletで自動生成か?
なんかEclipseならとか厨がわいてるが、他のIDEならもっと楽に見れるんじゃね?
あっそ
SpringLayoutを指定したJPanelに、JTableを貼り付けたJScrollPaneを置いたのですが JScrollPaneのサイズがJTableのサイズよりも大きくなってしまいます。 JScrollPaneのサイズをJTableのサイズに合わせる方法はありますか?
>>251 やっぱり。じゃあたとえば TableModel のインスタンスを一つだけ保持しておいて、サブウィン
ドウやダイアログが表示されるたびに新しい JTable 作って setModel() とかいう使い方
してるとメモリリークになるんだなー。
>>254 知ってるが話の本題と関係ないだろ。それともオブザーバーパターンだからリスナを外す
必要はないとか、意味不明な珍説でも披露する気?
>>264 オブザーバーパターンわかってるならViewが破棄されたタイミングは問題ないのはわからないか?
267 :
横槍 :2005/10/15(土) 23:42:51
>>264 の言いたいことってこういうことだろ?
private static class ShowTableAction extends AbstractAction {
private DefaultTableModel model;
public ShowTableAction() {
super("Show Table");
model = new DefaultTableModel();
}
public void actionPerformed(ActionEvent ev) {
JTable table = new JTable(model) {
public void finalize() throws Throwable {
super.finalize();
System.out.println("bye!");
}
};
JOptionPane.showMessageDialog(null, table, "", JOptionPane.PLAIN_MESSAGE);
table.setModel(new DefaultTableModel()); //入れるのと入れないのとで大違い
System.gc();
System.out.println(model.getTableModelListeners().length); //入れとかないと増える一方
}
}
ま、要するに、TableModel を使い回しするのをやめればいいのだ。
変化を何かに通知する目的までを含めて TableModel であることに意義があるのだから、
影で保持しとく間までも、TableModel の姿をしておく必要はない。
SwingでModelの共有やるとおかしくなるって過去に何度もでてるんじゃ
そろそろ釣れたとかいいだすんかね
>>265 アホ発見。リスナはモデルから参照されてるため、モデルのインスタンスが GC の対象に
ならない限りいつまでたっても回収されない。そのリスナが JTable とか参照してたら
そいつらも含めて回収されない。
>>266 ビューが破棄されたタイミングでリスナも破棄されないのが問題。つか、何が言いたいか
意味不明。まぁ君の脳内ではリスナやビューののリークくらい問題ではないのかも知れないが。
>>267 そうやって GUI コンポーネントを使い終わったタイミングで setModel() とかして明示的に
永続性を持つモデルを削除するしかないな。
だが TableModel の姿をしていない大元の「モデル」から TableModel が変更通知を
受けるって設計でも、TableModel は単なるイベントのゲートウェイになってるってだけで、
問題は解決していないな。大本のモデルが TableModel への通知を切り離す
タイミングはいつにする?
モデルを使いまわそうって時点で 使いまわす側がリスナのadd/removeを管理すべきなのは 当たり前なような気がするが。
275 :
質問 :2005/10/16(日) 03:52:34
後処理を忘れたクライアントに対する安全ネットのように、 ファイナライザを利用して自分自身の後処理をする場合、 ファイナライザが別スレッドで実行されることを気にして オブジェクトをスレッドセーフに書く などという、なんか本末転倒なことはしなくて良いの?
ファイナライザ呼ばれてるって事は他のスレッドは参照もってない、つまりメソッド起動できないからいいんじゃないの? 多分。
>>276 スレッド間の排他性についてはその通りだけど、
スレッド間の可視性についてはどうよ?
スレッド間の可視性についてはどうよ?
>>277 m9(^Д^)プギャー 負け犬の遠吠え
学生の知ったかプログラマじゃない?
拾ったヤツが、介護とかしなきゃいけなくて、どうしても飼えない。
里親が見つかるまでの一時預かりでもいいからだれか助けてやってくれないか?
また子猫なんだが
http://ex11.2ch.net/test/read.cgi/news4vip/1129430418/ 587 名前: ハラミスキー ◆X/PKvDtI5g 投稿日: 2005/10/16(日) 00:38:04 ID:1pHhmmwy
すみません!自分の部屋の真ん前にあるゴミ置き場に
生後2日くらいのぬこが放り込まれてました。
飼える環境ではないですがあまりの鳴きっぷりとネズミ具合に一時保護してます。
しかし医者で貰ってきたミルクも飲んでくれず鳴き乱れるので困り果てています。
どなたか、こんな生まれたても面倒見てやるぜという豪気な方いらっしゃいませんか?!
明日も家族の世話のため午後から出かけねばなりません…
てか、ミルク飲みやがれー!!・゚・(つД`)・゚・ ウワァァァン
画像
http://f.pic.to/40yf3 ★茶トラ?
★1匹
★大阪府 お京阪沿線
284 :
デフォルトの名無しさん :2005/10/16(日) 13:58:44
ResultSet rsをretunで返したいのですが、返せません。 例外処理部分で宣言した変数をretunで返したい時は、 どうすればいいのでしょうか? ResultSet getDbField(String aFiled, String aTable){ *******省略*********** try{ PreparedStatement prdStt=db.prepareStatement("SELECT " + filed + " FROM " + aTable); ResultSet rs = prdStt.executeQuery(); CloseDb(); // DBの切断 return rs; }catch (Exception e){ } }
285 :
デフォルトの名無しさん :2005/10/16(日) 14:10:45
CloseDb(); // DBの切断 なぜ先にこれをやる? なぜ大文字で始めているんだ?
286 :
235 :2005/10/16(日) 14:12:48
>>238 おれが言いたかった事は、そうじゃなく、試してみれば分かるってこと。
暴走するwww
287 :
デフォルトの名無しさん :2005/10/16(日) 14:19:45
>>235 俺も経験あるんだが
あのBeep音はなんなんだろうねまったく・・・そのときはWin98+JDK1.2だったんだが関係あるのかなぁ
>>284 例外処理部分の外で宣言すればいいじゃない。
retrun rs;も例外処理部分の外に書けばいいじゃない。
289 :
デフォルトの名無しさん :2005/10/16(日) 14:35:07
290 :
デフォルトの名無しさん :2005/10/16(日) 14:35:51
2行目の >retrun rs;も例外処理部分の外に書けばいいじゃない。 が好きくないと言う意味
291 :
284 :2005/10/16(日) 14:57:39
その方法も考えたのですが、 ResultSet rs の初期化の仕方が分かりませんでした。
292 :
デフォルトの名無しさん :2005/10/16(日) 14:59:52
>ResultSet rs の初期化の仕方が分かりませんでした。 ResultSet rs =null; も立派な初期化
windowsで複数のファイルをコンパイルするにはどうしたらいいんですか? 例 A.java class A { B b = new B(); } B.java class { B(); }
294 :
デフォルトの名無しさん :2005/10/16(日) 15:18:59
javac *.javaでいいんじゃない?
>294 勝手にやってくれるんですか? レスありがとうございます
296 :
デフォルトの名無しさん :2005/10/16(日) 16:44:03
最近、音声を扱うことになってしまいました。 (入力がwave形式の音声ファイルで出力が再生時間) というのがしたいことなのですがご教授願えますか? javax.sound.sampledクラス辺りが怪しい気がするのですが、 わかりませんでした。 この辺にお詳しい方いらっしゃったらよろしくお願いします。
LinuxでJavaしてたのですが、事情でWindowsでJavaを組む方が都合いいため先ほど とほほ様を参考に「j2sdk-1_4_2_09-windows-i586-p.exe」をインストールしました。 そして、 javac test.java でtest.classは作成されるものの、java testを実行すると Exception in thread "main" java.lang.NoClassDefFoundError: test と言うエラーが発生します。このエラーを修復するにはどうすればいいでしょうか? スレ違いでしたらすいません。
>>297 @testクラスにmainメソッドが実装しているかよ、おい!
Amainメソッドのシグネチャが「public static void main(String[] args)」かよ、おい!
Btestクラスがpublic修飾子ついているかよ、おい!
299 :
297 :2005/10/16(日) 16:53:58
>>298 すいません。まだかじった程度なのでせっかくの返信ですがあまり理解できませんでした。
--<test.java>--
public class test
{
public static void main(String[] args) {
System.out.println("Test");
}
}
--------------
なのですがおかしいでしょうか?
301 :
デフォルトの名無しさん :2005/10/16(日) 16:56:28
-cp . test.java
>>301 これでしょ。
java -cp . test
>>297-302 java -cp . test
で動きました、ありがとうございました。
>>296 そのパッケージでいい
AudioSystemってのが基本的なすべての入り口だと思っていい
J2SE5.0だと多少は扱いやすくなってるから5.0以上推奨
305 :
デフォルトの名無しさん :2005/10/16(日) 17:41:16
306 :
デフォルトの名無しさん :2005/10/16(日) 17:42:25
いじわるだね〜 (。・・)(・・。)
>>303 -cp .を付けたら動いたってことは、303が把握していないところで
環境変数CLASSPATHを設定したやつがいるってこと。見直してごらん。
308 :
デフォルトの名無しさん :2005/10/16(日) 17:48:40
>>307 言ってもわかんねーよ
「いいえ、このパソコンは私しか使っていません」とかいわれそう
>>307 CLASSPATHってなんですか?程度の知識なので、むやみにあちこち触ると壊す恐れがあるためあまり触ることが・・・
見てみたら"C:\Program Files\Java\jre1.5.0_02\lib\ext\QTJava.zip"となっておりました。
迷惑でなければ教えていただければ助かるのですが、もし迷惑でしたら-cp付きで動いているので今のところは大丈夫です。
311 :
296 :2005/10/16(日) 17:57:15
ありがとうございます。 >AudioSystemってのが基本的なすべての入り口だと思っていい そうなんですか。もう一度頑張ってみます。 環境はJ2SE5.0です。
俺もjdk入れて普通に実行できてて、jre実行環境だっけ、入れたときにそうなった。 当然カレントは見てるはずって思ってるから、まさか勝手に 設定されてるとは解らなかったんで、結構悩んだよorz....
>>305 ,306
すまんね、いじわるで
そのものずばり答えを言うよりはヒントだけを渡したほうが本人のためだと思ってね
それにAudioSystemから1つのメソッドでファイル形式やサイズすべて取得できるんだし
ほぼ答えだが、わからなくてくじけたらまた質問して来ればいいだけ
最近の新人は答えだけ求めようとしすぎてるのが多いとは感じる
>そのものずばり答えを言うよりはヒントだけを渡したほうが本人のためだと思ってね >最近の新人は答えだけ求めようとしすぎてるのが多いとは感じる 同感
リムーバブルディスク(G)にUSBメモリを挿した状態で コマンドプロンプトの画面が C:\>Documents and Settings\Administrator> と表示されているのですが cd g:\ とやってもチェンジディスクせずにまた C:\>Documents and Settings\Administrator> と表示されて移動できません。 どうやったらgドライブに変更できるのか教えて下さい。
316 :
デフォルトの名無しさん :2005/10/16(日) 18:18:51
>g: だろ?
cd /d g:
g: でいいんじゃないのか?
>>317 できました!
ありがとうございました!
てめぇ・・・ ムキィィィ G: でもできるんだよぉぉ!しんじてくれよぉおぉぉ!
>>309 そのCLASSPATH設定必要ないから迷わず消せ。
>>320 すみません!
G:でもできました。ありがとうございました!
>>321 迷わず消したらcpなしでいけました。サンキューです。
324 :
296 :2005/10/16(日) 19:45:38
>>313 少しですがわかってきました。javax.sound.sampled.AudioSystemの
メソッドを使って
AudioFileFormatとAudioFormatを取得する。
この2つが取得できれば、サンプリング周波数、量子化ビット数
総ビット数が分かるので、
時間 = 総バイト数/(サンプリング周波数 * 量子化ビット数)
だから計算できる・・・のかなぁ。
325 :
デフォルトの名無しさん :2005/10/16(日) 19:51:24
インタフェイスなんて概念、いらなくね? 普通に抽象クラス作るだけで良くない?
>>325 とうとう言ってしまったな
今日の祭りはここからだ
尚之!ゴ〜ング!
もうクラスもいらん。関数だけでよくない?
>>327 そこまで言うと
逆にスルーされるがな
尚之 閉店・・・
>>274 当然て… それじゃ何のためのオブザーバーパターンなのか。
リソースの確保と開放と同じように、add した奴が remove の責任を持つ
ほうが設計・実装がすっきりするのは明確だろ。
>>277 ,
>>281 ,
>>282 理解できないなら無理して書き込まないほうが バカ を晒さなくて良いぞ。
そうでないなら俺が何を勘違いしてるかきちんと説明してみてくれよ。
>>281 は他人だが。
331 :
デフォルトの名無しさん :2005/10/16(日) 21:19:28
public class sample72{ public static void main(String args[]){ int[] arrayTensu={80,70,90,65,80,75,65,50,100,95}; int[] arrayDosu=new int[11]; int idx; for(idx=0;idx<arrayDosu.length;idx++){ arrayDosu[idx]=0; } for(idx=0;idx<arrayTensu.length;idx++){ int j=arrayTensu[idx]/10; arrayDosu[j]++; } for(idx=0;idx<arrayDosu.length-1;idx++){ System.out.println((idx*10)+"点台:"+ arrayDosu[idx]); } System.out.println((idx*10)+"点:"+arrayDosu[idx]); } } これって何しようとしてるのですか?結果はわかるけど、中身の内容がいまいち理解できません。誰か親切な人説明願います
サンプル有るんならその掲載先みりゃ書いてあるだろ
理屈で返せない時は 学生プログラマ、30歳すぎのプログラマ が定番です。
>>330 バカが多いのは分かるが、
> リソースの確保と開放と同じように、add した奴が remove の責任を持つ
で解決じゃないのか?
>>334 うーん、そうだな。ここで一言居士の相手してても、Swing が内部的に add した
リスナをきちんと remove してくれるわけじゃないし。自前で防衛すっか。
337 :
デフォルトの名無しさん :2005/10/16(日) 22:18:45
Weblogic8.1でJDBCドライバのクラスパスのセットの しかたを教えて下さい! MysqlまたはPostgresで使おうとした場合にJDBCドライバが見つからないと 起こられるんですが・・・
>>337 俺の認識では
WEB-INF/lib/以下に置けばいいと思うんだけど・・・
Weblogicのlibでもいいし
339 :
JAVA初心者 :2005/10/16(日) 22:49:06
こんにちは。初めて書き込みをします。 本当にJAVA初心者なので誰か教えてください。 学校で課題がでましたが、いくら考えても頭がぐるぐるします。 3×3の魔方陣を作成するJAVAのプログラムを作るときに、 総当りなのでしょうか?そうするとソースがとても幼稚なものに なってしまいます。誰かわかる方お願いいたします。
340 :
337 :2005/10/16(日) 22:56:26
>>338 %WEBLOGIC_HOME%server\lib配下にドライバを設置し
サーバ起動後、管理画面のツリーで接続プールを選択し設定。
その後、接続テストボタンを押下し試してみましたが
現象は変わらずです・・・
結構前から悩んでるんですが、どうしたものか。。。
Weblogicのドキュメントみても
set CLASSPATH=ドライバぐらいしか書いてないですね・・・
Weblogicの起動バッチファイルわかりますか? Tomcatで言うところのstartup.bat あのファイルに直接set CLASSPATH=ドライバの絶対パスって書くか もしくはJDKインストールディレクトリのなかにドライバjar置くとか・・・ 例えば JAVA_HOME/jre/lib/ext/以下
>>324 そこまでわかればおけ
フレームレートとフレームサイズだけでも取れる気がする
OggVorbisSPIとかだと一段かまさなといけない
343 :
337 :2005/10/16(日) 23:27:28
>>341 成功しました!有難う御座います^^
startWeblogic.cmdにset CLASSPATHを追記して
やってみましたが、これは失敗しました。。。
でJAVA_HOME/jre/lib/ext/配下に配置してやってみたところ成功しました。
前者が何故だめなのかキモチ悪いところですが、解決です。有難御座いました。
こんなんでました com.ngMAT.Common.LowLevelException : Failed to get connection with properties file : /kenko.com/properties/jdbc.oracle.thin.properties : com.ngMAT.Common.LowLevelException : failed to connect to database with properties : /kenko.com/properties/jdbc.oracle.thin.properties : java.sql.SQLException : ORA-01089: immediate shutdown in progress - no operations are permitted
347 :
デフォルトの名無しさん :2005/10/17(月) 12:17:46
はじめまして。 JaMet2.javaというファイルをコマンドプロントで javac JaMet2.java とすると異常は見られないのですが、この後 java JaMet2 とやると 「Exception in thread "main" java.lang.NoClassDefDoundError: JaMet2」 と出てしまいます。 どなたかご教授願います。 JaMet2.javaの中身は↓です。
public class JaMet2 { public static void main(String args[]){ double a,b,ave; a = 11.11; b = 33.33; ave = heikin(a,b); System.out.println("a=" + a + " b=" + b + " 平均=" + ave); } public static double heikin(double x, double y){ double z; z = (x+y) / 2.0; return z; } }
351 :
デフォルトの名無しさん :2005/10/17(月) 12:48:15
>>348 もうめんどくさいからeclipse上で実行しちゃえ
NoClassDefDoundErrorばっかりだね
353 :
デフォルトの名無しさん :2005/10/17(月) 15:08:25
long型の配列 longBit[]に、int型のデータ
A(7bit)
B(8bit)
C(9bit)
D(7bit)
E(10bit)
を格納したいと思っています。
方法として、
A=((int)longBit[number]
>>41 )&A;
B=((int)longBit[number]
>>34 )&B;
C=((int)longBit[number]
>>26 )&C;
D=((int)longBit[number]
>>17 )&D;
E=((int)longBit[number]
>>10 )&E;
このようにすればいいのでしょうか?
間違いがあればご指摘ください
354 :
348 :2005/10/17(月) 15:12:10
>>350 >>1 でリストアップされているサイトを参考にして、PATHを再設定してみましたが、やはり改善されませんでした。
ご教授願います。
じゃあ無理です
>>354 質問1:Windows? Mac? Linux?
質問2:インストールしているJavaのバージョンは?
質問3:PATHに設定した文字列をコピー&ペーストでここ(掲示板)に貼り付けてください。
質問4:C:\Program Files\Java\jre1.5.0_02\lib\ext\QTJava.zip にCLASSPATH貼られてない?
357 :
デフォルトの名無しさん :2005/10/17(月) 17:50:42
java.lang.NoClassDefFoundError: org/apache/commons/httpclient/HttpMethod について聞いたら、ハッ倒されそうな空気ね・・・。
ButtonGroupに登録したボタングループの選択状態を クリアして何も選択されて無いようにするにはどうすればよいのでしょうか?
360 :
359 :2005/10/17(月) 18:43:57
解決しました てかAPI仕様書に書いてあった orz
私Java勉強中です。 オブジェクトの使い方がわかってないといわれたんですが、 何を勉強すればよいのでしょうか? たくさんのクラスを使うプログラムの場合、それぞれの クラスのインスタンスをどこで用意すればよいのでしょうか? 後、例外についてなんですがIOExceptionの例外が発生する場合が 二箇所以上にわたっている時それぞれをcatchして異なった 例外メッセージを出力する方法を教えてください。
それぞれ別のtry~catchで囲む
363 :
361 :2005/10/17(月) 19:03:04
>>362 それではだめでした。
例外クラスを自分で宣言するというのもちょっと思ったんですが。
それ以外にも何かあるのかと思いまして。
なんだよ「だめでした」って。
駄目な理由が全く分りまへんな こんなんじゃ誰も答えてくれまへんで
Javaのアプリケーションを、一台のパソコン上で1つだけしか起動できないようにする 方法はないでしょうか?どなたか教えてください
367 :
361 :2005/10/17(月) 19:51:47
>>364 >>365 すいません。
tryブロックがひとつですむ方法を知りたいのです。
どうぞよろしくお願いします。
368 :
デフォルトの名無しさん :2005/10/17(月) 19:54:34
もう少し詳しく書いてくれ 今のままだと意味不明
嫌なら辞めろ
370 :
361 :2005/10/17(月) 20:10:43
>>368 import java.io.*;
class Br{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
public void readLinebr()throws IOException{
String str = br.readLine();
}
public void closebr()throws IOException{
br.close();
}
以上の二つのメソッドを、1つの別クラスで呼び出した場合
にtryブロックがひとつで、それぞれに別のエラーメッセージを
catchブロックで出力する方法を教えてください。
throw new IOException(message1); throw new IOException(message2);
373 :
デフォルトの名無しさん :2005/10/17(月) 20:19:53
むり
int progress = 0; try { progress = 1; readLinebr(); //throws IO prgress = 2; closebr();//throws IO } catch (IOExcepton if (pro めんどくさいからもう なんか これでわかるだろ?
375 :
デフォルトの名無しさん :2005/10/17(月) 20:25:13
そもそもなんで一つのブロックでやりたいんだ?
376 :
361 :2005/10/17(月) 20:41:11
>>374 わかりました。なんとなくですが・・・。
ありがとうございます。
>>375 無駄なコードを減らすためです。
凡長だ!といつも言われています。
377 :
デフォルトの名無しさん :2005/10/17(月) 20:44:04
凡長ねえ・・・ 374のやり方でやるなら tryブロック2つに分けるのと変わらない思うが・・・
>>376 一つのブロックに押し込めて
>>374 みたいに無駄なフラグ立てて
if で処理分けするほうがよっぽど冗長だと思うが。
379 :
361 :2005/10/17(月) 20:48:24
>>377 よい方法を教えてください。
自分で例外クラスを宣言しておくというのも考えたんですが。
どうなんでしょうか?無駄なのでしょうか?
380 :
デフォルトの名無しさん :2005/10/17(月) 20:53:43
だからtryブロック2つに分ければいいだけだよ それが凡長だとは思わん
どうでもいいが冗長な
新2ch語誕生: ぼんちょう
383 :
デフォルトの名無しさん :2005/10/17(月) 21:03:46
つられて間違えちったw
>>379 冗長だ言われてるとか、他人の言に惑わされすぎ
そもそも try ブロックを分けることに対して冗長だといわれたのか?
>>361 の書くコード全般に冗長な部分が多いという意味ではなくて?
386 :
デフォルトの名無しさん :2005/10/17(月) 21:14:26
多分それだな 自分で勝手に解釈してるんだろう もう一度発言者に真意を聞いてみろ
メソッドの最初と最後までを一つのtry-catchで囲まないと駄目とか思ってるのだったら その上司はなかなかの曲がり物だな
388 :
JAVA初心者 :2005/10/17(月) 22:17:07
こんにちは、いつもとてもこの掲示板に助けられています。今日も質問があるのですが、1から3までの数字(1、2、3ということ)をRANDOMにGETするメソッドを教えてください。0からなら指定できるのですが、、0はいらないのです、、よろしくお願いします。
389 :
デフォルトの名無しさん :2005/10/17(月) 22:22:31
MVC連携について 勉強しているのですが JSP servlet@ servletA Beansとありまして JSPで入力した値をservlet@で取得しBeansにセット。 servletAでBeansにセットしたものを欲しいのですが Beans be = new Beans(); String A = be.getA(); としても取れません。 どうやったら取得出来るのでしょうか? 宜しくお願い致します。
(乱数) * 3 + 1
391 :
デフォルトの名無しさん :2005/10/17(月) 22:38:31
特定のフォルダの最後に更新された画像ファイルを表示させる アプレットを作成したいのですが、どうやればできるでしょうか?
>>388 0から2までをランダムに取得して1足せよ
少しは頭使おうぜ
393 :
デフォルトの名無しさん :2005/10/17(月) 23:38:04
そうだね。作ったプログラムの使い方が間違ってるよ。 JBuilder なんか使わずに JDK 使えば良いと思うよ。
395 :
JAVA初心者 :2005/10/18(火) 00:32:58
ありがとうございます、、、頭」つかいたいのですが、、考えれば考えるほどJAVAがわからなくなるので、いつもここで助けられてます!
JAVAがわからなくなるって、、。 JAVAとは全然関係ない小学生レベルの話だろ
randが0からかえすのは何十年も前のBASICから常識だし Java以前の論理的な思考が欠如してるな
398 :
デフォルトの名無しさん :2005/10/18(火) 02:12:49
SJC−Pって取得すると就職に有利ですか?
>>398 新卒なら有利。
転職ならSJC-Dが必要。
24k 円の価値ってある?
401 :
デフォルトの名無しさん :2005/10/18(火) 05:23:54
インタープリタ(関数電卓)を作成しているのですが、 (-1)の3乗根などを正しく求めることができません…。 pow((-1), (1/3))ではNaNになってしまいますよね…? どうにかして求めたいんですが、何か良い方法はないでしょうか?
マクローリン展開して近似値を求める
ああマクローリン展開ね
マクローリン展開なら俺も好きだな
俺もマクラーレンは好きだ
関数電卓買おうぜ
407 :
デフォルトの名無しさん :2005/10/18(火) 10:52:36
本当にマクローリン展開すれば近似値を求められるんですか? (1+x)^aのマクローリン展開を利用するってことですよね…? |x| < 1じゃないとダメみたいなことが書いてあるんですが、 求めたいのは(-1)^(1/3)です。 x = -2ですが、求められるんでしょうか…? っていうか、これって、aが( 1 / (2n+1) ) の場合しか 答えがないと思うんですが(他の場合は虚数になってしまう)、 マクローリン展開で答えが求められるのならば、 虚数の解も求められてしまうということになりませんか…? 本当にマクローリン展開で求められるのならば、 もっと勉強しようと思っているのですが…。
javaはじめて一週間くらいの新参者です。 今、以下の問題を解いているのですが、どのようにしたらいいか判りません。 * 文字列が半角のアルファベット大文字のみで構成されているかのチェック。 * * @param letterString 調べる文字列 * @return letterStringがA〜Zのみで構成されている場合、trueを返す。<br> * letterStringにA〜Z以外の文字が含まれている場合、falseを返す。 */ public static boolean isCapitalLetterString(String letterString) { // TODO: ここに処理を実装する。 return false; } 文字列を大文字とか小文字の判断をするにはどうしたらよいのでしょうか? isUpperCaseを使えとヒントを頂いたのですが、コレってchar型にしか使えませんよね。
>>408 Stringをchar配列にして処理すればいいじゃない
>>408 文字列が大文字か小文字かってなんだ?
文字列全体が「大文字だけ」か「小文字だけ」か調べるってことか?
そうじゃなきゃどのみち一文字ずつ調べるしか無いんだから、
一文字ずつisUpperCaseにかけてけばいいだろ
>>408 ・StringのtoCharArray()メソッドで、charの配列を得られる。
・charの配列をループしながらisUpperCase()1文字ずつ調べる
・一つでも小文字があればfalseをreturnする
・小文字が見つからず、ループを抜けたらtrueを返す
>>409 すみません、そのやり方を教えていただけませんか?
>>410 この場合は大文字のみでした、スミマセン。
>>401 惑わされたらいかん
x^(1/3)はマクローリン展開はできないよ
テイラー展開はできるけど収束判定しなけりゃならんし…
すなおにニュートン法で求めたらいいんでねの?
Javaをやりはじめたばかりなのでおかしな質問をしていたら申し訳ありません アプレットを作成し、アプレットビューアーやローカルに保存したファイルをhtmlで読み出すことでの動作は確認できたのですが 別のPCでローカルに保存したhtmlを呼び出してもアプレットが実行されません Javaの開発キットをインストールした他のPCでは動きました ブラウザにはインターネットエクスプローラーを使用しました 何故開発キットをインストールしていないPCでは動かないのか原因がわかりません 原因がわかる方いらっしゃいましたらご教授ねがえませんでしょうか? よろしくお願いします
>>416 WindowsでのJavaの実行にはJREが必要だからさ
>>417 サーバにアップロードしてブラウザで実行する場合と
ローカルに保存してあるファイルをブラウザで実行するってのは違うっていうことなのでしょうか?
もしこのアプレットをサーバーにアップしてHPに埋め込んだら
これもまた見れる人と見れない人がでてくるのでしょうか?
なんだか良くわかってなくてすいません・・
>>418 よくわかってないなら1と1に書いてあるサイトくらい見ような
Javaで書いたプログラムを動かすには JDK入らなくてJREだけでいいんでしたっけ?
>>408 letterString.matches("^[A-Z]+$");
>>420 Development Kit と Runtime Environment
できてるものを動かすだけなのにRuntime以上の物が必要と思う?
WindowsのプラットフォームSDK無くてもWindowsのプログラムは動くぜ?
C#は動かないが.
・・・・(゚д゚)・・・・
( ^ω^)・・・
426 :
デフォルトの名無しさん :2005/10/18(火) 15:27:11
>>423 えっ?.NET framework runtimeをインストールすれば動くよ
まさか.NET framework SDK入れないと動かないと思ってた?
時間を止める能力を持つ人のいるスレはここですね
し、知ってたさ 冗談だよ冗談 あはは orz
超ガンガレ
char ch = 'A'; ch++ System.out.println(ch); なぜchをインクリメントするとBになるのか 教えてください。
>>431 アナタはまず、コンピュータとOSの仕組みと動作から勉強してください
UNICODE 表が必要な気がする
436 :
デフォルトの名無しさん :2005/10/18(火) 22:21:50
JAIを使って、画像変換のプログラムを作成してます。 透過GIFをJPEGに変換すると、IE等で表示できなくなってしまいます。 アルファチャンネルを削除すればよいらしいのですが、 どうやって削除するのでしょうか?
chmod -α <ファイル名>
JAIて何?
お〜れ〜は、JAIあ〜ん!
jai: Java Advanced Imaging Parent Project
>>436 もう今ならその処理は普通にJava2Dでかまわんだろ
442 :
デフォルトの名無しさん :2005/10/19(水) 00:09:56
画像の読み込みをしています。 以下のように読み込もうとすると File f = new File("C:filename"); BufferedImage image = ImageIO.read(f); Exception in thread "main" javax.imageio.IIOException: Can't read input file! とエラーがでてしまいます。画像ファイルはおいてあるのですが。どこが間違っているのでしょうか? どなたか教えていけないでしょうか?よろしくお願いします。
443 :
デフォルトの名無しさん :2005/10/19(水) 00:11:31
C:filenameってのは本当に存在するのか?
444 :
デフォルトの名無しさん :2005/10/19(水) 00:20:36
>>443 返信ありがとうごさいます。
画像は存在します。以下のようにしています。
File f = new File("C:filename.jpg");
>>444 それ相対パスなんだけど絶対パスにしてごらん
"C:filename.jpg" ってさー "C:\filename.jpg" じゃないのん?
447 :
デフォルトの名無しさん :2005/10/19(水) 00:24:16
C:\filename.jpgじゃね?
おまいら食いつきいいな( ̄ー ̄)
449 :
デフォルトの名無しさん :2005/10/19(水) 00:48:15
450 :
デフォルトの名無しさん :2005/10/19(水) 00:49:14
>>416 もう解決したかと思うが、
ブラウザ上でのアプレットはFileInputStreamとかではなく
URLを指定してopenStream等で読まなきゃ駄目よ。
451 :
デフォルトの名無しさん :2005/10/19(水) 01:17:02
CPU が Athlon64 で OS が 32ビット版の Windows XP の場合、AMD64 じゃないほうの JDK をインストールすればいいんですか?
許可する。
454 :
デフォルトの名無しさん :2005/10/19(水) 02:27:58
大きさが 250×250 の JPanel 上の位置 (100, 150) に大きさが 50×30 の JButton を置きたいんですが、どのようにプログラムすればいいんでしょうか?
455 :
451 :2005/10/19(水) 02:41:51
456 :
デフォルトの名無しさん :2005/10/19(水) 02:52:14
ヌルレイアウトを使え
457 :
デフォルトの名無しさん :2005/10/19(水) 03:39:09
nullLayout? の使い方がわかりません・・・ 本にも載ってないし、APIもどこにあるかわかりません
458 :
デフォルトの名無しさん :2005/10/19(水) 03:53:56
スマン。不親切だった・・・ setLayout(null) として、あとは自分でボタンの位置やサイズを設定する
459 :
457 :2005/10/19(水) 04:26:48
>>458 で、できたー。
ありがとうございました!!
>>451 64bitOSでも32bit版のほうがいいけどな
なんか動きが違う
ヌルポレイアウトって、好きなように配置できるのがいい。
Javaコンソールでスレッドダンプ(v)を何度かするとブラウザもろとも巻き込んで落ちるのだけど、うちだけ? バージョンは、1.5.0_05-b05 です。
>>462 完全上位のAbsoluteLayoutがあるけどな
あるクラスAからJFrameを継承したクラスBを呼んだときに そのJFrameが閉じたタイミングでクラスAのメソッドを呼びたいのですが 上手くいきません。 クラスBでは終了ボタンを押したときに this.dispose(); を呼び出すようにしています。 Aの方では B b = new B(); b.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ hoge()); ←呼ばれません } }); //可視化 iecs.setVisible(true); のような処理を記述しています。 BのJFrameの右上の×ボタンを押したときには呼び出されているんですが・・・
466 :
デフォルトの名無しさん :2005/10/19(水) 13:08:19
invokeLaterは使ってみた?
467 :
デフォルトの名無しさん :2005/10/19(水) 13:13:19
>>465 dispose()ならClosingじゃなくてClosedじゃね?
468 :
デフォルトの名無しさん :2005/10/19(水) 13:20:48
int[]とObject[]は同じクラスって感覚でいいの? 全然違う?
いい加減、スレタイから【初心者】【大歓迎】 のタグを外せ
おまえみたいな初心者の隔離スレだっての。自分で初心者無視スレでも立てれば?
もう初心者無視スレとか知ってる人間もいないか…
>>469 何をもって違うとするか、同じ感覚とするかはわからんけど
intはプリミティブ型であり、Objectのサブクラスではないから
Object[] objects = new int[10]; とかは出来ないよ。
そういう場合はnew Integer[10]みたいに、クラスとして扱う。
Appletで、csvファイルをダウンロードしてExcelで開く、みたいな事はできますか? 社内なんで、クライアントは99%Windowsを想定してます。 Excelじゃなくても、OSがcsvに関連付けしたアプリで開けるのならよりいいのですが。
それ、Applet必要なくね?
swingでアプリケーション作ったんだがこれってbatから以外に exeとかで起動できまいか? java.exeのショートカットからプロパティ書き換えてやったらプロンプトが出る助けてくれ
>>478 cmd.exe /C javaw ClassName では無理か?
483 :
475 :2005/10/19(水) 15:40:45
返答どうもです。Applet童貞なので緊張してます。
>>476 実際は、AppletをクライアントにしたDB照会C/Sアプリを考えてます。
webアプリだとUIコンポーネントがヘボいので、Appletが使えればな、と。
AppletViewer内だと、Appletでもローカルにテンポラリファイルが作れるのですが
ブラウザ上だと当然例外吐くので、あれこれ考えていた次第です。
>>477 ブラウザがIEならその方法でいけますね。 どうもです。
484 :
デフォルトの名無しさん :2005/10/19(水) 15:43:40
プログラムは次のレスに書きますが、 JFrameを継承したMyFrameクラスのコンストラクタでGUIの設定を行って、 MainクラスでMyFrameクラスのオブジェクトを作って実行を行おうとしています。 MyFrameクラスのコンストラクタでは JTable table = new JTable(cell,cname); というオブジェクトを作成していますが、ここのcellを MainクラスでMyFrameクラスのオブジェクトを作るときの引数として与えるようにしたいので 次レスのようなプログラムを作りました。 しかし、値の引渡しがうまくできていないのか、 JTable table = new JTable(cell,cname); の行で「シンボルを見つけられません」というエラーがでます。 どこか間違っているでしょうか?
485 :
デフォルトの名無しさん :2005/10/19(水) 15:44:17
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Main { static Object[][] cell = new Object[4][4]; public static void main(String[] args) { MyFrame frame = new MyFrame(cell); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } } import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MyFrame extends JFrame { public MyFrame(Object cell) { String[] cname = {"A","B","C","D"}; JTable table = new JTable(cell,cname); JScrollPane sp = new JScrollPane(table); Container c = getContentPane(); c.setLayout(new FlowLayout()); c.add(sp,BorderLayout.CENTER); } }
× public MyFrame(Object cell) ○ public MyFrame(Object[][] cell)
HashMap の key に、オブジェクトの配列を使う事は出来ないのでしょうか。 読みにくくて申し訳ありませんが、 public class MapTest { public static void main(final String[] args) { final Map sampleMapA = new HashMap(); final String[] sampleKeyA1 = new String[] { "hoge", "hoge" }; final String[] sampleKeyA2 = new String[] { "hoge", "hoge" }; final String valueA = "hogehoge"; sampleMapA.put(sampleKeyA1, valueA); System.out.println("get by sampleKeyA1 : " + sampleMapA.get(sampleKeyA1)); // (1) System.out.println("get by sampleKeyA2 : " + sampleMapA.get(sampleKeyA2)); // (2) // 参考に String[] の代替に Map を使う final Map sampleMapB = new HashMap(); final Map sampleKeyB1 = new HashMap(); sampleKeyB1.put("fuga", "fuga"); final Map sampleKeyB2 = new HashMap(); sampleKeyB2.put("fuga", "fuga"); final String valueB = "fugafuga"; sampleMapB.put(sampleKeyB1, valueB); System.out.println("get by sampleKeyB1 : " + sampleMapB.get(sampleKeyB1)); // (3) System.out.println("get by sampleKeyB2 : " + sampleMapB.get(sampleKeyB2)); // (4) } } などとすると、(2) だけは値が取得できず null となりますが、 この場合 get(Object) の中では何と何が評価された結果取れないのでしょうか…?
488 :
487 :2005/10/19(水) 17:06:28
ああ…半角スペースでした…申し訳ありません or2-3 public class MapTest { public static void main(final String[] args) { final Map sampleMapA = new HashMap(); final String[] sampleKeyA1 = new String[] { "hoge", "hoge" }; final String[] sampleKeyA2 = new String[] { "hoge", "hoge" }; final String valueA = "hogehoge"; sampleMapA.put(sampleKeyA1, valueA); System.out.println("get by sampleKeyA1 : " + sampleMapA.get(sampleKeyA1)); // (1) System.out.println("get by sampleKeyA2 : " + sampleMapA.get(sampleKeyA2)); // (2) // 参考に String[] の代替に Map を使う final Map sampleMapB = new HashMap(); final Map sampleKeyB1 = new HashMap(); sampleKeyB1.put("fuga", "fuga"); final Map sampleKeyB2 = new HashMap(); sampleKeyB2.put("fuga", "fuga"); final String valueB = "fugafuga"; sampleMapB.put(sampleKeyB1, valueB); System.out.println("get by sampleKeyB1 : " + sampleMapB.get(sampleKeyB1)); // (3) System.out.println("get by sampleKeyB2 : " + sampleMapB.get(sampleKeyB2)); // (4) } }
>>487 落ち着け。
put をしてないからだ。
490 :
489 :2005/10/19(水) 17:23:22
ごめんよく見ずに書き込んだ。on_
>>489 は無しね。
Map#equals() の仕様をみてみそ。
491 :
393 :2005/10/19(水) 17:42:55
>>394 JDKを入れてコマンドプロンプトから実行したのですが、やっぱり検索はできませんでした
どこかプログラムが間違ってるでしょうか?
492 :
487 :2005/10/19(水) 17:48:29
>>489-490 ありがとうございます。
うーん、読んでみたのですが、マップ内のエントリーセットを比較してくれる、
と言うことは分かる(と言いますか、期待している通り)のですが、
オブジェクト配列(コード上では同じ値をもつ String[] をキーとして値を取得
しようとする)の場合は NG、なのは…
きっと「オブジェクト配列の equals」を見るのでしょうが、今ひとつどこを見れば
いいのか分かっていません。
493 :
487 :2005/10/19(水) 17:50:36
>>491 元のコードがもう取得できないので予測ですが、
使用法を見る限り引数を与えていないんじゃないでしょうか。
参考書で検索文字列と検索対象ファイルに関する言及はありませんか?
494 :
489 :2005/10/19(水) 17:54:31
495 :
デフォルトの名無しさん :2005/10/19(水) 17:57:37
String a = "ABC"; String b = "ABC"; Javaだと a == b false a.equals(b) true だったっけな
>>491 「 java Find1 System < Find1.java 」 を実行すれば良いと思う。
>>497 この uploader は、URL 直リンクでは 403 になってアクセスできないよん。トップから迂回してね。
>>496 あ、それで実行したらできました。
どうもお騒がせしました
500 :
487 :2005/10/19(水) 18:05:08
そーいや配列同士のequalsってやったこと無かったな。 勉強になった。 String[] a = new String[] { "A", "B", "C" }; String[] b = new String[] { "A", "B", "C" }; a == b false a.equals(b) false
配列同士の equals は java.util.Arrays.equals だからなぁ。
System.out.println( new String[0] + " " + new String[0] ); Object#equals()とString#equals()の違い見たほうがいいよ
504 :
489 :2005/10/19(水) 18:33:17
どうでもいいが
×JSL
○JLS
だった。サッカーリーグかよ。on_
落ち着かないといけないのは俺の方だな・・・。
>>495 そういう話で String を例えに出すとはまるよ。
いきなりですが、質問していいですか?コンポジションのことです。 1 class Total{ 2 int invoice(Add add){ 3 while(add.isNotMax()){ 4 add.acalc(1); 5 } 6 return add.total 7 } 8 public static void main(String args[]){ 9 Total tt = new Total(); 10 Add aobj = new Add(5); 11 System.out.println("Totalcost = " +tt.invoice(aobj)) 12 } 13 } 14 15 class Add{ 16 static final int Max = 50; 17 int total; 18 Add(int initial){ 19 total = initial; 20 } 21 boolean isNotMax(){ 22 return total<Max; 23 } 24 int acalc(int amount){ 25 total = total + amount; 26 return total; 27 } 28 }
507 :
続き :2005/10/19(水) 20:12:15
実行結果は Totalcost = 200 になります。 2行目でint invoice(Add add)とありますが、 その後3,4,6でadd.〜〜ってなってますが、オブジェクト参照変数のように使ってますよね。 それってどういう意味なのか・・・。 あと、11行目のtt.invoice(aobj)とありますよね。 aobjってオブジェクト参照変数じゃないんですか? 意味がわからないです。。。
>>507 > 2 int invoice(Add add)
で、Add インスタンスを1つ受け取って、int を返すメソッド invoice を定義してる。
このメソッドが受け取ったオブジェクト参照は、変数 add に格納される。んで、
> 11 System.out.println("Totalcost = " +tt.invoice(aobj))
にてオブジェクト参照変数 aobj (が指している参照) を invoice に受け渡している。
509 :
495 :2005/10/19(水) 20:40:04
>>508 もう少しだけ噛み砕いてくれませんか^^;
まだまだ初心者名もので。。。
>>510 んじゃね〜コレを実行。
>>506 にて混乱しているだろう部分を抽出するとこうなる。
これが分かると 507 が少し理解できる。
class Sample {
public static int getLength(String text) {
return text.length();
}
public static void main(String args[]) {
String abc = "abcdefg";
System.out.println(getLength(abc));
}
}
C#では
>>495 がtrueになるのに、Javaは変ですね(><)
>>512 C# では operator== が class String にてオーバーライドされてる。java はできない。
……ところで、java でも演算子オーバーライドが実装されるって2年くらい前に聞いたんだが、結局ガセか?
JavaPressに関連した記事が載ってたような
>>513 2年ぐらい前の guy steele だったかのインタビューで言及があったような。
そんとき C# の struct みたいな軽量クラスにも言及してたと思う。
まぁでも言及があったっつーだけで、演算子オーバーロードを実装するとか言ってるわけでは無かったな。
>>511 ちょっとやってきますね><
ありがとうございます!!
>>513 genericsと同じくらい要求はあるが、genericsを遥かに超えるほど
反対もある。
特別なスーパークラスの派生クラスだけでも演算子オーバーラ
イドできるといいんだけどな。実際Stringは特別扱いしてるんだし
Integerとか使うとコードが汚くなるorz
>>487 String[] の替わりに List<String>使えば幸せになれるかもよ
突然すみません。下のプログラムを見てもらえないでしょうか? というのも、Aというオリジナルなクラスを作成し、配列としてオブジェクトの生成を行った後に その生成されたオブジェクトのメソッドを読み出そうとするとヌルポになって中断してしまうのです オリジナルなクラスの配列としての生成は不可なのでしょうか?? ここで、詰まってしまってどうしても前に進めません・・・ どなたかよろしくお願いします class A { int size = -1; public void setSize(int Size) { size = Size; } } class sample { public static void main(String ar[]) { A d[] = new A[4]; System.out.println("size : "+d[0].getSize()+""); } }
java の配列は、ちょうど C++ のポインタ配列と同じ風に初期化されるよ。 ↓みたいにするか、あるいは d[0] 〜 d[3] に直接 A のインスタンスを入れてちょ。 class sample { public static void main(String ar[]) { A d[] = new A[4] { new A(), new A(), new A(), new A() }; System.out.println("size : "+d[0].getSize()+""); } }
>>522 thxです
配列としてのnewしたあとに、次にクラスとしてのnewを行うんですね
全く思いつきませんでした
今、してみたところうまくいきました
わかりやすく書くと A d[] = new A[4]; の下に d[0]=new A(); d[1]=new A(); d[2]=new A(); d[3]=new A(); が必要
それ書こうと思ったけど止めた奴だw もしかしたらそっちの方が良かったかも知れんが。
JAVA初心者です。 少しずつ勉強しています。 早速で大変恐縮なのですが、JAVAでブラウザゲームを作れるでしょうか? 【経緯】 MMORPGライクなゲームを作りたいと思って勉強してるんです。 perlを前やっていたのですが、perlでは思うようなゲームを作る事はできないと分かったので、JAVAに切り替えた次第であります。 宜しくお願いします。
>>526 できます
ただし、敷居は高いだろうと思う。
とりあえずオセロみたいな対戦型テーブルゲームを作れるようになってから、そういうことに挑戦すべきだと思う。
金と時間と技術さえあればどの言語だっていけると思うが。 そうじゃないのか。
>>526 perl で作れんのであれば、Java でも無理だと思われ。
言語っつーよりも人間の能力の問題。
>>526 Perlってゲームって言うより文字処理向けじゃない?
>>529 馬鹿が煽るとそういう感じになるのか。納得。
>>527 ありがとうございます。
がんばります。
>>528 perlを極限まで極めれば出来た事なのかもしれないけども、私には分かりません。
>>529 例えばYahooゲームはJAVAでプログラムされています。
perlでも同じようなものは、極論から言うと作れないわけではありませんが、速度・性能等においては私の満足できるものではありませんでした。
私の力不足といえばそれまでなのですが。
皆様、ありがとうございました。
まだ未熟がために目標に到達できるかどうかは分かりませんが、目標に到達できる道があるという事がわかり、大変うれしく思います。
ありがとうございました。
>>529 perlでドラクエ風ゲーム作ってみろや。
出来たら鼻でスパゲティ喰ってやるよ。
素のperlには標準GUIがなかったと思うけど perl/tkやらperl/GTKやら使えばGUIも使えるんだから作れるだろ。 CUIで無理矢理作るのも不可能ではないし。
535 :
デフォルトの名無しさん :2005/10/20(木) 01:18:47
すいません。質問です。 Windows の Javaで OpenTypeフォントは使えないのでしょうか? TrueType は使えているのですが・・・・
クレクレ厨キタコレ
日付の定数を定義したいのですが、これだと ParseException をキャッチしていない、 となってしまいます。こういう場合の例外はどう処理すればいいのでしょうか? 又、日付の定数を定義するにはどうしたら良いのでしょうか? public class Test { public static Date dt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2005-10-20"); public static void main(String[] args) {
例外ならキャッチすれ。 定数ならfinal修飾すれ。
Calendarで年月日を設定してDateにしろ。 deprecatedだがDateのコンストラクタに年月日をとるのもあるだろ。
>>538 public static Date dt = new GregorianCalendar(2005, 10, 20).getTime();
か
public static Date dt;
static {
try {
dt = new Simple〜;
} catch (ParseException pe) {
thorw new InternalError(pe.getMessage());
}
}
でいいんじゃない?
そういや、static に throws って付けられないんだよな。
定数にするにはどうしたらいい?
java.util.Dateのインスタンスを書き換え不可にする手段はありませんな。
値を変えないと明示するならば、それは定数。値が変わるのなら変数。 コード上で値を変更しないという保障をするのならfinal、Cでいうconst。
オブジェクト変数にfinal修飾したときって そのオブジェクトの中身までは書き換え不可にならないよね?
>>547 ならないですね。
Javaのfinalは、Cでいう「Date* const dt」であって、「const Date* dt」ではない。
じゃあfinal longで日付値を保持するのがよいね。
java.util.DateがimmutableでないのはJavaの初期の大きな設計ミスだと主張する俺様の登場ですよ
はいさようなら
>>517 >genericsと同じくらい要求はあるが、genericsを遥かに超えるほど反対もある。
そんなに要求は無いと思う.
思うのは簡単だから
>>552 >そんなに要求は無いと思う.
~~~~~
これだからJava厨は・・・
555 :
486 :2005/10/20(木) 10:49:11
遅ればせながらありがとうございます。 無事解決しました。
>>474 まてまて、intはObjectのサブクラスではないが
int[]とObject[]はObjectのサブクラスだぞ
>>554 お前アメリカ人とビジネスすることもアメリカ人と一緒に
研究することも向いていないな。
よく
I think
と書くことはアメリカではよくやることだ。
日本ではなぜか「私は・・・思う」と書くとよくないこととされるが
アメリカでは I thinkとすると他人の意見ではなく自分の意見を
しっかりいっていると高く評価される。
日本でもアメリカの影響を受けてその高く評価される傾向が高まってきている。
それのわからずJava厨がどうだこうだ餓鬼のように喚くとは
>>554 は何と幼稚なことか。
困ったもんだ
558 :
デフォルトの名無しさん :2005/10/20(木) 12:14:57
>>517 >
>>513 > genericsと同じくらい要求はあるが、genericsを遥かに超えるほど
> 反対もある。
> 特別なスーパークラスの派生クラスだけでも演算子オーバーラ
> イドできるといいんだけどな。実際Stringは特別扱いしてるんだし
> Integerとか使うとコードが汚くなるorz
そんな要求はないと思う、というより、
そんな要求もメリットもない。もしそんなものが実装されるとしたら
C#とは全く異なる方法で実装されるだろう。
なぜなら、==とequals()とははっきり区別しなければならないからだ。
==と使って同値判定したい場合とequals()を使って同値判定したい場合と、
複数の要求に応えなければならない場面が出てくる。
==はより厳しく判定し、equals()は限定的な緩めな同値判定するときに使う。
無闇に演算子自動オーバライドされると困った事態に陥る。
==の性質がクラスによって変わってしまうことは混乱を招き考え方が
がらりとかわり、煩雑化し、メンテナンス性悪影響を及ぼすことにつながるからだ。
equlas()はクラスによって性質がかわっても==は一切変わらず
オブジェクトがちょっとでも異なればfalseとなるようにしなければならない。
それによってメンテナンス性は保たれ、バグ増大の原因を生みにくくする効果がある。
C#のような、下手な演算子オーバライドはバグの温床となる。
>>531 わかってないな。Perlだけをしってる香具師の大半はGUIなど
ろくにしらない。スレッドやネットワーキングについても知らない香具師が多い。
型に曖昧な言語を使いすぎているためPerl厨がJavaを使い始めると
かなりドツボにはまることは目に見えている。
560 :
デフォルトの名無しさん :2005/10/20(木) 12:19:37
>>557 何かのコピペか?
まぁ釣りだろうが言っとくと
アメリカでも根拠もなしに自分の意見言っても言っても何の評価もされんよ
〜だから,私は〜と思う。じゃないとな。
ブラウザゲームとはそもそもなんだろう?
>>558 そんな事は知ってる。反対派から百万回聞いた。
だから、プリミティブ型のラッパークラスに対してだけ、限定的にでも
演算子オーバーライドを認めればいいのにって書いた。
て言うか、Stringと同じ様に特別扱いしてくれれば十分なんだけどな。
String = String + Stringに対して、Integer.add(Integer)と書く事に何の
疑問も感じないの?率直に言って気持ち悪くない?
それに、それを言い出すならcloneやtoStringなんかも結構揺れてる。
演算子オーバーライドが無くったって既にフラフラじゃないか。
スーパークラスである程度の実装を見せておいて、それを継承する
側はLSPに従うという既知の原則を守ればいいだけの事。
演算子オーバーライドが上品な人間を行儀悪く変えるわけじゃない。
演算子オーバーライドを取り上げたところで下品な人間が行儀よくな
るわけでもない。世の中には上品な人間と下品な人間が居るという
ただそれだけの事。
>>562 現行と矛盾なくかえるのはかなり厳しくない?
難しいことは解らんが、 TPOをわきまえない下品な人間がどういうことかはよくわかった。
なんかイヤンな空気ですがtarファイルをJavaから編集できるようなライブラリありませんか? tarファイルを開いて中からファイルのストリームが取得できたりtarファイルにファイルを追加するなどしたいです
566 :
sage :2005/10/20(木) 13:21:17
>>533 perlでSDLつかってパズルボブルのゲームあるからドラクエとか余裕じゃない?
ちなみにFrozen-Bubbleね、画面はかなり綺麗よ
Javaで実装されたQUAKE2がCとほとんど同じ速度で動くからJavaでゲームが不可能って時代じゃないね
まぁ情報量が少ないからJavaでゲームは茨の道な気がするけど
>>566 ああ・・commonsにあったのか・・
激しく灯台もと暗し orz
ありがとうございます
569 :
デフォルトの名無しさん :2005/10/20(木) 13:28:30
そもそもString = String + Stringも単純にStringBuffer.append()に展開される訳だし ラッパークラスのオーバーライドなんかプリプロセッサ作れば良いんじゃね? Javaの言語仕様に入れる必要ないと思うが
>>562 > Stringと同じ様に特別扱いしてくれれば十分なんだけどな。
String だけ特別扱いされている方が気持ち悪い、という考え方もある。
(どっちかを否定するというわけではないけど。)
ただ、String に対する特別扱いがいかに馬鹿を増やす温床になっているか
くらいのことはこのスレだけみてもよくわかるでしょ。
571 :
デフォルトの名無しさん :2005/10/20(木) 13:51:11
質問させていただきます。 クラスA クラスB がありまして,クラスBはJFrameを継承しています クラスAがBのインスタンスを生成して,それを表示させた後 クラスBで所要の操作をして,クラスBに配置してあるEXITボタンを押して ウィンドウをdispose()します このときクラスA側でクラスBで処理した結果を取得しようと思うんですが 現在はクラスBのインスタンスを生成したときにwindowListenerをAddして windowClosed()を実装して,そのなかでクラスBの処理結果を取得しています このやり方だとクラスBをdisposeしているのでクラスBの処理結果が得られない場合など が出てきてしまう心配はないのでしょうか? 本当に変な質問の仕方でごめんなさい。
なんか同じような質問どこかでみたな setVisibleやdisposeは描画関係であって クラスの中身自体はdispose後もGCで破棄されない限り普通にいじれる
(V) (V) ミ( ゚皿゚)彡y―┛~~ |__| | | 調子 """""""""""""""""
574 :
デフォルトの名無しさん :2005/10/20(木) 14:51:15
>>571 そもそも、画面の制御とアプリケーションとしてのロジックを分離すればそういう設計にならないよね
575 :
デフォルトの名無しさん :2005/10/20(木) 14:55:36
>>574 そうですね・・・
オブジェクト指向をどのように実現するかが
実際のところ全くといって理解できずにいます...
この場合もまずいとは思いつつも
吊ってきます
>>562 Stringの +とおなじものを使えるようにしろということか
微妙だな。
Integerにadd()メソッドなんかないと思うのだが。
すでにautoboxing&unboxingが使えるので今のところInteger型同士で四則演算しても
問題ないと思うが。
577 :
デフォルトの名無しさん :2005/10/20(木) 15:05:44
>>576 だからこそ、ラッパークラスの子息演算は使える必要が無い。
キャストできるようになったんだからintやlongにキャストして計算しろ
>>569 そこでJakarta Velocityの出番ですよ
これで
>>562 の悩みも解決! 一件落着!
>>570 > ただ、String に対する特別扱いがいかに馬鹿を増やす温床になっているか
> くらいのことはこのスレだけみてもよくわかるでしょ。
そうなのか?
そんなに馬鹿が増えているのかな?
String a = "a";
String a = new String("a");
との違いがわからない香具師のことをいってるのかな?
暗黙のうちにtoString()が呼び出されるとか知らない香具師も多いけど。
ちょっと知識があるだけでエラそうなレスする奴ってメガトン級の痛さですね(><)
581 :
デフォルトの名無しさん :2005/10/20(木) 15:11:14
>>579 こんなの書く奴は糞
String s = "<html><body>" + s1 + "<br>" + s2 + "</body></html>";
>>581 まさにJakarta Velocityがお勧め
>>579 だいたいそんな感じ。
このスレを上に100レスくらい遡っただけでも何人か居そうだし。
このスレのレベルがそもそも低ry
二分割された画面上で、右クリックに合わせてポップアップ表示をさせたいんですが うまくいかないです。 コンパイルは通るけど右クリックになにも反応してくれないです。 原因わかるかたご教授お願いします。 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class My extends JFrame implements MouseListener { JPopupMenu popup = new JPopupMenu(); private JMenuItem addPopupMenuItem(String name, ActionListener al){ JMenuItem item = new JMenuItem(name); item.addActionListener(al); popup.add(item); return item; } public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} public void mouseClicked(MouseEvent e){ if(SwingUtilities.isRightMouseButton(e)){ popup.show(e.getComponent(), e.getX(), e.getY()); } } public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} private void showPopup(MouseEvent e) { Component com = (Component)e.getSource(); if (e.isPopupTrigger()) popup.show(com , e.getX() , e.getY()); }
585 :
584 :2005/10/20(木) 15:39:27
JScrollPane spane1, spane2; JPanel panel; JSplitPane spltpane; private JTextArea textArea; Container cont; public static void main(String args[]) { My window = new My(); window.setSize(800, 400); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.setVisible(true); } My() { super("ポップアップ表示"); cont = getContentPane(); ((BorderLayout)cont.getLayout()).setVgap(5); addMouseListener(this); addPopupMenuItem("Menu1", new ActionListener(){ public void actionPerformed(ActionEvent e){ System.out.println("Menu1 selected"); } });。
int型が入っている配列の2つの要素の位置を交換するにはどういう風に書けばいいの? swap?
587 :
584 :2005/10/20(木) 15:41:27
spane1 = new JScrollPane(); textArea = new JTextArea(); textArea.setWrapStyleWord(true); textArea.setLineWrap(true); spane2 = new JScrollPane(textArea); spltpane = new JSplitPane( JSplitPane.HORIZONTAL_SPLIT, true, spane1, spane2); spltpane.setDividerLocation(300); cont.add(spltpane, "Center"); } } 自分なりに書いてみたコードです。 よろしくおねがいします
588 :
デフォルトの名無しさん :2005/10/20(木) 15:50:32
役に立たないクズ共がぁ!!
590 :
デフォルトの名無しさん :2005/10/20(木) 17:19:20
アノテーションについて書籍などを読んだのですが、 どのようなシチュエーションで役立つモノかが検討つきません。 どんな時につかうものですか??実際、役立っていますか?
java 以外の言語でみると、C# とかの属性が java の注釈と似たような機能なんだけど、 たとえば java.io.Serializable とかの実行に直接的な影響の無いマーカーインターフェイスが、 C# では属性として定義され、使われてます。 けど、ぶっちゃけ自前で実装することは殆ど無い。 大抵 API からの要請でつけるくらいで。
592 :
デフォルトの名無しさん :2005/10/20(木) 17:54:13
質問です。 Vectorクラスの配列を用意して九九を1の段から9の段まで格納しました。 それを利用して 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 32 40 48 56 9 18 27 36 45 54 63 (スペースは見やすいようになので気にしないでください) という様に画面に出力したいのですが。どのようにすればいいのかまったく わかりません。どうか教えてください。お願いします。 宿題ではないです。
>>593 Vector 一個だと 1 次元のデータしか格納できないが九九は 2 次元だよな。
Vector の中に Vector を入れたのかな?
・ループする
・System.out.println()
つか、Vector の格納って必要ないと思うが。 for(int x=0; x<10; x++){ for(int y=0; y<=x; y++){ System.out.print((x * y) + " "); } System.out.println(); }
596 :
デフォルトの名無しさん :2005/10/20(木) 18:59:28
こういうコードを実行してみたのですが double i=0; while(i<1){ System.out.println(i); i=i+0.1; } 結果は 0.0 0.1 0.2 0.30000000000000004 0.4 0.5 0.6 0.7 0.7999999999999999 0.8999999999999999 0.9999999999999999 こんなことになります。どうして0.1づつ増えないのでしょうか、どうか教えてください。
>>594 初心者なもので、もう少し詳しくお願いします。
Vector[] vec = new Vector[9];
このようにして。index0から8までに一段ずつ格納しました。
その先がわかりません。
>>595 Vectorを使うことに意味があるのです。
>>596 機械イプシロン、精度、実数などでぐぐってみることをお勧めします
>>598 for(int i=0; i<vec.length; i++){
for(int j=0; j<vec[i].size(); j++){
System.out.print(vec[i].getElement(j) + " ");
}
System.out.println();
}
602 :
デフォルトの名無しさん :2005/10/20(木) 19:32:29
>>597 >>599 なるほど、有限の浮動小数点だと二進数と十進数じゃきっちり対応しないということですね
ありがとうございました。
603 :
デフォルトの名無しさん :2005/10/20(木) 19:38:44
>>600 どうもありがとうございます。
public class mmVector {
public Vector ve[] = new Vector[9];
public StringBuffer sb;
public void mm(){
for(int i = 1; i <= ve.length; i++){
sb = new StringBuffer();
for(int j = 1; j >= ve.length; j++){
sb.append(i * j);
}
ve[i].addElement(sb);
}
}
NullPointerExceptionが出るのですがなぜでしょう?
教えてください。
文字化けについて書かれているサイトって教えていただけませんか
605 :
593 :2005/10/20(木) 19:40:19
>>601 私もそれを見てあっ!と思ったのですが、
別人なんです。信じてくれますか?
ve[i] = new Vector(); がない
607 :
デフォルトの名無しさん :2005/10/20(木) 19:43:36
一つ前のJavaのUpdateは削除してもOKですか
608 :
593 :2005/10/20(木) 21:07:34
>>600 その方法で九九を表示させることはできましたが、
>>593 のように表示させるにはどうしたらよいのでしょうか?
宿題でないなら目的は何?趣味で九九を入れてるの? 方法はいくらでもあるから何が正しいとか正解とかないわけよ 答えだけ求められてると宿題以外に聞えないよ 答え:DecimalFormat("##0").format(value)
>>605 別人かもしれんが宿題なのは確定だな。
ウソつくヤツには教えたくないね。
>>593 だが、別のところで全く同じ質問を見かけたことがある。
何かの本の問題なんじゃないか?
もう終わってるみたいだけど演算子のオーバロードがしたい人はGroovyおすすめ。
>>590 Eclipse3.1とかを使ってみればわかるよ。
オーバライドメソッドを実装していれば@Overrideをつけろと
警告してくる。
@Overrideとか@depricatedは超便利。
使ったことはないけど、
ほかにHibernateやJBoss AOP, EJB3.0などに役立つね。
今までアノテーションができるまでは@depricatedはJavadocコメント上に置かれていた。
XdocletもJavadocコメント上に置かれた@で始まる文字列を解析してソースコードを
自動生成するというものだった。それがアノテーションによって
Javadocコメントの一部ではなくJavaコードの一部として機能したためコンパイラがしっかりと
チェックしてくれるようになり非常に便利になった、ということかな。
警告を出して欲しいときに出す
逆に@Supresswaringによって警告を無視してくれるなど役立つ場面は多い。
>>603 まるっきり教えてもらってんじゃねーよ 馬鹿!
すこしロジック考えて「こんなんどうですか?」
ぐらいやってみろ。
>>605 >
>>601 > 私もそれを見てあっ!と思ったのですが、
> 別人なんです。信じてくれますか?
なんか嘘臭いなあw
投稿時刻からして宿題スレのほうが二時間半ほどレスが早いしなw
怪しいぞw
そもそも こんな簡単な問題も解けないなんてなw ちったあ頭仕えや坊主
>>610 の言うとおりやっぱり宿題だったんだな。
同じ教官に出された課題を別人が質問していた可能性があるわな。
Vectorなんて使ってるところが、
いかにも時代に乗り遅れた古くさそうな教官の指導を受けていることを伺わせてくれる。
public static void main(String[] args) throws Exception { final long NT = System.nanoTime(); final long CTM = System.currentTimeMillis(); while(true) { long ctm = System.currentTimeMillis(); long nctm = CTM + (System.nanoTime() - NT) / 1000000; // ミリ秒 ナノ秒 開始時刻 System.out.printf("%1$tT.%1$tL %2$tT.%2$tL %3$tT.%3$tL\n", ctm, nctm, CTM); Thread.sleep(1000); } } これずっと動かしてるとnanoTimeで計算してる方が少しずつ進んでいくんだけど、何か間違えてる?
622 :
619 :2005/10/21(金) 03:42:38
>>621 数時間動かしてたらnctmの方が100msec程度進んでたのよ。
原因がどうとか詳しい事はさっぱりだが 逆だろ進む事はないだろ
クイックソートの基準となる値ってのはどうやって決まるの?
625 :
デフォルトの名無しさん :2005/10/21(金) 10:36:30
そもそもn秒が正確に算出できるマシンってあるのか?
>>624 勝手に決まるわけ無いだろ
自分で決めるんだよ
決め方には何通りかある
・配列の1番目
・配列の最後
・配列の真ん中
・ランダム
・ランダムで複数取得して、その中間値
などなど
627 :
デフォルトの名無しさん :2005/10/21(金) 13:21:27
質問します 今ユーザーとやり取りしながら処理を行うシステムを考えているのですが このときのUIと実際に処理を行うクラス(コントロールクラス)との関係を どう実装していいのかが分からず困っています. ユーザーからの要求をUIが受け コントロールクラスないの処理を呼び出す形になると思うのですが この場合UIにメンバとしてコントロールクラスを持たせてもいいのでしょうか?
628 :
デフォルトの名無しさん :2005/10/21(金) 13:45:27
それでいいんじゃないですか。 というか、メンバとして持たせないと、UIからコントロールクラスにアクセス出来ない気がします。 # あ、ひょっとして内部クラスとしてコントロールクラスを実装するって話?
629 :
デフォルトの名無しさん :2005/10/21(金) 14:41:47
>>628 有難うございます!
最初で躓いてしまって苦悩してたんです
あと,内部クラスではないです
630 :
デフォルトの名無しさん :2005/10/21(金) 14:57:19
>>627 UIが遷移しないのか?
もしするならそのコントロールクラスはUI遷移ごとに渡すの?
それならコントロールクラスがUIクラスを持った方が良いような気もする
631 :
デフォルトの名無しさん :2005/10/21(金) 15:59:08
JDKをインストールしないといけないんですが、 JDKってJ2SEと別物? J2SE入れれば、JDK入れたことになりますか? 教えて下さい。宜しくお願いします。m(_ _)m
633 :
デフォルトの名無しさん :2005/10/21(金) 16:26:18
>>630 根本的に間違ってる気がするのは気のせいだろうか・・・
634 :
デフォルトの名無しさん :2005/10/21(金) 16:32:09
>>630 UIって言ってるのがawtとかswingなら
UIとロジックをシングルトンなブリッジでつないどきゃ良いんじゃね?
>>631 > JDKってJ2SEと別物?
別物。J2SE(Java2 Standard Edition)とは、標準仕様・標準規格の名前。
Java2 Standard Edition SDK(JDK) は、Java2 Standard Edition仕様に沿って実装された実行環境と開発ツールのセット。
> J2SE入れれば、JDK入れたことになりますか?
J2SEは仕様を指す言葉でしかないので、「入れる」という概念が存在しないから、答えはNO。
ねぇLinuxでJava使用したいんだけど、どうやってインストールするの? 本買ったら、Windowsのインストールは書いてあるんだけど、Linuxのやり方が書いてなかった。
公式からダウソしてインストールすりゃいいじゃん
>>636 言語の一つもインスコできない人間がLinuxなんぞry
公式って
>>632 の所でいいのかな?
本かったらCDついてて、XPではそれでインストールしたんだけど
パス変数とかを変更しないといけなかったんだけどLinuxはその辺の設定もんだいないのかな?
>>638 仰るとおりでLinuxもFedorecore3を入れて基本アップデートしただけで使い方が分かってないんだよね。
でも一緒に勉強して使って見たいと思って本買ったんだけど、やる気だけが空回りしてトホホです。
なんでできないものを一緒にやろうとするんだ。 片方ずつやればいいじゃない。
>>639 どの道pathの設定はしないとだめだろ
それも本当に仰るとおりなんだけど、
学校とか職場とか何も絡んでないから、普通に生活してるとLinux触らないでも困らないんですよ。
どうせなら、Linuxを覚えながらJavaも触りたいなぁと素人の欲目なんだよね。
>>639 やっぱ設定しないといけないんですか。そこの項目すら分からないからやっぱだめだな。
もう少し自力で調べたほうがいいですね。なんか愚痴みたいですいませんでした。またROMにもどります。
643 :
デフォルトの名無しさん :2005/10/21(金) 18:40:50
結論はやっww ROMなくてもいいだろうに
644 :
デフォルトの名無しさん :2005/10/21(金) 18:52:01
オブジェクト思考言語の意味を誰か教えてくれませんか?
import宣言に関する質問です。 foo.bar.Class1 foo.bar.Class2 という2つのクラスが存在し、これらのクラスを、 foo.ClassA でインポートして使いたい場合に、ClassAのimport宣言部分では、 import foo.bar.Class1; import foo.bar.Class2; とすべきなのか、それとも import foo.bar.*; でまとめてしまっても良いのでしょうか?
647 :
デフォルトの名無しさん :2005/10/21(金) 18:58:46
>>645 いずれ別の用途に使うことを考えているならimport xxx.*は使うべきではない
演算子オーバーロードは別にいらないけどBigIntegerとBigDecimalは演算子使えるように特別扱いしてほしい
>>646 2つ3つなら分けたほうがいいが、何十個も並べられたら見にくくなって激しく逆効果なので
そこは臨機応変に対応したほうがいい。
>>648 俺もBigDecimalだけはやってほしい
業務系やってる人ならみんな思ってるはず
新人の書くコードがこわいしな
平気で a = b *1.5みたいなの書くからな
(ここでは a も b も int)
652 :
デフォルトの名無しさん :2005/10/21(金) 21:49:46
JButton型の配列button[]に、 for文を使ってアクションリスナを登録したいのですが、 どうすればいいでしょうか?
ループ buton[i].addActionListener(リスナ);
654 :
デフォルトの名無しさん :2005/10/21(金) 22:19:25
class cls{ public void func(){ System.out.println("test"); } } class test{ public static void main(String args[]){ cls a[]=new cls[3]; a[0].func(); } } なぜかこのようにクラスの配列のメソッドにアクセスしようとするとエラーが出ます。 コンパイルは正常にできるのですが、実行すると Exception in thread "main" java.lang.NullPointerException at test.main(test.java:9) とエラーが出てきます。 誰か原因解る方教えてください
656 :
デフォルトの名無しさん :2005/10/21(金) 22:25:18
>>655 解決しました!!
とても解りやすい説明ありがとうございます!!
657 :
デフォルトの名無しさん :2005/10/21(金) 22:36:03
>>653 あの、それだとループの変数は、ループの外に出ると
自動的に削除されるのでできないのですが・・・
他にどうしたらよろしいでしょうか?
>>657 されないよ。先ずは試してみるのが良い。
>>657 forで宣言した変数なら確かにそうだがそれが問題なら普通にforの前で宣言すりゃいいだけじゃね?
660 :
デフォルトの名無しさん :2005/10/21(金) 22:50:43
>>658 失礼しました。
JButtonでなく、JLabelの間違いでした。
現在、
for (int i=0; i<label.length; i++){
label[i].addMouseLMouseListener(new MouseAdapter(){
public void mouseReleased(MouseEvent e){
}
public void mousePressed(MouseEvent e){
}
label.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent e){
}
}
}
という風にやっているのですが、コンパイルできません。
「ローカル変数iは内部くらすからアクセスされます
finalで宣言される必要があります」
というエラーがあります。
座標の位置を記憶する変数をマウスリスナの中で呼び出しているのですが、
それが原因でしょうか?
エラーメッセージのままでは? リスナのメソッド内部でループ変数参照してません?
>>660 そのコードだと括弧の対応がそもそも合っていないからコンパイルできないんだけどけど、
確かにローカル変数は final でないと匿名クラスからアクセスすることは出来ないね。
この場合は、JLabel を継承して独自のラベルを作成するか、
またはイベントリスナを共通にして、リスナ側でどのラベルが押されたか判断すると良いよ。
ちなみに、座標の位置は JLabel.getLocation() で取得できる。
エラーメッセージのままでは? リスナのメソッド内部でループ変数参照してません?
664 :
デフォルトの名無しさん :2005/10/21(金) 23:10:16
>>661 >>662 アドバイスありがとうございます。
お示しくださったとおりで、メソッド内でループ変数を参照しています。
どうしても、ループ変数と同じ数値を使いたくて駒っています。
そこで、変数をループ外に用意するという方法を思いついたのですが、
具体的にどうしてよいかわかりません。
方法があれが、ご教授いただけないでしょうか?
for (int i = 0; i < ・・・) { final int n = i; // 内部クラスから参照できるようにfinalに label[i].add・・・ } エラーメッセージどおりfinal変数にすればいいだろ。 内部クラスからはiの代わりにnを参照するようにする。
二度打ちスマソ 参照出来ない理由はforループ内部で宣言したからではなく、ローカル変数だからです。 for(final int i = ... のように宣言すればリスナのメソッド内部から ループ変数を参照できます 今携帯からなのでコード書けません 無名クラス ローカル変数 参照 でググれば参考になるコードとか解説が見つかると思います。
つーか、へんなことするくらいならインナークラス辞めて 普通にコンストラクタで引数を受け取るようにすればいいだけだろ
>>666 final 変数をどうやってループ変数にするつもりなんだか。
マターリいこーぜ 右も左もわからないままグイなアプリ作ろうとすると 参考になりそうなコードが大概無名クラス使ったスタイルで書かれてるわけで。
>>666 まて。
for(final int i = 0; i < labels.length; i++)
がマトモに通るとは思えないんだが;
ごめん チョー適当な事書いてました 無名クラス調べてね でやめときゃよかった 鬱
相変わらず解答者のレベル高いな (・∀・)
>>672 回答者じゃなくて「解答者」というところがポイントだね(・∀・)
各メソッドの行数を数えてくれるツールないですか? eclipse のプラグインだとなおいいんですが。
は?
>>635 >> J2SE入れれば、JDK入れたことになりますか?
>J2SEは仕様を指す言葉でしかないので、「入れる」という概念が存在しないから、答えはNO。
前提が成立しない場合は命題は真になる。ゆえに答はYES
チャチャスマソ
677 :
デフォルトの名無しさん :2005/10/22(土) 09:28:31
同一パッケージ内のクラスで、メソッドを共有したいので、static protected のメソッドを作成するのは間違いなんですか?先輩にそういわれたとです。
インターフェースで良いじゃん
>>677 staticである理由は?
protectedである理由は?
同一パッケージ内限定ならデフォルトアクセスでいいじゃん。
インターフェースじゃ駄目だな
>デフォルトアクセス パッケージプライベートな
どっちでも良いと思う。
あるメソッドに、特定パッケージ外で使用して欲しくない場合どうするべきでしょうか。 アノテーションとかでは何ともならないみたいで・・・・ /** * このメソッドはcom.xxxxx.core内でのみ使用してください */ public boolen checker(Object arg) { // }
>683 せめて一つ二つ上のレスぐらい読めんのか
>アノテーションとかでは何ともならないみたいで・・・・ アノテーションがなにするものかわかっている人間だったらこんな質問しないべ アノテーションもよくわかっていないようだ
どうでもいいんだけど、「特定クラスからのみ呼び出されることを保障した公開メンバ」 みたいなアクセス制限が欲しい。
687 :
683 :2005/10/22(土) 13:23:47
>>684 パッケージ可視だと、配下になっちゃうからcommonパッケージを切れないので。
>>685 コンパイルやクラスロードのタイミングで開発者にクラスやメソッド等の
付加的な情報を提示するものだと思ってたのですが・・・
>>686 それをやるとしたらどうなるんだろう?
例えば、mypackage.A、mypackage.Bクラスからのみ呼び出し可能な公開メソッドの場合
public(mypackage.A,mypackage.B) hoge() {}
とか?
A、Bクラスから呼び出されてはいけない場合
public(!mypackage.A,!mypackage.B) hoge() {}
特定パッケージから呼び出されてはいけない場合
public (mypackage.*) hoge(){}
>>683 ソースレベルで何をやるのかわからないけれども
内部クラスで君のやりたい事はできないか?
public classA{
private classB{}
}
>>687 パッケージ可視だと、配下になっちゃうってどう言う事?
commonパッケージってなんすか?
>>686 ,688
コンパイル時に解決したい場合:
アノテーションとそれを解釈するツールをうまく作れば可能だと思うよ。
その他、AspectJみたいなAOPでも可能だと思うよ。
実行時に解決できればよい場合:
メソッド内でnew Exception().getStackTrace()を使って
呼び出し元を判別してやれば可能。
692 :
686 :2005/10/22(土) 13:48:10
>>691 アノテーションがよさげだな。別なクラスから呼び出されていると、コンパイルは通るけど警告出るような感じ。
javac 対応してくれないんかなぁ。
アノテーションだと、apt じゃなくて javac 使われただけで意味が無くなるような気もする。 実行時にもチェックとかすんなら話は別だけど。
apt についてドキュメント見てた。検出したいだけならこれで十分のような気もする。 注釈ついたメソッドを呼び出している場所を参照できるのかなこれ。 できるのなら暇をみて作ってみようとおもう。
mouseDraggedについての質問です。 1秒間あたりというかある一定時間内に転送できる回数 っていうのは決まっているのですか? 今、ペイントアプレットを作っているのですが、 すばやくドラッグして描いた時に点線になってしまいます。
>>694 Mirror API の Visitor は宣言部分しか visit してくれないみたいだから
注釈ついたメソッドが何処で呼ばれてるかは自分で解析するとかしないとダメなんでは?
そーいや compiler API って 1.5 からだっけ?
>>695 どういうソース書いているかわからんけど
ポインタの位置再評価の間隔が長いだけ CPUの速度とかも関係あるかもね
ポインタの位置読み取ったタイミングで、前回読み取った位置までLine引くというのが一般的な方法
そのあと、そのLineをどこまで自然な曲線にするかはいろんな方法があるが
698 :
695 :2005/10/22(土) 15:08:42
>>697 なるほど、そういうことですか。
自分はペン先を●と■で任意の太さでかけるようにするため
fillOvalとfillRectを使ってます。
ソースに誤りが無いかもう1度見直して、
補完する方法を考えてみます。
ありがとうございました。
699 :
694 :2005/10/22(土) 16:25:25
色々考えたけど、やっぱり難しいね。 一番簡単なのは、RUNTIME な注釈で public メンバのアクセス許可クラスを指定しておいて、 コンパイル済みの class ファイルを片っ端から逆アセンブルして、リテラル文字列から使用状況を判断しチェック&レポート。 ソースレベルから判断するとなるとコンパイル前にチェックできるけど、結構骨折れる作業になりそう。 リファクタリングツールを1つ作るくらい面倒だよ。
700 :
デフォルトの名無しさん :2005/10/22(土) 16:38:59
JAVAであるwebページをIEで開くには どうすればいいのでしょうか?
「JAVAであるwebページ」ってなんだ?
JAVA(からの制御)で、あるWebページをIEで開く ではないかとエスパーしてみる
703 :
デフォルトの名無しさん :2005/10/22(土) 16:59:45
JNIだな
705 :
デフォルトの名無しさん :2005/10/22(土) 17:10:50
JNIってのでできるのですか? C/C++言語を呼び出す方法って 書いてありましたけど。
その前に聞くが、アプレットを作っているのかアプリケーションを作っているのか。
707 :
デフォルトの名無しさん :2005/10/22(土) 17:15:10
アプリケーションです。 初心者なもんですいませんm(__)m
JNIなんか関係なく単にiexplorer.exeを起動すればいいだろ
709 :
デフォルトの名無しさん :2005/10/22(土) 17:32:43
>>708 どうすればiexplorer.exeを起動できるんですか?
処理ごとに別々のwebページを
開きたいのですけど。
Runtime#exec("about:blank"); これで出るんじゃない?制御はしんどいと思うよ msのvmにはあったよねcomがらみ操作の敗訴パッケージ
711 :
デフォルトの名無しさん :2005/10/22(土) 17:54:20
Runtime#execでテストしてみましたけど、 スタートページしか開けません
712 :
デフォルトの名無しさん :2005/10/22(土) 18:11:11
http://developer.apple.com/ja/qa/java/java12.html にのってました。
コンパイルしてみましたがエラーがでます。
C:\>javac ExeExternalProcess.java
ExeExternalProcess.java:40: '.class' がありません。
Runtime.getRuntime().exec(newString[ ] {browserName, url});
^
ExeExternalProcess.java:40: ')' がありません。
Runtime.getRuntime().exec(newString[ ] {browserName, url});
何がいけないのでしょうか?
>>712 その直前が間違ってるよ。キーワードが色分けされる環境を使ってれば一発で分かる。
714 :
デフォルトの名無しさん :2005/10/22(土) 18:38:22
>>713 直前に } などが抜けているってことでしょうか?
715 :
デフォルトの名無しさん :2005/10/22(土) 18:46:09
Tomcat4上で動かしているサーブレット(正確にはAxisのサービス)でクラスローディングをしているのですが WEB-INF/libの中においてあるjarファイル内のクラスが正しく解決されません。 例 ClassLoader loader = ClassLoader.getSystemClassLoader(); try { loader.loadClass("foo.bar.xxxxException");←/WEB-INF/lib/xxx.jar内のクラス } catch (ClassNotFoundException e1) { e1.printStackTrace(); } とすると、ClassNotFoundExceptionが発生してエラー 対象のクラスは普通に宣言して使用する分にはまったく問題なく使えています。 自分としては、各サービス用のクラスローダーがあって、それを取得して、それのloadClass を使う、というような方法で解決できるのではないだろうかと思うのですがあたってますで しょうか?また、あたっているとしたらそのクラスローダーのインスタンスの取得方法はどのようにすれ ばよいでしょうか? どなたかご教授下さい。よろしくおねがいします。
>>714 newString じゃだめ。new String じゃないと。
717 :
デフォルトの名無しさん :2005/10/22(土) 19:08:27
>>716 new Stringにしてもまたエラーがでます・・
C:\>javac ExecTest.java
.\Runtime.java:6: クラス ExecTest は public であり、ファイル ExecTest.java で宣
言しなければなりません。
public class ExecTest extends Frame
^
ExecTest.java:40: Runtime にアクセスできません。
クラスファイル .\Runtime.java は不正です。
ファイルにクラス Runtime が含まれていません。
削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。
Runtime.getRuntime().exec(new String[ ] {browserName, url});
>>717 下は無視。上のエラーについて、言われたようにすれば良いと思うよ。
お? いやクラスパスの設定が誤ってる希ガス。
>717 作業ディレクトリをかえて心機一転作業しよう、たぶん解決する それとC:\がちらかってると気分わるくならない?
721 :
デフォルトの名無しさん :2005/10/22(土) 20:02:42
>>720 できました!!
どうしてディレクトリを変えたらできたのでしょうか?
本当にありがとうございました!
助かりました。
ルートディレクトリで作業してたのが問題
>>722 ExecTest.javaのフルパスしていでも動くか?
>>648 ,650
だからJakarta Velocityを使えとあれほど(ry
なんでVelocityなんだ?
726 :
デフォルトの名無しさん :2005/10/22(土) 22:24:13
メソッドやらクラスやらの概念からしてさっぱり分からないんだけど、 こんな俺にも分かりやすく解説してるサイトとかないっすか?
MVC(Model、View、Control)にそってコーディングするときって 皆VがCを持つ形にしてます? それともCがVを持つ形にしてます? 参考書とかではCとMとの関係は書いてあるんですが それにVがどう絡めてよいのか良く分らなくて
>721 たぶんカレントにRuntime.java なるものがあったと思う、それテストしたかなんかじゃない? そんでそいつの中身はExecTest.javaと同じとかそんなん? もし違ったら上手くいったのは助言関係なく偶然だよ
>>727 Javaped(ry
なら少しはありえるかも
731 :
デフォルトの名無しさん :2005/10/22(土) 23:16:15
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class sample1 extends HttpServlet{ public void doGet(HttpServletRequest req,HttpServletResoponse res) throws IOException,ServletException{ res.setContentType("text/html"); PrintWriter out=res.getWriter(); out.println("<html><head>"); out.println("<title>Hello Servlet!</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Hello Java Servlet!</h1>"); out.println("</body></html>"); } } コレどこか間違ってます?サーブレットの初期設定のヤリ方がいまいちわかんなくて四苦八苦してます・・・・・助けて
>721 予想はずれてたら恥かしい発言になるけど ダメな理由は C:\Runtime.exe C:\java\lang\Runtime.exe と存在して C:\> Runtime と打ったら実行されるのどっちかって事で だからjava.lang.Runtimeって表記ならいけたと思うよ >731 717見習え、設定ができないのになぜServlet晒すの ダメと言われたのなら同じの見せてくんないと無理だと思うよ
733 :
デフォルトの名無しさん :2005/10/22(土) 23:27:27
JAVA超初心者です。 先日リカバリをかけたら実行できなくなりました。 助けてください。 Exception in thread "main" java.lang.NoClassDefFoundError: HelloJava という、おなじみのエラーです。 現在の状況は以下のとおりです。 ファイル名:HelloJava.java、HelloJava.class 環境:WinXP Java2SDK1.4.1使用 環境変数の設定:PATH→;C:\j2sdk1.4.1_07\binと入力 CLATHPATH→デフォルト プログラム内容: class HelloJava{ public static void main(String[] args) { System.out.println("Hello World!"); } } 以前もCLASSPATHは、デフォルトではエラーになりましたので、 「.」を入力するというアドバイスを受け、実行することができました。 リカバリをかけた後、また同じ設定をしてもだめでした。 デフォルトに戻してもダメ・・・ コンパイルはできてます。 ソース、クラスファイル共に同ディレクトリにあり、同名であることを確認しています。
734 :
デフォルトの名無しさん :2005/10/22(土) 23:28:42
そんな事言わずに教えて下さい
>>733 >環境変数の設定:PATH→;C:\j2sdk1.4.1_07\binと入力
此処本当にあってるのか?
仕事の関係上JAVAを学ぶことになりました。 これからこちらでお世話になることもあるとは思いますが、 よろしくお願いいたします。 いつかここで教える立場になれることを目指したい・・・
737 :
デフォルトの名無しさん :2005/10/22(土) 23:49:14
>>735 本どおりにやってみたんですけど。
スペルも何度も確認して。
なにかほかに入れるもの、ありますか?
738 :
デフォルトの名無しさん :2005/10/22(土) 23:52:22
>>735 733です
あれは最後に付け足したんです。
もともと入ってたやつの後に。
とりあえず
>>1 のサイトの方法は全て試したんだよな?
>>733 あのさ、環境変数もひとつの手だけど
cd <Hello.classの存在するディレクトリ>
java -cp . Hello
でいけるだろ?
これでいけなかったら知らん
741 :
デフォルトの名無しさん :2005/10/23(日) 00:22:45
742 :
741 :2005/10/23(日) 00:27:17
すいません誰か教えて下さい。表示できないんですよ
俺は表示されるよん
744 :
デフォルトの名無しさん :2005/10/23(日) 00:32:27
>>739 全部見て、ほとんど全部確認しました。
パス・クラスパスの設定ってとこ以外は。
「コマンドプロンプトでCLASSPATHをset CLASSPATH=%CLASSPATH%;.と設定」とありますが、
万が一実行がうまくいかなかったとき、どうやって元に戻すか分からなかったので。
745 :
741 :2005/10/23(日) 00:33:42
>>743 なんででしょうか?設定のやり方ですか??
746 :
デフォルトの名無しさん :2005/10/23(日) 00:34:04
>>740 それをやってみても同じ結果でした。
ちなみに、それってなんなんですか?
>>745 つ [Apache] + [Tomcat]
748 :
741 :2005/10/23(日) 00:45:25
>>747 それちゃんと入れてるんですよ。組み合わせ??
>>748 組み合わせてなくても Tomcat だけでいけたような気がするが……。
へんな FireWall とか使ってない?
Tomcatだけで動かすならlocalhost:8080だろうが もしApacheとTomcatを「ちゃんと連携させて」動かせてるなら localhost:8080じゃなくてlocalhost:80なんじゃないか?
>>741 まず
netstatでポーと開いてるのか調べろ
752 :
741 :2005/10/23(日) 01:39:49
すいませんでした。解決はしたのですが、ディレクトリやパスの設定がいまいち意味不明です。サーブレット&JSPって難しいんですね。学校ではできたのに
>>741 基本を理解しないで先に先に行きたがるからそんなことになる
754 :
741 :2005/10/23(日) 01:43:25
type Status report message /java/sample/WEB-INF/classes/sample1 description The requested resource (/java/sample/WEB-INF/classes/sample1) is not available. -------------------------------------------------------------------------------- Apache Tomcat/4.1.31 こんな感じになっちゃいますよ〜〜〜どうしよ。かれこれ四時間くらい格闘してます!!!(涙)
755 :
741 :2005/10/23(日) 01:47:07
type Status report message /examples/servlet/sample1 description The requested resource (/examples/servlet/sample1) is not available. -------------------------------------------------------------------------------- Apache Tomcat/4.1.31 またですよ(涙)
757 :
741 :2005/10/23(日) 01:55:16
それじゃダメですよね・・・表示されない。 HTTP Status 404 - /servlets-examples/servlet/HelloWorldExample -------------------------------------------------------------------------------- type Status report message /servlets-examples/servlet/HelloWorldExample description The requested resource (/servlets-examples/servlet/HelloWorldExample) is not available. -------------------------------------------------------------------------------- Apache Tomcat/4.1.31 こうなっちゃいます。どうしたらいいですか?
>>741 それは、普通であればTomcatインストール時に利用可能なサンプル画面です
それが動かないのはおかしいなぁ・・・
Tomcatのzipのほう落としてきて、別のフォルダにインストールして確認してみろ
759 :
741 :2005/10/23(日) 01:58:06
はい!わかりました!
つうかそもそも環境を書いとけよ Windows? JDK1.4? 最初にインストールしたのはexeタイプ?
761 :
741 :2005/10/23(日) 02:01:10
Windowsです。JDK1.5?です。多分exeです。。
762 :
741 :2005/10/23(日) 02:04:08
StartTomcatってのをダブルクリックするとすぐ画面が落ちちゃいます・・・
763 :
741 :2005/10/23(日) 02:07:42
どうすればいいんだあ〜〜〜〜〜〜〜!!!!!!
764 :
741 :2005/10/23(日) 02:09:51
寝るしかないか・・・
CATALINA_HOMEをいじっちゃったとか
766 :
デフォルトの名無しさん :2005/10/23(日) 02:32:08
>>741 ログファイルぐらい見れないのか?
それから、新しくTomcatインストールしたんなら
最初の奴は落としとけよ
768 :
741 :2005/10/23(日) 10:51:05
表示できないっす・・・・鬱だ
つーかすれ違い。
>>768 鬱とか無意味な情報提供はいいから
とりあえずインストールの手順を解説したページを参考にやってみれ
んで、参考ページとどこまで正しくできたか報告
あとエラーは詳細に報告しる
画面が落ちるとか意味がわからん
あとTomcatのログも提出
ちなみにTomcat4.x系でJDK1.5だとJSP関係が動かないはず
>表示できないっす・・・・鬱だ 早く環境書いてね Tomcatのログファイルの場所はzip形式なら logsフォルダの中にある
772 :
741 :2005/10/23(日) 11:46:18
JDK1.5だからだ!!!それを削除すればいいんですね!やってみます!
普通はTomcat5のほう使うけどな
セキュリティホール見つかってるんだしTomcat5つかえよ
>>699 クラスファイルを解析すんなら CLASS な注釈で良いのでは?
クラスをロードしてから reflection とか使ってチェックすんなら RUNTIME にしないとダメだけど。
776 :
デフォルトの名無しさん :2005/10/23(日) 14:26:53
質問です。 ループを使ってVectorの配列[0]から[8]までにVectorのインスタンス、 [9]から[16]までにStringBufferのインスタンスを格納する にはどうしたらよいのでしょうか? (Vectorの配列を使ってインスタンスを一まとめに扱いたいのです) 必要ようなメッソドはすべて部品化したいです。 教えてください。
ふつうVectorの配列にStringBufferは入れられないだろう。
>>777 >ふつうVectorの配列にStringBufferは入れられないだろう。
え?
779 :
デフォルトの名無しさん :2005/10/23(日) 14:35:24
色んな物をvectorに突っ込む。すばらしいパターンです。
>>778 Vector[] vectors = new Vector[16];
vectors[0] = new Vector();
vectors[9] = new StringBuffer();
782 :
776 :2005/10/23(日) 14:37:58
>>780 あんまりやらないほうがよいのでしょうか?
戻り値が二つになっちゃってどうしようかと悩んでます。
RMIの一連の開発環境構築方法しっているよなぁ?
>>782 うーん、俺はよくやるけど、でもStringとStringBufferではやったことない。
ま、だめって事はないと思うよ。
785 :
デフォルトの名無しさん :2005/10/23(日) 15:30:46
例外を発生させ、catchで補足せよ。 とは、catchで例外を表示すれば良いのでしょうか? 補足というのが良く分からなくて・・・
786 :
776 :2005/10/23(日) 15:47:53
>>784 Vectorの配列を準備するメソッドを別クラスでつくった場合
具体的にはどのようにすればよいのでしょうか?
Vectorあまり使ったことないのでよくわかりません。
Vector型の配列を戻り値で返してやる必要があるのでしょうか?
javaer黄金パターン vector method(); tyr{ } catch(Exception ex) ex.printstacktrace();{ }
相変わらず解凍者のレベル高いな (・∀・)
tyr
790 :
デフォルトの名無しさん :2005/10/23(日) 16:07:37
補足せよとはcatchすればのでしょうか
>>776 Objectの配列ならいれることはできるが、
明示的なキャストが必要なので
実行時バグの温床となると思う
VectorとStringBuilderのどちらかを格納するクラスを作って
それの配列にするしか
でも、大概設計がおかしいということに気がついて欲しい
うは、牛丼と鉄火丼混ぜて一つのどんぶりで出すってのも 奇をてらってていいかもね。 俺は店員をぶん殴るけどねw
793 :
741 :2005/10/23(日) 16:45:11
質問です。TOMCAT5.0を落としたのはいいんですが、スタートアイコンとストップアイコンが見つかりません。どうやって探すのですか?
794 :
741 :2005/10/23(日) 16:48:04
すいませんが教えて下さい。。。学校の勉強ができないのです。。家で
何のために金払ってんだよ、ボケが 先生に聞けや
796 :
741 :2005/10/23(日) 16:54:04
インストールかアップデートできないんですよ。どうすりゃいいのさ・・・・・・
>>776 もう少し話が具体的にならないと何とも言い様がない。
一体、何をどうしたいの?
798 :
デフォルトの名無しさん :2005/10/23(日) 17:28:49
>>776 なんでVector<StringBuilder>とVector<Vector>の2つのオブジェクトを
所有するクラスを作るとか、そういう発想にならないのか教えてくれ。
799 :
デフォルトの名無しさん :2005/10/23(日) 17:55:36
プロパティを読み込んで一意に格納しておきたいのですが、 格納用クラスを用意して、そこにstaticフィールドを用意しておき、 怠惰な初期化を行うのがいいんでしょうか。 もっと良い方法があったら教えて頂きたいのです。
>>784 うるせーバカ。おまえ30才超のプログラマまたは学生プログラマだなwww
801 :
741 :2005/10/23(日) 18:20:14
HTTP Status 404 - /servlets-examples/servlet/HelloWorldExample -------------------------------------------------------------------------------- type Status report message /servlets-examples/servlet/HelloWorldExample description The requested resource (/servlets-examples/servlet/HelloWorldExample) is not available. -------------------------------------------------------------------------------- Apache Tomcat/4.1.31 これを解決するにはどうしたら良いんだ~~~~!!!!!!!!!!!!!!!!!!わからん。発狂しそうだ
>>741 それはTomcat5の話?
ブラウザのエラーではなく
logs/の中にあるログファイル晒したほうがいいと思うよ
>>799 そういうのはPropertyBeanを書くのが定石。
いつからこのスレはTomcatのスレになったんだ? 聞く方も答える方もウザいんだけど
805 :
741 :2005/10/23(日) 19:00:28
ログファイル長すぎて晒せません。分割してみます
此処駄目だな @ITに戻るわ
807 :
質問です。 :2005/10/23(日) 19:16:12
JPEGを読み込んでRGBの値を得るプログラムを教えてください。
808 :
784 :2005/10/23(日) 19:21:35
よく見たら、StringBufferとVector型を入れたいって話だったのか。。 勘違いしてた。 なんで、こういうことやりたいって思ったのかねぇ?
他のプログラムを走らせて そのプログラムが終了したかどうかを検知する方法を知りたいのですが どのような方法があるのでしょうか?
>>809 Runtime.exec() で走らせて、特定スレッドで waitFor() するとか。
スレッドが isAlive() で生きてれば実行中、死んでればプログラムは終了した。
>>810 なるほど
ProcessにはListenerが無かったので如何すればと悩んでました
ありがとうございました
waitFor()よりストリーム監視したほうがいいかも
質問です。下のコードの while で一定時間が経ったら例外を投げたいのですが 何か良い方法はありますか? ただし while の中身はいじれないとして。 public class SyncTest extends Thread { private String title = null; public SyncTest (String str) { title = str; } public static void main (String args[]) { SyncTest sync1 = new SyncTest("threa1"); sync1.start(); } public void run () { setX(title); } private static synchronized void setX (String str) { while (true) { // 無便ループ } } }
>>813 無理っぽ。仕様に厳密に従わなくて良いなら main 内で sync1.join(一定時間) とかして
タイムアウトしてもスレッドが終了してなかったら例外投げれば良い、とか。
っつーか、「無便」ループとか、setter 内で while (true) とか恐ろしいプログラムだな。
安全ではないスレッドの破棄はダメだぞ 割り込みかけて対処してもらうのが普通
>>814 なるほど。アイデアどうもです。
ただ、スレッドはそのまま無便ループを走り続けるというのはどうしようもないのかな。
>>815 おっしゃる通り。
でもこの場合 while でループしてるんで、割り込みかけるにかけられんという気が。
いや、 割り込みかけたら割り込まれたスレッドは感知できるんで それでループをやめるしかない 処理の内容によるがwhile()で無限ループさせるよりはJava.util.Timerでまわさせるとかなら 外部から飛ばさせることは可能だが どっちにしろ残念ながらちみがやりたいこととは一致せんがね
818 :
デフォルトの名無しさん :2005/10/24(月) 12:30:12
Frameを継承したクラスで裏画面処理をしたいのですが メンバに Graphics bg; Image backimage; の二つを宣言しておき、コンストラクタで backimage=createImage(256,300); bg = backimage.getGraphics(); とするとコンパイルは正常にできるのですが、実行中に bg = backimage.getGraphics(); の部分でNullPointerExceptionが発生してしまいます。 原因のわかる方教えてください。
>>818 頼むからAPIドキュメント読んでくれ
nullを返す場合がちゃんと書いてある
Javaでibatisを利用してDB接続をしようとしてるんですが、 ibatisの設定のresultClass=""の中は、ibatisのjarファイルを置いた場所を指定すれば良いのでしょうか?
822 :
820 :2005/10/24(月) 16:23:23
>>821 ありがとうございます。
どこかibatisに関して説明してる良いサイトって知りませんか?
説明サイトも本も少なすぎて全然だめぽorz
誘導もさんくすです
823 :
821 :2005/10/24(月) 16:23:48
821に追記 記述するクラス名は、検索結果をマッピングさせたいクラス(通常は自作クラス)です。 例えば、検索結果をnameとpasswordプロパティを持ったexample.Userというクラスに マッピングさせたい場合はこんな感じです。 <select id="getUsers" resultClass="example.User"> select name, password from T_User </select>
あるインスタンスへの参照を、文字列でインスタンス名を指定して実行する方法ってありますか? 例えば、 Employe emp = new Employee(); emp.setID("0123"); emp.setName("Suzuki Ichiro"); なんていうふうに生成したインスタンスempがあったとして、 このempに対して、 Object obj = new Object(); obj = getReferenceBy("emp"); みたいなカタチで参照させて、実際のインスタンスへのアクセスは、 objから実行できないかと。 emp中のメソッドへのアクセスは、BeanUtils使って、 "emp.name"、"emp.ID"みたいにできることは確認したのですが、 インスタンスそのものへのアクセスはできないのかな、と。
>>820 >どこかibatisに関して説明してる良いサイトって知りませんか?
やはり公式サイトのドキュメントがメインだと思います。
・SQL Maps for Java, Tutorial
・SQL Maps for Java, Developer Guide
・DAO for Java, Developer Guide ← 必要に応じて
ただこれらのドキュメントは英語だし、これだけ見てもなかなかピンと来ないので、
補足としてこのあたりを見てみます。
・
ttp://634.ayumu-baby.com/ibatis/ ・
ttp://www.h7.dion.ne.jp/~a.d.1976/ これらのサイトを見て大まかな使い方を掴んでから再度公式ドキュメントを見れば、
理解しやすいと思います。後は実践あるのみかと。
クラス定義するの面倒なので Object o = new Object() { public void say() { System.out.println("yes"); } }; ってやってみたもののどうやってsay()すればいいのですか?
>>827 リフレクション
Object#getClass()
Class#getDeclaredMethod()
Method#call()
余計にメンドクサそうな希ガス
ORACLEのBLOB型へファイルの書き込みにチャレンジしています。 Servlet -> PL/SQL -> DBへ書き込み という手順なのですが、 小さいサイズのファイルならば書き込めるのですが、 サイズが大きくなると setBinaryStream にてエラーとなってしまいます。 エラーは「データ・サイズがこの型の最大サイズを超えています。」です。 なにか手立てはないでしょうか。
みなさんEclipseを使用するときのエンコーディングってデフォルトのままですか? 私はWindowsとLinuxでEclipseのデフォルトのエンコードが違うのでへばってます 両方で使えるUnicode使うとJavaのAPIのクラスファイルを参照すると 文字化けして訳が分からなくなるし orz
>>831 そんな事しないでローカルに取り込む際にエンコード変換とかじゃダメなん?
>>832 やっぱりその方法が結局一番楽なんだと
薄々思ってましたが・・・
レスありがとうございます
SDKなどIDEに依存しないエンコーディングの問題ならココでいいけど Eclipse特有の話ならEclipseスレでな
836 :
JAVA初心者 :2005/10/24(月) 23:27:03
CSVファイルをエクセルでつくるときにたとえば、tuyoshi,1,2というファイルをつくりたいのですが、 "tuyoshi,1,2"としたらDISPLAYでtuyoshiとなり、そのままtuyoshi,1,2としたままだったら、 "toyohsiという形で"が前についてきてしまいます。基本的な質問になるかも知れ ませんが、理由を教えていただいてもよろしいでしょうか。
837 :
デフォルトの名無しさん :2005/10/24(月) 23:38:35
>>830 PL/SQLってことは、CallableStatement?大きいオブジェクトを受け付け
るようなI/Fないんじゃないの?
PreparedStatement使ってBLOBオブジェクトに書き込むよーにしたらだめか?
838 :
デフォルトの名無しさん :2005/10/24(月) 23:39:40
839 :
JAVA初心者 :2005/10/24(月) 23:57:50
すいません、、、System.outのことです。CSVのファイルを読み込んで、その最初に はいってるtuyoshiとマッチしたら処理させたいのですが、マッチするように しているのに、処理しないのでおかしいと思っってSystem.outしてみたら CSVにはちゃんとtuyoshiにしたのに、System.outで"tuyoshiになっています。
なんかすごい日本語だな 順を追って箇条書きで書いてごらん そして書き終わったら自分で読んでごらん
841 :
824 :2005/10/25(火) 00:09:44
>>825 あ、なるほど。Mapにインスタンス名でインスタンスを登録すればいいのか。。。
大正デモクラシーもとい、灯台もと暗しでした。
d
842 :
JAVA初心者 :2005/10/25(火) 00:14:16
すいません、、、あせっちゃって、、、、 まず、CSVふぁいるを読み込みます。 そこはtuyoshi,2,1と書いてあります。 そして、ほかのクラスからもらったNAME情報(Uname)=tuyoshi なら処理をします。 でも処理をしないので、おかしいと思ってSystem.outしてみたら "tuyoshiとなっています。 なのでマッチしなかったみたいなのですが、、、なぜでしょう。。。 確かにCSVファイルの中身はtuyoshiであって"tuyoshiではありません、、、
csv ファイルをメモ帳で読み込んだときの内容と、 プログラムの System.out.println の周辺を貼り付けてくれ。
844 :
デフォルトの名無しさん :2005/10/25(火) 00:24:41
ArrayListにdouble型の数をいくつも入れて、最後にそれの和を計算したいのですが、 ○○.add(new Double(x))などとして要素を入れた後、 それを取り出して和を計算する方法が分かりません。 get(i)とかで取り出しても、そのままじゃ足し算とかは出来ませんよね?
足せよ
>>844 実はできる
ArrayList list = new ArrayList<Double>();
list.add(1.1);
list.add(2.2);
list.add(3.3);
double sum = 0.0;
for(double x : list) {
sum += x;
}
多分。確認して無い。間違ってたらゴメン。
847 :
JAVA初心者 :2005/10/25(火) 00:31:03
tuyoshi,2,1 if (st.hasMoreTokens()) { String s = st.nextToken(); System.out.println("s="+ s); } if (s == username) { winTotal = winResult + winTotal; loseTotal = loseResult + loseTotal; fileWrite();
>>847 ういうい。予想通り StringTokenizer 使ってたか。
読み込んだ CSV の行に、どこかで "" が混入してるんだと思うよ。
"tuyoshi,2,1" を区分けると、初めのトークンは "tuyoshi になるし
849 :
JAVA初心者 :2005/10/25(火) 00:36:39
え、、、でも一番上の行が今使っているCSVなのですが、”はTuyoshiの前になくないですか?
StringTokenizer じゃなくて StreamTokenizer 使っているのならば、確かに妙だな。
851 :
830 :2005/10/25(火) 00:39:56
>>837 CallableStatement 使っています。
Javaから直接Tableはどうしてもだめなんです・・
>>847 本当にそのコードとCVSで「"」が表示されるのか? プログラムの出力
をそのままコピペしてみたらどうでしょ。StroingTokenizer の入力に
している文字列も表示して、何が入ってるかちゃんと確認しましょう。
まあ、表示の件を除けば問題の本質は「if (s == username)」だろうけど。
一つのセルにtuyoshi,2,1が入ってるんだろ。 三つのセルにtsuyosiと2と1が入ってるんじゃなくて。
854 :
844 :2005/10/25(火) 01:12:42
>>846 getで特定の要素だけを取り出しての演算も行いたいんです。
ArrayList list=new ArrayList();
list.add(new String(1));
sum = 1.0+(Double)list.get(0);
ってやっても、演算を行うところでエラーが出てしまうんです。
855 :
844 :2005/10/25(火) 01:14:47
あ、2行目はStringではなくDoubleの間違いです。
>>854 java5 使ってる?
これちゃんと動くから試してみなはれ
ArrayList<Double> list = new ArrayList<Double>();
list.add(2.0);
double sum = 1.0 + list.get(0);
System.out.println(sum);
オートボクシングが通ってないってことは5.0じゃないっぽいな Doubleは計算不可能だがdoubleは計算できる Doubleからdoubleを取得して計算しなさい
858 :
デフォルトの名無しさん :2005/10/25(火) 03:15:08
申し訳ありませんが、行き詰っております。どなたかアドバイス頂けたら
嬉しいです。
簡単なチャットのサーバとクライアントを組みました。
サーバ側でObjectOutputStreamで発言と一緒にユーザ名を入れたArrayListを送信して、
クライアント側で受け取りました。
しかし、サーバ側とクライアント側でArrayListの中身が違うんです・・・。
具体的には、接続者が2人以上になると、最初に接続した人の受信するArrayListの中身が
1人から増えません。
送る側のリストの中身をSystem.out.printlnしてもちゃんと中身は2人以上になっている
のですが・・・。
ソースを以下にうpしました。
汚いソースですが、大量のコメントと、要所にはTODOを打ってるので、
もし原因が分かる方おられましたら、ご教授よろしくお願いします。
ttp://www.uploda.org/file/uporg222693.zip
チャット作るのなら、オブジェクトをシリアル化して送るんじゃなくて、全部文字ベースでやり取りするべき ……だと思ったのは余計なお世話?
>>858 重要な部分だけ抜き出しなされ
ソースまる投げは最終手段
デバッグをさせようというのかね
>>860 はぁ?
重要なとこったって、何行になると思ってんの?
こんなとこにつらつら書かすなボケ。
ぬきだせば肝心な部分なんて1レスで収まる範囲だろ
横着なソースコードだな。 局所的なスコープ要素をクラスメンバにしたり、 メソッド名が適正な動作内容を示してないし、見るのが苦痛。
すみません。Strutsのlogic:iterateタグで質問なのですが、 id属性名を動的に生成することは可能でしょうか? 板違いでしたら、すみません。
865 :
844 :2005/10/25(火) 14:46:03
>>844 原因がちゃんと分かったの?
わからないで使うオートボクシングは危険だよ
867 :
デフォルトの名無しさん :2005/10/25(火) 15:00:59
始めまして。WACSを利用してJAVAを勉強し始めたものですが、 画像データを表示するところで悩んでいます。(jsp) <img src="a.jpb" width='144' height='108'><br>27:17:15;02 の行を3000行ほどJSPで表示しようとすると、テキスト文字27:17:15;02は、 全て表示されるのですが、画像が全て表示されません。 表示されなくなるタイミングは、5分前後です。IEのタイムアウトが5分と 言う話ですがそのタイムアウトで表示できなくなってしまっているのでし ょうか?また、レジストリでタイムアウトを変更することも出来ますが、 jspで画像を表示する事はできないでしょうか? ご教授の程、よろしくお願い致します。
868 :
デフォルトの名無しさん :2005/10/25(火) 15:05:37
869 :
デフォルトの名無しさん :2005/10/25(火) 15:08:55
なんつーか、WACs という時点で答える気をなくした。
>>867 > 3000行ほどJSPで表示しようとすると
行数減らしてやってみた?
872 :
デフォルトの名無しさん :2005/10/25(火) 15:35:06
5分以内(2000行くらい)の画像は全て表示されています。 JSPでなんらかのアクションを起こせばいいのでしょうか?
>>858 ロジックの間違いではなさげだ。
サーバ側の74行目を書き換えて、
ArrayList オブジェクト自体を差換えてみたら直った。
list = new ArrayList(); //list.clear();
もしかしたら、JDKのバグかもしれん。
ちなみに、バージョンは1.5.0_02。
マルチスレッドだし同期化の問題じゃね?
ファイルをドラッグアンドドロップすると そのファイルの拡張子を任意の拡張子に変更してくれるというものをプログラムしたいと思っています 複数ファイルをもってくと一括で変更してくれるようなものを作りたいです ええ、用途はというと エロjpgファイルを一括で違う偽装拡張子にしたい次第です よろしくお願いします
作ればいいじゃない
よくわからんが、ArrayListってスレッドセーフじゃないんじゃ? Vectorが良いんじゃないかな。
>>877 「スレッドセーフ」という観点ならどっちを使っても同じ。
よくわかってないならいいかげんなことを言うなよ。
>>878 Secrets of the Java Masters(Java魂)にしっかり書いてあるんだが、
この本は、いいかげんなのかい?
書いてあることを理解もせずに書き込むのがいいかげんなのさ
>>880 いい加減なことを書くよりましだと思うが。
>>878 同じでは無いのでは?
Vector 使ったからと言って、それだけではリスト構造自体はスレッドセーフにはならないけど、
ArrayList だと最悪 add できねー(add してるだけなのに例外食らう)とかゆー状態になるし。
もっとも、
>>858 とは関係無いと思うけどね。
Vectorはスレッドセーフになるように設計されてるが遅い。 ArrayListはスレッドセーフを犠牲にして速度をアップしたもの。
遅いっつっても、プロファイラで計測してその影響が出てることなんて無いがな。
886 :
858 :2005/10/25(火) 18:48:53
回答ありがとうございます。汚いソース晒して申し訳ありませんでした。;;
初めてまともに組むjavaなもので、まだ初歩的なことも出来ない未熟者です。^^;
>> 859さん
ObjectOutputStreamは余り好ましくないというのは聞いたのですが、
最大5人を想定して作ってるので、もうちょっと精進してから頑張ります!><
>> 860、862さん
申し訳ありません・・・。自分なりにここだ!てところにはTODOを打ったのですが、
一応動く形で渡した方が解決しやすいかと思ってそのままupしてしまいました。
>>863 さん
すいません。;; まだ勉強し始めたばっかりで何も分かってません。
これから頑張って行きたいと思います。
>>873 さん
ありがとうございます!ずっと悩まされてただけに感動です。;;
汚いソースなのに回答して頂いて本当に有難うございました。
あ、ちなみに861は僕ではありません。^^;
それでは、次はもっと精進して自分で解決出来るよう頑張ります。
本当に有難うございました。<(_ _)>
887 :
デフォルトの名無しさん :2005/10/25(火) 18:49:08
オブジェクトの配列を扱うときに Test[][] tests = new Test[2][3]; と準備した時に、配列にオブジェクトを代入する方法は?
>>885 おもちゃの環境で差が出ないって言われてもな。。。
私Java研修生です(まだ1月たってません)。ほかの言語経験はありません。 Javaで10個ぐらいのクラスを使うプログラムをいくつか作ったのですが、 設計のやり方がいまだによくわかりません。どのように勉強すればよいのでしょうか? 具体的に「こんなプログラムの設計をしてみよう!」的な書籍などはあるのでしょうか? 途方にくれております。どうかいろいろと教えてください。
>>886 clearをnewにするのは問題じゃないぞ
みんなスレッドセーフのことについていってるんでそれみてなおせ
892 :
デフォルトの名無しさん :2005/10/25(火) 19:02:35
>>891 多次元配列に代入する方法がわかりません。
1次元は参考書に載っているのですが、、、
>>888 オモチャの環境って… 出るならそれこそおもちゃの環境だろー。
おまえはどういう環境で出たの? PC はおろか、糞みたいに負荷のかかる
Regatta や Z でパフォーマンスチューニングした時も出たことないんだが。
携帯ならまぁ納得。
>>892 その参考書のもう少し後に書いてないか
書いてなければ参考書を換えた方がいいかも
tests[n][m] = new Test();
>>893 MMORPG....(/_;)
いいのさ。。。シクシク
>>895 そーか、失礼。おたくも抜き差しならぬシステム作ってんだな。
>>858 はスレッド云々のせいじゃないだろ。
まあ確かに彼の書いたコードはスレッドセーフではない。
しかし、
>>873 の書いた通りなのであれば、
list.clear() と list = new ArrayList()の目的として
得られる結果は一緒の筈だろう?
しかし、この問題非常に興味深いな。
899 :
898 :2005/10/25(火) 20:37:39
ちょいとちゃんと検証してみようぜ。
むは。再現できた。 ソース上げるんで、検証よろ。
901 :
900 :2005/10/25(火) 21:00:37
902 :
900 :2005/10/25(火) 21:02:47
Server 側の flush のタイミングかと思ったら、そうでもないや。なんでだろう。
newしなおしたタイミングでフラッシュされただけだろ?
905 :
900 :2005/10/25(火) 21:16:19
っていうか ObjectOutputStream 内で Serialized データをキャッシュしてそうな希ガス
906 :
JAVA初心者 :2005/10/25(火) 21:28:44
>>852 なぜs==usernameが本質的にだめなのですか?実はそこのロジックでも つまづいちゃってます。 >>853 あとエクセルのセル1の1つの中にtuyoshi,2,1とご指摘いただいた 通り書いてます。それだとなぜだめですか?3つのセルにわけて かかなければいけないのですか?
>>906 これ実行すれば一発で分かるよ
String a = "abcdef";
String b = "abcdefghi".substring(0, 6);
System.out.println(a + " == " + b + " -> " + (a == b));
System.out.println(a + ".equals(" + b + ") -> " + (a.equals(b)));
909 :
900 :2005/10/25(火) 21:36:58
>>907 んが。ObjectOutputStream.reset() の存在をすっかり忘れてた orz
っていうか俺大正解じゃん。
何が正解か分からんけど、最初のコード、マルチスレッドなのに同期化してない部分が一部あるのも問題ね VMの最適化でおかしくなる場合有 シリアライズなら、いまはXMLEncoderおよび使ったほうが楽かと思われ 俺だったらクライアントと鯖をJava依存なくする(特にクライアントは流動的でいい)から ApacheXML-RPCおとしてくるが、勉強用っぽいから実用はまあいいか
911 :
JAVA初心者 :2005/10/25(火) 21:56:57
>。908ありがとうございます。今実行してみたら 上がFALSEで下がTRUEになりました。下のEQUAL文を使わなければと いうことですね??でもなぜですか?? すっごく基本的な質問になるかもしれませんが、==とEQUAL の違いは何ですか??
>>911 == は同じ参照かを比較する。
equals は同じ値かを比較する(ように実装しなければならない。
Object#equals() のデフォルト実装は == と同じ動作をする)
914 :
JAVA初心者 :2005/10/25(火) 22:07:16
参照か値かの違いですか、ありがとうございます。でも、 if (s. equals (username)) { winTotal = winResult + winTotal; loseTotal = loseResult + loseTotal; こういう風に変えてみて実行してみたら、NULLPOINTERのエラーがでました。 それはどちらかに値がはいっていないということですか?
>>913 そんなまどろっこしい説明しないで、プリミティブ型(intやcharなど)は==で比較する
文字列、クラスは.equals()で比較するって覚えときゃ良い
逆に自分でクラスを作る時はequalsで等しい場合にtrueを返す様にしないと正しく比較できない
それなら s の方だね。equals(null) はエラーにならずに false が返るから。
>>915 >逆に自分でクラスを作る時はequalsで等しい場合にtrueを返す様にしないと正しく比較できない
immutable なクラスなら equals を定義するべきだけど、mutable なら定義するべきじゃないと思う。
919 :
JAVA初心者 :2005/10/25(火) 22:12:50
>。916 じゃあ、FALSEがかえるということは!equalsにしたらいいということですか?? エラーにしないためにはどうしたらいいですか? 何から何まですいません、、><
==は、同一のオブジェクトを参照しているかどうかを比較。 equals()は、同じ値を持っているオブジェクトかどうかを比較(するように実装することになっている) java.lang.String型は、同じ文字列で構成されていればequals()の結果はtrueが返るようになっている。
>>917 例えば String は immutable だけど equals を実装してくれないと困る。
equals を実装しなくても良いのは enum みたいに同じ値を持つ参照が一つだけしかない場合っしょ。
922 :
917 :2005/10/25(火) 22:20:26
>>918 逆じゃないだろう
class MutableObject {
public String text;
}
これに equals を定義するのが適切だとは思えない。
>>919 if (s != null && s.equals(username)) // でどうぞ
if (username.equals(s)) // username が null じゃないことが保障できるのなら、こっちでも良いけど
>>917 初心者スレで同値かどうかの話をしてる時に不変性が云々のちゃちゃを入れるな
初心者が困るだろ
ReadAir!って感じだ
>>922 単純に同値比較を行いたいかどうかで決めるべきなのでは?
ArrayList(っつか、AbstractList) も Calendar も mutable だけど equlas を実装してる。
925 :
JAVA初心者 :2005/10/25(火) 22:30:18
while (br.ready()) { String line = br.readLine(); // 1行をデータの要素に分割 StringTokenizer st = new StringTokenizer(line, ","); if (st.hasMoreTokens()) { String s = st.nextToken(); System.out.println("this.username"+ username); System.out.println("this.s" + s); } if (username. equals (s)) { winTotal = winResult + winTotal; loseTotal = loseResult + loseTotal; } else { winTotal = winResult ; loseTotal = loseResult; fileWrite(); } } br.close(); このロジックでthis.usernametuyoshi this.stuyoshiのSYSTEm。OUTがでてきますが、tuyoshiで両方同じものが はいっているのにこのEQUALSの方にはいりません、、、>< なぜでしょう、、、、もうこのtuyoshiになかされっぱなしです、、、
そういうときのおまじないを教えてあげよう System.out.println("this.username"+ username); System.out.println("this.s" + s); を System.out.println("this.username["+ username+"]"); System.out.println("this.s[" + s +"]"); として実行してみたらどうなる?
>>925 > if (st.hasMoreTokens()) {
> String s = st.nextToken();
> System.out.println("this.username"+ username);
> System.out.println("this.s" + s); // ← ※
> }
※の位置の s は this.s ではない。念のため。
928 :
917 :2005/10/25(火) 22:37:20
>>923 すまぬ m(_ _;)m
>>924 オブジェクトの状態によって、equals の結果が変わるのってあまり好きじゃないんだよ。・゚・(ノД`)・゚・。
っていうかごめん。mutable がどうのこうのってのは hashCode の方だった orz
>>925 > if (st.hasMoreTokens()) {
> String s = st.nextToken(); //(1) s はここで宣言されて
> System.out.println("this.username"+ username);
> System.out.println("this.s" + s);
> } //(1) で宣言された s は、ここでアクセス不能になる。
> if (username. equals (s)) { //ここでアクセスしてる s は(1) で宣言されたものとは無関係
自力で書いたなら、スコープ見直せ。
本とかwebサイトのを写したなら、もう一回写し間違いが無いかチェックしろ。
930 :
JAVA初心者 :2005/10/25(火) 22:41:58
>>926 this.username[tuyoshi] this.s[tuyoshi] で同じものがでてきましたーー!やっぱり中身は同じtuyoshiですー!
一致してるかどうかの判断はそのクラスのequalsしか判断できないだろう 状態によって結果が変わらないって正直信じられない発言だな sortもコンパレータ実装するとき状態見てるだろ?それと同じだよ
932 :
917 :2005/10/25(火) 22:45:52
悪い。頭冷やしてくるわ。
933 :
JAVA初心者 :2005/10/25(火) 22:49:10
みなさん、、いろいろ優しく教えていただきましてありがとうございました。 インスタンス変数としてSを宣言していたのに、またろーかる変数として SをIFの中でしなおしてたからだめだったみたいです。 そこはなんとかなおりましたが、ほかももう大変で今試行錯誤しています。 こんなにぜんぜんわかっていない私なのに、ご協力ありがとうございました。 また、何かありましたらこの掲示板に戻ってくるのでよろしくお願いします!
>>784 Genericsを使っていると同じVectorまたはListオブジェクトに
異なる型をつっこむのは抵抗がある。
ある型XがあってそのサブクラスA, Bという型を持つ二種類のオブジェクトならば、
とりあえずつっこむことは躊躇わないことが多いが。
Xのサブクラスならなんでも良しになるように、VectorまたはListをメソッド引数に
したメソッドで、
method(List<? extends X>){
}
を定義するので。
記述を間違えた class Demo<T extends X>{ private List<T> list; public Demo(){ this.list = new ArrayList<T>(); } public void method(T t){ list.add(t); } }
937 :
853 :2005/10/25(火) 23:17:28
>>906 csvは区切りがカンマなので
値にカンマが含まれるときは内部的には
ダブルクォーテーションで囲まれて表現される。
だから1つのセルにtuyoshi,2,1という値を書いた場合は
内部的には"tuyoshi,2,1"と表現されている。
3つのセルに書いた場合はtuyoshiも2も1もカンマが含まれないので
内部的にもそのままカンマ区切りでtuyoshi,2,1と表現される。
Vectorがスレッドセーフだと言ってる奴は池沼
>>839 Jakarta POIを使えばCSVの扱いも楽だ。
>>831 UTF-8を使っている。
デフォルトは使わない。
FedoraのデフォルトはUTF-8になったみたいだが。
APIクラスファイルを参照すると文字化けするとはいったいどういうものなんだろう
>>940 UTF-8で作ったソースをエンコーディング指定しないでJavadocにかけると当たり前だが文字化けしたHTMLができる
>>938 中途半端にスレッドセーフだとかだっけか
ArrayListとConnectionsとを組み合わせ他方がええってことで
Vectorは非推奨ということにしてと
>>941 >>831 はそんなことを言いたかっただけなんだろうか・・・・
docencodingもソース園コーディングもcharsetもすべて同じUTF-8に
しておけばほぼ無問題ですな
native2asciiを使わずに古いバージョンのjavadocを使うとおかしくなるが
>>943 639 名前:デフォルトの名無しさん[sage] 投稿日:2005/10/24(月) 22:42:44
EclipseでJButtonを選択状態にして
宣言を開く とすると
クラスビューアーで宣言がJavaプログラムとして見れますが
EclipseのエディターのデフォルトエンコードをWindowsの場合はMS932以外
にしていると文字化けしてしまいます
これはEclipseの仕様なのでしょうか?それともWindowsのJDKのクラスファイルは
MS932で書かれているのでしょうか?
多分
>>831 =
>>639 だろ意味はよく分らんが
>>937 CSVってカンマが値として入ってる場合ダブルクォーテーションで入れるかとか
ダブルクォーテーションのエスケープとかそういう部分はすべてローカルルールだった希ガス
Excelの吐き出すCSVは改行が1レコードとはきまってないのでややこしいけどな
エスケープなんか単なる決めの問題だから大抵は Excel の吐き出す奴に 仕様あわせるけどな。
>>945 > Excelの吐き出すCSVは改行が1レコードとはきまってないのでややこしいけどな
改行は改行でも\rと\r\nをちゃんと区別すればいいだけの話。
JAVA(TM) の TM って何?
登録商標
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| |次でぼけて!!!! | |_________| ∧∧ || ( ゚д゚) || / づ Φ
意味は?
SESってなんですか?
あんがと >954
登録商標って ® の方じゃなかったっけ? ™ は登録されてるとか関係無い単なる商標だとか聞いた記憶が。 逆だっけ?
>>948 レコード内のは\rでレコードの区切りは\r\nなんだから別にややこしくないじゃん。
すいません、javaを勉強しようと思い、 Java 2 Enterprise Edition 1.4 SDK というのはPCにインストールしようと思うんですが、 これは無料で使えるアプリなんでしょうか?
J2EEは主にサーバーサイドの業務系用なんだけど Javaの基本自体ならJDK5.0かJDK1.5とかいうのさがしてみて
TradeMark != Registed
962 :
959 :2005/10/26(水) 02:24:38
>>960 ありがとうございます。
Java 2 Enterprise Edition 1.4 SDKは個人用ではないんですね?
間違ってインストールしてしまいました。
これはアインストールした方が良いんでしょうか?
アンインストールしていいよ
>>961 登録を「regist」とか言っちゃうクチですね?
>>958 「君の CSV」 の仕様はそうなの ( ´_ゝ`)フーン
966 :
デフォルトの名無しさん :2005/10/26(水) 04:09:24
<identifier> がありません。 というエラーはどういう意味でしょうか?
967 :
デフォルトの名無しさん :
2005/10/26(水) 04:30:16 appletで文字を描画するコードを入門書で見たんですけど、よくわかりません。 paintというメソッドが、どのタイミングで実行されるのかわからなくて困っています。 sunのjavaTutorialも目を通したのですが、よくわかりませんでした。 appletを理解するのに役立つサイトがあったら、教えて下さい。