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

このエントリーをはてなブックマークに追加
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() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

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

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

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

次スレは>>980あたりで。
2デフォルトの名無しさん:2007/04/30(月) 22:28:50
>1乙カレン様
3デフォルトの名無しさん:2007/04/30(月) 22:40:10
javaを始めたばかりなのですが
if文の中で宣言の指定をすると「シンボルを見つけられません」といわれて
コンパイルできません。
最初の段階で宣言すればいいのですが、なぜif中に宣言したらいけないのでしょうか?
誰か教えてもらえると助かります。
4デフォルトの名無しさん:2007/04/30(月) 22:42:54
>>3
いけなくない。
if () { A }
B

Aでする宣言は有効。ただし、Bではその変数は見えない。
5デフォルトの名無しさん:2007/04/30(月) 22:55:29
>>4
あー
なんとなくわかりました。
ありがとうございます。
6デフォルトの名無しさん:2007/05/01(火) 03:09:15
ActionScriptというFlashで使われている制御プログラムの言語をプログラミングが
あまり出来ない人でも使えるようにActionScrip和訳辞書のようなイメージでシステム
を作りたいと思っています。ユーザーがイベントやそのイベントが起きたときの処理などを
日本語であらかじめ設定されたライブラリから選択すればそのままソースがデータベースから
読み出されアウトプットされるようなものを作りたいのです。
どのように作ればよいのでしょうか?
何か開発に使えそうなソフトなどないでしょうか?
本当に困っています。誰か助けてください
7デフォルトの名無しさん:2007/05/01(火) 04:06:32
Thread、synchronizedについて質問があります。
public class Test extends Thread{
private int i, j;
public synchronized void run(){
for( int count = 0; count < 2; count++ ){
i++;
j++;
System.out.println(" i=" + i + ":j=" + j );
}
}
public static void main(String[] args){
new Test().start();
new Test().start();
}
}
このコードの実行結果を答えよっていうような問題があって、
選択肢の中に、
B i=1:j=1
  i=2:j=2
i=1:j=1
i=2:j=2
C iとjの値は出力されるが、表示順は一意ではない
この2つがあって、Bが正解になってて、
解説には、run()メソッドをsynchronized指定しているため、run()メソッド実行中は他に制御が移ることなく処理される。
とあるんですが、これ違いますよね?
うまく説明できないんですが、このときって別々のオブジェクトのrunにロックがかかってるんですよね?
forループの回数増やして試しても、Cの結果になりました
8デフォルトの名無しさん:2007/05/01(火) 04:20:34
>>7
うん
あんたの解釈で合ってる
9デフォルトの名無しさん:2007/05/01(火) 04:46:47
>>8
ありがとうございます
ちょうど今日SJC-P受けるのでその前にすっきりできました\(^o^)/
10デフォルトの名無しさん:2007/05/01(火) 06:36:43
雨の中、5963
11デフォルトの名無しさん:2007/05/01(火) 08:59:25
2週間の黄金ウィークなんですが、Javaで何をしたらいいですか?
12デフォルトの名無しさん:2007/05/01(火) 09:04:31
>>11
曜日を取得
13デフォルトの名無しさん:2007/05/01(火) 09:22:49
>12ナイス。でも、おわた…

