【初心者】Java質問・相談スレッド80【大歓迎】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/

これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals を使え。
・内部クラスから外部クラスのローカル変数は使えない。他の方法を考えろ。

前スレッド
【初心者】Java質問・相談スレッド79【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1136960593/

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/

次スレは>>980あたりでお願いしまする。
2漂泊の2ゲッター:2006/01/28(土) 22:46:09
   コタツデ
        ∧∧  <2ゲト〜〜〜〜〜
       (゚Д゚ )  
     / ̄ ̄旦/ヽ;;;⌒`)   
   /___/ ※/)≡=-;;;⌒`)⌒`)   
  / ※ ※ ※ ※ // ≡≡≡≡= -;;;⌒`)⌒`)
  (ー―――――_,ノ ≡=⌒`);;;⌒`)≡=-⌒`)
   ̄ ̄ ̄ ̄ ̄ ̄   ズザー―――
3前695:2006/01/28(土) 23:24:45
勉強不足なのは理解していますが本当にわかりません。
明日までに何とかしたいんです。教えてください。。。
4デフォルトの名無しさん:2006/01/28(土) 23:28:43
>>3
とりあえず前スレの 969 や 977 見てください
5デフォルトの名無しさん:2006/01/28(土) 23:51:41
>>3
とりあえずGTM9.javaの2330行目の前後を行番号付きで載せてみ
行番号がつけられないならどれが2330行目かコメントで書いてくれ
一番楽なのはソースコード一式イメージ含めて
どこかにアップロードしてくれるといいんだが
6デフォルトの名無しさん:2006/01/29(日) 01:17:49
>3
日付変わって今日までになんとかしないといけないのにもう寝た?
7デフォルトの名無しさん:2006/01/29(日) 01:46:36
classファイルを別のパソコンで使いたいんですが、exeファイルのように
ダブルクリックで実行ってどうやってやるんですか?
8デフォルトの名無しさん:2006/01/29(日) 01:48:46
実行可能Jarファイルを作る
作り方は探せ
9前695:2006/01/29(日) 02:35:27
ありがとうございました。本当にありがとうございました!

出来ました。
何とかなりました。
これで展示できます。


それでこれをjarファイルにしたときどこをマニュフェストファイルで指定すればよいのかわかりません
夜分遅くすみませんがわかる方お願いします。

http://mrj.fc2web.com/aaaaa.htm
10デフォルトの名無しさん:2006/01/29(日) 02:56:56
コンパイル時にはエラーが出ないのですが、
ブラウザのステータスバーに
「stert:アプレットが初期化されていません」というメッセージが出てしまいます。
まったく見当がつかないのでどなたかわかる方見ていただけませんか?

ソースは長いですが
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class lesson15 extends Applet {

int times = 1;// 繰り返しの初期値
Choice timesChoice;// 繰り返し数のChoice

public void init() {
timesChoice = new Choice();// Choiceオブジェクトの生成
for (int i = 1; i <= 10; i++) {// Choiceの設定
timesChoice.addItem("" + i);
}
add(timesChoice);// Choiceのアプレットへの追加
add(new Label("times"));// ラベルのアプレットへの追加
timesChoice.select(times - 1);// Choiceの選択アイテム設定
timesChoice.addItemListener(new ItemAdp());// アイテムリスナーの設定
}
11デフォルトの名無しさん:2006/01/29(日) 02:59:54
public void paint(Graphics g) {

int x = 300;// 円の中心のX座標
int y = 300;// 円の中心のY座標
int radius = 90;// 円の半径

drawCircle(g, x, y, radius, times);
// 中心 (x, y),半径 radius の円を描くメソッドを呼び出す.

}
class ItemAdp implements ItemListener {// 内部クラスによるItemListenerの実装
public void itemStateChanged(ItemEvent e) {
if (e.getSource() == timesChoice) {
times = timesChoice.getSelectedIndex() + 1;// 繰り返し数を獲得
repaint();// 図形の再描画
}
}
}
12デフォルトの名無しさん:2006/01/29(日) 03:00:55
void drawCircle(Graphics g, int x, int y, int radius, int times) {

if (times < 1) { return; }// 繰り返しが1未満なら終了

g.drawOval(x - radius, y - radius, 2 * radius, 2 * radius);
// 中心 (x, y),半径 radius の円を描画.

times--;
// 描画繰り返し回数 times を1回減らす.

drawCircle(g, x + radius / 2, y, radius / 2, times);
// 中心 (x + radius + radius / 2, y),半径 radius /2 の円を描くメソッドを呼び出す.
drawCircle(g, x - radius / 2, y, radius / 2, times);
// 中心 (x - radius - radius / 2, y),半径 radius /2 の円を描くメソッドを呼び出す.
drawCircle(g, x, y + radius / 2, radius / 2, times);
// 中心 (x, y + radius + radius / 2),半径 radius /2 の円を描くメソッドを呼び出す.
drawCircle(g, x, y - radius / 2, radius / 2, times);
// 中心 (x, y - radius - radius / 2),半径 radius /2 の円を描くメソッドを呼び出す.
}
}
よろしくおねがいします。
13デフォルトの名無しさん:2006/01/29(日) 03:04:29
前スレの最後の方を見て思ったが
答える気のない罵倒レスしてる奴は何なんだ?

質問スレなんだから質問を潰すような真似するくらいなら
スルーするか見なければいいのに。
14デフォルトの名無しさん:2006/01/29(日) 03:06:23
彼女「ねー、明日日曜日だからどっか行こうよ!」
俺「ほんとは革命起こしたかったんじゃないかな・・・オナニーで」
15デフォルトの名無しさん:2006/01/29(日) 03:34:23
>>10
ソース見てねーけどappletviewer使ってメッセージ確認してみ
それと当然Sun javaでやってるよな?
16デフォルトの名無しさん:2006/01/29(日) 05:39:28
>>9
とりあえず、コレをやってみてください。
#ここで長々と説明するより、わかりやすいかと
http://www.fk.urban.ne.jp/home/kishida/kouza/old/javajar.html
17デフォルトの名無しさん:2006/01/29(日) 09:59:59
>>10
コード自体には問題なさそうだから、HTMLの書き方の問題だろうね
18デフォルトの名無しさん:2006/01/29(日) 10:41:26
>>15
>>17
HTMLを最初から書き直してみたらできました!どうもありがとうございました!
19デフォルトの名無しさん:2006/01/29(日) 11:32:02
>>16
ありがとうございます。
一応exewrapを使用しjar→exeまでは出来たんですけど
これってjavaの仮想マシンが入ってるパソコンじゃないと実行できませんよね?
20デフォルトの名無しさん:2006/01/29(日) 11:37:00
見難くてすいません、まったくもって初心者なのですが、
テキストファイルに、打ち込んだ文字を出力しようとして、こういうソースを書いたのですが
出力するたびに、文字が後ろに登録されて困っています。
テキストデータに出力した文字を、出力するたびに改行してもらうにはどうしたらよいのでしょうか?

String myString1 = myReader.readLine();
String str = myString1;
BufferedReader in = new BufferedReader(
new InputStreamReader( System.in ) );
RandomAccessFile raf = new RandomAccessFile("jap.txt","rw");
System.out.println("日本語を入力してください");
str = in.readLine();
lFileLast = raf.length();
raf.seek(lFileLast);
raf.write(str.getBytes());
raf.newLine();
raf.close();
21デフォルトの名無しさん:2006/01/29(日) 11:39:08
あ、質問したいのにsageちゃダメですね(苦笑
22デフォルトの名無しさん:2006/01/29(日) 11:39:44
>>19
JREが入ってないマシンで実行できるJavaプログラムがあったら教えて欲しい
2320:2006/01/29(日) 11:48:00
JREってバージョンの事ですよね?
Java(TM) 2 Runtime Environment, Standard Edition
1.5.0_06ってなってます
24デフォルトの名無しさん:2006/01/29(日) 11:48:40
>>20
意味不明
25デフォルトの名無しさん:2006/01/29(日) 11:58:56
>>22
やっぱ無理ですよね…
26デフォルトの名無しさん:2006/01/29(日) 12:09:24
CMPのSessionBeanで、

/**
*
* <!-- begin-xdoclet-definition -->
* @throws NamingException
* @throws CreateException
* @ejb.interface-method view-type="both"
* @ejb.transaction type="Required"
* <!-- end-xdoclet-definition -->
* @generated
*
* //TODO: Must provide implementation for bean method stub
*/
public String foo(String param) throws NamingException, CreateException {
  TestLocalHome home = TestUtil.getLocalHome();
  home.create(param);
  throw new IllegalStateException("rollback test");
}

こうしてもロールバックされないのはなんで?
27デフォルトの名無しさん:2006/01/29(日) 12:33:34
>>19
jsmooth使えば、アプリにJREを同梱できるので、
ランタイムの別途インストール不要なアプリとして配布できるようになる。
28デフォルトの名無しさん:2006/01/29(日) 12:34:26
>20
RandomAccessFileにnewLine()なんてメソッドないんだけど。
>22は>19に対するレスです。自意識過剰。
29デフォルトの名無しさん:2006/01/29(日) 12:40:09
>28
あ、すいません、試行錯誤中のソースでした・・・。

newLineを外した状態で、どうすればよいのか教えていただけませんか?
30部外者:2006/01/29(日) 12:41:51
>自意識過剰

これは誰に対するレス?
31デフォルトの名無しさん:2006/01/29(日) 12:46:34
>>20
システムプロパティline.separatorの中身を後に付ける。
32デフォルトの名無しさん:2006/01/29(日) 13:07:42
>>20

日本語のほうが分からないとみんないってるんだよ
箇条書きでかいてごらん
33デフォルトの名無しさん:2006/01/29(日) 13:44:27
コマンドプロンプト上の画面で動作させると、まず単語の入力する実行画面になりまして
単語を入力すると、それが指定されたテキストファイルに登録されます。
そして、追加で単語を登録するたびに、テキストファイル上で、1個1個段落が変わるように登録してくれるプログラムを作りたいのです。
34デフォルトの名無しさん:2006/01/29(日) 14:20:02
>>33
# 名詞:コマンドプロンプト、決められたファイル、文字、
# 動詞:入力、出力、実行、キーを押す、改行する

入力元:コマンドプロンプト
出力先:あらかじめ決められたファイル

コマンドプロンプトで実行する。
入力待機状態になる。
文字を入力してエンターキーを押すと、その入力した文字がそのまま出力される。
エンターキーを押すたびに、出力先でも同じように改行させたい。←ココが問題

これで70点ぐらい、かな・・・

回答は>>31で正しいとおもう。わからない単語はこのURLで確認するとヨロシ。
http://www.nextindex.net/java/IO/BufferedWriter.html
3533:2006/01/29(日) 14:25:06
>>34
見れば見るほどアラが出てきます。ダシ取れそう。
36デフォルトの名無しさん:2006/01/29(日) 14:57:43
>>34
RandomAccessFileを使用しているのですが、BufferedWriterで書き直したほうがいいって事ですか?
37デフォルトの名無しさん:2006/01/29(日) 15:18:01
>>36
他に目的が無いのであれば、この場合は BufferedWriter を使うほうが無難だと思います。
38デフォルトの名無しさん:2006/01/29(日) 15:50:41
>>34 >>37
思い描いてたとおりに動きました。
ありがとうございます★
3926:2006/01/29(日) 16:06:06
>>26なんだが、
>>26みたいな質問もここでいいのかい?
J2EEだとかEJBだとかのスレが見当たらなかったんだが。
40デフォルトの名無しさん:2006/01/29(日) 18:19:08
Javaにあって、Perlにない
Linuxデーモンにあって、Windowsのコマンドにはない
Windowsのサービスにあって、Windowsアプリケーションにはない


こりゃいったいなんじゃらほい?
41デフォルトの名無しさん:2006/01/29(日) 18:25:01
>>20
Windowsだったら
復帰の文字ってなんだったけ?\bだったか?
それいれればいけるのかな?いや、知らんけど
42デフォルトの名無しさん:2006/01/29(日) 18:26:07
>>41
>>31で答えが出てるかと。
43デフォルトの名無しさん:2006/01/29(日) 18:26:40
>>31は質問だk
44デフォルトの名無しさん:2006/01/29(日) 18:34:36
GCJ ですが、
これを使って、
以下のようなものはできますか?

1、Win/Linux、ソースレベルコンパチ。
2、ネイティブコードのバイナリ。
3、ネイティブコードなので、バイナリは異なるが、VMインストール不要。
4、インストールは、対象アプリをフォルダに解凍してEXEをダブルクリックするだけ。

とりわけ4が重要で、
ようは、VMインストール不要のソフト配布環境を
Java言語による開発で実現したいわけです。
これ、GCJで可能?
あと、可能だとして、そのやりかたですが、
今までのソースに、
--static --native みたいなオプションをつけて
フツーにMakeすればOK?
それとも、ソースの書き方からして特殊?
45デフォルトの名無しさん:2006/01/29(日) 18:41:07
1、ちょっと意味わからん コンパチがわからん
2、OK
3、OK
4、OK
>そのやりかたですが、
押入れの中に入っている本に載っているんだが出すのめんどくさい・・・探せばどっか解説している
>ソースの書き方からして特殊?
Javaと同じ
46デフォルトの名無しさん:2006/01/29(日) 19:07:40
>>45 さん
さっそくありがとうございます。

ようは、おなじ .java コードから、
App.Win32.EXE と App.Linux.ELF の二つのバイナリが
つくれるか、ということです。
47デフォルトの名無しさん:2006/01/29(日) 19:10:17
http://www.shudo.net/article/Fedora-Core-Expert-200507-GCJ/

自己解決。なんか、できるっぽいですな。。。
ありがとうございます。
48デフォルトの名無しさん:2006/01/29(日) 19:40:09
javaだけじゃないかも知れんが・・・・

よくコーディング規約とかでインデントにタブを避けるようになってたりするけどあれは何で?
インデントは半角スペース4文字にすべし!タブ文字の使用は避けるべし!みたいな
49デフォルトの名無しさん:2006/01/29(日) 19:44:09
タブを使うとファイルサイズが大きくなるから
あと、タブがソースコードに入っているとたまにバグることがあるから
50デフォルトの名無しさん:2006/01/29(日) 19:50:55
Javaはタブ使わない文化だよな

たしかにCとかでもソースコードによってタブ長が違うことが多いので
その設定変えるのが厄介だったりしたことは多いな
51デフォルトの名無しさん:2006/01/29(日) 19:57:17
>>49
逆だろ…タブの方がファイルサイズ小さいだろ。
52デフォルトの名無しさん:2006/01/29(日) 20:33:18
http://www.red.oit-net.jp/tatsuya/java/tango.htm
のページのスクリプトで、
答えの部分に日本語(全角)を使って、さらに
答えを間違えた場合は再入力せずに
問題が終わると得点を表示させ、そしてさらに
問題をシャッフルしたいのですが、
どのようにすればいいのでしょうか?

また、http://www.red.oit-net.jp/tatsuya/java/js.htm
でやってることをやりたいんですけど、
formが入ってきたのでよくわかりません。

両方やって見たのですが、
エラーが出てしまって自分ではどうしようもありません
53デフォルトの名無しさん:2006/01/29(日) 20:35:23
>>52
きみはこのスレに行った方がいいよ
http://love3.2ch.net/test/read.cgi/pure/1137169462/
54デフォルトの名無しさん:2006/01/29(日) 20:46:14
55デフォルトの名無しさん:2006/01/29(日) 21:01:41
>>50
Java の場合は Sun コーディング規約が
4インデント 8タブとかゆー変態的なものだったというのも原因の一つかもね。

4インデント 4タブとか 8インデント 8タブだったら従う人が もうちっと多かったかも。
56デフォルトの名無しさん:2006/01/29(日) 21:19:49
>>52
まぁ、>>1の最後から二段落目を見てください。
話はそれからだ。
57デフォルトの名無しさん:2006/01/29(日) 21:22:17
>>56
JavaScriptの質問だと勘違いしているのかお前はw
人がはなしている時に最後まで話聞かずに途中でごちゃごちゃ言うタイプだな
58デフォルトの名無しさん:2006/01/29(日) 21:26:43
俺にもscriptの質問に見える
59デフォルトの名無しさん:2006/01/29(日) 21:27:26
>>57
その指摘は当たってるけど、どのへんが勘違いなんだ?
60デフォルトの名無しさん:2006/01/29(日) 21:38:12
JBossにdeploytoolってありますか?
ローカルへはホットデプロイでコピーでokなんだけど、
リモートへのearファイルのデプロイはどうしたらいい?
61デフォルトの名無しさん:2006/01/29(日) 21:39:40
文字列からスマートに改行を取り除く方法を教えてください。

target = target.replaceAll("\\\r","").replaceAll("\\\n","");
とかやればできないこともないのですが、
長い文字列のときにパフォーマンスが心配です。

よろしくお願いします。
62デフォルトの名無しさん:2006/01/29(日) 21:40:45
JavaScript⇔JavaAppletの連携の話しているんじゃねーかボケェ
おまえら動かして確認したのかと一言
63デフォルトの名無しさん:2006/01/29(日) 21:52:44
動作確認って52だけの情報からどうやって連携を聞きたいとわかるのだ
64デフォルトの名無しさん:2006/01/29(日) 21:54:52
>>61
それ正規表現つかうんだから2回に分ける必要はないと思うけど
65デフォルトの名無しさん:2006/01/29(日) 21:56:14
>>63
もういいよ、読解力不足さん
明日から新しい外注の人に来てもらうから
君はIP-COMの設定やってて
66デフォルトの名無しさん:2006/01/29(日) 21:59:55
ついにエスパー登場か
67デフォルトの名無しさん:2006/01/29(日) 22:06:04
「読解力不足」と「エスパー希望」論争がまたもや勃発か
68デフォルトの名無しさん:2006/01/29(日) 22:06:04
>IP-COMの設定
Javaの仕事よりもレベル上がってるんじゃw
69デフォルトの名無しさん:2006/01/29(日) 22:07:20
>64
ありがとうございます!

うーん
replaceAll("\\\r|\\\n","");
replaceAll("[\\\r\\\n]","");
とやってもうまく行かないのですが、どうしたらいいのでしょうか?

無知ですみません。
70デフォルトの名無しさん:2006/01/29(日) 22:07:49
last・・・
最後から検索すれよ
71デフォルトの名無しさん:2006/01/29(日) 22:13:17
>>69
\が一つ多くないか?
72デフォルトの名無しさん:2006/01/29(日) 22:24:42
>>71
String before = "aaa\r\nbbb\nccc\rddd";
System.out.println(before);

String after = before.replaceAll("\\r|\\n", "");
System.out.println("\\r " + after.indexOf("\r") + "\\n" + after.indexOf("\n"));
System.out.println(after);

うまく行きました!ありがとうございます。

ところが・・・・

最初の
replaceAll("\\\r|\\\n","");
もなぜかうまく行っていました。

????
73デフォルトの名無しさん:2006/01/29(日) 22:27:08
System.exit()について教えてください。

@あるクラスA.java,B.javaがある
AA.javaにはメソッドCとメソッドDがある
Bあるサーバを起動するときにメソッドCを呼び出し、停止するときにはメソッドDを呼ぶ
CメソッドCとメソッドDを呼ぶクラスは同じ。
BB.javaにはメソッドEがある
CメソッドEはwhile(ture)があり、この中の処理をずっと続けている。

とします。

A.javaが
public void C(){
B b = new B();
b.E();
}

public void D(){
System.exit(1);
}

とすると、サーバを起動したあと、停止するのにメソッドDを呼び出したとき、B.javaは終了するので
しょうか?それともwhile(true)の処理を続けてしまうのでしょうか?

今確認できる環境がないので教えてください。よろしくお願いします。
74デフォルトの名無しさん:2006/01/29(日) 22:34:40
<%@page language="java" %>
<%@page contentType="text/html; charset=SHIFT_JIS"%>
<%@page import="jamyto.Simon" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>Simon says</title>
</head>
<body>
<h1>Simon says<br>
"<%=Simon.says()%>"</h1>

</body>
</html>
http://localhost:8090/aoki/lesson01_1/useSimon.jsp
C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\aoki\lesson01_1\useSimon_jsp.java:7: パッケージ jamyto は存在しません。
import jamyto.Simon;
^
C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\aoki\lesson01_1\useSimon_jsp.java:53: シンボルを見つけられません。
シンボル: 変数 Simon
場所 : org.apache.jsp.useSimon_jsp の クラス
out.print(Simon.says());
^
エラー 2 個
こうなっちゃうんですが・・・どうやってパッケージ指定すればいいでしょうか?
75デフォルトの名無しさん:2006/01/29(日) 22:39:08
>>73
A と B が1つの main メソッドから呼び出されて実行しているのであれば、
どこで exit メソッドを呼び出しても、丸ごとお亡くなりになります。
76デフォルトの名無しさん:2006/01/29(日) 22:46:12
どこにそのjamyto.Simon.classファイルを置いているんだ?
77デフォルトの名無しさん:2006/01/29(日) 22:54:00
Javaにあって?Perlにないものって?なんですかねぇ?
7874:2006/01/29(日) 22:54:27
WEB-INFの下のclassesです。どこにも貼り付けました。でもパッケージが存在しませんって言われます。。。。。。。。このエラー何回もやってます・・・・どなたかプロの方解決作を・・・
79デフォルトの名無しさん:2006/01/29(日) 22:55:19
>75

ありがとうございます。
AとBはmainで呼び出してるのではなく、

サーバの起動はLinuxで/etc/initd/XXXd startというコマンドをうったときにA.javaのC()を呼んで処理
するようになっています。

そして、/etc/initd/XXXd stopをうつと、A.javaのD()を呼ぶようにしています。

この場合もmainの場合と同じですか?
80デフォルトの名無しさん:2006/01/29(日) 22:55:56
そりゃ、何も変更してないのにコンパイルが通ったら怖いよな。
81デフォルトの名無しさん:2006/01/29(日) 22:56:12
WEB-INF/classes/jamyto/Simon.classにおいているよな?
Simon.javaにはpackage jamyto;って書いてあるよな?
8274:2006/01/29(日) 22:58:48
>>81
はい!書いてあるしおいています!どうすればいいのか〜〜〜
83デフォルトの名無しさん:2006/01/29(日) 23:09:15
1.5の位置よくわかんない!設定ファイルがどこだか拾えない
com.sun.org.apache.bcel.internal.*
com.sun.org.apache.xalan.internal.*
ここを見るのがいいの?
com.sun.org.apache以下でミラーリングみたいなってる
8474:2006/01/29(日) 23:22:35
TOMCATを再起動したらできました!!
85デフォルトの名無しさん:2006/01/29(日) 23:29:34
>>84
たんなる初歩の初歩じゃねぇかよ!ヴォケガ
86デフォルトの名無しさん:2006/01/29(日) 23:29:56
>>79
Unix のデーモンはよくわからんのですが。

> サーバの起動はLinuxで/etc/initd/XXXd startというコマンドをうったときに
> A.javaのC()を呼んで処理するようになっています。
> そして、/etc/initd/XXXd stopをうつと、A.javaのD()を呼ぶようにしています。

この「なっている」というのが、既にこういう仕組みが出来上がっている、という意味ならば
良きに計らってくれていることでしょう。

もし、これからだというならば、設計から大幅に見直したほうが良いかもしれません。
Java の場合、
java コマンドを実行するたびに別のプロセスが起動します。
java コマンドで起動した一連のスレッドに、介入するためには、プロセス間通信を行う必要があります。
87デフォルトの名無しさん:2006/01/29(日) 23:30:08
8873:2006/01/29(日) 23:34:14
>86
ありがとうございます。

できていると思うのですが、、、そこの部分は自分で行っているわけじゃないので。

シングルトンとかを使えばうまくいかないですか?
89デフォルトの名無しさん:2006/01/29(日) 23:41:06
うまくいかないですよ。
90デフォルトの名無しさん:2006/01/29(日) 23:41:24
シングルトン使っても
それぞれのJavaコマンドでそのオブジェクトなので無理

そういう意味合いではDBとか使うしかない
91デフォルトの名無しさん:2006/01/29(日) 23:41:36
>>88
> シングルトンとかを使えばうまくいかないですか?
シングルトンを使うにしても、同じ java プロセスを使う必要があります。
# Unix ネタに関して、なんら助言ができないことが悔しいところ。
9273:2006/01/29(日) 23:43:53
>89〜91

そうですか。ありがとうございました。

いろいろやってみます。
93デフォルトの名無しさん:2006/01/29(日) 23:48:29
>>73
つまり、Unix上でデーモンとして動いているJavaプロセスを外部からkillしたいってこと?
普通にkillすればいいような。
後始末はRuntime#addShutdownHook(Thread)でできそうな気がするんだけど、
このメソッドって信頼できる?実は使ったことない。
APIドキュメント見ると長時間の処理はするなとか書いてあるんだけど。
94デフォルトの名無しさん:2006/01/29(日) 23:50:26
まぁ、TomcatのBootstrrup系のクラスを読みこなせれば解決できると思う
9572:2006/01/30(月) 00:35:22
before.replaceAll("\r|\n", "");
でもうまく行っちゃいました。

\\\n \\n \n いったいどれが正解なのでしょうか?

そこで考えたのですが、
まず最初の
\\\n
でうまく行ったのは、エスケープシーケンス+改行記号で検索し、
エスケープシーケンスの直後に特定の文字(改行だったらn)がないため、
\\は検索対象にならなかった

2個目の
\\n
は、javaの文字列の"\n"を正規表現に変換するときに改行記号と
認識されたため、マッチした。

3個目の
\nはjavaの文字列ではなく改行記号そのものを渡して
そのまま検索したためマッチした。

ということなのでしょうか?
ご意見お願いします。
96デフォルトの名無しさん:2006/01/30(月) 00:57:36
いわゆるlengthフィールドはどのクラスで定義されてますか?
97デフォルトの名無しさん:2006/01/30(月) 00:59:52
標準 API の中だと、java.io.OptionalDataException
98デフォルトの名無しさん:2006/01/30(月) 01:07:41
あ、悪い。配列の length か。それならば『ない』が正解。
99デフォルトの名無しさん:2006/01/30(月) 01:45:12
取得したメッセージのスペースを消す方法は存在しますでしょうか?
例えば以下のようなメッセージを取得してテキストエリアに表示したいとき
余分なスペースを削除して左詰にしたいのです。どうでしょうか?
--------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<test:PA">
<PID>
urn:test:uuid-59616261646162614A8EBC911111D4A8A03
</PID>
</test:PA>
--------------------------------------------------------------------
10072:2006/01/30(月) 01:50:02
>99
まさしく今俺が悩んでるメソッドを使っちゃいけないの?

String src = src.replaceAll("^ *","");
101デフォルトの名無しさん:2006/01/30(月) 02:02:42
trim
102デフォルトの名無しさん:2006/01/30(月) 02:20:04
>>95
\\n と \n はその解釈であってると思う。

\\\n は
1.\\\n という文字列は正規表現としては バックスラッシュ+改行 と解釈される
2.バックスラッシュ+改行 というエスケープシーケンスを探すがそんなもんはない
3.バックスラッシュが無視されて単なる改行として扱われる
という流れでうまくいったんじゃないかな。

3.補足(JavaDoc より)
英字の前にバックスラッシュを使用したときに、その英字がエスケープ構文でない
場合は、エラーになります。これらのパターンは、正規表現言語の今後の拡張に
予約されています。英字以外の文字の場合は、その文字がエスケープ構文に
含まれるかどうかにかかわらず、バックスラッシュを指定できます。

これを見る限り \\あ なんかも単なる あ として扱われそう
10399:2006/01/30(月) 02:21:05
ごめんなさい自己解決してしまいました

普通にtextArea.setTabSize(1)ってすることによって
見た目が良くなりました

>100,101
レスありがとう
104デフォルトの名無しさん:2006/01/30(月) 02:30:36
>>9
うわっ、ひでえソースコードだな
頑張ったんだろうけど
こんな来たねえ無駄が多いソース書く奴はうちの会社には
入れたくねえな
105デフォルトの名無しさん:2006/01/30(月) 02:35:48
確かにすげえ汚ねえ。ああもう考えるだけでもおぞましい。クラクラするな。
106デフォルトの名無しさん:2006/01/30(月) 03:28:57
staticってなんなんですか?
考えれば考えるほどわかんなくなってきた。
ただいまSingletonの勉強中です。
良いアドバイスください。お願いします。
107デフォルトの名無しさん:2006/01/30(月) 03:53:43
>106
VMがロードされた時点ですでに使用可能な変数とかメソッド。
クラスをインスタンス化(動的)して使用可能なものじゃないやつ。
108デフォルトの名無しさん:2006/01/30(月) 03:53:47
>>106
途中まで書いて、終わりが見えなかったので、身代わりを置いておく。

クラスのインスタンスを1つに保つ(Singletonパターン) - @IT
http://www.atmarkit.co.jp/fjava/javatips/075java007.html
109108:2006/01/30(月) 04:02:17
それから、プログラミング言語における概念は、考えて分かるものじゃないから。
一つの文献で分からなければ、また別のものを見ること。
ソースコードのほうが分かるなら、ドンドン書こう。
110デフォルトの名無しさん:2006/01/30(月) 05:18:02
>>108

@ITより
>static変数を多用してしまうと、クラス間の依存関係が強くなったり
というのがよくわからん。シングルトンでも、それを呼び出すようにすれば、
依存することになるだろうに。

>動作を追跡するのが難しいコードにしてしまう原因となります。
これは、IDEとかでブレークポイントを指定したり
ログのためのメソッドを入れづらくなったりするためか?

シングルトンが必要なのは、本当にそれが唯一なのかどうかが
クライアントが知ることができない(隠蔽されている)からであって、
将来的にも一個しかインスタンスが必要ないならば、
public final な static 変数を用意することで十分だし、明快だと思う。
111108:2006/01/30(月) 05:47:23
投げてしまったので、少々フォローを。
# 全文引用で申し訳ない。
>>110
> >>108
> @ITより
> >static変数を多用してしまうと、クラス間の依存関係が強くなったり
> というのがよくわからん。シングルトンでも、それを呼び出すようにすれば、
> 依存することになるだろうに。
ご指摘の通りです。
本引用記事のまとめにも、その旨記述されています。

> >動作を追跡するのが難しいコードにしてしまう原因となります。
> これは、IDEとかでブレークポイントを指定したり
> ログのためのメソッドを入れづらくなったりするためか?
デバッグの手法に問題があるのではなく、
デバッグそのものが複雑になりやすい、とのことだと思います。

> シングルトンが必要なのは、本当にそれが唯一なのかどうかが
> クライアントが知ることができない(隠蔽されている)からであって、
> 将来的にも一個しかインスタンスが必要ないならば、
> public final な static 変数を用意することで十分だし、明快だと思う。
この件に関して調べたところ、以下のURLを見つけました。
このURLでは、柔軟性とパフォーマンスなどに関する意見が出されています。
http://www.freeml.com/message/patterns/857
112デフォルトの名無しさん:2006/01/30(月) 09:46:19
>>107
VM じゃなくてクラスがロードされた時点ね。
113デフォルトの名無しさん:2006/01/30(月) 11:39:08
Swingを使ってゲームを作っている者ですが、
マウスのアイコン画像を、自分で作った画像に変更することはできますか?
ご教授よろしくおねがいします><
114デフォルトの名無しさん:2006/01/30(月) 11:45:27
java.awt.Component#setCursor(java.awt.Cursor)
115デフォルトの名無しさん:2006/01/30(月) 12:03:56
JavaでLinux用のデバイスドライバを自動的に作るシステムを開発した。
まぁ、もちろんJavaからCを呼んでやったわけで、厳密に言えばJavaで書いたわけではないんのだけどな。
正直、革命おこすよ、俺は。
116デフォルトの名無しさん:2006/01/30(月) 12:22:17
>>113
なんか最近見た内容だな
解決方法もかいてあったはずだけど
117デフォルトの名無しさん:2006/01/30(月) 12:57:24
Servlet環境での設定情報の保持について悩んでいます。
WARでWEBアプリを配布したいのですが、DBへの接続情報、ちょっとした設定項目などはどういった方法で保持したら良いでしょうか?
プロパティファイルをWARに含むことも考えたのですが、サーブレットコンテナがWARを展開後に書き込み権限があるかどうか良く分かりません。
コンテナ依存や、環境依存で書き込めないと困るので。
こういった情報を永続化する方法はないでしょうか?
保存期間としては、対象のWEBアプリがインストールされて設定されてから、アンインストールされるまでです。
よろしくお願いします。
118デフォルトの名無しさん:2006/01/30(月) 13:08:44
>>117
DB接続はコンテナ管理のデータソース任せにするのが吉。
この辺はサーバ依存なので一概には言えないけど、例えばTomcatならこんな感じ。
ttp://www.jajakarta.org/tomcat/tomcat5.0/ja/docs/tomcat-docs/jndi-resources-howto.html
コンテキスト記述子はconf/server.xmlじゃなくて個別のファイルにすべきだと思うけど。

データソースの設定はサーバ依存だけど、warの中身を変更せずに動かすことができる。
119118:2006/01/30(月) 13:10:16
あ、こっちの方がわかりやすかったか。
ttp://www.hellohiro.com/datasource.htm
120117:2006/01/30(月) 13:18:23
>>118
>>119
ありがとうございます。
あとログレベル、ログファイルの保存先等を保存しておきたいと思ってます。
こちらも同様に、何かいい方法はないでしょうか。
当初、ServletContext.log()を使って出力しようとしていたのですが、WebSphereのサイトで使うとパフォーマンス低下の恐れがあると書いてありまして。
インストール後に、ブラウザ上から設定できるのがベストなんですが。
121デフォルトの名無しさん:2006/01/30(月) 16:06:42
>>115
おお。いいねえ。ついでに Kernel も Java に書き換えておいてよ。
122118:2006/01/30(月) 16:28:15
>>120
log4jを使っているなら、ここの「サーブレット初期化」参照。
ttp://www.jajakarta.org/log4j/jakarta-log4j-1.1.3/docs-ja/manual.html
他は知らん。
123デフォルトの名無しさん:2006/01/30(月) 17:38:06
Image imgs[ ]=new Image[3];
int n=1;   Label lb; Button bt1, bt2, bt3;
public void init(){
int i;
for (i=0; i<3; i++) {
imgs[i] = getImage(getDocumentBase(),"img"+(i+1)+".jpg");
}
lb = new Label("画像番号を選択して下さい");
bt1 = new Button("画像1");
bt2 = new Button("画像2");
bt3 = new Button("画像3");
add(lb); add(bt1); add(bt2); add(bt3);
bt1.addActionListener(this); bt2.addActionListener(this);
bt3.addActionListener(this);
}
public void paint(Graphics g){
g.drawImage(imgs[n-1],200,50,this);
}
public void actionPerformed(ActionEvent e) { if(e.getSource() == bt1)
n=1;
else if(e.getSource() == bt2)
n=2;
else
n=3;
showStatus("画像番号"+n);
repaint();
}
}
これを朝、昼、晩ボタンにして、ボタンを押すとおはよう、こんにちは
こんばんは、と出るようにしたいんですが。
124デフォルトの名無しさん:2006/01/30(月) 18:37:51
>>123
好きにしたまえ
125デフォルトの名無しさん:2006/01/31(火) 00:42:51
>>118
>>120
ちょっと質問なんですけど、DBにバイナリファイルはぶち込めるんですかね?
126デフォルトの名無しさん:2006/01/31(火) 00:48:55
俺もJAVAやろうかな、、、。Javaやってないのに俺このスレいるんだよね
127デフォルトの名無しさん:2006/01/31(火) 01:10:22
>>125
バイナリはぶちこめるがバイナリファイルはぶちこめない
128デフォルトの名無しさん:2006/01/31(火) 02:49:09
>>126
好きにしたまえ
129デフォルトの名無しさん:2006/01/31(火) 03:33:52
>>123
まず、マイクを買え。それから発声練習だ。
130デフォルトの名無しさん:2006/01/31(火) 03:40:23
非webのJavaアプリで、DB接続するにはどうするのが一般的ですか?
サーブレットだとコンテナからデータソース取って以下略ができますけど、
非サーブレットだと初心者本にあるようなClass.forName()使っていいんでしょうか?
131デフォルトの名無しさん:2006/01/31(火) 04:38:27
すみません。
ここで質問するときのソースコード貼り付けは、
全角スペース使って、インデント作ったほうがいいんでしょうか?