次は?
14デフォルトの名無しさん:2007/05/01(火) 09:30:08
>>13
祝日を管理するプログラム
15デフォルトの名無しさん:2007/05/01(火) 10:00:30
>14
成人の日と体育の日は第2月曜。春分の日と秋分の日は年度によって違う。振替休日。
成人の日は
Cal date=インスタンス〜
date.set(1月1日)
int col=1月1日の曜日ゲット
int count=0
for(int c;c<=30;C++){
if(col==2){
count++
if(count==2){
Holiday=1*100+c
break
}
}
col++
if(col>7){
col=1
}
体育の日も同様に!

春分の日
Syunbun=3*100+(int)(20.8431+0.242194*(Year-1980)-(int)((Year-1980)/4))
春分の日
Syuubun=9*100+(int)(23.2488+0.242194*(Year-1980)-(int)((Year-1980)/4))

振替休日
まんどくせ( ̄σ‥ ̄)
16デフォルトの名無しさん:2007/05/01(火) 10:46:19
以上を踏まえて万年カレンダーを作る。

・指定された年月に対する一ヶ月分のカレンダーをGUI上に表示する
・土日祝祭日は色分けすること。
・年月の指定範囲は1970年1月〜2099年12月とする
・祝祭日は過去にさかのぼると平日だったりするので(海の日とか天皇誕生日とか…)その辺も考慮する。
・将来的に祝祭日の追加に対応できるようにする。
・余力があればこれを元にスケジュール帳を作ってみる。

これだけやればGWの暇つぶしになるじゃろ
17デフォルトの名無しさん:2007/05/01(火) 10:47:05
>>15
いつ天皇が逝っても対応できるように和暦の即時追加とか
はぁ〜、和暦とかハッピーマンデーをどっかのサーバーで一元管理してくれればいいのにな
18デフォルトの名無しさん:2007/05/01(火) 10:49:54
>17コピペでいい?
( ̄σ‥ ̄)
19デフォルトの名無しさん:2007/05/01(火) 11:04:40
東風荘って麻雀ゲーム(ネット対戦)があるんだけどさ
このクライアントアプリでJava版があるんだよ
これを自分の考えたアルゴリズムで打つように組んで遊んでるよ。

このアルゴリズムがすげー弱い・・・。
20デフォルトの名無しさん:2007/05/01(火) 11:36:43
Javascriptなんですけど
テキストエリアにjの回数分、ランダムに出力したいのですが、
どうも一番最後の処理だけが出力されてしまいます。
どこがおかしいか教えて頂けないでしょうか?  

for(j = 1; j <= cnt; j++){
m = "role" + j + " = " + Math.round(Math.random()*10) + ",";
document.form1.result.value = m;
}
21デフォルトの名無しさん:2007/05/01(火) 11:41:39
>>20
スレ違い
22デフォルトの名無しさん:2007/05/01(火) 11:45:15
ですよね、探してもなかったから・・
すいません。
23デフォルトの名無しさん:2007/05/01(火) 11:53:15
jの回数分って…
2421:2007/05/01(火) 11:54:00
>>22
本当だ、JavaScriptってないんだな。
Web制作板に結構あるからそっちでどうだろう?
25デフォルトの名無しさん:2007/05/01(火) 12:16:21
Date型からString型への変換ってどぉしたらいいですか?
SimpleDateFormat使うんだろうけどわかりませn
26デフォルトの名無しさん:2007/05/01(火) 12:24:07
>>25
どういう文字列にしたい?
2000年10月10日 10時10分
2000/10/10 10:10
などなど具体的に

っていうかAPIは読んだ?
27デフォルトの名無しさん:2007/05/01(火) 12:30:32
1.日付のフォーマット
1.時刻のフォーマット
1.日付と時刻の両方のフォーマット
1.パターン文字によるフォーマット

があるお
28デフォルトの名無しさん:2007/05/01(火) 12:33:33
>>26
API読みました!が、わかりません;;

2000/10/10(Dateクラス)をテキストフィールドに表示させたいんですが、
その場合Stringにしなきゃですよね?しかし方法がわかりません;;
29デフォルトの名無しさん:2007/05/01(火) 12:41:18
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
sdf.format(new Date(time));
30デフォルトの名無しさん:2007/05/01(火) 12:43:45
APIが読めるぐらいの基礎知識はつけろよ!
31デフォルトの名無しさん:2007/05/01(火) 13:56:18
JAVAの開発環境はどれがオススメですか?
できればfreeがよいです。
windows、macで変わりますか?
32デフォルトの名無しさん:2007/05/01(火) 15:02:07
開発環境の質問が出ているので便乗で失礼します。

Javaをはじめたばかりなんですが
Eclipseなどの開発環境をいきなり入れるべきか
まずはエディタ+JDKの王道でやっておくべきか
どちらの方がおすすめでしょうか?
33デフォルトの名無しさん:2007/05/01(火) 15:09:05
>>32
どっちでも自分がいいと思った方を選べばいいよ
自分の感性を信じるんだ
34デフォルトの名無しさん:2007/05/01(火) 15:10:10
この手の話は100万回繰り返されてて、一歩間違えば荒れる元だが

それでも敢えて言うなら、IDEから始めた方が良いと思う。この方が馴染みやすい。
ただ、ある程度Javaに慣れてきたら、エディタ+JDKでの開発にもふれておくべき。
IDEの後ろで何が起きているかは知ってて損はない。
35デフォルトの名無しさん:2007/05/01(火) 15:30:58
まずはコンパイラの使い方覚えてからIDE触った方が良いよ
3632:2007/05/01(火) 15:55:09
>>33-35
「どちらが良いかは人それぞれ」なんですね。
かなり乱暴なイメージとしては、初心者がウェブサイトを作るのに
メモ帳で手打ちしていくかホームページビルダーを使うか、
といった感じなんでしょうか。
ものの本を何冊か読んでみたところ、
エディタ+JDKが大前提で書かれてるものばかりだったので、
初めから統合開発環境に手を出すのはご法度なのかと思っていましたが、
そうとも限らないんですね。
簡単なコーディングをいくつかエディタで書いてみてから
統合開発環境も触ってみようと思います。

レスありがとうございました。
37デフォルトの名無しさん:2007/05/01(火) 16:36:21
>>32
無料なんだから全部試してから決めれば?
38デフォルトの名無しさん:2007/05/01(火) 17:10:42
すごく抽象的な話ですみません。、
関数を使うとき微妙に違う処理なんだけど引数に渡すものもない場合
どう呼び出すんでしょうか?
例えばtextshow1関数とtextshow2関数って分けずに
textshow関数で引数を渡すと思うんですが、
textfield1と2で違うだけって場合とか。
文字列を渡してやればいいのでしょうか?スマートでない気もします。
39デフォルトの名無しさん:2007/05/01(火) 17:22:20
DataInputStreamとBufferedReaderの共存についての質問です。

HTTPのクライアントを書いていて、
以下のようにテキスト入力用のBufferedReaderと、
画像等のデータを入力するためのDataInputStreamを同時に使いたいと考えています。

InputStream is = sock.getInputStream();
DataInputStream DataIn = new DataInputStream(is);
BufferedReader TextIn = new BufferedReader(new InputStreamReader(is,1);

ヘッダをBuffuredReader#readLine()で""(ヘッダ終わり)が出るまで読み込んだ
後に、DataInputStreamでデータを読んでも、0バイトしか読み込めませんでした。
(バッファに先読みされた?)

BufferedReaderをまったく使わずにDataInputStream#readLine()を使えば一応
問題ないのですが、こちらのメソッドは非推奨らしいので出来れば使いたくありません。

この二つをうまく共生させる方法はありませんか?よろしくお願いします。
40デフォルトの名無しさん:2007/05/01(火) 17:22:42
> 微妙に違う処理なんだけど
何が違うのか具体的、かつ詳細に。

っつか、何が問題なのかもよくわからんし、
面倒だから自分の気が済むようにすればいいんじゃね? とか思わなくもない。
41デフォルトの名無しさん:2007/05/01(火) 17:58:03
>>39
> この二つをうまく共生させる方法はありませんか?
\r\n\r\n を検知したら -1 返すような InputStream 作って、
Reader にはそれを渡すとかして、先読みさせないようにするとか。

BufferedReader textIn = new BufferedReader(new InputStreamReader(
new InputStream(){
 private boolean eof = false;
 private int data = 0;
 public int read(){
  if(eof) return -1;
  int b = is.read();
  data = data << 8 | b;
  eof = (b == -1 || data == 0x0d0a0d0a);
  return b;
 }
}));
とか。

素直に java.net.HttpURLConnection とか使った方が良いような気もする。
42デフォルトの名無しさん:2007/05/01(火) 19:00:22
>>38
↓みたいなことがしたいってこと?
import java.awt.TextField;

private TextField textfield1 = new TextField();
private TextField textfield2 = new TextField();
public void textshow(java.awt.TextField field){
 field.setText("テスト");
}
呼び出すときは textshow(this.textfield1); textshow(this.textfield2);
43デフォルトの名無しさん:2007/05/01(火) 20:24:22
sjc-pうかた\(^o^)/
44デフォルトの名無しさん:2007/05/01(火) 20:32:16
>43
貴様、朝4時頃にカキコしてたやつだろ。
朝っぱらから受けるんだなぁと思ってたら、こんな時間まで…
45デフォルトの名無しさん:2007/05/01(火) 20:35:39
試験は昼過ぎに終わったよ
帰りにショッピングしてたよ\(^o^)/
46デフォルトの名無しさん:2007/05/01(火) 20:59:53
\^o^/
47デフォルトの名無しさん:2007/05/01(火) 21:30:32
ランダムバナーを作りたいんだけども、どうしてもIE6で警告文が表示される。
こんな感じです。
<SCRIPT language="JavaScript">
<!--
jmp = new Array();
img = new Array();
jmp[0] = "リンク先";
jmp[1] = "リンク先";
jmp[2] = "リンク先";
img[0] = "画像";
img[1] = "画像";
img[2] = "画像";
n = Math.floor(Math.random()*jmp.length);
document.write("<a href='"+jmp[n]+"'>");
document.write("<img src='"+img[n]+"' border='0'>");
document.write("</a>");
//-->
</SCRIPT>
画像は事情があって同じディレクトリに置けないので、htmlから始まるアドレスを入れて表示させています。
警告文を表示させないで実行したいのですがどうすればいいか教えてください。
48デフォルトの名無しさん:2007/05/01(火) 21:35:25
>>1
49デフォルトの名無しさん:2007/05/01(火) 21:39:21
>>2
50デフォルトの名無しさん:2007/05/01(火) 21:43:22
アプレットでメソッドを参照することはできますか?
どういうことかというと、↓みたいなことをアプレットでもできるか?という意味です。

class A{
public static void main(String[] args){
B();
}

public static void B(){
C;
}

}
51デフォルトの名無しさん:2007/05/01(火) 21:51:58
>>50
メソッド呼び出してるようにしか見えないんだけど。
参照ってどこにあんの?
52デフォルトの名無しさん:2007/05/01(火) 21:53:49
メソッドを参照という言葉を意味が通るように解釈すると、
「Methodオブジェクトを取得して何かする」という意味になりそうだが
たぶん違うな。
53デフォルトの名無しさん:2007/05/01(火) 21:53:58
じゃあ参照じゃなくて呼び出しです。
54デフォルトの名無しさん:2007/05/01(火) 21:58:58
>>53
なんでメソッド呼び出しが できなくなるって思うんだ?
55デフォルトの名無しさん:2007/05/01(火) 22:03:10
やってみてもできないからです。
drawlineを含んでるからかな。
56デフォルトの名無しさん:2007/05/01(火) 22:10:02
呼ばれてるけど期待する結果になっていないのか、
呼ばれておらずなにも起こらないのか、
コンパイル自体ができないのか、
いろいろ可能性があって回答不能。
57デフォルトの名無しさん:2007/05/01(火) 22:11:58
>>55
とりあえず、ソース全部晒せ。
コンパイルエラーか実行時エラー出てるなら、それも全部。
58デフォルトの名無しさん:2007/05/01(火) 22:14:57
晒すのは嫌なので自分で何とかすることにします。ありがとうございました。
59デフォルトの名無しさん:2007/05/01(火) 22:47:12
>>39
なるほど!
うまくいきました。
>java.net.HttpURLConnection
こんなクラスあったんですね・・・検討したいと思います。

ありがとうございました。
60デフォルトの名無しさん:2007/05/01(火) 23:29:07
SwingとかSWTでプログラミングするって聞きますが、これらはIDEなんですか?
61デフォルトの名無しさん:2007/05/01(火) 23:30:08
違います。
62デフォルトの名無しさん:2007/05/02(水) 00:09:17
最近はじめたばかりの初心者です
入力した誕生日に対して現在の日付を基準に年を求めるメソッドを
作りたいのですが、どのメソッドをどのように使ったらいいかわかりません・・・(´・ω・`)
どなたか教えてください(´・ω・`)
63デフォルトの名無しさん:2007/05/02(水) 00:18:03
>>62
現在日付は取れるのか?
四則演算は出来るのか?
誕生日入力ってのはmainのパラメータで渡すのか?

何が出来ないんだ?
出来る事と出来ない事を分けて書いてくれ
64デフォルトの名無しさん:2007/05/02(水) 00:36:58
>>62
中身はよくないと思うが参考にはなるだろう

ttp://forum.java.sun.com/thread.jspa?threadID=685608&messageID=4021491

つまり
java.util.Calendar
java.util.Date
65デフォルトの名無しさん:2007/05/02(水) 00:59:38
回答が得られないので、違うスレから移動してきました。

java初心者なのですが、
int a,b に数字を入れて割り算を行い、余りも含めてdouble型で出力しようとして

public static void main(String[] args) {
int a = 5;
int b = 3;
double d;
d = a/b;
System.out.println("5/3="+d);

}



と記述してみたのですが、実行結果は1.0となってしまいます。
どうすれば余りも含めて表示することができるのでしょうか?
66デフォルトの名無しさん:2007/05/02(水) 01:01:57
算数初心者?
67デフォルトの名無しさん:2007/05/02(水) 01:09:40
初心者なのですが≒頭が悪いのですが
68デフォルトの名無しさん:2007/05/02(水) 01:14:57
int / int = int
(double)int / (double)int = double
69デフォルトの名無しさん:2007/05/02(水) 08:33:03
%←あまり
70デフォルトの名無しさん:2007/05/02(水) 09:44:47
>>65
商と剰余を同時に計算することはできないので、それぞれやる計算する
がある。ところで、doubleでの余りってどういうものを期待している?

71デフォルトの名無しさん:2007/05/02(水) 10:14:40
Java(ジャバ) の読み方というかイントネーションについて。

1.↑↓(吉幾三の『よし』に近いイントネーション)
2.↓→(和田アキ子の『わだ』に近いイントネーション)

どっちなんでしょうか?
72デフォルトの名無しさん:2007/05/02(水) 10:17:20
中国語の四声に合わせて読んでみよう
ジャヴァ、ジャヴァ、ジャヴァ、ジャヴァ
73デフォルトの名無しさん:2007/05/02(水) 10:19:06
たすけてくれぇぇ
xlsファイルをCSVファイルに変換するJAVAプログラムなんて
あるのぉ??
(σ´Д`)JExcelApi使ったけどリファレンスが全部英語でわかんねぇ

7471:2007/05/02(水) 10:22:18
>>72
読んでみましたが、第2声なのか第4声なのかというところですかね。
どっちが主流なんでしょうか?
7565:2007/05/02(水) 10:27:00

わかりました。
わざわざありがとうございます。
7672:2007/05/02(水) 10:43:05
>74
いや、あの…ネタだったのに、ごめんorz
個人的には『わだ』式。
元々英語なんだから日本語にした時の発音なんてそれぞれじゃね?
77デフォルトの名無しさん:2007/05/02(水) 10:47:33
>73
つーか、ExelでCSV保存しなおすことができるよね
7871:2007/05/02(水) 11:20:43
>>76
あ、ネタだったんですか・・・。
でも、分かる人には四声で表現した方が伝わりやすいですね。

>元々英語なんだから日本語にした時の発音なんてそれぞれじゃね?
それもそうなんですが、例えばWordとかExcelとかだと第1声に近い感じのが主流ですよね。
Javaにもそういう主流の発音があるのかなぁ、と思ったので。
どうでも良いと言えば、どうでも良いんですけど
以前、Word、Excelの発音が第4声に近い感じの人が
「WordとExcelぐらいできますよ〜」と自身満々に言ってた割りに全然使えなくて
「使い慣れてる人はあんな発音しないよな・・・」みたいな印象をみんな持ってたので
ソフトの発音と言えどもバカにはならないな、と思ってたんですよね。
もし主流の発音があるのなら今のうちにそっちにしとこうと思って質問したんですが、
って、ものすごく長くなってすみません。
発音気にする前にワニの本読みます。
79デフォルトの名無しさん:2007/05/02(水) 11:28:47
仕事をしていると

( c == 'A' )

がアザラシに見えてきます。どうすれば良いんでしょうか?
80デフォルトの名無しさん:2007/05/02(水) 12:32:24
>>79
定数を定義する。これで'A'がメソッドの中に現れることはない。例えばこう。
public static char ^ω^ = 'A';
81デフォルトの名無しさん:2007/05/02(水) 12:52:35
俺なんてjavaのキャラクターが奥歯に見えるぜ。
82デフォルトの名無しさん:2007/05/02(水) 13:04:25
String型のデータをDate型にいれるのってどうすればいいですか?
83デフォルトの名無しさん:2007/05/02(水) 13:09:33
>>82
>>29あたり見れ
84デフォルトの名無しさん:2007/05/02(水) 13:12:28
>>83
ありがとうございます!
85デフォルトの名無しさん:2007/05/02(水) 13:12:35
え      くせる
  くせる え

どっちとも読むと思われ。
86デフォルトの名無しさん:2007/05/02(水) 14:06:48
>>80

( c == ^ω^ )

どう見ても、アザラシです。ありがとうございました。
8782:2007/05/02(水) 14:27:47
やってみたんですが>>29だと現在の日付になっちゃいますよね?

StringにYYYY/MM/ddの形で文字列が入ってることが前提だとどうすればいいでしょう?
88デフォルトの名無しさん:2007/05/02(水) 16:41:51
>>87
あのなぁ>>29が回答だなんて誰も言ってないだろ?
ある程度ヒントが出てるんだからクラス名使って自分で調べろよ。
その上で何が分からないのかを聞けよ。

もしも自分なりに調べた上で質問してるなら
何を何処まで調べて、何が分からないんだ?
89デフォルトの名無しさん:2007/05/02(水) 16:48:52
90デフォルトの名無しさん:2007/05/02(水) 21:05:17
JAVAでxlsファイル(計3シート)を
csvファイルに変換したいのだが・・・。
どうしてもcsv変換後は前と(セルの中身)配置が違う。
どうしたらいいんだ〜!誰か・・エレガントなロジックをおしえてくれぇぇ!!
読み込みにはPOIを使用してます。
91デフォルトの名無しさん:2007/05/02(水) 21:11:41
マルチかよ・・・
92デフォルトの名無しさん:2007/05/02(水) 22:14:41
swing使ってwindowsプログラミング?してるんですが、
何か手軽にデバッグできるようなのありませんか?
C(win32api)ではダイアログボックスがすごく便利でしたが、
それに相当するようなものないかなーと
93デフォルトの名無しさん:2007/05/02(水) 22:18:46
>>92
javax.swing.JOptionPane#showMessageDialog とか?

素直にNetBeansとかEclipseみたいなIDEの
付属のデバッガ使った方が良いような気もするけど。
94デフォルトの名無しさん:2007/05/02(水) 22:45:58
>>93
なぜか付属のデバッガのことを忘れてましたw
ありがとうございました。
95デフォルトの名無しさん:2007/05/02(水) 22:58:21
JAVAでプロセス間通信ってどうやってやるの?
96デフォルトの名無しさん:2007/05/02(水) 23:09:47
ソケットを使うのは普通に出来る。
共有メモリとかは標準にはないけど、NIO方面になんかあったよーな気も……
97デフォルトの名無しさん:2007/05/02(水) 23:10:08
>>95
ソケット通信とか色々あるけど
98デフォルトの名無しさん:2007/05/02(水) 23:31:37
textfieldの一番左端に文字をsetするには
どうすればいいでしょうか?
99デフォルトの名無しさん:2007/05/02(水) 23:35:14
すみません。右端でした。
100デフォルトの名無しさん:2007/05/02(水) 23:35:44
しかもtextareaでした。
101デフォルトの名無しさん:2007/05/02(水) 23:47:47
テキストの文字を取得して、最後に文字をくっつけて、またテキストにセットすればいいやん。
102デフォルトの名無しさん:2007/05/02(水) 23:53:02
いえ、そういうことではなくて、
setTextを使うとtextareaの左端に表示されてしまうので。
それをtextareaの右端に表示したいんです。
103デフォルトの名無しさん:2007/05/03(木) 00:05:26
AWTだとプラットフォームのpeer次第だろうな。

SwingのJTextAreaは
textArea.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
だろうか。
正確には、中に子供部品を配置するときの左右に関係するパラメータだと思ったが。
104デフォルトの名無しさん:2007/05/03(木) 00:19:18
ありがとうございます。
swingなので、よくわかりませんがやってみます。
105デフォルトの名無しさん:2007/05/03(木) 01:01:01
jakarta POIで、あるExcelファイルを読み込むと
org.apache.poi.hssf.record.RecordFormatExceptionが出る。
元のExcelファイルをExcelで開いて上書き保存するとちゃんと読み込めるんだけど、
元ファイルを吐くプログラム作った人に言わなきゃいけないんだろうか。

というかマスタぐらいcsvで吐いてくれよヽ(`Д´)ノウワァァン
一応poi-3.0-alpha3-20061212.jarとpoi-2.5.1-final-20040804.jarで試してみたけどだめぽ。
106デフォルトの名無しさん:2007/05/03(木) 01:03:35
JTextFieldなら
import static javax.swing.SwingConstants.TRAILING;
textField.setHorizontalAligment(TRAILING);
で、現在の行方向の行末に向かって揃えられる。
TRAILINGの代わりにRIGHTなら行方向にかかわらず右揃えになる。

JTextAreaにはsetHorizontalAlignmentなかったな。
107デフォルトの名無しさん:2007/05/03(木) 02:04:34
質問ですただいま私のプログラムに3つのjavaがはいっているのですが
5・0の9、10、11と入っています?これは上書きされないのでしょうか・・
容量ばかり食ってしまうので、9と10を捨てて最新と思われる
11だけを残しておけば後はアンスコしても大丈夫でしょうか?
それとも9も10も11もそれぞれ違う役割をしているからどれか1つでも
アンスコしたら何かが起動しなくなる・使えなくなるなどということがある。
などということでも何でも良いので教えてください。お願いします。
108デフォルトの名無しさん:2007/05/03(木) 02:23:17
>>107
JDK自体に問題はない
クラスパスどこで管理してるかは君次第
109デフォルトの名無しさん:2007/05/03(木) 12:54:49
>>108
レスありがとうございます。すいません、初心者なもんで
ちょっと説明が難しいのですが。とにかく、9,10,11は
それぞれ別物ということでしょうか?そしてその9でも10でも11でも
何かのプログラムが例えば9のjavaで使用していればアンスコしたら
使えなくなるから×で最新と思われる11のjavaでも何も使用して
いなければアンスコしてもおkということでしょうか。。。
110デフォルトの名無しさん:2007/05/03(木) 13:45:36
>>109
そんな感じ。
111デフォルトの名無しさん:2007/05/03(木) 13:54:24
>>109
自分で何も設定した覚えがなければ、とっくに動いていない9・10をさっさと消すべし
112デフォルトの名無しさん:2007/05/03(木) 14:01:58
抽象クラス(というか継承)の使い方がよくわかりません。

クラスA,B,Cを含むパッケージがあります。
Aは抽象クラスです。
Aを継承したクラスB,C,Dを作成します。
B,C,Dは異なる実装ですが、同じ機能を提供します。

この場合、B,C,Dのインスタンスは外部からは何型として参照すれば良いのでしょうか。
113デフォルトの名無しさん:2007/05/03(木) 14:07:41
×クラスA,B,Cを含むパッケージがあります。
○クラスA,B,C,Dを含むパッケージがあります。

でした。すみません。
114デフォルトの名無しさん:2007/05/03(木) 14:10:17
普通は A 型の参照に入れると思うけど。
大雑把に言って、

A a;
if(hoge) {
 a = new B(foo);
} else if(hage) {
 a = new C(bar);
} else {
 a = new D(baz);
}
a.hige();

みたいなことがしたいんじゃないの?
まあ、B, C, D に拡張機能がある場合は
直接 B, C, D を使う場合もあるだろうけど。
115デフォルトの名無しさん:2007/05/03(木) 14:39:58
>>114さん
やりたいことはその通りです。
B,C,Dには拡張機能はありません。
B,C,Dは実行環境(プラットフォームでも良い)に依存したクラスです。


・クラスA,B,Cを含むパッケージがあります。
・Aは抽象クラスです。
・Aを継承したクラスB,C,Dを作成します。
・B,C,DはAの異なる実装ですが、同じ機能を提供し、それぞれに拡張機能はありません

ここに、インスタンスの生成に関して2つ条件を加えようとしています。

・B,C,Dのインスタンスは排他的にどれか一つしか生成できません。
・B,C,Dのインスタンスはいずれも、同時に一つしか生成できません。

これが上手く実現できません。。。
116デフォルトの名無しさん:2007/05/03(木) 14:46:42
>>112
>B,C,Dは異なる実装ですが、同じ機能を提供します。
ここまで分かってるなら理解してるような気がするけど、
機能が同じでも実装が違えば返ってくる値が違うってのは理解してる?
117112:2007/05/03(木) 14:54:11
>>116さん ご返答有難うございます。

>機能が同じでも実装が違えば返ってくる値が違う
Aから継承したメソッドをA型参照から呼び出しても、
それがBのインスタンスであるかCのインスタンスであるかによって、
実行される処理が変わるということでしょうか?
118112:2007/05/03(木) 14:55:19
115について、自分が考えたのは、

1.AにstaticなA型ポインタをメンバとして加える。
2.Aにstaticなインスタンス生成用のメソッドを追加する。
3.2のメソッドは1のポインタにB,C,D何れかのインスタンスを生成して参照(代入)させ、
1のポインタを返す。
4.B,C,Dのクラスまたはコンストラクタのスコープをパッケージで閉じてしまう。
5.↑によって、B,C,DのインスタンスはAのメソッドを通してA型としてしか取得できないようにする。

これってなんかおかしいでしょうか・・・。
119デフォルトの名無しさん:2007/05/03(木) 14:59:44
>>115
排他的でシングルトンなファクトリクラスを作れば良いかな。
シングルトンの管理は色々出来そうだけど
A,B,C,D,ファクトリを同じパッケージにしてB,C,Dのコンストラクタはパッケージープライベートにする。
んで、ファクトリはAのサブクラスのインスタンスを一度でも生成したか
どうかのフラグを持つ。B,C,Dのインスタンスを返すメソッド(ファクトリメソッド)内でフラグ立てる。
フラグが立ってれば以降はインスタンスを返さないか、
または生成済みインスタンスを返す。

大雑把だけどかんな感じか。
120デフォルトの名無しさん:2007/05/03(木) 15:45:19
>>117
そう。これサンプル。
ttp://www.vipper.org/vip499966.java

抽象クラスと継承については理解してるよ。
やろうとしてる事は
それとはあんまり関係ないきがする。
デザインパターンかも。

121112:2007/05/03(木) 16:11:50
>>119さん,120さん
有難うございます。
デザインパターンについて少し調べてみることにします。
122デフォルトの名無しさん:2007/05/04(金) 00:13:16
APIのメソッドのソースをEclipse上での見方を教えてください。
「ソースが見つかりませんでした。」
となるのですが・・。
どこからかDLすれば見れるようになるとかいうことでしょうか?

宜しくお願いします。
123デフォルトの名無しさん:2007/05/04(金) 00:15:27
APIソースはJDKに入ってる。
仮想マシンの設定あたりにソースzipを指定する箇所があるよ。
124デフォルトの名無しさん:2007/05/04(金) 00:18:46
構造体の2次元配列ってどうやって定義すればよいの?

こんな感じで使いたいのです。

myName[0][0].sei = "性"
myName[0][0].mei = "名"

ちなみにこんなふうにしてみましたがダメでした。

class StructName {
String sei;
String mei;
}

StructName myName[][] = new StructName[5][5];

myName[0][0].sei = "性" ← 代入しようとするとエラーになる。


125デフォルトの名無しさん:2007/05/04(金) 00:26:37
まずそれは構造体じゃない
で、最初に初期化しなきゃだめ
for〜〜
for〜〜
myName[i][j] = new StructName();

あとお前はコンストラクタでググるべきだ
126デフォルトの名無しさん:2007/05/04(金) 01:23:52
コンストラクタでググる前にjavaの教科書を頭から読み直すべきだな
127デフォルトの名無しさん:2007/05/04(金) 01:44:55
オブジェクトが存在するかどうか調べるにはどうすればいいでしょうか。
128デフォルトの名無しさん:2007/05/04(金) 05:27:42
もすこし詳しく
129デフォルトの名無しさん:2007/05/04(金) 14:19:42
int[] vec = new int[2];

このような1次元配列vecを2次元配列としてメソッドに渡したいのですが、どうしたらいいのでしょうか?
今は下のように書いているのですが、キャスト専用の変数を作るのとコードが冗長になってしまうのとが気になってしまって
もっとシンプルに書く方法ってありませんかね?

int[][] temp = new int[1][2];
temp[0] = vec;
method(temp);
130デフォルトの名無しさん:2007/05/04(金) 14:36:03
>>129
new int[][]{ vec };
131デフォルトの名無しさん:2007/05/04(金) 16:10:19
>>130
即レスありがとうございます
期待した通りに動かすことができました
132デフォルトの名無しさん:2007/05/04(金) 17:24:54
java入門したばかりで言語より考える方について質問ですが割合を出す方法を式で書くとどうなのかお尋ねします。
例えば、製品数a(1000個)の内、不良品b(200個)あると良品数c(80%)ですよね。

*a,bは決まった数字じゃありません
133デフォルトの名無しさん:2007/05/04(金) 17:29:08
それ算数の問題だからjavaとか関係ない
134デフォルトの名無しさん:2007/05/04(金) 20:03:54
C系では、メソッドやクラスの左かぎ括弧は改行するけどJavaではしないよね。慣例なの?

【C系】
public class SampClass
{
}

【Java】
public class SampClass{
}
135デフォルトの名無しさん:2007/05/04(金) 20:23:20
Javaの場合、Sunが自身のコードで使っているとされるコーディング規約が文書化
されていて、その中に
http://java.sun.com/docs/codeconv/html/CodeConventions.doc5.html#381
というものがある。実際JDKのライブラリソースはこれに則っている感じ。

もちろん外部の人間が従う義務はない。ただ、Javaの黎明期には参考になるコード
はJDKのライブラリソースくらいだったわけで、この頃から一般人もJDKのソース
の書き方を真似て、カーリーブレースの前で改行しないスタイルが定着したのだろ
うと想像する。
136デフォルトの名無しさん:2007/05/04(金) 20:24:35
>>134
Sun のコーディング規約だと後者に近いってだけじゃね?

C言語でも改行しない人は一杯いるしね。
プログラミング言語C++ とかでも switch { やら struct hoge_tag { では改行してないし。
GNUコーディング規約だと if とか while とかでは改行+インデントして括弧つけたりするし。
137デフォルトの名無しさん:2007/05/04(金) 21:08:13
これ、コピペ多用する言語なのか?
なんだかその悪寒がしてきたんだが
138デフォルトの名無しさん:2007/05/04(金) 21:10:05
>>137
なんで?
139デフォルトの名無しさん:2007/05/04(金) 22:31:55
javaでExcelを作れるが、そのExcelにVBAコードを挿入できる??
140デフォルトの名無しさん:2007/05/04(金) 22:59:48
>>136
各言語でそういう規約があるのね。
eclipseの自動生成や、書籍を見てて改行してなかったから、慣例だと思ってたよ。
まぁ俺はクラス・メソッドは改行、制御文は改行なし、でいつもやってるんだがなぁ。
ま、javaは規約に従うとするか・・・。約1行、節約になるしw
141140:2007/05/04(金) 23:00:27
>>135もサンクス。
142デフォルトの名無しさん:2007/05/04(金) 23:07:36
コンストラクタの実行に時間がかかるクラスを作ったんで、カウンタ設置してその値に応じてJProgressBarで経過を表示しようとしたんだが、コンストラクタの実行中はバーが全然更新されなくて、実行終了後に更新されてバーがMAXになる。
どうすれば・・・
143デフォルトの名無しさん:2007/05/04(金) 23:20:44
>>142
今週のJavaクイズ(6):ボタンを押すとどうなる?
http://blogs.sun.com/javaev/entry/%E4%BB%8A%E9%80%B1%E3%81%AEjava%E3%82%AF%E3%82%A4%E3%82%BA_6_%E3%83%9C%E3%82%BF%E3%83%B3%E3%82%92%E6%8A%BC%E3%81%99%E3%81%A8%E3%81%A9%E3%81%86%E3%81%AA%E3%82%8B

「Java SE 6完全攻略」
第27回 Swingでマルチスレッド - SwingWorker その1(上記の解答編っぽい)
http://itpro.nikkeibp.co.jp/article/COLUMN/20070413/268205/
144デフォルトの名無しさん:2007/05/04(金) 23:39:00
>>143
まじでサンクス!
明日早速なおしてみます。
145デフォルトの名無しさん:2007/05/05(土) 10:06:07
マルチにも回答がやってくる恋の季節
146デフォルトの名無しさん:2007/05/05(土) 14:27:24
このエラー何ですが、どうしたらなおるでしょう?

シンボルを解釈処理できません。
シンボル: メソッド equals (char)
位置 : java.lang.String の クラス
if("\t".equals(tmpStr.charAt(i))){

147デフォルトの名無しさん:2007/05/05(土) 14:30:27
>>146
> if("\t".equals(tmpStr.charAt(i))){
if("\t".equals(tmpStr.substring(i, i+1))){
148デフォルトの名無しさん:2007/05/05(土) 14:36:12
>>147
ありがとうござます。iが原因みたいですた。
149デフォルトの名無しさん:2007/05/05(土) 14:42:51
>>147
if('\t' == tmpStr.charAt(i)){

でも良かったのでは?
150デフォルトの名無しさん:2007/05/05(土) 14:49:48
別のプロセスにオブジェクトを渡したいのですが、どんな方法がありますか?
151デフォルトの名無しさん:2007/05/05(土) 15:14:19
コピペ
152デフォルトの名無しさん:2007/05/05(土) 16:47:24
>>150
java越えて共有メモリにしたいとか、そういう事?
153デフォルトの名無しさん:2007/05/05(土) 17:36:07
オブジェクトを構成する全てのパラメータを
エクスポート、インポート出来るようにして・・・ってそういう事でいいのか?
154デフォルトの名無しさん:2007/05/05(土) 18:07:51
Javaのクラスでつまずいている者です。

ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29366

このようなソースの場合、
class Employeeの、

public Employee(String n, double s)
{
name = n;
salary = s;
id = 0;
}

public String getName()
{
return name;
}
はどういった役割をしているのでしょうか?
また、
public void setId()
{
id = nextId; // set id to next available id
nextId++;
}
もどういった役割なのでしょうか?
なぜ、getとsetを設定するのかが分からず、混乱しています。
155デフォルトの名無しさん:2007/05/05(土) 18:16:17
新しく犬を飼おう
名前はポチにしよう(setName)

このわんちゃんの名前なんていうの?
ポチだよ(getName)
156デフォルトの名無しさん:2007/05/05(土) 18:19:58
何でポチって名前なの?
ポチって首輪に書いてあるから
ポチって犬小屋に書いてあるから
ポチって焼き印wが押してあるから
ポチって俺が名付けたから

何でポチかは自由。知りたいのは何故かではなく名前だけ。
157デフォルトの名無しさん:2007/05/05(土) 20:33:01
158デフォルトの名無しさん:2007/05/05(土) 21:13:24
>>154
ただの変数だと、制限がかけられない。(現実的にありえない数値が入ったりする)
そこで、セッターを作り、引数をチェックし、ありえない数字が来たら例外を発生させる。

void setHoge(int foo) {
 if () {

}
159デフォルトの名無しさん:2007/05/05(土) 21:16:41
↑途中で送信してしまった。
if で引数チェックして、例外発生させるの。
そしたら、変数が適切な値だと保障することができる。

クラスや例外ない言語の場合、
関数呼んだあと、戻り値でエラーチェックしたりするのが
めんどくせえぞ。
160デフォルトの名無しさん:2007/05/05(土) 21:36:51
オブジェクトってのは変数が賢くなったみたいなもん。
箱にボタンがついたみたいなもん。
自販機を考えてみれば、箱の中身の仕組みを知る必要はなく、
お金を入れて、ボタンさえ押せばジュースが返ってくる。

クラス(設計図)に中の仕組み書いて、
new クラス名でインスタンス(実体/オブジェクト)を作るってだけ。
クラスの外からは、中のメソッド(ボタン)の仕組みを知る必要はなく、
何が必要で、何が返ってくるかだけ知っていれば良い。
161デフォルトの名無しさん:2007/05/06(日) 00:33:02
jarファイルというのを作って実行してみたのですが、
プログラムは正しく動作するのに、画像が表示されません。

classファイルと同じディレクトリにgif画像はあるのですが、
どういった原因が考えられますか?
162デフォルトの名無しさん:2007/05/06(日) 00:35:38
>>161
正しく動作してんなら何の問題もないよね。

次の質問どーぞー
163デフォルトの名無しさん:2007/05/06(日) 00:36:13
>>161
エスパー募集キター
164161:2007/05/06(日) 01:19:20
ああ、そうですね。矛盾してますね。

パッケージに纏める前は正しく動作して画像もきちんと表示されていました。

しかしjarファイルを作った後にプログラムを実行したところ、画像は表示されないけど、
それ以外は前と同じ動作をしているように見えます。
165デフォルトの名無しさん:2007/05/06(日) 01:40:57
>>164
ClassやClassLoaderのgetResourceで画像ファイルのURLを求めてそのURLから読み込むようにしていないか
大文字と小文字の区別をつけられないファイルシステムを使っていて上手く動くような気になって
その区別をつけるjarの中の画像ファイル名を正しく指定していないか
166デフォルトの名無しさん:2007/05/06(日) 02:33:56
Javaのawtってボタンとかの配置を座標で指定できないの?
それっていくらなんでも不便じゃない
167デフォルトの名無しさん:2007/05/06(日) 02:40:42
>166おれにもおせーて
168デフォルトの名無しさん:2007/05/06(日) 02:44:43
つ ILikeTroublesomenessLayout implements LayoutManager2
169デフォルトの名無しさん:2007/05/06(日) 02:48:16
JNIを使ったクラスライブラリを書いているのですが、
ネイティブなファイルをjarに含めて動作させるにはどうしたら良いのでしょうか。

ぐぐるとBundle-NativeCodeなるものが見つかったものの
書いても何も変わらず、loadLibraryがネイティブなファイルを見つけてくれないのです。
170デフォルトの名無しさん:2007/05/06(日) 04:31:56
携帯電話向けJavaでは、
使いまわされないデータ型だけのクラス(構造体)なんかは、
メインのクラスで内部メンバとして書いたり、
ステップ数が多い処理を、メソッドを使わずインラインでガリガリ書いたりと、
独特の流儀があるようです。

以前の携帯は実行ファイルサイズ制限があって、
このような方法が主流みたいですが、
今は実行ファイルサイズの制限は緩和されたようです。

とすると、上のような携帯Java独特の、
およそJavaらしからぬコーディングスタイルには意味はあるのでしょうか?

例えば、単一のデータ構造を参照するのにインナークラスを使わずに、
呼び出し元のメンバとして参照する事で、速度的なメリットがあったりするのでしょうか?
171デフォルトの名無しさん:2007/05/06(日) 05:12:58
>>170
それはもう過去の話。心配しないで関数にしておk
172デフォルトの名無しさん:2007/05/06(日) 05:13:46
単一クラスでがんばる、とかは?
173デフォルトの名無しさん:2007/05/06(日) 07:25:37
ライブカメラ全般たとえば「東京ストリート
チャンネル」などが見れなくなってしまった
のですが、何が原因なんでしょうか。
javaを再インストールしたがダメです。
174デフォルトの名無しさん:2007/05/06(日) 10:08:54
>>166
一応、java.awt.Component#setLocation()
175デフォルトの名無しさん:2007/05/06(日) 10:12:10
>>166
つ null layout
176デフォルトの名無しさん:2007/05/06(日) 11:09:04
>>170
食らうヒープ量が全然違うので関係大あり。
177デフォルトの名無しさん:2007/05/06(日) 11:17:24
JAVAでロボット動かせるって本当ですか
178デフォルトの名無しさん:2007/05/06(日) 11:20:22
>>177
ロボットにJava仮想マシン載せれば
179デフォルトの名無しさん:2007/05/06(日) 12:26:10
ウインドウアプリケーションを作ろうと思っています。
Appletクラスの継承を用いてアプレットを起動する場合には、
htmlファイルの中に
<applet code="XXX.class" width=256 height=256>
を記入すればいいと思いますが、Frameクラスの継承を用いた場合、
同様にインターネットエクスプローラーから起動させるにはどうすればいいのでしょうか?

180デフォルトの名無しさん:2007/05/06(日) 12:27:53
>>179
Java Web Startでぐぐる
181デフォルトの名無しさん:2007/05/06(日) 12:31:51
>>174
これ使ってもうまくいかなかった。
ていうかJavaは用意されたレイアウトを組み合わせることでGUI部品を配置していく
仕組みを奨励してるのかな。面倒だよな。配置の仕方に限界がありそう。
なんで他言語のようなリソースエディタがないのだろう。
GUI部品のレイアウトをいちいち回りくどく記述するなんて古いよ
182デフォルトの名無しさん:2007/05/06(日) 13:05:13
同一環境でしか動かさないつもりなら別にいいが
そうでないなら絶対座標指定のほうがよっぽど限界があるわ。
183179:2007/05/06(日) 13:08:21
>>180
ありがとうございます。ちょっくらやってみます。
184170:2007/05/06(日) 13:09:16
>>172
>>176
速度的な面はどうなんでしょうか…?
185デフォルトの名無しさん:2007/05/06(日) 13:15:40
>>184
実測して計ってみるのがいいでしょう
186デフォルトの名無しさん:2007/05/06(日) 13:17:02
>>181
>>175は見たか?
187161:2007/05/06(日) 16:08:50
知識が乏しくて恐縮ですが
自分が使っているファイルシステム?ってのはどうやって調べられるのでしょうか。
188デフォルトの名無しさん:2007/05/06(日) 17:39:17
現在専門学校生なのですが、学校と同じ環境を作りたく設定で悩んでいます

コマンド プロンプトで、terapad ----.javaと打てばterapadが立ち上がるようにしたいのですがどうすればいいのでしょうか?
189デフォルトの名無しさん:2007/05/06(日) 17:40:16
JFrameで質問があります。
Core Javaのボールオブジェクトが跳ね返るプログラムの応用で、
JFrame内に存在するオブジェクト(この場合、四角です)をD&DでJFrame内なら
自由に移動出来るJavaプログラムを作成しているのですが、
JFrameの外(見えない部分)にも移動でき、そうした場合、オブジェクトが見えなくなるので、
強制終了する以外終了する方法がないという意味のないプログラムになってます。

どうすれば、オブジェクトをJFrame内のみ移動可能なプログラムにする事ができるのでしょうか?
190デフォルトの名無しさん:2007/05/06(日) 18:00:13
>189
どうしてボールが跳ね返る(ようにみえる)か考えてみたら?
191デフォルトの名無しさん:2007/05/06(日) 18:23:56
遠坂凛に質問です。

宝石製のバイブでオナニーすると、魔力を溜めることはできるんでしょうか?
192デフォルトの名無しさん:2007/05/06(日) 18:30:00
>>189
ズバリ解答を言うと、端に来たらD&Dでき無くすればおk
193デフォルトの名無しさん:2007/05/06(日) 18:35:55
>>188
exploreのオプション->ファイルタイプ
で.javaにそのterapadとやらを割り付ける

だけど、なんでterapadなんだ?
terapadとかcpadとか、わけわからん
194デフォルトの名無しさん:2007/05/06(日) 18:47:37
>>188
java関係ないがterapadをパスの通った場所に置けば良いじゃん。
てか、start XXX.javaじゃだめなん?
195189:2007/05/06(日) 19:25:24
>>190
Core Javaを参考にして、dx を -dxにしてみたのですが、上手くいきません。

>>192
それはどういう風に設定すればいいのでしょうか?

一応、ソースをサラしておきます。

ttp://a-draw.com/uploader/src/up22130.txt
196デフォルトの名無しさん:2007/05/06(日) 20:13:45
>195
全然無関係のところをまねしてどうする?
やるべきことはShapeに渡す値を描画エリアのサイズ内に調整すること
197189:2007/05/06(日) 20:54:32
>>196
shapeBeingDragged.moveBy(x - prevDragX, y - prevDragY);

の部分を調整すればよいのでしょうか?
198デフォルトの名無しさん:2007/05/06(日) 20:58:22
>>181
つ NetBeans
199デフォルトの名無しさん:2007/05/06(日) 21:07:42
eclipse使ってたらなんか上書きモードになっちゃった。
どうやったら治るの
200デフォルトの名無しさん:2007/05/06(日) 21:13:30
>>199
デフォルトのキーバインドなら insertキー
201デフォルトの名無しさん:2007/05/06(日) 21:17:39
>>200
インサートキーってどうやってonにしたりoffにしたりできるの?教えて
202デフォルトの名無しさん:2007/05/06(日) 21:24:07
これはひどい
203デフォルトの名無しさん:2007/05/06(日) 21:25:38
eclipseでお勧めの本おしえて
204デフォルトの名無しさん:2007/05/06(日) 21:27:24
>197
そう
元のCore Javaのソースはしらないけど
ボールが描画エリアの端にあたってはねかえるのは
端の座標を越えたら増分を反転させているから

そしてこの場合はDnDだから(つまり人間が操作しているから)
増分を反転させるのではなくそこの座標に制限する
言葉で説明するの面倒になってきたので
コードで書くとこんな感じかな

if (shapeBeingDragged == null) return;
int x = evt.getX();
int y = evt.getY();
Dimension cs = this.getSize();
int maxw = shapeBeingDragged.width - cs.width;
int maxh = shapeBeingDragged.height - cs.height;
if (x < 0) x = 0; else if (x > maxw) x = maxw;
if (y < 0) y = 0; else if (y > maxh) y = maxh;
shapeBeingDragged.moveBy(x, y);
repaint();
205デフォルトの名無しさん:2007/05/06(日) 21:45:49
>197
わるい逆だ
なれない変数名だったので混乱した
int maxw = cs.width - shapeBeingDragged.width;
int maxh = cs.height - shapeBeingDragged.height;
206189:2007/05/06(日) 21:50:16
>>205
ありがとうございます。
ソースに組み込んでみたのですが、クリックをするとはぐれメタルが逃げるかのごとく、
画面上からオブジェクトが右下に消えてしまいます。
207デフォルトの名無しさん:2007/05/06(日) 21:57:30
>206
mouseReleased()の方の実装もかえてね
mouseDragged()と1行違いだから共通部分を切り出して
別メソッド呼び出しにすればいいかな

if (shapeBeingDragged == null) return;
int x = evt.getX();
int y = evt.getY();
Dimension cs = this.getSize();
int maxw = cs.width - shapeBeingDragged.width;
int maxh = cs.height - shapeBeingDragged.height;
if (x < 0) x = 0; else if (x > maxw) x = maxw;
if (y < 0) y = 0; else if (y > maxh) y = maxh;
shapeBeingDragged.moveBy(x, y);
shapeBeingDragged = null;
repaint();
208189:2007/05/06(日) 22:07:18
>>207
こうでしょうか?

synchronized public void mouseDragged(MouseEvent evt) {
if (shapeBeingDragged == null) return;
int x = evt.getX();
int y = evt.getY();
Dimension cs = this.getSize();
int maxw = cs.width - shapeBeingDragged.width;
int maxh = cs.height - shapeBeingDragged.height;
if (x < 0) x = 0; else if (x > maxw) x = maxw;
if (y < 0) y = 0; else if (y > maxh) y = maxh;
shapeBeingDragged.moveBy(x, y);
repaint();
}

synchronized public void mouseReleased(MouseEvent evt) {
if (shapeBeingDragged == null) return;
int x = evt.getX();
int y = evt.getY();
Dimension cs = this.getSize();
int maxw = cs.width - shapeBeingDragged.width;
int maxh = cs.height - shapeBeingDragged.height;
if (x < 0) x = 0; else if (x > maxw) x = maxw;
if (y < 0) y = 0; else if (y > maxh) y = maxh;
shapeBeingDragged.moveBy(x, y);
shapeBeingDragged = null;
repaint();
}
ttp://a-draw.com/uploader/src/up22134.txt
209デフォルトの名無しさん:2007/05/06(日) 22:14:49
>208
いいんじゃないかな
逃げ去るってことはその他にタイマー処理が行われているって
可能性が考えられるけど元のソースのボールの処理が残ってない?
210189:2007/05/06(日) 22:39:11
>>209
タイマー処理は行われていません。
211デフォルトの名無しさん:2007/05/06(日) 23:10:12
>210
moveBy()で加算しているようだから以下のように書き換えてみて

left = dx;
top = dy;
212デフォルトの名無しさん:2007/05/07(月) 12:40:08
二つのクラスがあったとして
Class1のテキストフィールドにClass2のメソッドの処理結果を表示させたいんですがどのような方法が
ありますか??メソッドは引数をもたないものとして
213デフォルトの名無しさん:2007/05/07(月) 12:45:05
SocketChannelでreadで-1が帰ってくる以外に正常切断を判断する方法はありますか。
FINで終わったのかどうかが知りたいです。
214213:2007/05/07(月) 12:47:44
Class1のインスタンスをClass2に事前に持たさせておいて
Class2のメソッドの処理結果がでたタイミングで
Class2で保持しているClass1のインスタンスのテキストフィールドに表示させる
215デフォルトの名無しさん:2007/05/07(月) 14:25:23
>>214
ありがとうです

class2{
class1 cls=new class1
処理
cls.text.setText(処理結果);}

このようにやってみたんですが表示してくれません・・・
エラーはないんですがどこが間違ってますか><?
216デフォルトの名無しさん:2007/05/07(月) 14:41:05
>>215
class1でのテキストフィールドのsetTextはちゃんと働いてるの?
217デフォルトの名無しさん:2007/05/07(月) 14:41:55
>>213
> readで-1が帰ってくる以外に正常切断を判断する方法
むしろ、こっちから close() してみる。
たぶん、相手はFINフラグを受け取るはず。

マジレスすると、仕様に書いてないなら無理だと判断すべき。
218213:2007/05/07(月) 15:08:55
>>217
>>マジレスすると、仕様に書いてないなら無理だと判断すべき。
レスありがとう。Javadocにはかいてないんですよ。
FINフラグを受け取ってのread=-1なのか、その他の問題でのread=-1なのかを判断したいだけなのですが、
方法がさっぱしです。
219213:2007/05/07(月) 15:14:18
>>215
class Class2 {
private Class1 target;
public void setNotifyTarget(Class1 target) {
this.target = target;
}
public void Kekkadasu() {
nankaNoSyori();
target.text.setText("処理終わり");
}
}
public static void main(String[] args) {
Class1 cls1 = new Class1();
Class2 cls2 = new Class2();
cls1.text.setText("処理前");
cls2.setNotifyTarget(cls1);
cls2.Kekkadasu();
}

みたいなかんじではどうでしょうか。
220デフォルトの名無しさん:2007/05/07(月) 15:38:45
質問なのですが

interfaceを利用してclassを作成しています
作成したclassを利用する際、設定ファイルやDBから読み込んだ文字列を利用して
動的にnewする対象を指定したいのですがやり方がわからないので教えてください

http://www.wikiroom.com/java/index.php?FAQ#content_1_4
のclassを例にすると、
Performableインターフェイスを利用したEntertainerクラスとAthleteクラスが存在するときに
設定ファイルに
Entertainer
と書かれていたら
Performable test = new Entertainer();
が実行され、
Athlete
と書かれていたら
Performable test = new Athlete();
が実行されるようにしたいです
例だとclassが2つのためifで判断したらよいのですが
実際には不定な1個以上の複数classが同一のインターフェイスで定義され
それらのどれを利用するかをDBのマスタテーブルからclass名を読み込んで、その読み込んだ文字列にてnewを行いたいのです
また、classは不定期に追加され、利用される可能性があります

こういった実装は出来ないのでしょうか
もしくは、実装できる場合、どのように文字列のclass名を指定したらよいのでしょうか
よろしくおねがいします
221デフォルトの名無しさん:2007/05/07(月) 16:03:23
>>220
Classクラスを使えばいいんじゃね?
forName() と newInstance() あたり。

   String str;
   Performable perf;

    /* このへんに設定ファイルから
      クラス名を読み出して str に
      代入する処理があるとする。
     */

    try {
       Class c = Class.forName(str);
       perf = c.newInstance()
    } catch (Exception e) {
      // 例外処理
    }

だいたいの流れはこんな感じで。
222デフォルトの名無しさん:2007/05/07(月) 16:07:10
>>220

java.lang.Class.forName(String className)#newInstance()
223デフォルトの名無しさん:2007/05/07(月) 16:15:30
>>213
できました!!
どうやら単純なミスをしていたようです^^;

いろいろ参考になりました
ありがとうございますm(__)m
224デフォルトの名無しさん:2007/05/07(月) 16:49:50
質問でs!

a,b,cというlistと配列に入ってる"a","b","c"の文字列を比較したいのですが
どうしたらいいでしょうか??
225デフォルトの名無しさん:2007/05/07(月) 17:06:34
> a,b,cというlistと配列に入ってる"a","b","c"の文字列を比較したいのですが
解釈の仕方が複数あって、
具体的に何がどーなってるのか良く分からん。
226224:2007/05/07(月) 17:30:16
たしかにわかりにくいです!すいません

a,b,cという項目があって最初は選ばれていない状態ですよね。
で配列にはこのようにはいっていて
配列1 配列2
Aサン a
Bサン b
Cサン a
Dサン c

配列Bを指定したらlist項目のbを選択させるといった感じです
227224:2007/05/07(月) 17:32:46
間違えました
配列1のBを指定したらですね
228デフォルトの名無しさん:2007/05/07(月) 17:34:21
で、お前は何がわからんのだ
229224:2007/05/07(月) 17:42:22
項目を選択させるにはselectしかないかどうかってことです

selectだとintしか指定できないから分岐させるしかないのかと・・・
230デフォルトの名無しさん:2007/05/07(月) 17:44:54
>>229
java.awt.List の話でしょ?
なら、項目選択するにはユーザが操作するか select(int) するしかない。
231224:2007/05/07(月) 17:48:53
わかりました

ありがとうございます!
232デフォルトの名無しさん:2007/05/07(月) 17:54:40
国際化対応の場合に、UTF-8が多く採用されるのはなぜですか?
JavaがUTF-8を採用しているからか、ASCII文字との親和性が高いからかな。
 →どのようなメリットがあるかわかっていないですが…

Java=ユニコード=ALL2バイトと思ってたけど、違うんですね…
UTF-8は、レスポンス悪いとかあります?
233デフォルトの名無しさん:2007/05/07(月) 18:08:58
>>221
>>222
確かにそれでOKです
大変勉強になりました
ありがとうございました
234デフォルトの名無しさん:2007/05/07(月) 18:15:51
>>232
> 国際化対応の場合に、UTF-8が多く採用されるのはなぜですか?
国際化対応で Shift_JIS とか EUC-JP は使えないでしょ。
ISO-2022でも ある程度国際化できるけど、実装面倒くさいし。

> Java=ユニコード=ALL2バイトと思ってたけど、違うんですね…
= をどーゆー関係のつもりで書いてるのか分からんので、なんとも言えない。

> UTF-8は、レスポンス悪いとかあります?
場合による。1ギガバイトとかの馬鹿でかいテキスト読んだらレスポンス悪くなるだろうし。
235デフォルトの名無しさん:2007/05/07(月) 18:56:09
>UTF-8が多く採用されるのはなぜですか?
1バイトで足りる連中がUnicode実装するとき楽だから。
PL関係なく実装者の都合でしかない。
236デフォルトの名無しさん:2007/05/07(月) 20:09:21
エンディアンが存在しないとか、
ASCIIと互換性があるとか、
バイト指向だとか、
CCSがUCS4だとか、
結構便利なエンコーディングじゃん。
237デフォルトの名無しさん:2007/05/07(月) 20:41:32
Java初めて20日です。
応用問題を解いているのですが、

各サイト、APIみても、
これを使うとか構造とかがでてこないもの
がでてきました。

こういう場合はどうしたら
良いのでしょうか。

また 何を使うとかの
ひらめきはどうしたら
みにつくのでしょうか?

238デフォルトの名無しさん:2007/05/07(月) 20:46:56
> ひらめきはどうしたら
ロマサガで特訓してこい。
239デフォルトの名無しさん:2007/05/07(月) 21:21:53
String strに何か文字が入っているとします。
この中に入っている文字が整数かどうか調べるにはどういう風にすればいいでしょうか?
240デフォルトの名無しさん:2007/05/07(月) 21:25:01
>>239
一文字だけ調べるなら Character.isDigit(str.charAt(0))
241デフォルトの名無しさん:2007/05/07(月) 21:30:50
一文字ではなく文字列を調べる場合は他に方法ありますか?
このCharacter.isDigit(str.charAt(0))をforとかで文字数文まわすとかしかないでしょうか?
242デフォルトの名無しさん:2007/05/07(月) 21:36:06
parseIntでうまくいくかどうか調べる
243デフォルトの名無しさん:2007/05/07(月) 21:42:05
正規表現
-?[0-9]+
とか
244デフォルトの名無しさん:2007/05/07(月) 21:48:53
なんか
 isDigitsメソッドは指定された文字列が数字だけを含むかどうかを返します。例えばNumberUtils.isDigits("123")はtrueを返します。
http://www.atmarkit.co.jp/fjava/rensai2/jakarta08/jakarta08.html
とか書いてるんですけど、これって何か拡張しないとだめなんですよね・・・
245デフォルトの名無しさん:2007/05/07(月) 22:45:01
JAVAの入門書に載ってる最初のコードを実行したら、
X11のライブラリがねえとか言って怒られたよ。
本を見たらwin用の本だった。
JAVAってそういうのは吸収してくれないのな。
なんでもいいからウィンドウ出せやボケと思いました
246デフォルトの名無しさん:2007/05/07(月) 22:46:42
>>230
> java.awt.List の話でしょ?

エスパーすげー
247デフォルトの名無しさん:2007/05/07(月) 22:57:23
Linuxか?

Javaの、そういう差を吸収する部分(AWT)がX11を必要としているのよ。
248デフォルトの名無しさん:2007/05/07(月) 23:00:29
>>245
この辺見て、デスクトップマネージャが入ってるか確認して。
http://java.sun.com/javase/ja/6/webnotes/install/system-configurations.html
よほどの野良ディストリ使ってるとかでない限りは、Gnomeが標準になってると思うけど。
249デフォルトの名無しさん:2007/05/07(月) 23:37:33
>>236
エンディアンはないがBOM忘れてる奴が多いがな。
250デフォルトの名無しさん:2007/05/08(火) 00:06:19
エンディアン無関係だからこそBOMは本来不要だし
251デフォルトの名無しさん:2007/05/08(火) 00:07:45
サイトに埋め込まれてるjavaアプレットのソースを知りたくそのページのソースを調べて、
「ファイル名」.classのファイルをDLしたのですが、eclipseやテキストで開くと(拡張子を.javaにしたりして)
、文字化けしていて読むことができません。
このような.classファイルは読むことができますか?
252デフォルトの名無しさん:2007/05/08(火) 00:09:56
>>236
日本語は大抵3バイトになるのが鬱陶しいけどな。
253デフォルトの名無しさん:2007/05/08(火) 00:21:12
>>251
バイナリエディタ。
つーかなんでバイトコードにソースが含まれてんだと小一時間・・・。
素直にお帰りください。
254デフォルトの名無しさん:2007/05/08(火) 00:26:11
バイナリエディタがアンリエッタに見えた俺はアニオタ
255デフォルトの名無しさん:2007/05/08(火) 00:26:43
>250
http://unicode.org/faq/utf_bom.html#29
An initial BOM is only used as a signature ―
an indication that an otherwise unmarked text file is in UTF-8.
256251:2007/05/08(火) 00:31:40
>>253
理解し損ねてました
.classファイルを.javaに変換できる方法はありますか?
257デフォルトの名無しさん:2007/05/08(火) 00:33:43
258デフォルトの名無しさん:2007/05/08(火) 00:58:49
>>255
だから?
UTF-8のBOMはエンコーディングの認識精度を上げるくらいしか役にたたないし、
在ることで困ることの方が無くて困ることより多いと思うが。
UTF-8 must contain a BOM.じゃなくてUTF-8 can contain a BOM.て書いてあるじゃないか。
だから、BOM付きを邪険にはしないけど、自分からわざわざ付けたりはしたくないな。
259デフォルトの名無しさん:2007/05/08(火) 03:00:17
>>256
javap
ディスアセンブラとかデコンパイラでググれ
空気読めるようになろうね。
260デフォルトの名無しさん:2007/05/08(火) 04:19:20
GridBagLayoutがまんどくさすぎる
このくらい自由が利いてもっと楽なのあれば教えて☆
261デフォルトの名無しさん:2007/05/08(火) 04:39:21
SpringLayoutとかは?
それか自由が利いてもっと楽なのを自作する
262260:2007/05/08(火) 05:14:33
>>261
ありがとう
検討してみる
263デフォルトの名無しさん:2007/05/08(火) 05:40:55
>>261
>SpringLayout
へーこんなレイアウトマネージャがあったんだ
これって機能的にNeXTとかMac OS Xのレイアウト機能とほぼ同じだね
直書きするのはめんどそうだけどSunがツールを用意してるのか
今度使ってみよう

https://bean-builder.dev.java.net/
264デフォルトの名無しさん:2007/05/08(火) 06:19:25
GroupLayoutってのもよさげ
いろいろあんだね
もうGridBagLayout使うのやめよう
265デフォルトの名無しさん:2007/05/08(火) 06:29:07
NeXTStepもOSXも同じAPIですぜ
266デフォルトの名無しさん:2007/05/08(火) 07:54:18
Javaに限ったことではありませんが、配列番号ってどうして0から始まるんでしょう。
1からのほうが色々すんなり行くと思うのです。
267デフォルトの名無しさん:2007/05/08(火) 07:56:51
>>266
色々すんなりって例えば?
268デフォルトの名無しさん:2007/05/08(火) 07:57:14
一長一短だが、大体において 0 の方が便利。
なにかと計算量を減らせる。
269デフォルトの名無しさん:2007/05/08(火) 08:40:45
>>267
一つ目の要素: array[0] より
一つ目の要素: array[1] のほうが分かりやすく自然だと思うんです。

もしあなたがそう思わないなら、それはプログラマーとしての観点を既に持っているからでしょう。

x番目の要素の添え字はx-1ですが、これがx-372だったとしたら
三番目の要素の添え字は、え〜っといくつだ?ってことになりますよね。

>>268
なるほど、確かにそうです。
納得しました。
270デフォルトの名無しさん:2007/05/08(火) 09:12:46
>>269
量的にではなく指標だから0からは当然だとおもうよ。
定規が1から始まるのが自然だとは思わない。
271デフォルトの名無しさん:2007/05/08(火) 09:20:39
http://swfup.info/view.php/6857.swf
↑このフラッシュを見てくれ
もし、参加したくなったら
日本奇跡の逆転劇!! スロベニアを抜き単独4位へ
http://wwwww.2ch.net/test/read.cgi/news4vip/1178574359/

歴史的瞬間にぜひご参加を!!!
どこから誘導されたかも書き込んでねー
272デフォルトの名無しさん:2007/05/08(火) 10:37:37
初心者です
textfieldに"java"と入ってたとして、それに対して指定した数だけ"*"を追加したいんですが
どうしたよいでしょう?
指定した数が3なら"java***"といった感じです。
値は変数にはいってます。
273デフォルトの名無しさん:2007/05/08(火) 10:44:54
+
274デフォルトの名無しさん:2007/05/08(火) 11:27:08
>>273
何文字か指定するにはどうしたらいいですか?
275デフォルトの名無しさん:2007/05/08(火) 11:56:41
>>274
一昨日Java始めたばかりのオレが答えてみよう。

public static void main(String[] args) {
String hoge = "java";
String fuga = "*";
int piyo = 3;
for(int i = 1; i <= piyo; i++){
hoge += fuga;
}
System.out.println(hoge);
}
276デフォルトの名無しさん:2007/05/08(火) 11:57:45
サンクス!
やっぱ繰り返すしかないのかな・・・
277デフォルトの名無しさん:2007/05/08(火) 12:02:39
>>276
>指定した数だけ"*"を追加
って時点で繰り返しは必須だと思うんだけど。

繰り返しで何か都合悪いことでもあるのか?
278デフォルトの名無しさん:2007/05/08(火) 14:30:20
>>266
数学の話だが中学校のころ数学教師が教えてくれた。

人間てのは非数を見つけてしまったから数字の0は無を表す
数字ではなく、負数を除いて起点となる数字らしい。
何もないわけではなく「0」という数字が存在している。
だから数学的に数字は0から始まる0起算らしい。
279278:2007/05/08(火) 15:06:44
そういえば、数字ってのは+か-方向に無限に伸びていくけど0はそのどちらでもない±0という状態で・・・と続き
最終的にメタ数学の話になったから気にしない方が良いよ。

特に0と配列と演算記号の関係なんて。
280デフォルトの名無しさん:2007/05/08(火) 15:12:02
>>266
>>269
Javaに限ったことではありませんってFORTRANプログラマの観点の立場は…
281デフォルトの名無しさん:2007/05/08(火) 15:23:45
>>276
どうしてもというのなら繰り返し追加するものが文字列でなく文字限定だが、
public static void main(String[] args) {
String s = "java";
char c = '*';
int n = 300;
char[] cs = new char[n];
java.util.Arrays.fill(cs, c);
System.out.println(s + String.valueOf(cs));
}
みたいに繰り返し文を自分では書かない方法があることにはある。
あと、繰り返しでStringに追加する場合は、
StringBufferかStringBuilderを明示的に使った方がいいかもしれない。
追加するものが3個程度なら大して違いはないと思うけど、大量に追加するなら。
282デフォルトの名無しさん:2007/05/08(火) 15:30:50
>>280
FORTRAN はウンコだから。
まあ、0 オリジンにしようと思えばできるけど。
283デフォルトの名無しさん:2007/05/08(火) 15:40:07
>>266
配列を配列の配列のように扱いたい場合、
0 から始まった方が便利。

インデックス i, j が与えられた場合、
0 から始まる場合は i * SIZE + j だけでいいけど、
1 から始まる場合は (i - 1) * SIZE + j と、-1 が必要になる。

とか何とか、色々と 0 から始まった方が計算量が少ない事が多い。
一部逆もあるんだけどね。

0 から始まるというイメージは、C をやった方が分かりやすいと思う。
C だと「始点 + インデックス」の位置にある値を参照するという処理になってるから、
1 から始まると始点がムダになる。
始点をズラすと、始点の値を使いたい時にまたズラさないといけない。

他の言語も、このあたりのイメージを受け継いでるんじゃないかな。
284デフォルトの名無しさん:2007/05/08(火) 16:36:02
>>269
1番目から始まる自然な序数を選択するよりも、
計算量の減少等の効率を重視して選択した結果なんで、
そういうものだと思って慣れるしかない。
0から始まる場合のインデックスは序数と考えずに、
>>283が言うように始点からのオフセットと考えればいい。
285デフォルトの名無しさん:2007/05/08(火) 16:53:18
リスナーって1つのクラスに1つまで??
286デフォルトの名無しさん:2007/05/08(火) 16:58:15
>>285
なぜそう思うのかを知りたいもんだなw
287デフォルトの名無しさん:2007/05/08(火) 17:02:10
でへ^−^

どんな風にかけばよろしいのかと
288デフォルトの名無しさん:2007/05/08(火) 17:04:56
>>285
質問がインスタンスにリスナーをadd〜Listenerで登録するって意味ならたいてい複数のリスナーを追加できる。
もしset〜Listenerとかのメソッドなら一つしか設定できないかもしれない。
そのクラスのドキュメントを見れ。
289287:2007/05/08(火) 17:13:24
わかりました!!
で、itemlistenerってクリックされたときのみですか、、、?
selectでindex指定しても動いてくれないんですが、、、
290デフォルトの名無しさん:2007/05/08(火) 17:19:35
>>289
だからドキュメントを見ろと言ってるだろ。
java.awt.ListとかChoiceの話か?
ちゃんとselectのところを読め。
> ItemEvent をトリガする唯一の方法はユーザの操作です。
291デフォルトの名無しさん:2007/05/08(火) 17:22:28
addItemListenerの説明にも書いてるね
292デフォルトの名無しさん:2007/05/08(火) 18:57:16
スレッドに関してですが、テスト環境がないので質問させてください。
スレッドプールというものは実行のたびに空いてるCPUコアを探してくれたりするんでしょうか?
それともスレッドが生成された時点でどのコアに所属するか決定してしまうのでしょうか?
293デフォルトの名無しさん:2007/05/08(火) 20:10:01
最近javaを勉強し始めました。
www.stackasterisk.jp/tech/java/javaPractice06_06.jsp#2_4
上記のサイトの通りにjspでカレンダーを作成する、というプログラムを書いていたのですが、
このサイトにあるDayTypeConstクラスの意味がよくわかりません。
この定数を変えると土曜日曜の色が変になってしまうのですが、どうしてそうなるのかがよくわかりません。
ご教授お願いします。
294デフォルトの名無しさん:2007/05/08(火) 21:19:16
pattern = Pattern.compile("ほげほげ");

文字列が入ったString変数をmatcher.matches()で判定したいのです。
そこで数値(1〜9)以外の文字が入っていた場合trueとなるようにするには("ほげほげ")の部分に何と入れればいいでしょう?
ためしに
String str = "あ457"

pattern = Pattern.compile("[^0-9]");
でやったらfalseでした。

しかしString str = "あ"

pattern = Pattern.compile("[^0-9]");
でやったらtrueでした。


295デフォルトの名無しさん:2007/05/08(火) 21:26:02
↑事故解決しました。
296デフォルトの名無しさん:2007/05/08(火) 21:45:18

       FOX★公認!!!

俺たちのクリックで日本を一位にしようぜ!!
“30年は日本に手は出せないな”という勝ち方をしたい
http://wwwww.2ch.net/test/read.cgi/news4vip/1178602852/

1. ポーランド  139,797,680
2. チリ     137,040,439
3. ★日本    86,475,213★
4. イスラエル  80,930,530
5. スロベニア  57,137,042
6. フィンランド  40,857,499

石を投げる戦争から人は進化・進歩を遂げ、剣や槍などの武器をもって戦うようになった
人間はさらに発展し兵器を使う戦争を始めた
そして今、指先一つを武器とした電脳戦争が勃発したのであった・・・
皇国を勝利へと導くには貴様らの参戦が不可欠である

・戦場
http://www.clickclickclick.com/default.asp
・まとめサイト
http://www33.atwiki.jp/clickvip/
297デフォルトの名無しさん:2007/05/08(火) 21:59:50
コピペ君って馬鹿だな、まで読んだ。
298デフォルトの名無しさん:2007/05/08(火) 22:00:27
これからJavaを学ぶ人にアプレットを勧めるのは無駄?
Javaで動くのがやりたいそうなんだけど・・・
299デフォルトの名無しさん:2007/05/08(火) 22:08:12
>>298
俺はやったが無駄ではなかった。

つっても本のサンプル見る程度じゃ無駄だと思うがな。
言語に限らず、自分で色々やりたいことやっていじりまくらないと身につかんと思うよ。

C言語のWIN32APIも少しやってるけどドット・座標の考え方とか関数とか似てるから
何も知らずにC言語始めるよりは確実に楽に覚えられてる。
300デフォルトの名無しさん:2007/05/08(火) 22:18:58
>>272 亀レス ↓のような方法もあるよ。
String[] tbl = {"*******","******","*****","****","***","**","*",""};
String word = "java";
System.out.println(word + tbl[word.length()]);
301デフォルトの名無しさん:2007/05/08(火) 22:24:37
http://www.uploda.org/uporg802511.xls.html
この問題が宿題で出たんだけど先週授業休んじゃって今日からすることに。。
しかも期限は明後日。
だけどここまだよく理解してなくて、、やばい!
誰か助けてください!お願いします><;;
302デフォルトの名無しさん:2007/05/08(火) 22:26:23
.xlsって段階で見る気がしない
303デフォルトの名無しさん:2007/05/08(火) 22:26:23
http://www.uploda.org/uporg802511.xls.html
この問題が宿題で出たんだけど先週授業休んじゃって今日からすることに。。
しかも期限は明後日。
だけどここまだよく理解してなくて、、やばい!
誰か助けてください!お願いします><;;
304デフォルトの名無しさん:2007/05/08(火) 22:27:05
あれ?2回も。。すんません。。
305デフォルトの名無しさん:2007/05/08(火) 22:39:31
いい忘れましたが問題は英語で書いてあります。。
306デフォルトの名無しさん:2007/05/08(火) 22:41:23
うっさいだまれ
307デフォルトの名無しさん:2007/05/08(火) 22:41:53
先週って連休じゃん
308デフォルトの名無しさん:2007/05/08(火) 22:44:48
>>307
いえ、海外にいるんで連休ではなかったです。
309デフォルトの名無しさん:2007/05/08(火) 23:00:53
お二方、コメントいただいてありがとうございました。

>247
なるほど・・・

FreeBSDを使っています。
そこで「文系のためのjava入門」というwin向けに書かれた
コードを実行しようとしています。
helloって書かれたウィンドウを出して終わるプログラムです。

今日、本屋に行ってみたのですが、
X11環境かつjava入門みたいな本が無かったので
前向きにX11でも動くようにいろいろ調べてみようと思います。

>248
FreeBSDでJDKやX11環境は整っていますので、
たぶん、win用のコードをX11でも動かせるように変更しなきゃいけない
と思っています。
いろいろ調べつつやっていこうと思います。
310デフォルトの名無しさん:2007/05/08(火) 23:04:57
質問です。

class A{
 int x;
}

A a = new A();
A b = new A();

とせずに、a,bを配列とかでまとめられないでしょうか。
311デフォルトの名無しさん:2007/05/08(火) 23:13:37
A[] a = new A[2];
a[0] = new
312デフォルトの名無しさん:2007/05/08(火) 23:40:25
>>298
日本に限って言えば無駄ではないと思う。
けど、今時アプレットなんて国内でもエロブラウザゲーしか見ない。
入門本はコマンドラインすら使えない人を考慮してる。

JWSおすすめ。

>>303
せめてテキストエディタで見れるようにしてから宿題スレ行こうね。
313デフォルトの名無しさん:2007/05/08(火) 23:46:54
>>311
ありがとうございました。
2行目が思いつきませんでした。
314デフォルトの名無しさん:2007/05/08(火) 23:52:09
ボタンの配置にご助言お願い出来ますか?
http://up.spawn.jp/file/up19856.txt
※EUC-JPで保存されてます

下の方を左右分割してパネルでボタンを配置しようかなと思ってます。
しかしながらGridLayoutとかだとパネル全体をボタンが埋め尽くしてしまいます。
で、それはやめといてsetBoundsで座標指定しようかなと思うのですが上手くいきませぬ。
パネルとレイアウトをコメント化して
  upBtn.setBounds(10,10,100,50);
  downBtn.setBounds(20,20,100,50);
  ・・・
だけでコンパイルしたのですがボタンが表示されませんでした。
JSplitPaneは消すしか無いのでしょうか?
315デフォルトの名無しさん:2007/05/08(火) 23:59:53
>>299 312
なるほどなー。
JWSも考えたんだけど、選択肢としてもう1度検討してみるわ、thx
316デフォルトの名無しさん:2007/05/09(水) 00:17:28
>>314
中身を検討せずにぱっと見ただけなので見当外れかもしれんが、
setBoundsで直接指定したいのならFlowLayoutなんて使っちゃダメじゃないか?
setLayout(null)しないと。
317314:2007/05/09(水) 00:28:02
なんと!レイアウトにnullが設定出来るとは思っても見ませんでした。
レイアウトをコメント化しても上手く行かなかったのですが、こういうことだったのですね。
大変役に立ちました。ありがとうございました!
318デフォルトの名無しさん:2007/05/09(水) 00:32:29
>>315
JWSってJavaWebStartか?
ならAWT/Swingなんだからアプレットと部品一緒。
どっちか覚えたらどっちもできるよ。
319デフォルトの名無しさん:2007/05/09(水) 00:43:45
検索してもよくわからなかったのでここで聞いてみます

関数をつくるときにPascalで云う参照渡しCで云うポインタってどうするのでしょう?

Cでは

int hoge(int *a, int *b){
*a = 123;
*b = 456;
return 789;
}

int x, y;
int result = hoge(&x, &y);

みたいなことを
Javaでは

int hoge(int[] a, int[] b){
a[0] = 123;
b[0] = 456;
return 789;
}

int x[1],y[1];
int result = hoge(x, y);

みたいに書くしかないのでしょうか?
320デフォルトの名無しさん:2007/05/09(水) 00:50:29
>>319
基本形=値渡し
参照型=参照渡し

基本形をラップするクラスが用意されてる(Integerなど)
しかしそんな意味不明な関数やめなさい。
その程度だったら参照渡しよりも戻り値のほうが可読性高い。
321デフォルトの名無しさん:2007/05/09(水) 00:51:28
Cじゃないから
int x[1],y[1];
はコンパイルを通らない。
int[] x = new int[1], y = new int[1];
322デフォルトの名無しさん:2007/05/09(水) 00:53:38
値を2つ返すから戻り値じゃ・・・ってことじゃないのか?
323デフォルトの名無しさん:2007/05/09(水) 00:57:09
class result{
int a,b;
}

int hoge(result r){
r.a = 123;
r.b = 456;
return 789;
}

result r;
int result = hoge(r);

かなぁ
324デフォルトの名無しさん:2007/05/09(水) 00:58:26
>>323
はいはい ぬるぽぬるぽ
フィールドpublicにするな
325デフォルトの名無しさん:2007/05/09(水) 00:59:33
それ呼び出し側で r.a r.b 書き換わるの?
326デフォルトの名無しさん:2007/05/09(水) 00:59:59
>>292
VM の実装依存じゃね?
327デフォルトの名無しさん:2007/05/09(水) 01:00:46
Integerはimmutableだからこの場合役に立たない
Integerかintをラップするmutableなクラスを作ってその参照を渡さないと
>>319が具体例なのかどうか分からないので何ともいえないけど
それならint[] hoge() {return new int[]{789, 123, 456};}とかの方が(どっちもどっち)
328デフォルトの名無しさん:2007/05/09(水) 01:01:55
呼び出し側で書き換えてもらうって考えはオブジェクト指向的じゃない。
自分(インスタンス)の値は自分(インスタンス)が管理する。
外部に公開するのはメソッド。
329デフォルトの名無しさん:2007/05/09(水) 01:03:59
class Result {
final int a;
final int b;
final int result;
Result(int a, int b, int result) { (略) }
}

Result hoge() { return new Result(123, 456, 789) }
330デフォルトの名無しさん:2007/05/09(水) 01:04:23
>>320
回答ありがとうございます
すみません最初の例が良くなかったかもしれません

オブジェクトを複数作ってもらう関数で作業結果をintで返すみたいな仕様です

class A{
}

class B{
}

int hoge(A a, B b){
a = new A();
b = new B();
return 0;
}

呼び出し側

A a;
B b;
int result = hoge(&a, &b);

みたいなことがしたいのです

331デフォルトの名無しさん:2007/05/09(水) 01:06:18
別にjavaでプログラミング=オブジェクト指向的プログラミングじゃないし敢えて茨の道を
そして死亡
332デフォルトの名無しさん:2007/05/09(水) 01:08:40
A a = new A();
B b = new B();

じゃ、いけないのか?
失敗したら例外出すか、結果を知らせるメソッド持たせば。
333デフォルトの名無しさん:2007/05/09(水) 01:11:52
インスタンスを作るメソッドなら作られたインスタンスこそ返すべきもののような気がする。
作業結果は返されたインスタンス自身が知っているだろうし、
結果によってはnullを返されたり例外を投げられたりしてもいいかもしれない。
そして関連性の無い二つのインスタンスを同時に返したりするのは設計そのものの再検討の余地あり。
334デフォルトの名無しさん:2007/05/09(水) 01:13:30
>>331
ご指摘ありがとうございます
確かにそのおかしさを感じてたんです
むしろJava(というかオブジェクト指向)的に
望ましい書き方とかあるならそれでも結構です

やっぱり
class Wrapper{
A a;
B b;
}

Wrapper hoge(){
Wrapper r = new Wrapper();
r.a = new A();
r.b = new B();
return r;
}
(失敗は例外)

みたいにしたほうが良いのでしょうか?

他にも回答くださったかたありがとうございます
もう少し考えて見ます
335デフォルトの名無しさん:2007/05/09(水) 01:17:24
Wrapper hoge()はWrapperのコンストラクタじゃいかんの?
336デフォルトの名無しさん:2007/05/09(水) 01:20:43
オブジェクト指向は処理中心に考えるものじゃないから
目的がわからなければアドバイスしようがない
337デフォルトの名無しさん:2007/05/09(水) 01:23:23
class Hoge {
final A a;
final B b;

Hoge() throws CannotCreateException {
a = new A();
b = new B();
}
338デフォルトの名無しさん:2007/05/09(水) 01:23:59
>>320
> 参照型=参照渡し
ウソを書くな、ウソを。
339デフォルトの名無しさん:2007/05/09(水) 01:24:32
>>336
おかげさまで自分が間違った方向に行こうとしてたのを食い止めることは出来たみたいです
目的はあるのですがこのまま鸚鵡返しで質問繰り返すのもどうかと思いますので
まず設計を見直してもう少し煮詰まってまた分からなくなったら聞きに来たいと思います
色々ありがとうございました
340デフォルトの名無しさん:2007/05/09(水) 01:25:45
>>318
APIレベルの話をしているわけではなくてだな・・・
341デフォルトの名無しさん:2007/05/09(水) 01:26:24
class Hoge {
 final A a;
 final B b;
 Hoge() {
  a = new A();
  b = new B();
 }
}
AとBに関連性がなかったら相当気持ち悪いクラスだが。
342デフォルトの名無しさん:2007/05/09(水) 04:01:17
このコードを実行すると下のように計算にずれが出てくるんですがどうしてですか。
解決法を教えてください。

class DoubleTest {
public static void main(String[] args) {
double hoge;
for(hoge = 0; hoge < 1; hoge += 0.1) {
System.out.println(String.valueOf(hoge));
}
}
}

0.0
0.1
0.2
0.30000000000000004
0.4
0.5
0.6
0.7
0.7999999999999999
0.8999999999999999
0.9999999999999999
343342:2007/05/09(水) 04:03:40
環境を載せ忘れました。

java version "1.6.0_01"
Java(TM) SE Runtime Environment (build 1.6.0_01-b06)
Java HotSpot(TM) Client VM (build 1.6.0_01-b06, mixed mode, sharing)
344デフォルトの名無しさん:2007/05/09(水) 04:14:17
>>342-343
    _,,,,._                  、-r
   ,.','" ̄`,ゝ _,,,_   _,,,_   _,,,,__,. | |  _,,,,,_
  { {   ,___ ,'r⌒!゙! ,'r⌒!゙! ,.'r⌒!.!"| l ,.'r_,,.>〉
  ゝヽ、 ~]| ゞ_,.'ノ ゞ_,.'ノ ゞ__,.'ノ | l {,ヽ、__,.
   `ー-‐'"   ~    ~  〃 `゙,ヽ ̄` `゙'''"
                 ゙=、_,.〃

     _____________
    |2進数 小数 丸め誤差     |
      ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    [Google検索] [I'm Feeling Lucky!]


http://javafaq.jp/S029.html
345デフォルトの名無しさん:2007/05/09(水) 04:28:49
なんというやさしさ
346342:2007/05/09(水) 04:34:21
>>344
ありがとうございました。
347デフォルトの名無しさん:2007/05/09(水) 11:37:59
アクションイベントによってパネルの色を変えたいんだけどどうしたらいい??
フレームの色は変えられるけどパネルができましぇん
348デフォルトの名無しさん:2007/05/09(水) 12:48:40
public void setForeground(Color c)
349デフォルトの名無しさん:2007/05/09(水) 14:32:13
Frameを継承したクラスで、ウインドウアプリケーションを作っています。
コマンドプロンプトから、hogehoge.javaをjavacコマンドでコンパイル → javaコマンドで実行する際、
適用されるランタイムのバージョンはどこで設定されているのでしょうか?

よろしくお願いいたします。
350デフォルトの名無しさん:2007/05/09(水) 16:57:13
>>349
プロンプトで
java -version
351349:2007/05/09(水) 17:02:05
って質問が違ったね。

ttp://www.hellohiro.com/appli.htm
にあるように環境変数のJAVA_HOMEを変えると、反映されるかと。
352デフォルトの名無しさん:2007/05/09(水) 17:10:16
こんにちは。
北朝鮮から出稼ぎに来ている28歳の無職です。
先日、梅田のハロワのトイレに入って
ウンコをした際、
「トイレットペーパー以外の物は流さないで下さい」
と壁に張り紙がしてありました。
仕方がないので、ウンコを新聞紙に入れて持って来ましたが
非常に不便さを感じました。
皆さんはどのようにしているのでしょうか
参考までに聞かせていただけませんか?
353349:2007/05/09(水) 18:20:15
>>350
ご回答ありがとうございます。

JAVA_HOMEはC:\Program Files\Java\jdk1.6.0_01 とし、
Pathは%JAVA_HOME%\bin としています。
コマンドプロンプトのカレントディレクトリにclassファイルを常に置いているので、クラスパスは設定していません。

レジストリエディタでレジストリの値を見たところ、Java Runtime Environment\CurrentVersionは1.6となっています。
JDKのバージョン=ランタイムのバージョンという認識でよいのでしょうか?
354デフォルトの名無しさん:2007/05/09(水) 18:34:59
>>353
> JDKのバージョン=ランタイムのバージョンという認識
違う。

JDKのインストーラのデフォルトの設定(全部OKした場合)では、JDKとは別に、JREが入る。
JAVA_HOMEが指してるのは、普通は JDK内のランタイム。
で、JREにはjavacはないけど、C:\Windows\SYSTEM32 とかに java.exe を突っ込むから、
どっちを使うかは、環境変数 PATH の設定による。

レジストリの値は関係ない。
355デフォルトの名無しさん:2007/05/09(水) 19:15:10
Microsoft VMを使ったhttp上のシステムにログインする際に、
IEアンダーバーに「アプレット ClientManager notinited」の表示が出て停止してしまいます。
システムは他PCからだと正常に運用されているようです。
JAVAコンソールを見ると、以下の内容のエラーが出ています。
F&Qなどで該当例を探したのですが見つからず、助言いただければ幸いです。
============================================================
load: クラス MGBC940_01BJ.ClientManager.class が見つかりません。
java.lang.ClassNotFoundException: MGBC940_01BJ.ClientManager.class
(中略)
Caused by: java.io.IOException: open HTTP connection failed.
(中略)
load: クラス browserClient.MsgText.class が見つかりません。
java.lang.ClassNotFoundException: browserClient.MsgText.class
(中略)
Caused by: java.io.IOException: open HTTP connection failed.
(後略)
356349:2007/05/09(水) 19:36:21
>>354
なるほど。最初から入っているのとは別にもう一つランタイムが入るわけですね。

>C:\Windows\SYSTEM32 とかに java.exe を突っ込むから、
↑すいません。ここの表現がよくわかりません。
 コマンドプロンプトからjavaコマンドを実行したときには、SYSTEM32内のjava.exeを探しにいくということでしょうか?

ちなみにPATHは以下のとおりです。
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;%JAVA_HOME%\bin;C:\Program Files\Common Files\GTK\2.0\bin
357デフォルトの名無しさん:2007/05/09(水) 19:44:36
>>356
PATH に書かれたディレクトリを順番に検索するから、PATHの設定が
> %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;%JAVA_HOME%\bin;C:\Program Files\Common Files\GTK\2.0\bin

ならば、最初に書かれた %SystemRoot%\system32 は %JAVA_HOME%\bin より優先順位が高い。
358349:2007/05/09(水) 20:13:53
>>357
わかりました。そういう意味があったんですね。ありがとうございます。
アプリケーションをjarファイルにして他PCでも動かしたいのですが、
適応するランタイムのバージョンというのは、どうやって見極めればいいのでしょうか?
359デフォルトの名無しさん:2007/05/09(水) 21:58:49
>>358
新たに追加されたクラス、メソッドは API仕様見れば since タグふってあるから、
それを調べれば、どのAPIがどのバージョンで動くかは大体分かる。

あとは javac -target とかで、出力したクラスファイルの互換性を気をつける事とか。
360349:2007/05/09(水) 22:03:25
ありがとうございました。API仕様を確認してみます。
またここで質問させてもらうことがあるかと思いますが、よろしくお願いします。
361デフォルトの名無しさん:2007/05/09(水) 22:27:43
プログラム中で、trueのラジオボタンを setSelected(false); でfalseにしたはずなのに、isSelected()で調べてみたらtrueでfalseになっていません。
どうしたらいいでしょうか?
362デフォルトの名無しさん:2007/05/09(水) 22:34:21
>>361
setSelected(false) しても、実際に反映されるのは
次にイベントディスパッチスレッドに処理が移った時なのよ。

>>143 のリンク先とか見てくれ。
363デフォルトの名無しさん:2007/05/09(水) 22:39:09
>>362
早速ありがとうございます。
見てみることにします。
364デフォルトの名無しさん:2007/05/09(水) 23:09:21
配列に要素を挿入するコードを書いてみましたが、
もっとスマートにかけませか?

String[] str = {"hoge", "huga", "foo", "bar"};
String sonyu = "挿入";
String[] buff = new String[5];

// 三つ目に挿入
int j = 0;
for (int i = 0; i < str.length; i++) {
if (j == 2) {
buff[j] = sonyu;
j++;
}

buff[j] = str[i];
j++;
}
365デフォルトの名無しさん:2007/05/09(水) 23:26:04
Listでも使えば?
366デフォルトの名無しさん:2007/05/09(水) 23:54:22
>>364
String[] buff = (String[])str.clone();
buff[2] = sonyu;
367デフォルトの名無しさん:2007/05/10(木) 01:15:22
遅レスだけど、
>>309
win用のコードをX11でも動かせるように変更する必要は”ない”。
物理フォントを指定してたら依存する可能性があるが、そういうのはとりあえずコメントアウトしてよし。
問題は単なる環境設定。JDKやX11環境が整っているという認識が間違っている。
とりあえずFreeBSDのスレでも行って聞いてみたら?
368デフォルトの名無しさん:2007/05/10(木) 07:18:17
>>365
これ便利ですね。
ありがとうございました。

>>366
そうではないです。
369デフォルトの名無しさん:2007/05/10(木) 08:44:56
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/org/w3c/dom/Text.html
このクラスで改行文字を表すにはどうすればいいでしょうか。
もしそれよりも一般的な方法があれば教えてください。

Element date = document.createElement("date");
document.appendChild(date);

Text lf = document.createTextNode("改行文字");
date.appendChild(lf);

Element name = document.createElement("name");
date.appendChild(name);

Text textnode= document.createTextNode("ひろゆき");
name.appendChild(textnode);


<date> ここで改行したい
<name>ひろゆき</name>
</date>
370デフォルトの名無しさん:2007/05/10(木) 08:50:15
数値a,bを読み込み格納している数値を交換する方法で分らない部分があります。
変数は a,b,w でa,bは読み込んだ所まで大丈夫です。
a = w;
b = a;
w = b;
上記の式だとa=wは初期化されてないとエラーがでます。
たぶんwに何も数値がないからでしょうか?
フロートチャートだと上のような順番なんですけど
371デフォルトの名無しさん:2007/05/10(木) 08:56:24
>>369
"\n" でいいかと。
XMLならそもそも改行しなくていいじゃんとは思うが。
372デフォルトの名無しさん:2007/05/10(木) 08:58:09
>>370
> たぶんwに何も数値がないからでしょうか?

そのとおり。

> フロートチャートだと上のような順番なんですけど

フローチャートが間違っている。自分の頭で考えれば、間違っているこ
とは明白でしょでしょ?

373デフォルトの名無しさん:2007/05/10(木) 09:05:48
>>372
やっぱりそうですか、wに何かしろの数字をいれないと駄目なんですね。
退避用の変数を設ける以外何の説明も無かったけど助かりました。
374デフォルトの名無しさん:2007/05/10(木) 09:14:26
先ず、2つのコップを用意しよう。
それを机に置いてみよう。
そして、その2つのコップの位置を、
コップを1つずつ動かして、交換してみよう。

さて、どういう風に動かしたかな?
375デフォルトの名無しさん:2007/05/10(木) 09:49:28
初心者に例出して理解させようとするのはいいが、最後までやれよ?
いつも中途半端に終わってるぞ。
376デフォルトの名無しさん:2007/05/10(木) 09:52:35
a と b を交換したいんだろ?

a = w;
b = a;
w = b;

訳分からんよw

a => w;
b => a;
w => b;

っていう意味じゃないのか?

w = a;
a = b;
b = w;

おもいっきり釣られてみるテスト
377370:2007/05/10(木) 10:15:23
>>376
ほんっとご親切にありがとうございます。
逆さになってましたね(汗)それと出力の部分も逆になってたようで成功してたのに変わってないようなってました。
アルゴリズムの観点で考える力が未熟ですよね、もっと勉強します
378デフォルトの名無しさん:2007/05/10(木) 14:32:45
Cしか知らない初心者です。

Javaで継承されたメソッドのバイトコードはコンパイル時、
親classファイルに吐き出されるのでしょうか?
子classの継承したメソッドは親クラスのメソッドへのリンクになるんでしょうか?



379378:2007/05/10(木) 14:35:03
すみませんわけ分からん質問をしてしまいました。
流してください。
380378:2007/05/10(木) 14:53:01
JVMドキュメントなんかを軽くでも読んでから出直します;;
381デフォルトの名無しさん:2007/05/10(木) 14:56:35
JVMドキュメント? VM仕様? API仕様?
382デフォルトの名無しさん:2007/05/10(木) 16:58:32
ソースコードからクラスのインスタンスのサイズを知ることは可能でしょうか?
383デフォルトの名無しさん:2007/05/10(木) 17:35:48
>>382
コンパイラとVMに依存すると思うよ
384デフォルトの名無しさん:2007/05/10(木) 17:45:22
Char ってどう読むのが一般的なんでしょうか?
人前で発声しなくても自分の心の中だけでの読み方でも良いので教えて下さい。
385デフォルトの名無しさん:2007/05/10(木) 17:50:19
>>382
> クラスのインスタンスのサイズ
なにそれ。
386デフォルトの名無しさん:2007/05/10(木) 17:52:29
練習用のプログラムを書いて保存しようとすると、
メモリが足りないとかでるんですけど、
これはどうすれば解消できますか?
今までコンパイルされたものをリセットとかできますか?
387デフォルトの名無しさん:2007/05/10(木) 17:53:38
>>384
キャラ もしくは チャー と呼んでいる人が多い
388デフォルトの名無しさん:2007/05/10(木) 17:59:11
>>386
> これはどうすれば解消できますか?
条件が抽象的すぎて答えられまセン

> 今までコンパイルされたものをリセットとかできますか?
質問の意図が不明デス
389デフォルトの名無しさん:2007/05/10(木) 18:08:04
>>384
キャスバル兄さん
390384:2007/05/10(木) 18:21:48
>>387
チャー と読む人もそこそこ居るんですね。
実は自分も チャー 派なんですが、人前で読む場合は
何となく負けた感じがするので キャラ にしています。

>>389
アルテイシア乙
391デフォルトの名無しさん:2007/05/10(木) 18:29:14
>>388
本に載ってるサンプルのコードをメモ帳に入力して、
保存しようとするときにメモリに関する警告が出るときがあります。
なのでマイドキュメントに溜まった、
メモ帳に書いたサンプルのコードをかなり消したんですが、
未だに新しいコードを保存しようとすると同じ警告が出るときがあります。
(出ないときもあります。)
なので他の原因を考えたんですが、
今までコンパイルしたものは、
改めてコンパイル(javac)しなくてもjava 〜.javaだけで実行できますよね。
なので今までパソコンに記憶されたコードを消せば警告もでなくなるかなと思いました。
なのでどうやってそれを消せばいいかなと思いました。
392デフォルトの名無しさん:2007/05/10(木) 18:31:44
>>391
java 〜.java×

java 〜○
393デフォルトの名無しさん:2007/05/10(木) 18:36:53
.classのことを言ってるのか
てかPCのスペックは?
394デフォルトの名無しさん:2007/05/10(木) 18:42:52
XP
Home Edition

intel(R) Celeron(R)M
processor 1500MHz
1.50Ghz, 248MB RAM

と書いてます。
395デフォルトの名無しさん:2007/05/10(木) 18:44:16
>>393
そうです。.classやソースコードです。
396デフォルトの名無しさん:2007/05/10(木) 18:44:29
かなりの初心者です。
円の内側に色を塗りつぶしたいのですがどのような方法が一番手軽ですか?
あとJava Runtime Environmentはどうやって起動するのですか?
397391:2007/05/10(木) 18:56:06
パソコンのメモリは電源を消せばリセットされるんですよね。
つまりクラスファイルが消去しなくても電源を消せばいい。
でも電源を消しても警告がでたのでクラスファイルを消しました。
まあ一応まだソースコードは保存できるので様子を見てみます。
ありがとう御座いました。m(_ _)m
398デフォルトの名無しさん:2007/05/10(木) 18:57:02
>>397訂正
クラスファイルが→を
399デフォルトの名無しさん:2007/05/10(木) 19:48:24
>>397
ちょwイミフwwwて言われたいのか?

自作板の人間としてはそんなイミフなサポ来たら
間違いなく死ねるからその前に答えておくと
メモリ増設するかPC買い替えろ。

俺も>>397と同じスペックでEclipse+EclipseME+VE動かしてた時期があるがOSの使用メモリを73Mまで削って物理256-32M+スワップ384Mで運用してたが動くだけだったぞ。
400デフォルトの名無しさん:2007/05/10(木) 21:05:35
>>399
ソースコードのを中のintとかdoubleをコンパイルする度に
メモリがどんどん消費されていくのかなと思ったり・・。
まあ今のところは作業が継続可能なので、
作業が継続出来なくなるようなら買い換えます。
レス有難う御座いますm(_ _)m
401デフォルトの名無しさん:2007/05/10(木) 21:19:54
>>399
イミフwwww
402デフォルトの名無しさん:2007/05/10(木) 21:24:51
何度読んでも397の意味がわからん
403デフォルトの名無しさん:2007/05/10(木) 23:55:35
リスナについての質問です。

Swingでアプリを作っているのですが、
JFrameの上に配置したSwingコンポーネント上でも、
JFrameに登録したリスナのイベントを拾うことは可能ですか?

具体的にはJFrameにMouseMotionListenerをaddしてMouseMoved処理を書いているのですが、
JFrame上に配置しているJTabbedPane等を透過できず、イベントが拾えません。
もちろんJTabbedPaneにMouseMotionListenerを登録することもできますが、
結局その上に配置したボタンやらテーブルに邪魔されて同様の問題が発生します。

力技で全てのコンポーネントにリスナを登録するのは、
コンポーネント数が多すぎて現実的ではないと思います。

要は下部のコンポーネントに登録したリスナのイベントを、
上部のコンポーネントに関係なく拾いたいということなのですが、
このようなことは可能でしょうか?

もし可能であれば、ヒントを頂けるとありがたいです。
長文で申し訳ありませんが、よろしくお願いします。
404デフォルトの名無しさん:2007/05/11(金) 00:27:29
>>403 つ「GlassPane」
こんどからは↓で
Java低速GUI Swing 5
ttp://pc11.2ch.net/test/read.cgi/tech/1161139809/
405デフォルトの名無しさん:2007/05/11(金) 01:24:25
早速のアドバイスありがとうございました。
Swing用のスレがあったんですね。。
スレ違いになってしまいますが、話の続きなのでここで書かせていただきます。


以下のようにリスナのadd先をGlassPaneにして、setVisible(true)を追記しました。

getGlassPane().addMouseMotionListener(new MyMouseMotionListener());
getGlassPane().setVisible(true);
.......

//内部クラス
class MyMouseMotionListener implements MouseMotionListener{
public void mouseMoved(MouseEvent e){
System.out.println(e.getX() + "," + e.getY());
}
.....
}

結果、マウス移動のイベントを拾ってはくれるのですが、
配置したコンポーネント(ボタン等)を全く押せなくなりました。
まさにアプリの上にガラスを被せたような状態ですw

マウス移動のイベントだけガラスに拾ってもらいつつ、
マウス押下のイベントはガラスを突き抜けて、下のコンポーネントに到達させる様な挙動はさすがに無理なのでしょうか。
ちょっと都合が良すぎる考えのような気がしてきました。。
406デフォルトの名無しさん:2007/05/11(金) 03:58:30
>>397
電源を消すとクラスファイル等いろいろ消えるパソコンに買い替えなさい
407デフォルトの名無しさん:2007/05/11(金) 04:21:29
おそろしいパソコンだw
408デフォルトの名無しさん:2007/05/11(金) 08:35:48
>>405
http://java.sun.com/javase/ja/6/docs/ja/api/javax/swing/SwingUtilities.html#convertMouseEvent(java.awt.Component, java.awt.event.MouseEvent, java.awt.Component)
409デフォルトの名無しさん:2007/05/11(金) 10:14:43
410デフォルトの名無しさん:2007/05/11(金) 11:37:27
Javaとは関係ないんですが、JavaVMのアプレットが起動したとき
Window下部に 警告 アプレット ウインドウ と表示されますが
この表示バーを消すことはできませんか?
411デフォルトの名無しさん:2007/05/11(金) 11:39:27
412デフォルトの名無しさん:2007/05/11(金) 16:58:23
>>371
レスありがとうございます。
うまくいきましたが、一つ疑問が起きました。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
の直後で改行しようとした所HIERARCHY_REQUEST_ERRが出ました。
調べた所このノードは子ノードにテキストノードを持てないということがわかりました。

ということはつまり、XMLでは一般的に改行しないんでしょうか?
テキストエディタで一見したときにわかりやすいと思のですが。
413デフォルトの名無しさん:2007/05/11(金) 17:05:37
>>409
怖ぇー
414デフォルトの名無しさん:2007/05/11(金) 21:51:41
すいません!java初心者です!テキスト見てもどう手をつけていいか
わかりません。どなたか詳しい方ご教授願います。

とりあえず、2,10,16進数だけ勉強しました^^;)
本日から入社しましたのですが、なかなか教えてもらう機会がなかった
ので・・。やはり皆さんは23時帰りですか?
素人で申し訳ないです。
415デフォルトの名無しさん:2007/05/11(金) 21:54:55
何か作ってみれば、何が必要なのかが分かってくるはず。
416デフォルトの名無しさん:2007/05/11(金) 22:00:57
>>415 何を作るんですか?? 
それがプログラムが作れない未経験の状態なんで、基本的なことが
わからないんですよ。お奨めのサイトや本てありますか?
図々しくてごめんなさい。
417デフォルトの名無しさん:2007/05/11(金) 22:01:21
>>414
会社の人に聞いた方が早いよ。
418デフォルトの名無しさん:2007/05/11(金) 22:04:33
cygwinで実行して出た結果をコピペしたいのですが、
どうすればいいでしょうか?
419デフォルトの名無しさん:2007/05/11(金) 22:06:46
>>418
ここ、Javaスレだから。
420デフォルトの名無しさん:2007/05/11(金) 22:11:44
javaで書いたプログラムということでだめですか
421デフォルトの名無しさん:2007/05/11(金) 22:13:16
自己解決しましたスマソ
422デフォルトの名無しさん:2007/05/11(金) 22:22:44
これが噂のDQNか…
423デフォルトの名無しさん:2007/05/11(金) 22:27:01
進数はJavaに限った事じゃないから。
まだココで聞くには早いと思うぞ
424デフォルトの名無しさん:2007/05/11(金) 22:43:18
>>414
23時帰りではありません。
425デフォルトの名無しさん:2007/05/11(金) 22:52:48
>>416
何でもいいじゃん。
簡単なゲームでもいいし、何か計算させてもいいし。
426デフォルトの名無しさん:2007/05/11(金) 23:11:48
>>418
stdout(場合によってはstderrも)をファイルに送ればいいだけじゃないの?
427デフォルトの名無しさん:2007/05/11(金) 23:28:32
scriptコマンドとか
cygwinにあったっけ
428デフォルトの名無しさん:2007/05/12(土) 01:53:20
>>412
ルート要素外にはテキストノードは置けないですね。

試してないけど、
http://faq.javaranch.com/view?HowToPrettyPrintXmlWithJava
このへんを参考すると、自動で改行など挿入できるんじゃないでしょー
か。
429デフォルトの名無しさん:2007/05/12(土) 03:21:01
>>412
> テキストエディタで一見したときにわかりやすいと思のですが。
XMLはプログラムで扱いやすいようにしたもので、
人間が直接見たり編集したりするためのものじゃない。
人間が扱うならテキストエディタでなくXMLエディタなんかを使った方がいい。
430デフォルトの名無しさん:2007/05/12(土) 05:01:09
というか根本的にDOMは総称符号化における
文書インスタンスを動的に変更するものであって
テキストデータをフォーマットするものではない。

まあ、元々はNetscapeのdynamic web architectureであるLiveDocumentの後継技術だからHTML用だが。

>>429の言う通り
意味が分からんなら諦めろ。
431デフォルトの名無しさん:2007/05/12(土) 05:07:45
ミスった。

>>429の言う通り総称符号化とはコンピュータ内での文章を保守・管理・閲覧を容易にするための研究分野だ。

人間が見づらいなんて論外、端から眼中にない。お門違い。
フューマンライクにフォーマットしたいならそういう
フォーマッタライブラリがあるからそれ使え。それか自分で書け。
432412:2007/05/12(土) 16:35:13
直接いじらないので改行しないんですか。
それならバイナリデータの方が良いと思いますが、
これは以前のなごりなんですかね。

皆さんレスありがとうございました。
433デフォルトの名無しさん:2007/05/12(土) 16:42:50
普通に出来ることがなんでこうなるのかわからんなw
434デフォルトの名無しさん:2007/05/12(土) 16:44:12
バイナリデータというのが人間が簡単に読めないデータという意味だとすれば
なぜそっちの方がいいと思ったん?
435412:2007/05/12(土) 16:51:20
>>434
処理速度が上がると思ったからです。
436デフォルトの名無しさん:2007/05/12(土) 17:18:13
スレ違いなので、XMLの特徴、長所と短所を理解してから出なおしてください
437412:2007/05/12(土) 17:54:57
わかりました
スレ汚しスマソ
438デフォルトの名無しさん:2007/05/12(土) 18:36:43
BigDecimalでの加減算の方法を教えてください。
なんで普通に足せないの??
439デフォルトの名無しさん:2007/05/12(土) 18:37:58
>>438
どうやって足しているかを書く
440デフォルトの名無しさん:2007/05/12(土) 18:40:23
BigDecimal a = new BigDecimal("10000000000000000");
BigDecimal b = new BigDecimal("10000000000000000");
BigDecimal c = a+b;

こうやろうとしてエラーになっている。
演算子オーバロードができたらねぇ。
441デフォルトの名無しさん:2007/05/12(土) 18:59:46
BigDecimal c = a.add(b);
442デフォルトの名無しさん:2007/05/12(土) 19:10:57
演算子なんて只の飾りですよ
エロいひとにはそれが分からんのですよ
443デフォルトの名無しさん:2007/05/12(土) 20:55:11
IterableのGenerics型とIteratorのGenerics型が一致しないのはどう解決しますか?
ぜんぶ<T>で呼び出してるから一致しないわけないと思うんだけど、コンパイルが出来ません。
444デフォルトの名無しさん:2007/05/12(土) 20:56:49
> IterableのGenerics型とIteratorのGenerics型が一致しないのはどう解決しますか?
どゆ事?
445デフォルトの名無しさん:2007/05/12(土) 21:04:23
TとTが一致しませんといってエラーが出てるのです。
446デフォルトの名無しさん:2007/05/12(土) 21:18:34
JSliderはスライダ部分をクリックしただけだとイベントを発生しないけど、発生するようには出来ないでしょうか?
ChangeEventでスライダを動かした時だけしか、イベントを発生できないようです。 スライダをクリックして
「握った」状態を感知したいのですが・・・

もしくは、そうできるようなものはないでしょうか? swingでの使用を考えています。
447443:2007/05/12(土) 21:25:35
IterableのT型変数をIteratorのnextで戻していたのが原因でした。
型推論できそうな気もするけど、Iterator内に移したらコンパイルが通りました。
448デフォルトの名無しさん:2007/05/12(土) 21:41:05
JAVAってインラインアセンブラできないの?
449デフォルトの名無しさん:2007/05/12(土) 22:01:19
そんなんでRun Anywhereできると思ってんのかコラァ!
450デフォルトの名無しさん:2007/05/12(土) 22:07:38
JVM 用アセンブラを書くライブラリはあるだろ。
BCEL とか使えばいい。
451443:2007/05/12(土) 22:38:09
自己解決の方法が間違ってたので、フィードバック。

Iterableの型をIteratorに引き継ぐ場合は
private class MyIterator implements Iterator<T>とするだけ。
MyIterator<T>としてしまうと型を上書きするみたい。

こんな間違い私だけかも知れないけど。
452デフォルトの名無しさん:2007/05/12(土) 22:50:52
> private class MyIterator implements Iterator<T>とするだけ。
これ、外側に MyIterable<T> の宣言とかが無いと、
何を書いてるか分からんぞ。
453デフォルトの名無しさん:2007/05/12(土) 23:01:45
インラインアセンブラも、ヴァーチョウマスゥィーンヌのほうで吸収して呉れりゃいいのに。
454デフォルトの名無しさん:2007/05/12(土) 23:31:11
javaの考える力を身につけるにはどう学習すればいいですか?
何かお勧めのテキスト教えてください、情報技術者試験対策の勉強だと知らないようなことを
考えさせられて自分の力の無さを感じてしまうお
455デフォルトの名無しさん:2007/05/12(土) 23:52:35
456デフォルトの名無しさん:2007/05/12(土) 23:58:43
>>455
おK、これで考える力をつけようと思います。
しかし値段すごいですね(((( ;゚Д゚))) とりあえず大きな本屋に行って立ち読みしますわ
457デフォルトの名無しさん:2007/05/13(日) 01:05:32
高いか???
普段、赤本とか物理学などの本買ってると2万3万当たり前なので安く感じる。

最も高かったのが、医学の術式を記した本で5万。
458デフォルトの名無しさん:2007/05/13(日) 01:11:19
高いよ
459デフォルトの名無しさん:2007/05/13(日) 01:13:45
本に2000円以上出すのは抵抗あるお
資格取得の参考本以外は手をつけた覚えないな
460デフォルトの名無しさん:2007/05/13(日) 01:49:36
>>455
まつもとゆきひろ氏が読んで目から鱗が落ちた本だな。
ttp://www.ruby-lang.org/ja/man/?cmd=view;name=Ruby%CD%D1%B8%EC%BD%B8#Eiffel
461デフォルトの名無しさん:2007/05/13(日) 02:34:48
同じ場所に end の解説があってワロス
462デフォルトの名無しさん:2007/05/13(日) 02:49:37
>単文・複文問題の回避
{ } 強制の Perl では問題が生じない。

>ぶらさがりelse問題の回避
{ } 強制と elsif の導入で解決する問題。

>可読性の向上
趣味の問題なので何ともいえない。

>begin, caseの構文上の問題
これはある程度納得できる。
463デフォルトの名無しさん:2007/05/13(日) 05:20:05
>>462
お前は俺だ
464デフォルトの名無しさん:2007/05/13(日) 10:28:31
開始時刻の(時h1、分m1)と終了時刻(時h2,分m2)を読み込み開始から終了までの時間(時h,分m)を求める式が考えつきません。

hd = h2 - h1; md = m2 - m1; 単純に時分をそのまま足す引くしか考えが浮かばないんですが終了時刻の方が小さいとマイナスと出ます。
逆にしても同じで開始終了どちらの大小関係なくマイナスにならないようにするヒントを教えていただけませんか?
465デフォルトの名無しさん:2007/05/13(日) 10:38:20
Calendarつかえばいんでね
466デフォルトの名無しさん:2007/05/13(日) 10:47:49
もし開始時刻より終了時刻のほうが早ければ開始-終了、それ以外なら終了-開始
467デフォルトの名無しさん:2007/05/13(日) 10:51:09
>>464
絶対値でOK
468デフォルトの名無しさん:2007/05/13(日) 11:37:41
>464
Date start = new Date();
Date end = new Date();
long diff = start.getTime() - end.getTime();
int diffMinitue = diff / (1000 * 60);
int diffHour = diff / (1000 * 60 * 60);
469デフォルトの名無しさん:2007/05/13(日) 11:39:09
>467
絶対値使うなwww
たぶん、12時25分(開始) 13時10分(終了)のような状況と思われ。
470デフォルトの名無しさん:2007/05/13(日) 12:23:54
h=h2-h1;
m=m2-m1;
if(m<0) {
h=h-1;
m=m+60;
}
引き算のときに下の桁で足りなかったら上の桁から借りてくるって算数で習っただろ?
471デフォルトの名無しさん:2007/05/13(日) 12:26:18
>>470
それでやると日付またいだりしたときに面倒くさそうだね。
472デフォルトの名無しさん:2007/05/13(日) 12:34:24
もともと問題がhとmしかないからね。
日付をまたいだり月をまたいだり年をまたいだりするなら、
さらに上の桁から借りればいい。
月が変わる時の処理がちょっと面倒だけど。
まあ、そこまでの問題なら日時関連の標準APIを使うのが楽だろうが。
473デフォルトの名無しさん:2007/05/13(日) 12:39:27
DateとCalendarを使えって話題じゃないのかね?
どういうながれで問題が出されたのか解らんけど。
474デフォルトの名無しさん:2007/05/13(日) 13:41:33
超初心者です。
今アプリゲットの開発講座を見ながらJ2MEのtoolkitでイメージの描写を
やってるのですが、解説にのってあるpngではなく自分で用意したpngを
使用すると、パッケージのところで
「アプリケーション記述子のJARサイズが実際のJARファイルサイズと一致しません」
と出るんですが。どこをいぢればいいか教えてください。
475デフォルトの名無しさん:2007/05/13(日) 13:44:19
黄色いアプリゲットだぜ!
476デフォルトの名無しさん:2007/05/13(日) 14:38:09
javaのsliderで動画のシークに使える派生モノはないですか? JSliderだとスライダーを握っただけ
だとイベントを発生しないので・・・ スライダーを動かして初めてイベントを発生する・・・
477デフォルトの名無しさん:2007/05/13(日) 14:53:29
動画のシークに使うのならサムを握っただけでイベントを発生させる必要はないのでは?
値が変わった時にシークさせればいいと思うのだが。
MouseEventを捕まえればいちおうイベントは発生してくれる。
サムでない部分をクリックしてもMouseEventが発生するけど、
そのときはChangeEventも発生するはずなので区別を付けられないわけではない。
もしくは実装の詳細に入ってしまうのであまり良い方法ではないが、
MouseEventの発生位置がサムの領域かどうかで判断するか。
478デフォルトの名無しさん:2007/05/13(日) 15:06:25
お願いします
>>474
479デフォルトの名無しさん:2007/05/13(日) 15:17:58
>>474
プロパティ
480デフォルトの名無しさん:2007/05/13(日) 15:21:29
>>477
そのサムを握った時に動画やアニメーションを停止させたいので、イベントが発生してくれるとうれしいのです。
もう少し、調べてみます。
481デフォルトの名無しさん:2007/05/13(日) 15:37:26
>>479
プロパティって言うのは、jadにjarファイルの容量を入れるってことですよね?
今はjavaファイルからclassファイルにコンパイルする段階でできないのですが。
482デフォルトの名無しさん:2007/05/13(日) 16:35:21
携帯はスレ違い
MIDPスレ行け
483デフォルトの名無しさん:2007/05/13(日) 16:36:14
>>482
了解です。。
484デフォルトの名無しさん:2007/05/13(日) 17:38:14
プログラミング経験もほぼ無いに等しいのですが
お勧めの参考書でもあれば教えてください。
485デフォルトの名無しさん:2007/05/13(日) 18:18:16
>484
http://pc11.2ch.net/test/read.cgi/tech/1164359039/l50

俺の考えは、入門書はイラネ。
やさしいとか猫が解るとか6日で学ぶとか色々あるが、金の無駄。
いわゆる入門書のレベルならばWebで探せば幾らでもあるからタダ。

Webで軽く触ったなら、少し難しい本を買って辞書として使用すべし。
あわせて、独習Java等の演習問題を血を吐くまで打ち込むべき。
486デフォルトの名無しさん:2007/05/13(日) 19:09:46
JRE6をインストールしたら今まで使っていたJRE5は削除してもいいんでしょうか?
487デフォルトの名無しさん:2007/05/13(日) 21:45:27
>>486
JRE5を使うか使わないかは君次第
488デフォルトの名無しさん:2007/05/13(日) 22:05:30
>>455はJavaじゃないだろ
489デフォルトの名無しさん:2007/05/13(日) 23:17:26
JavaじゃないけどJavaで考える力はつくよ
490デフォルトの名無しさん:2007/05/13(日) 23:30:41
いや、特につかないだろ
Java問題集とかパズルとか読んだ方がずっといい
491デフォルトの名無しさん:2007/05/13(日) 23:40:01
いや、考える力はつくだろ
492デフォルトの名無しさん:2007/05/14(月) 01:23:17
ファイルがまだ残っているディレクトリツリーをまとめて削除したいのですが
どうすればいいでしょうか?
493デフォルトの名無しさん:2007/05/14(月) 01:28:24
残っているファイルを全部消してから親ディレクトリに移り子ディレクトリを消す
という操作を再帰的に行う
下手すると全部消えるから再帰の止めどころを間違えないように
494492:2007/05/14(月) 01:30:17
>>493
その処理をしてくれるメソッドはないでしょうか?
495デフォルトの名無しさん:2007/05/14(月) 01:37:41
標準のAPIにはたぶんない
apache commonsのorg.apache.commons.io.FileUtilsには
deleteDirectoryやcleanDirectoryがある
496492:2007/05/14(月) 01:45:04
>>495
ありがとうございます。
497デフォルトの名無しさん:2007/05/14(月) 03:38:52

質問質問!

JavaのJFrameにFlashPlayerを乗せるにはどうすればいいですか!
教えてちょんまげ!!
 
ちなみにFlash側はActionScriot3.0で書くつもりです
 
498デフォルトの名無しさん:2007/05/14(月) 03:58:47
>>497
切腹
499デフォルトの名無しさん:2007/05/14(月) 04:03:15
for(;;){} の初期化の部分で複数の型を初期化するにはどうすればいいですか?
int と String の異なる型をfor内部で宣言させたいのですが…

エラーになりますが、イメージとしてはこんな感じです。
for(int i=0, String s=""; i<foo.length; i++){}
500デフォルトの名無しさん:2007/05/14(月) 04:17:23
できないのでforの前でやってください
501デフォルトの名無しさん:2007/05/14(月) 04:41:08
>>500
了解です。ありがとうございます。
502デフォルトの名無しさん:2007/05/14(月) 09:12:10
質問させていただきます。
Excelファイルを参照して、指定したセルに書かれいている文字列を、
配列に格納するという方法はあるのでしょうか?
503デフォルトの名無しさん:2007/05/14(月) 09:20:52
あります
504デフォルトの名無しさん:2007/05/14(月) 09:24:40
>>503
調べてみてはいるのですが検討が付きません。
教えていただけませんか?
505デフォルトの名無しさん:2007/05/14(月) 09:27:34
506デフォルトの名無しさん:2007/05/14(月) 09:29:40
ありがとうございます。
507デフォルトの名無しさん:2007/05/14(月) 21:06:17
JAVAを独学ではじめようと思っているのですが。
参考書籍、それとも初心者用の解説サイトで学ぶのがよいのでしょうか?
またそれについてお勧めの書籍等ありましたら、教えていただけると有難いです。
508デフォルトの名無しさん:2007/05/14(月) 21:07:39
>>507
やさしいJavaプログラミング
509デフォルトの名無しさん:2007/05/14(月) 21:26:26
>>508
あんなもん教えるな。
510デフォルトの名無しさん:2007/05/14(月) 21:50:42
否定するなら対案示すとかどこが悪いか示すとか、そういうのすべきじゃね?
511デフォルトの名無しさん:2007/05/14(月) 22:04:40
房乙
512デフォルトの名無しさん:2007/05/14(月) 23:16:26
ファイルをアップロードするサーブレットを作っています。
fileuploadライブラリを使用してアップロードは出来るように
なりました。
しかし、フォームのデータが取得出来ません。

ファイルをアップロードするために、「enctype="multipart/form-data"」を
入れているのですが、これを入れるとHttpRequest#getParameter()で
取得できないことは分かりました。
では、どうすれば取得できるのでしょうか?

FileItem#getFieldName()でフォームの名前(name)は取得できるように
なりましたが、値(value)は取得することが出来ません。

どうすればよいのでしょうか?
513デフォルトの名無しさん:2007/05/14(月) 23:22:26
てst
514デフォルトの名無しさん:2007/05/14(月) 23:44:47
>>512
GWT
515デフォルトの名無しさん:2007/05/15(火) 00:19:42
>>514
GWTというものが存在することは先ほど検索して分かりましたが、
それが今回のものとどういう関係があるのか全く分かりません。
もう少し詳しくお願いします。
516デフォルトの名無しさん:2007/05/15(火) 00:24:50
>>512
最近使ってないので覚えてないが
ドキュメントに書いてなかったか?
サンプルにもあったような気がするが
517512:2007/05/15(火) 00:40:04
>>516
FileItemのリファレンスを見ても分からなかったのですが、
サンプルを見るとgetString()で簡単にいけそうです。
今は環境が無いので、明日試してみます。

// Process a regular form field
if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString();
...
}

とりあえず、ありがとうございます。
518デフォルトの名無しさん:2007/05/15(火) 02:50:44
n以下の素数をはじきだすプログラミングをくんだのですが上手く動きません。
添削していただけないでしょうか?

import java.io.*;
import java.io.*;
public class enshu34 {
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.print("integer> ");
int n = (new Integer(in.readLine())).intValue();
int i = 2;
while(n % i != 0) { i = i + 1; }
if(i == n) { System.out.println("This is a prime factor"); }
else { System.out.println("This is not a prime factor"); }
}
}
519デフォルトの名無しさん:2007/05/15(火) 03:13:53
>>518
キミが期待する具体的な動作(…を入力したら…が表示されて欲しい)と
そのプログラムがどう期待通りでないか、
を書きましょう。
520デフォルトの名無しさん:2007/05/15(火) 03:56:54
ぬるぽ
521デフォルトの名無しさん:2007/05/15(火) 04:10:44
ガッ… Java 始めたのですが質問です。

Java には標準で make 相当のコマンド/仕組みは無いですか?
皆IDE?

ググったら Jakarta の Ant なるものが引っかかったんだけど、
使い慣れたmakeにしがみつくより覚えて損はなさそうですか?
意見plz
522デフォルトの名無しさん:2007/05/15(火) 04:22:52
使い慣れたmakeを使い続けるもよし、antをかじってみるもよし。
他人とすり合わせる必要がないのなら自分の一番使いやすい方法をとればいい。
javaのプログラミングで使うのならantは覚えても損はないとは思う。
523デフォルトの名無しさん:2007/05/15(火) 04:46:55
とりあえずmakeで済ませつつ、覚えても損はなさそうな代物ということで
折を見て少しかじってみることにします。

すこし Ant の使い方を眺めていたんだけど、
xml で記述っていうのが慣れていないせいか何となく('A`)
ツールとかで機械的に吐くには便利そうだけど

レスありがとうございました。
524デフォルトの名無しさん:2007/05/15(火) 09:30:16
最近mavenが増えて困る
525デフォルトの名無しさん:2007/05/15(火) 11:14:51
>>523
大量にビルドする時とか、JVM起動のフットプリントが結構響くので
makeだと2時間掛かるけどantに切り替えたら10分だった、という過去の経験がある。
最近のスペックのマシンとJVMだとそんなに気にならない可能性もあるけど
526sage:2007/05/15(火) 15:06:31
Java Web Start のスプラッシュ画像を変更する正しい方法を教えてください。
単に画像を入れ替えるだけだと更新されないばかりか
何度起動しても新しいスプラッシュ画像を毎回ダウンロードしてしまいます。
527デフォルトの名無しさん:2007/05/15(火) 16:40:46
slickeditを使っているが、コンパイルエラーが文字化けして使い物にならない。
そこでjavacの出力を英語かslickeditで日本語を表示できるようにするかのいずれかを
考えているのですが、どうすれば良いでしょうか?
slickeditはver11、 javaは最新版です。
528デフォルトの名無しさん:2007/05/15(火) 21:16:50
"1,2,3,4,5,6,"123,23,45",12,55"
のようのCSVデータで"123,23,45"のような""でかこまれた
箇所だけを除いて、カンマ区切りでデータを抽出するにはどうすれば
いいでしょうか。
StringTokenizerを使用しようとしてなかなかうまく行きません。
ご教授よろしくお願いいたします。
529デフォルトの名無しさん:2007/05/15(火) 21:27:46
何が言いたいのかよくわからんがsplitでも使えばいいんじゃないか
530デフォルトの名無しさん:2007/05/15(火) 21:37:33
いや、
1,2,3,4,5,6,"123,23,45",12,55

1 2 3 4 5 6 "123,23,45" 12 55
で分けたいのです。
"123,23,45"この部分をどうすればいいのかと・・・
531デフォルトの名無しさん:2007/05/15(火) 21:39:45
>>530
引用符外れるけど。

List<String> list = new ArrayList<String>();
StringTokenizer st = new StringTokenizer(str, "\"", true);
boolean inQoute = false;
while(st.hasMoreTokens()){
 String token = st.nextToken();
 if(token.equals("\"")) inQuote = !inQuote;
 else if(inQuote) list.add(token);
 else list.addAll(Arrays.asList(token.split(",")));
}
532530:2007/05/15(火) 21:45:32
>>531
サンクス!!
できました。
ありがとうございます!!
533デフォルトの名無しさん:2007/05/15(火) 21:49:20
>>531
123,23,45 の後に余分な空要素が入るような。
ま、>>530 の用が足りてるならかまわんけど。
534デフォルトの名無しさん:2007/05/15(火) 22:07:03
>>533
while(st.hasMoreTokens()){
 String token = st.nextToken(inQuote ? "\"" : "\",");
 if(token.equals("\"")) inQuote = !inQuote;
 else if(!token.equals(",")) list.add(token);
}
535デフォルトの名無しさん:2007/05/15(火) 22:11:09
プログラム未経験で入社して、研修を行っています。
変数とかif文までは理解できたのですが、for文がどうしても理解できず悩んでます。
特に二重ループ(?)になると混乱して・・・
なにかアドバイス貰えませんか?
536デフォルトの名無しさん:2007/05/15(火) 22:15:13
違う参考書を読んでみる
537デフォルトの名無しさん:2007/05/15(火) 22:15:44
>>535
その場で腕立て10回、腹筋10回を 10セットやってみよう。
それが二重ループだ。
538デフォルトの名無しさん:2007/05/15(火) 22:19:56
> 536
やさしいJavaって本で勉強はしたんですけど、研修で出た課題を解こうとしてもサッパリでして。
書き方乗っているから真似して書いて、と言われてます。
どこをどう真似すればいいのか聞いても、for文はループとしか答えてくれないんです。
539デフォルトの名無しさん:2007/05/15(火) 22:22:38
それ以上どういう説明すりゃいいんだよ
540デフォルトの名無しさん:2007/05/15(火) 22:24:15
forの前にwhileを学べ。whileの基本系に特化したのがforと言っても過言ではない。
541デフォルトの名無しさん:2007/05/15(火) 22:25:48
今からでも遅くなから転職を考えたらどうか

それがダメなら
その本でも違う本でも良いから何度も読んで例題をやってみるとか
誇張じゃなくて、本当に100回ぐらい繰り返して読むと突然理解できる時があるから
542デフォルトの名無しさん:2007/05/15(火) 22:26:44
>>537
腕立て1回やったら腹筋10回を10セットじゃね?

for(int 腕立て回数=0;腕立て回数<10; 腕立て回数++){
 腕立てやる();
 for(int 腹筋回数=0;腹筋回数<10;腹筋回数++){
  腹筋やる();
 }
}
System.out.println("もう無理ぽ");
543デフォルトの名無しさん:2007/05/15(火) 22:28:30
>>542
腕立て10回したら1分休憩を 10セットでも何でもいーけど。
544デフォルトの名無しさん:2007/05/15(火) 22:30:42
いやビリーにGJ!っていってもらったほうがいいな。
545デフォルトの名無しさん:2007/05/15(火) 22:31:37
ブートキャンプか
546デフォルトの名無しさん:2007/05/15(火) 22:37:14
>>538
じゃあ、forをどう理解してるか教えて
547デフォルトの名無しさん:2007/05/15(火) 22:40:29
>>542
それってさ、実行すると
腕立て→腹筋*10→腕立て→腹筋*10→・・・
ってことにならね?
548デフォルトの名無しさん:2007/05/15(火) 22:45:19
はいはい、ワロス、ワロス
549デフォルトの名無しさん:2007/05/15(火) 22:46:00
>> 546
理解しているというか教えられた内容はこんな感じです。
プログラムで繰返し処理を行う場合にfor文を使う
for文ではカウンターと呼ばれる変数をまわして処理が繰り返される
書き方はfor(初期化の式; 繰り返す数の式; 変化の式)と書く。

10回表示するとかは書けるんですけど、素数を表示しろってのが解らなくて・・・
550デフォルトの名無しさん:2007/05/15(火) 22:48:28
>>546
あと、変化の式とか初期化の式とかがよく解りません
やっぱり転職でしょうか
551デフォルトの名無しさん:2007/05/15(火) 22:49:31
549を読んで535の会話能力に不安を覚えた。
552デフォルトの名無しさん:2007/05/15(火) 22:58:11
まだ手に馴染んでないだけだろ。もう少し使って見てから質問したらどうだ。
553デフォルトの名無しさん:2007/05/15(火) 22:59:53
どーまん せーまん
どーまん せーまん
554デフォルトの名無しさん:2007/05/15(火) 23:28:48
>>549,550
そこからかぁ
ここで一から懇切丁寧説明すると長くなるからとりあえずJavaの入門サイトをググって自分
なりにある程度理解した上で質問した方がいいかも。
教育担当にしつこく食い下がる、でもいいけど(論点まとめた上でやらないと嫌がられると思うが)
まぁ最初は誰でも初心者だし理解するのは大変だろうけどこういうのってある日突然視界が
拓けるように見えてくるものだから諦めずにがんがれ。
555デフォルトの名無しさん:2007/05/16(水) 00:10:56
いるんだよ。こういうなんでも手取り足取り教えて君がさ・・
とくにJavaに多い
迷惑極まりない
もういいから、しんでくれ
556デフォルトの名無しさん:2007/05/16(水) 00:18:30
>>549
>プログラムで繰返し処理を行う場合にfor文を使う
間違い。
プログラム(アルゴリズム)で同じ処理を何度も行いたい場合、それを繰返し処理と呼ぶ。
for構文ってのは繰返し処理を実現するただの文法。
何を繰り返したいのか、考えてみること。
文字を出力するのか?数値を足すのか?数値で割れるのかを判定するのか?など。

>>555
いるんだよ。こういう文法だけ覚えろって先輩気取クンがさ・・・
とくにJavaに多い
迷惑極まりない
もういいから、しんでくれ
557デフォルトの名無しさん:2007/05/16(水) 01:44:17
JavaでMBRを書き換えるツールは作れますか?
558デフォルトの名無しさん:2007/05/16(水) 01:54:19
通常時はA.jpgの画像が表示され、ENTERを押すとB.jpgに変わる。
B.jpgにENTERを押すとまたA.jpgに戻り、終了時にはC.jpgがうつる。

というプログラムを組んだつもりなのですが、常にC.jpgだけがうつり、ENTERを押してもなんの反応も示しません。
どうすればいいのでしょうか?
559デフォルトの名無しさん:2007/05/16(水) 01:57:40
>>558
きみのプログラムが間違っているんだと思うぞ。
560デフォルトの名無しさん:2007/05/16(水) 02:05:29
ソースも晒さずにどう間違いを指摘しろと言うのだ
561デフォルトの名無しさん:2007/05/16(水) 04:31:15
>>558
18行目のifの条件を見直してみ
562デフォルトの名無しさん:2007/05/16(水) 04:35:36
>>558
> どうすればいいのでしょうか?

デバッグすれば?
563デフォルトの名無しさん:2007/05/16(水) 05:31:31

JFrameの上にFlashPlayer載せるにはどうすりゃいいですか?
 
564デフォルトの名無しさん:2007/05/16(水) 05:47:08
>>527
slickeditってのがどんなものなのか知らないけれど、
javacの実行環境のlocaleを英語にしたければ、
-J-Duser.language=en
をjavacのオプションにすればいい。-Jの後に空白を置かないように。
565デフォルトの名無しさん:2007/05/16(水) 05:48:53
FlashPlayer
JFrame
566デフォルトの名無しさん:2007/05/16(水) 11:29:05
質問です。
a.xlsというエクセルファイルにC:\\b.xlsという記述があるとします。

まずa.xlsをプログラム内で

POIFSFileSystem filein = new POIFSFileSystem(new FileInputStream(
"C:\\a.xls"));
の記述で開きます。

まずa.xlsは上記の様に直接プログラム内で指定しているので開けるのですが、
その後、a.xls内に記述されているC:\\b.xlsという文字列を読み込み、
例えばdataという変数に格納します。
それのdataという変数に格納されているC:\\b.xlsを参照して、

POIFSFileSystem filein = new POIFSFileSystem(new FileInputStream(
"C:\\b.xls"));

という様な形でb.xlsを開けるようにしたいのですがどうすればいいのでしょうか?

わかりにくくてすいません。要するに
直接プログラム内でパスを記述するのでなく、変数に格納されている文字列を読み込み
それをパスとして読み込んでファイルを開くという方法を教えていただきたいのです。
567デフォルトの名無しさん:2007/05/16(水) 11:41:19
変数に格納されているのならその変数をそのまま使えばいいのでは?
パスの形への整形は必要かもしれんが。
568デフォルトの名無しさん:2007/05/16(水) 12:34:06
ありがとうございます。
その整形方法がわからないのですが。。
569デフォルトの名無しさん:2007/05/16(水) 12:43:44
dataにC:\\b.xlsって文字列が格納されてるなら
POIFSFileSystem filein = new POIFSFileSystem(new FileInputStream(data));
でええんとちゃうのん?
整形も何も必要ないような
って必要あるね
dataがStringだとして
data=data.replaceAll("\\\\","\\");
とでもすれば?
570デフォルトの名無しさん:2007/05/16(水) 14:06:51
>>569
しなくていい
POIFSFileSystem filein = new POIFSFileSystem(new FileInputStream(data));
でええはず
あるいは data が Array や ArrayList みたいなのだったらループ汁
571558:2007/05/16(水) 14:20:48
今調べてますが、
とりあえず内容をあげてました。
http://www.vipper.org/vip508105.txt.html
572558:2007/05/16(水) 14:27:22
>>571のやつは、ちょっとC.jpgの部分辺りが消えてしまってるんですが・・・
573デフォルトの名無しさん:2007/05/16(水) 14:40:49
試さずにコメントするけど
switchの中でgetKeyCode()を何度も呼び出してるからじゃないかな
574デフォルトの名無しさん:2007/05/16(水) 14:44:21
paint の中
bkgrp 毎回 null
575デフォルトの名無しさん:2007/05/16(水) 14:47:42
なんだ釣りか
576デフォルトの名無しさん:2007/05/16(水) 14:49:38
>>571
KeyEvent の届き方ってのは仕様が無い。プラットフォーム毎(キーボードの種類毎)に挙動が違う。
keyPressed は押し始めに 1回だけ呼ばれるという前提で書いてるみたいだけど、
キー押し始めてからキー離すまで nミリ秒ごとに keyPressed を呼び出すプラットフォームもあるので要注意。
577デフォルトの名無しさん:2007/05/16(水) 15:56:37
>>570
ほんとだ。"C:\\\\\\\\\\hoge.txt"とかでも大丈夫だった。
先頭にドライブ文字が付いているからUNCパスと区別できるってことか。
578デフォルトの名無しさん:2007/05/16(水) 16:00:03
RMIサーバを作成しています。
リモートオブジェクトがGCのタイミングで無くなってしまう可能性
ttp://d.hatena.ne.jp/nowokay/20060817
を潰しておきたいのですが、
static変数に持っておく、参照が切れない事が分かっている
インスタンスの変数とする、等の方法しか無いのでしょうか。
コード的に、もうちょっと体裁の良い形にしておきたいのですが。

また、リモートオブジェクトのエクスポートの瞬間にオブジェクトが
取得される可能性があるからコンストラクタでの処理が云々、
と言った話をトラブル話として過去に聞いたのですが、当時良く理解出来ませんでした。
この情報から推測できそうな有名な落とし穴等ありますでしょうか?
579デフォルトの名無しさん:2007/05/16(水) 19:45:31
プログラミング自体が完全に初心者なんですが、そういう初心者向けのJavaの参考書はなにがいいでしょうか?
いまのところ、一冊は候補があってもう何冊か目星をつけて見比べたいので。
580デフォルトの名無しさん:2007/05/16(水) 20:54:58
>>579
なぜプログラミングができないのかって本。
中身はJava入門本、目から何か出る。
581デフォルトの名無しさん:2007/05/16(水) 22:57:09
目からビーーーーム!!
・・・は既にでじこも卒業
582デフォルトの名無しさん:2007/05/16(水) 23:52:11
>>579
ぜったいコレ
http://www.amazon.co.jp/Head-First-Java%E2%80%95%E9%A0%AD%E3%81%A8%E3%81%8B%E3%82%89%E3%81%A0%E3%81%A7%E8%A6%9A%E3%81%88%E3%82%8BJava%E3%81%AE%E5%9F%BA%E6%9C%AC-%E3%82%AD%E3%83%A3%E3%82%B7%E3%83%BC-%E3%82%B7%E3%82%A8%E3%83%A9/dp/4873111730

よく初心者に勧める本っていえば、猫でもわかる〜系が有名だけど
「本物の初心者」ならプログラミングって概念がさっぱりわからんだろうから
図やイラストがたくさんあったほうがかなりわかりやすい

(その辺を考慮せず薦める中級者・上級者がやたら多い)

なので、この本おすすめ
オライリー本だから当然、文章も良文です
583デフォルトの名無しさん:2007/05/17(木) 04:38:42
beanにinit()の初期化処理が入っています。
そのbeanをJSPからusebeanした場合、beanのinit()の部分の処理は次回のjspへのリクエスト時は処理されないですみますか?
それともjspへのリクエストの度にusebean⇒beanのinit()処理となってしまいますか?
584デフォルトの名無しさん:2007/05/17(木) 07:48:09
>> 582
恒例の流れなんだが、Head First Javaは良書だが初心者にはどうかと。
どんな本でも良いんだが、打ち込んだソースが動かないとか、論外。

自分的にはGoogleが一番良い参考書だと思うぞw
585デフォルトの名無しさん:2007/05/17(木) 07:51:27
>> 583
beanのコンストラクタから init() を呼び出しているって事でOK?

useBeanした時にどうなるかは、beanのスコープに依存する。
スコープがrequestならば毎回初期化される(インスタンスが生成される)。
sessionであるならば、同一sessionで使いまわされると理解して良い。
(細かい所は省略しているからあとは自分で調べろ)

initにSystem.outとかブレイクポイントとか仕掛けて、両方の挙動を確認するのがいいよ。
586デフォルトの名無しさん:2007/05/17(木) 11:36:37
諸先輩方、アドバイスお願いします。

オライリーのJAVAクイックリファレンスで勉強中なんですが
初期の段階(クラスのメンバー等)のところでつまづいてなかなか先に進めないでいます。
とりあえずと読み進めていますが、理解できないところが多くなってきました。
こういうときは、理解できるまで繰り返し読むしかないのか
分からないなりに一通り読み進めていく方が良いのか、どちらの方が良いでしょうか?
そもそも、この程度の箇所でつまづいてる時点ではJAVAはまだ早いでしょうか?
厳しい意見でも構いませんのでアドバイスお願いします。
587デフォルトの名無しさん:2007/05/17(木) 11:39:47
>>586
プログラムを実際に組んで動かしたことありますか?
588586:2007/05/17(木) 11:44:56
>>587
クイックリファレンスに掲載されているものは打ち込んで動かしていますが、
自分で何かを組んだりしたことはありません。
589558:2007/05/17(木) 12:18:27
遅くなりましたが返答ありがとうございます。
しかし未だにプログラムは完成してません。
もう少し自分で頑張るつもりです。
590名無しさん:2007/05/17(木) 12:31:37
591586:2007/05/17(木) 12:46:52
>>590
現在掲載されているのは計算が主体のようですね。
でも、勉強になります。連載中のようなのでこれからが楽しみです。
ありがとうございました。
592586:2007/05/17(木) 12:49:16
>>590
各回は1ページではなかったんですね・・・。
最後のページに演習があったのに今気付きました。
やってみようと思います。
593デフォルトの名無しさん:2007/05/17(木) 14:38:14
String expr = "2 * 3 + 7";
Calculator calc = new Calculator();
String value = calc.eval(expr);

value = 13 になる
みたいなクラスってありますか?

594デフォルトの名無しさん:2007/05/17(木) 14:54:19
>>593
自分で作ってください
595デフォルトの名無しさん:2007/05/17(木) 15:13:34
そのものというわけにはいかないが
6以降ならスクリプトAPI使ってRhinoに評価させるって手はあるな
596デフォルトの名無しさん:2007/05/17(木) 15:32:40
ちっこいコンパイラ作るつもりでやってみw
597デフォルトの名無しさん:2007/05/17(木) 15:45:26
与えられた正の整数の因数を全て表示するプログラムを作成しなさい。たとえば12の場合、2,3,4,6を表示する。

というような問題はループを使うのですか?どなたか答えを、、
598デフォルトの名無しさん:2007/05/17(木) 15:53:57
再帰を使えと?
599デフォルトの名無しさん:2007/05/17(木) 16:02:55
>>597
何を使っても良いのでは

void printInnsuu(int n){
for(int i = 2; i <= n / 2; i++)if(n % i == 0 )System.out.print(i + ",");
}
600デフォルトの名無しさん:2007/05/17(木) 16:29:41
>599さん
ありがとうございました(^3^)/
601デフォルトの名無しさん:2007/05/17(木) 17:21:48
>>593 jay+JFlexならこんな感じで
--Calculator.jay
%{
public class Calculator {
private Integer result;
%}%token <Integer> NUMBER
%type <Integer> expr
%left '+'
%left '*'
%%
string: | string expr { result = $2; }
expr: NUMBER { $$ = $1; }
| expr '+' expr { $$ = Integer.valueOf($1.intValue() + $3.intValue()); }
| expr '*' expr { $$ = Integer.valueOf($1.intValue() * $3.intValue()); };
%%
public String eval(String expr) throws Calculator.yyException, java.io.IOException {
yyparse(new Lexer(new java.io.StringReader(expr)));
return String.valueOf(result);
}
}
602デフォルトの名無しさん:2007/05/17(木) 17:23:27
--Lexer.flex
%%
%public
%class Lexer
%implements Calculator.yyInput
%type int
%eofval{
return YYEOF;
%eofval}
%{
private int token;
private Object value;
public boolean advance() throws java.io.IOException { return (token = yylex()) != YYEOF; }
public int token() { return token; }
public Object value() { return value; }
%}
%%
" " { }
[1-9][0-9]* { value = Integer.valueOf(yytext()); return(Calculator.NUMBER); }
. { return yytext().charAt(0); }
--Test.java
public class Test {
public static void main(String[] args) throws Exception {
String expr = "12 + 3 * 7";
Calculator calc = new Calculator();
String value = calc.eval(expr);
System.out.println(expr + " = " + value);
}
}
603デフォルトの名無しさん:2007/05/17(木) 18:36:39
jarを作って、プログラムの中からjarを実行させたいのですが、
可能でしょうか?
604デフォルトの名無しさん:2007/05/17(木) 20:39:31
>>603
イミフ
605デフォルトの名無しさん:2007/05/17(木) 22:24:04
>>604
たとえばSWTで1画面作って、jarにして
別のシステムからボタンクリックイベントとかで、
このjarにした画面を呼ぶ事ができるのかなって、、、
606デフォルトの名無しさん:2007/05/17(木) 22:27:35
>>605
できると思うけど。

具体的な状況がサッパリわからんので、
具体的にどうやるかは自分で考えれ。
607デフォルトの名無しさん:2007/05/17(木) 22:57:49
>>606
SWTで画面を作って、jarにするところまでできたのですが、
それを今度は、JFrameで作った画面のボタンクリックイベントで
jarにした画面を表示させたいのですが、具体的にどう記述すれば良いか
色々しらべてもわからなかったので、もしよろしければ教えてください。
608デフォルトの名無しさん:2007/05/17(木) 23:10:43
>>607
Runtime.exec(String command)
609デフォルトの名無しさん:2007/05/17(木) 23:30:38
class Sample{
    static boolean b;
    public static void main(String[] args){
       int x = 0;
if (b) {
  x = 1;
} else if(b = false) {
x = 2;
} else if(b) {
x = 3;
} else {
x = 4;
}
System.out.println("x = " + x);
   }
}


「if(b = false)」のところでbの初期値であるfalseと一致し、
「x = 2」と出ると思っていたのですが、
実行すると「x = 4」と表示されます。
何故そうなるかご教授願いたいのです。
610デフォルトの名無しさん:2007/05/17(木) 23:38:54
>>609

>} else if(b = false) {

bにfalseを代入してるから?
611デフォルトの名無しさん:2007/05/17(木) 23:40:21
> 「if(b = false)」のところでbの初期値であるfalseと一致し、
それ、比較じゃなくて代入だから。

比較したいなら if(b == false)
612デフォルトの名無しさん:2007/05/17(木) 23:52:40
booleanとtrue,falseを比較なんて身の毛もよだつ
バグが入るので絶対お薦めしません
if( b )
if( !b )
これでいいだろ?
613609:2007/05/18(金) 00:01:22
比較の"=="じゃなく、"="なので代入になってしまっていたわけですね。
なるほど、わかりました。
どうもありがとうございました。
614デフォルトの名無しさん:2007/05/18(金) 00:45:18
>>612
if(b){} else {} でいいじゃん。
615デフォルトの名無しさん:2007/05/18(金) 01:09:47
Sunのコーディングスタイルはif(b==ture) else

>>608
そういう意味じゃなくてOOoみたいに別々に固めた別コンポーネント(ウィジェット)を連携したいって意味じゃない?
616デフォルトの名無しさん:2007/05/18(金) 01:16:01
> Sunのコーディングスタイル
http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

> f(b==ture) else
そんな事書いてなくね?
617デフォルトの名無しさん:2007/05/18(金) 01:22:39
boolean b = false;

【不恰好なコード】
if (b == true) {
 // 処理 
} else if (b == false) {
 // 処理 
}

【美しいコード】
if (b) {
 // 処理 
} else if (!b) {
 // 処理 
}
618デフォルトの名無しさん:2007/05/18(金) 01:25:01
> } else if (!b) {
釣りか?
619デフォルトの名無しさん:2007/05/18(金) 01:26:16
酔ってるんだ
みなかったことにしてくれ
620デフォルトの名無しさん:2007/05/18(金) 06:24:48
>>609
ちなみに == true を書く派だが、これは盲点。
 if( b = false) ってバグは怖いな

ためしにint あたりで同じバグを書いてみよう
 if(i = 10)
とかね。
こっちはコンパイルエラーとなる。

実はJavaの場合、代入式の実行結果として代入値が返されるんだわ。
だからint の場合は、代入値(10)が ifの論理式の所に渡されるからNG。
これに対して、boolean の場合は、falseが渡されるから、結果としてOK。

そう考えると、612の主張もアリと感じる。
621デフォルトの名無しさん:2007/05/18(金) 06:45:48
比較演算の結果は boolean なので、 boolean を true, false と
比較するというのなら比較演算の結果も当然比較するべきだろう。
その結果も boolean なので(以下略
622デフォルトの名無しさん:2007/05/18(金) 07:37:55
(...(((b == true) == true) == true) ... == true)
623デフォルトの名無しさん:2007/05/18(金) 08:06:04
無限再帰ってこわくね?
624デフォルトの名無しさん:2007/05/18(金) 10:24:01
javaって肥大化していくCで書かれたソフトウェア開発コスト下げれるの?
速度速いしC++の方がいいと思うんだけど。
625デフォルトの名無しさん:2007/05/18(金) 10:31:11
>>624
JavaでCのソフトは作れないなぁ
626デフォルトの名無しさん:2007/05/18(金) 10:41:14
>>625
組み込みシステムとかは?
627デフォルトの名無しさん:2007/05/18(金) 11:24:29
どの言語も使いどころが違うからなあ
マルチリンガル必須だよ
628デフォルトの名無しさん:2007/05/18(金) 12:30:18
boolean は、真偽値しか入ってこない型なんだから
判定では、比較させないのがバグを回避するのに有効だと思うが・・・・

Cや、Perlなど boolean以外の値も真偽判定に使えるような言語だと、
比較を書くのは真偽判定に使っていると明示すことこになって嬉しいんだけど
Javaはbooleanでしか判定しないので比較を書かない方がいいと思う
629デフォルトの名無しさん:2007/05/18(金) 12:46:29
>>628
ふむふむ。
それならば、メソッドの戻り値がbooleanの場合はどうする?
if(isHogeHoge()) {}

if(isHogeHoge() == true) {}
だと後者のほうが解りやすいと俺は思う。

変数だと書かないのもありと思うけど、でも!は嫌いだなぁ。
見落とすんだよね・・・
630デフォルトの名無しさん:2007/05/18(金) 13:32:15
>>629
俺は >>628 じゃないけど、前者の方が良い。

if (!isHoge()) と if (isHoge() == false) でも前者かな。
631デフォルトの名無しさん:2007/05/18(金) 13:33:19
== true を入れられると、何か頭を使わないと理解できない。
慣れの問題だろうが、俺はない方がはるかに分かりやすい。

というか、C/C++ 使ってると true と比較するのはものすごく抵抗がある。
ctype.h の is 系関数とか 1 以外の値も返すようになってる実装だったりすることも多いし。
632デフォルトの名無しさん:2007/05/18(金) 13:40:30
C/C++ だと == NULL とか != NULL は良くやる。

ってか、文法似てるけど別の言語だからスレ違いだね。ごめん。
633デフォルトの名無しさん:2007/05/18(金) 13:41:24
ポインタは真偽値じゃないから書くのが普通だろう。
634デフォルトの名無しさん:2007/05/18(金) 13:46:46
>>629
個人的主観で言うならば日本語に直してスムーズに読める方を採用する
if(isHogeHoge()){} →もしHogeHogeならば(比較的素直に読める)
if(isHogeHoge() == true){} →もしHogeHogeが真ならば(いかいもプラグラム的)
635デフォルトの名無しさん:2007/05/18(金) 14:31:32
>>618
こう考えるんだelse if(!b)else assert false;
それは契約だと・・・・なんだって?到達不能だって?
636デフォルトの名無しさん:2007/05/18(金) 14:33:19
>>635
b が別スレッドから変更される可能性があるんだよ。たぶん。
637デフォルトの名無しさん:2007/05/18(金) 15:07:02
何という危険なプログラム!
638デフォルトの名無しさん:2007/05/18(金) 15:48:14
>>637
つ volatile
639デフォルトの名無しさん:2007/05/18(金) 16:02:38
いや、それ何の解決にもなりませんから。
640デフォルトの名無しさん:2007/05/18(金) 16:23:51
public class VolatileSolvesEverything {
private boolean 解決 = false;

/* 中略 */

if (解決) { /* 嘘やん(心の声) */} else { /* 到達不能ということにしたい */ }

}
641デフォルトの名無しさん:2007/05/18(金) 16:29:53
>>629
!を見落とすより間違った代入を見落とした方がバグとして痛いだろう
642デフォルトの名無しさん:2007/05/18(金) 17:21:34
if(true - true == 0)
643デフォルトの名無しさん:2007/05/18(金) 17:32:37
>>642
booleanは引き算できないってこと分かってる?
644デフォルトの名無しさん:2007/05/18(金) 18:02:16
初心者の質問じゃないかもしれないけど、
どなたか教えてください。

ドメインaaaaa.comからhttp://bbbbb.com/へ
リンクが貼られているかをチェックするプログラムを作りたいと思っています。

現在サイト運営していて、
相互リンク先から本当に自分のサイトにリンクされているのかを、
確認したいと思っているのですが、
リンク件数が1000件を超えているため、
プログラムでチェックしたいとおもっています。

Javaでなくてもいいのですが、
JSpiderというものがあるのを知り、
こちらにかきこませていただきました。

べつに言語はJavaに固執しているわけではありません。

参考になるサイトなどありましたら教えていただけないでしょうか。
どなたかお願いします。
645デフォルトの名無しさん:2007/05/18(金) 19:47:43
646デフォルトの名無しさん:2007/05/18(金) 20:02:30
>>644
パッシブな調査方法でいいのなら、
ログのリファラをチェックするのが一番確実だと思います。
それだと、相互リンク自体が有効かどうかチェックできるし
ネットワークトラフィックを発生させる事もありません。

1.相互リンクをお願いする
2.相手にリンク作ったら1回踏んで動いていることをチェックしてもらう
3.毎月(自分の納得する頻度で)ログをチェックする
4.相互リンクを結んでいる相手のリファラを持つアクセスが無い相手のみ目でチェック

これでOK.
1000件以上も単なるリンクチェックだけに回るのは
極めて非常にとても無駄です。
647デフォルトの名無しさん:2007/05/18(金) 20:17:52
俺は ! の後には必ず空白入れるようにしてる。
if(! b) みたいに、目立つように。
648デフォルトの名無しさん:2007/05/18(金) 20:18:05
649デフォルトの名無しさん:2007/05/18(金) 20:19:22
650デフォルトの名無しさん:2007/05/18(金) 20:20:03
651デフォルトの名無しさん:2007/05/18(金) 20:25:57
>>647
俺らは ! は必ず三つ並べるようにしてる。
if(!!!b) みたいに、目立つように。
652デフォルトの名無しさん:2007/05/18(金) 20:35:36
>>651
なにー!
くそー、じゃあオレは4つ並べちゃうぞ
653デフォルトの名無しさん:2007/05/18(金) 20:39:33
>>652
ちょw それヤバいwww
654デフォルトの名無しさん:2007/05/18(金) 20:41:49
>>652
だめじゃん
655デフォルトの名無しさん:2007/05/18(金) 20:42:27
>>653
ってか、3つや5つならオッケーなんだよな。
4つや6つ並べると負けってのは何か理不尽じゃね?

納得いかない奴の数→(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ry
656デフォルトの名無しさん:2007/05/18(金) 20:48:07
>>653

wを2つ並べるのも避けてるみたいですが、意図的ですか!!!ww1w!w!!ww


        というか
    _, ._   金曜の夜なのに
  (´・ω・)   くそレスが次から次へと…
  ○={=}〇,
   |:::::::::\, ', ´
、、、、し 、、、(((.@)ww意図的ですか!!!ww1w!w!!wwwbw!!ww

657デフォルトの名無しさん:2007/05/18(金) 21:24:47
>>638-639
結局、JSR-133って何が変わったんだっけ?
658デフォルトの名無しさん:2007/05/18(金) 21:29:48
!!! って流石に ! に最適化されるよね?
659デフォルトの名無しさん:2007/05/18(金) 21:36:31

  (´・ω・)   く あまり糞レス増やすなよー
  ○={=}〇,
   |:::::::::\, ', ´
、、、、し 、、、(((.@)!!! って流石に ! に最適化されるよね?
660デフォルトの名無しさん:2007/05/18(金) 23:33:39
!って1個じゃなくてもいいの!?
661デフォルトの名無しさん:2007/05/18(金) 23:34:59
!!?!
662デフォルトの名無しさん:2007/05/18(金) 23:35:00
>>660 単項演算子だからね。
663デフォルトの名無しさん:2007/05/18(金) 23:35:44
1++++---+--+++++-+-++-+2
664デフォルトの名無しさん:2007/05/18(金) 23:42:10
ああそうか2個あったらfalseの逆になるのか
665デフォルトの名無しさん:2007/05/19(土) 00:08:50
>>645
>>646
>>648-650

ありがとうございます。
参考にさせてもらいます。
666デフォルトの名無しさん:2007/05/19(土) 00:21:33
>>663
構文エラーだね。
667デフォルトの名無しさん:2007/05/19(土) 00:27:41
1+ + + +- - -+- -+ + + + +-+-+ +-+2
668デフォルトの名無しさん:2007/05/19(土) 00:30:44
>>667
マジレスすると、Java では 1 ++ ++ -- + -- ++ ++ + - + - ++ - + 2 と区切られなければならない。

1++2 も同じ理由でコンパイルエラーになる。
669デフォルトの名無しさん:2007/05/19(土) 00:32:35
マイナスが一個足りないな
670デフォルトの名無しさん:2007/05/19(土) 02:45:35
ネットワーク対戦のゲームを作りたいのですが、
クライアントサイドにSwingをサーバサイドにサーブレットを使おうと考えています。
通信部分はどうしたらいいのでしょう。

671デフォルトの名無しさん:2007/05/19(土) 02:51:40
ServletならJakarta Commons HTTP Clientを使っとくのが楽かもね。
672670:2007/05/19(土) 03:02:16
>>671
ありがとうございます。
ググってみたのですがよくわかりません…
詳しく教えていただけないでしょうか?
673デフォルトの名無しさん:2007/05/19(土) 03:39:51
わからんのなら素直にSocketでも使っとけ。
674デフォルトの名無しさん:2007/05/19(土) 05:43:23
>>671
HTTPSでも問題ないですか?
675デフォルトの名無しさん:2007/05/19(土) 05:45:14
676デフォルトの名無しさん:2007/05/19(土) 06:17:14
ttp://www.ipa.go.jp/security/awareness/vendor/programming/a03_04.html

このページにある、リスト2 InfoMenuクラスのソースなのですが、

10 public void dispMenu(Passwd pwd) {
11 if(pwd.checkPasswd() == true) {
12 dispSystem();

10行目の部分でPasswdクラスのオブジェクトを取ってくると記述されていますが、
PasswdクラスとinfoMenuクラスが親子関係という訳でもなく、
infoMenuクラスからPasswdオブジェクトを作っている記述もありません。

なぜ、dispMenu(Passwd pwd)だけで任意のPasswdオブジェクトが取得できるのでしょうか?
677デフォルトの名無しさん:2007/05/19(土) 07:41:15
>>676
> 10行目の部分でPasswdクラスのオブジェクトを取ってくると記述されていますが、

そんなこと書いてない。テキストを誤解している。
678デフォルトの名無しさん:2007/05/19(土) 07:43:54
>>676
「Passwdを取得する」ではなく「Passwaを引数とする」ではないの?
679676:2007/05/19(土) 08:11:34
そのとおりです、オブジェクトを引数として渡してるだけでしたorz

何故か初歩的なこと忘れてました。
「dispMenu(Passwd pwd)」って記述したら自動的に
「dispMenuに渡された引数がそのままPasswdに渡されて、尚且つpwdオブジェクトが生成される」とか
変なことばかり考えてまして。

ありがとうございました。
680デフォルトの名無しさん:2007/05/19(土) 13:46:16
注:str.java の操作は、未チェックまたは安全ではありません。
注:詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてください
というエラーがコンパイルすると出るんですがなぜですか?
同じものを学校のPCでやってもでなかったのに
681デフォルトの名無しさん:2007/05/19(土) 14:13:45
>>680
javac -source 1.4 str.java
ってやってみ?
学校のコンパイラのバージョンは古いからエラーが出なかったんだ。
682デフォルトの名無しさん:2007/05/19(土) 14:25:36
>>681
できました!
ありがとうございます
683デフォルトの名無しさん:2007/05/19(土) 19:24:25
ha= buf.readLine();

switch (ha.charAt(0)){
case'+':
kg=1;
case'-':
kg=2;
case'*':
kg=3;
case'/':
kg=4;
}

の部分に

Exception in thread "main" java.lang.NumberFormatException: For input string: "+"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at RinkouPractice4.main(RinkouPractice4.java:22)

ってエラーが出てコンパイルできるが実行できないんですが原因を教えてください
684デフォルトの名無しさん:2007/05/19(土) 19:40:43
>>683
とりあえずエラーが発生してる場所が違うな。

>at java.lang.Integer.parseInt(Unknown Source)
>at RinkouPractice4.main(RinkouPractice4.java:22)

まぁこれ見る限りreadLine()してきたデータそのままparseInt()に渡してるんだろうな
685デフォルトの名無しさん:2007/05/19(土) 20:41:46
public static void main(String[] args)throws IOException {
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); //標準入力の準備
String ha,s1,s2,b1,b2;
int kg;
int si1,si2,bo1,bo2;
System.out.println("数値を入力"); //ユーザに入力を促す
s1=buf.readLine();
b1=buf.readLine();
si1 = Integer.parseInt(s1);
bo1 = Integer.parseInt(b1);
ha= buf.readLine();
s2=buf.readLine();
b2=buf.readLine();
si2 = Integer.parseInt(s2);
bo2 = Integer.parseInt(b2);
Kazu v1 = new Kazu(si1,bo1);
Kazu v2 = new Kazu(si2,bo2);
// Hantei h = new Hantei();
// kg = h.opr(ha.charAt(0));
kg=0;
switch (ha.charAt(0)){
case'+':
kg=1;
case'-':
kg=2;
case'*':
kg=3;
case'/':
kg=4;
}
なぜエラーが出るんですか?
686デフォルトの名無しさん:2007/05/19(土) 21:17:08
RinkouPractice4.javaの22行目どうなってる?
mainメソッドから数えて22行目じゃなくてファイルの頭から数えて22行目。
>si1 = Integer.parseInt(s1);
>bo1 = Integer.parseInt(b1);
>si2 = Integer.parseInt(s2);
>bo2 = Integer.parseInt(b2);
どれかのはずだけど…

んで、なんでエラーになるかというと、parseIntメソッドの仕様だから

>文字列の引数を符号付き 10 進数の整数型として構文解析します。
>文字列にある文字はすべて、10 進数でなければなりません。ただし、
> 1 番目の文字だけは、負の値を表すためにマイナス記号の ASCII 文字
>「-」(「\u002d」) であってもかまいません。

これに”+”付の数字渡せば
>Exception in thread "main" java.lang.NumberFormatException: For input string: "+"
となる、と。
入力データのチェック入れれば回避できるんでない?
687デフォルトの名無しさん:2007/05/19(土) 21:41:49
20 s1=buf.readLine();
21 b1=buf.readLine();
22 si1 = Integer.parseInt(s1);
23 bo1 = Integer.parseInt(b1);
24 ha= buf.readLine();
25 s2=buf.readLine();
26 b2=buf.readLine();
27 si2 = Integer.parseInt(s2);
28 bo2 = Integer.parseInt(b2);
29
30 Kazu v1 = new Kazu(si1,bo1);
31 Kazu v2 = new Kazu(si2,bo2);

こうなってますが具体的にはどうすればよいのでしょうか?
688デフォルトの名無しさん:2007/05/19(土) 23:01:22
>>680-682
Generic使えよ
689デフォルトの名無しさん:2007/05/19(土) 23:53:00
入力データのチェックって何ですか?

まだ出来ないんですが誰か助けてください
690デフォルトの名無しさん:2007/05/20(日) 00:14:34
J2EEのライブラリを書くときにServlet APIのインタフェースライブラリだけが欲しいんですが
これってTomcatとかから借りてきてそのまま配布してもいいんですか?
691デフォルトの名無しさん:2007/05/20(日) 00:30:24
>>689
readLineメソッドで読み込んだ文字列(変数ha以外)が数字又は一文字目が"-"以外だったら
エラー処理を行う(再入力させるもよし、Exception投げるもよし、問答無用でプログラム終了でも…)
要するにInteger#parseIntがちゃんと処理できる値が入力されていることを保証してやる
ユーザが作り手の意図した通りの入力してくれるとは限らないから入力チェックは必須。
692デフォルトの名無しさん:2007/05/20(日) 00:59:45
int readInt() throws EOFException {
 while(true) {
  String str = buf.readLine();
  if(str == null) { throw new EOFException(); }
  try { return Integer.parseInt(str); }
  catch(NumberFormatException e) {
   System.out.println("残念、もう一度");
  }
 }
}
693デフォルトの名無しさん:2007/05/20(日) 02:11:35
>>688
残念ながら1.4が本当のターゲットらしいんでgenericsを使っちゃコンパイルできなくなる。
別の所でそれより新しいバージョンでコンパイルして警告を出されて焦ったようだ。
694デフォルトの名無しさん:2007/05/20(日) 04:08:12
>>693
つ -source 1.5 -target jsr14
695デフォルトの名無しさん:2007/05/20(日) 04:13:02
WindowsでもLinuxでも動作する
USBポートに対する入出力を行うライブラリでオススメ教えてください
696デフォルトの名無しさん:2007/05/20(日) 04:23:35
整数を任意に入力していき、0を入力したら最大値は何番目にでてきたか出力する
プログラムですが、たとえば
0>10
1>11
2>0
と入力すると、本来
1
と出力されてほしいのに、
1
1
と出力されてしまいます。
どこがおかしいのかご教授くださいmm
697697:2007/05/20(日) 04:26:12
import java.io.*;

public class enshu41b {
 public static void main(String[] args) throws Exception {
  BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  int[] a = new int[100];
  int count = 0;
  while(count < a.length) {
   System.out.print(count + "> ");
   int v = (new Integer(in.readLine())).intValue();
   if(v == 0) { break; }
   a[count] = v;
   ++count;
   }
  int max = a[0];
  int[] mn = new int[100];
  mn[0] = 0;
  int count2 = 0;
  for(int i = 1; i < count; ++i) {
   if( a[i] > max ) {
   max = a[i];
   count2 = 0;
   mn[count2] = i;
   }
  if( a[i] == max ) {
  ++count2;
  mn[count2] = i;
  }
 }
 for(int i = 0; i <= count2; ++i) {
 System.out.println(mn[i]);
 } } }
698デフォルトの名無しさん:2007/05/20(日) 06:03:42
>>695
jUSBを自分でwindowsに対応させる。
699デフォルトの名無しさん:2007/05/20(日) 06:26:32
>>694
これ便利だな
はたからthx
700デフォルトの名無しさん:2007/05/20(日) 07:25:48
>>696
境界条件を頭の中でシミュレート。わかんねーならトレース実行でもしろ。
701デフォルトの名無しさん:2007/05/20(日) 08:35:25
>>694
1.4でコンパイルするのが目的で1.5以上のコンパイラの機能は使えない
1.4の実行環境をターゲットにして1.5以上でコンパイルするんじゃないから
1.4のコンパイラしかない環境でコンパイルするにはそのオプションは空しい
702デフォルトの名無しさん:2007/05/20(日) 11:17:59
ObjectInputStreamのreadObject()でファイルを最後まで読みたいんですがどうもうまくいきません。
whileのところが今のままではjava.lang.Object と int は比較できません。というエラーがでます。
どなたか教えてください。

/**************** ファイルから入力 *****************/
List messages = new ArrayList();
try{
ObjectInputStream ois = new ObjectInputStream(
new FileInputStream( file ) );
Object obj;
// ファイルの終端に達するまで読み込む
while( ( obj = ois.readObject() ) != -1 ){
Map map = (Map) obj;
messages.add( map );
}
if( ois != null ) ois.close();
}
catch( Exception ex ){
ex.printStackTrace();
}
finally{
System.out.println( "end input" );
}
703デフォルトの名無しさん:2007/05/20(日) 11:20:04
whileの中の-1ってなんだ? 説明できるか?
704デフォルトの名無しさん:2007/05/20(日) 11:24:28
とりあえずclose()する前にflush()しとけ
705デフォルトの名無しさん:2007/05/20(日) 11:28:07
教える側も素人かよ^^;

>>702
とりあえずJavaDoc嫁。EOFを返すなどと何処に書いてある?
2chを辞書代わりに使うな、むしろ時間の無駄と分かるぞ。
706デフォルトの名無しさん:2007/05/20(日) 11:31:41
ObjectInputStreamのAPIドキュメントに
>>バイト単位の読み込みでは、バイトが読み込まれたときに -1 が返されます。プリミティブ読み込みでは、EOFException がスローされます。
こういうこと書いてたので-1が返るのかなと思ってました。
それじゃもっとよんでみます
707デフォルトの名無しさん:2007/05/20(日) 11:39:57
ああreadObjectはバイト単位でもプリミティブ単位でもないのかごめん
708デフォルトの名無しさん:2007/05/20(日) 11:43:36
>>700
どうしてそんな偉そうなんだ?
709デフォルトの名無しさん:2007/05/20(日) 11:49:22
>>708
逆ギレかよ、わかんねーならそれなりの態度があるだろうに
710デフォルトの名無しさん:2007/05/20(日) 13:45:50
2ch向いてねえな
711デフォルトの名無しさん:2007/05/20(日) 16:04:19
無職乙
712デフォルトの名無しさん:2007/05/20(日) 17:22:35
年数を入力して、うるう年と一般の年を判別後、月を入力して、
その月が何日あるかについてのプログラムを組んでみたのですが、

コンパイル問題が未解決です。
構文エラーがあります。"}" を挿入して MethodBody を完了してください。
構文エラーがあります。"}" を挿入して ClassBody を完了してください。

と出て実行できません。
最後の『 } 』の数は合っていると思うのですが、何故エラーが出ているのでしょうか?
713712:2007/05/20(日) 17:23:51
public static void main(String[] args) {
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
try
{
System.out.println("今は何年ですか?");
String line=reader.readLine();
int year=Integer.parseInt(line);
if(year%4==0)
{
System.out.println(year +"年ですね。");
System.out.println("今月は何月ですか?");
line=reader.readLine();
int month=Integer.parseInt(line);

if(month==2){
System.out.println("2月の日数は28日です");
}else if(month==4 || month==6 || month==9 || month==11){
System.out.println(month +"月の日数は30日です");
}else if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12){
System.out.println(month +"月の日数は31日です");
}else{
System.out.println("月数の範囲を超えています");}

}
714712:2007/05/20(日) 17:24:33
else if(year%4!=0)
{

System.out.println(year +"年ですね。うるう年です。");
System.out.println("今月は何月ですか?");
line=reader.readLine();
int month2=Integer.parseInt(line);

if(month2==2){
System.out.println("2月の日数は29日です");
}else if(month2==4 || month2==6 || month2==9 || month2==11){
System.out.println(month2 +"月の日数は30日です");
}else if(month2==1 || month2==3 || month2==5 || month2==7 || month2==8 || month2==10 || month2==12){
System.out.println(month2 +"月の日数は31日です");
}else{
System.out.println("月数の範囲を超えています");}
}
}catch(IOException e){
System.out.println(e);
}catch(NumberFormatException e){
System.out.println("月に入力できる数は1〜12の実数です");}
}
  }
}
715712:2007/05/20(日) 17:26:50
開発環境はEclipsです
716712:2007/05/20(日) 17:58:54
あれ?なんだかよく分からないうちに自己解決しました。

何が問題だったんだろう……
717デフォルトの名無しさん:2007/05/20(日) 19:23:19
つ保存していない
つ余計な括弧がある

つ右クリック ⇒ ソース ⇒ フォーマット
718デフォルトの名無しさん:2007/05/20(日) 19:32:20
宿題があるんですけど教えてください。
719デフォルトの名無しさん:2007/05/20(日) 19:36:31
>>718
スレ違い

★★ Java の宿題ここで答えます Part 61 ★★
http://pc11.2ch.net/test/read.cgi/tech/1179168569/
720デフォルトの名無しさん:2007/05/20(日) 22:51:05
スタンドアロンプログラムをWindows上で動かし、
フォルダを指定しエクスプローラを開く、
といった処理をしたいんですが、なかなか情報が見つかりません。

なにか良い方法があれば教えてください。
ちなみにGUIはSWTを使用し作成しています。
721デフォルトの名無しさん:2007/05/20(日) 23:25:16
>>720
質問が良くわからないんだけどSWTでエクスプローラーを作ったって事?
他にGUIが見当たらないんだが・・・。
722デフォルトの名無しさん:2007/05/20(日) 23:42:14
>>720
Runtime.exec(String command)
どう開くかは適当に。
cmd /c start ......
とか
http://support.microsoft.com/kb/152457/ja?FR=1&PA=1&SD=HSCH
とか
ところで >>603-608 のながれと関係あるの?
723デフォルトの名無しさん:2007/05/20(日) 23:52:30
javaやってる人ってオブジェクトとインスタンスって混ざって言ってるような
きがする、なんか違いあるの?
724デフォルトの名無しさん:2007/05/21(月) 01:32:36
クラス + インスタンス = オブジェクト
725デフォルトの名無しさん:2007/05/21(月) 06:13:54
オブジェクトという名前の基底クラスがあるから紛らわしい
726デフォルトの名無しさん:2007/05/21(月) 11:47:38
テキストファイルの内容の一部だけ削除したいんですけど
一回全部よみこむ→該当部分削除→書込み直す
っていう方法は思いついたんですけど、
効率悪い気がするんですが、ほかにいい方法ってないですか?
727デフォルトの名無しさん:2007/05/21(月) 12:08:54
ResultSet型のオブジェクトに代入されている結果セットのレコード数を知りたいんですが、何かいいメソッドって用意されていますか?
728デフォルトの名無しさん:2007/05/21(月) 12:19:33
いまこのページ(↓)を読んでパッケージについて勉強してました。
ttp://www.ytp.ne.jp/tech/java/sineruka/classpathhowto.html

このページで言うところの C:\Source\Java\test\HelloWorld2.class に対して
C:\Source\Java\test>java HelloWorld2
と実行するのと
C:\Source\Java\test>java test.HelloWorld2
と実行するので結果に差がある(前者はエラーになる)ことは確認しましたが、
いまいち納得ができません。

ディレクトリ直下のHelloWorld2.classを直接指定するのと
CLASSPATHの下の\test\HelloWorld2.javaを指定するのとで
何が変わってくるのでしょうか?
729デフォルトの名無しさん:2007/05/21(月) 13:04:27
>>728
javaコマンドの引数に指定するのは、ファイル名ではなく
パッケージ名を含むクラス名(FQCN:完全修飾クラス名)であることに注意。

”java HelloWorld2”のコマンドは、
HelloWorld2.classを参照するよう指定しているのではなく、
クラスパスからHelloWorld2というFQCNのクラスを見つけて、
それを実行するよう指定している。
この場合、HelloWorld2のFQCNはtest.HelloWorld2なので、
該当するクラスがクラスパスにないためNoClassDefFoundErrorになる。
730デフォルトの名無しさん:2007/05/21(月) 13:13:53
>>728
補足。パッケージ名はclassファイル自体に埋め込まれるので、
HelloWorld2.classをC:\Source\javaに移動しても、
HelloWorld2のパッケージを移動したことにはならない。
731デフォルトの名無しさん:2007/05/21(月) 13:53:20
>>727
おまえはおれか
732デフォルトの名無しさん:2007/05/21(月) 14:25:56
まず訂正を。自分の書き込みを見てびっくりしたのですが、

>ディレクトリ直下のHelloWorld2.classを直接指定するのと
>CLASSPATHの下の\test\HelloWorld2.javaを指定するのとで

の2行目は\test\HelloWorld2.classのミスタイプです。

>>729
回答ありがとうございます。
.classファイルを探すのではなく、FQCNでクラスを探しに行くから
test.HelloWorld2は存在するけれどHelloWorld2なんていう物は
存在しないという事ですね。

>パッケージ名はclassファイル自体に埋め込まれるので、
>HelloWorld2.classをC:\Source\javaに移動しても、
>HelloWorld2のパッケージを移動したことにはならない。

これについてですが、試しにソースはいじらずに.javaファイルを
C:\Source\Javaへ移動し、Message→HelloWorld2の順にコンパイルしたところ、
Messageはコンパイルできたものの、HelloWorld2はパッケージotamesiが
見つけられずにコンパイルできませんでした。
また、普通にコンパイルしたHelloWorld2.classをC:\Source\Javaに移動して
java test.HelloWorld2 してみたら
Exception in thread "main" java.lang.NoClassDefFoundError: test/HelloWorld2
が出てしまいました。
「パッケージを移動したことにはならない」というのは
「単純にフォルダ移動してもパッケージ情報(?)は変わらないから
 パッケージと同名のフォルダに入れておかなければならない」
という意味でしょうか?
733728:2007/05/21(月) 14:28:00
名前入れ忘れ。。。
>>732>>728です。
734デフォルトの名無しさん:2007/05/21(月) 14:53:29
>>732
そういう意味でおk
735デフォルトの名無しさん:2007/05/21(月) 15:33:15
>>731
結局API読みまくった結果、ResultSetを直でいじくりまわすのはやめて、
内部クラス作ってそれのpublic変数に結果セットの最終行までResultSet.getStringしてって
ArrayListのオブジェクトにつっこんでArrayListのオブジェクト.size()しました。
配列のサイズきめたくて結果セットの行数しりたかったんですけど、配列作るよりArrayListつかったほうが何かすっきりしました
736デフォルトの名無しさん:2007/05/21(月) 17:14:08
>>732
合ってるがもっと単純明解な前提条件があるぞ。
フォルダの移動はOSのオペレーション、パッケージの指定はjavaの仕様。
根本的、本質的にもこの二つはまったくの別物。
くっつけて考えてしまうならそこが"間違えて分からなくなってる"部分だ。
まずは問題の切り離しからだな。
737デフォルトの名無しさん:2007/05/21(月) 17:52:51
ネットワーク越し(現在使用しているのはRMI)にIterator的なオブジェクトを
渡して受け取り側が辿れるようにするには、各メソッド内で通信するよう自前で作るしかないのでしょうか。
738デフォルトの名無しさん:2007/05/21(月) 22:04:02
Byte a[]={0,0,0,1};

をa[0]〜a[3]のバイト列をもつint型に変換する方法教えてください。
739デフォルトの名無しさん:2007/05/21(月) 22:11:55
a[0]<<24|a[1]<<16|a[2]<<8|a[3]
740デフォルトの名無しさん:2007/05/21(月) 22:24:35
すまんすまん
a[0]<<24|a[1]<<16&0xff0000|a[2]<<8&0xff00|a[3]&0xff
こうだ
741デフォルトの名無しさん:2007/05/21(月) 22:36:31
>>738
new DataInputStream(new java.io.ByteArrayInputStream(a)).readInt();
java.nio.ByteBuffer.wrap(a).getInt();
742デフォルトの名無しさん:2007/05/21(月) 22:58:25
>>727
適当なトランザクションレベルで select count(適当なカラム) from テーブル
という SQL を発行すればいいよ。リソースを消費を気にしないなら count(*) でも可。
743デフォルトの名無しさん:2007/05/21(月) 23:10:41
>>735
対策まで一緒だな
おまえはおれか
744デフォルトの名無しさん:2007/05/21(月) 23:13:21
>>737
質問の意図が良く分からんけど
org.JSON とか使うと解決するかもね
745デフォルトの名無しさん:2007/05/22(火) 00:55:41
サーブレットでsubmitやセッションしたりしないでその画面のままテキストフォームから入力された値を取る方法ってありますか?
746デフォルトの名無しさん:2007/05/22(火) 01:14:01
セッション関係無くね?
747720:2007/05/22(火) 01:24:15
ご回答してくれた方ありがとうございました。

>>721
自分で作ったGUIからWindowsのエクスプローラを呼ぶには?
という質問でした。

結局JNI経由でWINAPIのShellExecuteを呼び出す形式で解決しました。
Webしかやったことない自分としては
GUIは妙に難しく感じます^^
748デフォルトの名無しさん:2007/05/22(火) 01:25:57
JavaScriptを使えばいい
フォームの入力チェックにも使われている

あー仕事がほしいー
749720:2007/05/22(火) 01:29:44
>>745
Submitしないという時点でクライアント側の処理になります。
サーブレットでの処理は無理です。
Javascriptが一番手っ取り早いのでは?
750デフォルトの名無しさん:2007/05/22(火) 01:46:17
>>745
言葉が意味わからんがsubmitなしではservletに渡すことは普通は無理

XMLHttpRequestを使えばできる(ブラウザー依存)
いわゆるAJAXだな
751デフォルトの名無しさん:2007/05/22(火) 02:49:06
>>745

Ajax

GWT
752デフォルトの名無しさん:2007/05/22(火) 05:56:30
>>727
実は最初はそうしてたんですが、レコード数が膨大でcount(*)のリソースがどうしても気になって気になって、今の方法にしました。
>>743
もうステップ数を気にする時代ではないような気がしたので、リソースとのバランスを見ても、この方法がやはりベストなのかなと。
贅沢を言わせてもらうと>>727を読んだ時点で教えてもらいたかったです・・・

753デフォルトの名無しさん:2007/05/22(火) 06:11:20
>>752
ごめん
ほぼ同じペースで同じことやってるみたいなのでw

当初は ArrayList へ移し替えやってたんだけど
いろいろ事情があって
結局いまは ArrayList はやめて JSONArray に変更したんだけど
標準のコンテナ(Hash Map など)よりも意外と便利で病みつきになりそう
754デフォルトの名無しさん:2007/05/22(火) 10:12:13
>>744
ありがとうございます。
質問の意図が分かりづらかったようですみません。

ネットワーク越しにリストとなるデータを転送する際、コレクションや配列をそのまま渡すと
データが大量だった時にメモリを圧迫する可能性があるため、一気に渡すのではなく
少しずつ渡す必要があります。

そうするとIteratorのようなインタフェースから少しずつ取得できると理想ですから、
現在の私の状況であれば RMI 通信を隠蔽した Iterator 実装があると理想だったのですが、
見つけられなかったため質問しておりました。

JSONライブラリがこの背景と合っていたか不明ですが、少々調べてみます。
755デフォルトの名無しさん:2007/05/22(火) 15:48:01
>>754
その渡そうとしているデータは、まさかDBからのクエリ結果だったりはしないよね?
756デフォルトの名無しさん:2007/05/22(火) 16:07:53
なんでSunの命名規約はパッケージ名を全て小文字にすることになっているんですか?
longpackagenameのように長いと読みにくいです。
LongPackageNameの方がいいと思うのですが。

…とうちのリーダー(Java未経験)が仰ります。
どうすればいいでしょうか?
757デフォルトの名無しさん:2007/05/22(火) 16:29:05
>>756
long_package_name にするとか……
758デフォルトの名無しさん:2007/05/22(火) 16:38:23
大文字と小文字を区別する環境にも、そうでない環境にも同じように対応するためじゃね?
ディレクトリ名がHogeとhoge両方作れてしまうOSとか。
759デフォルトの名無しさん:2007/05/22(火) 16:49:23
>>756
どうぞご自由に。

それは厳密に規定された規約というよりガイドラインのはずです。
名前の衝突回避と読みやすさのために用意されています。

外部に公開するライブラリとかには止めた方がいいと思いますが
閉じたアプリケーションで、利用する分には害がないと思います。

が、自分の経験だけに基づいてプロジェクトに他の言語の流儀を持ち込むと
利用しているライブラリ等とずれるので、かえって汚くなってしまう可能性もあります。

In Rome, do as the Romans' do.
760デフォルトの名無しさん:2007/05/22(火) 17:49:58
>>755
いえ、Iteratorの開放がリソースを制御していることはありません。
外部ライブラリですが、外部ライブラリがそのまま持ってしまっていると言う
事もないようです。
761デフォルトの名無しさん:2007/05/22(火) 19:07:45
>>759
いまは仕様じゃなかったか?
ファイルシステムの都合で利用できない文字を含む場合はUnicodeエスケープしろって書いてなかった?

昔はクラス名もパッケージ名も単語の頭は大文字を推奨してたけどすぐ変わったよ。
762デフォルトの名無しさん:2007/05/23(水) 02:03:44
http://www.itmedia.co.jp/enterprise/articles/0608/25/news010_3.html
{"ResultSet":
{"type":"web",
"totalResultsAvailable":242000000,
"totalResultsReturned":3,
"firstResultPosition":1,
…略…,
"Result":[
{"Title":"Apple",
"Summary":"Macintosh hardware, software, and Internet tools. Offering Quicktime info, developer resources, and other items related to Apple computers.",
"Url":"http:\/\/www.apple.com\/",
…略…
},
{"Title"、"Summary"、など次の結果…},
…略…
}
}
763デフォルトの名無しさん:2007/05/23(水) 02:14:56
Eclipse使っている方いますか?
764デフォルトの名無しさん:2007/05/23(水) 03:39:32
むしろEclipseでないと無理。
765デフォルトの名無しさん:2007/05/23(水) 03:56:02
swingで一番上のJFrameでKeyEventを取ろうとしてもうまく取れません。
簡単なtoy programだとうまくいくのですが、panelをいくつか入れ子にしたものだと上手くいかない。
なにか理由が考えられるでしょうか? できればそこら辺を判り易く詳しく解説してあるサイトでも
教えていただければ幸いです。 あと、panelの上手な入れ子の仕方などの解説もあればうれしいです。
(ちゃんと表示されないこともあるので・・・)
766デフォルトの名無しさん:2007/05/23(水) 04:15:33
>>765
その入れ子にしてるコンポーネント階層とどういう実装してるか言わないと分かる訳ないだろう。
描画に関しては重量と軽量を混ぜてて軽量が正しく描画されないって話じゃなければ描画を破壊してるだけ。
767デフォルトの名無しさん:2007/05/23(水) 04:36:38
>>765
とりあえず>>403以降のやりとり見てみそ
768デフォルトの名無しさん:2007/05/23(水) 10:02:04
JTextPaneの幅や行数を指定するにはどうすればいいですか。
JTextAreaでは一部の文字色変更などができなかった為に乗り換えました。
769デフォルトの名無しさん:2007/05/23(水) 10:08:39
>>768
JTextPane では文字の大きさが変えられたりするから
列数とか行数ってのは意味無いんじゃないかと。
770デフォルトの名無しさん:2007/05/23(水) 12:03:00
なるほど、気がつきませんでした。
文字数で指定しても意味がありませんね。

私のプログラムは文字サイズが一意なので、JTextPane#setSize(int width, int height)
メソッドを使えばよさそうですが、うまくいきませんでした。
サイズを指定しても反映されません。
GridBagLayoutを使っているのでこれが原因かと思い、他のレイアウト
―FlowLayoutを試してみましたが、同じくダメでした。

JTextPaneの大きさを指定するにはどうすればよいでしょうか。
771770:2007/05/23(水) 12:19:07
解決しました。
JComponent.setPreferredSize(Dimension preferredSize)メソッドが期待通りの動作をしました。
772デフォルトの名無しさん:2007/05/23(水) 12:29:39
インスタンスメソッドとクラス(静的)メソッドの使い分けがよくわかりません><
一言でいうと、どういうケースで使い分ければいいのでしょう?
インスタンス化の手間を考えなければ、
全部インスタンスメソッドでいいのでは?とか思ってる状態です。
773デフォルトの名無しさん:2007/05/23(水) 13:10:10
Eclipseのインストール時に書込みエラーと警告が出てしまうのですが、
どなたか解決方法を教えていただけないでしょうか?
774デフォルトの名無しさん:2007/05/23(水) 13:38:15
>>772
使い分けというか、具体的にどういう場面(ソース)でそう思ったとかを書いておくれ
>>773
PC初心者板へどうぞ
775デフォルトの名無しさん:2007/05/23(水) 16:08:28
RMIサーバを立ち上げ、普通にリモートメソッド呼び出しが可能な状態となるのですが、
RMIサーバをそのまま放っておくと数分後に以下のようなエラーが出てサーバが終了します。

java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:
java.net.ConnectException: Connection refused

数分後という原因がよく分かりません。何かのデフォルトのパラメータか何かに依存しているのでしょうか?
なお、RMIサーバを起動するのが Linux, Windows ともに発生していますので、
Windows独自のファイアウォールなどとも違うように思います。
776775:2007/05/23(水) 16:22:21
計測したところ1分で落ちてしまうようです。
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/rmi/sunrmiproperties.html

を見るとデフォルト値が1分なのは

sun.rmi.transport.tcp.handshakeTimeout

ですが、クライアント側の設定のようですし、この値を設定してみても
やはり1分で落ちてしまいます。
777775:2007/05/23(水) 16:30:22
自己解決しました。恐らくGCで削除されてしまっていたようです。
参照を持たせていたつもりが実は出来ていませんでした。
778デフォルトの名無しさん:2007/05/23(水) 19:13:04
配列に10種類の文字を入れておいてランダムに3つ取り出したいです
ダブらないようにそういう制御させるにはどうしたらいいですか
エロい人教えてくださいorz
779デフォルトの名無しさん:2007/05/23(水) 19:14:43
色んなやりかたがあるけど
ランダムにシャッフルして
先頭の3つ取り出すとかどう?
780778:2007/05/23(水) 19:16:20
あぁ!!そういうやり方もあるんですね
でもどうランダムにシャッフルするのかわからないです・・・'A`
781デフォルトの名無しさん:2007/05/23(水) 19:22:24
782デフォルトの名無しさん:2007/05/23(水) 20:23:40
Runtime.exec()を使って他マシンのプロセスを生成する方法を教えてください。
783デフォルトの名無しさん:2007/05/23(水) 21:00:32
>>772
全部クラスメソッドにしようとしているなら考え直せとアドバイスするところだが、
全部インスタンスメソッドになるのは、クラスメソッドの必要性が出てくるまでは
放っておいてもいいんじゃないか。
784デフォルトの名無しさん:2007/05/23(水) 21:53:15
>>772
783の言うとおりだな。
全部インスタンスメソッドで、ほとんどの場合は問題ない。
インスタンス生成のコストがって言うアホがいたら、何回作れば0.1秒?と聞いてやれ。

クラスメソッドにする必要性があるケース。
そうだなぁ、基本ライブラリで言えばインスタンス生成系かね。
Integer.parseInt()とかCalendar.getInstance()とか。
後はユーティリティ系、Math.max() とか
785デフォルトの名無しさん:2007/05/23(水) 23:38:03
>>772
思いがけない仕様変更があったとき、
インスタンス生成の手間を惜しまずインスタンスメソッドにしておけば良かった、
と悔やむことはある。
逆は無い。
786デフォルトの名無しさん:2007/05/24(木) 07:39:33
漢字のJISコードをとるにはどうすればいいのでしょう?
getBytes("JIS")とかして取得すると
半角英数などは
ttp://ash.jp/code/
にあるようなコードがとれるんだけど
漢字だとマイナスの数値が取れたりしてうまくいかないんだけど・・・
どなたかご教授を
787デフォルトの名無しさん:2007/05/24(木) 08:19:15
>>786
「JISコード」とは何? 区点コードのこと?
ISO-2022-JP や Shift_JIS や EUC-JP での値?
788デフォルトの名無しさん:2007/05/24(木) 08:24:04
質問です。
class hogelist {
hogelist(int data) {
this.data = data;
}
public hogelist prev;
public hogelist next;
public final int data;
}
listのクラスなのですが、
hogelist(int data) {
this.data = data;
}
の部分はコンストラクタなのでしょうか?
修飾子はいらないのでしょうか?
789デフォルトの名無しさん:2007/05/24(木) 08:27:22
>>788
コンストラクタですね。
「class」のところと同じで、パッケージスコープなら
public/protected/privateはいらない。
790デフォルトの名無しさん:2007/05/24(木) 10:00:24
package-privateと言って同一パッケージ内からのみ見えるアクセス修飾です。
791デフォルトの名無しさん:2007/05/24(木) 10:28:34
>>787
ttp://ash.jp/code/
にあるような
T → 54
試 → 3b 6e
のような変換がしたいんです。
半角文字は上記のような値が取れるんですが・・・

792デフォルトの名無しさん:2007/05/24(木) 10:29:15
>788
クラス名は大文字からはじめておけ。
class Hogelist {
Hogelist(int data) {
this.data = data;
}
んで、メソッド名は小文字ではじめる。
こうすれば、コンストラクタとメソッドとを混同しなくて済む。

って昔の人が考えたんですよ。名前の付け方のルール
793デフォルトの名無しさん:2007/05/24(木) 10:38:03
>>791
byte[] raw = "試".getBytes("ISO-2022-JP");
してから、raw の先頭に 0x1b があれば先頭3バイト除去、
raw の後ろから3バイト目が 0x1b だったら末尾3バイト除去、
とすれば2バイトだけ残って 0x3b と 0x6e になると思う。

Shift_JIS や EUC-JP の場合は、そのまま raw が2要素の配列になるは
ず。

794デフォルトの名無しさん:2007/05/24(木) 10:40:39
>漢字だとマイナスの数値が取れたりして
>漢字だとマイナスの数値が取れたりして
>漢字だとマイナスの数値が取れたりして
>漢字だとマイナスの数値が取れたりして

795デフォルトの名無しさん:2007/05/24(木) 12:02:37
ど素人質問ですみません
JAVAって機械の制御に使えるんでしょうか
796デフォルトの名無しさん:2007/05/24(木) 12:38:29
javaチップって携帯電話に乗ってたっけ?
797デフォルトの名無しさん:2007/05/24(木) 13:30:39
JAVAを使えるマイコンってありますか
798デフォルトの名無しさん:2007/05/24(木) 14:44:41
おまえらJavaOne行ってこい
799デフォルトの名無しさん:2007/05/24(木) 14:47:37
>>798
今年のJavaOneは もう終わりましたが
800デフォルトの名無しさん:2007/05/24(木) 18:17:51
質問ッス

ResultSet rs=stmt.executeQuery(sql)
でResultSetの変数rsにsqlの結果を入れたわけですが、
中の列要素に大きなデータが入ってまして、あふれた分を切られてたわけです。

これは、どうやって解決すればいいんでしょうか?
801デフォルトの名無しさん:2007/05/24(木) 18:48:17
具体的にどの型のデータなの?
802800:2007/05/24(木) 18:54:37
String型です。最高で500文字はあるみたいで・・・
803デフォルトの名無しさん:2007/05/24(木) 19:13:43
>>798-799
半年ROMってから行ってくる
804デフォルトの名無しさん:2007/05/24(木) 20:31:31
>>802
いや、DBの種類とカラムの方の型が問題なんだと思われ。
805デフォルトの名無しさん:2007/05/24(木) 21:00:31
arraylistについて初心者でも分かりやすく
学べる解説サイトや本はないでしょうか?
知識としてはやさしいjavaを終わらせたレベルです。
806800:2007/05/24(木) 21:34:16
>>804
今はJDBC-ODBCブリッジ使って、TextDriverに接続してます。
データはCSVに格納している状態です。

で、解決策がひとつ見つかりました。
StatementのsetMaxFieldSize()メソッドを使えば・・・となってたんですが、
エラーが出て使えません。

もう、どうしたらいいんでしょうか。
807デフォルトの名無しさん:2007/05/24(木) 22:29:49
>>805
どこも一緒。
てか、やさしいJava読み終えるレベルってArrayListの解説すら読めないレベルなの?
そうだとしたら、別の入門書やった方がいいんじゃね?
808デフォルトの名無しさん:2007/05/24(木) 22:38:12
>>807
言い方が悪かったっす。
ArrayListというのが問題で急に出てきたんですが、
勉強するためによい参考書はないでしょうか?という意味です。

コンピュータ言語知識はJavaが初です。
809デフォルトの名無しさん:2007/05/24(木) 22:44:52
810デフォルトの名無しさん:2007/05/24(木) 22:51:45
Introspectorについて詳しく書かれてるサイトか本はありますかね?
811デフォルトの名無しさん:2007/05/24(木) 23:15:01
>>810
調べちゃいないが IBM の デベロッパワークスあたりにありそうな気もするが。

http://www-06.ibm.com/jp/developerworks/java/
812デフォルトの名無しさん:2007/05/24(木) 23:18:00
>>810
基本だと思うけどbeansの仕様
http://java.sun.com/products/javabeans/docs/spec.html
813デフォルトの名無しさん:2007/05/24(木) 23:21:40
814デフォルトの名無しさん:2007/05/24(木) 23:22:59
JDBCについて質問です。
ResultSet rs = stmt.executeQuery(sql);
としてデータベースのでーたをrsに格納した後で、
while(rs.next()){
で上から1行ずつデータを読んでいきます。

これって同じ行をもう一度読み込んだり、
途中でもう一回最初から読んだりってできるんですか?
一回
rs.close();
してからもう一度
rs.next();
を書いてみたのですがうまくいかなくて。
815デフォルトの名無しさん:2007/05/24(木) 23:35:28
>>812
基本なのですか・・・。
でも、全然そういったことを詳しく書いてるサイトや本がないのです。
あっても英語の本ばかりで。
816デフォルトの名無しさん:2007/05/24(木) 23:39:04
>>813
ありがとうございます。
817デフォルトの名無しさん:2007/05/24(木) 23:45:12
>>814
rs.relative(-1);
とか試してみたら?
closeはrsを使わなくなってからするもの。
818デフォルトの名無しさん:2007/05/24(木) 23:47:47
>>814
Statement を作る際、引数を持つ Connection#createStatement() の第1引数に
ResultSet.TYPE_SCROLL_SENSITIVE とかを与えれていれば、
ResultSet#next() だけでなく ResultSet#previous() や
ResultSet#first() や ResultSet#relative() が使えるようになる可能性がある。
でも、JDBC ドライバが対応していないこともある。
819デフォルトの名無しさん:2007/05/24(木) 23:52:34
>>807
やさしいjavaは確かに読めんな。三版持ってるが、C++との共通項くらいしか書かれてない。
820デフォルトの名無しさん:2007/05/25(金) 02:54:27
>>814
DBのカーソル作成モードを変えると
レスポンスが急激に悪くなることがあるし
>>818 さんが言うように互換性も無くなる
一旦自前のArrayListを構築しなおすなどしてから
操作してもいいと思う
でも一回最後まで読むから無駄が増えて
やっぱりレスポンスは落ちるかも
読みながらArrayListにも入れていって
戻るときはそっちを見るとか工夫してくれ
821デフォルトの名無しさん:2007/05/25(金) 09:49:50
Java の GUI プログラムで、アイドル状態になったときの
イベントを受け取ることはできないかな。
MFC でいう CWinApp::OnIdle みたいなの。
822デフォルトの名無しさん:2007/05/25(金) 10:42:17
Idle状態ってなに?Focusを失ったとき?それならあるよ
823デフォルトの名無しさん:2007/05/25(金) 11:05:23
そうじゃなくて、他に処理すべきイベントがなくなったとき。
824デフォルトの名無しさん:2007/05/25(金) 13:41:11
面倒くさいから処理させたいものをプライオリティ最低のスレッドで動かしちゃえ
825デフォルトの名無しさん:2007/05/25(金) 17:07:10
>>821
使ってるEventQueueでpeekEvent()がnullの時にアイドル時処理をするスレッドを使う。
826デフォルトの名無しさん:2007/05/25(金) 17:14:14
文字列を指定した桁数ごとの文字列にして配列で返すみたいなことがやりたいです。
"aaabbbccc"を3桁って指定して["aaa","bbb","ccc"]みたいな。
forでがんばるしかない?
827デフォルトの名無しさん:2007/05/25(金) 17:19:08
whileとsubstrでがんばるのはどうかな?
828デフォルトの名無しさん:2007/05/25(金) 17:24:43
String s = "aaabbbccc";
String[] l = s.split("...");
829デフォルトの名無しさん:2007/05/25(金) 17:31:45
>>828
思いつきは悪くないけどそれは正しく動かない。
>>826
for (String s : "aaabbbcccd".split("(?<=\\G...)")) System.out.println(s);
でも、正規表現でアクロバティックなコードを書くのはお遊びとしては楽しいけれど、
>>827のいうようにsubstringで分けたほうが分かりやすいし正道だと思う。
830デフォルトの名無しさん:2007/05/25(金) 17:39:08
>>826
ほい。
余剰文字列は切り捨てられるので、それが嫌なら改造してね。

public String[] splitter( String in, int len ) {
String[] al = new String[ in.length()/len ];
int index = 0;
while ( in.length()>0 ) {
al[index] = in.substring(0,len);
in = in.substring(len);
++index;
}
return al;
}
831デフォルトの名無しさん:2007/05/25(金) 17:45:38
もし切り分ける長さを整数変数lenに入れてるなら、
"aaabbbcccd".split("(?<=\\G" + ".{" + len + "})")
みたく。
832デフォルトの名無しさん:2007/05/25(金) 18:15:15
>>829,>>831だと改行文字でマッチングが途切れるので、
改行文字も一文字とするなら、
"aaabbbc\nccd".split("(?s)(?<=\\G" + ".{" + len + "})")
こんな感じで。

>>830
元文字列のインスタンスを順次新規に作成するくらいなら、
int m = (in.length() - 1) / len;
String[] al = new String[m + 1];
int i = 0;
while (i < m) {
al[i] = in.substring(i * len, (i + 1) * len);
i++;
}
al[i] = in.substring(i * len);
return al;
とか。
833デフォルトの名無しさん:2007/05/25(金) 20:43:54
任意の2つの座標を結ぶ線の太さを変えたいのですが、どのようにすればよいのですか?
834デフォルトの名無しさん:2007/05/25(金) 20:55:40
plot 1 lw 1, 2 lw 2, 3 lw 3, 4 lw 4, 5 lw 5, 6 lw 6
835デフォルトの名無しさん:2007/05/25(金) 23:27:53
>>833
((Graphics2D)g).setStroke(new BasicStroke(10));
g.drawLine(0, 0, 100, 100);
836デフォルトの名無しさん:2007/05/25(金) 23:58:27
Javaでウィンドウズのペイントソフトのようなアプリを作りたいと考えています。
(マウスのドラッグ&ドロップでフリーハンドに線を引いたりできるソフト)
参考になるお勧めのサイトまたは本を知っている方がいたら教えてください。

あと、Javaは一つのアプリで複数のウィンドウを開くことはできますか?
837デフォルトの名無しさん:2007/05/26(土) 00:08:32
SWTとかのVisualEditorってもう開発してないの?
最後のリリースが1年くらい前…
CUIでJavaペコペコするのもマンネリしてきたからGUIもいじってみたい今日この頃
ちなみにJava暦1月位
838デフォルトの名無しさん:2007/05/26(土) 00:25:20
質問です。
classファイルを元のソースファイルに戻すことはできるのですか?
839デフォルトの名無しさん:2007/05/26(土) 00:32:37
>>838
できるけど自分でできないなら諦めましょう。

定期的にコピペしたかのように来るなコレ。
840デフォルトの名無しさん:2007/05/26(土) 00:47:13
>>835
すみません、Graphic2DクラスではなくてGraphicクラスで太さを変えることはできないのでしょうか?
841デフォルトの名無しさん:2007/05/26(土) 01:16:37
>>839
ほんと、定期的にコピペしたかのように来るなコレ。

>>838 ぐぐればよかろう。
過去ログ。
http://pc11.2ch.net/test/read.cgi/tech/1171787388/310

dat落ちしてるだろうからコピペしといたるわ。
−−−−
public class Quine {
public static void main(String[] args) {
char c=34;
System.out.println(s+c+s+c+';'+'}');
}
static String s
="public class Quine { public static void main(String[] args) { char c=34;System.out.println(s+c+s+c+';'+'}');}static String s=";
}

まず上記をQuine.javaという名前のjavaファイルにする。
そしてjavaファイルをコンパイルしてできたクラスファイルを java Quine.java で実行。
そうすると元のjavaファイルとほぼ同じものが得られる。
もっと完全に元のjavaファイルに戻したければQuine.javaを1行で書く。
(2ちゃんの書き込み制限があるから上では適宜改行した)
−−−−
だぜ?

まあ、マジレスすると、できる。だけど、自分でできないなら諦めましょう。
842デフォルトの名無しさん:2007/05/26(土) 04:55:36
RMIサーバを作り、サーバ上にあるファイルをストリーム経由でダウンロードさせる、
という場合、返す InputStream はどのようにすればいいのでしょうか? (標準クラスでは無理なのでしょうか?)

InputStream 派生で標準クラスにあるもの、たとえば FileInputStream などは
Serializable でないため、そのまま返すとエラーになります。

拡張して Serializable をつけても(当たり前なのですが)
引数なしのコンストラクタを持たないので、実行時にエラーとなります。

説明が難しいのですが、具体的にやりたいことは、

RMI サーバ
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29407
RMI クライアント
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29408

にて、RMI サーバの一番下、getFile メソッドで開いている FileInputStream 相当を
クライアントに返し、クライアントは read していける、という状態です。
843学生:2007/05/26(土) 10:32:23
今、プログラミングの勉強をしてるんですが、
この問題が分かりません。
教えてくださいm(__)m

フィボナッチ数列の初項から第50項までを表示するプログラムを作成せよ。
0,1,1,2,3,5,8,13,……
初項 F(1)=0
第2項 F(2)=1
第n項 F(n)=F(n-1)+F(n-2) ただし、n>2
844デフォルトの名無しさん:2007/05/26(土) 10:33:44
テンプレ埋めとけ
845デフォルトの名無しさん:2007/05/26(土) 10:55:04
つーかフィボナッチ数列がわかってないだけだろ。ググれ。
846デフォルトの名無しさん:2007/05/26(土) 10:57:58
>>843
学生なら図書館に行って
『JAVAプログラムクイックリファレンス(オライリー・ジャパン)』
って本を借りてきな。まんま解答載ってるよ。
847デフォルトの名無しさん:2007/05/26(土) 12:20:17
http://java.sun.com/javase/ja/6/download.html
にて、JDK 6u1をダウンロードしてインストールしたいのですが、

Notice: We're Offline for System Upgrades

とでてダウンロードできません。これはこちらの環境が悪いのでしょうか・・・?
848デフォルトの名無しさん:2007/05/26(土) 12:31:16
classの中にもう1つclassを作るのと、
classの外にもう1つclassを作る違いがわかんね
ややこしさからして後者の方が良い気がするが、どなたか軽く教えてくだされ

>>847
翻訳するまでもないと思うけど、もう1度文章全部読んでみて下さい
849848:2007/05/26(土) 12:36:46
あー俺アホだ、自己解決しました
850デフォルトの名無しさん:2007/05/26(土) 12:39:14
>>843
ほい。

public class fibo {
public static void main(String[] args) {
fibo t = new fibo();
}
private static int MAX_COUNT = 50;
public fibo() {
long i=0, j=1, k=0;
int count=0;
System.out.print(i+","+j+",");
for ( ; count<MAX_COUNT; ++count ) {
k = i + j;
System.out.print(k+",");
i = j;
j = k;
}
}
}
851デフォルトの名無しさん:2007/05/26(土) 12:48:31
ソース渡すってのは宿題スレじゃないのか
852デフォルトの名無しさん:2007/05/26(土) 13:34:46
>>848
なるほど、そういう事なんですね。
解消されるまで待つしかないと・・・
853842:2007/05/26(土) 14:41:59
>>851
自分のことですかね。すみません。宿題スレで聞いてみます。
854デフォルトの名無しさん:2007/05/26(土) 14:48:45
>>853
まてまて
>>850 で答えが貼られているぞ
855デフォルトの名無しさん:2007/05/26(土) 14:57:41
猛烈に初心者ですが、よろしくお願いします。
ページが読み込まれたら行かせたい場所に飛ばすのは、
↓で良いそうなんですが、
こんな感じで読み込まれて10秒後に飛ばすようにするのはどうすればいいですか?
<script language="javascript">
<!--
var doit=true;
function exit(){
if (doit) open("行かせたい場所アドレス")
}
// -->
</script>
<body onload="exit()">
856デフォルトの名無しさん:2007/05/26(土) 14:58:38
板ちがい
Javaですらない
857855:2007/05/26(土) 15:10:49
javascriptってあるからjavaすれでいいのかと思って書き込んじゃいました
ごめんなさい。
858デフォルトの名無しさん:2007/05/26(土) 15:19:04
ServletRequestの属性値はSerializableである必要はありますか?
セッションでないのでレプリケーションは関係ないですよね?
859デフォルトの名無しさん:2007/05/26(土) 15:19:09
わざとだろ
釣りだろ?
860デフォルトの名無しさん:2007/05/26(土) 16:34:22
>>848
>classの中にもう1つclassを作るのと、
>classの外にもう1つclassを作る違いがわかんね

(1) static でないインナークラスの場合
class A {
 class B {

A のインスタンス a の中でのみ
B のインスタンス b を作れるが、
内側の b から外側の a を参照することが可能。

class A {
 void doA() { B b = new B(); } // OK
 static void doA() { B b = new B(); } // NG

 int field;
 class B {
  int doB() { return A.this.field; } // OK, 名前の衝突がない限り、"A.this" は不要

(2) static なインナークラスの場合
class A {
 static class B {

はっきり言って別々のクラスとかわんね
861842:2007/05/26(土) 18:05:52
>>854
むむ、これは>>843さんへの答えですよね。
>>851が私への指摘と勘違いしました…
862デフォルトの名無しさん:2007/05/26(土) 20:20:59
Javaで作られたアプリケーションは、JREなしで実行することはできませんか?
863デフォルトの名無しさん:2007/05/26(土) 21:29:33
gcj
まあ、libgcj.dllがJREだとでもいえるけど
864デフォルトの名無しさん:2007/05/26(土) 21:31:54
>>862
基本的に無理。応用的には標準JDK 使わずに gcj とか Excelsior JET みたいな
AOTコンパイラを使えばできるけど、実行ファイルのサイズはでかくなる。
865デフォルトの名無しさん:2007/05/26(土) 22:16:14
>>863,864
そうですか。まぁそのためにはCや何かで書くしかありませんよね。ありがとうございました。
866デフォルトの名無しさん:2007/05/26(土) 22:33:44
http://java.sun.com/j2se/1.5.0/ja/download.html
でJDK 5 をダウンロードしようとしたら「Fatal Error」と出てダウンロードできません。
他にダウンロードできるサイトとか知りませんか?
867デフォルトの名無しさん:2007/05/26(土) 22:37:35
うちのコピーしてく?
868デフォルトの名無しさん:2007/05/26(土) 22:40:16
JREを埋め込んでexeつくるソフトって知ってますか?
869デフォルトの名無しさん:2007/05/26(土) 23:01:27
>>868 JETとかgcjとかじゃなくてSunのJREをうんぬんするやつは知らない。
でも環境をWindows固定にするならEXEにこだわるより、Windowsの流儀でJREを
インストールしたりスタートメニューやデスクトップに起動用のアイコン登録
したりするインストーラーを作った方がユーザにやさしいんじゃないかと思う。
おれはこの手のパッケージャとしてNSISを使ってる。

そうじゃなくてAOTに幻想を抱いているならあきらめたほうがいい。以前
gcj以外のIBMやJETといった商用AOTのベンチマークとったけど速度的なメリットはない。
870デフォルトの名無しさん:2007/05/26(土) 23:29:39
JDKがダウンロード出来ないのですが、これは最近ずっとなのでしょうか?
871デフォルトの名無しさん:2007/05/27(日) 00:04:05
明らかにトラブってるな

ubuntuとかならパッケージであるが、他はわからん
872デフォルトの名無しさん:2007/05/27(日) 00:17:46
俺は今朝JDK 6u1をダウンロードしたところ。
俺の「最近ずっと」の定義(一日以上)からすると最近ずっとではない。
けど、今見たら確かに FATAL ERRORとか出てるね。

1.4.2u14/1.5.0u11/6u1のwindows-i586-pなら持ってるけど、
再配布っていいんだっけ?
873デフォルトの名無しさん:2007/05/27(日) 00:25:30
6なら大丈夫だと思うが、確認方法がわからん
874デフォルトの名無しさん:2007/05/27(日) 00:44:38
>>873
http://java.sun.com/javase/faqs.jsp#Licensing
Redistribution: Both the JDK and JRE can be freely redistributed with value-add (per terms of the BCL).
875デフォルトの名無しさん:2007/05/27(日) 06:37:29
あまりこの状況が続くとJREにウィルス組み込まれて再配布されそうだな
876デフォルトの名無しさん:2007/05/27(日) 13:53:13
ダウンロード出来ねぇ・・・orz
877デフォルトの名無しさん:2007/05/27(日) 13:57:14
開発環境だけってならEclipseでも落とせば?
878デフォルトの名無しさん:2007/05/27(日) 14:07:19
>>877
特定環境でトラブるからってOSから入れ直したのでJREすらないorz
879デフォルトの名無しさん:2007/05/27(日) 14:11:41
>>878
Windows でJava5.0 でいいか?
880デフォルトの名無しさん:2007/05/27(日) 14:14:51
>>879 mjd? もちろんok
881デフォルトの名無しさん:2007/05/27(日) 14:23:40
882デフォルトの名無しさん:2007/05/27(日) 14:34:21
JREならここで落とせるんじゃない?
http://www.java.com/ja/download/
883デフォルトの名無しさん:2007/05/27(日) 14:34:25
>>881 神に大感謝
884デフォルトの名無しさん:2007/05/27(日) 14:50:09
http://d.hatena.ne.jp/kazama/20041207/p1
ここのコードをjavaにしたらどんなふううになりますか?
885デフォルトの名無しさん:2007/05/27(日) 15:11:45
>>884
エロゲかよw
886デフォルトの名無しさん:2007/05/27(日) 15:45:20
887デフォルトの名無しさん:2007/05/27(日) 17:21:14
現在のシステム日付を取得して画面表示するにはどういったソースを書けばいい?
誰か教えてください。
888デフォルトの名無しさん:2007/05/27(日) 17:35:53
現在のシステム日時を取得して画面に表示し続けるソース

final java.util.Date date = new Date();
while (true) {
 date.setTime(System.currentTimeMillis());
 System.out.println(date);
}
889デフォルトの名無しさん:2007/05/27(日) 17:36:55
>>888
少しくらい待ってやれよw
890デフォルトの名無しさん:2007/05/27(日) 17:37:36
import java.util.Date;
import java.text.DateFormat;

public class DiplayDate{
public static void main(String[] a){

Date dt = new Date();
DateFormat dfm = DateFormat.getDateTimeInstance();

System.out.println(dfm.format(dt));
}
}
891デフォルトの名無しさん:2007/05/27(日) 17:45:05
素数判定プログラムを組んだのですが、エラーが出て動きません。でも、デバッグしてみるとfor文が回っていないようです。どう改善すればよいでしょうか?


public static void main(String[] args) {
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
try
{
System.out.println("数を入力してください");
String line=reader.readLine();
int meth=Integer.parseInt(line);

if(meth<=1){
System.out.println("入力された数字"+meth+"は素数ではありません");
}else{

int cnt=0;
for (int i=0; i<=meth; i++)
{
if(meth%i==0)
{
cnt++;
}
}
892891:2007/05/27(日) 17:45:46
if(cnt==2){
System.out.println("入力された数字"+meth+"は素数です");
}else{
System.out.println("入力された数字"+meth+"は素数ではありません");
}

}
}

catch(IOException e){
System.out.println(e);
}catch(NumberFormatException e){
System.out.println("数字に入力できるのは実数です");
}
893デフォルトの名無しさん:2007/05/27(日) 17:48:02
JAVAで困っているんですけど…
平均点以下の人の人数ってどうやって出すんですか?
public static void main(String[] args)
{

int Wt[] ={45,59,98,60,78,54,90,30,50,67};


int sum = 0;
for (int k=0; k<=9;k++)
{
sum = sum+Wt[k] ;
}
int average_Wt = sum/10;

System.out.println("平均="+average_Wt);


ここまでできたのですが…
894デフォルトの名無しさん:2007/05/27(日) 17:53:26
基準が得られたんだから、もう一回回せばいいじゃない。
あとここは宿題スレじゃないよ。
895デフォルトの名無しさん:2007/05/27(日) 17:53:44
>>891

for (int i=0; i<=meth; i++)

for (int i=1; i<=meth; i++)
896デフォルトの名無しさん:2007/05/27(日) 17:54:49
>>891
for (int i=1; i<=meth; i++)
デバッグする余地も無い
897デフォルトの名無しさん:2007/05/27(日) 17:57:22
>>893
念を押しとくがそんなもんで宿題スレになんか行くなよw
898デフォルトの名無しさん:2007/05/27(日) 17:57:44
>>894
出来れば1回のループで判断してしまいたいのです
899デフォルトの名無しさん:2007/05/27(日) 17:58:01
>>895-896

とんでもない見落としでした。ありがとうございます!
900デフォルトの名無しさん:2007/05/27(日) 17:58:17
コンパイル時の「シンボルが見つけられません」っていうエラーはどういう意味ですか?
901デフォルトの名無しさん:2007/05/27(日) 17:58:48
>>898
むり
902デフォルトの名無しさん:2007/05/27(日) 18:04:26
>>900
プログラムに書かれているシンボルをコンパイラが理解できなかった時に出るエラー
パッケージ名とかクラス名とかメソッド名とか変数名とかがたぶん間違っている
importしていないとか完全名でないとかでクラス名が解決してないんじゃないの?
もしくは定義していないクラスや変数を使った
903デフォルトの名無しさん:2007/05/27(日) 18:06:46
>>やくざさん
平均を得た後に、得られた平均と各データを比較して
"以下"の数をカウントするしかない。一回では無理。
俺が未知の何かを使って実現できたとしても、逆に複雑になる予感。


あとは、配列の中身はともかく1, 0以外の定数は(ry

int Wt[] ={45,59,98,60,78,54,90,30,50,67};
int sum = 0;
for (int k=Wt.length -1; k>=0; k--) { 
 sum += Wt[k];
}
int average_Wt = sum / Wt.length;
System.out.println("平均="+average_Wt);
904デフォルトの名無しさん:2007/05/27(日) 18:08:59
Bツリーとか構築して
格納しながら平均出してけば
ループは1回で済むかもね
905デフォルトの名無しさん:2007/05/27(日) 19:03:07
>>890
ありがとう

import java.util.Date;
import java.text.DateFormat;

public class DiplayDate{
public static void main(String[] a){

Date dt = new Date();
DateFormat dfm = DateFormat.getDateTimeInstance();

System.out.println(dfm.format(dt));
}
}

import java.text.DateFormat; をimport java.text.SimpleDateFormat;にしたい場合、ソースは変えればいい?
906905:2007/05/27(日) 19:04:37
ソースは変えればいい?

訂正
ソースはどう変えればいい?
907デフォルトの名無しさん:2007/05/27(日) 20:02:57
>>906
せめて、
SimpleDateFormat dfm = new SimpleDateFormat();
とでも打つってくらいはしろよ。

この手の連中が自分の給料とほとんど大差ない金貰ってると思うと反吐が出る。
908デフォルトの名無しさん:2007/05/27(日) 20:14:39
>>906
バカは手と頭を動かさない
>>907
厨学生の小遣い程度しかもらってないのか?
それはもう転職する!
909デフォルトの名無しさん:2007/05/27(日) 20:22:46
初心者です。
分岐条件のwhile文あたりまで進んだ者です。
「繰り返し実行する」の条件で
i++;

i+2;
とかにできないもんでしょうか?


課題で

2
4
6

と表示せよ
といった問題がでて困ってます。
どなたか教えてくれないでしょうか?

910デフォルトの名無しさん:2007/05/27(日) 20:26:19
2 足せばいいじゃん。
911デフォルトの名無しさん:2007/05/27(日) 20:35:38
下記の作業で例えば10を入力すれば1〜0までが表示されますよね?
この表示結果が縦に1〜0が表示されるのですが、改行せずに横に1〜0までを表示させるためにはどう改善すればいいのでしょうか?

try
{
       System.out.println("数を入力してください");
String line=reader.readLine();
int x=Integer.parseInt(line);

for(int i=1; i<=x; i++){
System.out.println(i%10);}}
912デフォルトの名無しさん:2007/05/27(日) 20:37:18
あえていうならi+=2とかか?
913909:2007/05/27(日) 20:37:39
>>910
こんな、感じのコード書いてみたんですけど
 class Kadai01{
  public static void main(String[]args){
  int i;
  i=2;
  while (i<7);
  System.out.println(i+"回目繰り返す");
  i+2;
  }
 }



i++;

i+2;
にしたらコンパイルエラーがでるんですけど。
914デフォルトの名無しさん:2007/05/27(日) 20:38:27
println の ln は line の略。
ということは・・・。
915デフォルトの名無しさん:2007/05/27(日) 20:41:30
>>914
tnks
916909:2007/05/27(日) 20:47:50
>>912
ありがとうございました!!!
917デフォルトの名無しさん:2007/05/27(日) 20:48:34
>>913
頼むから開発会社に就職はしないでくれよ。
あと1冊くらい簡単な本読んでくれ。

i = i + 2;
918デフォルトの名無しさん:2007/05/27(日) 20:49:02
>>913
代入とか演算子とかわかってるか?

int a = 1 ;
System.out.println(a) ;
System.out.println(a+1) ;
System.out.println(a) ;
System.out.println(a++) ;
System.out.println(a) ;

ってやってみ
919デフォルトの名無しさん:2007/05/27(日) 21:53:01
スレとは関係ないけど素数判定はルートNまででOK
920デフォルトの名無しさん:2007/05/27(日) 21:59:36
ルートNまででOKな理由は数学的センスないと解らないから、N/2まででいいと思う。
NがN/2より大きい数で割れないことくらいは解るからw
921デフォルトの名無しさん:2007/05/27(日) 22:39:41
>>920
センス要らないだろ、ルートNって…
922デフォルトの名無しさん:2007/05/27(日) 22:52:06
>>921
OK,ならば3行で説明してくれ
923デフォルトの名無しさん:2007/05/27(日) 22:56:31
Nを合成数と仮定すると、Nは少なくとも約数を2つ以上持つ。
Nの約数を2つ選び、pとqとすると、明らかにp*q <= Nである。
これより、p、qの少なくとも一方はルートNより小さい(大きいと上の不等式が成り立たない)
924デフォルトの名無しさん:2007/05/27(日) 23:05:19
一般人の平均レベルからすると>>923が言えるのは数学的センスがある方だと思うぜ
925デフォルトの名無しさん:2007/05/27(日) 23:10:02
>>923
センスあると思う。
926デフォルトの名無しさん:2007/05/27(日) 23:17:36
>>923
いや、手放しで素晴らしいと思う。
でも、そう答えられるのは数学センスだと思われw

数学的センスのない人は、「〜と仮定すると、」から出てこないから。
927デフォルトの名無しさん:2007/05/27(日) 23:18:38
Javaの発音はJava(↓)なんですか?Java(↑)なんですか?
928デフォルトの名無しさん:2007/05/27(日) 23:21:22
>>923の前提って教科書かなんかで見た事あるぞ。
929デフォルトの名無しさん:2007/05/27(日) 23:23:11
>>928
そりゃどこの教科書にも呪文のように載っているし、証明方法なんて一緒だもの。
930デフォルトの名無しさん:2007/05/27(日) 23:25:18
>>928
4分でかけるのが素晴らしい
931デフォルトの名無しさん:2007/05/27(日) 23:27:20
>>923
合成数24の約数である6と8を考える
6*8 = 42 > 24 となるため、明らかに p*q <= N でない
932931:2007/05/27(日) 23:30:17
すま、途中送信
つまり、pとqの条件はNの任意の約数じゃなくてp*q = Nとなるような数、ってこと
933デフォルトの名無しさん:2007/05/27(日) 23:33:23
ちょっと待てよ。
するってえと約数てのは何なんだ?
わからなくなってきた。
934デフォルトの名無しさん:2007/05/27(日) 23:41:27
>>932
いんや、この場合はpとqを約数と限定して問題ない。
何故ならば、合成数と仮定した場合にpとqのどちらもルートN以下の約数であることが証明できればいいから。
935デフォルトの名無しさん:2007/05/27(日) 23:54:04
不備があった
N=p*q*r (p,q >= 2, r >= 1)
と読み替えてくれ
936デフォルトの名無しさん:2007/05/27(日) 23:55:00
つーかスレ違いなのでここまで

JDK6u1ほしーよーOTZ
937デフォルトの名無しさん:2007/05/27(日) 23:58:27
>>934
本質を読め
約数に限定することが問題なんじゃなくて、任意の約数であることが問題なんだよ
それを許すと931のような反例が出る

合成数ならば自身の約数の積として表せる
このことをN = p*q (p <= q)とおくと、pが取りうる最大の値はp = qであるようなp
このとき N = p*p ⇔ √N = p となり、√Nまで調べれば合成数かどうか判断できる

スレ違いなんでここまでに
938937:2007/05/27(日) 23:59:45
>>937
リロードしろとあれほど(ry
939デフォルトの名無しさん:2007/05/27(日) 23:59:48
同じものを掛けてNになる正数aよりも大きい自然数pでNが割り切れるなら、
q=N/pでもNを割り切ることができ、qはaよりも小さい自然数になる。
つまりNを割り切る自然数は、a以下の自然数の範囲を全て探せば、
aより大きいものはNを探し出したもので割ることで全て得ることができ、
全てを網羅することができる。
940デフォルトの名無しさん:2007/05/28(月) 00:00:46
おまいら、やっぱセンスあるって
941デフォルトの名無しさん:2007/05/28(月) 00:01:35
それより野球しようぜ
942デフォルトの名無しさん:2007/05/28(月) 00:04:01
扇子と野球でリロード大会スレ。
943デフォルトの名無しさん:2007/05/28(月) 00:05:38
>>939
その「同じものを掛けてNになる正数a」こそNの正の平方根 √Nってことか。
944デフォルトの名無しさん:2007/05/28(月) 00:07:51
誰かセッター/ゲッターを分かりやすく解説して。本読んだけど今一分からん
945デフォルトの名無しさん:2007/05/28(月) 00:12:33
投手の放ったボールを打つのがバッター(打者)。
放たれた飛球を捕ったのは偶々センター(中堅)。
946デフォルトの名無しさん:2007/05/28(月) 00:13:21
      ボコ ☆
 ( o・-・)っ―[] /  
[ ̄ ̄ ̄] (´・ω・`)>>945
947デフォルトの名無しさん:2007/05/28(月) 00:14:18
public byte n; というクラスメンバがあるとする。
これは -128 〜 127 までの値をとるよね?
でもそのクラスは実はテストの点数クラスで、
byte を 0 〜 100 の間でしか取れないようにしなくてはいけない。

よって、private byte score; と、アクセスレベルを絞って、
setScoreというセッターで 0 〜 100 までしか、その値をとらないようにする。
ゲッターってのは、一般には単に隠蔽された変数をダイレクトに返すだけ。
getScore() { return score; }

こういうのをカプセル化という。ごめん、これが限界w
948デフォルトの名無しさん:2007/05/28(月) 00:23:56
ゲッターは隠蔽された変数をそのまま返すとせっかくのカプセル化が破壊される場合があるので注意。
>>947の場合のような基本型とかイミュータブルな参照型はたぶん大丈夫だが、
そうでない場合は変数そのものではなく、そのコピーを返すようにした方がよい。
でないと、セッターを介しないで隠蔽されたデータを変更できる抜け道を作ることになる。
949デフォルトの名無しさん:2007/05/28(月) 00:39:08
たとえプログラムが異常終了しようと、一貫性を守ったまま死ぬぜ!
という武士の志のがカプセル化の一面

void setScore(int score) {
 if(score < 0 || 100 < score) {
  thorw IllegalArgumentException();

暴走して一見正しそうな間違った計算結果を出したり
データを壊されるよりは、
プログラムが異常終了する方が1000万倍まし
950デフォルトの名無しさん:2007/05/28(月) 00:44:31
nullを持ったらおかしいようなクラスで
参照型の変数のセッターではnullだったらnull例外を出す

それをしないと全然違うところ(その変数使おうとしたところ)で
ぬるぽ起こして死ぬ

そしてどこでnullであったかを調べるのが大変
951デフォルトの名無しさん:2007/05/28(月) 01:19:22
>>944
JavaBeansにはプロパティという概念がある

たとえば、PersonというクラスにStringのnameというプロパティがそのクラスにあるとする

ここでJavaBeansの約束事として、
nameというプロパティを読み出すのはgetName()
書き込むのはsetName(String value)
ということが決まっている

だから、setName(String value)がなければ、
リードオンリーのプロパティになる
場合によっては書き込み禁止でエラー出ることもある

で、
ゲッターとは値を取得するメソッド(getName)を指し
セッターとは値を設定するメソッド(setName(String))を指す
952デフォルトの名無しさん:2007/05/28(月) 06:39:41
それはbeanプロパティのアクセッサの話だろ。
そんな後付け仕様の事を聞いてるんじゃなくてプログラミング言語一般に通じる
ゲッタとセッタの意義がわからないって話じゃね?

カプセル化という概念があって自分が持つ情報には外から自由に触らせないためにryって感じに答えた方が良いかと。
953デフォルトの名無しさん:2007/05/28(月) 07:23:47
>>952
ならお前が(ry
…というのは置いておこう。


メソッドにしとけば処理を挟める。するとどうなるか?
って視点で考えるといいよ。

…と俺からはこの程度のアドバイスにしておくわ
954デフォルトの名無しさん:2007/05/28(月) 09:40:24
よろしくお願い致します。

アプリケーションサーバーのGlassFishをリモートのLinuxで起動して、
管理画面、Webアプリなどは動作が確認できたのですが、
スタートアップ時に表示される中の

Standard JMX Clients (like JConsole) can connect to JMXServiceURL:
[service:jmx.rmi://jndi/rmi://www.xxx.com:8686/jmxrmi]

として出るURL(service:jmx.....jmxrmi)を指定して、JConsoleでの接続を試
みましたが、

--接続に失敗しました:再試行しますか?--

と出て、これがどうしてもつながりません。


IDとパスワードは、4848ポートの管理画面と同じものを入力しています。
ブラウザから、http://www.xxx.com:8686/にアクセスすると白い画面が
出るので、ポートへの接続自体は問題ないと思われます。また、念のため、
こちら側のファイアウォールも切っています。

サーバー:
Linux
Sun Java System Application Server Platform Edition 9.0
JDK1.6

クライアント:
WindowsXP
JDK1.6

です。何か、思い当たられることがありましたらご教授頂ければ幸いに思います。
955954:2007/05/28(月) 09:59:23
一応、
http://java.sun.com/j2se/1.5.0/docs/guide/management/faq.html#linux1
も見て、
hostname -iは127.0.0.1ではなく、
また、
/sbin/iptables --listでも
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:8686
と表示されております。重ね重ねですみません。
956デフォルトの名無しさん:2007/05/28(月) 15:40:36
<html>
途中省略
<a href="http://xxxxx">AB1</a>
<a href="http://xxxxx">AB2</a>
<a href="http://xxxxx">AB3</a>

</html>
957デフォルトの名無しさん:2007/05/28(月) 15:45:16
す・・・すいません。キーボードがおかしくなってしまって、書きかけが投稿されてしまいました。
<html>
途中省略
<a href="http://xxxx1">AB1</a>
<a href="http://xxxx2">AB2</a>
<a href="http://xxxx1">AB3</a>
</html>
というhtmlからAB1の<aタグのリンク("http://xxxx1")を取得するにはどうしたらよいでしょうか。
getElementsByTagName("a")で<aタグの列挙はできたのですが、AB1であることを調べる方法がわかりません。
958デフォルトの名無しさん:2007/05/28(月) 15:52:02
例えば
if(time==20){//2秒の時
  face._rotation -= 30;//faceの角度を-30
righthand._rotation -= 20;//righthandの角度を-20
lefthand._rotation -= 10;//lefthandの角度を-10
rightfoot._rotation +=5;//rightfootの角度を+5
leftfoot._rotation -=4;//leftfootの角度を-4

というような物をテキストファイルからStringで読み込んだとして
rocationの部分だけをrotと書き変えてif(time==20){//2秒の時
  face._rot -= 30;//faceの角度を-30
righthand._rot -= 20;//righthandの角度を-20
lefthand._rot -= 10;//lefthandの角度を-10
rightfoot._rot +=5;//rightfootの角度を+5
leftfoot._rot -=4;//leftfootの角度を-4

と出力するようにするにはどうすればよいのでしょうか?
959デフォルトの名無しさん:2007/05/28(月) 18:15:19
>>958
単純に全てのrotationをrotに置き換えたいのなら
置き換え後文字列 = 置き換え前文字列.replaceAll("rotation", "rot");
960デフォルトの名無しさん:2007/05/28(月) 18:30:13
>>957
質問がメソッド名だけで情報が少ないから当てずっぽう
aエレメントが取れたら、その最初の子ノードがAB1とかAB2とかのテキストノード
aElement.getFirstChild()でたぶん取れる
そのノードの文字列そのものはNode#getNodeValue()でいけるはず
961デフォルトの名無しさん:2007/05/28(月) 19:56:53
コマンドプロンプトを開いたらC:\Documents and Settings\〜になっているのですが
このデフォルトのパスを変更するにはどうやったらいいんでしょう?
javaファイルをCドライブのjavaフォルダに入れていて開くたびにcd C:\javaと打って
毎回変更しているのですが面倒なので開いたらC:\javaの状態になっているようにしたいです。
962デフォルトの名無しさん:2007/05/28(月) 20:11:30
>>961
コマンドプロンプトのショートカットでC:\javaを作業フォルダに設定して
おけばよい。(プロパティのショートカットタブに「作業フォルダ」の欄がある)。

スレちがい、いたちがいだから。これ以上の質問は受け付けません。
>>1を読め
963デフォルトの名無しさん:2007/05/28(月) 21:03:55
簡単な質問です。java初心者なのでお許しを。

javaを開発するためには何を入手すればいいのでしょうか。
sunのページには何度かいったのですが、どこからダウンロードすればいいかわかりません。
どなたかご教授お願いします。
964デフォルトの名無しさん:2007/05/28(月) 21:10:52
>>963
jdkか、jreを入れた環境でeclipseを使うか…
http://java.sun.com/javase/downloads/index.jsp

あと「初心者なので」とかいう免罪符は掲げないほうが心証いいよ
965デフォルトの名無しさん:2007/05/28(月) 21:10:56
javaで開発する、ってことだよな?
いきなりsunに行かずに、「基礎」「入門」あたりのキーワードで検索
よさそうなページをみつけて、そこの手順に沿ってダウンロードすればいい
966デフォルトの名無しさん:2007/05/28(月) 21:11:45
>>963
ttp://java.sun.com/javase/ja/6/download.html
JDK6u1

Wiki嫁って>>1差そうとしたけど、Wiki今、混み合ってて見れないって。
取りあえず、教授してやったぞ、ほーれー

# ついでに「教授」についてもググっときなさい
967デフォルトの名無しさん:2007/05/28(月) 21:20:06
public class H {
public static String func(String arg) {
return arg;
}
}

public T {
public static String func(String arg) {
String dest = arg;
return dest;
}
}
って違いがあるのでしょうか。スレッドセーフかの視点でみて。
968デフォルトの名無しさん:2007/05/28(月) 21:22:19
                ,-,,,,、                    ,-,,,,_
       ,,,,,,,、    ,,,,,,_゙'-,. "'i、       .,,,,,,,、    ,,,,,,,゙'-、^'i、    .i,¬ー-、
       ゙''i、`\   \.`''-\,,l゙       `'i、 `''i、   ‘'-,`''-\,,l゙     ^'i、 ,)
       丿 ,l,_,,,,,,,― |i、 }         丿 Z_,,,,,,-ヘヽ、゙l        | .|      __
      ,/ ,,-----=@,,,7゙"`        ,/ ,,-----=@,,,)゙″           | |   .,,-'",,,,,,、`'i、
     ,/`./    / 丿             / .,/`   ,l゙ 丿       |゙ヽ,,,―" `゙'ュ‐゙_,/゛  |  |
    .,/.,,/`    /` 丿         ,/ ,/    ,/ 丿          \,,,,-‐,!  '`,/    .|  l゙
  ,,-",,/    丿 ,i´           ,/_,/    丿 ,i´           丿 ,,,i´     ,!  |
 i彡‐"     ,/` ,/`           ィ,ン'"     / ./              ,/  .|       |  |
        ,,i´ ./                ,,‐`./            ,/`.,┤ |       |  |    ./゙|
      .,/ .,/                   ,/ .,/            / 丿 | .|      { {   .,/ ,l゙
     ,,/ ,/`               ,,/ ,/`            / ,、゙'-,| l゙         |  }, ._/.ノ
  _,/゙,,/゛                  _,/゙,,/゛              l゙ .,/`\  |       ヽ,_ ゙"゛,,/
  (ン'"゛                 (ン'"゛                `″  ゙l 丿        `゙゙゙゙゛
969963:2007/05/28(月) 21:33:15
有り難うございました。
皆さんのおかげで解決できました。
970デフォルトの名無しさん:2007/05/28(月) 21:37:21
>>968
ぐぐる用語でも教えてください。
スタックフレームクラス遣えばなんとか実験できそうなんですが、試行錯誤中
971webmaster@気まぐれアナスイ:2007/05/28(月) 21:50:47
>>968
   {???}
    ζ
     !(+Φ_Φ)つ√ζ
    +⊂. + 〆∂   {Ж}
    "〆∂∂
   〆〆
  .:"

972デフォルトの名無しさん:2007/05/28(月) 22:06:14 BE:165087735-2BP(100)
>>967
下のは余計な事やってるだけ
973デフォルトの名無しさん:2007/05/28(月) 22:12:51
javaで共有メモリの使い方ってどうやってやるのでしょうか。
974デフォルトの名無しさん:2007/05/28(月) 22:16:02
無いからメモリマップドファイルで代用して。
975デフォルトの名無しさん:2007/05/28(月) 22:27:30
Javaの発音はJava(↓)なんですか?Java(↑)なんですか?
976デフォルトの名無しさん:2007/05/28(月) 22:30:12
Javaだね、Java (=ω=.)
977デフォルトの名無しさん:2007/05/28(月) 23:19:00
/*<APPLET CODE="GUI.class" WIDTH=500 HEIGHT=500>
</APPLET>
*/
の数値を変えてもアプレットビューアの大きさが変わらないのはなぜですか?
978デフォルトの名無しさん:2007/05/28(月) 23:21:10
スレとは関係ないけど素数判定はルートNまででOK
979デフォルトの名無しさん:2007/05/28(月) 23:29:41
>>967
後半は、クラス定義がないから動かんな。

は、さておき。

String dest は、最適化で削られる可能性ないか?
980デフォルトの名無しさん:2007/05/28(月) 23:46:21
Java始めた初心者ですが、質問です

Java について言及しているサイト等で
クラスSomeClass のメソッドsomeMethod を表すのに
SomeClass#someMethod
という書き方をしているのを何回か見かけました

これはJavaで標準に用いられている表現なのでしょうか
それとも(オブジェクト指向の)言語一般に用いられているもの
あるいは他言語でよく使われる表現を、そのサイトの執筆者がたまたま用いたものなのでしょうか?

メンバ変数someField、メソッドsomeMethod があるとして
それらを示すのにJavaで標準的に用いられている表現がありましたら教えてください
981デフォルトの名無しさん:2007/05/29(火) 00:10:58
>>979
最適化で削られるも考えないでください><
staticメソッドはクラスで一つって言葉の解釈の仕方がよく分からないのです。
スレッドA,B二つあって、Aが関数をfunc("A");として実行後、仮引数がString destに格納された所でBスレッドがfunc("B")を実行した場合、
いったいstaticメソッドの中はどうなってるの?ってのがイメージ出来ない。
Cでいう関数がstaticメソッドにあたるもの考えていたので、関数はヒープ上にあり、引数はスタックに詰まれる(引数は参照)っていうのもあっていれば、
Aスレッドが実行終わる頃には、Bスレッド実行によってfunc内のdest変数は"B"となって処理される?
この手のクラスTの扱いがだめならservlet全部だめになっちゃいますんで、「マルチスレッドで問題なし」なんでしょうが、
動作イメージが湧かない。
この二つのサイトって正しい情報なんですかね?staticなメソッドについては言及ないようですが・・・
http://www.nextindex.net/java/perform/storage.html
http://segroup.fujitsu.com/sdas/technology/web-apl/05-servlet-container.html
982デフォルトの名無しさん:2007/05/29(火) 00:20:33
>>980
Javaの標準ではあるが、他の言語では見ないね。
そういう表記法が一般的になった理由は、javadocのリンクがどういうURLになっているかを見れば分かる。
まあ、とりあえず見て。
ttp://java.sun.com/javase/ja/6/docs/ja/api/index.html
983デフォルトの名無しさん:2007/05/29(火) 00:40:42
>>982
レスありがとうございます

「#」が用いられるのは、単にURLの #フラグメント の部分をそのまま
受け継いだ影響ということでしょうか

説明する変数/メソッドの種類や特性によって、何かしらの表記のルールが
あるのかと思っていました

ありがとうございました
984967:2007/05/29(火) 00:52:57
スタック型のアーキテクト?と呼ぶのですかね、それを勉強しつつ、なんとなーく理解してきました。
まだ論理的にな説明もで傷、・テストコードさえ実装してないですが、
以下のサイトが役に立ったので、はっときます。(勝ってな引用なので一応リンク外す)
変なこと言ってるよ!ってサイトがあれば内容と訂正をこのレスでお願いします><
ttp://java-house.jp/ml/archive/j-h-b/037778.html#body
ttp://www.pro.or.jp/~fuji/mybooks/cpro/cpro.4.5.1.html
985967:2007/05/29(火) 00:56:33
すんまそん。あとこれも
http://i.loveruby.net/ja/rhg/book/thread.html
986デフォルトの名無しさん:2007/05/29(火) 00:58:32
>>981
>最適化で削られるも考えないでください><
無意味。コンパイラやVMによってガンガン削られる

>staticメソッドはクラスで一つって言葉の解釈の仕方がよく分からないのです。
インスタンスを幾つ作っても共有されるってこと

>関数はヒープ上にあり
わけわかめ

>引数はスタックに詰まれる
OK

>func内のdest変数は"B"となって処理される?
わけわかめ
987デフォルトの名無しさん:2007/05/29(火) 01:10:28
>>983
インスタンスメソッドでは#を使ってクラスメソッドでは.を使うもんらしい。

>>982
Rubyも#を使っている。
988デフォルトの名無しさん:2007/05/29(火) 01:51:58
>>987
javadocの慣習で言えば、どっちも#だけど。
#の右側にインスタンスメソッドorフィールドでも関係なしにクラス名がくるぐらいで。
989デフォルトの名無しさん:2007/05/29(火) 05:17:10
現在、大学で情報系の学部に在籍している者です。
夏休みにソフトウェアを作っている会社でインターンシップをしようと思い、使われている言語がJavaという事で、
プログラミングのクラス、自分でやさしいJavaという本を読んでで基本は学んだのですが、会社の方から見せてもらった
サンプルコード(実際に作られているソフトのサンプルコード)と自分で勉強した範囲を
遥かに凌駕している内容で、正直あせっています。

入門書のレベルから実際にプロの方々が書いているコードのレベルに到達するには、
どのように勉強をしていけば良いのでしょうか?
990デフォルトの名無しさん:2007/05/29(火) 05:18:13
現在、大学で情報系の学部に在籍している者です。
夏休みにソフトウェアを作っている会社でインターンシップをしようと思い、使われている言語がJavaという事で、
プログラミングのクラス、自分でやさしいJavaという本を読んでで基本は学んだのですが、会社の方から見せてもらった
サンプルコード(実際に作られているソフトのサンプルコード)と自分で勉強した範囲を
遥かに凌駕している内容で、正直あせっています。

入門書のレベルから実際にプロの方々が書いているコードのレベルに到達するには、
どのように勉強をしていけば良いのでしょうか?
991デフォルトの名無しさん:2007/05/29(火) 05:42:28
散々既出だけどやさしいJavaは役に立たない。
あれはプログラムを全く知らない素人がちょっと触れるようになる為の本。
入門書以前と考えるべき。

まずは入門書をやる。
Core Java、Head First Java、独習Javaあたりがよく勧められる。
分量的にも内容的にもヌルい本じゃないけど、このあたりを1冊終わらせたならば、入門レベルを卒業と言えるんじゃないかね。

やさしいJava氏ねよ
992デフォルトの名無しさん:2007/05/29(火) 06:49:58
>>990
つか、情報系の学部に行く前にいくつかの言語に精通してるのが
普通なんだが。
993デフォルトの名無しさん:2007/05/29(火) 08:18:49
>>992
それを言ったらもう手遅れってことじゃないですかw

>>989-990
そんなことはどうでもよくて
入門書を読んでる間はいつまでも入門者

他人が書いたソースを読んでデバッグできれば一人前

君はいち早くそれに気付いたのだからむしろ幸運だよ
とにかく色んなソースを読み・書きまくる

まだ若いんだから焦る必要はない
994デフォルトの名無しさん:2007/05/29(火) 08:23:32
>>987
> インスタンスメソッドでは#を使ってクラスメソッドでは.を使うもんらしい。 
これは初耳。へー。
情報源を是非教えて頂きたい。

>>990
勉強してるうちは文法、言語仕様と、Javaならオブジェクト指向をしっかり
頭に叩き込んでおけば大丈夫。
それには自信があるなら、あとの違いは知ってるクラスの量かな。
言語学っぽくいうなら語彙量ってやつ。
こればっかりは経験がモノをいうので、色々作りまくってください。

ちなみに俺が最初に買ったJavaの本はEffective Javaでした…
995デフォルトの名無しさん:2007/05/29(火) 08:52:03
>>994
Ruby
996デフォルトの名無しさん:2007/05/29(火) 08:53:02
>>990
Jakarta Commons の本とかひととおり見るといいよ
997デフォルトの名無しさん:2007/05/29(火) 11:52:27
>>983
javadocに関してはURLやURIのフラグメントから来ている。
一般的なアクセス演算子としては上に上がった通り。

>>992
最近の情報系は>>990みたいな奴ばっかでPL使えるのは少ないよ。
情報系なのにPC系雑誌読むか、PCの話したらヲタ扱いされたって伝奇もある。
中にはマイコン制御とか、組み込みとか、ドライバ自作とか、生粋のギークも居るが絶滅危惧種だね。
そういう連中は実力にあった場所に、それぞれ散っていくので存在自体が霞だよ。
今の情報系とか専門生はギークとのコネはないしね。

まあ、手遅れってのは笑い事じゃないんだが。
998デフォルトの名無しさん:2007/05/29(火) 12:34:04
> PCの話したらヲタ扱い
笑い話にならんな、マジで。

とは言え、会社でも休日に勉強とかしている方が少数派だし、雑談で技術の話を振るとヲタ扱いされるわけだもんな。
999デフォルトの名無しさん:2007/05/29(火) 14:11:54
コンパイルして実行すると、
Exception in thread "main" java.lang.ArrayIndexOutOfBounds:0
というエラーが出るんですが、これはどういうことでしょうか?
1000999:2007/05/29(火) 14:16:12
すみません。自己解決しました・・。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。