半角スペースやタブは、反映されないようなのですが、、
全角にすると、コンパイルでひっかかる等、逆に不便になってしまうのかな、と
132デフォルトの名無しさん:2006/01/31(火) 04:55:09
だいじょうぶ。ここのひとは皆んなJScriptで自分で整形処理やり直してます
133デフォルトの名無しさん:2006/01/31(火) 05:30:43
すいません、ちょっと質問させてください。
例えば「abc.txt」の中身が

abc
def
ghi

だとして、配列の中に一行ずつ

a[0]=abc;
a[1]=def;
a[2]=ghi;

としたいのですが、ファイルを行ごとに読み込む手段が分からず困り果てています。
非常に単純な質問で申し訳ありませんが、どなたかいい手段をご存知ありませんか?
134デフォルトの名無しさん:2006/01/31(火) 05:36:03
fgetc()
135デフォルトの名無しさん:2006/01/31(火) 05:47:30
fgetcについて調べてみたのですが、どうもC言語のようでした。
よろしければJAVAでの場合についても教えてください。
136デフォルトの名無しさん:2006/01/31(火) 06:25:41
>>133
import java.io.*;

try {
 BufferedReader bf = new BufferedReader(new FileReader("abc.txt"));
 
 String[] a = new String[3];
 int i = 0;
 while( bf.ready() ) {
  a[i] = bf.readLine();
  i++;
 }
}
catch(IOException e) {
 e.printStackTrace();
}

java.io.BufferedReaderを使うところがポイント。
後はAPIを眺めてください。

137デフォルトの名無しさん:2006/01/31(火) 06:39:24
>>136
ふぉおおおおおおお出来ました!ありがとうございます!

ついでと言ってはなんですが、もう一つ質問させてください。
 String[] a = new String[3];
この[3]の部分なのですが、ファイルの行数を自動的に読み取って値を入れてくれるようにはできないでしょうか?
138137:2006/01/31(火) 06:58:40
自己解決しました。
[256]とかしておいて入った部分の配列だけ使うようにしたら動きました。
139デフォルトの名無しさん:2006/01/31(火) 08:01:48
>>137
ArrayList
140137:2006/01/31(火) 08:48:54
すいません、また質問させてください。

例えばHighScore.txtがあり、中身が

10000
7000
5000
3000

だったとき、大小関係を比較して、例えば6000なら7000と5000の間に、
1000なら一番下に自動的書き込むにはどうしたらいいでしょうか?
141デフォルトの名無しさん:2006/01/31(火) 08:52:22
ソートすればいいじゃない
142デフォルトの名無しさん:2006/01/31(火) 09:10:35
HighScore.txtはソート済みなのか?
143デフォルトの名無しさん:2006/01/31(火) 09:12:51
常に大小比較をして書き込んでいるので、ソート済みと見ていいと思います。

まだソートのやり方についてよく分かっていないので、ちょっと調べてみます。
144137:2006/01/31(火) 10:37:53
すいません、色々調べたのですがいまいち分かりませんo....rz
145デフォルトの名無しさん:2006/01/31(火) 11:06:58
146デフォルトの名無しさん:2006/01/31(火) 11:15:48
String[] aに元のが入ってるとして

List list = new ArrayList();
for (int i = 0; i < a.length; i++) {
  list.add(Integer.parseInt(a[i]));
}

//新しい数を後ろに追加
list.add(Integer.parseInt("5000"));

//並べ替え
list = Collections.sort(list);

//String配列に格納
String[] s = new String[list.size()];
for (int i = 0; i < list.size() ; i++) {
  s[i] = String.valueOf(list.get(i));
}

あとはファイルに書き込んでほしい
147146:2006/01/31(火) 11:26:42
× list = Collections.sort(list);
○ Collections.sort(list);
148デフォルトの名無しさん:2006/01/31(火) 11:38:38
度々の助言、本当にありがとうございます。
>>146さんの方法でやってみたのですが、

Exception in thread "main" java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at HighScore.Write(Server.java:52)
at Server.main(Server.java:221)

このようなエラーが出てしまっています。自力でやっていたときも同じようなエラーが出ていました。
うーん、何か根本的に間違えているのでしょうか?
149デフォルトの名無しさん:2006/01/31(火) 11:45:06
すいません、ちょっと前ので似たような質問なんですが
133さんのに似ているのですが
例えば、「jap.txt」の中身が
りんご
バナナ
カエル

だとして、

もう一つ「eng.txt」というものがあり中身が

apple
banana
flog

であった時、「jap.txt」を配列にいれてn番目の日本語に対して、英語で答えよと聞かれるようにし
その結果を「eng.txt」のn番目と比較して、正解かを調べるプログラムを作りたいのですが
どういうふうにすればいいのか、どなたか教えてください・・・。
150デフォルトの名無しさん:2006/01/31(火) 11:45:52
parseIntする前にtrimしろ
151デフォルトの名無しさん:2006/01/31(火) 11:46:25
宿題スレ行け、ハゲども
152デフォルトの名無しさん:2006/01/31(火) 11:54:24
>>148
aの入ってる部分だけ使いましょう。(最初のループのa.lengthを書き換え)
153デフォルトの名無しさん:2006/01/31(火) 12:07:11
宿題スレで聞きなさい
ここは貴方の家庭教師ではありません
154デフォルトの名無しさん:2006/01/31(火) 12:24:24
>>130
すきなように
サーブレットコンテナもJavaアプリだ
データソース使おうかドライバマネージャつかおうがかまわん
155デフォルトの名無しさん:2006/01/31(火) 12:32:23
>>130
データソースにこだわるならこういう技がある。
ttp://weblogs.java.net/blog/simongbrown/archive/2003/11/using_mock_nami.html
結局Class.forName()しなきゃならんことに代わりはないが、
DB関連のコードがJNDI使用の可否に依存しなくなるという点はメリットかも。
コネクションプールの設定もMockContext内に隠蔽できるし。
156デフォルトの名無しさん:2006/01/31(火) 13:40:45
>>149
だから両方とも配列に入れればいんだよ。
157デフォルトの名無しさん:2006/01/31(火) 15:38:38
POIを使ってエクセルファイルを作ろうとしています。
ここでセルに数値を入れるのですが、エクセルで開いたときに
カンマが入った数値にしたいと思います。簡単に実現する方法は
ありますでしょうか?

例)
現状 [12345]
改良 [12,345]
158デフォルトの名無しさん:2006/01/31(火) 16:08:24
public class rei12 extends Applet implements Runnable {
Thread th = null;
int x;
Image img;
public void init() {
img = getImage(getDocumentBase(),"img1.jpg");
}
public void start() {
if (th == null) {
th = new Thread(this);
th.start();
}
}
public void run() {
for (x=0; x<400; x=x+10) {
repaint();
try {
th.sleep(100); }
catch(InterruptedException e){}
}
}
public void paint(Graphics g) {
g.drawImage(img,x,10,this);
}
画像を左右にはね返させたいんですが。
159デフォルトの名無しさん:2006/01/31(火) 16:23:40
160デフォルトの名無しさん:2006/01/31(火) 16:34:13
文字コードの質問です。

※strの中には文字列が入っています。
byte[] b = str.getBytes();
で、取ったバイト列 1B2447230F を例えばunicodeのE001に
変換する方法を教えてください。
161デフォルトの名無しさん:2006/01/31(火) 16:47:39
>>160
1B2447ってISO2022JPを独自拡張してんのか?
U+E001もprivate use areaのコードポイントだし。

もし独自拡張使ってるなら自力で変換するか、
独自拡張に対応した java.nio.Charset とかを探す事になると思われ。
162デフォルトの名無しさん:2006/01/31(火) 16:54:57
×java.nio.Charset
○java.nio.charset.Charsetの実装(たぶん探すだけ無駄)

その後の 230F もありえねー並び方してんな。SO無しでSIかよ、みたいな。
163デフォルトの名無しさん:2006/01/31(火) 17:10:37
>161さん

早速レス、アリガトウございます!
実は、このU+E001ですがvodafone絵文字のエスケープ文字らしんですよ。
これは、自力で変換するしか方法無いんですかね・・・
164デフォルトの名無しさん:2006/01/31(火) 17:11:57
あ、ちなみに独自拡張していない標準のものはどうやって、
変換すればいいでしょうか?
165デフォルトの名無しさん:2006/01/31(火) 17:28:22
>>164
byte[] b = new byte[]{ 0x1B, 0x24, 0x42, 0x21, 0x21, 0x1B, 0x28, 0x42 };
String s = new String(b, "ISO2022JP");
System.out.printf( "0x%04X %n", (int)s.charAt(0)); //5.0以降

他にも Charset.forName("ISO2022JP").decode(ByteBuffer.wrap(b)) とか
new InputStreamReader(new ByteArrayInputStream(b), "ISO2022JP") とか。
166デフォルトの名無しさん:2006/01/31(火) 17:53:31
Java3DのInterpolatorを使ってアニメーションをさせているのですが、
これを他クラスから、停止などの制御を行うためにはどうしたら良いでしょうか?
167デフォルトの名無しさん:2006/01/31(火) 19:10:43
大変初歩的な質問で申し訳ないです。
現在ベクター内にある条件のレコードで消すメソッドを書いています。
ところが条件に一致してもすべてが一回で消えてくれません。
何回か呼び出すとすべて消えているのですが・・・

private void removeRecords(String code){
       code= SystemUtility.deleteSpace(code); // コードの余分なスペースを削除
      for (int i = 0; i < fileRecords.size(); i++){
          FileRecord r = fileRecords.get(i);
          String s = SystemUtility.deleteSpace(r.getField(IOConstants.YOUBYO_TOKUI_SAKI_CODE));//コードのヘッダー
          if (s.equals(code)){
              fileRecords.remove(i); <- ここで削除している
          }
      }

}

何回か呼び出さないと消えないというのはどういうことでしょう?
Vectorのremove(int i)で消すと消す前のインデックスの順番が変わってくるのでしょうか?
よろしくご指導お願いしまつ。ちなみにremove(Object)でもやりましたが、だめでした・・・

168デフォルトの名無しさん:2006/01/31(火) 19:21:18
Vector 内の指定の位置にある要素を削除します。
それ以降に要素があればそれらを左に移動し、各要素のインデックスから 1 を減らします。
Vector から削除された要素を返します。
169デフォルトの名無しさん:2006/01/31(火) 19:29:42
図に書いてみれば分かるよ
消せばリストがどうなるか
170デフォルトの名無しさん:2006/01/31(火) 19:30:23
>168
即レスありがとうございます。
プログラムを書き換えています。
171デフォルトの名無しさん:2006/01/31(火) 19:31:01
>169
やってみまつ
172デフォルトの名無しさん:2006/01/31(火) 19:33:49
>168-169
とりあえず
  if (s.equals(code)){ 
        fileRecords.remove(i); <- ここで削除している 
    i = i-1;
  } 
と書いてうまくいきましたありがとうございまつ
173デフォルトの名無しさん:2006/01/31(火) 19:45:44
そりゃあんまりだ。

for (int i = fileRecords.size() - 1; i >= 0; i--){

for (Iterator<FileRecord> it = fileRecords.itrator(); it.hasNext(); ) {
FileRecord r = it.next();
if (s.equals(code)) {
it.remove();
}
どっちかにしとけ
174デフォルトの名無しさん:2006/01/31(火) 19:49:56
>173
ありがとさんでつ(><)効率悪いのはわかっとったんでつが・・・
これでいいやという感じにしちゃいました。
コードはありがたく使わせてもらいまつ
175デフォルトの名無しさん:2006/01/31(火) 20:24:30
サンプルコードを読んでると、たまーにObject型に「.class」をつなげてあるの見るんだけど、あれって何を表してるの?
176デフォルトの名無しさん:2006/01/31(火) 20:33:04
単にClassオブジェクトを取得しているだけなんでは。
177175:2006/01/31(火) 21:27:45
>>176
亀レスでスマソ。
とゆーことは、Objectの型をClassオブジェクトのかたちで取得するってことなんですね。
ありがとうございます。
でわ、
  Class cl = Date.class;
みたいに書くと、
  Date d...;
  if (e == lc) // true
な比較ができるってことでしょうか?
この場合、
  if (e equals(cl));
じゃなくて良いんですよね?

重ねてごめんなさい。
178175:2006/01/31(火) 21:30:19
すみません・・・;;
  Date d...;
なので、
  if (d == cl)
でした。
勉強し始めた厨房なので許してください。
179デフォルトの名無しさん:2006/01/31(火) 21:39:16
for文で回すなら>>173みたいにした方がいいの?
180デフォルトの名無しさん:2006/01/31(火) 21:49:23
Javaのエラー情報でお聞きしたいのですが、コンパイルは出来るんですが、
クラスファイル生成して、いざ実行に移すと
Could not open ディレクトリへのパス名〜jre1.5.0_06\lib\i386\jvm.cfg'
このエラーが出て実行できません。
何か対処法は無いでしょうか?知っていたら教えていただけないでしょうか
181180:2006/01/31(火) 21:51:07
すいませんバージョンはjdk-1_5_0_06-windows-i586-p.exeです
182158:2006/01/31(火) 21:53:22
期限が近いんです、教えてください。
183デフォルトの名無しさん:2006/01/31(火) 21:55:46
>>182
馬鹿につける薬はねーよ
184デフォルトの名無しさん:2006/01/31(火) 22:05:54
javax.ejb.Injectってどこのライブラリに入ってるの?
javax.ejb.Statelessは見つかるのに・・・
185デフォルトの名無しさん:2006/01/31(火) 22:06:05
>>178
いや、その比較はできんよ。dはDate型のインスタンスではあるが、Dateの
Classオブジェクトではない。だから==では一致しない。
そもそも、==って、同じインスタンスでないと一致しないよ。Dateのインスタンスと、
Date.class(Classクラスのインスタンスと言って良いかと)は別のインスタンスだよ。

Classオブジェクトを取得する理由はいろいろあるけど、一番の理由はリフレクション
を使いたいからじゃないかな。クラスの情報そのものを取り扱いたい時に使うよね。
どんなメソッドがあるか、とか調べるとき。

>>178が見た例としては、どんなのがあったわけ?
186158:2006/01/31(火) 22:14:25
>>182
わかんないだ?ww
187デフォルトの名無しさん:2006/01/31(火) 22:20:47
182 名前:158 [↓] :2006/01/31(火) 21:53:22
期限が近いんです、教えてください。

186 名前:158 [↓] :2006/01/31(火) 22:14:25
>>182
わかんないだ?ww





いったい何がしたいんだ....
188デフォルトの名無しさん:2006/01/31(火) 22:21:45
期限って宿題なら宿題スレいけば
189175:2006/01/31(火) 22:32:57
>>185
たびたびありがとうございます。
  Date d...;
  Class cl = d.getClass();
  if (cl == Date.class)
ならできるとゆーことでしょうか?
Date型を保持したインスタンス同士じゃないとダメってことですよね?
すみません。なんとなくわかったよーな気がします。
いまいち理解があさいですが;;
僕が見た例は、
  Class cl = Class.forName(stringClassName);
  Class supercl = cl.getSuperclass();
  ...;
  if (supercl != null && supercl != Object.class)
  ...;                  ~~~~~~~~~~~~
なコードでした。そのものリフレクションのサンプルです。
リフレクションって、なんのために必要なのかもよくわからなくて熱がでできそうです。
言い直すと、クラスの情報を取り扱うメリットについてよくわかりません。
てゆーか、いろんなクラスとかメソッドのメリットもわからないものだらけですが;
これから知識と経験を深めてわかってくるのだと思って頑張っています;

ただ、「Object.class」についてはわかってきたよーな気がします。うれしいです。
190175:2006/01/31(火) 22:49:10
あっ、ちなみに
  if (supercl != null && supercl != Object.class)
は、supercl は、null じゃなくて かつ java.lang.Object クラスじゃなかったら
if が true の時の処理をしなさい、って意味ですよね?
if が true の時の処理は スーパークラスの クラス名を表示する処理でした。
Object クラスが直接スーパークラスの時には表示を省略する処理だとわかりました。
本当にありがとうございます。
191175:2006/01/31(火) 22:53:22
>supercl は、null じゃなくて かつ java.lang.Object クラスじゃなかったら
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
はjava.lang.Object 型を保持した Class オブジェクトじゃなかったら、ですね。
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ごめんなさい。
192180:2006/01/31(火) 22:59:05
再インスコしたらでけたぁ!!ハローワールドが出た!!
これからお世話になりますヾ(・∀・`)ノ
193デフォルトの名無しさん:2006/01/31(火) 23:33:05
>>136
BufferedReader#ready で終了判定するのは問題外。
194デフォルトの名無しさん:2006/01/31(火) 23:35:41
>>193
なぜ?
195!=193:2006/01/31(火) 23:50:09
>>194
俺の場合は BufferedReader#readLine() != null で終了判定してるけど。

BufferedReader#ready()だと、ラップした入力ストリームが「何らかの理由で」読み込みをブロックしただけで
ループ抜けるよね。たとえストリームがまだデータを返す場合でも。

ファイルの場合入力ストリームがブロックされる状況があるのか、寡聞にして知らないんだが、
それを置いておくとしても
BufferedReaderのメソッドの本来の使い方を考えると間違ってると思うよ。
196デフォルトの名無しさん:2006/01/31(火) 23:59:10
>>195
@ITのサンプルで有ったからそのまま使ってたんだけど
参考にするよ
197!:2006/02/01(水) 00:17:57
>>196
@ITのサンプルって、誰のかと思ったら…案の定山田か。
198デフォルトの名無しさん:2006/02/01(水) 00:28:48
山田って人駄目なの?
199デフォルトの名無しさん:2006/02/01(水) 00:33:23
>>189
> リフレクションって、なんのために必要なのかもよくわからなくて熱がでできそうです。
> 言い直すと、クラスの情報を取り扱うメリットについてよくわかりません。

そりゃあ、あるメソッドを実際に持ってるかとか、スーパークラスはなんなのかとか調べる方法が
リフレクションでクラス情報を引っ張り出す以外にないから必要なんだべ。

まあゆっきり咀嚼していったらいいと思うよ。
200デフォルトの名無しさん:2006/02/01(水) 00:35:42
>>196
Javadocにもちゃんと書いてあるからね。

BufferedReader#readLine()
>戻り値:
>行の内容を含む文字列、ただし行の終端文字は含めない。ストリームの終わりに達している場合は null
201199:2006/02/01(水) 00:36:23
ゆっきり=ゆっくり
orz
202197:2006/02/01(水) 00:43:51
>>198
俺の印象では、記述量とその広い範囲は評価できるが、原理を把握せず微妙に定跡をはずした事を書く、というところ。
著書も、量は多いけどマニュアルの翻訳といった感じで、いまいち買う気になれなかった。
まあ、Amazonのレビューは悪くないので、悪く思ってるのは俺だけかもしれん。

スレ違いスマン。
203デフォルトの名無しさん:2006/02/01(水) 00:44:53
いや、山田はさけたほうがいいだろ。
204デフォルトの名無しさん:2006/02/01(水) 01:00:34
@ITすげぇなぁ
動かないコードどうどうとのせるなんて
205デフォルトの名無しさん:2006/02/01(水) 01:07:21
ほんとだ
その記事検索したら終了処理になぜかready使ってる

ソケットとか圧縮ストリームつかうといくらでもfalseかえってくるのに
遅いマシンだとローカルファイルでもfalseかえるかもしれんのにね

山田すげぇ
206デフォルトの名無しさん:2006/02/01(水) 01:39:35
readLine()はストリームの終端以外はnullにならないのかな?
207デフォルトの名無しさん:2006/02/01(水) 01:40:44
初心者の質問じゃないと思うけど、WININETでサーバーサイドのJAVAを実行できますか?
その場合、クラス名とかfunction名とかパラメータの渡し方はどうすればいいんでしょうか?
208デフォルトの名無しさん:2006/02/01(水) 01:45:56
山田以外にも@ITではready使いまくりな訳なんだが
209デフォルトの名無しさん:2006/02/01(水) 02:13:24
>>179
新しく別のリストを作成して
削除しないものを突っ込んでいった方がいい。
210デフォルトの名無しさん:2006/02/01(水) 02:15:07
>>206
ならない。
211デフォルトの名無しさん:2006/02/01(水) 02:21:25
説明ヘタなので、やりたい事と抜粋したソース載せます。
page1.jsp内のsubmitでデータをサーブレットへ送り、サーブレットで受信したデータを処理して、javaの変数へ代入します。
その後page2.jspへ行くのですが、page2.jspからjavaにある代入してあるデータを読み込むにはどうすればよいのでしょうか。
javaソース
public class Topic {
private int id;
private String name;
public int getId(){
return id;
}
public void setId(int id){
this.id = id;
}
public int getName(){
return name;
}
public void setName(String name){
this.name = name;
}
}
サーブレット
Topic topic = new topic();
topic.setId(page1.jspから受け取ったデータ);
topic.setName(page1.jspから受け取ったデータ);
request.getRequestDispatcher("/page2.jsp").forward(request, response);
page2.jsp
Topic topic = new Topic();←初期化されちゃいますよね?
topic.getId();
tipic.getName();
こんな感じです。
サーブレットで受け取ったデータをset○○すれば、記載してるのとは別のjavaファイルではget○○で、(引き数で)呼び出せるのですが
jspではどのようにして呼び出せばいいのかわかりません。こんな説明ではわかりづらいでしょうが、お助けください。
212デフォルトの名無しさん:2006/02/01(水) 02:32:25
javaアプレットの実行速度を遅くする方法はないでしょうか?

ブラウザ上で動くゲームが早すぎるので・・・。
213130:2006/02/01(水) 06:59:22
>>154-155
ありがとうございます。
ちなみに、非webアプリで使いやすいDBアクセス周りのユーティリティはありますでしょうか。
導入がラクそうなDBUtilsは思いっ切りDataSource使ってますね・・・使えはするでしょうけど。

>>155
リンク先の意図がいまいちわからないんですが、
InitialContextなりDataSourceを自力で実装すれば、ということですよね?
(結局内部でClass.forName()することになるんですよね?)
214デフォルトの名無しさん:2006/02/01(水) 07:29:29
初心者の純粋な疑問なんですが、
JavaアプリケーションとJavaアプレットの利点と欠点ってなんなんでしょうか。

参考書やネットで色々調べても大半がアプレットを使用していて、アプリケーションで作る意味があんまよくわかんないです。
いい解説ページとかあれば教えてください。
215デフォルトの名無しさん:2006/02/01(水) 07:49:37
>>214
まず、アプレットは、システムのファイル操作ができない。

ファイルへの読み書きができないとなると、
プログラムはかなり制限されたものになる、というのが一つあるな。
216デフォルトの名無しさん:2006/02/01(水) 07:53:57
217デフォルトの名無しさん:2006/02/01(水) 08:06:38
>>214
たとえアプレットでも署名つきアプレットなら警告ダイアログがでるけど、ローカルファイルへ
アクセス可能だし、あまりアプレットの利点は少なくなってきている。
WebStartを使えばURLアクセスだけで、Javaアプリが実行できるし、
資産配布、資産管理も容易。
アプレットはJavaのバージョン1.1でも起動する小さなプログラムであれば、
問題ないけど、最新のJavaのバージョンを使って動かしてもらいたかったり、
大量のデータを処理するのであれば、Javaアプリの方があとあと行き詰ることがない。
218デフォルトの名無しさん:2006/02/01(水) 09:22:17
Mapの使い方がよくわからないのですが、
Stringの数を数え挙げるプログラムを作りたいんです。
1.Stringに対してintを割り振る
2.int昇順でソートする
3.intに対して++intが使える
っていうクラスはないですかね?
なければ自分で作るまでなんですが。
219デフォルトの名無しさん:2006/02/01(水) 09:34:11
StringとIntegerのペアでTreeMapに突っ込んで、独自のComparator使えばいいだろ
1足すときはputし直しだな
220デフォルトの名無しさん:2006/02/01(水) 09:44:28
>>219 やはりputし直しですか、
でもvalue同士を比較できるのですかね?
221デフォルトの名無しさん:2006/02/01(水) 09:50:43
ああ、ダメか。
じゃあStringとintをフィールドに持つクラス作って、TreeSetに突っ込むか。
equals、compareTo、1足すメソッド作ればいけるんじゃね?
222デフォルトの名無しさん:2006/02/01(水) 09:59:09
ここまで意味の分からない文章は久しぶりで、いっそ清々しくもありますね。
電波系の怪文書にも似た、不思議な浮遊感すら感じさせますね。
223デフォルトの名無しさん:2006/02/01(水) 10:07:21
ああ、
Map map = new Map(new Comparator(){
public int compare(Object o1,Object o2){
return (int)map.get(o1)-(int)map.get(o2)
}})
を?ぶち込めばいいわけですか。やってみます。わかりました。
224デフォルトの名無しさん:2006/02/01(水) 10:23:02
Mapにプリミティブ型は入れられねえって
225デフォルトの名無しさん:2006/02/01(水) 10:50:10
223 はできなかった。これを参考にしてみます。sageます。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/language/autoboxing.html
226デフォルトの名無しさん:2006/02/01(水) 11:27:54
>>208
それやばいんじゃ・・・
227デフォルトの名無しさん:2006/02/01(水) 15:46:59
どうもです。
また文字コードの問題で書き込みをさせていただきます。

WEBの入力フォームからbodyパラメーターに入れられて送られてきたvodafoneの絵文字を
String str = request.getParameter("body").getBytes("Shift_JIS");
でとりだし表示させてみると、ある絵文字の場合1B244723Fとなります。

ボーダフォンの絵文字一覧と照らし合わせるとこの絵文字のUnicode表記は
E003と記述されています。

この1B244723FをE003に変換する方法はあるのでしょうか?
それともこの2つは全く関係の無いものなのでしょうか?
文字コードに関してなんか勘違いをしてるんでしょうか?
頭がパニックです・・・

詳しい人お願いします!!
228デフォルトの名無しさん:2006/02/01(水) 16:04:29
質問です。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/rmi/hello/hello-world.html
を身ながらlinuxでrmiを動かそうとしている者ですが、rmiregistryは起動できるのですが、Server Client共に起動と同時にエラーが大量にでて動きません。
windowsでは問題なく動きました。自分の環境でのコマンドは
java -classpath /home/username/rmi example.hello.Server
です。原因が分かる方がいましたらご教授お願いします。
以下に実行時にはき出されたエラーを出します。
229デフォルトの名無しさん:2006/02/01(水) 16:05:16
Server exception: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: example.hello.Hello
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: example.hello.Hello
at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:385)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:595)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:343)
at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
at example.hello.Server.main(Server.java:61)
230デフォルトの名無しさん:2006/02/01(水) 16:06:00
Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: example.hello.Hello
at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:375)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:595)
231デフォルトの名無しさん:2006/02/01(水) 16:06:32
Caused by: java.lang.ClassNotFoundException: example.hello.Hello
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at sun.rmi.server.LoaderHandler.loadProxyInterfaces(LoaderHandler.java:707)
at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:651)
at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:588)
at java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:628)
at java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:294)
at sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:238)
at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1494)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1457)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1693)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
... 9 more
232デフォルトの名無しさん:2006/02/01(水) 16:58:30
ごめん、調べたり、本片手にぷろぐらみんぐしてるんですが
どうしてもインスタンスの概念が理解できません

クラスがメニューで、インスタンスが料理したものとか説明されても
public class helloworld {
public static void main(String[] args) {
         System.out.println("Hellow baka");
}
}

これのどこがクラスでどこがインスタンスなのかわかんねぇYO
インスタンスってなんだよ。カップメンかよ。うまいのかよ
ヽ(`Д´)ノウワーン
233デフォルトの名無しさん:2006/02/01(水) 17:14:16
>>228
Hello.classはどこに置いてあるの?

>>232
そのメニューと料理のたとえはすごくわかりにくい。
そのコード例も、インスタンスの説明には不適切。
別の本にしたほうがいいかも。
234デフォルトの名無しさん:2006/02/01(水) 17:17:36
インスタンスをわかりやすく説明してくれませんか
もう、なんか、疲れたお
235デフォルトの名無しさん:2006/02/01(水) 17:19:44
>233
イメージで言うと

レシピと料理
設計図と完成した自動車

左がclass 右がinstance
236デフォルトの名無しさん:2006/02/01(水) 17:22:01
それは本にもありますた(´・ω・`)

ソースの中で、何がクラスで何がインスタンスなのかわかんなくて。。。
なんか「newでインスタンス化して」とかわっけわかんねぇYO
日本語しゃべってくれよ、独習JAVAのヴァカヽ(`Д´)ノウワーン
237デフォルトの名無しさん:2006/02/01(水) 17:31:15
>>233
/home/username/rmi/example/hello/Hello.class
です。
238デフォルトの名無しさん:2006/02/01(水) 17:50:51
>236
わかったのはお前が馬鹿だということ、
そういうやつは習うよりなれろ
書け、読め
239デフォルトの名無しさん:2006/02/01(水) 18:04:17
馬鹿だから、わかりやすい言葉に置き換えてもらえないとわかんないんだYO
書け・読めでやってきたけど

いきなりインスタンス化だのなんだの変な言葉出てきてわっかんねぇんだYO
ヴァkヴァkマンコ!!
240デフォルトの名無しさん:2006/02/01(水) 18:14:14
>>235でわからないんじゃ、いくら他の言葉で言ったってわからないだろ
241デフォルトの名無しさん:2006/02/01(水) 18:16:14
> 日本語しゃべってくれよ
ラグビーを闘球と言ったらわかりやすくなるかって問題だな。
闘球だとアメフトと混同しそうだが。

理解できないのはインスタンスの概念が>>236にとって難しいからであって、
インスタンスが外来語かどーかは関係ない。
242デフォルトの名無しさん:2006/02/01(水) 18:24:03
>239
クラス=自動車の設計図。設計図だから、まだ車はどこにもない。
ただ図面として存在してるだけで、動かすこともできない。

この「自動車設計図」を元に自動車を作ると、ようやく自動車が完成するでしょ?
で、完成した自動車はインスタンス(もしくはオブジェクト)と呼ぶ。

インスタンスっていうのは、日本語に訳せば「実体」。
クラスの時点では実体がないの。ただ図面だけ。
Javaではnewってしてやると、実体ができる。そして動かせる。
この「実体を作る」作業を「インスタンス化」とも呼ぶ。

こんな説明でいいかな。間違ってない?
自分も初心者だからおかしいかも。とりあえずこれ読めばいいと思うよ。
http://computers.yahoo.co.jp/dict/programming/object/2160.html
243デフォルトの名無しさん:2006/02/01(水) 18:24:57
記憶領域(メモり)を割り当ててクラスと結びつけることをインスタンス化って言うんだよ
なんていうか、プログラムも実際に走らせないとただのファイルだろ?

クラスが動いてる時には、どこかに変数を記憶しておく場所が必要なわけで
そのクラス用に割り当てられた(newされた)記憶領域がインスタンスなのさ
俺はこんな感じで理解してるけど、間違ってたらフォローよろしく
244デフォルトの名無しさん:2006/02/01(水) 18:28:00
ttp://www.geocities.jp/miyake_kobo/kowaza/kowaza025.html

ここのスクリプトを使いたいんですが
多少の改良を加えれば複数の写真でも使えるとかいてあるんですが
具体的にはどのような改良が必要なんでしょうか
245211:2006/02/01(水) 18:29:14
あの、ここってjavaオンリーでしょうか?
追加で質問です。
jsp内でStringTokenizerを使おうとしたら

生成されたサーブレットのエラーです:
StringTokenizer cannot be resolved or is not a type

と出てきました。
どうすればjsp内で使えますか?

スレ違いでしたら言ってください。
246デフォルトの名無しさん:2006/02/01(水) 18:32:54
ごめんなさい。できました。
<%@ page import="java.util.StringTokenizer"%>
247デフォルトの名無しさん:2006/02/01(水) 18:36:37
>246
間違っていたところはそこじゃないだろw
248デフォルトの名無しさん:2006/02/01(水) 18:48:22
>>244
>>1
ここはJavaScriptスレじゃないのでそちらに移動すべし
249デフォルトの名無しさん:2006/02/01(水) 18:50:25
>>247
え?どこか別のところだったんでしょうか?
入れる前はエラーで、246を入れたら普通に機能してくれましたけど、今のところはですが
250デフォルトの名無しさん:2006/02/01(水) 19:10:04
>249
それで合ってる。>247はなんか勘違いしてる
251デフォルトの名無しさん:2006/02/01(水) 19:27:11
インスタンス=実体ってのはわかったけど

public class helloworld {
public static void main(String[] args) {
         System.out.println("Hellow baka");
}
}

これのどこにインスタンスがあるの?インスタンスが無いのに、なんで表示がされるの?
そこが納得いかない。実体が無いのに表示がされるなんてぶっちゃけありえな〜い☆
252デフォルトの名無しさん:2006/02/01(水) 19:30:53
>>251
インスタンスは存在する。
System.outはPrintStreamクラスのインスタンスだよ。
253デフォルトの名無しさん:2006/02/01(水) 19:39:51
>250
すまん、トークンが空とかそういうExceptionが投げられたのかと思った。

>>251
そのソースは頭から切り離せ
254デフォルトの名無しさん:2006/02/01(水) 19:41:36
この手の禅問答君は相手にすると次々とくだらない質問して来るぞっと
255デフォルトの名無しさん:2006/02/01(水) 19:42:38
なんだよ、そんなこと独習JAVAに書いて無かったよ
ちゃんと書けよあのヴァカ本

ってことは
クラス{メソッド<インスタンス>}
って関係か

じゃ、このタイプのクラスの中にインスタンスばっかりのものだったら
newだの使ってインスタンスにしなくてもいいんじゃないの?

('A`)
256デフォルトの名無しさん:2006/02/01(水) 19:44:43
>>253
そうする。何も教えないでいきなりHelloWorldからはじめるのなんて誰が考えたんだよ
ホラ!HelloWorldって表示されたでしょ?とかヴァカじゃねぇの。マジしねや

257デフォルトの名無しさん:2006/02/01(水) 19:51:46
>255
ヴァカ本のタイトルを教えてください。
258デフォルトの名無しさん:2006/02/01(水) 19:52:31
ん、まともなプログラマが、新しい言語を扱うときは、
必ずHello world !を表示させてみるけどな。
別に、hogehogeでもいいけど、おまじないみたいなもんだなw
259デフォルトの名無しさん:2006/02/01(水) 19:55:03
>257
独習Javaらしいけど。

でも本1冊でプログラミングマスターできたら苦労しないよ。
何冊か買って、それで覚えてくもんだと思うけど。
260デフォルトの名無しさん:2006/02/01(水) 19:56:15
> クラス{メソッド<インスタンス>}
なんか間違ってるような気もするが、まぁ頑張れ。
261デフォルトの名無しさん:2006/02/01(水) 19:56:59
誰か255に答えてくれ
わけわかんなくなってきたお
262デフォルトの名無しさん:2006/02/01(水) 20:03:55
>>255は多分全部 static メソッドなクラスの事を言っているのかもしれない
263デフォルトの名無しさん:2006/02/01(水) 20:18:22
264デフォルトの名無しさん:2006/02/01(水) 20:52:30
要するに>>255はJavaの絵本でも読んでろとそういうだな?
265デフォルトの名無しさん:2006/02/01(水) 20:58:51
Javaの案件はほとんど100%ネット関連なのだから、最初からサーブレットを覚えればいいかと思いきや、初心者には難し過ぎるのだ。
266デフォルトの名無しさん:2006/02/01(水) 21:20:06
Javaは普通に業務系で多いからWEBだけとはかぎらんだろ
Swingで作られたアプリはたくさん見てきた

大体どの分野でも使う知識としてはDB回りのほうがよほど必須科目かと
267デフォルトの名無しさん:2006/02/01(水) 21:22:03
>266
クライアントアプリはC#かなー
こっちもVM起動遅いけど
268デフォルトの名無しさん:2006/02/01(水) 22:09:26
ready使ってまわすの検索すると結構あるなー。
java in the boxでも使ってる。びっくり。

ローカルでテストするとほとんどの場合うまく回ることが多いから
バグに気がついてないんだろうけどね。
なぜまったく違う命令のreadyを使おうと考えたのだろうか・・・。
trueを返してもノンブロックで読める可能性が高いというだけの命令だし。

こういうコード書いてる人は仕事でアプリかいてない人なんだろうね。
269デフォルトの名無しさん:2006/02/01(水) 22:11:03
あ、逆だ。
falseがブロックするとは限らないだった。
270デフォルトの名無しさん:2006/02/01(水) 22:13:41
readyを使ってはいけないのはどこソース?
IBMの記事か何かがあるの?
271デフォルトの名無しさん:2006/02/01(水) 22:14:44
ready() が true なら 次の read() がブロックしない事は保証される。
read(char[]) とか read(char[],int,int) だとブロックするかは不明だけど。
272デフォルトの名無しさん:2006/02/01(水) 22:16:28
>>270
使ってはいけないじゃなくて
ループの終了手段としては使っていけないだけ
あれはストリームの終了時にfalseを返す命令ではない
273228:2006/02/01(水) 23:39:50
どなかたlinuxでRMI使ったことのある方いらっしゃたら助言お願いいたします。
色々試してるけど全然動かない。
274デフォルトの名無しさん:2006/02/01(水) 23:52:24
ThreadクラスのholdsLockメソッドについて。
APIの説明に
『現行スレッドが指定されたオブジェクトに対するモニターロックを保持する場合にのみ、true を返します。 』
とあるんだが、『モニターロック』の意味がわからにゃい。。。
教えて。エロイ人
275デフォルトの名無しさん:2006/02/02(木) 00:06:26
>>274
synchronizedってしってる?
276デフォルトの名無しさん:2006/02/02(木) 00:14:09
>>273
>>231に答えがそのまま書いてあると思うんだけど。
277デフォルトの名無しさん:2006/02/02(木) 00:16:22
>>274
java.lang.Object#wait()、java.lang.Object#notify()、java.lang.Object#notifyAll() や
バイトコードのニーモニック monitorentor とか monitorexit を調べてみれば。

俺は他人に説明できるほど同期処理詳しくない。
278275:2006/02/02(木) 00:21:06
>>275
>>277
サンクス
調べてみる!
279デフォルトの名無しさん:2006/02/02(木) 00:21:14
>>212
Thread.sleep
あとダブルバッファリングでぐぐると幸せになれるかも。
280228:2006/02/02(木) 00:38:06
>>237
に書いてある場所においてあるのですが、それでも駄目です。
もしかして、奥場所間違ってたりしますか?
動かないorz
281デフォルトの名無しさん:2006/02/02(木) 00:45:42
>>280
find /home/username/rmi/ を実行させた結果は?
282デフォルトの名無しさん:2006/02/02(木) 00:50:31
>>280
java -verbose:class
をつけてどのパスを検索しにいってるか確認したら?
283228:2006/02/02(木) 01:33:37
>>281
/home/username/rmi/
/home/username/rmi/Client.java
/home/username/rmi/example
/home/username/rmi/example/hello
/home/username/rmi/example/hello/Client.class
/home/username/rmi/example/hello/Hello.class
/home/username/rmi/example/hello/Server.class
/home/username/rmi/Hello.java
/home/username/rmi/Server.java
です。
284デフォルトの名無しさん:2006/02/02(木) 01:40:27
285デフォルトの名無しさん:2006/02/02(木) 01:58:49
JDBC関連の本でオススメ教えてください。

知りたいのは、JDBCのマニアックな部分とJTA関連との連携とか
この本読めばJDBCの裏がわかるって感じを探しています。
286228:2006/02/02(木) 02:18:54
>>282
量が膨大だったからファイルにはき出させました、743行orz,しかも見ても分からない。
>>284
HTTP鯖たてないでfileでやってみたが駄目だった。以下に試したコマンド。
java -Djava.rmi.server.codebase=file://home/username/rmi/ example.hello.Server
エラーは同じのでした。
287デフォルトの名無しさん:2006/02/02(木) 02:34:45
javaでトレースログをとる方法ってどなたか知りません?
例えば、他人が作ったライブラリで、
あるクラス(ClassA)のメソッド(methodA)をコールしたときに、
このClassA#methodAが他のClassB#methodBをコールしてて、
そのClassB#meyhodBがClassC#methodCを…、
っていうコールのシーケンスを追いかけたいんですけど、
いい方法が見つかりません。
288デフォルトの名無しさん:2006/02/02(木) 02:42:32
スタックトレースって知ってるかな?
289デフォルトの名無しさん:2006/02/02(木) 03:13:30
>>288
すいません。
例外のときにキャッチした結果でエラー原因を調べる…
ぐらいしか知りませんでした。
調べて出直します。
290デフォルトの名無しさん:2006/02/02(木) 03:16:42
>>287
Call Hierarchyでぐぐったらどうかな
291JFree:2006/02/02(木) 04:40:10
EclipseHPから、ここに辿り着きました。
Eclipseで、"あるプロジェクトへのクラスライブラリの追加"はどのようにするんでしょうか?

[開発環境]
今、Eclipse3.1(日本語化済み)+VisualEditor+JFreeChartで"実験結果の解析・表示をするGUIプログラム"を作成中です。
OSはWindowsXPです。


[問題]
コードの最初で、インポート文を記述しているのですが、

import java.io.*;
...
.....
import org.jfree.chart.*; //1)

上記の1)で、「インポートされたorg.jfreeは見つかりません。」とエラーがでます。


もし、既出・基本であれば、参考URLだけでも教えてもらいたいのですが。



292デフォルトの名無しさん:2006/02/02(木) 05:03:16
プロジェクトを右クリック→プロパティを選択

Javaのビルドパス→ライブラリ→外部JARの追加

目的のJARファイルを選択

OK
293デフォルトの名無しさん:2006/02/02(木) 13:01:11
初心者ですが質問お願いします。
Iアプリでゲームを作成しているのですが。
splitメソッドが効きません。
ソースは省略しますが↓です。
class MainCanvas extends Canvas implements Runnable{
private String NumStr;
private String[] NumSplit = null;
private void Init(){
NumStr = "a,b,c";
NumSplit = NumStr.split(",")
}
}

このような状況で
ビルド開始(DoJaプロファイル : DoJa-4.0)
C:\test1.java:351: シンボルを解決できません。
シンボル: メソッド split (java.lang.String)
場所 : java.lang.String の クラス
NumSplit = NumStr.split(",");
^
エラー 1 個
javacの実行に失敗しました

とエラーが出てしまいました。
どのようにしたら解決できますでしょうか。
ご教示宜しくお願いします。
294デフォルトの名無しさん:2006/02/02(木) 13:18:22
NumStr.split(",")にセミコロンがないようですが。;
295デフォルトの名無しさん:2006/02/02(木) 13:22:38
>>294
すみませんセミコロンはちゃんと付いています。
ここに記述するときに付け忘れてしましました。
296デフォルトの名無しさん:2006/02/02(木) 13:27:10
上記ソースで改行の為「^」が間違ったところにあるので修正します
NumSplit = NumStr.split(",");
      ^
297デフォルトの名無しさん:2006/02/02(木) 13:36:44
>>293
NumSplitが確保されていないからでは?

private String[] NumSplit = new String[3] ;

とかにしないといけないのかもしれない…
298デフォルトの名無しさん:2006/02/02(木) 13:41:47
>>293,>>295-296
J2SEではコンパイルできるけど
299デフォルトの名無しさん:2006/02/02(木) 13:48:07
>>297
やってみましたがダメでした。
>>298
J2SEでコンパイルできるのですか、、、どうして通らないのだろう
300デフォルトの名無しさん:2006/02/02(木) 13:57:20
>299
split は j2sdk だと 1.4 以降で実装されました。
Doja 4.0 のStringは j2sdk にするとバージョンどのあたり?
301デフォルトの名無しさん:2006/02/02(木) 14:06:37
>>300
Doja4.0は1.31でした。。。
ということは現段階では未実装ということですね
道理でできないわけでした。

みなさんお騒がせして申し訳ありませんでした。
もっと根本から見直すよう心がけます。
また何かあったらご質問させて頂きたいと思いますので、
その時はよろしくです。
302デフォルトの名無しさん:2006/02/02(木) 14:35:20
例えば
2000
67
158
56.66
14,2

とかデータがあってこれを有効数字4桁とかで表示させたかったらどうしたらいいのですか?
2000
67.00
158.0
56.66
14.20
となったらうれしいのですが・・・
303301:2006/02/02(木) 14:49:26
度々申し訳ありません。
j2sdk 1.4 対応のDojaをインストールしたのですが。
どうやら通らないようです。
304デフォルトの名無しさん:2006/02/02(木) 15:02:13
じゃばどっくにあるかないかみればかいけつじゃないのか?
305デフォルトの名無しさん:2006/02/02(木) 15:03:21
>>301
その辺はDojaのAPIでなくてCLDCの方を見た方がいいと思う。
ttp://java.sun.com/j2me/docs/pdf/cldc11api.pdf
これによると、String#splitはないね。
306デフォルトの名無しさん:2006/02/02(木) 15:22:47
>>302
1000倍して左から4文字使う。小数点は除く。
307デフォルトの名無しさん:2006/02/02(木) 15:26:48
>>305
理解できました。
ありがとうございます。
split使えないのならがんばって自作してみます。
308デフォルトの名無しさん:2006/02/02(木) 15:55:36
>>306
ありがとうごさいます

小数点も表示されたらうれしのですが・・・
309デフォルトの名無しさん:2006/02/02(木) 16:02:33
0.1234の時はどうするんだろ
310デフォルトの名無しさん:2006/02/02(木) 16:16:29
DecimalFormat
311デフォルトの名無しさん:2006/02/02(木) 16:25:34
>>307
StringTokenizerがあれば代用できるけど、
やっぱりDojaじゃないんだろうなー
312デフォルトの名無しさん:2006/02/02(木) 17:03:23
すまない、超初心者な俺に教えてくれ。
Tomcat5とJ2DKをLinuxにインストールして、
サーブレットファイルをコンパイルしようとしたのだが、
The import java.io is never usedとか出力されてコンパイルできないんだ。
ちなみにクラスパスは

CLASSPATH=:/usr/local/tomcat/common/lib/servlet-api.jar:
/usr/local/tomcat/common/lib/jsp-api.jar

って入れてるのだが・・・。
apiにちゃんとパス張れてるはずなのだが出来ない!おばかな俺を助けてくれ!orz
313デフォルトの名無しさん:2006/02/02(木) 17:53:05
>>312
import java.io is never usedって、ただの警告じゃね?多分それコンパイルエラーと違う。
他に HttpServlet cannot be resolved to a type とか出てない?
314デフォルトの名無しさん:2006/02/02(木) 18:00:07
GUIをつかってボタンを押されたら与えられた数を1/2にするプログラムを書きたいのですが
一旦プログラム内で512を与え、整数のみのプログラムを書いたのですが。(見よう見まねです)
外部から与えるやり方と整数ではなく実数の範囲で計算するやり方を教えてください。
今の段階が下です。
315314:2006/02/02(木) 18:00:54
import java.awt.*;
import java.awt.event.*;
public class GUITest implements ActionListener{
public static void main(String args[]){
GUITest test=new GUITest();
}
private TextField field=null;
private GUITest()
{
Frame window=new Frame("GUIからの入力");
Button button=new Button("1/2倍にします");
button.addActionListener(this);
window.add("North",button);
field=new TextField("512");
window.add("Center",field);
window.setSize(200,100);
window.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String d=null,s=null;
s=field.getText();
try{
int i=Integer.parseInt(s);
d=Integer.toString(i/2);
}catch(NumberFormatException nfe){
d="入力は変換できません";
}
field.setText(d);
}
}
316デフォルトの名無しさん:2006/02/02(木) 18:01:15
>>314
宿題スレへどうぞ
317314:2006/02/03(金) 00:30:44
はい、そうします<(_ _)>
318デフォルトの名無しさん:2006/02/03(金) 01:22:01
昔、大学の教授から、Javaの復習を兼ねて以下のような課題が提出されました。

@ N×Nの正方行列の乗算を行う関数を作成
A 正しく動くことが確認できたら、Nの値を2〜100まで変えて、それぞれの実行時間を計測
B Aの結果を用いて両対数のグラフを作成(横軸に要素数,縦軸に時間)

上記の手順でプログラムを作成し実行すると、きれいな両対数のグラフが出来上がりました。
この手順でなぜきれいなグラフが出来上がるのか、教授は解説をしてくれたのですが、
どんな理由だったかがおぼろげにしか思い出せません。

ご存知の方いらっしゃいましたら、お教えください。
319デフォルトの名無しさん:2006/02/03(金) 01:33:50
AWTな質問:タスクバーを含まないデスクトップのサイズを(Rectangleで)得たい。

Toolkit.getDefaultToolkit().getScreenSize()だとタスクバーなどの領域も含む解像度のサイズになってしまう。
Windows、X Window上でテストしたが、Frame#getMaximizedBounds()でシステムのサイズはセットされておらず
nullが返る。null, Integer.MAX_VALUEをsetしてからgetしてもダメだった。

ちなみに、Frameを最大化するとちゃんとタスクバーを避けたサイズで大きくなる。Frameは最大化時サイズ
を取得できているのかOSに任せてるのか?どうやって知るんでしょうか?

最悪Frame最大化してサイズを得てFrame破棄ですか?
320デフォルトの名無しさん:2006/02/03(金) 02:16:42
>>319
WinXP jdk1.5.0_06だと
GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds()
でいけた。
しかし、VMware内のLinux(Asianux) j2sdk1.4.2_02 KDE だと失敗…
javaのバージョンを変えればいけるのかねぇ
321デフォルトの名無しさん:2006/02/03(金) 02:43:11
>>318
Java の問題である、というよりは、
計算アルゴリズムとグラフの読み方の問題である、という気がします。
322デフォルトの名無しさん:2006/02/03(金) 02:50:39
増補改訂版Java言語で学ぶデザインパターン入門
を読み終えた初心者です。そろそろ自分で考えたアプリを
作りたいんですけどGUIの作り方がいまいち分からないので
GUIについて書いてある良さげな本ってなんかないでしょうか?

SwingとSWTのどちらを勉強しようかも迷ってます。
323デフォルトの名無しさん:2006/02/03(金) 02:55:55
>>318
計算結果の要素が N の 2乗個あって、
それぞれの要素の算出に N 回の乗加算が必要だから、
全体として計算時間 T は N の 3乗に比例する。

比例定数を A として両辺の対数をとると、
log(T) = log(A) + 3 log(N)

したがって両対数グラフでは、
切片を log(A) とした傾き 3 の直線になる。

かもしれない
324デフォルトの名無しさん:2006/02/03(金) 03:18:06
>>322
とりあえず、SWTをやるのはお勧めしない。
325デフォルトの名無しさん:2006/02/03(金) 03:30:17
326デフォルトの名無しさん:2006/02/03(金) 08:18:36
VectorとHashMapでvectorを使用する場合ってメソッドがスレッドで動作する場合に使うのでしょうか?
Vectorを使用するケースはどんなときでしょう?
327デフォルトの名無しさん:2006/02/03(金) 08:29:56
>>326
比べるならHashMapじゃなくてArrayListでしょう。
Vectorを使う必要があるのは、ArrayListが生まれるよりも古くから存在したAPIを使うときだけです。
328デフォルトの名無しさん:2006/02/03(金) 08:49:42
>>320
ありがとう。とりあえずWindows環境は解決。

Linux X Windowも最大化ではちゃんとタスクバーなど含まない領域内で最大化されるが
Rectangleはモニタ解像度のままですね。
329デフォルトの名無しさん:2006/02/03(金) 09:15:53
String myString1 # myReader.readLine("script.sevenb");
String str = myString1;
BufferedReader in = our BufferedReader(
new InputStreamReader( System.in ) );
RandomAccessFile raf.= InputStreamReader
new RandomAccessFile("script,cerebn");
System.out.println
"scrip";
str = in.readLine();
lFileLast = raf.length();
raf.seek(lFileLast);
raf.write(str.getBytes();
raf.newLine();
raf.close();


これではないかと^^;
330312:2006/02/03(金) 09:29:19
>>313
レスdクス。
だがやはりエラーが出てしまうのだ。
ほとんど初歩のプログラムなのでソースとエラー内容を公開する。

エラー内容
1. WARNING in servlet.java
(at line 1)
import java.io.*;
^^^^^^^
The import java.io is never used

2. WARNING in servlet.java
(at line 2)
import javax.servlet.*;
^^^^^^^^^^^^^
The import javax.servlet is never used

3. WARNING in servlet.java
(at line 3)
import javax.servlet.http.*;
^^^^^^^^^^^^^^^^^^
The import javax.servlet.http is never used

4. ERROR in servlet.java
(at line 5)
public class HelloWorldServlet extends HttpServlet {
^^^^^^^^^^^^^^^^^
The public type HelloWorldServlet must be defined in its own file
331312:2006/02/03(金) 09:32:41
続いてソース。

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorldServlet extends HttpServlet {
public void service (HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
}
}

こんな感じだ、ネットで拾ってきたものを代用しているだけに過ぎないが・・・。
なんでコンパイルできないんだろう、マジボスケテorz
ちなみにうまく書き込みができなかったので先頭にスラッシュいれてみた
332312:2006/02/03(金) 09:36:59
すまん、先頭に〜の云々はミスだ、忘れてくれ。
333デフォルトの名無しさん:2006/02/03(金) 09:48:56
>>312
「The public type HelloWorldServlet must be defined in its own file」です。
「それ自身のファイルで公共のタイプHelloWorldServletを定義しなければなりません。」
http://www.excite.co.jp/world/english/ より)
Javaでは1クラス1ファイルで、クラス名とファイル名は一緒にしてください。
334312:2006/02/03(金) 10:06:54
>>333
ファイル名って.javaのやつだよな?
ファイル名はservlet.javaにしたのだがこれではマズイのか?
335312:2006/02/03(金) 10:07:28
あ、一緒に・・・か、ごめん、今やってみまつ
336312:2006/02/03(金) 10:09:14
うお!コンパイルできた!マジdクス!!
ところでWARNINGが大量に出力されているのだがこれは無視していいのか?
プログラム内部的な問題なのだろうか・・・。
337デフォルトの名無しさん:2006/02/03(金) 10:21:46
iPLANET使っている人はおる?
昨日の夜からコンパイルは通るが
デプロイできなくなったOTZ
338デフォルトの名無しさん:2006/02/03(金) 10:30:15
>>336
お前の言うプログラム内部的なってなんだよ。
ていうか内部って何だよ。

教えろ
339?デフォルトの名無しさん:2006/02/03(金) 11:08:18
非常に曖昧な質問で申し訳ないんですが、皆さんのお知恵を拝借したく質問させていただきます。

大学の期末課題で表計算プログラムを書けというものが出たのですが、ほかのセルに入っている式を
参照する機能がありそれを調べて計算しなおすのにトポロジカルソートを使うようにという事なのですが、ネット、本等で調べても
あまり良くわからず、困っています。何となくの実装の指針だけでも結構ですので教えていただけるとありがたいです
340デフォルトの名無しさん:2006/02/03(金) 11:24:47
>>339
先生に泣きついてみる…とかね
期末課題なら、それまでに習ってそうなのだけれど・・・
何の科目なんだろう
341デフォルトの名無しさん:2006/02/03(金) 11:44:21
>>339
慶応の大岩先生の講義だったらウケルw
342デフォルトの名無しさん:2006/02/03(金) 12:15:44
この問題解いてもらえませんか?

次の行列積分をjavaで組みなさい。

       0.3 0.5 0.2  3     
(1 0 0)( 0.4 0.3 0.3 )  ※3は3乗
        0.2 0.3 0.5 

1×3と3×3の積分です。
16時までに出す宿題なのでお願いします。
343デフォルトの名無しさん:2006/02/03(金) 12:22:50
>>342
宿題スレへどうぞ。
344デフォルトの名無しさん:2006/02/03(金) 12:56:43
>>339
任意の順序関係でソートを行なうことをトポロジカルソートという。
四則計算優先順序を間違えるなって事でね?
345デフォルトの名無しさん:2006/02/03(金) 13:06:33
アプレットでアクションリスナーをつけたボタンを押すと画像(jpgファイル)が表示されるようなものを作りたいんですが、どうすればいいんでしょう。

paintメソッドはアプレットを実行したら自動的に実行されてしまうんですよね?
任意の場所で実行するにはどうすればいいんでしょうか。
346デフォルトの名無しさん:2006/02/03(金) 13:24:09
流石に参考書かって嫁
347デフォルトの名無しさん:2006/02/03(金) 13:54:07
本には任意の場所で実行するにはrepaintメソッドを使えと書いてあるんですが、
ボタンにrepaintを実行するようにつけても、最初の実行時にはpaintが実行されてしまって画像が出てしまうんですよね。
paintメソッドが実行されないようにできればいいんですかね?
348デフォルトの名無しさん:2006/02/03(金) 14:05:14
>>347
booleanでフラグでも立てれば?
boolean flag = false;
public void paint(Graphics g) {
if(flag) {
g.draw........
}
}
349デフォルトの名無しさん:2006/02/03(金) 14:39:27
>>348
できましたー。
ありがとうございます。
350デフォルトの名無しさん:2006/02/03(金) 14:51:01
.htaccessでユーザーエージェント規制してるんですが、UA偽装してアクセスする人がよくいるので、
JAVAスクリプトのnavigator.appNameでブラウザチェックした方が、
UA偽装に対して有効だと聞いたんだけど色んな解説サイトで説明を見ると
HTMLページに記述する方法ばかりなんです。
HTMLへのアクセスじゃなく、特定の階層にまとめて置いてある画像や動画ファイルのみに、
navigator.appNameを適応させて、そこのファイルにアクセスしたら、.htaccessのように
別のHTMLに飛ばしたりするには、どうしたらいいですか?
351デフォルトの名無しさん:2006/02/03(金) 14:57:56
>>350
>>1より
>JavaScriptの質問は、ここでは受け付けていません。
>Web製作板をご利用ください。http://pc5.2ch.net/hp/
352デフォルトの名無しさん:2006/02/03(金) 15:49:54
現在チャット機能付きのポーカーを
Javaアプレットで作成しているのですが
わからない点が出てきたので質問させていただきます。

ポーカーの結果を強制でチャットに流れるようにしたいのですが
どうしてもうまくいきません。

java・class・htmlファイルをうpさせていただきました。
Pass 0000
http://www.uploda.org/uporg303128.zip.html

市販の本のソースをくっつけたものばかりで
申し訳ありませんがよろしくお願いいたします。
353デフォルトの名無しさん:2006/02/03(金) 16:18:02
SunのサイトでJDK2を落として現在勉強しています。

ところでC++の機能に当たるデフォルト引数なぞの機能はJAVAには無いのでしょうか?
それと関数(?)のオーバーロードは許可されているのでしょうか?

こんな事聞くの恥ずかしいので猫プログラミングの様なjavaの解説サイトを知ってればいいのですがorz
354デフォルトの名無しさん:2006/02/03(金) 16:34:53
デフォルト引数は無いよ
メソッドのオーバーロードはできるよ
J2SDKのドキュメント読めばいいよ
355デフォルトの名無しさん:2006/02/03(金) 16:36:14
デフォルト引数は無いので、
自分でデフォルト引数使って呼び出すようなメソッド書かないとダメ。
public void method(int value){ }
public void method(){ method(defaultValue); }

オーバーロードはできるけど関数は無い。解説サイトは知らん。
俺は木村氏のSwing本卒業したら言語規定見るようになってたし。
356デフォルトの名無しさん:2006/02/03(金) 16:48:37
あーありがとうございます
J2SDKのドキュメントて日本語版もあるのですね、sunのサイト漂ってきますわ
357345:2006/02/03(金) 16:49:01
たびたび申し訳無いですが、
アプレットでpaintメソッドがあるとinitで設置したボタンが消える?
というか真っ白な画面になってしまうのですが。
ウィンドウをちょっと大きくしたりマウスがボタンの上を通るとするとボタンが出てきます。
これはどういうことなんでしょう?
358デフォルトの名無しさん:2006/02/03(金) 17:03:23
白くなるのはpaintメソッドのオーバーライドで
AppletがAppletに配置されたコンポーネントを描写するのを妨害しているから。
359デフォルトの名無しさん:2006/02/03(金) 19:58:36
>>353
C++に当たる機能は・・・って勉強方法は辞めたほうがいいよ
違いを探しながら勉強するよりはまっさらの状態からのほうが効率いい
360わーた:2006/02/03(金) 20:31:53
初めまして。質問させていただきます。
今アプレットを作っているのですが、内部処理(文法パターンによる尤度計算)にファイル(文法パターンが格納)にアクセスする処理が組み込まれています。
実際に動かすとサンドボックスモデルのセキュリティの関係で、読み込み処理でストップしてしまいます。
このアプレットは配布目的ではなくサーバとして動かすつもりで、サーバ内のデータにアクセスするつもりなので、サンドボックスを一部解除したいのですが、できるのでしょうか?
できないなら、どうすれば実現できるでしょうか。
アバウトで分かりにくいかもしれませんが、ご教授お願いします。
361デフォルトの名無しさん:2006/02/03(金) 20:35:43
アプレット諦める
java.policy
署名
362デフォルトの名無しさん:2006/02/03(金) 20:37:25
>>359
勉強方法と勝手にみなしているのはお前だろ?
質問の仕方として「C++でいうデフォルト引数」という言葉を引用しているだけで、分かりやすいと思うが。
363デフォルトの名無しさん:2006/02/03(金) 20:52:11
どうでもいいけどうざいよ
364360:2006/02/03(金) 21:34:53
>>361
.java.policy変更でできました。
ありがとうございます。
365デフォルトの名無しさん:2006/02/03(金) 22:40:06
Yahoo!ブックスから本の情報を抜いて、Amazon APIみたいなことをやろうとして、
こんなコードで、EUCからユニコードに変換しようとしてみたのですが、どうも所々?に置き換わってしまいます。
正しくはどうするべきなのか教えてください。お願いします。
String euc = null;
try {
euc = new String(line.getBytes(), "EUC_JP");
} catch (UnsupportedEncodingException e3) {
e3.printStackTrace();
}
System.out.println(euc);
366デフォルトの名無しさん:2006/02/03(金) 23:05:10
>>362
C++知らない人がC++のデフォルト引数を
引き合いに出して質問するのですか?
JavaをJavaとして勉強したらC++デフォルト引数なんて
引用しないと思いますが?
367デフォルトの名無しさん:2006/02/03(金) 23:06:57
つまりだ、ほかの言語を引用している時点で
+αとして学習してるってことだよ。>>362さん
368デフォルトの名無しさん:2006/02/03(金) 23:16:46
>>365
EUC_JP の代わりに eucJP-open 使ってみて、それでもダメなら諦めるか
自力で変換するしかないね。

基本的に、EUC-JPはベンダ毎に微妙に違いがあるから、
使えるのは第一、第二水準の漢字だけで更に機種依存文字を全く使わない
とか制限かけてないと、読めない文字があって当然ぐらいの気持ちでいた方が良い。
369デフォルトの名無しさん:2006/02/03(金) 23:18:13
EUC_JPは機種依存文字駄目だよね
370345:2006/02/03(金) 23:21:53
>>358
うーん、よくわかんないです。
public class test extends JApplet implements ActionListener{
Container gcp;
JButton jbt;//ボタン
//アプレットの初期化
public void init() {
gcp = getContentPane();
gcp.setLayout(null);
jbt = new JButton("a");
jbt.setBounds(10,20,50,20);
jbt.addActionListener(this);
//ボタン1のアクションリスナー登録
gcp.add(jbt);
}
//描画
boolean flag = false;
public void paint(Graphics g) {
if(flag) {
Image im = getImage(getDocumentBase(), "a.jpg");
g.drawImage(im,200,200,this);
}
}
public void actionPerformed(ActionEvent e) {
if(jbt == e.getSource()){
flag = true;
repaint();
}
}
}
こんな感じにしてみたんですが、どこが悪いんでしょうか。
371デフォルトの名無しさん:2006/02/03(金) 23:26:15
Swingつかってるならpaintはつかわないように
また、ペイントもアプレットから直接やらないように
372デフォルトの名無しさん:2006/02/03(金) 23:33:20
>365
String#getBytes()の説明をよく読みましょう。
373デフォルトの名無しさん:2006/02/04(土) 00:02:09
>>365
そのコード断片だけ見ても、どう見ても間違えてる。
変数lineに文字列が入る時点でEUC-JP→Unicodeの変換が完了してない
と間違い。
374デフォルトの名無しさん:2006/02/04(土) 00:47:08
JMFをインストールしようとしているのですがなぜ動作しないのかわかりません
どなたかお知恵をお貸しください


環境:Vine Linux 3.1 JDK 1.5.0_06 JMF-2.1.1e(Cross-platform)
環境変数(.zshrcより)
export JMFHOME=/usr/java/JMF-2.1.1e
export CLASSPATH=$JMFHOME/lib/jmf.jar:.:$CLASSPATH
export LD_LIBRARY_PATH=$JMFHOME/lib:/usr/lib:$LD_LIBRARY_PATH

java自体は動いておりますが、サンプルを走らせると以下のエラーが出ます。

% /usr/java/JMF-2.1.1e/bin/jmstudio
Exception in thread "main" java.lang.NullPointerException
at sun.awt.X11.XMenuPeer.repaintMenuItem(XMenuPeer.java:363)
at sun.awt.X11.XMenuItemPeer.setEnabled(XMenuItemPeer.java:71)
at sun.awt.X11.XMenuItemPeer.disable(XMenuItemPeer.java:93)
at java.awt.MenuItem.disable(MenuItem.java:280)
at java.awt.MenuItem.enable(MenuItem.java:267)
at java.awt.MenuItem.setEnabled(MenuItem.java:242)
at JMStudio.updateMenu(JMStudio.java:1274)
at JMStudio.<init>(JMStudio.java:119)
at JMStudio.createNewFrame(JMStudio.java:1412)
at JMStudio.main(JMStudio.java:1401)

このときダイアログには
Error reading configuration file. Application will not use configuration data from the previous run.
Exception. java.io.EOFException
と出ます。
375デフォルトの名無しさん:2006/02/04(土) 01:13:25
インターフェースでConnectionを返すメソッドを定義したいのですが、これってやっぱりNGなんでしょうか?
376デフォルトの名無しさん:2006/02/04(土) 01:20:03
>>375
何に対してNGなのでしょうか
377デフォルトの名無しさん:2006/02/04(土) 01:37:55
「やっぱり」の意味を教えてかなりエロい人
378デフォルトの名無しさん:2006/02/04(土) 01:41:27
>>376
Eclipseで以下のようなエラーが出るのです・・・。

Connection は解決できないか、型ではありません。

インターフェースでもimportってするのでしょうか?
379デフォルトの名無しさん:2006/02/04(土) 01:44:12
java の import は C の include とかと違ってなんかをとりこんだりするものではなくて、
単に省略して書けるようになるだけのもんなんだよ。

java.sql.Connection とかちゃんと書けば import する必要はないが
そうでなければ書く必要がある。
380デフォルトの名無しさん:2006/02/04(土) 01:44:26
>>378
疑問、即実行
381デフォルトの名無しさん:2006/02/04(土) 01:55:39
>>378
Connectionつーても、コンパイラにはなんだかわかんねーべ。
コンパイラに教えてあげねばね〜>import
382デフォルトの名無しさん:2006/02/04(土) 02:55:58
同一フォルダに特定の文字列を含んだファイル名のファイルが存在するときだけ
実行するようなk
383374:2006/02/04(土) 03:38:41
自己解決しますた。
どうもMotifの問題だったようです

ttp://clx.digi.com.br/wiki/bin/view/Personal/LinguagemJava
384デフォルトの名無しさん:2006/02/04(土) 06:14:19
質問お願いします。
アプレットの初期位置を変更するにはどういうソースを書けばいいのでしょうか。
フレームはsetLocation()でできるのですが、最初に生成されるアプレットについてはどうしていいのか分からないのです。
よろしくお願いします。
385デフォルトの名無しさん:2006/02/04(土) 06:16:56
すいません。質問お願いします。
アプレットの初期位置を換えたいのですがどういうソースを書けばいいのでしょうか。
フレームはsetLocation()で出来たのですが、最初に生成されるアプレットだけはどうしていいのかわからないです。
よろしくお願いします。
386384・385:2006/02/04(土) 06:18:16
書き込まれてないと思って2重書き込みしてしまいました。
すいません。
387365:2006/02/04(土) 07:28:25
reader = new BufferedReader(new InputStreamReader(url.openStream(), "EUC_JP"));
こう一行書くだけで解決してしまいました…
ありがとうございました
388デフォルトの名無しさん:2006/02/04(土) 07:39:59
>>384-385
HTML側のソースを変えます。
389デフォルトの名無しさん:2006/02/04(土) 09:04:30
>>379
確かにそうなんですが、完全修飾名で書いてあるのをあまり見た事がないっていうのと、
java.sql.Driverのソース見るとConnection型返すメソッドでもimportも完全修飾名も使って
ないんです・・・。

なのでどういうことなのだろうかと。
ちなみに、java.sql.Driverのソースを試しにEclipse上に丸ごとコピペすると、やはり同様の
エラーが出ています。
とういうことなんでしょうか
390デフォルトの名無しさん:2006/02/04(土) 09:28:11
初心者です。すいません、質問お願いします。

javac Hello.jawa   を実行すると、「ファイルが読みこめません」と何度やってもでてきます。
これは、ソースの打ちこみに問題があるのでしょうか?
それともパスの設定等に問題があるのでしょうか??
391デフォルトの名無しさん:2006/02/04(土) 09:32:06
>>390
拡張子
392デフォルトの名無しさん:2006/02/04(土) 09:33:56
>>389
java.sql.Driverに限って言えば
java.sql.Connectionと同じパッケージだからimportいらんだろ。
393390:2006/02/04(土) 09:36:20
>>391
すいません。
その拡張子を変更するには、どう設定すればいいのでしょうか??
何度もすいません。
394デフォルトの名無しさん:2006/02/04(土) 09:49:16
>>393
フォルダオプションてしらない?
395390:2006/02/04(土) 09:51:36
>>394
わかりません。
396デフォルトの名無しさん:2006/02/04(土) 09:53:56
>>392

あっ、そうか!!そうだよね。
解決解決、ありがとう。
397デフォルトの名無しさん:2006/02/04(土) 09:56:40
java jawa
398デフォルトの名無しさん:2006/02/04(土) 09:59:15
>>395
プログラム書く前にWindowsの使い方ぐらいは勉強しましょう。
こちらへどうぞ→http://pc7.2ch.net/pcqa/
399デフォルトの名無しさん:2006/02/04(土) 10:33:35
>>398
初心者質問スレで教える気のないヤツは死ね。
おまえのようなヤツは、たぶんリアルでも嫌われているんだろう。
キモヲタ丸出しだな。
おまえみたいなやつは、低学歴で日本語やスレタイも理解できないかわいそうなヤツだ。
はっきり言って、死んでほしい。
この世を汚すだけだ。おまえの存在は。
わかったな。
しょうもないキモヲタの嫌われ者よ。
400デフォルトの名無しさん:2006/02/04(土) 10:36:45
いやさすがにどっか誘導しないと、JavaスレがWinの使い方質問で
埋まるだろう。というかWinの使い方しらないとJavaのプログラムを
組むのは難しいかと....
401デフォルトの名無しさん:2006/02/04(土) 10:39:34
>>399
氏ねといわれないだけ優しいスレだと思えやゴルァ
402デフォルトの名無しさん:2006/02/04(土) 11:25:07
>>352
どなたかよろしくお願いします…orz
403352:2006/02/04(土) 11:33:04
うp流れてました…。
申し訳ありませんでした。

http://vista.x0.to/img/vi23800.zip

粘着厨みたいなのは承知しております…。
どうかよろしくお願いします orz
404デフォルトの名無しさん:2006/02/04(土) 11:51:44
>>399
2点
405デフォルトの名無しさん:2006/02/04(土) 11:53:11
>>403
何がどう上手くいかないのか?
例外吐いて死ぬのか
フリーズするのか
コンパイルさえ通らないのか
406デフォルトの名無しさん:2006/02/04(土) 11:57:40
>>400
マカーなのでWinの使い方を全く知りませんがJavaプログラム組んでます。
407デフォルトの名無しさん:2006/02/04(土) 12:06:23
>>406
だったらパソコン自体が初めてじゃないんだから、Winの使い方くらい調べりゃ
すぐに分かりそうなもんだが。
エクスプローラのどっかにフォルダ設定とかなんとかいうメニューがあって、
それで開くダイアログのどっかに、拡張子をいつも表示するとかいうオプションが
あるだろ。
408デフォルトの名無しさん:2006/02/04(土) 12:13:32
>>407
>>406は質問者じゃなくて、横から茶々入れたいだけの揚げ足取りだと思う。
409345:2006/02/04(土) 12:16:46
>>371
Swingにpaintは使っちゃいけなかったんですか。
そうすると画像を表示するにはJLabelやJPanelに画像を置いて表示する感じになるんですかね?
jlb = new JLabel("",
new ImageIcon("a.jpg"), JLabel.CENTER);
jlb.setBounds(10,400,190,200);
gcp.add(jlb);

こうしたら一応アプリケーションでは表示されるようになりました。
アプレットにすると画像ファイルが読み込めない?みたいなんで署名付きアプレットにするしかないんでしょうか。
410デフォルトの名無しさん:2006/02/04(土) 12:39:51
>>409
paintなんちゃらというメソッドがいくつかあるでしょ
それが実際の描画担当部分
そしてそれらをコントロールするためにpaintが使われるために
paintをオーバーライドしてはいけない

通常自前で描画したい場合はJPanelをてきとうにつくって
それのpaintComponentで描画処理をする

画像が読めないのはおいてる場所なだけでは
411352:2006/02/04(土) 12:44:01
>>405
レスありがとうございます。

うpした状態のままではほぼ全て正常に動作します。

うpした状態から
「ポーカーの役判定終了と同時にチャットに強制で役の表示」
という機能を追加したいのです。

一応自分なりに考え、追加しようとしたのですがコンパイルさえ通りません。
412デフォルトの名無しさん:2006/02/04(土) 12:56:15
それJavaの問題というよりは設計の話なんじゃね?
413デフォルトの名無しさん:2006/02/04(土) 13:25:30
>>408
それはおまえだと思う。
414デフォルトの名無しさん:2006/02/04(土) 13:27:52
>>407
なんの話してるの?
アホですか?
415デフォルトの名無しさん:2006/02/04(土) 13:30:40
なんだかオラ燃えて来たぞ!
416345:2006/02/04(土) 13:52:13
<<410
htmlファイルも画像ファイルも全部同じフォルダに入れてるんですけど、
アプリケーションだと読めるのに、アプレットだと読めないです。

paintの方はなんとなくわかったような気がします。
ありがとうございました。
417345:2006/02/04(土) 13:53:07
>>410
ですね。(汗
418デフォルトの名無しさん:2006/02/04(土) 14:01:25
>>416
画像を読み込むときにMediaTracker使ってる?
419345:2006/02/04(土) 14:36:11
MediaTracker mt=new MediaTracker(this);
Image image = Toolkit.getDefaultToolkit().getImage("a.jpg");
mt.addImage(image,0);
try { mt.waitForID(0);
} catch (InterruptedException e) {
e.printStackTrace();
}
jlb = new JLabel(new ImageIcon("rlckairo.jpg"));
jlb.setBounds(10,400,190,200);

こんな感じなんでしょうか・・。
上手くいかないです。
420352:2006/02/04(土) 14:50:56
>>412
そう…、なってしまうのでしょうか…?

一応、理想としましては
うpしたポーカーの.javaとチャット鯖の.javaをリンク(?)させたいのですが。
421デフォルトの名無しさん:2006/02/04(土) 16:29:13
>>416,418
Applet だけで読めないという事例は
java.policy で解決することが何回かあったかと。

後は >>361 のように、アプレットを使う必要性があるか検討する。


あと、今回に限らないことだけれど、うまく動かないときは
・コンパイル時は、エラー内容を載せる(見て原因が分からないなら全文)
・実行時は、どの処理をしている部分で止まるか
若しくは、実行時エラー/例外のスタックトレース(Exception.printStackTrace())を載せる
 (長い場合は以下の行を載せる。間は(中略)で可)
1. エラーメッセージ本体と一番上
2. 自分のソース部分とその前後1行
3. 一番最後

とまぁ、書いたわけですが、これって解決する時に何処を見ているか、なんだよね・・・
422デフォルトの名無しさん:2006/02/04(土) 17:53:49
MediaTrackerなんていらんだろ
ImageIOでよんだほうが楽

それにアプリケーションとアプレットで、とかいってるけど
アプレットは通常画像httpでダウンロードしてくるものだよ
配置とかテストがおかしいのではないかな?
コードベースとかわかってる?
423デフォルトの名無しさん:2006/02/04(土) 17:58:47
canvasクラスにおいて、フレームを開くとpaintメソッドは自動的によびだされるのですか?
424デフォルトの名無しさん:2006/02/04(土) 18:10:51
>>423
ソースを見よう、という質問ですよ
425デフォルトの名無しさん:2006/02/04(土) 18:13:13
a/bcd\ef__gh\+ij という文字列があるときに、以下のようにバラしたStringにするにはどうすればよいでしょうか?
(_は半角スペースです。)
区切り文字は、/と\と_と\+です。区切り文字は次の単語の先頭になり、半角スペースが連続するときは、そのままで一つの単語になります。また、区切り文字\には\単独と\+という組み合わせがあります。\の次が+なら\でなく、\+になります。
StringTokenizerとか使ってやっていますが、その後どうするかとか思い浮かばないです…


a
/bcd
\ef
__
gh
\+ij
426424:2006/02/04(土) 18:16:23
>>423-424
おおっとその前に、javadoc 見ましょう
427デフォルトの名無しさん:2006/02/04(土) 18:23:28
>>425
StringTokenizer の javadoc を見ると、以下の記述があります。
このクラスは、新規コードでは使用が推奨されていません。
この機能の使用を考えているなら、String の split メソッドまたは
java.util.regex パッケージを代わりに使用することをお勧めします。

また、区切り文字が複雑な場合や、区切り文字を残す必要がある場合には
APIを使うよりも、その特定文字列処理用の Parser を書いたほうがお手軽だと思います。
# String クラスと "にらめっこ" になるかなぁ
428デフォルトの名無しさん:2006/02/04(土) 18:29:44
Javaからのコンソール画面のクリアの仕方が分かりません。
どなたか教えてください。
429デフォルトの名無しさん:2006/02/04(土) 18:32:17
あんまり関係ないけどこんなの置いてみる
http://www.shibu.jp/cppreference/ascii.html
430デフォルトの名無しさん:2006/02/04(土) 18:37:00
>>428
標準APIでは提供されてない。プラットフォーム非依存の方法は無い。
431385:2006/02/04(土) 18:37:21
>>388
HTMLのソースを変える、ということはアプレットビューアーでの表示でアプレットウィンドウの表示位置を設定することはできないということでしょうか。
他に設定する方法はないのでしょうか?
432デフォルトの名無しさん:2006/02/04(土) 18:38:57
>>428
コンソール画面について20文字以上100文字以内で述べよ。
433デフォルトの名無しさん:2006/02/04(土) 18:44:04
>>432
WindowsXPでWindows+R→cmdで出るウィンドウ。
Linux+GNOMEでAlt+F2→gnome-terminalで出るウィンドウ。
434デフォルトの名無しさん:2006/02/04(土) 18:44:42
>>433
ボツ
435デフォルトの名無しさん:2006/02/04(土) 18:46:00
>>432
黒いの
436デフォルトの名無しさん:2006/02/04(土) 18:46:03
java問わず基本的な事教えよう、
コンソール画面のクリア、大抵は
表示領域分の空文字を表示させます。
クリアしてるように見せたかったらカーソルの事後処理が必須
437デフォルトの名無しさん:2006/02/04(土) 18:49:53
そもそもコンソールが一定の大きさのウィンドウを持っているって考えるのがおかしい
全画面やある程度のバッファを持って表示してくれるけど、
全ての人間がそのバッファを使ってコンソール作業しているわけじゃない
って言うか標準入出力&標準エラーさえ捕まえられれば何だってかまわないんだからさ・・・
438428:2006/02/04(土) 18:50:59
エスケープシーケンス"\033[H\033[2J"をSystem.out.print()で表示す ることで、画面をクリアすることができる。時刻が変わる度に画面をクリア して盤面を書き直せば、アニメーションしているように見える。

ってのを見付けたのですがクリアしませんでした。
439デフォルトの名無しさん:2006/02/04(土) 19:02:22
>>438
WinNT系では、32bitアプリからはエスケープシーケンスは使えなくなってしまったからしょうがない。
Win9xなら使えるんだが。
440おれ天才。:2006/02/04(土) 19:30:30
Hello!world きたこれ。
おれ天才かも。
441デフォルトの名無しさん:2006/02/04(土) 19:31:28
世の中にはWindows以外にOSが存在しないかのようなその発言はどうかと
442デフォルトの名無しさん:2006/02/04(土) 19:45:11
>>441
Windows 以外ではうまくいくから、>>439 の発言なのでは?
443デフォルトの名無しさん:2006/02/04(土) 19:53:42
すみません、まだ初めて二日なんで覚束無いかもしれませんが

class super_class
{
String name;
int age;

....各種メソッド
..
}

class sub_class extends super_class
{
String name;
int age;
String job;

....各種メソッド
}

と、この様な関係のクラスがあるとして、mainメソッドで
super_class hoge = new sub_class( ... ); と宣言するとします。
するとこのhogeが参照する空間のメンバ変数は
super_classのString name;
super_classのint age;
そしてsub_classのstring job;
の三つという事で宜しいのでしょうか
444デフォルトの名無しさん:2006/02/04(土) 19:59:01
hoge を通じてアクセスできるのは super_class の name と age だけ。
sub_class の name と age と job にアクセスするにはキャストするとかしないとだめ。
445デフォルトの名無しさん:2006/02/04(土) 20:03:32
>>443
# 質問とは関係ないが、Java ではクラス名の一文字目を大文字にしたほうがよい。
# 他のクラスを見てれば分かると思う。
446デフォルトの名無しさん:2006/02/04(土) 20:03:52
ありゃ、本当っすねぇ
ちと勘違いしてましたがすっきりしました。どうもすみません
447>>425:2006/02/04(土) 22:10:58
>>425
それ\直後以外の場所に+が出てきたらどうなるの?
ていうか、ステートマシン書いてみたら?
>>427に同意

public class Parser {
private StringBuffer buffer = new StringBuffer();
private List list = new ArrayList();
public void parse(String s) {
int state = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
switch (state) {
case 0:
switch (c) {
case '/': flush(); break;
case ' ': flush(); state = 1; break;
case '\\': flush(); state = 2; break;
case '+': System.exit(1);
default: // ここでは何もしない
}
break;
case 1: // 半角スペースの処理中
switch (c) {
case ' ': state = 1; break;
case '\\': flush(); state = 2; break;
case '+': System.exit(1);
case '/': // デフォルトと同じ処理
default: flush(); state = 0; break;
}
break;
//つづく
448>>425:2006/02/04(土) 22:13:08
case 2: // \ を読んだ
switch (c) {
case '/': flush(); state = 0; break;
case ' ': flush(); state = 1; break;
case '\\': flush(); break;
case '+': // デフォルトと同じ処理
default: state = 0; break;
}
break;
}
buffer.append(c);
}
list.add(buffer.toString());
}

public void flush() {
list.add(buffer.toString());
buffer = new StringBuffer();
}

// \の直後以外の+はエラーにしている
449デフォルトの名無しさん:2006/02/04(土) 22:36:43
>>428
出力先がプリンタだったりすると物理的にクリア不可能な罠。
または、ファイルだったりしたらどうするんだ。
結局はその出力先の仕様にべったりなので、一般的な方法は無し。
自分が想定した範囲で動けばいいや、的な割りきりが必要。
450デフォルトの名無しさん:2006/02/04(土) 22:54:04
>>428,449
ということで、やり方を知りたいなら、
出力元より出力先に聞けと。

# 誘導先はどこだろうなぁ
# やり方が分かれば、今度は出力元の出番ですな
451デフォルトの名無しさん:2006/02/04(土) 23:16:05
>>450
最悪ネットワークという可能性も有るからなぁ
こうなったらCUI使うんじゃねーよ、って怒ってみるか?
452デフォルトの名無しさん:2006/02/04(土) 23:21:52
>>425
(案1)まずその変態的な仕様をなんとかする
(案2)
String source = "a/bcd\\ef gh\\+ij";
Pattern p = Pattern.compile("(\\A[^/\\\\ ]*)|(/[^/\\\\ ]*)|(\\\\+[^/\\\\ ]*)|(\\\\[^/\\\\ ]*)|( )+");
Matcher m = p.matcher(source);
while (m.find()) {
System.out.println("\"" + m.group(0) + "\"");
}

>半角スペースが連続するときは、そのままで一つの単語になります
案2だと半角スペース一つでも、そのままで一つの単語になってしまう、、残念。それ以外の仕様は満たした

453デフォルトの名無しさん:2006/02/04(土) 23:25:38
>>452
やさしいな
454デフォルトの名無しさん:2006/02/04(土) 23:36:56
読み込んだ画像をファイルサイズ指定で縮小し保存するにはどのクラスを使用すればよいのでしょうか?
455デフォルトの名無しさん:2006/02/04(土) 23:41:08
>>454
「ファイルサイズ指定」
先にその悪魔の言葉をどうにかしろ
456452:2006/02/04(土) 23:43:09
>>425
もってけドロボー
String source = "a/bcd\\ef__gh\\+ij".replaceAll("_", " ");
ArrayList<String> list = new ArrayList<String>();
Pattern p = Pattern.compile("(\\A[^/\\\\ ]*)|(/[^/\\\\ ]*)|(\\\\+[^/\\\\ ]*)|(\\\\[^/\\\\ ]*)|( )+");
Matcher m = p.matcher(source);
while (m.find()) {
String s = m.group(0);
int lastIndex = list.size() - 1;
if (s.equals(" ") && lastIndex >= 0 && !list.get(lastIndex).equals(" ")) {
list.set(lastIndex, list.get(lastIndex) + s);
} else {
list.add(s);
}
}
for (String s : list) System.out.println("\"" + s + "\"");
457452:2006/02/04(土) 23:49:23
>>425
すまん>>456はバグってた
String source = "a/bcd\\ef__gh\\+ij".replaceAll("_", " ");
ArrayList<String> list = new ArrayList<String>();
Pattern p = Pattern.compile("(\\G[^/\\\\ ]+)|(\\G/[^/\\\\ ]*)|(\\G\\\\+[^/\\\\ ]*)|(\\G\\\\[^/\\\\ ]*)|\\G +");
Matcher m = p.matcher(source);
while (m.find()) {
String s = m.group(0);
int lastIndex = list.size() - 1;
if (s.equals(" ") && lastIndex >= 0 && !list.get(lastIndex).equals(" ")) {
list.set(lastIndex, list.get(lastIndex) + s);
} else {
list.add(s);
}
}
for (String s : list) System.out.println("\"" + s + "\"");
458454:2006/02/05(日) 00:02:19
>>455
混乱していました。すみません。質問したかったのは以下の二点です。

1.JPEGで保存する時の圧縮率を設定できるのか?
2.設定出来る場合、指定したファイルサイズ以下になるように圧縮率を自動で設定できるのか?
459デフォルトの名無しさん:2006/02/05(日) 00:08:26
圧縮率設定は出来る
サイズ指定はどこのライブラリも基本的にはないはず
ライブラリ化して内部で何度か圧縮チャレンジして調整するしかないのでは?
460デフォルトの名無しさん:2006/02/05(日) 00:13:33
>>459の話をまとめるとこんな感じ

void hoge(){
1 圧縮する
2 サイズ指定より大きいなら、圧縮率を上げ1へ
  上げれないなら4へ
3 成功し、抜ける
4 失敗し、抜ける
}

このhogeを呼び出すことで万事おk?
461デフォルトの名無しさん:2006/02/05(日) 00:16:46
java.awt.swing って何ですか?API見てもわかんネイっす。
462デフォルトの名無しさん:2006/02/05(日) 00:19:04
>>461
しかたないな・・

( ^ω^)ノシ ほらお
http://www.google.co.jp/search?complete=1&hl=ja&q=java.awt.swing&lr=
463デフォルトの名無しさん:2006/02/05(日) 00:24:18
いや・・・普通に検索とかわかけてますよ。
でもなんだかよくわからねっす。
解説できる人 OR 解説サイト よろしくです。

464デフォルトの名無しさん:2006/02/05(日) 00:26:53
>>463
わかんない人ですねぇ
「〜って何ですか?」とか「なんだかよくわからねっす」って言われて
┐(´∀`)┌ヤレヤレ

・・・いや、まぁ、おれも良く分からんから(orz
465デフォルトの名無しさん:2006/02/05(日) 00:39:50
iアプリでも作ってみようかと思うんですが、
ドコモの開発環境(doja)では「Eclipse2.1,1使ってね」って注意書きがあります。
Eclipseはすでに3.x系ですが、iアプリ開発者は2.1.1使うのが普通なのですか?

466454:2006/02/05(日) 00:41:33
>459
>460
ありがとうございました。メソッドを作ってみます。
467デフォルトの名無しさん:2006/02/05(日) 00:44:10
すみませぬ

ラベルとかテキストエリアなんかに表示された
メールとかのアドレスのハイパーリンクをつけるにはどうしたらいいですか?
468デフォルトの名無しさん:2006/02/05(日) 00:49:31
>>465
そう書いてあるなら、そのバージョンを使うべき。
過去の Eclipse も、ちゃんと配布もされてる。

# Eclipse の 2.x と 3.x は内部で仕様が大きく変わってるから
469デフォルトの名無しさん:2006/02/05(日) 00:50:13
セクタ長を得るにはどうしたら良いですか?

int getSectorSize( File file ) {
 // ???
}
470デフォルトの名無しさん:2006/02/05(日) 00:51:09
>>469
なんとな〜くネイティブを直接さわらにゃならん希ガス
どうするかはわからんが
471467:2006/02/05(日) 00:54:30
ごめんなさい 追加です。

ttp://www13.plala.or.jp/observe/draw2d/draw2dctrl.html
ここに書いてあるやつだとEclipseなのですが
自分はNetBeansでやってるもんですから参考にならなくて・・・・
472469:2006/02/05(日) 00:55:42
がーん。。。
面倒だから512決め打ちにしとくか。。。
473デフォルトの名無しさん:2006/02/05(日) 00:59:27
>>471 それAWTとかSwingとかは全然関係ないSWT&Draw2Dの解説
ページなんだが、それでいいのか?
474デフォルトの名無しさん:2006/02/05(日) 01:00:17
>>465
やるだけやってみてだめだったら2.1に戻すという選択肢もあり。まぁやってみ。
ちなみにDoja4.1用のプラグインは3.1でも動くという話(JavaPressより)。
475465:2006/02/05(日) 01:03:02
>>468
そうですよね・・・。
わかってるんですが、最新版のほうが何かと便利かなぁと・・・。

>>474
とりあえずやってみます。
確かにダメなら戻せばいいですもんね。

レスくれたかた、ありがとうございました。
476467:2006/02/05(日) 01:09:10
>473
えーとですね・・・
こんな感じに表示できるようになるのが希望です
ttp://www13.plala.or.jp/observe/draw2d/images/image26.gif
477デフォルトの名無しさん:2006/02/05(日) 01:20:25
>>476
Swingでできるやん
478デフォルトの名無しさん:2006/02/05(日) 01:28:05
すみません それをいったいどうやれば・・・?
Swingでどうやればいいのでしょうか?
479デフォルトの名無しさん:2006/02/05(日) 01:44:26
>>478
JEditorPaneってしらべてみそ
480デフォルトの名無しさん:2006/02/05(日) 01:54:27
htmlで修飾したら勝手にやってくれなかったっけ?
481デフォルトの名無しさん:2006/02/05(日) 02:10:51
>>480
htmlで修飾しても勝手にやってくれるのは見た目だけで、リンククリック時のイベントを
拾ってくれるのはJEditorPaneしかない。

・・・と、思ったけど、リンク先のObserveEclipseのサンプルみたいに、
単に赤色フォントに下線つけて修飾しただけのJLabelにMouseListener登録すれば
Swingでもどうとでもなるような気がしてきた。
482デフォルトの名無しさん:2006/02/05(日) 02:12:44
('A`) よーく考えよー 仕様は大事だよー
483デフォルトの名無しさん:2006/02/05(日) 02:38:12
>479
ありがとうございます
とりあえずやってみます
484デフォルトの名無しさん:2006/02/05(日) 02:56:12
自分の書いたプログラムで、StringBufferを
使っている部分をStringBuilderにすべて変換する
リファクタリングツールってないですかねぇ・・・・

正規表現で作れって話になってしまいますかねえ・・・
Eclipseだけでできるものでもなさそうだし
485デフォルトの名無しさん:2006/02/05(日) 03:01:01
>>484
sed
486デフォルトの名無しさん:2006/02/05(日) 03:08:16
>>484
StringBufferとStringBuilderはインタフェースが同じなので、単純な置換で済む。
お気に入りのエディタの置換でいいし、>>485ようにsedでもいい。
複数ファイルにわたるならfindとかと組み合わせればいい。
Eclipseの場合、ワークスペース内の複数の一括検索&置換が可能。
487デフォルトの名無しさん:2006/02/05(日) 04:57:06
いまどきのVMは、実行時に不必要な同期は勝手に削除するんジャマイカ
また、競合が発生しなければロックしてもほとんどオーバヘッドが掛からないという話

逆に、ダミーの synchronized ブロックをコンストラクタに書いても
最適化されて消えてしまう可能性から、
ダブルチェックの問題を回避するためには使えないとか何とか
488デフォルトの名無しさん:2006/02/05(日) 07:35:43
Webじゃないアプリなんですが、DB接続が頻繁に発生するのでコネクションプーリングを
自作しようと思ってます。
で、これ自体はまあなんとかなりそうなんですが、こいつの使い方で悩んでます。

プールされたコネクションを使用するのってやっぱり同じJVMからしかムリなんでしょうか?
となると、そのプールされたコネクションを使用する処理はスレッド生み落としてまわすしか
ないんでしょうか。

コネクションプールを行うクラスだけを常駐させておいて、他のJVMから起動した処理が
プールされたコネクションを使えたりすると嬉しいんですが・・・。
JVM間のオブジェクトのやりとりってやっぱ無理ですよねぇ・・・。
                                                         
そもそも、タイマー処理でもなく、ソケットも持たない常駐プログラムってどう書けばいいのか
分かってないんですけどね(-_-;)
489デフォルトの名無しさん:2006/02/05(日) 08:04:21
>>488
プールしたインスタンスは同じJVMから使ってください。

JVM間のインスタンスのやり取りは可能ですが、
DB接続のプールをやり取りしても、なんら意味が有りません。
# プールしてる先は、プロセス間通信の出入口ですから
490デフォルトの名無しさん:2006/02/05(日) 09:56:14
お聞きしたいことがあります。これからJAVAを勉強しようと思い、自宅のPC(WindowsXP)にJ2SE1.4SDKとNetBeans4.1を入れたのですが、
NetBeansを立ち上げて新しいプロジェクトを作成して、クラスのサーチとかいう画面が出たとたんにNetBeansが閉じてしまいます。
そしてexeを実行させるとエラー画面で『すでに同じインスタンスを参照している・・・』と言うような画面で、了解と取り消しボタンを決めなくてはならない状態になってしまいます。
これはどうしたら解除出来るのでしょうか?
折角参考書まで買ってしまったのでどうにか直したいです。
直し方を知っておられる方いられましたら教えて下さい。宜しくお願いします。
491デフォルトの名無しさん:2006/02/05(日) 10:16:18
>490
NetBeansをやめるのがいちばん早い。
492デフォルトの名無しさん:2006/02/05(日) 10:46:57
JDKの場所が間違えてるんじゃね。
Netbeans\etc\netbeans.confにJDKのパスが書いてるので、正しいかどうか
見てみたらどうだろうか。
493425:2006/02/05(日) 11:01:00
返信遅れてすまそ。

>>427 >>447 >>452
ありがとう!わざわざ時間かけてもらって。
StringTokenizer使えばいいってもんじゃないんですね。
正直正規表現とかわかっていないので、1.4のPatternとかMatchについてこれから学習してみます。
正規表現を使うってのがおおきな収穫です。

>>457
今動作確認しOKでした。あなたすごいです。神です!
うれしいぜー!

494452:2006/02/05(日) 11:07:05
>>452 >>493
昨日の>>456 >>457にはまだバグがあった。
これで完璧のはず。
String source = "a_A_/bcd\\ef__gh\\+ij a a a a a__abc \\ ab ".replaceAll("_", " ");
System.out.println(source);
Pattern p = Pattern.compile("(\\G( (?! ))?(([^/\\\\ ])|( (?! )))+)|(\\G/( (?! ))?(([^/\\\\ ])|( (?! )))*)|(\\G\\\\+( (?! ))?(([^/\\\\ ])|( (?! )))*)|(\\G\\\\( (?! ))?(([^/\\\\ ])|( (?! )))*)|(\\G( ) +)");
Matcher m = p.matcher(source);
while (m.find()) System.out.println("\"" + m.group(0) + "\"");

でもまずこの変態的な仕様を何とかすることを勧める
495494:2006/02/05(日) 11:11:55
ちなみに実行結果は
a A /bcd\ef gh\+ij a a a a a abc \ a/ / / b
"a A "
"/bcd"
"\ef"
" "
"gh"
"\+ij a a a a a"
" "
"abc "
"\ a"
"/ "
"/ "
"/ b "
496452:2006/02/05(日) 11:26:46
だめだ、まだバグってた
String source = " a_A_/bcd\\ef__gh\\+ij a a a a\\\\+\\\\\\\\ a__abc \\ a/ / / b ".replaceAll("_", " ");
System.out.println(source.replaceAll(" ", "_"));
Pattern p = Pattern.compile("(\\G( (?! ))?(([^/\\\\ ])|( (?! )))+)|(\\G/( (?! ))?(([^/\\\\ ])|( (?! )))*)|(\\G\\\\\\+( (?! ))?(([^/\\\\ ])|( (?! )))*)|(\\G\\\\( (?! ))?(([^/\\\\ ])|( (?! )))*)|(\\G( ) +)");
Matcher m = p.matcher(source);
while (m.find()) System.out.println("\"" + m.group(0).replaceAll(" ", "_") + "\"");

_a_A_/bcd\ef__gh\+ij_a_a_a_a\\+\\\\_a__abc_\_a/_/_/_b_
"_a_A_"
"/bcd"
"\ef"
"__"
"gh"
"\+ij_a_a_a_a"
"\"
"\+"
"\"
"\"
"\"
"\_a"
"__"
"abc_"
"\_a"
"/_"
"/_"
"/_b_"
497452:2006/02/05(日) 11:40:30
飽きてきたな・・・
Pattern p = Pattern.compile("(\\G([^/\\\\ ]| (?! ))+)|(\\G/([^/\\\\ ]| (?! ))*)|(\\G\\\\\\+([^/\\\\ ]| (?! ))*)|(\\G\\\\([^/\\\\ ]| (?! ))*)|(\\G( ) +)");
498452:2006/02/05(日) 11:42:46
\+いらねーし
Pattern p = Pattern.compile("(\\G([^/\\\\ ]| (?! ))+)|(\\G/([^/\\\\ ]| (?! ))*)|(\\G\\\\([^/\\\\ ]| (?! ))*)|(\\G( ) +)");
499デフォルトの名無しさん:2006/02/05(日) 12:00:10
新種の荒らし?
500345:2006/02/05(日) 12:11:20
>>422
jlb a = new JLabel(new ImageIcon("C:/eclipse/workspace/a/a.jpg"));
jlb a.setBounds(10,400,190,200);

って感じで絶対パス(?)を入れることで解決しました。
配置がおかしかったってことっぽいですね。
サーバーに置いた場合はここを画像の置いてあるURLにすればいいんですよね?

同じフォルダ内に画像ファイルがある場合も常に絶対パスを入れなければいけないんでしょうか。
getDocumentBase(),a.jpgとかってやっても読み込まれないようなんで。

なんか日本語おかしい感じですけど許してください。
501デフォルトの名無しさん:2006/02/05(日) 12:24:59
>>500
カレントディレクトリはどこよ
502デフォルトの名無しさん:2006/02/05(日) 12:29:20
>>489

># プールしてる先は、プロセス間通信の出入口ですから

これってどういう意味?
わかる人教えて
503345:2006/02/05(日) 13:10:51
>>501
書き方が悪かったかもしれません。
前述のような画像の配置の仕方で、Aというフォルダにjavaファイルと画像ファイルが置いてある状態でも、毎回C:/eclipse/workspace/A/画像ファイル.jpgと入力しなければいけないのかを聞きたかったんです。

getDocumentBase()というのが読み込んだアプレットのURLを返すということだったので、
jlb a = new JLabel(new ImageIcon("getDocumentBase(),a.jpg"));

というような書き方でも大丈夫なのかと思ったんですけどできなかったんで。
504デフォルトの名無しさん:2006/02/05(日) 13:19:14
>>503
「"getDocumentBase(),a.jpg"」っていいうファイルが存在するのか?
505デフォルトの名無しさん:2006/02/05(日) 13:24:21
ちゃんとパスを連結しろよ....
506デフォルトの名無しさん:2006/02/05(日) 13:29:02
ちょっと確認な
[applet].getDocumentBase():
  文書の URL を取得します。アプレットの埋め込み先文書の URL が返されます。
[applet].getCodeBase():
  基本 URL を取得します。アプレット自体の URL です。

ちゃんと区別分かってるだろうな?>>503
507デフォルトの名無しさん:2006/02/05(日) 13:39:37
input.txtの内容
gfggf
fg(ff)
ggg(fgfg)
fgg(gfgg)
g(fggf)
以下出力結果
<A>::= f<B>|g<C>
<B>::= g<D> | <D><D>
<C>::= f<B>| <B>
<D>::= g<E> | <E>
<E>::= f | g|(<A>)
accept:gfggf
error:fg(ff)
accept:ggg(fgfg)
accept:fgg(gfgg)
error: g(fggf)
となるようにプログラムを変更してもらえませんか?

508デフォルトの名無しさん:2006/02/05(日) 13:45:05
っつか、パーサジェネレータとか使った方が良いんじゃね?
509345:2006/02/05(日) 13:52:13
>>504
無いですね・・。

Image image = getImage(getDocumentBase(), "a.jpg");
jlb a = new JLabel(new ImageIcon("a.jpg"));

っていうことかと思ったんですが違うようで・・。
よくわかんないです。
初心者ですいません。
510デフォルトの名無しさん:2006/02/05(日) 13:57:39
>>509
getImage(String,String)なメソッドってあるのか?
511デフォルトの名無しさん:2006/02/05(日) 13:58:10
(V)(´Д`)(V) うーん
もうねgetDocumentBase()+"a.jpg"でいいんでね?
512345:2006/02/05(日) 14:01:48
>>506
HTMLがある場所のURLとjavaファイルがある場所のURLという認識でいいんでしょうか。
513デフォルトの名無しさん:2006/02/05(日) 14:02:20
getImage(URL, String) なら java.applet.Appletクラスにある。
514デフォルトの名無しさん:2006/02/05(日) 14:02:41
そもそもImageIconの引数それでいいのか?
515デフォルトの名無しさん:2006/02/05(日) 17:01:34
メソッドAが終了するまでメソッドBを待機しておく
(もしくは実行しない)ようにしたいんですけど何かいい方法ありませんか?

wait()使ったけどうまくいかないよ(´・ω・`)
516デフォルトの名無しさん:2006/02/05(日) 17:02:59
>>515
普通、手続き型言語ならメソッドの呼び出しは同期なんだが・・・
スレッドとかMutexとかつかったら?と言える
517デフォルトの名無しさん:2006/02/05(日) 19:05:02
Thread#join の事かもしれん
518デフォルトの名無しさん:2006/02/05(日) 19:42:48
>>515
それはjoinだろ。waitは関係ない。
519デフォルトの名無しさん:2006/02/05(日) 19:53:41
>>515
簡単な方法は、synchronizedメソッドを経由させて
スレッドを実行すること。
この方法なら、他のスレッドを自動で待機できる。
で、実行順に制限があるなら、そのメソッドで
しっかりフラグで現在の状態を管理すること。
520デフォルトの名無しさん:2006/02/05(日) 20:02:42
ああ.....よく見たら「メソッド」って書いてあるな.....
でもメソッドA実行中にメソッドBが実行中だってことなんだから、
やっぱりスレッドの話だよな?
521デフォルトの名無しさん:2006/02/05(日) 21:45:44
こんにちは。SJC-Pの勉強をしている者です。
以下を疑問に思っています。

javaコマンドで実行対象とするクラスは、
publicクラスでなくてもよいのに、
javaコマンドで実行しようとする、main
メソッドは、publicでなければならない。

この理由(というか納得のいく説明)の分かる
方教えてください

522デフォルトの名無しさん:2006/02/05(日) 21:53:31
>>521
言語規定で決められてるから。

クラスが public でなければならない、とゆー文言は無い。
> メソッドmainは,public,static及びvoidとして宣言しなければならない。
> このメソッドは,文字列の配列である単一の実引数を受理しなければならない。
523デフォルトの名無しさん:2006/02/05(日) 21:56:41
>>521
どーゆー説明すれば納得するのか教えてください
524デフォルトの名無しさん:2006/02/05(日) 21:57:35
HPビルダーの「パスワード付きリンク」のパスワードを知りたいのですが、
どうしたらいいのでしょうか?ジャバのソースには暗号化されてて不明です。
525デフォルトの名無しさん:2006/02/05(日) 22:01:15
>>515
こんなのでご要望にお答えできるかな

public class Q80_515 {
private static Q80_515 XXX = new Q80_515();
private static Object KUMA = new Object();
public static void main(String[] args) {
Runnable invokeA = new Runnable() { public void run() { XXX.a(); } };
Runnable invokeB = new Runnable() { public void run() { XXX.b(); } };
new Thread(invokeB).start();
new Thread(invokeA).start();
}
public void a() {
synchronized (KUMA) {
System.out.println("Invoke method A.");
KUMA.notifyAll();
}
}
public void b() {
synchronized (KUMA) {
try {
System.out.println("before wate() of b.");
KUMA.wait();
System.out.println("Invoke method B.");
} catch (InterruptedException e) { e.printStackTrace(); }
}
}
}
526デフォルトの名無しさん:2006/02/05(日) 22:07:13
HTTP接続で、
KeepAliveをやりたいのですがどうすればいいでしょうか?
Socket s=new Socket("http://www.hoge",80);
s.setKeepAlive(true);
とした後、
OutputStream out=soc.getOutputStream();
InputStream in=soc.getInputStream();
outに対して一回目のGETメソッドを投げて、
それに対する、読み取り
in.read()
終わったら、
outに対して2回目のGETメソッドを投げて
ソレに対する読み取り
in.read()
ってやってるんです。
別にエラーなく終わるんですが、
2回目のレスポンスがなく終わってしまいます
切断して再接続すれば取れるんですが・・・
527521:2006/02/05(日) 22:07:57
ありがとうございました。
たぶん、publicのないパッケージスコープのクラス
で定義された、publicメソッドの可視性の理解が
あいまいだったので、そのような疑問が湧いたと
思ってます。
528525:2006/02/05(日) 22:23:03
補足というか訂正。
>>525 のテストコードは KUMA が無くてもメソッドに synchronized をつければ動作します。

# 部分同期を取りたい場合にどうぞ。
# また、コンストラクタに KUMA を与えることで、
# 異なるクラスのインスタンスメソッドの同期を取ることもできました。
# ちゃんと確認してから貼り付けるべきだよねぇ
529521:2006/02/05(日) 22:27:00
ところで、SJC-P的な疑問、質問は、ここではスレ違い?
530デフォルトの名無しさん:2006/02/06(月) 00:06:23 BE:219140238-
DoJaでゲームを作ろうと思ったんですが、
下記の所で<identifier>がありませんと出ます。

private void drawChar(Character char){
   g.drawImage(image[char.getNumber()],char.getx(),char.gety());
}

実際の表示
GameCanvas.java:58: <identifier> がありません。
private void drawChar(Character char){
                        ^(←charのcあたり)

ちなみにCharacterとはゲームに出てくるキャラクターの抽象化クラスです。
531デフォルトの名無しさん:2006/02/06(月) 00:07:39
それ予約語だろ
532デフォルトの名無しさん:2006/02/06(月) 00:14:51 BE:292185784-
>>531
しまったぁああああぁあぁぁぁぁぁぁぁっァぁあああぁあっぁぁぁぁぁぁぁああ
533デフォルトの名無しさん:2006/02/06(月) 00:16:52
>>532
おつです。
# 分かりやすい質問の仕方だったと思います
534デフォルトの名無しさん:2006/02/06(月) 00:57:24
>>526
TCPモニタするツールで見てみればわかるんじゃね?
535デフォルトの名無しさん:2006/02/06(月) 01:02:14
SocketのKeepAliveなんて2時間に1回くらいじゃなかったっけか?
536デフォルトの名無しさん:2006/02/06(月) 01:03:15
>>526
追記
InputStream用のスレッドと、
Output用のスレッドが必要かと思う
537デフォルトの名無しさん:2006/02/06(月) 01:12:47
iアプリの質問は専用スレへ
538デフォルトの名無しさん:2006/02/06(月) 02:46:41
質問の回答お願いします。
Java3Dのプログラムなのですが、質問はこちらのほうがいいと思ったのでこちらでお願いします。

ソケットでデータを受け取って3Dオブジェクトを動かすというプログラムを作りたいと思っています。
ソケットで受け取った変数xをcreateSceneGraphの中で使いたいのですがメソッドの継承がうまくいきません。
へたくそな説明で申し訳ありませんが、アドバイスお願いします。

ソース
ttp://senpk.hp.infoseek.co.jp/Test.java

Java3Dの動作にはこちらが必要です。
ttp://java.sun.com/products/java-media/3D/download.html
539デフォルトの名無しさん:2006/02/06(月) 04:13:44
java.util.Properties とHashMapって何が違うんですか?
どっちもキーと値を持つようですが。
540デフォルトの名無しさん:2006/02/06(月) 04:36:06
なんでコンストラクタって継承されないんでしょうか?
継承されると何か不都合でもあるんでしょうか?
541デフォルトの名無しさん:2006/02/06(月) 05:04:44
542デフォルトの名無しさん:2006/02/06(月) 07:48:00
>>540
継承されてるよ。もっと勉強だね。
543デフォルトの名無しさん:2006/02/06(月) 07:58:17
>>540,542
サブクラスで、引数ありのコンストラクタを定義した場合に
無名コンストラクタが呼べなくなる、かな。
# これは継承とは関係ないか…
544デフォルトの名無しさん:2006/02/06(月) 08:10:32
サブクラスのコンストラクタすっ飛ばしてスーパークラスのコンストラクタを勝手に
呼ばれる弊害の方が大きいから、サブクラスのコンストラクタからしか呼べません。
デフォルトコンストラクタだけは手抜きのため例外的にサブクラスでコンストラクタ
未定義ならスーパークラスのが呼ばれるようになってる。
545デフォルトの名無しさん:2006/02/06(月) 08:19:10
文章から数桁の数字だけを抜き出そうとしています。
Integer.parseInt(str)で片っ端から文字を数字に変えるプログラムを書いたのですが、
intに変換できなかった場合にエラーになってしまうので、
エラーの場合は飛ばして次に移るというようにしたいです。
その場合どのような方法があるのでしょうか。

546デフォルトの名無しさん:2006/02/06(月) 08:23:40
すみません、

try{
}catch(Exception e){
}

で出来ました。
547デフォルトの名無しさん:2006/02/06(月) 10:45:06
FileDialogクラスはimplement Frameクラスではつかえないのですか?
Canvasで使おうと思いましたができませんでした。
548デフォルトの名無しさん:2006/02/06(月) 11:07:14
すごい初歩的な質問かもしれませんが、a=0〜100、b=100〜200、c=200〜300
の全ての条件を満たす式はif(((a>0)&&(a<100))&&((b>100)&&(b<200))&&((c>200)&&(c<300)))
であってると思うのですが、上手く行きません。
条件を満たす式分かる方教えてください。
549デフォルトの名無しさん:2006/02/06(月) 11:21:13
>>548
0<=a && a<=100
&&
100<=b && b<=200
&&
200<=c && c<=300
か?
550デフォルトの名無しさん:2006/02/06(月) 12:07:41
>>526
その情報だけじゃプロトコルをどこまで理解しているかわからんので、
HTTP/1.1のRFC読んで、としか言えない。
551デフォルトの名無しさん:2006/02/06(月) 15:12:58
drawRect drawLine までできた。
オレすごすぎ。
552デフォルトの名無しさん:2006/02/06(月) 15:16:17
>>551
drawRect drawLine までできた。
良く考えたら何するのか覚えてない
オレすごすぎ。
どんなときも他の人間を巻き込むからな

(V)(´Д`)(V) 行間詰め込みますた
553デフォルトの名無しさん:2006/02/06(月) 17:05:03
Windowsで.jarアイコンがテキストファイルみたいなアイコンで格好悪いのですが
他のWindowsアプリみたいに拡張子に対応したデフォルトの格好いいアイコンは
ないのでしょうか?

.jarファイルごとにアイコンというのは別にいらないのですが
デフォルトの.jarファイルの格好いいアイコンありませんか?
554デフォルトの名無しさん:2006/02/06(月) 17:08:33
自分で作れば?
555デフォルトの名無しさん:2006/02/06(月) 17:08:54
スタンバイ状態から復帰させる方法を教えてください。
556デフォルトの名無しさん:2006/02/06(月) 17:10:59
>>554
センスがあればそうするんですが。。。
今適当に使えそうなアイコンを探してます、

JREにjarのアイコンくらいついてきてもいいのに。
そうしたらもう少し見栄えが良くなると思う。
557デフォルトの名無しさん:2006/02/06(月) 17:26:23
とりあえずこのアイコンにした。
C:\WINDOWS\system32\jpicpl32.cpl

チラシの裏になってしまってスマン
558デフォルトの名無しさん:2006/02/06(月) 18:04:41
>>555
スタンバイ状態を定義してください。
559デフォルトの名無しさん:2006/02/06(月) 18:16:36
いきなりですいません。
まだJavaを初めて間もなく、つまらない質問かと思いますが宜しくお願いします。

 JTreeに関しての質問のですが、ツリーの項目を他のイベント(他のウィンドウでの)から呼び出してフォーカスをあてる、または選択した状態(外観だけ)にしようと思ってます。
 tree.setSelectionPath(path); でやってみたのですが、選択時のようなマークがされませんでした…
 ツリーのウィンドウにパネルで項目の名前を表示させているのですが、それには表示できます。これはどういうことなんでしょうか?
現在のソースの状態です。argPが項目を選択した状態にしたいオブジェクトです。

DefaultMutableTreeNode pPath = new DefaultMutableTreeNode(argP);
Object pathArray[] = pPath.getPath();
TreePath path = new TreePath(pathArray);
tree.setSelectionPath(path);

どうしたらよいでしょうか?アドバイスいて頂けたらと思います
560デフォルトの名無しさん:2006/02/06(月) 18:19:32
561デフォルトの名無しさん:2006/02/06(月) 18:28:26
>>559
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/javax/swing/tree/DefaultMutableTreeNode.html#DefaultMutableTreeNode(java.lang.Object)
> 親も子も持たないツリーノードを作成し、
> 指定されたユーザオブジェクトで初期化します。
> このツリーノードは子を持つことができます。
562デフォルトの名無しさん:2006/02/06(月) 18:36:17
>>539
Properties
 String をキーと値に使う為に特化。取り出し時にキャスト不要。
 しかし J2SE 5.0 の新機能によって別に HashMap でもキャストがいらなくなったので
 J2SE 1.4 までのアプリにしか使われなさそう。

HashMap
 Object をキーと値に使う。通常、取り出し時にキャストを使用する。汎用的。
563デフォルトの名無しさん:2006/02/06(月) 19:55:14
すみません 教えてください
JAVAでTV電話を作りたいのですが可能でしょうか?
C版+ActiveXはできてます。ActiveXが最近 アレなので
JAVAに移行しようと思っています
また、JAVAで作成した場合 ベリサイン等は必要なのでしょうか?
564デフォルトの名無しさん:2006/02/06(月) 20:45:29
>>563
>JAVAでTV電話を作りたいのですが可能でしょうか?
不可能/可能でいえば可能でしょう。

>また、JAVAで作成した場合 ベリサイン等は必要なのでしょうか?
あなたが必要なら必要ですし、必要でないなら必要ありません。


質問が曖昧だと、回答も曖昧なものになります。
具体的な回答が欲しければ、具体的な質問をしましょう。
565デフォルトの名無しさん:2006/02/06(月) 23:07:35
>>564
>質問が曖昧だと、回答も曖昧なものになります。
>具体的な回答が欲しければ、具体的な質問をしましょう。

うに板でさっきほぼ一時一句同じこと言ってた馬鹿がいたなw
猿真似かwww
566デフォルトの名無しさん:2006/02/06(月) 23:13:16
>>565
(V)( ´Д`)(V) 特定
567デフォルトの名無しさん:2006/02/06(月) 23:24:15
>>530-532
こんな流れるような質問と解答とレスポンス、質問スレでひさびさに見た気がするw
568デフォルトの名無しさん:2006/02/06(月) 23:27:51
>>539,562
おいおい、Propertiesには、loadとかloadFromXMLで、プロパティファイルを一気に
読み込む機能があるじゃん。Propertiesはプロパティファイルを読み込むためにあると
いうことでいいんじゃないの。

おれは結構使う。
569デフォルトの名無しさん:2006/02/06(月) 23:28:44
本質を見極められない人は大変だという実話
570デフォルトの名無しさん:2006/02/06(月) 23:32:34
初心者です。
JTabbedPaneクラスでタブの中に入れ子のタブを作りたいのですが、
入れ子の方のタブは項目が決まっているので
JTabbedPaneの派生クラスにしたのですが、
入れ子が表示されません。
なにがいけないの?

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class test extends JFrame{
public static void main(String arg[]){test tt = new test(); tt.setSize(640,480);tt.setVisible(true);}
public void test(){

test2 tab2 = new test2();
JTabbedPane tab1 = new JTabbedPane();

tab1.addTab("普通のタブ",new JLabel("普通のタブ"));   // これは普通のタブ
tab1.add(tab2);                            //   ←タブの中に ↓


Container cp = getContentPane();
cp.add(tab1);
}
}

class test2 extends JTabbedPane{

public void test2(){
this.addTab("入れ子のたぶ",new JLabel("入れ子のタブ"));//    ←定型の子タブを入れたい
}
}
571デフォルトの名無しさん:2006/02/06(月) 23:48:43
すいません、ほぼ初心者です。

.javaを2つ使っての(仮にAとBとします)プログラムです。

Aで使うstring□□の添え字にBのint○○を使いたく
□□[B.○○]という形で記述したのですが
いざ、実行し、その部分になると

Exception in thread "Thread-0" java.lang.NullPointerException
    at clientProc.run(プログラム名.java:110)
    at java.lang.Thread.run(Thread.java:595)
と、プロンプト画面にでて止まってしまいます。

コンパイルは通ります。
Bでint ○○は1と最初に定義してあります。
なぜNullと判断されてしまうのでしょうか?
572デフォルトの名無しさん:2006/02/06(月) 23:54:13
>>571
null だからだろ。
573デフォルトの名無しさん:2006/02/06(月) 23:55:52
>>571
おれの予想。
Bのインスタンスを作ってない。new B()してない。
574デフォルトの名無しさん:2006/02/06(月) 23:57:38
>>570
レイアウトとかどうなってるの?
まずSwingはサイズ指定をしてはいけない
推奨サイズを重ね合わせていってサイズが最終的に決まるようにすべし
そしてpackするのだ

わからなかったらGUIエディタで配置して出来上がるソースコード確認してごらん
575デフォルトの名無しさん:2006/02/07(火) 00:01:47
>わからなかったらGUIエディタで配置して出来上がるソースコード確認してごらん

VEはサイズ指定しちゃうらしいよ。
576デフォルトの名無しさん:2006/02/07(火) 00:14:32
>>574
ありがとうございます。
>>570は実は簡略化してありsetSize();としてありました。
しかしそれを削ってもうまくいきません。

test2のコンストラクタでthis.addTab()いうやりかたはこれでよいのでしょうか?
577デフォルトの名無しさん:2006/02/07(火) 00:16:32
>>572
……、ですよね orz
えと、なんかスイマセンでした....

>>573
それはAの方で記述するのでしょうか?
本当に初心者で申し訳ないです。
578デフォルトの名無しさん:2006/02/07(火) 00:17:35
>>575
NetBeansつかえばよかろう
579デフォルトの名無しさん:2006/02/07(火) 00:27:21
>>570
もしかして、コンストラクタのつもりで「public void test2(){... 」 と書いてないか?
public void を外してみ。
580デフォルトの名無しさん:2006/02/07(火) 00:37:24
>>579
ありがとうございます。
public voidを取ったら上手くいったんですが、仰るとおり、コンストラクタのつもりでした。
test2は別クラスだから良いのかと思いました。

簡略な理由を教えて頂ければ幸いなのですが。
よろしくお願いします。
581デフォルトの名無しさん:2006/02/07(火) 00:40:22
>>571
>>573 の場合と、配列の中身を入れてなかった場合の二通りかな
その行で、ぬるぽ例外が出る可能性は。

# そもそも、設計が間違ってる気がするのだが
# 添え字を他のクラスに依存するのは…
582デフォルトの名無しさん:2006/02/07(火) 00:44:49
>>580
> test2は別クラスだから良いのかと思いました。

test2 は test と別クラスだから、○○をしても or XX をしなくても 良いと思いました。
○○かXXに入る言葉は?

# クラス名の一文字目は大文字でね。幸せになれます
583デフォルトの名無しさん:2006/02/07(火) 00:47:09
>>577
AとBはファイルも別なら、クラスも別。クラスなんて鋳型みたいなもんなんだから、
そっからオブジェクトを生成せんことには何もできん。

だから、AからBを使いたいなら、使いたいところでまずは
B instance = new B();
するのが先決だ。

あとはinstance.○○でいいんじゃね?
むろん、B()というコンストラクタか、変数定義で○○に値を代入していることが
大前提だが。
584デフォルトの名無しさん:2006/02/07(火) 00:54:50
インスタンスメンバと性的メンバがある
エッチだな。
585デフォルトの名無しさん:2006/02/07(火) 00:55:00
>○○かXXに入る言葉は?
すいません。
>test2は別クラスだから(コンストラクタの定番のようにpublic voidを入れても)良いのかと思いました。
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^↑が足りませんでした。


># クラス名の一文字目は大文字でね。
なるほど。たしかにみな大文字ですね。
586デフォルトの名無しさん:2006/02/07(火) 00:58:03
>>580
Javaのきまり。
コンストラクタは
・クラス名と同じ名前
・返り値を持たない(返り値の型宣言もしない)

っ「Java 言語仕様」(http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.8
参考訳http://www.y-adagio.com/public/standards/tr_javalang/8.doc.htm#41652 ※最新ではない

「Java コンストラクタ」でぐぐるよろし。
587デフォルトの名無しさん:2006/02/07(火) 01:09:09
>>586
・返り値を持たない(返り値の型宣言もしない)
なるほど。
勘違いしてました。勉強になり、ありがとうございました。
588デフォルトの名無しさん:2006/02/07(火) 01:11:50
>>587
コンストラクタを叩いても返り血はないが、
New演算子は返り血はあるからな。
そこ注意。
589デフォルトの名無しさん:2006/02/07(火) 01:18:57
>>588
>New演算子は返り血はあるからな。
そうでしたね。
ありがとうございます。
590571:2006/02/07(火) 01:27:45
>>581
>>583
ありがとうございました!
無事解決いたしました。
これからもっと勉強していきたいと思います。
本当にありがとうございましたm(_ _)m
591デフォルトの名無しさん:2006/02/07(火) 01:32:07
getByteでbyteに変換した文字列を、Stringとして保存した後
再度読み込む際にStringじゃなくてbyteとして読み込むようにしたいんだけど・・。

読み込んだStringにgetByteすると当然違うByte列になっちゃうし(´・ω・`)
592デフォルトの名無しさん:2006/02/07(火) 01:34:44
>>591
俺javaあんまりやらないからあれだけど、
どのクラスのgetByte()メソッド使ってるの?
で、byte→Stringはどうやってるの?
保存先は普通のStream?それともString[]?
再読み込みはどうやってるの?
593デフォルトの名無しさん:2006/02/07(火) 01:39:22
Byte.parseByte(String)でbyteにしていきつつbyte[]にして、そのあと
String(byte[], encode)でString化。
594デフォルトの名無しさん:2006/02/07(火) 02:05:15
byte→byte配列で詰まってるけど調べてみます
ありがとう
595デフォルトの名無しさん:2006/02/07(火) 02:20:15
ごめん無理だった
誰か教えてくれお(´・ω・`)
596デフォルトの名無しさん:2006/02/07(火) 02:23:45
もとのStringのlength/2と同じだけの長さのbyte[]を用意して、
Stringから2文字ずつ取り出して、2文字をByte.parseByte()して、
byteを得る。得たbyteをbyte[]に突っ込んでいく。
最後まで読み込んだら、String(byte[], encode)で終わり。
597デフォルトの名無しさん:2006/02/07(火) 02:25:09
愛してる
やってみるお(`・ω・´)
598デフォルトの名無しさん:2006/02/07(火) 02:29:37
byte hoge[]="abc".getBytes("Shift_JIS");
で動くと良いな。
599デフォルトの名無しさん:2006/02/07(火) 02:53:35
サンプル。インデントはIDEを使うなり、自力で入れるなりしてくれ。
public class StringTest {
public static void main(String[] args) {
String arg = args[0];
byte[] bytes = arg.getBytes();
StringBuilder sb = new StringBuilder();
for( byte b : bytes) {
sb.append( Integer.toHexString(b));
}
String resultStr = sb.toString();
System.out.println( resultStr);

int count = 0;
int index = 0;
int byteLength = resultStr.length() / 2;
byte[] byteArray = new byte[ byteLength];
while( count < resultStr.length()) {
String part = resultStr.substring( count, count + 2);
byte b = Byte.parseByte( part, 16);
byteArray[index] = b;
count += 2;
index++;
}
String retStr = new String( byteArray);
System.out.println( retStr);
}
}
600599:2006/02/07(火) 02:58:00
ああ、実行するときは引数が一つ必要だから。
java StringTest SAMPLE
とか実行すると、

53414d504c45
SAMPLE

と表示されるはず。
601デフォルトの名無しさん:2006/02/07(火) 04:18:46
>>586
「おかしなコードでさ、クラス名と同じ名前のメソッドがあるんだよ?」
と、コンストラクタを知らずに何年も業務で Java をやってる輩はどうしてくれよう
ありえなさに脳内フィルタでスルーしてしまったが
602デフォルトの名無しさん:2006/02/07(火) 08:45:37
matcher.appendTail(StringBuilder);
ここ入れたいんだけど?
もうちょっと反り合わせてくれると助かるな
新入りのくせにふぁいなりやがって
603デフォルトの名無しさん:2006/02/07(火) 10:28:58
初心者で申し訳ないのですが、
public void の途中で定義しているintに
他の.javaのintを代入できることはできるのでしょうか?

class instance = new class();
だとやはり無理なんでしょうか?
604デフォルトの名無しさん:2006/02/07(火) 10:30:40
( ;´ー`)y-~~
605デフォルトの名無しさん:2006/02/07(火) 10:36:17
>>603
こういうことをやりたいのか?

class A {
public void test() {
B b_obj = new B();
int num = b.getQuantity();
}
}

class B {
private int quantity;
public int getQuantity() {
return quantity;
}
}
606デフォルトの名無しさん:2006/02/07(火) 10:38:57
> public voidの途中で定義しているint
んなもんねぇ

> 他の.javaのint
・・・.java.int?

-----ここから話が変わります-----
> class instance = new calss();
> だとやはり無理なんでしょうか?
いいんでね? (´ー`)シラネ
607デフォルトの名無しさん:2006/02/07(火) 10:39:50
>>603
質問の答えではないし、ただの愚痴だが。
プログラミングの際に、".java" などというもの(おそらくひとつのファイルのこと)を単位にして、
考えたり表現することは一切有りません。

Java 言語を始めとするオブジェクト指向ではクラスという概念を使います。
# もう、まじで鳥肌が立つんで、そこんところヨロシク
608デフォルトの名無しさん:2006/02/07(火) 10:41:06
なんか物凄く質問の意味が理解できない
609デフォルトの名無しさん:2006/02/07(火) 10:49:14
>>608
オールドタイプだな
610603:2006/02/07(火) 11:43:49
>604-609
本当すみませんでした。
自分でも何言ってるのか…。
もっと勉強しなおしてきます。
611デフォルトの名無しさん:2006/02/07(火) 14:17:27
ソース
FileOutputStream OS = new FileOutputStream( "test.dat");
b = readTextByte();
OS.write(b);

for(i = 0;i > b.length; i = i + 1)OS.writeByte(?);
readTextByteで文字列のバイト配列を取得、その後、文字列と同じ
サイズの0が入っているバイトをバイナリファイルに書き込みたいのですが
できません。
0の入っているバイト配列の作り方、またはFileOutPutStreamに0を流す方法を
教えてください。
612デフォルトの名無しさん:2006/02/07(火) 14:23:13
>>611
「文字列と同じサイズの0が入ってるバイト」について述べよ
同じく「0の入ってるバイト配列」、「0」についても、必要があれば述べよ
613デフォルトの名無しさん:2006/02/07(火) 14:24:34
>>611
> readTextByteで文字列のバイト配列を取得、
> その後、文字列と同じサイズの0が入っているバイト
byte[] 文字列と同じサイズの0が入っているバイト(String s){
int k=s.getBytes().length;
return new byte[k];
}

> をバイナリファイルに書き込みたいのですが できません。
OS.writeBytes(文字列と同じサイズの0が入っているバイト("abc"));

か?
雰囲気だけでも
614デフォルトの名無しさん:2006/02/07(火) 14:29:05
>>611
FileOutputStream#write(int) を使え。
writeByte があるのは DataOutput の実装クラスだ。

0の入ってるバイト配列は、nバイトの配列の場合は
new byte[n] で作れる。

不等号の向きが逆っぽい。
大文字の OS はSWT で内部的に使われてたりするので
他人を混乱させる目的が無いのであれば使用しないほうがよかろ。
615デフォルトの名無しさん:2006/02/07(火) 14:31:26
('A`) 俺のところのJ++には
FileOutputStream.write(byte[]) があるようだ・・・
616デフォルトの名無しさん:2006/02/07(火) 14:41:13
>>614
プリミティブ型(int や byte や double)の配列は、
生成しただけ(new byte[n])では、各要素の値として 0x0 を保持しています。

# だから、 全要素の値が 0 で、長さ n の byte 配列を生成したい場合は、new byte[n] でOK
# 明示的ではないので、あまりお勧めはしませんが、みんな使っていることでしょう
617611:2006/02/07(火) 14:43:27
>>612
文字列と同じサイズの0が入ってるバイトとはバイナリファイル上で
説明すると
54 45 53 54 00 00 00 00これのことです。
文字列   ↑ ↑ ↑ ↑
この通りにバイナリファイルに0を追加書き込みしたいのです。
よろしくお願いします。
PS OSは使用しないことにします。
618デフォルトの名無しさん:2006/02/07(火) 14:46:16
>>617
('A`) そうか。00を四つ並べればいいんだなwwwww

って思われるかも知れんぞ
"文字列と同じサイズ"と"00 00 00 00"の関連が曖昧。
619デフォルトの名無しさん:2006/02/07(火) 14:47:35
b = readTextByte();
OS.write(b);
Arrays.fill(b, 0x00);
OS.write(b);
620デフォルトの名無しさん:2006/02/07(火) 14:52:10
>>619
あったまいい(´・ω・`)
621デフォルトの名無しさん:2006/02/07(火) 15:12:42
かなり初心者なんですが
public class A{
public static void main(String[] args){
if(args.length>0){
B b=new B(args[0]);
}else{
B b=new B();}
b.method();}}
としたらBクラスのメソッドが呼び出せないのですが。
Bクラスをインスタンス化するときにパラメータ引数が
あった場合にはコンストラクタで引数をとってない場合は
引数なしのコンストラクタで生成したいんですよ。
制御文とかの{ }内でインスタンス作ったら
{ }内でしか使えないんですか?
622デフォルトの名無しさん:2006/02/07(火) 15:15:13
public class A{
  public static void main(String[] args){
    B b = null;
    if(args.length > 0)  b = new B(args[0]);
    else           b = new B();
    b.method();
  }
}
623デフォルトの名無しさん:2006/02/07(火) 15:17:19
>    B b = null;
これは B b; でいいな。
624デフォルトの名無しさん:2006/02/07(火) 15:20:41
>>622>>623
ありがとうございます。
625611:2006/02/07(火) 15:22:44
619さんに質問なのですがそれはbyte配列にも使えますか?
626デフォルトの名無しさん:2006/02/07(火) 15:23:24
System.out.println("APIリファレンス見ろ");
627デフォルトの名無しさん:2006/02/07(火) 15:25:28
Javaで、PCを指定時間にスタンバイや休止状態から復帰させるようなものって
作れますか?
628デフォルトの名無しさん:2006/02/07(火) 15:26:17
>>627
なんかプラットホーム依存の匂い
629611:2006/02/07(火) 15:35:33
Arrays.fill(b, 0x00);だとfill関数のシンボルを認識
していなかったので
byte bZero = 0x00;
Arrays.fill(b, bZero);
これでできました。答えてくださった多くの方
ありがとうございます。勉強不足で申し訳ないです。
630デフォルトの名無しさん:2006/02/07(火) 15:42:11
>>628
やっぱ匂いますよね
631デフォルトの名無しさん:2006/02/07(火) 15:44:55
>>629
っ (byte) 0x0
632デフォルトの名無しさん:2006/02/07(火) 17:15:58
クラス内にある変数(int型)を違うクラス内で使用するにはどのようにすればいいでしょうか??
クラスは同じパッケージ内にあります。
public void GiveMultiID(){
int ratio=0;
int i=0;
ratio=(int)((node_num)*Math.random());

for(i=1; i<multi_num; i++){
ratio=(int)((node_num)*Math.random());//
if(multi_id[ratio]==0){
System.out.println(ratio);
multi_id[ratio]=1;
}
else
i--;
}
}
のなかのratioの値です。初心者ですみません。
633デフォルトの名無しさん:2006/02/07(火) 17:18:06
>>632
ローカル変数にはメソッドの外からアクセスできません。
634デフォルトの名無しさん:2006/02/07(火) 17:22:31
>>632
早速ありがとうございますmm

そうなんですか。
なにか解決策はありますでしょうか?
635デフォルトの名無しさん:2006/02/07(火) 17:26:07
public class Hoge{
  private int ratio;
  public void GiveMultiID(){
    int i=0;
    ratio=(int)((node_num)*Math.random());
    ...
  }
  public int getRatio(){
    return ratio;
  }
}
636デフォルトの名無しさん:2006/02/07(火) 17:26:35
メンバ変数にしてGetterから取得する
637デフォルトの名無しさん:2006/02/07(火) 17:28:18
class A {
int n = 2;
void giveMultiID() {
int ratio = 5;
}
}
class B {
void b() {
int y = 3;
//Aのnにはアクセスできますが、ratioにはアクセスできません。
A ao = new A();
y = ao.n;
}
}
これで言うとメソッドaの中でフィールドnにratioを代入しとけばできる。
638デフォルトの名無しさん:2006/02/07(火) 17:30:13
メソッドaってどこー??
639デフォルトの名無しさん:2006/02/07(火) 17:32:34
>>634
まずint ratioをメンバー変数にする
640637:2006/02/07(火) 17:35:43
>>638
間違えたメソッドgiveMultiIDが正しい
641デフォルトの名無しさん:2006/02/07(火) 17:35:48
>>635、636、637さん

ありがとうございますmm
やってみますmm
642デフォルトの名無しさん:2006/02/07(火) 18:30:15
Javaアプレットを1つのhtmlの中で起動させた時、
クラスAとクラスBで引数の受け渡しはできますか?

できるとするならばそれはやはりgetter setterでしょうか?
643デフォルトの名無しさん:2006/02/07(火) 18:43:30
何個の Java アプレットを起動させる気だ。
644642:2006/02/07(火) 18:45:38
>>643
すいません。記述漏れでした。。。
2個です。
645デフォルトの名無しさん:2006/02/07(火) 19:01:41
最近、いじめすぎたと思いまして、心を入れ替えて質問に答えようと頑張ってみたの

でも、私、日本語しか読めないのよね。

投稿する前にご自分のお書きになった文章を、声に出して読み直すことをお奨めするわ
646デフォルトの名無しさん:2006/02/07(火) 19:12:37
>>644は質問の意味を取り違えていないかい?

2個アプレットだと意地でもデータのやり取りをしたいなら、
アプレットがサーバにデータを送ってそれを別のアプレットが取りにいく
位しかやりようがない気がする

あ、localhost間だから宛先がわかるからSocket開けばできるかな?
647デフォルトの名無しさん:2006/02/07(火) 19:15:47
>>642 >>646
Applet の getAppletContext で AppletContext 取得して getApplet で Applet を探す。
648デフォルトの名無しさん:2006/02/07(火) 19:32:48
>>647
Ohスゲーこんなモノがあったんだ。
参考になったよ、もし>>642みたいな案件があったらきっとソケット開いてるw
649642:2006/02/07(火) 20:22:00
なんか私、とんでもないあふぉなことを聞いてしまったようで…。
素人丸出しで申し訳ありませんです(´;ω;`)

AアプレットにBアプレット内をクリックする度に
数値が変化するint Cを持って行きたいのですが、
変化した状態でなくint Cの初期値が返ってきてしまいます。

ちなみに今はあふぉ全開でインスタンス(?)でやってまして…。

>>647
大変参考になるレスありがとうございます。
調べてみたんですが、いかんせん↑通り素人レベルでして
理解できませんでした(つД`)モウシワケナイデス

↑のような動きをするにはどう組めばいいのでしょうか?
本当にあつかましいとは思いますがどうかよろしくお願いいたします.....orz
650デフォルトの名無しさん:2006/02/07(火) 20:25:45
serialVersionUIDについて調べてみたのですが、意味が分かりません。
どうやってナンバーが生成されるの?ナンバーの規則性は?
そもそも直列可能性って何?
偉い人分かりやすいくserialVersionUIDについて教えてください。
651デフォルトの名無しさん:2006/02/07(火) 20:44:09
652デフォルトの名無しさん:2006/02/07(火) 20:46:38
生きろぉぉおおぉぉおぉぉぉおぉおおおおお!!
653650:2006/02/07(火) 20:48:40
>>651
それ読んだけどワケワカラン。
ぐぐってもあいまいなこと書いてるとこしか見つからないし..
654デフォルトの名無しさん:2006/02/07(火) 21:12:05
>>649
int C を、ローカルで二重宣言していないかどうかチェック。
655649:2006/02/07(火) 21:21:48
>>654
レスありがとうございます。
確かめてみましたが、二重宣言はしていませんでした。
656デフォルトの名無しさん:2006/02/07(火) 21:26:35
すいません、超初歩的質問ですが教えてください。

変数をコンストラクタで初期化しようと思うのですが

以下のコンストラクタの例1と例2の書き方はどちらが正しいのかを教えてください。

どちらも問題ありませんでしたが良くない書き方かどうかが気になります。


public class Insta1 {
int inst;
String sinst;

■コンストラクタ(例1)
Insta1() {
this.inst = inst;
this.sinst = sinst;


■コンストラクタ(例2)
inst = this.inst;
sinst = this.sinst;
657デフォルトの名無しさん:2006/02/07(火) 21:33:03
>>656
どちらも正しくない。
Insta1(int inst, String sinst){ なら例1が(たぶん)正しいんだろうけど。
658デフォルトの名無しさん:2006/02/07(火) 21:36:59
>>655
ん〜。宣言を 「 volatile int C; 」 にしてみるとか、「 public int getC(){ return C; } 」 みたいなんからアクセスするとか。
ただ、↑で解決するとは正直思えないな。あとはソース見ないとわからん。
659656:2006/02/07(火) 22:02:20
>>657
ありがとうございます。

コンストラクタの宣言自体が間違ってるんですよね。

”Insta1(int inst, String sinst) { ”

であれば例1で問題ないということでよろしいんですね?
よろしければクローズします。ありがとうございました。
660syosinsya:2006/02/07(火) 22:02:29
すいません
教えてください
大変困っています。

サーバサイドプログラミングで、
サーバ側のWEBアプリから、クライアントのEXEを起動しようと試みています。

環境
サーバ
OS:windows
アプリ:WEBアプリ(Struts)
ブラウザ:IE6

クライアント
OS:windows
アプリ:.NETアプリ(EXEファイル)

処理としては、クライアントからWEBアプリ(Struts)にアクセスして、
Aというリンク文字列をクリックすると、ローカルにインストールしてある
.NETで開発したEXEを起動するといったものです。

クライアントの、EXEパスは絶対パスでOKです。

サーバのWEBアプリから、アクセスしてきたクライアントのEXEを起動はできますでしょうか?
どのようにすればよいでしょうか?

できれば、JAVAで制御しようと思っているのですが、
JAVAで無理であれば、JavaScript・VBScriptの何れかでも結構です。

ご教授いただきたいのですが、よろしくお願いします。

661デフォルトの名無しさん:2006/02/07(火) 22:04:13
>>660
★★ Java の宿題ここで答えます Part 55 ★★
にマルチ中です
662デフォルトの名無しさん:2006/02/07(火) 22:15:12
昨日から色々試してるのですが。コンパイルできません。
何がいけないのでしょうか?
エラー内容は、不正な文字ですって100個のエラーが出ます。
----------------------------------
public class MyStringArrayList{
private static final int INITIAL_CAPACITY = 4;
private String[] ar;
private int size;

public MyStringArrayList(){
ar = new String[INITIAL_CAPACITY];
size = 0;
}

public void add(String a){
if(this.size() = ar.length){
String[] br;
int arlength = ar.length
br = new String[arlength*2];
for(int i=0; i<ar.length; i++){
br[i] = a[i];
}
ar = br
}
ar[size] = a;
size += 1;
}
663662:2006/02/07(火) 22:17:10
public String get(int n){
return ar[n];
}

public int size(){
return size;
}
}
664デフォルトの名無しさん:2006/02/07(火) 22:17:57
>>650
なんでそんな事を気にするようになったんだ? Eclipseの警告か? 無視して良し。

直列化可能性ってのは、あるインスタンスをバイト列にして、ファイルなりストリームなりに
吐き出すことが可能か?、って事。 インスタンスをその状態のままで保存したりなんかで使う。
これはSerializableとかExternalizableをimplementすれば可能。 詳しくはjavadoc嫁。

http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/io/Serializable.html
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/io/Externalizable.html
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/serialization/spec/class.doc6.html
これでも解らなければ、まだ知らなくても困らんって事だ。 記憶の片隅に追いやっとけ。
665デフォルトの名無しさん:2006/02/07(火) 22:18:53
>>663
> public int size(){
> return size;
> }
名前被ってないか?
666662:2006/02/07(火) 22:19:25
public class MyStringArrayList{
private static final int INITIAL_CAPACITY = 4;
private String[] ar;
private int size;

public MyStringArrayList(){
ar = new String[INITIAL_CAPACITY];
size = 0;
}

public void add(String a){
if(this.size() = ar.length){
String[] br;
int arlength = ar.length
br = new String[arlength*2];
for(int i=0; i<ar.length; i++){
br[i] = ar[i];
}
ar = br
}
ar[size] = a;
size += 1;
}
667662:2006/02/07(火) 22:24:06
>>665
かぶっちゃだめなんですかね。フィールドを「sz」にして他も
変更しましたがやっぱりだめでした。
668655:2006/02/07(火) 22:24:17
>>658
レスありがとうございます。
volatile int Cは試してみましたがダメでした。
一応 static int Cもやってみたのですがダメでした…。

public int getC(){return C;} なんですが、すいません…。
どこをどうすれば、どこの事をおっしゃてるのかが
私の知識ではわかりませんでした。
669デフォルトの名無しさん:2006/02/07(火) 22:28:02
>>665
名前被っても大丈夫だぞ。
670デフォルトの名無しさん:2006/02/07(火) 22:29:27
>>669
大丈夫なんか・・・
うーん、勘はアテにならんな。
671デフォルトの名無しさん:2006/02/07(火) 22:37:47
>>662
不正な文字って、全角スペース使ってるとかか?
すぐにわかるのは4つぐらいか。

> if(this.size() = ar.length){ // = じゃなくて ==

> int arlength = ar.length //;が無い。
> ar = br //;が無い。

> br[i] = a[i] //a じゃなくて ar
672デフォルトの名無しさん:2006/02/07(火) 22:50:31
エラーメッセージに目を向けてないやつだからどうしようもないな
673デフォルトの名無しさん:2006/02/07(火) 23:00:00
コンパイルエラーはエラーメッセージを張れ、と……
まぁ、調べもしないで、べたべた張られても困るけど…
674662:2006/02/07(火) 23:06:18
/Users/tetsuro/Desktop/java/MyStringArrayList.java:1: \65533 は不正な文字です。
??public class MyStringArrayList{
^
/Users/tetsuro/Desktop/java/MyStringArrayList.java:1: \65533 は不正な文字です。
??public class MyStringArrayList{
^
/Users/tetsuro/Desktop/java/MyStringArrayList.java:1: \0 は不正な文字です。
??public class MyStringArrayList{
^
/Users/tetsuro/Desktop/java/MyStringArrayList.java:1: \0 は不正な文字です。
??public class MyStringArrayList{
^
/Users/tetsuro/Desktop/java/MyStringArrayList.java:1: \0 は不正な文字です。
??public class MyStringArrayList{
^
/Users/tetsuro/Desktop/java/MyStringArrayList.java:1: \0 は不正な文字です。
??public class MyStringArrayList{
^
/Users/tetsuro/Desktop/java/MyStringArrayList.java:2: \0 は不正な文字です。
private static final int INITIAL_CAPACITY = 4;
^
/Users/tetsuro/Desktop/java/MyStringArrayList.java:2: \0 は不正な文字です。
675662:2006/02/07(火) 23:08:05
ごく一部です。
676デフォルトの名無しさん:2006/02/07(火) 23:10:58
デスクトップアクセサリを作りたいんですが、
Javaで作れますか?
677デフォルトの名無しさん:2006/02/07(火) 23:11:10
きっと全角の「 」だな
678デフォルトの名無しさん:2006/02/07(火) 23:11:50
>>676
デスクトップ?
679デフォルトの名無しさん:2006/02/07(火) 23:12:49
あーい。「 javac -encoding unicode MyStringArrayList.java 」 でGO!
680デフォルトの名無しさん:2006/02/07(火) 23:18:08
>>660
マルチ死ね
681デフォルトの名無しさん:2006/02/07(火) 23:33:21
最近ずいぶんレベルが下がってきたのは卒研かなんかのせい?
682デフォルトの名無しさん:2006/02/07(火) 23:36:51
>>681
ヒント:期末試験
683デフォルトの名無しさん:2006/02/07(火) 23:38:33
ヒント:おまえが質問してた頃と変わりません
684syosinsya:2006/02/07(火) 23:47:24
660です・・・
マルチしたことすいません。
本当に困っています・・・
助けてください。。。
685650:2006/02/07(火) 23:54:19
>>664
thx。理解できました。
お察しの通り、Eclipseの警告が気になっただけです..

664で紹介されてないけど、ここ読んで理解できました
http://www.nextindex.net/java/IO/serialize.html
686デフォルトの名無しさん:2006/02/08(水) 00:15:11
>>684
自らを初心者というやつも死ね
687デフォルトの名無しさん:2006/02/08(水) 00:28:34
>>685
Eclipseのあの警告はたしかにうざいが、Serializableをimplementsする以上、
SerialVersionUIDを定義するのは良いことだぞ。逆に、直列化が不要ならSerializableを
implementsしなけりゃいいわけで。

SerialVersionUIDはJDKに入っているserialvarコマンドで生成するのが基本だが、
EclipseだとSerialVarというプラグインがあったような気がする。
688デフォルトの名無しさん:2006/02/08(水) 00:30:22
>>660
おれはそのへんは良く知らないけどさ、もしページのリンクをクリックした
だけで、クライアントのアプリケーションを起動できたりしたら、ものすごい
セキュリティホールだと思わない?
689650:2006/02/08(水) 00:32:00
>>687
Eclipse3.1だとプラグイン入れなくても生成してくれました。
690デフォルトの名無しさん:2006/02/08(水) 00:35:06
Servletのセッション管理について教えてください。
セッションが勝手に切れてしまうのです。

どうもJavaScriptのwindow.openで新規ウインドウで
開いて、そのウインドウを閉じると残っているウインドウでも
セッションが切れてしまうようです。

試してみたところ、IPF版のWindows2003のIEでかなりの
確率で発生します。
他のブラウザでは発生したのはみたことがありません。

IEのバグのように思えるのですが、どうすれば良いのでしょうか?
691デフォルトの名無しさん:2006/02/08(水) 00:36:34
>>674
出ている通り、その個所に不正な文字があるんだよ。見えるかどうかは別として。
692デフォルトの名無しさん:2006/02/08(水) 00:36:40
693デフォルトの名無しさん:2006/02/08(水) 00:38:08
>>674
何処からかコピペしたのかねぇ
手間だけど、手直ししましょう。それでエラーは結構減ると思う。
694デフォルトの名無しさん:2006/02/08(水) 00:45:46
>>693
そこをプログラムで直そうと横着するのがプログラマのプログラマたる所以。
695デフォルトの名無しさん:2006/02/08(水) 00:49:04
>>694
最近キーボード打つのが鬱になってきました
どう設計すればいいか誰かヒント暮れ
696デフォルトの名無しさん:2006/02/08(水) 00:50:30
まて、俺にはユニコードの2バイト文字&先頭のBOMが邪魔しているように見えるんだが!
コンパイル時にエンコードを指定するか、ファイルのエンコードを変えればいいだけだと思うんだが。
697デフォルトの名無しさん:2006/02/08(水) 01:21:20
だったらWinならサクラエディタで、Macならmiで開いてコード変換してやれば
解決だな。
698デフォルトの名無しさん:2006/02/08(水) 01:29:58
>>692
意味が分かりません。
JavaScriptの質問という訳でもないですよ。
699デフォルトの名無しさん:2006/02/08(水) 01:42:03
DoJaすれが見当たらないのでここで質問させてもらいます。

Master.java
public class Master extends IApplication{
   private TitlePanel title;
   private GameCanvas game;
   public void start(){
      title=new TitlePanel(this);
      game=new GameCanvas(this);
      Display.setCurrent(title);
   }
   public void play(){
      ※game.gameStart();
   }
  …
  …
}
700699:2006/02/08(水) 01:42:42
TitlePanel.java

public class TitlePanel extends Panel
         implements ComponentListener,SoftKeyListener{
   private Master master;
  …
   public TitlePanel(Master master){
      super();
      this.master=master;
  …
  …
   }
   public void softKeyReleased(int key){
      if(key==SOFT_KEY_1){
         IApplication.getCurrentApp().terminate();
      }else if(key==SOFT_KEY_2){
         master.play();
      }
   }
}

GameCanvas.java

public class GameCanvas extends Canvas{
  …
  …
   public void gameStart(){
      …
      …
   }
}
701デフォルトの名無しさん:2006/02/08(水) 01:43:16
BufferedImageをJFrame上のJPanelの上に貼り付けました。

これをクリックするとあるメソッドを実行したいのですが、どのようなクラスをつかえばいいでしょうか。

JButtonをクリックするとactionPerformed()を呼び出す方法はわかります。
702699:2006/02/08(水) 01:45:25
この※の所でぬるぽが発生します
自分には原因がつかめないのですが、誰か分かる方教えてください
ソースはかなり縮めましたので、必要な部分があれば言って下さい

流れ的には
MasterがTitle出す

TitleがkeyEventでMasterのplay()を呼ぶ

ぬるぽ

です
703デフォルトの名無しさん:2006/02/08(水) 01:54:54
>>702

iモード携帯電話用Java(iアプリ) Part10
http://pc8.2ch.net/test/read.cgi/tech/1131603113/l50

見当たらないって目視か?w
704699:2006/02/08(水) 01:57:13
>>702
すいません
DoJaでページ内検索してなかったもんで
705デフォルトの名無しさん:2006/02/08(水) 01:59:57
>>701
JPanelのAPIマニュアル読んだの?
706デフォルトの名無しさん:2006/02/08(水) 02:01:00
>>690
サーブレットがどういうものか分かってるの?
707デフォルトの名無しさん:2006/02/08(水) 02:01:27
>>690
よくわからないけどブラウザを閉じたときにsession cookieを削除するんじゃない?
勘だからなんともいえないけど、
閉じる前の親ウィンドウの遷移先のリンクとかフォームのactionとかに
HttpServletResponse.html#encodeURL
してみると、どうなるの?
708701:2006/02/08(水) 02:29:02
読んでみたけどよくわかりません
使うリスナーの種類と、リスナーオブジェクトを追加するメソッド、などをご教授ください

BufferedImageクラスのインスタンスにリスナーを追加するという方法がおそらく違っていそうです。
メソッドもなさそうですし。
709デフォルトの名無しさん:2006/02/08(水) 02:40:51
>>701
Image を JPanel に貼り付けたというのは paintComponent で背景のようにして貼り付けたのかな
画像をクリックするのではなくて、パネルそのものをクリックするという認識をしてみてはどうだろうか

ActionListener の存在を知っているなら、JPanel と、その親クラスを調べてみよう。

# 実験するのがメンドクサイからなんて、とてもじゃないけど言えない
710デフォルトの名無しさん:2006/02/08(水) 02:41:06
>>708
自分で調べられないやつは今すぐ死ね
711デフォルトの名無しさん:2006/02/08(水) 02:44:16
0〜10歳くらいの人間は>>710にあやめられるそうです
通報しますか? y/はい/もちろん
712701:2006/02/08(水) 03:00:42
>>709
ピンポイント! ありがとうございます。
今までpaint(Graphics g)でImage を JPanel に貼り付けておりました。
これをpaintComponent(Graphics g)と書き換えるとうまくいきました。

リスナーやイベント登録のことばかり考えていたので謎から抜け出せなかったのですが、これで納得です
わからないことに関しては0から調べるよりも、ヒントを基にして調べるほうが学習効率がよさそうです
713デフォルトの名無しさん:2006/02/08(水) 03:05:28
>>711
>0〜10歳くらいの人間は>>710にあやめられるそうです
どうすれば親が構ってくれるかとか、
崩れないトンネルの掘り方とか
ぴかぴかの泥団子の作り方とか
少なくともお前よりは調べてるんじゃないの?
714701:2006/02/08(水) 03:06:50
bImage1=ImageIO.read(getClass().getResource("d1.gif"));
ImageIcon imageIcon1=new ImageIcon(bImage1);
label1.setIcon(imageIcon1);
label1.addMouseListener(new MyMouseListener());

こんなふうにしてみました。これが解決法のひとつのようです。
715デフォルトの名無しさん:2006/02/08(水) 03:13:05
>>712
そのヒントを自分で思いつくようになると、半永久機関になります
716デフォルトの名無しさん:2006/02/08(水) 03:44:21
あるクラス内にあるメソッドをそのクラス内で使いたい場合は
そのメソッドをstaticにすればいいんですか?
717デフォルトの名無しさん:2006/02/08(水) 03:50:45
>>716
質問の答え、static をつけなくても、自分のクラスのメソッドは実行できる。

でも、おそらく main メソッドから他のメソッドを実行しようとしたと思うので、
その場合、main メソッドは static であるから、static であるメソッドしか実行できない。

ぐぐって、static なメソッドとは何かを調べると良いと思います。
718デフォルトの名無しさん:2006/02/08(水) 04:40:37
>>687
Exception や JPanel など、
Serializable が既に実装してあるクラスを継承する場合はどうすればいいんだ。

Effective Java によると直列化は見かけほど簡単でないという話。
別に分散処理するつもりでないのに、オブジェクトの整合性を守るために
readObject 等(だっけ)を頭を悩ませて慎重に書くのは無駄のような気がする。

そのようなもとで SerialVersionUID を書くのは
直列化が正しく扱えるようなクラスのように見えて、
返って誤解を与えかねないような希ガス
719デフォルトの名無しさん:2006/02/08(水) 09:43:47
JAVAはじめて3日目です。
バイナリファイル1からデータをバイト配列に取得し
バイナリファイル2から取得したデータをバイナリファイル1のバイト配列
につなげる方法をどうやるか悩んでいます。
VBでいうRedimなどあれば配列の末尾の値を覚えておきそこから
追加していくような形を取れるのですが、そこのところ教えてください。
お願いします。
720デフォルトの名無しさん:2006/02/08(水) 09:49:46
ByteArrayOutputStream
721デフォルトの名無しさん:2006/02/08(水) 09:51:07
byte[] b = new byte[b1.length + b2.length];
System.arraycopy(b1, 0, b, 0, b1.length);
System.arraycopy(b2, 0, b, b1.length, b2.length);
722デフォルトの名無しさん:2006/02/08(水) 09:57:24
>>719
byte[] b1 = new byte[N];
byte[] b2 = new byte[M];

という b1, b2 に値が入っているとして、これの連結を一発でやる
ことはできないのだが、そんなもんは自分で書けばいい。

byte[] b3 = new byte[b1.length + b2.length];
System.arraycopy(b1, 0, b3, 0, b1.length);
System.arraycopy(b2, 0, b3, b1.length, b2.length);

仮にこれと同じ機能のあるクラスがあったとしても、内部は同じように
書かれている筈だ。同じでないとしたらそいつは多分効率が悪い。
723デフォルトの名無しさん:2006/02/08(水) 10:01:59
Java+SwingでWin環境の小規模な業務アプリを作っています。
簡単な帳票の印刷機能を実装しようとしていて、
ローレベルな印刷API(自分でDrawするような)で
ボツボツやろうと思ったのですが、Javaの印刷周りには
バグとかクセが多いと聞きました。
素直にサードパーティの印刷ライブラリ等を使うべきでしょうか?
724デフォルトの名無しさん:2006/02/08(水) 10:24:41
質問のレスにおれいをしてスレ流すより、質問に答える側に
なれるように努力するべきです。
725デフォルトの名無しさん:2006/02/08(水) 10:29:18
○○○.java:364: ClientProc の ClientProc(java.net.Socket) は () に適用できません。
ClientProc cp = new ClientProc();
^

こんなエラーが出たのですが
インスタンス化は無理なんでしょうか?
726デフォルトの名無しさん:2006/02/08(水) 10:34:33
>>725
引数なしのコンストラクタを定義してないだけじゃないの?
727デフォルトの名無しさん:2006/02/08(水) 10:47:00
ジャバで検索すると関連検索ワードがなんか笑える。
カタカナで検索する人いるのかな
728デフォルトの名無しさん:2006/02/08(水) 11:03:20
複数のbinaryFileをある条件で書き換え連結し一つの
binaryfile(matome)を作るプログラムを作っています。
どう組むかの案として以下の2つがあります。
案1 binaryfileを書き換える度に、binaryfile(matome)に書き込む。
案2 書き換えた複数のbinaryfileをbyte配列にまとめておき最終的に
  binaryfile(matome)に書き込むようにする。
この二つを考えているのですが、できればスタンダードな方法を取りたい
のでどの案がいいと思いますか、どっちでもという意見でも
いいので教えてください。
729デフォルトの名無しさん:2006/02/08(水) 11:51:14
>>718
同意。補足を少々。

そもそも、直列化(シリアライズ)は、インスタンスの保存や読み込み、
プロセス間通信による受け渡しに利用するためであり、
JDK1.4以降は java.beans.XMLEncoder や java.beans.XMLDecode を用いることを推奨していると思う。

個人的には Serializable を実装したクラスを継承した場合であっても、
直列化を行わないのであれば、気にしなくて良いと思う。

# とまぁ、直列化を2,3回しか使っていない人の戯言でした。
730デフォルトの名無しさん:2006/02/08(水) 11:53:20
>>729
見直したはずなのに…
XMLDecoder です。
        ^
731デフォルトの名無しさん:2006/02/08(水) 12:06:54
>>728
俺だったらByteArrayOutputStream使って、
最後にwrite(ByteArrayOutputStream.html#toByteArray())
とかする。
732デフォルトの名無しさん:2006/02/08(水) 12:11:55
もっと選択する言葉に注意を払うべきだと思うのです。
思考垂れ流しで、一文が長くなってしまうと、何が言いたいのか分からないのです。
Java は初心者であっても、日本語は10年か20年ぐらい扱ってきたと思うのですよ。
733デフォルトの名無しさん:2006/02/08(水) 12:54:55
>>712

それイベントと関係ないやん・・・
734デフォルトの名無しさん:2006/02/08(水) 13:01:11
>>723
現行の5.0update6では印刷にバグがあります
印刷できないではなく、印刷品質が大きく異なるというものです

次のupdate7で更新されるようです

現行回避方法としては旧バージョンの1.4.2で使うか
iTextなどpdf作成ツールを使ってAdobeReaderで印刷させるかの方法しかないようです

SWTでの印刷はもっと問題が多いのでオススメできません
735デフォルトの名無しさん:2006/02/08(水) 13:20:32
>>734
件のバグは Windows でしか確認されて無いって部分が抜けてる。
環境によっては問題にならん可能性もあるし。

ある意味ベータテストとかに積極的に参加してこなかったツケとも言える。
736デフォルトの名無しさん:2006/02/08(水) 13:24:50
一般開発者は普通参加しないだろ
737デフォルトの名無しさん:2006/02/08(水) 13:30:31
Javaコード部分でのバグだから
他の環境でも同じ可能性は多いな

そもそもクライアントアプリなのでWindows環境がまずデフォだからねぇ
738デフォルトの名無しさん:2006/02/08(水) 13:35:39
一概に Windows って言われてもようわからん
どのバージョンのWindowsでSPとか、依存するDLLのバージョンとかないとなぁ
739デフォルトの名無しさん:2006/02/08(水) 13:37:32
すべてだろ?
依存してるのはJavaのコード部分だし
740デフォルトの名無しさん:2006/02/08(水) 13:41:45
http://pc8.2ch.net/test/read.cgi/tech/1132425910/584

これ見たら他のOSで影響でるようには見えんが。
Javaのコード部分っても windows専用の
ある意味ネイティブコードとの橋渡し的な部分だし。
741デフォルトの名無しさん:2006/02/08(水) 14:03:05
Cause of this bug, in sun.print.PathGraphics#getGlyphToCharMapForFont(Font2D)

876>for (char c=0; c<CharToGlyphMapper.HI_SURROGATE_START; c++) { // <- cause
877> glyph = font2D.charToGlyph(c);
878> if (glyph != missingGlyph && glyph < numGlyphs) {
879>glyphToCharMap[glyph] = c;
880> }
881>}
882>return glyphToCharMap;

ってところだな
Windowsすべてのバージョンで影響があると思うが
742デフォルトの名無しさん:2006/02/08(水) 14:07:54
>>741
どこ見てんだ。原因はsun.awt.windows.WPathGraphicsって書いてあるのに。

あと、>>741 の示した部分だと Windows以外の環境でも影響出る可能性があると思うが。
743デフォルトの名無しさん:2006/02/08(水) 14:11:47
java.sql.Statement
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/java/sql/Statement.html
には
・executeQuery
・executeUpdate
の他に
・execute
がありますが、execute メソッドの戻り値を元に処理を分ける
(true の場合は getResultSet から executeQuery の後でするような処理,
false の場合は getUpdateCount から executeUpdate の後でするような処理...など)のと、
例えば実行する SQL を先に解析して、executeQuery と executeUpdate を呼び分ける処理に
するのでは何か違いがあるのでしょうか?

複数の ResultSet や updateCount が返ってくるような SQL を実行する、
と言うのはあまり考えていません(と execute の説明にあるもののよく
分からないのですが、これって DBMS 独自の関数とかでこういうものが
あるかも知れない、ってことなんでしょうか? すぐに思いつく SQL では分かっていません...)
744デフォルトの名無しさん:2006/02/08(水) 14:16:22
>>742
Javaのバグデータベース
745デフォルトの名無しさん:2006/02/08(水) 14:20:09
>>744
Evaluationは見なかった、と。
746デフォルトの名無しさん:2006/02/08(水) 14:47:33
ここで質問するようなことでは無いのかもしれませんが、
プログラムの行番号を表示して、それを行番号ごとコピーしてWord等に貼り付けられるような物はありませんか?
Wordやeclipseで行番号を付けると行番号まで選択できないんです。
プログラムを少量づつ貼り付けて説明文を書きたいんですが。
747デフォルトの名無しさん:2006/02/08(水) 15:00:58
JMFを使って動画をキャプチャして静止画のイメージを取得したいんですが、
FramePositioningControlがうまく取得出来ません。

  processor.prefetch();


while(processor.getState()!=Processor.Prefetched){
System.err.println(".");

}
framePositioningCtrl = (FramePositioningControl)processor.getControl("javax.media.control.FramePositioningControl");
  if (framePositioningCtrl == null) {
throw new RuntimeException("Can not get a FramePositioningControl.");
  }

上のような感じで取得しようとしているのですが何か問題があるでしょうか??
748デフォルトの名無しさん:2006/02/08(水) 15:11:05
>>746
そういうツールを自分で書いてみたら?
慣れてれば30分もかからないし、初心者ならいい練習になると思うよ。
749デフォルトの名無しさん:2006/02/08(水) 15:23:20
>>746
つ Microsoft Excel
750デフォルトの名無しさん:2006/02/08(水) 15:24:37
>>747
デバッグくらい自力で
751747:2006/02/08(水) 15:28:24
>>750
もう2日くらいいろいろ試してみたんですがどうしても出来ないんで;

やり方に問題があるのではなく、単に何か見落としてるだけなのでしょうか?
752デフォルトの名無しさん:2006/02/08(水) 16:08:26
そういえばjava普及委員会のサイト復活しないね
753デフォルトの名無しさん:2006/02/08(水) 16:27:43
JavaHouse なんか死滅したまま放置じゃん。
754デフォルトの名無しさん:2006/02/08(水) 16:33:05
>>753
そういえば。
最後はどうなったの?
755デフォルトの名無しさん:2006/02/08(水) 16:47:21
>>754
昨年 8/25 に大量 bye メールが到着して以来音沙汰なし。その前はじゅんのアナウンスと
5/8 に最後の質問が配信されて終わり。いや終わってるのか生きてるのか知らんけど。
風間さんの話とか結構好きだったんだけどな。99年頃はまだあそこくらいしかまともな
日本語の情報源なかったし。

粘着キティが現れて無印と Brewers 統合したあたりからおかしくなった。というかアプレットの
セキュリティホール見つけて以来 T 氏がアッチ方面へ行ってしまった。
756デフォルトの名無しさん:2006/02/08(水) 17:03:47
>>755
大量byeメールは知らなかった。

参考にしてたんだけど残念。
757デフォルトの名無しさん:2006/02/08(水) 19:21:52
>>747
取得できないというのはどういうこと?
似たようなプログラム書いたことがあるのでレスしてみた

while(processor.getState()!=Processor.Prefetched){
System.err.println(".");
}
//@↑のループを抜けない
framePositioningCtrl = (FramePositioningControl)processor.getControl("javax.media.control.FramePositioningControl");
  if (framePositioningCtrl == null) {
throw new RuntimeException("Can not get a FramePositioningControl.");
  }
//AExceptionで止まる
@Aのどっちが問題?

たぶん目的は指定した時刻に動画再生位置を動かしたいということだと推測してます
自分はFramePositioningCtrlというのを使わず、ClockインタフェースのsetMediaTime(Time now)で再生位置を指定します
PlayerインタフェースはClockを継承しているので
player.setMediaTime(Time now); //Player player
という感じで、再生位置を指定できます

参考になりましたでしょうか…
758デフォルトの名無しさん:2006/02/08(水) 20:17:41
sunのssl関連のドキュメント読んでたんだけど、
javax.net.ssl.SSLEngineの使い道がいまいち分からない。
誰か分かる人がいたら教えてプリーズ。
759デフォルトの名無しさん:2006/02/08(水) 20:24:59
同じフォルダにA.jarとB.jarがあって、
BからAの中のクラスを使用することはできますか?
760デフォルトの名無しさん:2006/02/08(水) 20:40:38
両方にクラスパスが通っていれば出来ます。
761759:2006/02/08(水) 21:01:36
ありがとうございます。クラスパスで検索したらできました。
762747:2006/02/08(水) 21:41:46
>>757
お答えいただきありがとうございます。

抱えているのはAの方の問題です。

JMFのPlayerあるいはProcessorから動画をJava3Dに貼り付けるの方法を調べていたら
どうもFramePositioningContro、FrameGrabbingControl l等を使い、Textureにしてから貼り付けるのが
一般的(唯一?)の方法だと言う結論に至ったため組んだものです。

デバッグしてみるとframePositioningCtrlの値がnullで、その後取得しなければならない
FrameGrabbingControlの値も同じくnullだったため、取得時のPlayerの状態等が原因かと思い質問してみました。

調べている途中で、この方法を使っている他のプログラムをいくつか見たのですが全く同じ方法でも
エラー、例外が出ている様子がないものでしたので。

どこがいけないんでしょう?
763デフォルトの名無しさん:2006/02/08(水) 21:46:31
javaアプリをたくさん起動させていくと途中から起動しなくなるのですが、
起動させる方法はありますか?
764デフォルトの名無しさん:2006/02/08(水) 21:54:35
>>763
OSくらい書かないとね。
765デフォルトの名無しさん:2006/02/08(水) 21:55:56
メモリをたくさん積む
766デフォルトの名無しさん:2006/02/08(水) 22:05:02
763です。windowsXPでメモリ512Mつんでて、メモリ増やせばいいかと思って1Gにしたんですが、
同じくらいの数しか起動できなかったんです。
設定方法とかあれば教えてください。
767デフォルトの名無しさん:2006/02/08(水) 22:47:27
既に valid な XML であることを前提に、String で渡ってきたものから
DOM を構築するにはどうすれば良いのでしょうか。
768デフォルトの名無しさん:2006/02/08(水) 22:53:29
>767
StringReader、InputSource
769デフォルトの名無しさん:2006/02/08(水) 22:58:55
質問させてください。

Java+OracleでBLOBのカラムにテキストファイルや画像ファイル、office関係のファイルを
格納するロジックを作ることになりました。

BLOBに格納する為にはまずファイルを読み込んで、バイナリに変換する必要があると思うのですが、
いまいちよく分かりません。

具体的には
・Fileで読み込んだ後どうやってバイナリに変換するのか。
・変換したバイナリデータをDBにinsertする時は通常のVERCHAR2の様なロジックでよいのか。

という所です。
ヒントや「このページをみろ」というのでも構いません。
ご指導宜しくお願いします。

770デフォルトの名無しさん:2006/02/09(木) 00:22:32
ていうか、ファイルの中味は元からバイナリだろう。
読むだけだよ。変換の必要があるとすればDBに引き渡す時だけ。
771デフォルトの名無しさん:2006/02/09(木) 00:29:09
>>769
>>770のいうとおり、ファイルの中身は(仮に文字だけで構成されてようが)基本的にバイナリ。
InputStream経由で読めばバイト単位で読み込める。Readerで読むと、文字単位で読み込む
便利機能がついているというだけ。もとはやっぱりバイナリ。
772デフォルトの名無しさん:2006/02/09(木) 00:35:00
都内に住む大学1年なんですが、
どうしても秋学期の最終課題が時計+オリジナル機能で
俺はオリジナルのところにカレンダーをつけようと思うんですが
パネルに乗っけるのが、どうしてもうまくいきません。
本当に単純なやつでいいんです。
枠とかも要らないんで参考になるソースコード教えてもらえませんか?
よろしくお願いします!
773デフォルトの名無しさん:2006/02/09(木) 00:37:26
while(true){
  System.out.println(new Date());
  Thread.sleep(1000);
}

※オリジナル機能:タイムゾーンを変えると世界時計になります
774デフォルトの名無しさん:2006/02/09(木) 00:40:08
30分ごとに特定メソッドを呼び出しとかどうやって実現する?
775デフォルトの名無しさん:2006/02/09(木) 00:48:03
>>774
タイマーとちゃう?
間隔に30分なんていれらんねーよ!
というときは、1分/1秒間隔でチェック
776769:2006/02/09(木) 00:48:26
なるほどです。
Fileで読むのとInputStreamで読むのとではどう違うのでしょうか?
777デフォルトの名無しさん:2006/02/09(木) 01:01:36
ヒント:Fileクラスでデータは読めない。
ヒント2:FileInputStreamはInputStreamを継承している。
778デフォルトの名無しさん:2006/02/09(木) 01:15:34
>>775
なにわけわからないこといってるの?
779769:2006/02/09(木) 01:19:33
なんとなく分かってきました。
Fileで読んでlengthでサイズを測って、InputFileStreamをそのFileを引数にnewして
PreparedStatementのsetBinaryStream()でセットするって感じでしょうか。

あれ?BLOBインターフェイスが出てこないのですがいいのでしょうか?
780769:2006/02/09(木) 01:21:54

InputFileStreamではなくてFileInputStreamでした。
781デフォルトの名無しさん:2006/02/09(木) 01:24:17
いいの
782769:2006/02/09(木) 01:33:21
そうなんですか。
とりあえずこれで明日がんばってみます。

ありがとうございました。
783デフォルトの名無しさん:2006/02/09(木) 01:42:15
>>774
for(;;) {
 myMethod();
 Thread.sleep(30*60000);
}
784デフォルトの名無しさん:2006/02/09(木) 01:48:38
>>779
んなまどろっこしいことしないでも読んだのを全部 ByteArrayOutputStream に
書いて最後に byte[] 取り出せばいいじゃんか。

// Bufferedにしてあるのは多くの場合こうした方が効率よくて速くなるため。
BufferedInputStream in = new BufferedInputStream(new FileInputStream(filename));
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buf = new byte[1000]; // 大きさはテキトー
int n;
while ((n = in.read(buf)) > 0) out.write(buf, 0, n);
in.close();
buf = out.toByteArray(); // bufは使い回しだが以前の値は不要なのでこれでもいい。
785デフォルトの名無しさん:2006/02/09(木) 01:55:38
お前もまどろっこしい
PreparedStatement#setBinaryStream() 使え
786デフォルトの名無しさん:2006/02/09(木) 02:07:28
>>785
それSQLの場合だけだ。
元の質問がSQLだからいいか。
787デフォルトの名無しさん:2006/02/09(木) 02:16:56
>>774は検索したのかなぁ
788デフォルトの名無しさん:2006/02/09(木) 02:28:55
java.util.Timer だな。
789デフォルトの名無しさん:2006/02/09(木) 02:32:36
new java.util.Timer().scheduleAtFixedRate(new TimerTask() {public void run() {System.out.println("うひょ");}}, 0L, 30 * 60 * 1000L);
790デフォルトの名無しさん:2006/02/09(木) 09:21:59
>>789
30分後とに「うひょ」だけを出力し続けるプログラムを見たら
俺は発狂するねw
791デフォルトの名無しさん:2006/02/09(木) 09:30:53
せめて時々「うひょひょ」になってほしいねw
792デフォルトの名無しさん:2006/02/09(木) 10:33:01
Java&プログラム暦3ヶ月で23のパターンの本を読み終えたんですが
どうやら巷ではEclipseを使ってるようなのでそろそろメモ帳を
卒業したいんですが、なんかおすすめの本ってありませんか?
高度なことはするつもりはなくて、基本的な使い方が分かればいいんですが。
複数、挙げて頂けると助かります。お願いします。
793デフォルトの名無しさん:2006/02/09(木) 10:35:32
>>762
ここのサンプルは参考になりませんでしょうか?
http://java.sun.com/products/java-media/jmf/2.1.1/solutions/DemoJMFJ3D.html
ビデオ映像をテクスチャとしてはりつけているサンプルのようです

JMFは結構使ったことがあってそれなりにわかるのですが、それにJava3Dが絡んだものはよくわかりません
一応、上のサンプルをざっと読んでみましたがFramePositioningControlというのは使ってないようです
あまり力になれなくてすいません
794デフォルトの名無しさん:2006/02/09(木) 10:39:02
795デフォルトの名無しさん:2006/02/09(木) 10:54:23
a>=200 なら @のプログラムへ
b>=100 なら Aのプログラムへ 違うなら@へ
としたいんですが、プログラムへ移動する仕方教えてください。
if(a>=200)
@式
else if(b>=200)
A式
else
@
としたら、@式を2回使うので、長くなるんです。

b>=100とすれば、1つの条件ですが、必ずa>=200を入れます。
796デフォルトの名無しさん:2006/02/09(木) 10:57:41
if(a >= 200 || b < 200){
  壱
} else {
  弐
}
797デフォルトの名無しさん:2006/02/09(木) 10:57:47
>>795
とりあえずわかったのはホットゾヌが =レス番号 でもポップアップしてくれること。
あと、機種依存文字を使っていること。
798デフォルトの名無しさん:2006/02/09(木) 11:04:59
その他の場合は1処理でいいのか?
処理しないの場合はないのだろうか。
799デフォルトの名無しさん:2006/02/09(木) 11:05:02
初心者からJava上級者への質問。

Javaの学習の仕方で最適な方法は、次のうちどれですか?

1)コンストラクタやメソッド、配列、インターフェイス、例外などの
  定義の意味を学びつつ、それに沿ってそれらの基本的なコーディングの
  仕方を覚える。その後、数百行程度の規模のプログラムのコード
  を読みながら、実際のコーディングを学んでいく。

2)上記の定義の意味を学びつつ、パターン化された小さなプログラムを
  書きながら、ただひたすら感を養う。ある程度して数十パターン程度
  を覚えたら、実際のコードを読んで、より大きめのプログラムの構成
  を学んでいく。

3)それ以外。
800デフォルトの名無しさん:2006/02/09(木) 11:07:24
必要は最大の理由なり、まで読んだ
801デフォルトの名無しさん:2006/02/09(木) 11:08:35
>>799
この世に「初心者という人」と「上級者という人」は存在しないと思っている俺はどうなる・・・
その「〜分かれば上級者」とかいうわけのわからん設定を先にどうにかすれ
802デフォルトの名無しさん:2006/02/09(木) 11:21:05
初心者という言葉を使わず勉強中とかにすれば風当たりいいかな?
803デフォルトの名無しさん:2006/02/09(木) 11:27:42
わかりました。Java学習中の者ですが、Javaを使って食卓に食べ物を、
或いは奥様へ給料明細を持ってくることに成功されている方への質問。

Javaの学習の仕方で最適な方法は、次のうちどれですか?

1)コンストラクタやメソッド、配列、インターフェイス、例外などの
  定義の意味を学びつつ、それに沿ってそれらの基本的なコーディングの
  仕方を覚える。その後、数百行程度の規模のプログラムのコード
  を読みながら、実際のコーディングを学んでいく。

2)上記の定義の意味を学びつつ、パターン化された小さなプログラムを
  書きながら、ただひたすら感を養う。ある程度して数十パターン程度
  を覚えたら、実際のコードを読んで、より大きめのプログラムの構成
  を学んでいく。

3)それ以外。
804デフォルトの名無しさん:2006/02/09(木) 11:27:49
質問内容が>>799なら勉強中と言い換えても変わらんと思うぞ。
805デフォルトの名無しさん:2006/02/09(木) 11:29:39
こんなのへのレスは
全部
それ以外で
いいんじゃね?w
806デフォルトの名無しさん:2006/02/09(木) 11:29:43
>>803
奥様も居ないし、給与明細もないから答えられないな
807デフォルトの名無しさん:2006/02/09(木) 11:31:53
>>803
くだらない質問してる暇があるなら
コード書け、コード読め、言語規定とVM仕様読め
808デフォルトの名無しさん:2006/02/09(木) 11:32:39
食卓に食べ物を出す方法はわからないが、
奥様と給与明細を受け取るにはもっと人として磨かないと無理だと思うぞ

結局仕事は一人でするんじゃなくて、人と人とでするからな
ははは・・・
809デフォルトの名無しさん:2006/02/09(木) 11:34:47
>>796
回答ありがとうございます。今から試してみます。

>>798
その他の場合は@で結構です。処理しない場合はありません。
810デフォルトの名無しさん:2006/02/09(木) 11:39:25
>>809
なるほど、なら796のスタンダードな記述で全然よいとおも。
複雑な条件ならガード節使うのもありんす。
isOutAria(x,y)
811デフォルトの名無しさん:2006/02/09(木) 11:39:30
>>792
バージョンが古いがJavapressとかムックで十分
ネットの情報のみで「使って慣れる」でも行けると思う
812デフォルトの名無しさん:2006/02/09(木) 11:42:35
if(b>=200){
foo1();
return;

foo2();

途中でenterしちゃったスマン。
813デフォルトの名無しさん:2006/02/09(木) 12:06:38
JInternalFrameのフォーカスについてなのですが…困ってます。

JInternalFrameを2つ表示させているんですけど、
あるJInternalFrameから呼び出してもう一方のJInternalFrameをフォーカスを
あてている状態(選択している状態)にしたいのですが、どうしたらいいのでしょうか?

例えばですが、片方のJInternalFrameに表示したボタンをクリックしたときに
自動でもう一方のJInternalFrameが選択される状態にしたいのです…
814747:2006/02/09(木) 12:19:31
>>793
ありがとうございます。
サンプルを参考に頑張ってみます。
815デフォルトの名無しさん:2006/02/09(木) 12:23:03
>>813
JDesktopPaneのマニュアル見た?
816デフォルトの名無しさん:2006/02/09(木) 12:26:13
Swingを使ってゲームを作成しているのですが

MouseMotionAdapterを使って、マウスが動くたびに、フォームに対しての座標を取得しているのですが
ラベルの上にマウスを置くと、ラベルの下にある、フォームの座標が取得できなくて・・・

どうすれば、全体の座標を、ラベルなどを無視して取得できますか?><教えてください・・・
817デフォルトの名無しさん:2006/02/09(木) 12:43:10
長くても短くても、クラス名を書けクラス名を!
818デフォルトの名無しさん:2006/02/09(木) 13:15:54
利用可能なクラスの中で、
1.最も長いクラス名
2.最も長いパッケージ名
3.最も長いFQCN
を得るにはどうすればいいでしょう。ClassLoaderとかいじらないといけませんか?
819デフォルトの名無しさん:2006/02/09(木) 13:18:23
>815さんありがとうございます!
setSelectedFrame(JInternalFrame f)というのを使えばいいのはわかったんですが
実際動かしてみると、片方のJInternalFrameで呼び出したときに何もおこらず、
もう一方のJInternalFrameを選択したときに2つとも選択した状態になってしまいます…
setSelectedFrameを呼ぶ場所がおかしいのでしょうか?
820デフォルトの名無しさん:2006/02/09(木) 14:00:14
>>818
とりあえず「利用可能なクラス」が定義されないとどーしよーもない。
実行時にバイトコードを生成しても良いなら
後から幾らでも長い名前付けたクラスやパッケージを作れるし。
821デフォルトの名無しさん:2006/02/09(木) 15:42:23
>>819
setSelectedFrame(JInternalFrame f)ではなく
JInternalFrameのsetSelectedを使ったらどう?

i1.setSelected(false);
i2.setSelected(true);

みたいな感じで。
822デフォルトの名無しさん:2006/02/09(木) 15:48:13
質問させてください。
Eclipseでファイル読み込みを伴うJavaプログラムを作っているのですが、Jar出力したものを起動しようとすると、
読み込むファイルがJar内に固められた為か読み込みに失敗します。
Eclipseでの通常開発時とJar出力での起動と、両方に対応できるファイルの読み込み方法はありますでしょうか?
読み込んでいるものはxmlファイルと画像ファイルです。
823デフォルトの名無しさん:2006/02/09(木) 15:51:04
>>822
絶対パスを入力してるってこと?
それなら相対パスにすればいいのでは?という回答しかできませんが
”jar内に固められた”がよーわからん
824デフォルトの名無しさん:2006/02/09(木) 15:56:09
>>822
ファイルをクラスパス内に配置して、getResource(path) ではどうだ。
詳しくは ClassLoader getResource なんかでググってくれ。
825デフォルトの名無しさん:2006/02/09(木) 16:13:55
<T> void func() {
T t = new T();
}

こういうのってできない?
826デフォルトの名無しさん:2006/02/09(木) 16:25:28
>>825
無理
827デフォルトの名無しさん:2006/02/09(木) 16:32:27
Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException:
component must be showing on the screen to determine its location

こんなメッセージが出るのですが・・・・

どう理解すればいいのでしょうか…?
828デフォルトの名無しさん:2006/02/09(木) 16:43:03
829デフォルトの名無しさん:2006/02/09(木) 17:04:20
>>827
他の処理との呼び出し順がマズイとか…
ちなみに俺は簡単なサンプル作って試したら普通に動いたけど…
830デフォルトの名無しさん:2006/02/09(木) 17:32:26
>>823
Eclipseのプロジェクトフォルダの中に、読み込むファイルを置いてあるんです。
EclipseのJar出力機能でプロジェクトを丸ごとJarファイルにしているので、読み込むファイルも圧縮されているんです。
もしかしたらそれが原因かな、と。
831デフォルトの名無しさん:2006/02/09(木) 17:33:57
すいません上の質問をした819です!
2つのJInternalFrameに関連があるんですけど、
JInternalFrame1
JInternalFrame2
があるとして
1から2に含まれているコンポーネントにポップアップを表示させたいのです(汗)

ソースとしては1から

JPopupMenu popup = new JPopupMenu();
JLabel label = new JLabel();
popup.add(label);
popup.setBorder(BorderFactory.createLineBorder(Color.BLACK));
popup.menuSelectionChanged(false);
popup.show(com,0-label.getPreferredSize().width,0-label.getPreferredSize().height);
comはJInternalFrame2でポップアップを表示させたいコンポーネント

てな感じで呼び出してるんですけど上みたいなメッセージがでるんです。
832デフォルトの名無しさん:2006/02/09(木) 18:15:44
833デフォルトの名無しさん:2006/02/09(木) 18:50:25
マルチポストうぜぇな
834デフォルトの名無しさん:2006/02/09(木) 19:35:27
ClassLoaderのサブクラスを作り、defineClassをオーバーライドして、
特定のクラスをloadClassでロードしたのですが、
ClassクラスのインスタンスからnewInstanceでインスタンスを作り、
ロードしたシンボルの名前でキャストすると、NoClassDefFoundErrorが出てしまうのですが・・・。
これは何故なのでしょうか。

ひょっとして、インターフェイスだけは
システムクラスローダで読み込ませておかねばならないのでしょうか?
835デフォルトの名無しさん:2006/02/09(木) 19:42:26
>>831
マルチ死ね
836デフォルトの名無しさん:2006/02/09(木) 19:55:19
>>834
>ひょっとして、インターフェイスだけは
>システムクラスローダで読み込ませておかねばならないのでしょうか?

そうだったと思うけど。
837デフォルトの名無しさん:2006/02/09(木) 19:58:36
>>836
調べてみたところその様でした。ありがとうございました。
838デフォルトの名無しさん:2006/02/09(木) 20:17:30
>>835
そんな怒らなくたって良いだろ
839デフォルトの名無しさん:2006/02/09(木) 20:27:53
>>838
ごめんカルシウム補給しとく。
840デフォルトの名無しさん:2006/02/09(木) 20:48:21
サーブレットとデータベース使って本の検索システム作ってるんですけど
困ってます。HTMLファイルでキーワードを入力して、それをBeanで受け取
ってデータベースから該当するデータを取り出してJSPで表示させたいんで
すけど。BeanではGetParameterが使えないのでキーワードが受け取れない
んです、どうしたらいいでしょうか?
841デフォルトの名無しさん:2006/02/09(木) 20:54:09
>>840
そのレベルだとまずサーブレット初心者本よんで勉強からはじめたほうが近道っぽいぞ
場合によってはJava本からだな
842デフォルトの名無しさん:2006/02/09(木) 21:57:17
すみません

例えば
String str = "hogehoge"
if(str == "hogehoge"){ ... }
ですとifの条件に引っかかってコードブロックを実行するのですが

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
if( (str = br.readLine())=="hogehoge" ) { ... }
とし、hogehogeと入力しますとなぜかifにひっかかってくれません
どういう事でしょうか
843デフォルトの名無しさん:2006/02/09(木) 22:00:42
>>842
Javaの最初のところから勉強したほうがいいよ
844デフォルトの名無しさん:2006/02/09(木) 22:00:59
>>842
stringはclass
equals()つかいましょう?
845デフォルトの名無しさん:2006/02/09(木) 22:01:37
>>842
Stringはクラスなので参照型です。equalsメソッドを使いましょう。
846デフォルトの名無しさん:2006/02/09(木) 22:09:23
>>842
どうしても equals() 使いたくないならintern() しろ。
847デフォルトの名無しさん:2006/02/09(木) 22:22:44
出力幅と精度を指定したくprintfを使用したのですが、以下のようなエラーが出ます。
Score.java:39: シンボルを解決できません。
シンボル: メソッド printf (java.lang.String,double)
場所 : java.io.PrintStream の クラス
System.out.printf("%.2fです。\n", ae);
クラスはimport java.io.*;とimport java.util.*;を使用していますがここが足りないのでしょうか?
ちなみにJDKは5.0_06を使用しています。
848デフォルトの名無しさん:2006/02/09(木) 22:25:22
printf()なんてメソッドが出来たんだ・・・いい加減JDKアップするかね・・うん
849デフォルトの名無しさん:2006/02/09(木) 22:31:47
System.out.printf("%.2fです。\n", (Double)ae);

これで上手くいかないか?
850デフォルトの名無しさん:2006/02/09(木) 22:32:44
>847
$ javac -version
851デフォルトの名無しさん:2006/02/09(木) 22:33:56
>>847
複数JDK入れててコンパイルに jdk1.4 使ってないか?
コンパイル時に javac -J-showvesion とかやってチェックしてみ。

Eclipse でもコンパイラレベルを 1.4 のままにしておいて
JDK5.0 使ってますが printf がエラーになりますって人がいたな。
852デフォルトの名無しさん:2006/02/09(木) 22:44:57
>>849
なんでそうおもったんだ
853デフォルトの名無しさん:2006/02/09(木) 23:08:32
ん? なんとなく。


……ゴメン。恥ずかしいんだから放っておいて orz
854847:2006/02/09(木) 23:15:40
>>849-851
ありがと。指摘通りPATHが1.4だった。
んで、今度は間違えてクラスパス飛ばして復旧方法忘れてたので直すの面倒だった…
あと、どうでもいいけどdouble = int / int ってちゃんと出ないんだね
全部doubleにして解決したけど、なんとなく自分がぶつかったので報告。
855デフォルトの名無しさん:2006/02/09(木) 23:17:40
基本から勉強しなおしてくれ・・・
856デフォルトの名無しさん:2006/02/09(木) 23:32:31
全然、関係のない話なんですが、CCNAのスレってないでしょうか?
携帯なので誘導していただけると助かります。
857デフォルトの名無しさん:2006/02/09(木) 23:48:29
クリックしたらm3uファイルが実行されてmediaPlayerが起動する。
というのをやりたいんですが、その場合どのような方法があるのでしょうか。
runtime.execを使うとmediaPlayerしか起動できないので。
858デフォルトの名無しさん:2006/02/09(木) 23:50:46
コマンドプロンプトの勉強して Runtime#exec() 使e
859デフォルトの名無しさん:2006/02/09(木) 23:58:18
>>857
そんなOS依存のことなんか知らねえよ。う゛ぉけ。
860デフォルトの名無しさん:2006/02/10(金) 00:02:46
>>859
mediaplayer使えるということは普通windowsなのでは・・・
861デフォルトの名無しさん:2006/02/10(金) 00:03:23
runtime.exec("D:/a.m3u");
runtime.exec("D:\\a.m3u");

としてみたのですが、エラー193その他たくさんがでるだけでうまく動いてくれませ
ん。
コマンドプロンプトで、d:\a.m3uとしたらmediaPlayerがちゃんと起動してくれま
す。
どうしたらよいのでしょうか。
862デフォルトの名無しさん:2006/02/10(金) 00:05:51
>>861
たとえば、コマンドプロントで
cmd /c start d:\a.m3u
command /c start d:\a.m3u
とかやってみると嬉しくなれるかも
863デフォルトの名無しさん:2006/02/10(金) 00:16:20
mediaPlayerを起動したいというより、m3uファイルを実行してプレイリストの再生をしたいのですが。

864デフォルトの名無しさん:2006/02/10(金) 00:20:25
いい加減にしろよ阿呆
865デフォルトの名無しさん:2006/02/10(金) 00:26:42
>>861
Mustang以降なら Desktop API 使えば関連するアプリケーションを開くまではできそう。
勝手に再生が始まるかどうかはアプリケーション次第のような気もするけど。
http://download.java.net/jdk6/docs/api/java/awt/Desktop.html#open(java.io.File)

Mustang まで待てないなら JDIC の Desktop API 使うとか
https://jdic.dev.java.net/nonav/documentation/javadoc/jdic/org/jdesktop/jdic/desktop/Desktop.html#open(java.io.File)

試してないので動くのか知らんけど、同じく JDIC の Music Player Control API とか
https://jdic.dev.java.net/nonav/incubator/mpcontrol/javadoc/
866デフォルトの名無しさん:2006/02/10(金) 01:19:07
Log4Jのプロパティファイルってどこにおけばいいんですか?
classes直下においたら認識してくれない・・・・
(フルパス指定だと読めるんですが)
867デフォルトの名無しさん:2006/02/10(金) 01:40:51
Execution completed.
1666088 bytecodes executed
193 thread switches
744 classes in the system (including system classes)
6535 dynamic objects allocated (539988 bytes)
6 garbage collections (96196 bytes collected)

エラーが怒ってしまう・・・何かおかしいとこあるんすか?
868デフォルトの名無しさん:2006/02/10(金) 01:44:08
Execution completed = 実行が完了しました
869デフォルトの名無しさん:2006/02/10(金) 02:50:06
>>860
Windows なんか知らねえよ。う゛ぉけ。
870デフォルトの名無しさん:2006/02/10(金) 02:51:15
>>867
辞書を引いて全部日本語にしてみな。
871デフォルトの名無しさん:2006/02/10(金) 04:29:28
872デフォルトの名無しさん:2006/02/10(金) 04:54:02
質問します。
「MIDP 2.0 携帯Java アプリ開発ハンドブック」(布留川英一著)という本にならって
JDK1.4とWTK2.2とをインストールしていたのですが、
JDK1.4のほうはインストールできたんですが、
WTK2.2のほうは sunのダウンロードページに飛ぶ前に「UserNameとパスワード」を
要求されてしまい、このことについて上記の本では何も書いてないんです。
どうしたらよいのでしょうか?どなたかわかる方、教えてくださいませ。
873デフォルトの名無しさん:2006/02/10(金) 05:15:36
>>872
誘導。ただし、初心者歓迎ではないのでアシカラズ。
注意書きには気をつけて、良い旅を。

CLDC+MIDP+携帯電話用Javaスレッド part 5
http://pc8.2ch.net/test/read.cgi/tech/1132493827/
874デフォルトの名無しさん:2006/02/10(金) 05:44:17
857です。
runtime.exec("cmd /c start D:/a.m3u");
で、出来ました。ありがとうございました。
875デフォルトの名無しさん:2006/02/10(金) 10:59:57
>>874
>>862が何故2パターン用意してるのか分かった?
コマンドインタプリタで set comspec とか echo %comspec% ってやってみると嬉しくなれるぞ
876デフォルトの名無しさん:2006/02/10(金) 11:01:29
絶対座標の取得はできますか?
877デフォルトの名無しさん:2006/02/10(金) 11:05:21
getLocationOnScreen() (だっけ?)
878デフォルトの名無しさん:2006/02/10(金) 11:52:02
カーソルの絶対座標は取得できますか?
879デフォルトの名無しさん:2006/02/10(金) 12:31:38
できます。以上
880デフォルトの名無しさん:2006/02/10(金) 12:32:44
>>879
詳しく教えてあげなよ
881デフォルトの名無しさん:2006/02/10(金) 12:41:21
>>880
できますか?と言う質問だから正しい答えだと思うよ
どうやったらできますか?とかどのAPIを使うんですか?という質問をすれば良いと思うよ
882デフォルトの名無しさん:2006/02/10(金) 13:01:14
揚げ足取りを淡々と引きずってもおもしろくない。
883デフォルトの名無しさん:2006/02/10(金) 13:05:55
次の人どうぞ〜
884デフォルトの名無しさん:2006/02/10(金) 13:06:30
ハズレの回答者を引いたのはお前だ。諦めろ。
885デフォルトの名無しさん:2006/02/10(金) 13:28:13
俺じゃないけど。
886デフォルトの名無しさん:2006/02/10(金) 13:43:23
どうやったら、カーソルの絶対座標を取得できますか?
887デフォルトの名無しさん:2006/02/10(金) 14:14:45
888デフォルトの名無しさん:2006/02/10(金) 15:53:06
返答ありがとうございます

使ってみたのですが、、、
import java.awt.MouseInfo;
の時点で、シンボルを解釈できませんとでました。。。
どうしてなのか教えていただけますか?
889デフォルトの名無しさん:2006/02/10(金) 15:58:22
>>888
MouseInfoは1.5から導入されたので、1.4とかだと使えない。
890デフォルトの名無しさん:2006/02/10(金) 16:03:36
手を抜いて一行で質問すると、余計時間がかかる、の典型だな
891デフォルトの名無しさん:2006/02/10(金) 16:03:42
なるほど・・・1.5ですか・・・

探したのですが、1.5をダウンロードできるページを見つけれなくて;;
よければ、アドレスを紹介してもらえませんか?
892デフォルトの名無しさん:2006/02/10(金) 16:08:59
893デフォルトの名無しさん:2006/02/10(金) 16:19:42
最新版を見つけれないって珍しい質問だな
894デフォルトの名無しさん:2006/02/10(金) 16:50:19
test.xmlという文字列から .xmlを取り除いて testという文字列を取り出したいです。
ご教授いただけるとうれしいです。
895デフォルトの名無しさん:2006/02/10(金) 16:54:14
name.substring(0, name.length() - 4);
896デフォルトの名無しさん:2006/02/10(金) 16:55:25
int last = name.lastIndexOf('.');
if (last >= 0)
name = name.substring(0, last);
897デフォルトの名無しさん:2006/02/10(金) 16:56:02
文字列の後ろ4文字をカットしたいのか、.xml という文字列を排除したいのか
ピリオド以降をカットしたいのか、でやり方変わってくると思うが。

って書いてるうちに 4文字カットとピリオド以降の方法が書き込まれている
898デフォルトの名無しさん:2006/02/10(金) 16:56:44
name = name.replaceFirst("\\.xml$", "");
899894:2006/02/10(金) 16:57:55
みなさんありがとうございますm(__)m
900デフォルトの名無しさん:2006/02/10(金) 16:57:55
string hoge(){
s="test.xml"
if(s.equals("test.xml")) return "test";
}
901デフォルトの名無しさん:2006/02/10(金) 17:01:24
>>900が正解。
仕様に書かれていないことを勝手に想像して実装してはいけない。
902デフォルトの名無しさん:2006/02/10(金) 17:10:42
>>901
残念ながら "test" は string型にキャストできません。

ついでに、s.equals("test.xml") ではなかった場合の処理が抜けてるので
言語規定によりコンパイルエラーになるはずです。
903デフォルトの名無しさん:2006/02/10(金) 17:13:32
> s="test.xml"
s の宣言が抜けてるのとか、セミコロンが抜けてるのとかは?
904デフォルトの名無しさん:2006/02/10(金) 17:14:26
高説垂れる前にコードくらい読めるようになれと
905デフォルトの名無しさん:2006/02/10(金) 17:16:18
if文だけ書いてあればよかった
906デフォルトの名無しさん:2006/02/10(金) 17:18:10
コンパイルも通らないコードに正解認定と聞いて飛んできました
907デフォルトの名無しさん:2006/02/10(金) 17:25:19
そこまで揚げ足とるなら>>894はJavaでって書いてないから正解でいいんじゃね
908デフォルトの名無しさん:2006/02/10(金) 17:30:38
>>907
スレタイ100回読み直して半年ROMってて下さい。
909デフォルトの名無しさん:2006/02/10(金) 18:18:52
途中までVBで書いた
javaだと思い出してequalsメソッドにした
面倒だからそのままにした
910デフォルトの名無しさん:2006/02/10(金) 18:25:54
今は反省してる
911デフォルトの名無しさん:2006/02/10(金) 18:33:59
>>884
質問の仕方で、はずれの回答者を召還することも大いにあるよねえw
912デフォルトの名無しさん:2006/02/10(金) 20:30:27
Image の一部を三角形に切り出して回転させ、同じ Image の別の領域に描画したいんですけど、
三角形に切り取りとか、回転とかって機能ありましたっけ?
913デフォルトの名無しさん:2006/02/10(金) 20:31:29
>>912
(俺の考えた便利な2D描写ライブラリなら)ある。普通に使える。
914デフォルトの名無しさん:2006/02/10(金) 20:35:02
すみません、J2SE 1.4 のコアライブラリにです。
ひょっとして PixelGrabber でビット化してピクセル拾って座標変換するしかないですかね?
915デフォルトの名無しさん:2006/02/10(金) 21:51:46
コアJavaってもうそろそろ改訂版が出ますか?
改訂版が出そうなので買うに買えないんですが
916デフォルトの名無しさん:2006/02/10(金) 22:31:51
配列を扱うときはvectorよりArrayListの方が処理が早くなるって聞いたんですが本当なんでしょうか?
厨な質問ですいません
917デフォルトの名無しさん:2006/02/10(金) 22:33:48
ひんと:どうき
918デフォルトの名無しさん:2006/02/10(金) 22:35:54
>>916
配列を扱うなら、配列が一番速いよ。
919デフォルトの名無しさん:2006/02/10(金) 22:39:39
>>912
やったことないけどアクセラレーションがきかなくてもいいならJava2Dでいけるんじゃない?
Shape+TexturePaint+AffineTransformていけると思うんだけど・・・試してないからよくわからん。
920デフォルトの名無しさん:2006/02/10(金) 22:42:23
質問なんですが、

User user = null;

にSQLで取得した値を代入して値を渡すのに

user.no = result.getInt("USER_NO");
user.name = result.getString("USER_NAME");
user.pas = result.getInt("USER_PAS");
return user;

て書き方は間違っていますか?教えてください。
921デフォルトの名無しさん:2006/02/10(金) 22:43:52
>>920
> User user=null;
> に
何が「に」だ?
・・・nullに、か?

nullならその後のコードでぬるぽ出るだろ
922デフォルトの名無しさん:2006/02/10(金) 22:46:27
>>918
プログラムの中で動的に配列のサイズを変えられるのなら配列を使いたいのですが・・・
923デフォルトの名無しさん:2006/02/10(金) 22:48:18
>>922
arraycopy
924デフォルトの名無しさん:2006/02/10(金) 23:01:22
>>923
ありがとうございます
早速試しに作ってみます
925デフォルトの名無しさん:2006/02/10(金) 23:09:00
>>921
はい。でます。
そこでこの状態でのぬるぽの回避方法が知りたいんです。
926デフォルトの名無しさん:2006/02/10(金) 23:10:48
『動的にサイズが変わる配列』は
まさしく ArrayList にした方が良いものだろう
927デフォルトの名無しさん:2006/02/10(金) 23:11:34
PixelGrabberって使う場面なんてあるか?
928デフォルトの名無しさん:2006/02/10(金) 23:24:49
>>920
null.no
null.name
null.pass

…これ、どうしようか
他の言語でこういう書き方があるのか?
929デフォルトの名無しさん:2006/02/10(金) 23:31:16
>>925
その「User」というクラスの仕様がわからないことには答えられないよ。

930デフォルトの名無しさん:2006/02/11(土) 00:16:24
>>916
ArrayList ってたしか同期とってないんだよな。ちょっと速いんじゃない?
それのせいかどうかは知らないが。気になるならソース見たら?

931デフォルトの名無しさん:2006/02/11(土) 00:17:31
>>925
わかんねえけど User user = new User(); とでも書けば? どうなるか知らないけど。
932デフォルトの名無しさん:2006/02/11(土) 00:20:37
933デフォルトの名無しさん:2006/02/11(土) 00:33:52
WebでないJavaアプリをJarに固めるときって、
ライブラリのjarファイルや設定のプロパティファイルは
どこに置くのが普通でしょうか?
934デフォルトの名無しさん:2006/02/11(土) 01:38:54
javaでweb上の画像ファイルを表示させるのは難しいでしょうか?
C#だと簡単のようなのですが…
935デフォルトの名無しさん:2006/02/11(土) 01:48:56
>>933
ライブラリはjarと同じフォルダかCLASSPATHの通った場所
どのライブラリのjarを見るかはMANIFESTファイルで設定しておく

設定のプロパティファイルはユーザーに触らせたくないならjarの中とかインターネットの特定URLに置いて置く
ユーザーが触って良いならjarと同じ場所か起動用のシェルやバッチのある場所
936デフォルトの名無しさん:2006/02/11(土) 01:57:21
>>935
さんくすです。
とりあえず同じフォルダに置く方針でやってみまつ
937デフォルトの名無しさん:2006/02/11(土) 02:02:25
>>934
どの変が難しいと思ったんだ?
938デフォルトの名無しさん:2006/02/11(土) 08:28:59
>>924
自分でArrayList作ってどうする。
939デフォルトの名無しさん:2006/02/11(土) 09:27:02
Javaで絶対パスを相対パスに変換するにはどうしたらいいんでしょうか……?

parent = カレントとなるディレクトリ
child = 相対にしたい絶対パス
を使い、
new File( parent, child );で作成しても、

二つが連結されたパスが生成されるだけで困ってます。
ご存じのかたお助けください。
940デフォルトの名無しさん:2006/02/11(土) 10:15:31
カレントはcurrentにしてほすぃの。
941デフォルトの名無しさん:2006/02/11(土) 13:59:29
parent = new File(parent).getCanonicalPath();
child = new File(child).getCanonicalPath();
child = child.substring(parent.length() + 1);
942デフォルトの名無しさん:2006/02/11(土) 14:36:44
>>941ありがとう。(>>939じゃないけど勉強になるので)

それだとchildがparentの下にないとだめだよね?
たとえば
  child=/usr/local/share/X11
  parent=/usr/local/lib
を入力したときに、../share/X11を取得しようとしたら
やっぱり / で区切ってパスの先頭から一段づつ見て
いくしかないのかな。
943デフォルトの名無しさん:2006/02/11(土) 14:52:56
if(parent.equals(child.substring(0, parent.length()))) とかで判定すりゃいいんじゃないか?

Windowsのパスの大文字小文字を区別しない場合とかにも対応したいなら
if(new File(parent).equals(new File(child.substring(0, parent.length()))))

括弧の数あってるか自信ない。
944デフォルトの名無しさん:2006/02/11(土) 15:06:02
String#startsWith() か String#matches() 使え
上位階層の ../ 付けたいなら StringTokenizer と Stack でも使ってゴリゴリ書け
945デフォルトの名無しさん:2006/02/11(土) 15:20:09
> 上位階層の ../ 付けたいなら StringTokenizer と Stack でも使ってゴリゴリ書け

それは getCanonicalPath 使う事で解決するんじゃないか
946デフォルトの名無しさん:2006/02/11(土) 16:15:35
〜Java初心者スレ 80 終わりの歌〜
ちんちんぺろんちょぺろんちょ ちょっとしめっぽい〜
なんでさきっちょひかるの〜 2mものびるよ〜
「あ、けっこう うまいんすね あ〜」
触るときに「すいません」なんて非日常会話
「Java好きなんすか?」
「ええ、Java好きっすね〜」
「P2Pなんてどう?」
「あ、いいっすね〜」
「俺とおまえでO2Oなんてな」
「ぎゃはははは」
じゃぱっじゃぱ、ぱ、ぱ、じゃばじゃば
JavaJavaJavaJavaJavaJavaJava

じゃ!。。。ばまたね
947デフォルトの名無しさん:2006/02/11(土) 16:19:20
>>916
スレッドセーフは微妙な問題なので
Vector を使ったぐらいじゃどうにもならない可能性が高い。
むしろ、勝手に同期されると、デッドロックを起こす弊害になりかねない。
948デフォルトの名無しさん:2006/02/11(土) 16:24:55
Vectorの同期ではデッドロックは起こらないんじゃないの?

少なくとも初心者が触っていて速度が問題になるとは考えられんが

Lock使って実装されればその速度もさほど気にならんかもしれんが
949939:2006/02/11(土) 16:27:30
>>941,943,944,
ありがとうございます!

>>942
自分もそれを考えていたところでした。

絶対パス→相対パスはJakarta IOにもないので凹んでいたところでした。
本当にありがとうございます。
950sage:2006/02/11(土) 16:30:24
んなことあるわけねーだろ
951デフォルトの名無しさん:2006/02/11(土) 16:33:40
>949
どんなにがんばっても相対取れないこともあることに注意な。
952sage:2006/02/11(土) 16:47:48
アルプスの少女ハイジを
保険のCMに利用するのはやめてください

やずや。やずや。
953デフォルトの名無しさん:2006/02/11(土) 16:54:57
public class Sample2_4{
private static int d = 10;
protected void method(){
System.out.println("method"); }
private Sample2_4(){
System.out.println("constructor"); }
public static void main(String[] args){
System.out.println("d = " + d );
Sample2_4 spl =new Sample2_4();
spl.method();
}
} を実行すると結果が
d = 10
constructor
method になります。
spl.method()メソッドを呼び出しているのでmethodが表示されるのは分かるのですが
constructorも表示されるのはなぜなのでしょうか?
どなたか教えてください。
954デフォルトの名無しさん:2006/02/11(土) 16:57:32
> Sample2_4 spl =new Sample2_4();
コンストラクタ読んでるからじゃね?
955デフォルトの名無しさん:2006/02/11(土) 16:57:46
> Sample2_4 spl = new Sample2_4();
              ~~~~~~~~~~~~~~
956デフォルトの名無しさん:2006/02/11(土) 17:00:31
流石に釣りだろ
957sage:2006/02/11(土) 17:03:29
フィッシング詐欺
「掲示板にコンストラクタが呼ばれることを聞かれることってあるのですか?」
958デフォルトの名無しさん:2006/02/11(土) 17:04:20
むかしの疑似餌はもっと精巧にできていた
今の若いものはこんなことも的もにできんのか
959デフォルトの名無しさん:2006/02/11(土) 17:08:16
>>954
>>955すいません、どういう意味ですか?
釣りとかはでありません。
最近独学でJAVAをはじめたばかりなので全然分かっていなくてすみません。
もう一度参考書をよく読んでみます。
960sage:2006/02/11(土) 17:09:31
「的」 おまえの書きまちがえの方が。。。

伊勢エビラーメン800円ならやすいな
ユンソナやります
「全メーカ社 okよ」
961デフォルトの名無しさん:2006/02/11(土) 17:10:23
コンストラクタは何時実行されるものかよく調べろ。
962デフォルトの名無しさん:2006/02/11(土) 17:13:18
つーか上の宣伝画像の小倉ありすの顔が、やらしてくれそうで
勃起してしまいます
963デフォルトの名無しさん:2006/02/11(土) 17:14:18
コンストラクタというのはオブジェクトが作成されるときに自動的に呼び出される特殊なメソッドのこと。
964デフォルトの名無しさん:2006/02/11(土) 17:17:36
いやいや、自動的には呼ばれないだろ
ねこにゃんにゃんにゃん
いぬわんわんわん
かえるもあひるもがーもーらー
ねこにゃんにゃんにゃん
いぬわんわんわん
じゃいあんと馬場も 「めんがまがまー!」
965デフォルトの名無しさん:2006/02/11(土) 17:20:24
>>961
>>964
今知ったのですがデフォルトコンストラクタというものがあるのですね。
ありがとうございました。
966デフォルトの名無しさん:2006/02/11(土) 17:22:05
constructor と表示されたのはデフォルトコンストラクタとは関係ないと思うが。
967デフォルトの名無しさん:2006/02/11(土) 17:33:08
デフォルトコンストラクタに"constructor"を出力するように書いてあるんだが
968デフォルトの名無しさん:2006/02/11(土) 17:35:58
>>966
これは引数無しのコンストラクタですよね、失礼しました。
969デフォルトの名無しさん:2006/02/11(土) 17:47:19
中国のJavaプログラマー
チン-チイサイ
970デフォルトの名無しさん:2006/02/11(土) 17:49:37
小学校に犯罪予告葉書なんて。。。
犯人は子供だろ
そのくらいコンストラクタが呼ばれる
971デフォルトの名無しさん:2006/02/11(土) 17:50:58
>>967
デフォルトコンストラクタでなくても、同じように書けば同じように "constructor" と表示されるって事。
デフォルトコンストラクタの特例とかで、特別に "constructor" と表示されたのでは無いって事。
972デフォルトの名無しさん:2006/02/11(土) 17:54:36
どうでもいいけど、技術系の板にはPREと等幅の機能がほしいよね
ソースとか、DBのテーブル構造とか見づらくてかなわん。
973デフォルトの名無しさん:2006/02/11(土) 18:50:49
>>953
> constructorも表示されるのはなぜなのでしょうか?
実行時の出力とソースを比較することにより、
main メソッドの以下の行が原因であることが分かる。

> Sample2_4 spl =new Sample2_4();

new Sample2_4() という式は、
Sample2_4 クラスにある引数無しのコンストラクタを実行する。

Sample2_4 クラスにおいて、引数無しのコンストラクタとは
Sample2_4() という文字列を宣言部に含む部分である。

Sample2_4 クラスにある引数無しのコンストラクタでは、
System.out.println("constructor") という式を実行するように記述してある。

この式を解決することにより、出力に "constructor" という文字列が表示される。

# うーん。結構難しいね。
974デフォルトの名無しさん:2006/02/11(土) 18:52:13
vector配列の指定の要素をstring型で受け取りたいんですが、

Object cName = columnNames.get(row);
String stcName = String(cName);

とやるとエラーが出ます
どのように書けばString型で受け取ることが出来るんでしょうか
975デフォルトの名無しさん:2006/02/11(土) 18:54:00
String stcName = (String)cName;
976デフォルトの名無しさん:2006/02/11(土) 18:56:18
子クラスのインスタンスから子クラスでオーバーライドされたpublicな親クラスのメソッドを参照するにはどうしたらいいのでしょう?
class a {public void func(){}}
class b extends a {public void func(){}}
a a_instan = new b();
のような場合
a_instan.func();
で子のa_fun()が実行されますが、親のfunc()を呼び出す方法です。
C++の場合a::a_fun();になると思うのですが。
977デフォルトの名無しさん:2006/02/11(土) 18:58:14
>>975
できました! ありがとうございます
978976:2006/02/11(土) 19:00:03
訂正です。
C++の場合a::a_fun();になると思うのですが。
C++の場合a::func();になると思うのですが。
979デフォルトの名無しさん:2006/02/11(土) 19:02:30
>>976
http://www.y-adagio.com/public/standards/tr_javalang/15.doc.htm#239751

なんで C++ が出てくるのか謎。
母国語では無い言語を勉強するのに母国語で解釈しようとする行為。

#クラス名の一文字目は大文字で。
980デフォルトの名無しさん:2006/02/11(土) 19:04:23
クラスbの中でsuper.func();
981976:2006/02/11(土) 19:04:38
>>978は間違いました。
まず表記は上段が誤り下段が訂正後のつもりでした。

さらに内容が誤りでした。
×C++の場合a::func();になると思うのですが。
○a::a.func();になると思うのですが。
たしかこれで良いんですよね?
982デフォルトの名無しさん:2006/02/11(土) 19:07:24
>なんで C++ が出てくるのか謎。
>母国語で解釈しようとする行為。
べつにC++で::を使うからjavaでもそうだと申してるのではないのですから、こういう批判は当らないですね。
C++は例に挙げたにすぎません。
983デフォルトの名無しさん:2006/02/11(土) 19:08:36
>>980
superはクラスの中で使わないとダメですよね?
クラスの外からは参照できませんか?
984デフォルトの名無しさん:2006/02/11(土) 19:21:35
>983
できません。
985976:2006/02/11(土) 19:24:08
>>984
方法がないということですか?
それでは不便じゃ?

((a)a_instan).func();
で出来るかもと思ったら出来ませんでした。

986デフォルトの名無しさん:2006/02/11(土) 19:26:29
>985
方法がないということです。
不便だと思う人は不便だと思うし、思わない人は思わないと思います。
987デフォルトの名無しさん:2006/02/11(土) 19:26:36
>>982
以下の状況だと判断した。
Java をそこそこ理解している人の前で、
こういうとき、C++ では、×××って書くんだけど、Java だとどうなの?

あなたと、C++ を理解したがってる人にとっては有益な情報かもしれないが、
Java のことだけを考える人には全く無価値な情報であると考える。

>>985
私に怒りを向けるのは自由だが、
>>979で紹介している言語規定にまで怒りを向けないでいただきたい。
988デフォルトの名無しさん:2006/02/11(土) 19:33:31
>>987
そこまでC++を敵視する理由を教えてください。
他の言語、例えばCやperlから見たらC++とjavaは非常に似た仕様の言語と言えるはずです。
そのC++の例えを示してやりたい事を説明してるだけなのに、あなたはC++に対してどうしてそこまで気難しく構えるのですか?
なにかトラウマのようなものでも有るのでしょうか?
989デフォルトの名無しさん:2006/02/11(土) 19:35:37
ここは Java スレ。答える側の知らない言語を引き合いに出しても拒絶されるのは
当然のこと。関係ないけど a::func() に virtual 宣言居るんじゃないのか? 最近の
ANSI 規格がどうなってるか知らんけど。

外部からオーバーライドされたスーパークラスのメソッドは呼び出せません。
サブクラスすっ飛ばして勝手にスーパークラスのメソッドが呼べたら、サブクラス側の
整合性が保てなくなる可能性があるから。スーパークラスのメソッドはサブクラス側で
super.func() と明示的に呼んでやらないと実行されません。
990デフォルトの名無しさん:2006/02/11(土) 19:39:23

>980
次スレ立てて。
991デフォルトの名無しさん:2006/02/11(土) 19:41:07
>>987
>あなたと、C++ を理解したがってる人にとっては有益な情報かもしれないが、
>Java のことだけを考える人には全く無価値な情報であると考える。

あと一言、
私の質問がC++プロパーの内容なら兎も角、本質的にjavaの質問です。
あなたの批判するような、質問者にのみ価値のある質問は私の質問に限ったことではありませんし
そもそも、このスレでは回答者の利益になる質問のみオーケーという規則でもあるのでしょうか?
992991:2006/02/11(土) 19:44:23
>>989
上で書いた通りです。
>答える側の知らない言語を引き合いに出しても
既に書いた通りC++の例は例えに出したに過ぎません。
C++を知らなければ拘る必要はないのですよ。
自分の知らないことに抵抗感ばかり示さず、すこしは大人になってください。
993デフォルトの名無しさん:2006/02/11(土) 19:46:02
>>992
うんこは黙ってろ
994990:2006/02/11(土) 19:47:35
>980いないっぽいので立てた。
http://pc8.2ch.net/test/read.cgi/tech/1139654818/
995デフォルトの名無しさん:2006/02/11(土) 19:47:57
>>993
てめえは鼻くそでも食ってろ
996デフォルトの名無しさん:2006/02/11(土) 19:48:35
>>995
仲良くしよーぜ
997デフォルトの名無しさん:2006/02/11(土) 19:48:53
>>991
>>992
低脳プログラマうぜーよ
そもそもお前の質問は参考書読めば分る超初心者ような内容だろ
一々ツマラナイ内容で何レスもつけてるんじゃない
998デフォルトの名無しさん:2006/02/11(土) 19:49:03
あっち池
999デフォルトの名無しさん:2006/02/11(土) 19:49:42
CからJavaへ移行中のひとのスレ
http://pc8.2ch.net/test/read.cgi/tech/1136453898/
1000デフォルトの名無しさん:2006/02/11(土) 19:49:49
>>998
>>996へのレス
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。