07/04/30 22:28:50
>1乙カレン様
3:デフォルトの名無しさん
07/04/30 22:40:10
javaを始めたばかりなのですが
if文の中で宣言の指定をすると「シンボルを見つけられません」といわれて
コンパイルできません。
最初の段階で宣言すればいいのですが、なぜif中に宣言したらいけないのでしょうか?
誰か教えてもらえると助かります。
4:デフォルトの名無しさん
07/04/30 22:42:54
>>3
いけなくない。
if () { A }
B
Aでする宣言は有効。ただし、Bではその変数は見えない。
5:デフォルトの名無しさん
07/04/30 22:55:29
>>4
あー
なんとなくわかりました。
ありがとうございます。
6:デフォルトの名無しさん
07/05/01 03:09:15
ActionScriptというFlashで使われている制御プログラムの言語をプログラミングが
あまり出来ない人でも使えるようにActionScrip和訳辞書のようなイメージでシステム
を作りたいと思っています。ユーザーがイベントやそのイベントが起きたときの処理などを
日本語であらかじめ設定されたライブラリから選択すればそのままソースがデータベースから
読み出されアウトプットされるようなものを作りたいのです。
どのように作ればよいのでしょうか?
何か開発に使えそうなソフトなどないでしょうか?
本当に困っています。誰か助けてください
7:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/01 04:20:34
>>7
うん
あんたの解釈で合ってる
9:デフォルトの名無しさん
07/05/01 04:46:47
>>8
ありがとうございます
ちょうど今日SJC-P受けるのでその前にすっきりできました\(^o^)/
10:デフォルトの名無しさん
07/05/01 06:36:43
雨の中、5963
11:デフォルトの名無しさん
07/05/01 08:59:25
2週間の黄金ウィークなんですが、Javaで何をしたらいいですか?
12:デフォルトの名無しさん
07/05/01 09:04:31
>>11
曜日を取得
13:デフォルトの名無しさん
07/05/01 09:22:49
>12ナイス。でも、おわた…
次は?
14:デフォルトの名無しさん
07/05/01 09:30:08
>>13
祝日を管理するプログラム
15:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/01 10:46:19
以上を踏まえて万年カレンダーを作る。
・指定された年月に対する一ヶ月分のカレンダーをGUI上に表示する
・土日祝祭日は色分けすること。
・年月の指定範囲は1970年1月~2099年12月とする
・祝祭日は過去にさかのぼると平日だったりするので(海の日とか天皇誕生日とか…)その辺も考慮する。
・将来的に祝祭日の追加に対応できるようにする。
・余力があればこれを元にスケジュール帳を作ってみる。
これだけやればGWの暇つぶしになるじゃろ
17:デフォルトの名無しさん
07/05/01 10:47:05
>>15
いつ天皇が逝っても対応できるように和暦の即時追加とか
はぁ~、和暦とかハッピーマンデーをどっかのサーバーで一元管理してくれればいいのにな
18:デフォルトの名無しさん
07/05/01 10:49:54
>17コピペでいい?
( ̄σ‥ ̄)
19:デフォルトの名無しさん
07/05/01 11:04:40
東風荘って麻雀ゲーム(ネット対戦)があるんだけどさ
このクライアントアプリでJava版があるんだよ
これを自分の考えたアルゴリズムで打つように組んで遊んでるよ。
このアルゴリズムがすげー弱い・・・。
20:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/01 11:41:39
>>20
スレ違い
22:デフォルトの名無しさん
07/05/01 11:45:15
ですよね、探してもなかったから・・
すいません。
23:デフォルトの名無しさん
07/05/01 11:53:15
jの回数分って…
24:21
07/05/01 11:54:00
>>22
本当だ、JavaScriptってないんだな。
Web制作板に結構あるからそっちでどうだろう?
25:デフォルトの名無しさん
07/05/01 12:16:21
Date型からString型への変換ってどぉしたらいいですか?
SimpleDateFormat使うんだろうけどわかりませn
26:デフォルトの名無しさん
07/05/01 12:24:07
>>25
どういう文字列にしたい?
2000年10月10日 10時10分
2000/10/10 10:10
などなど具体的に
っていうかAPIは読んだ?
27:デフォルトの名無しさん
07/05/01 12:30:32
1.日付のフォーマット
1.時刻のフォーマット
1.日付と時刻の両方のフォーマット
1.パターン文字によるフォーマット
があるお
28:デフォルトの名無しさん
07/05/01 12:33:33
>>26
API読みました!が、わかりません;;
2000/10/10(Dateクラス)をテキストフィールドに表示させたいんですが、
その場合Stringにしなきゃですよね?しかし方法がわかりません;;
29:デフォルトの名無しさん
07/05/01 12:41:18
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
sdf.format(new Date(time));
30:デフォルトの名無しさん
07/05/01 12:43:45
APIが読めるぐらいの基礎知識はつけろよ!
31:デフォルトの名無しさん
07/05/01 13:56:18
JAVAの開発環境はどれがオススメですか?
できればfreeがよいです。
windows、macで変わりますか?
32:デフォルトの名無しさん
07/05/01 15:02:07
開発環境の質問が出ているので便乗で失礼します。
Javaをはじめたばかりなんですが
Eclipseなどの開発環境をいきなり入れるべきか
まずはエディタ+JDKの王道でやっておくべきか
どちらの方がおすすめでしょうか?
33:デフォルトの名無しさん
07/05/01 15:09:05
>>32
どっちでも自分がいいと思った方を選べばいいよ
自分の感性を信じるんだ
34:デフォルトの名無しさん
07/05/01 15:10:10
この手の話は100万回繰り返されてて、一歩間違えば荒れる元だが
それでも敢えて言うなら、IDEから始めた方が良いと思う。この方が馴染みやすい。
ただ、ある程度Javaに慣れてきたら、エディタ+JDKでの開発にもふれておくべき。
IDEの後ろで何が起きているかは知ってて損はない。
35:デフォルトの名無しさん
07/05/01 15:30:58
まずはコンパイラの使い方覚えてからIDE触った方が良いよ
36:32
07/05/01 15:55:09
>>33-35
「どちらが良いかは人それぞれ」なんですね。
かなり乱暴なイメージとしては、初心者がウェブサイトを作るのに
メモ帳で手打ちしていくかホームページビルダーを使うか、
といった感じなんでしょうか。
ものの本を何冊か読んでみたところ、
エディタ+JDKが大前提で書かれてるものばかりだったので、
初めから統合開発環境に手を出すのはご法度なのかと思っていましたが、
そうとも限らないんですね。
簡単なコーディングをいくつかエディタで書いてみてから
統合開発環境も触ってみようと思います。
レスありがとうございました。
37:デフォルトの名無しさん
07/05/01 16:36:21
>>32
無料なんだから全部試してから決めれば?
38:デフォルトの名無しさん
07/05/01 17:10:42
すごく抽象的な話ですみません。、
関数を使うとき微妙に違う処理なんだけど引数に渡すものもない場合
どう呼び出すんでしょうか?
例えばtextshow1関数とtextshow2関数って分けずに
textshow関数で引数を渡すと思うんですが、
textfield1と2で違うだけって場合とか。
文字列を渡してやればいいのでしょうか?スマートでない気もします。
39:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/01 17:22:42
> 微妙に違う処理なんだけど
何が違うのか具体的、かつ詳細に。
っつか、何が問題なのかもよくわからんし、
面倒だから自分の気が済むようにすればいいんじゃね? とか思わなくもない。
41:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/01 20:24:22
sjc-pうかた\(^o^)/
44:デフォルトの名無しさん
07/05/01 20:32:16
>43
貴様、朝4時頃にカキコしてたやつだろ。
朝っぱらから受けるんだなぁと思ってたら、こんな時間まで…
45:デフォルトの名無しさん
07/05/01 20:35:39
試験は昼過ぎに終わったよ
帰りにショッピングしてたよ\(^o^)/
46:デフォルトの名無しさん
07/05/01 20:59:53
\^o^/
47:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/01 21:35:25
>>1
49:デフォルトの名無しさん
07/05/01 21:39:21
>>2
50:デフォルトの名無しさん
07/05/01 21:43:22
アプレットでメソッドを参照することはできますか?
どういうことかというと、↓みたいなことをアプレットでもできるか?という意味です。
class A{
public static void main(String[] args){
B();
}
public static void B(){
C;
}
}
51:デフォルトの名無しさん
07/05/01 21:51:58
>>50
メソッド呼び出してるようにしか見えないんだけど。
参照ってどこにあんの?
52:デフォルトの名無しさん
07/05/01 21:53:49
メソッドを参照という言葉を意味が通るように解釈すると、
「Methodオブジェクトを取得して何かする」という意味になりそうだが
たぶん違うな。
53:デフォルトの名無しさん
07/05/01 21:53:58
じゃあ参照じゃなくて呼び出しです。
54:デフォルトの名無しさん
07/05/01 21:58:58
>>53
なんでメソッド呼び出しが できなくなるって思うんだ?
55:デフォルトの名無しさん
07/05/01 22:03:10
やってみてもできないからです。
drawlineを含んでるからかな。
56:デフォルトの名無しさん
07/05/01 22:10:02
呼ばれてるけど期待する結果になっていないのか、
呼ばれておらずなにも起こらないのか、
コンパイル自体ができないのか、
いろいろ可能性があって回答不能。
57:デフォルトの名無しさん
07/05/01 22:11:58
>>55
とりあえず、ソース全部晒せ。
コンパイルエラーか実行時エラー出てるなら、それも全部。
58:デフォルトの名無しさん
07/05/01 22:14:57
晒すのは嫌なので自分で何とかすることにします。ありがとうございました。
59:デフォルトの名無しさん
07/05/01 22:47:12
>>39
なるほど!
うまくいきました。
>java.net.HttpURLConnection
こんなクラスあったんですね・・・検討したいと思います。
ありがとうございました。
60:デフォルトの名無しさん
07/05/01 23:29:07
SwingとかSWTでプログラミングするって聞きますが、これらはIDEなんですか?
61:デフォルトの名無しさん
07/05/01 23:30:08
違います。
62:デフォルトの名無しさん
07/05/02 00:09:17
最近はじめたばかりの初心者です
入力した誕生日に対して現在の日付を基準に年を求めるメソッドを
作りたいのですが、どのメソッドをどのように使ったらいいかわかりません・・・(´・ω・`)
どなたか教えてください(´・ω・`)
63:デフォルトの名無しさん
07/05/02 00:18:03
>>62
現在日付は取れるのか?
四則演算は出来るのか?
誕生日入力ってのはmainのパラメータで渡すのか?
何が出来ないんだ?
出来る事と出来ない事を分けて書いてくれ
64:デフォルトの名無しさん
07/05/02 00:36:58
>>62
中身はよくないと思うが参考にはなるだろう
URLリンク(forum.java.sun.com)
つまり
java.util.Calendar
java.util.Date
だ
65:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/02 01:01:57
算数初心者?
67:デフォルトの名無しさん
07/05/02 01:09:40
初心者なのですが≒頭が悪いのですが
68:デフォルトの名無しさん
07/05/02 01:14:57
int / int = int
(double)int / (double)int = double
69:デフォルトの名無しさん
07/05/02 08:33:03
%←あまり
70:デフォルトの名無しさん
07/05/02 09:44:47
>>65
商と剰余を同時に計算することはできないので、それぞれやる計算する
がある。ところで、doubleでの余りってどういうものを期待している?
71:デフォルトの名無しさん
07/05/02 10:14:40
Java(ジャバ) の読み方というかイントネーションについて。
1.↑↓(吉幾三の『よし』に近いイントネーション)
2.↓→(和田アキ子の『わだ』に近いイントネーション)
どっちなんでしょうか?
72:デフォルトの名無しさん
07/05/02 10:17:20
中国語の四声に合わせて読んでみよう
ジャヴァ、ジャヴァ、ジャヴァ、ジャヴァ
73:デフォルトの名無しさん
07/05/02 10:19:06
たすけてくれぇぇ
xlsファイルをCSVファイルに変換するJAVAプログラムなんて
あるのぉ??
(σ´Д`)JExcelApi使ったけどリファレンスが全部英語でわかんねぇ
74:71
07/05/02 10:22:18
>>72
読んでみましたが、第2声なのか第4声なのかというところですかね。
どっちが主流なんでしょうか?
75:65
07/05/02 10:27:00
わかりました。
わざわざありがとうございます。
76:72
07/05/02 10:43:05
>74
いや、あの…ネタだったのに、ごめんorz
個人的には『わだ』式。
元々英語なんだから日本語にした時の発音なんてそれぞれじゃね?
77:デフォルトの名無しさん
07/05/02 10:47:33
>73
つーか、ExelでCSV保存しなおすことができるよね
78:71
07/05/02 11:20:43
>>76
あ、ネタだったんですか・・・。
でも、分かる人には四声で表現した方が伝わりやすいですね。
>元々英語なんだから日本語にした時の発音なんてそれぞれじゃね?
それもそうなんですが、例えばWordとかExcelとかだと第1声に近い感じのが主流ですよね。
Javaにもそういう主流の発音があるのかなぁ、と思ったので。
どうでも良いと言えば、どうでも良いんですけど
以前、Word、Excelの発音が第4声に近い感じの人が
「WordとExcelぐらいできますよ~」と自身満々に言ってた割りに全然使えなくて
「使い慣れてる人はあんな発音しないよな・・・」みたいな印象をみんな持ってたので
ソフトの発音と言えどもバカにはならないな、と思ってたんですよね。
もし主流の発音があるのなら今のうちにそっちにしとこうと思って質問したんですが、
って、ものすごく長くなってすみません。
発音気にする前にワニの本読みます。
79:デフォルトの名無しさん
07/05/02 11:28:47
仕事をしていると
( c == 'A' )
がアザラシに見えてきます。どうすれば良いんでしょうか?
80:デフォルトの名無しさん
07/05/02 12:32:24
>>79
定数を定義する。これで'A'がメソッドの中に現れることはない。例えばこう。
public static char ^ω^ = 'A';
81:デフォルトの名無しさん
07/05/02 12:52:35
俺なんてjavaのキャラクターが奥歯に見えるぜ。
82:デフォルトの名無しさん
07/05/02 13:04:25
String型のデータをDate型にいれるのってどうすればいいですか?
83:デフォルトの名無しさん
07/05/02 13:09:33
>>82
>>29あたり見れ
84:デフォルトの名無しさん
07/05/02 13:12:28
>>83
ありがとうございます!
85:デフォルトの名無しさん
07/05/02 13:12:35
え くせる
くせる え
どっちとも読むと思われ。
86:デフォルトの名無しさん
07/05/02 14:06:48
>>80
( c == ^ω^ )
どう見ても、アザラシです。ありがとうございました。
87:82
07/05/02 14:27:47
やってみたんですが>>29だと現在の日付になっちゃいますよね?
StringにYYYY/MM/ddの形で文字列が入ってることが前提だとどうすればいいでしょう?
88:デフォルトの名無しさん
07/05/02 16:41:51
>>87
あのなぁ>>29が回答だなんて誰も言ってないだろ?
ある程度ヒントが出てるんだからクラス名使って自分で調べろよ。
その上で何が分からないのかを聞けよ。
もしも自分なりに調べた上で質問してるなら
何を何処まで調べて、何が分からないんだ?
89:デフォルトの名無しさん
07/05/02 16:48:52
>>87
URLリンク(java.sun.com)(java.lang.String)
URLリンク(java.sun.com)(java.lang.String,%20java.text.ParsePosition)
90:デフォルトの名無しさん
07/05/02 21:05:17
JAVAでxlsファイル(計3シート)を
csvファイルに変換したいのだが・・・。
どうしてもcsv変換後は前と(セルの中身)配置が違う。
どうしたらいいんだ~!誰か・・エレガントなロジックをおしえてくれぇぇ!!
読み込みにはPOIを使用してます。
91:デフォルトの名無しさん
07/05/02 21:11:41
マルチかよ・・・
92:デフォルトの名無しさん
07/05/02 22:14:41
swing使ってwindowsプログラミング?してるんですが、
何か手軽にデバッグできるようなのありませんか?
C(win32api)ではダイアログボックスがすごく便利でしたが、
それに相当するようなものないかなーと
93:デフォルトの名無しさん
07/05/02 22:18:46
>>92
javax.swing.JOptionPane#showMessageDialog とか?
素直にNetBeansとかEclipseみたいなIDEの
付属のデバッガ使った方が良いような気もするけど。
94:デフォルトの名無しさん
07/05/02 22:45:58
>>93
なぜか付属のデバッガのことを忘れてましたw
ありがとうございました。
95:デフォルトの名無しさん
07/05/02 22:58:21
JAVAでプロセス間通信ってどうやってやるの?
96:デフォルトの名無しさん
07/05/02 23:09:47
ソケットを使うのは普通に出来る。
共有メモリとかは標準にはないけど、NIO方面になんかあったよーな気も……
97:デフォルトの名無しさん
07/05/02 23:10:08
>>95
ソケット通信とか色々あるけど
98:デフォルトの名無しさん
07/05/02 23:31:37
textfieldの一番左端に文字をsetするには
どうすればいいでしょうか?
99:デフォルトの名無しさん
07/05/02 23:35:14
すみません。右端でした。
100:デフォルトの名無しさん
07/05/02 23:35:44
しかもtextareaでした。
101:デフォルトの名無しさん
07/05/02 23:47:47
テキストの文字を取得して、最後に文字をくっつけて、またテキストにセットすればいいやん。
102:デフォルトの名無しさん
07/05/02 23:53:02
いえ、そういうことではなくて、
setTextを使うとtextareaの左端に表示されてしまうので。
それをtextareaの右端に表示したいんです。
103:デフォルトの名無しさん
07/05/03 00:05:26
AWTだとプラットフォームのpeer次第だろうな。
SwingのJTextAreaは
textArea.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
だろうか。
正確には、中に子供部品を配置するときの左右に関係するパラメータだと思ったが。
104:デフォルトの名無しさん
07/05/03 00:19:18
ありがとうございます。
swingなので、よくわかりませんがやってみます。
105:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/03 01:03:35
JTextFieldなら
import static javax.swing.SwingConstants.TRAILING;
textField.setHorizontalAligment(TRAILING);
で、現在の行方向の行末に向かって揃えられる。
TRAILINGの代わりにRIGHTなら行方向にかかわらず右揃えになる。
JTextAreaにはsetHorizontalAlignmentなかったな。
107:デフォルトの名無しさん
07/05/03 02:04:34
質問ですただいま私のプログラムに3つのjavaがはいっているのですが
5・0の9、10、11と入っています?これは上書きされないのでしょうか・・
容量ばかり食ってしまうので、9と10を捨てて最新と思われる
11だけを残しておけば後はアンスコしても大丈夫でしょうか?
それとも9も10も11もそれぞれ違う役割をしているからどれか1つでも
アンスコしたら何かが起動しなくなる・使えなくなるなどということがある。
などということでも何でも良いので教えてください。お願いします。
108:デフォルトの名無しさん
07/05/03 02:23:17
>>107
JDK自体に問題はない
クラスパスどこで管理してるかは君次第
109:デフォルトの名無しさん
07/05/03 12:54:49
>>108
レスありがとうございます。すいません、初心者なもんで
ちょっと説明が難しいのですが。とにかく、9,10,11は
それぞれ別物ということでしょうか?そしてその9でも10でも11でも
何かのプログラムが例えば9のjavaで使用していればアンスコしたら
使えなくなるから×で最新と思われる11のjavaでも何も使用して
いなければアンスコしてもおkということでしょうか。。。
110:デフォルトの名無しさん
07/05/03 13:45:36
>>109
そんな感じ。
111:デフォルトの名無しさん
07/05/03 13:54:24
>>109
自分で何も設定した覚えがなければ、とっくに動いていない9・10をさっさと消すべし
112:デフォルトの名無しさん
07/05/03 14:01:58
抽象クラス(というか継承)の使い方がよくわかりません。
クラスA,B,Cを含むパッケージがあります。
Aは抽象クラスです。
Aを継承したクラスB,C,Dを作成します。
B,C,Dは異なる実装ですが、同じ機能を提供します。
この場合、B,C,Dのインスタンスは外部からは何型として参照すれば良いのでしょうか。
113:デフォルトの名無しさん
07/05/03 14:07:41
×クラスA,B,Cを含むパッケージがあります。
○クラスA,B,C,Dを含むパッケージがあります。
でした。すみません。
114:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/03 14:46:42
>>112
>B,C,Dは異なる実装ですが、同じ機能を提供します。
ここまで分かってるなら理解してるような気がするけど、
機能が同じでも実装が違えば返ってくる値が違うってのは理解してる?
117:112
07/05/03 14:54:11
>>116さん ご返答有難うございます。
>機能が同じでも実装が違えば返ってくる値が違う
Aから継承したメソッドをA型参照から呼び出しても、
それがBのインスタンスであるかCのインスタンスであるかによって、
実行される処理が変わるということでしょうか?
118:112
07/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:デフォルトの名無しさん
07/05/03 14:59:44
>>115
排他的でシングルトンなファクトリクラスを作れば良いかな。
シングルトンの管理は色々出来そうだけど
A,B,C,D,ファクトリを同じパッケージにしてB,C,Dのコンストラクタはパッケージープライベートにする。
んで、ファクトリはAのサブクラスのインスタンスを一度でも生成したか
どうかのフラグを持つ。B,C,Dのインスタンスを返すメソッド(ファクトリメソッド)内でフラグ立てる。
フラグが立ってれば以降はインスタンスを返さないか、
または生成済みインスタンスを返す。
大雑把だけどかんな感じか。
120:デフォルトの名無しさん
07/05/03 15:45:19
>>117
そう。これサンプル。
URLリンク(www.vipper.org)
抽象クラスと継承については理解してるよ。
やろうとしてる事は
それとはあんまり関係ないきがする。
デザインパターンかも。
121:112
07/05/03 16:11:50
>>119さん,120さん
有難うございます。
デザインパターンについて少し調べてみることにします。
122:デフォルトの名無しさん
07/05/04 00:13:16
APIのメソッドのソースをEclipse上での見方を教えてください。
「ソースが見つかりませんでした。」
となるのですが・・。
どこからかDLすれば見れるようになるとかいうことでしょうか?
宜しくお願いします。
123:デフォルトの名無しさん
07/05/04 00:15:27
APIソースはJDKに入ってる。
仮想マシンの設定あたりにソースzipを指定する箇所があるよ。
124:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/04 00:26:37
まずそれは構造体じゃない
で、最初に初期化しなきゃだめ
for~~
for~~
myName[i][j] = new StructName();
あとお前はコンストラクタでググるべきだ
126:デフォルトの名無しさん
07/05/04 01:23:52
コンストラクタでググる前にjavaの教科書を頭から読み直すべきだな
127:デフォルトの名無しさん
07/05/04 01:44:55
オブジェクトが存在するかどうか調べるにはどうすればいいでしょうか。
128:デフォルトの名無しさん
07/05/04 05:27:42
もすこし詳しく
129:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/04 14:36:03
>>129
new int[][]{ vec };
131:デフォルトの名無しさん
07/05/04 16:10:19
>>130
即レスありがとうございます
期待した通りに動かすことができました
132:デフォルトの名無しさん
07/05/04 17:24:54
java入門したばかりで言語より考える方について質問ですが割合を出す方法を式で書くとどうなのかお尋ねします。
例えば、製品数a(1000個)の内、不良品b(200個)あると良品数c(80%)ですよね。
*a,bは決まった数字じゃありません
133:デフォルトの名無しさん
07/05/04 17:29:08
それ算数の問題だからjavaとか関係ない
134:デフォルトの名無しさん
07/05/04 20:03:54
C系では、メソッドやクラスの左かぎ括弧は改行するけどJavaではしないよね。慣例なの?
【C系】
public class SampClass
{
}
【Java】
public class SampClass{
}
135:デフォルトの名無しさん
07/05/04 20:23:20
Javaの場合、Sunが自身のコードで使っているとされるコーディング規約が文書化
されていて、その中に
URLリンク(java.sun.com)
というものがある。実際JDKのライブラリソースはこれに則っている感じ。
もちろん外部の人間が従う義務はない。ただ、Javaの黎明期には参考になるコード
はJDKのライブラリソースくらいだったわけで、この頃から一般人もJDKのソース
の書き方を真似て、カーリーブレースの前で改行しないスタイルが定着したのだろ
うと想像する。
136:デフォルトの名無しさん
07/05/04 20:24:35
>>134
Sun のコーディング規約だと後者に近いってだけじゃね?
C言語でも改行しない人は一杯いるしね。
プログラミング言語C++ とかでも switch { やら struct hoge_tag { では改行してないし。
GNUコーディング規約だと if とか while とかでは改行+インデントして括弧つけたりするし。
137:デフォルトの名無しさん
07/05/04 21:08:13
これ、コピペ多用する言語なのか?
なんだかその悪寒がしてきたんだが
138:デフォルトの名無しさん
07/05/04 21:10:05
>>137
なんで?
139:デフォルトの名無しさん
07/05/04 22:31:55
javaでExcelを作れるが、そのExcelにVBAコードを挿入できる??
140:デフォルトの名無しさん
07/05/04 22:59:48
>>136
各言語でそういう規約があるのね。
eclipseの自動生成や、書籍を見てて改行してなかったから、慣例だと思ってたよ。
まぁ俺はクラス・メソッドは改行、制御文は改行なし、でいつもやってるんだがなぁ。
ま、javaは規約に従うとするか・・・。約1行、節約になるしw
141:140
07/05/04 23:00:27
>>135もサンクス。
142:デフォルトの名無しさん
07/05/04 23:07:36
コンストラクタの実行に時間がかかるクラスを作ったんで、カウンタ設置してその値に応じてJProgressBarで経過を表示しようとしたんだが、コンストラクタの実行中はバーが全然更新されなくて、実行終了後に更新されてバーがMAXになる。
どうすれば・・・
143:デフォルトの名無しさん
07/05/04 23:20:44
>>142
今週のJavaクイズ(6):ボタンを押すとどうなる?
URLリンク(blogs.sun.com)
「Java SE 6完全攻略」
第27回 Swingでマルチスレッド - SwingWorker その1(上記の解答編っぽい)
URLリンク(itpro.nikkeibp.co.jp)
144:デフォルトの名無しさん
07/05/04 23:39:00
>>143
まじでサンクス!
明日早速なおしてみます。
145:デフォルトの名無しさん
07/05/05 10:06:07
マルチにも回答がやってくる恋の季節
146:デフォルトの名無しさん
07/05/05 14:27:24
このエラー何ですが、どうしたらなおるでしょう?
シンボルを解釈処理できません。
シンボル: メソッド equals (char)
位置 : java.lang.String の クラス
if("\t".equals(tmpStr.charAt(i))){
147:デフォルトの名無しさん
07/05/05 14:30:27
>>146
> if("\t".equals(tmpStr.charAt(i))){
if("\t".equals(tmpStr.substring(i, i+1))){
148:デフォルトの名無しさん
07/05/05 14:36:12
>>147
ありがとうござます。iが原因みたいですた。
149:デフォルトの名無しさん
07/05/05 14:42:51
>>147
if('\t' == tmpStr.charAt(i)){
でも良かったのでは?
150:デフォルトの名無しさん
07/05/05 14:49:48
別のプロセスにオブジェクトを渡したいのですが、どんな方法がありますか?
151:デフォルトの名無しさん
07/05/05 15:14:19
コピペ
152:デフォルトの名無しさん
07/05/05 16:47:24
>>150
java越えて共有メモリにしたいとか、そういう事?
153:デフォルトの名無しさん
07/05/05 17:36:07
オブジェクトを構成する全てのパラメータを
エクスポート、インポート出来るようにして・・・ってそういう事でいいのか?
154:デフォルトの名無しさん
07/05/05 18:07:51
Javaのクラスでつまずいている者です。
URLリンク(sourcepost.sytes.net)
このようなソースの場合、
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:デフォルトの名無しさん
07/05/05 18:16:17
新しく犬を飼おう
名前はポチにしよう(setName)
このわんちゃんの名前なんていうの?
ポチだよ(getName)
156:デフォルトの名無しさん
07/05/05 18:19:58
何でポチって名前なの?
ポチって首輪に書いてあるから
ポチって犬小屋に書いてあるから
ポチって焼き印wが押してあるから
ポチって俺が名付けたから
何でポチかは自由。知りたいのは何故かではなく名前だけ。
157:デフォルトの名無しさん
07/05/05 20:33:01
URLリンク(fukumori.org)
158:デフォルトの名無しさん
07/05/05 21:13:24
>>154
ただの変数だと、制限がかけられない。(現実的にありえない数値が入ったりする)
そこで、セッターを作り、引数をチェックし、ありえない数字が来たら例外を発生させる。
void setHoge(int foo) {
if () {
}
159:デフォルトの名無しさん
07/05/05 21:16:41
↑途中で送信してしまった。
if で引数チェックして、例外発生させるの。
そしたら、変数が適切な値だと保障することができる。
クラスや例外ない言語の場合、
関数呼んだあと、戻り値でエラーチェックしたりするのが
めんどくせえぞ。
160:デフォルトの名無しさん
07/05/05 21:36:51
オブジェクトってのは変数が賢くなったみたいなもん。
箱にボタンがついたみたいなもん。
自販機を考えてみれば、箱の中身の仕組みを知る必要はなく、
お金を入れて、ボタンさえ押せばジュースが返ってくる。
クラス(設計図)に中の仕組み書いて、
new クラス名でインスタンス(実体/オブジェクト)を作るってだけ。
クラスの外からは、中のメソッド(ボタン)の仕組みを知る必要はなく、
何が必要で、何が返ってくるかだけ知っていれば良い。
161:デフォルトの名無しさん
07/05/06 00:33:02
jarファイルというのを作って実行してみたのですが、
プログラムは正しく動作するのに、画像が表示されません。
classファイルと同じディレクトリにgif画像はあるのですが、
どういった原因が考えられますか?
162:デフォルトの名無しさん
07/05/06 00:35:38
>>161
正しく動作してんなら何の問題もないよね。
次の質問どーぞー
163:デフォルトの名無しさん
07/05/06 00:36:13
>>161
エスパー募集キター
164:161
07/05/06 01:19:20
ああ、そうですね。矛盾してますね。
パッケージに纏める前は正しく動作して画像もきちんと表示されていました。
しかしjarファイルを作った後にプログラムを実行したところ、画像は表示されないけど、
それ以外は前と同じ動作をしているように見えます。
165:デフォルトの名無しさん
07/05/06 01:40:57
>>164
ClassやClassLoaderのgetResourceで画像ファイルのURLを求めてそのURLから読み込むようにしていないか
大文字と小文字の区別をつけられないファイルシステムを使っていて上手く動くような気になって
その区別をつけるjarの中の画像ファイル名を正しく指定していないか
166:デフォルトの名無しさん
07/05/06 02:33:56
Javaのawtってボタンとかの配置を座標で指定できないの?
それっていくらなんでも不便じゃない
167:デフォルトの名無しさん
07/05/06 02:40:42
>166おれにもおせーて
168:デフォルトの名無しさん
07/05/06 02:44:43
つ ILikeTroublesomenessLayout implements LayoutManager2
169:デフォルトの名無しさん
07/05/06 02:48:16
JNIを使ったクラスライブラリを書いているのですが、
ネイティブなファイルをjarに含めて動作させるにはどうしたら良いのでしょうか。
ぐぐるとBundle-NativeCodeなるものが見つかったものの
書いても何も変わらず、loadLibraryがネイティブなファイルを見つけてくれないのです。
170:デフォルトの名無しさん
07/05/06 04:31:56
携帯電話向けJavaでは、
使いまわされないデータ型だけのクラス(構造体)なんかは、
メインのクラスで内部メンバとして書いたり、
ステップ数が多い処理を、メソッドを使わずインラインでガリガリ書いたりと、
独特の流儀があるようです。
以前の携帯は実行ファイルサイズ制限があって、
このような方法が主流みたいですが、
今は実行ファイルサイズの制限は緩和されたようです。
とすると、上のような携帯Java独特の、
およそJavaらしからぬコーディングスタイルには意味はあるのでしょうか?
例えば、単一のデータ構造を参照するのにインナークラスを使わずに、
呼び出し元のメンバとして参照する事で、速度的なメリットがあったりするのでしょうか?
171:デフォルトの名無しさん
07/05/06 05:12:58
>>170
それはもう過去の話。心配しないで関数にしておk
172:デフォルトの名無しさん
07/05/06 05:13:46
単一クラスでがんばる、とかは?
173:デフォルトの名無しさん
07/05/06 07:25:37
ライブカメラ全般たとえば「東京ストリート
チャンネル」などが見れなくなってしまった
のですが、何が原因なんでしょうか。
javaを再インストールしたがダメです。
174:デフォルトの名無しさん
07/05/06 10:08:54
>>166
一応、java.awt.Component#setLocation()
175:デフォルトの名無しさん
07/05/06 10:12:10
>>166
つ null layout
176:デフォルトの名無しさん
07/05/06 11:09:04
>>170
食らうヒープ量が全然違うので関係大あり。
177:デフォルトの名無しさん
07/05/06 11:17:24
JAVAでロボット動かせるって本当ですか
178:デフォルトの名無しさん
07/05/06 11:20:22
>>177
ロボットにJava仮想マシン載せれば
179:デフォルトの名無しさん
07/05/06 12:26:10
ウインドウアプリケーションを作ろうと思っています。
Appletクラスの継承を用いてアプレットを起動する場合には、
htmlファイルの中に
<applet code="XXX.class" width=256 height=256>
を記入すればいいと思いますが、Frameクラスの継承を用いた場合、
同様にインターネットエクスプローラーから起動させるにはどうすればいいのでしょうか?
180:デフォルトの名無しさん
07/05/06 12:27:53
>>179
Java Web Startでぐぐる
181:デフォルトの名無しさん
07/05/06 12:31:51
>>174
これ使ってもうまくいかなかった。
ていうかJavaは用意されたレイアウトを組み合わせることでGUI部品を配置していく
仕組みを奨励してるのかな。面倒だよな。配置の仕方に限界がありそう。
なんで他言語のようなリソースエディタがないのだろう。
GUI部品のレイアウトをいちいち回りくどく記述するなんて古いよ
182:デフォルトの名無しさん
07/05/06 13:05:13
同一環境でしか動かさないつもりなら別にいいが
そうでないなら絶対座標指定のほうがよっぽど限界があるわ。
183:179
07/05/06 13:08:21
>>180
ありがとうございます。ちょっくらやってみます。
184:170
07/05/06 13:09:16
>>172
>>176
速度的な面はどうなんでしょうか…?
185:デフォルトの名無しさん
07/05/06 13:15:40
>>184
実測して計ってみるのがいいでしょう
186:デフォルトの名無しさん
07/05/06 13:17:02
>>181
>>175は見たか?
187:161
07/05/06 16:08:50
知識が乏しくて恐縮ですが
自分が使っているファイルシステム?ってのはどうやって調べられるのでしょうか。
188:デフォルトの名無しさん
07/05/06 17:39:17
現在専門学校生なのですが、学校と同じ環境を作りたく設定で悩んでいます
コマンド プロンプトで、terapad ----.javaと打てばterapadが立ち上がるようにしたいのですがどうすればいいのでしょうか?
189:デフォルトの名無しさん
07/05/06 17:40:16
JFrameで質問があります。
Core Javaのボールオブジェクトが跳ね返るプログラムの応用で、
JFrame内に存在するオブジェクト(この場合、四角です)をD&DでJFrame内なら
自由に移動出来るJavaプログラムを作成しているのですが、
JFrameの外(見えない部分)にも移動でき、そうした場合、オブジェクトが見えなくなるので、
強制終了する以外終了する方法がないという意味のないプログラムになってます。
どうすれば、オブジェクトをJFrame内のみ移動可能なプログラムにする事ができるのでしょうか?
190:デフォルトの名無しさん
07/05/06 18:00:13
>189
どうしてボールが跳ね返る(ようにみえる)か考えてみたら?
191:デフォルトの名無しさん
07/05/06 18:23:56
遠坂凛に質問です。
宝石製のバイブでオナニーすると、魔力を溜めることはできるんでしょうか?
192:デフォルトの名無しさん
07/05/06 18:30:00
>>189
ズバリ解答を言うと、端に来たらD&Dでき無くすればおk
193:デフォルトの名無しさん
07/05/06 18:35:55
>>188
exploreのオプション->ファイルタイプ
で.javaにそのterapadとやらを割り付ける
だけど、なんでterapadなんだ?
terapadとかcpadとか、わけわからん
194:デフォルトの名無しさん
07/05/06 18:47:37
>>188
java関係ないがterapadをパスの通った場所に置けば良いじゃん。
てか、start XXX.javaじゃだめなん?
195:189
07/05/06 19:25:24
>>190
Core Javaを参考にして、dx を -dxにしてみたのですが、上手くいきません。
>>192
それはどういう風に設定すればいいのでしょうか?
一応、ソースをサラしておきます。
URLリンク(a-draw.com)
196:デフォルトの名無しさん
07/05/06 20:13:45
>195
全然無関係のところをまねしてどうする?
やるべきことはShapeに渡す値を描画エリアのサイズ内に調整すること
197:189
07/05/06 20:54:32
>>196
shapeBeingDragged.moveBy(x - prevDragX, y - prevDragY);
の部分を調整すればよいのでしょうか?
198:デフォルトの名無しさん
07/05/06 20:58:22
>>181
つ NetBeans
199:デフォルトの名無しさん
07/05/06 21:07:42
eclipse使ってたらなんか上書きモードになっちゃった。
どうやったら治るの
200:デフォルトの名無しさん
07/05/06 21:13:30
>>199
デフォルトのキーバインドなら insertキー
201:デフォルトの名無しさん
07/05/06 21:17:39
>>200
インサートキーってどうやってonにしたりoffにしたりできるの?教えて
202:デフォルトの名無しさん
07/05/06 21:24:07
これはひどい
203:デフォルトの名無しさん
07/05/06 21:25:38
eclipseでお勧めの本おしえて
204:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/06 21:45:49
>197
わるい逆だ
なれない変数名だったので混乱した
int maxw = cs.width - shapeBeingDragged.width;
int maxh = cs.height - shapeBeingDragged.height;
206:189
07/05/06 21:50:16
>>205
ありがとうございます。
ソースに組み込んでみたのですが、クリックをするとはぐれメタルが逃げるかのごとく、
画面上からオブジェクトが右下に消えてしまいます。
207:デフォルトの名無しさん
07/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();
208:189
07/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();
}
URLリンク(a-draw.com)
209:デフォルトの名無しさん
07/05/06 22:14:49
>208
いいんじゃないかな
逃げ去るってことはその他にタイマー処理が行われているって
可能性が考えられるけど元のソースのボールの処理が残ってない?
210:189
07/05/06 22:39:11
>>209
タイマー処理は行われていません。
211:デフォルトの名無しさん
07/05/06 23:10:12
>210
moveBy()で加算しているようだから以下のように書き換えてみて
left = dx;
top = dy;
212:デフォルトの名無しさん
07/05/07 12:40:08
二つのクラスがあったとして
Class1のテキストフィールドにClass2のメソッドの処理結果を表示させたいんですがどのような方法が
ありますか??メソッドは引数をもたないものとして
213:デフォルトの名無しさん
07/05/07 12:45:05
SocketChannelでreadで-1が帰ってくる以外に正常切断を判断する方法はありますか。
FINで終わったのかどうかが知りたいです。
214:213
07/05/07 12:47:44
Class1のインスタンスをClass2に事前に持たさせておいて
Class2のメソッドの処理結果がでたタイミングで
Class2で保持しているClass1のインスタンスのテキストフィールドに表示させる
215:デフォルトの名無しさん
07/05/07 14:25:23
>>214
ありがとうです
class2{
class1 cls=new class1
処理
cls.text.setText(処理結果);}
このようにやってみたんですが表示してくれません・・・
エラーはないんですがどこが間違ってますか><?
216:デフォルトの名無しさん
07/05/07 14:41:05
>>215
class1でのテキストフィールドのsetTextはちゃんと働いてるの?
217:デフォルトの名無しさん
07/05/07 14:41:55
>>213
> readで-1が帰ってくる以外に正常切断を判断する方法
むしろ、こっちから close() してみる。
たぶん、相手はFINフラグを受け取るはず。
マジレスすると、仕様に書いてないなら無理だと判断すべき。
218:213
07/05/07 15:08:55
>>217
>>マジレスすると、仕様に書いてないなら無理だと判断すべき。
レスありがとう。Javadocにはかいてないんですよ。
FINフラグを受け取ってのread=-1なのか、その他の問題でのread=-1なのかを判断したいだけなのですが、
方法がさっぱしです。
219:213
07/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:デフォルトの名無しさん
07/05/07 15:38:45
質問なのですが
interfaceを利用してclassを作成しています
作成したclassを利用する際、設定ファイルやDBから読み込んだ文字列を利用して
動的にnewする対象を指定したいのですがやり方がわからないので教えてください
URLリンク(www.wikiroom.com)
の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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/07 16:07:10
>>220
java.lang.Class.forName(String className)#newInstance()
223:デフォルトの名無しさん
07/05/07 16:15:30
>>213
できました!!
どうやら単純なミスをしていたようです^^;
いろいろ参考になりました
ありがとうございますm(__)m
224:デフォルトの名無しさん
07/05/07 16:49:50
質問でs!
a,b,cというlistと配列に入ってる"a","b","c"の文字列を比較したいのですが
どうしたらいいでしょうか??
225:デフォルトの名無しさん
07/05/07 17:06:34
> a,b,cというlistと配列に入ってる"a","b","c"の文字列を比較したいのですが
解釈の仕方が複数あって、
具体的に何がどーなってるのか良く分からん。
226:224
07/05/07 17:30:16
たしかにわかりにくいです!すいません
a,b,cという項目があって最初は選ばれていない状態ですよね。
で配列にはこのようにはいっていて
配列1 配列2
Aサン a
Bサン b
Cサン a
Dサン c
配列Bを指定したらlist項目のbを選択させるといった感じです
227:224
07/05/07 17:32:46
間違えました
配列1のBを指定したらですね
228:デフォルトの名無しさん
07/05/07 17:34:21
で、お前は何がわからんのだ
229:224
07/05/07 17:42:22
項目を選択させるにはselectしかないかどうかってことです
selectだとintしか指定できないから分岐させるしかないのかと・・・
230:デフォルトの名無しさん
07/05/07 17:44:54
>>229
java.awt.List の話でしょ?
なら、項目選択するにはユーザが操作するか select(int) するしかない。
231:224
07/05/07 17:48:53
わかりました
ありがとうございます!
232:デフォルトの名無しさん
07/05/07 17:54:40
国際化対応の場合に、UTF-8が多く採用されるのはなぜですか?
JavaがUTF-8を採用しているからか、ASCII文字との親和性が高いからかな。
→どのようなメリットがあるかわかっていないですが…
Java=ユニコード=ALL2バイトと思ってたけど、違うんですね…
UTF-8は、レスポンス悪いとかあります?
233:デフォルトの名無しさん
07/05/07 18:08:58
>>221
>>222
確かにそれでOKです
大変勉強になりました
ありがとうございました
234:デフォルトの名無しさん
07/05/07 18:15:51
>>232
> 国際化対応の場合に、UTF-8が多く採用されるのはなぜですか?
国際化対応で Shift_JIS とか EUC-JP は使えないでしょ。
ISO-2022でも ある程度国際化できるけど、実装面倒くさいし。
> Java=ユニコード=ALL2バイトと思ってたけど、違うんですね…
= をどーゆー関係のつもりで書いてるのか分からんので、なんとも言えない。
> UTF-8は、レスポンス悪いとかあります?
場合による。1ギガバイトとかの馬鹿でかいテキスト読んだらレスポンス悪くなるだろうし。
235:デフォルトの名無しさん
07/05/07 18:56:09
>UTF-8が多く採用されるのはなぜですか?
1バイトで足りる連中がUnicode実装するとき楽だから。
PL関係なく実装者の都合でしかない。
236:デフォルトの名無しさん
07/05/07 20:09:21
エンディアンが存在しないとか、
ASCIIと互換性があるとか、
バイト指向だとか、
CCSがUCS4だとか、
結構便利なエンコーディングじゃん。
237:デフォルトの名無しさん
07/05/07 20:41:32
Java初めて20日です。
応用問題を解いているのですが、
各サイト、APIみても、
これを使うとか構造とかがでてこないもの
がでてきました。
こういう場合はどうしたら
良いのでしょうか。
また 何を使うとかの
ひらめきはどうしたら
みにつくのでしょうか?
238:デフォルトの名無しさん
07/05/07 20:46:56
> ひらめきはどうしたら
ロマサガで特訓してこい。
239:デフォルトの名無しさん
07/05/07 21:21:53
String strに何か文字が入っているとします。
この中に入っている文字が整数かどうか調べるにはどういう風にすればいいでしょうか?
240:デフォルトの名無しさん
07/05/07 21:25:01
>>239
一文字だけ調べるなら Character.isDigit(str.charAt(0))
241:デフォルトの名無しさん
07/05/07 21:30:50
一文字ではなく文字列を調べる場合は他に方法ありますか?
このCharacter.isDigit(str.charAt(0))をforとかで文字数文まわすとかしかないでしょうか?
242:デフォルトの名無しさん
07/05/07 21:36:06
parseIntでうまくいくかどうか調べる
243:デフォルトの名無しさん
07/05/07 21:42:05
正規表現
-?[0-9]+
とか
244:デフォルトの名無しさん
07/05/07 21:48:53
なんか
isDigitsメソッドは指定された文字列が数字だけを含むかどうかを返します。例えばNumberUtils.isDigits("123")はtrueを返します。
URLリンク(www.atmarkit.co.jp)
とか書いてるんですけど、これって何か拡張しないとだめなんですよね・・・
245:デフォルトの名無しさん
07/05/07 22:45:01
JAVAの入門書に載ってる最初のコードを実行したら、
X11のライブラリがねえとか言って怒られたよ。
本を見たらwin用の本だった。
JAVAってそういうのは吸収してくれないのな。
なんでもいいからウィンドウ出せやボケと思いました
246:デフォルトの名無しさん
07/05/07 22:46:42
>>230
> java.awt.List の話でしょ?
エスパーすげー
247:デフォルトの名無しさん
07/05/07 22:57:23
Linuxか?
Javaの、そういう差を吸収する部分(AWT)がX11を必要としているのよ。
248:デフォルトの名無しさん
07/05/07 23:00:29
>>245
この辺見て、デスクトップマネージャが入ってるか確認して。
URLリンク(java.sun.com)
よほどの野良ディストリ使ってるとかでない限りは、Gnomeが標準になってると思うけど。
249:デフォルトの名無しさん
07/05/07 23:37:33
>>236
エンディアンはないがBOM忘れてる奴が多いがな。
250:デフォルトの名無しさん
07/05/08 00:06:19
エンディアン無関係だからこそBOMは本来不要だし
251:デフォルトの名無しさん
07/05/08 00:07:45
サイトに埋め込まれてるjavaアプレットのソースを知りたくそのページのソースを調べて、
「ファイル名」.classのファイルをDLしたのですが、eclipseやテキストで開くと(拡張子を.javaにしたりして)
、文字化けしていて読むことができません。
このような.classファイルは読むことができますか?
252:デフォルトの名無しさん
07/05/08 00:09:56
>>236
日本語は大抵3バイトになるのが鬱陶しいけどな。
253:デフォルトの名無しさん
07/05/08 00:21:12
>>251
バイナリエディタ。
つーかなんでバイトコードにソースが含まれてんだと小一時間・・・。
素直にお帰りください。
254:デフォルトの名無しさん
07/05/08 00:26:11
バイナリエディタがアンリエッタに見えた俺はアニオタ
255:デフォルトの名無しさん
07/05/08 00:26:43
>250
URLリンク(unicode.org)
An initial BOM is only used as a signature ―
an indication that an otherwise unmarked text file is in UTF-8.
256:251
07/05/08 00:31:40
>>253
理解し損ねてました
.classファイルを.javaに変換できる方法はありますか?
257:デフォルトの名無しさん
07/05/08 00:33:43
URLリンク(allabout.co.jp)
258:デフォルトの名無しさん
07/05/08 00:58:49
>>255
だから?
UTF-8のBOMはエンコーディングの認識精度を上げるくらいしか役にたたないし、
在ることで困ることの方が無くて困ることより多いと思うが。
UTF-8 must contain a BOM.じゃなくてUTF-8 can contain a BOM.て書いてあるじゃないか。
だから、BOM付きを邪険にはしないけど、自分からわざわざ付けたりはしたくないな。
259:デフォルトの名無しさん
07/05/08 03:00:17
>>256
javap
ディスアセンブラとかデコンパイラでググれ
空気読めるようになろうね。
260:デフォルトの名無しさん
07/05/08 04:19:20
GridBagLayoutがまんどくさすぎる
このくらい自由が利いてもっと楽なのあれば教えて☆
261:デフォルトの名無しさん
07/05/08 04:39:21
SpringLayoutとかは?
それか自由が利いてもっと楽なのを自作する
262:260
07/05/08 05:14:33
>>261
ありがとう
検討してみる
263:デフォルトの名無しさん
07/05/08 05:40:55
>>261
>SpringLayout
へーこんなレイアウトマネージャがあったんだ
これって機能的にNeXTとかMac OS Xのレイアウト機能とほぼ同じだね
直書きするのはめんどそうだけどSunがツールを用意してるのか
今度使ってみよう
URLリンク(bean-builder.dev.java.net)
264:デフォルトの名無しさん
07/05/08 06:19:25
GroupLayoutってのもよさげ
いろいろあんだね
もうGridBagLayout使うのやめよう
265:デフォルトの名無しさん
07/05/08 06:29:07
NeXTStepもOSXも同じAPIですぜ
266:デフォルトの名無しさん
07/05/08 07:54:18
Javaに限ったことではありませんが、配列番号ってどうして0から始まるんでしょう。
1からのほうが色々すんなり行くと思うのです。
267:デフォルトの名無しさん
07/05/08 07:56:51
>>266
色々すんなりって例えば?
268:デフォルトの名無しさん
07/05/08 07:57:14
一長一短だが、大体において 0 の方が便利。
なにかと計算量を減らせる。
269:デフォルトの名無しさん
07/05/08 08:40:45
>>267
一つ目の要素: array[0] より
一つ目の要素: array[1] のほうが分かりやすく自然だと思うんです。
もしあなたがそう思わないなら、それはプログラマーとしての観点を既に持っているからでしょう。
x番目の要素の添え字はx-1ですが、これがx-372だったとしたら
三番目の要素の添え字は、え~っといくつだ?ってことになりますよね。
>>268
なるほど、確かにそうです。
納得しました。
270:デフォルトの名無しさん
07/05/08 09:12:46
>>269
量的にではなく指標だから0からは当然だとおもうよ。
定規が1から始まるのが自然だとは思わない。
271:デフォルトの名無しさん
07/05/08 09:20:39
URLリンク(swfup.info)
↑このフラッシュを見てくれ
もし、参加したくなったら
日本奇跡の逆転劇!! スロベニアを抜き単独4位へ
スレリンク(news4vip板)
歴史的瞬間にぜひご参加を!!!
どこから誘導されたかも書き込んでねー
272:デフォルトの名無しさん
07/05/08 10:37:37
初心者です
textfieldに"java"と入ってたとして、それに対して指定した数だけ"*"を追加したいんですが
どうしたよいでしょう?
指定した数が3なら"java***"といった感じです。
値は変数にはいってます。
273:デフォルトの名無しさん
07/05/08 10:44:54
+
274:デフォルトの名無しさん
07/05/08 11:27:08
>>273
何文字か指定するにはどうしたらいいですか?
275:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/08 11:57:45
サンクス!
やっぱ繰り返すしかないのかな・・・
277:デフォルトの名無しさん
07/05/08 12:02:39
>>276
>指定した数だけ"*"を追加
って時点で繰り返しは必須だと思うんだけど。
繰り返しで何か都合悪いことでもあるのか?
278:デフォルトの名無しさん
07/05/08 14:30:20
>>266
数学の話だが中学校のころ数学教師が教えてくれた。
人間てのは非数を見つけてしまったから数字の0は無を表す
数字ではなく、負数を除いて起点となる数字らしい。
何もないわけではなく「0」という数字が存在している。
だから数学的に数字は0から始まる0起算らしい。
279:278
07/05/08 15:06:44
そういえば、数字ってのは+か-方向に無限に伸びていくけど0はそのどちらでもない±0という状態で・・・と続き
最終的にメタ数学の話になったから気にしない方が良いよ。
特に0と配列と演算記号の関係なんて。
280:デフォルトの名無しさん
07/05/08 15:12:02
>>266
>>269
Javaに限ったことではありませんってFORTRANプログラマの観点の立場は…
281:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/08 15:30:50
>>280
FORTRAN はウンコだから。
まあ、0 オリジンにしようと思えばできるけど。
283:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/08 16:36:02
>>269
1番目から始まる自然な序数を選択するよりも、
計算量の減少等の効率を重視して選択した結果なんで、
そういうものだと思って慣れるしかない。
0から始まる場合のインデックスは序数と考えずに、
>>283が言うように始点からのオフセットと考えればいい。
285:デフォルトの名無しさん
07/05/08 16:53:18
リスナーって1つのクラスに1つまで??
286:デフォルトの名無しさん
07/05/08 16:58:15
>>285
なぜそう思うのかを知りたいもんだなw
287:デフォルトの名無しさん
07/05/08 17:02:10
でへ^-^
どんな風にかけばよろしいのかと
288:デフォルトの名無しさん
07/05/08 17:04:56
>>285
質問がインスタンスにリスナーをadd~Listenerで登録するって意味ならたいてい複数のリスナーを追加できる。
もしset~Listenerとかのメソッドなら一つしか設定できないかもしれない。
そのクラスのドキュメントを見れ。
289:287
07/05/08 17:13:24
わかりました!!
で、itemlistenerってクリックされたときのみですか、、、?
selectでindex指定しても動いてくれないんですが、、、
290:デフォルトの名無しさん
07/05/08 17:19:35
>>289
だからドキュメントを見ろと言ってるだろ。
java.awt.ListとかChoiceの話か?
ちゃんとselectのところを読め。
> ItemEvent をトリガする唯一の方法はユーザの操作です。
291:デフォルトの名無しさん
07/05/08 17:22:28
addItemListenerの説明にも書いてるね
292:デフォルトの名無しさん
07/05/08 18:57:16
スレッドに関してですが、テスト環境がないので質問させてください。
スレッドプールというものは実行のたびに空いてるCPUコアを探してくれたりするんでしょうか?
それともスレッドが生成された時点でどのコアに所属するか決定してしまうのでしょうか?
293:デフォルトの名無しさん
07/05/08 20:10:01
最近javaを勉強し始めました。
www.stackasterisk.jp/tech/java/javaPractice06_06.jsp#2_4
上記のサイトの通りにjspでカレンダーを作成する、というプログラムを書いていたのですが、
このサイトにあるDayTypeConstクラスの意味がよくわかりません。
この定数を変えると土曜日曜の色が変になってしまうのですが、どうしてそうなるのかがよくわかりません。
ご教授お願いします。
294:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/08 21:26:02
↑事故解決しました。
296:デフォルトの名無しさん
07/05/08 21:45:18
FOX★公認!!!
俺たちのクリックで日本を一位にしようぜ!!
“30年は日本に手は出せないな”という勝ち方をしたい
スレリンク(news4vip板)
1. ポーランド 139,797,680
2. チリ 137,040,439
3. ★日本 86,475,213★
4. イスラエル 80,930,530
5. スロベニア 57,137,042
6. フィンランド 40,857,499
石を投げる戦争から人は進化・進歩を遂げ、剣や槍などの武器をもって戦うようになった
人間はさらに発展し兵器を使う戦争を始めた
そして今、指先一つを武器とした電脳戦争が勃発したのであった・・・
皇国を勝利へと導くには貴様らの参戦が不可欠である
・戦場
URLリンク(www.clickclickclick.com)
・まとめサイト
URLリンク(www33.atwiki.jp)
297:デフォルトの名無しさん
07/05/08 21:59:50
コピペ君って馬鹿だな、まで読んだ。
298:デフォルトの名無しさん
07/05/08 22:00:27
これからJavaを学ぶ人にアプレットを勧めるのは無駄?
Javaで動くのがやりたいそうなんだけど・・・
299:デフォルトの名無しさん
07/05/08 22:08:12
>>298
俺はやったが無駄ではなかった。
つっても本のサンプル見る程度じゃ無駄だと思うがな。
言語に限らず、自分で色々やりたいことやっていじりまくらないと身につかんと思うよ。
C言語のWIN32APIも少しやってるけどドット・座標の考え方とか関数とか似てるから
何も知らずにC言語始めるよりは確実に楽に覚えられてる。
300:デフォルトの名無しさん
07/05/08 22:18:58
>>272 亀レス ↓のような方法もあるよ。
String[] tbl = {"*******","******","*****","****","***","**","*",""};
String word = "java";
System.out.println(word + tbl[word.length()]);
301:デフォルトの名無しさん
07/05/08 22:24:37
URLリンク(www.uploda.org)
この問題が宿題で出たんだけど先週授業休んじゃって今日からすることに。。
しかも期限は明後日。
だけどここまだよく理解してなくて、、やばい!
誰か助けてください!お願いします><;;
302:デフォルトの名無しさん
07/05/08 22:26:23
.xlsって段階で見る気がしない
303:デフォルトの名無しさん
07/05/08 22:26:23
URLリンク(www.uploda.org)
この問題が宿題で出たんだけど先週授業休んじゃって今日からすることに。。
しかも期限は明後日。
だけどここまだよく理解してなくて、、やばい!
誰か助けてください!お願いします><;;
304:デフォルトの名無しさん
07/05/08 22:27:05
あれ?2回も。。すんません。。
305:デフォルトの名無しさん
07/05/08 22:39:31
いい忘れましたが問題は英語で書いてあります。。
306:デフォルトの名無しさん
07/05/08 22:41:23
うっさいだまれ
307:デフォルトの名無しさん
07/05/08 22:41:53
先週って連休じゃん
308:デフォルトの名無しさん
07/05/08 22:44:48
>>307
いえ、海外にいるんで連休ではなかったです。
309:デフォルトの名無しさん
07/05/08 23:00:53
お二方、コメントいただいてありがとうございました。
>247
なるほど・・・
FreeBSDを使っています。
そこで「文系のためのjava入門」というwin向けに書かれた
コードを実行しようとしています。
helloって書かれたウィンドウを出して終わるプログラムです。
今日、本屋に行ってみたのですが、
X11環境かつjava入門みたいな本が無かったので
前向きにX11でも動くようにいろいろ調べてみようと思います。
>248
FreeBSDでJDKやX11環境は整っていますので、
たぶん、win用のコードをX11でも動かせるように変更しなきゃいけない
と思っています。
いろいろ調べつつやっていこうと思います。
310:デフォルトの名無しさん
07/05/08 23:04:57
質問です。
class A{
int x;
}
で
A a = new A();
A b = new A();
とせずに、a,bを配列とかでまとめられないでしょうか。
311:デフォルトの名無しさん
07/05/08 23:13:37
A[] a = new A[2];
a[0] = new
312:デフォルトの名無しさん
07/05/08 23:40:25
>>298
日本に限って言えば無駄ではないと思う。
けど、今時アプレットなんて国内でもエロブラウザゲーしか見ない。
入門本はコマンドラインすら使えない人を考慮してる。
JWSおすすめ。
>>303
せめてテキストエディタで見れるようにしてから宿題スレ行こうね。
313:デフォルトの名無しさん
07/05/08 23:46:54
>>311
ありがとうございました。
2行目が思いつきませんでした。
314:デフォルトの名無しさん
07/05/08 23:52:09
ボタンの配置にご助言お願い出来ますか?
URLリンク(up.spawn.jp)
※EUC-JPで保存されてます
下の方を左右分割してパネルでボタンを配置しようかなと思ってます。
しかしながらGridLayoutとかだとパネル全体をボタンが埋め尽くしてしまいます。
で、それはやめといてsetBoundsで座標指定しようかなと思うのですが上手くいきませぬ。
パネルとレイアウトをコメント化して
upBtn.setBounds(10,10,100,50);
downBtn.setBounds(20,20,100,50);
・・・
だけでコンパイルしたのですがボタンが表示されませんでした。
JSplitPaneは消すしか無いのでしょうか?
315:デフォルトの名無しさん
07/05/08 23:59:53
>>299 312
なるほどなー。
JWSも考えたんだけど、選択肢としてもう1度検討してみるわ、thx
316:デフォルトの名無しさん
07/05/09 00:17:28
>>314
中身を検討せずにぱっと見ただけなので見当外れかもしれんが、
setBoundsで直接指定したいのならFlowLayoutなんて使っちゃダメじゃないか?
setLayout(null)しないと。
317:314
07/05/09 00:28:02
なんと!レイアウトにnullが設定出来るとは思っても見ませんでした。
レイアウトをコメント化しても上手く行かなかったのですが、こういうことだったのですね。
大変役に立ちました。ありがとうございました!
318:デフォルトの名無しさん
07/05/09 00:32:29
>>315
JWSってJavaWebStartか?
ならAWT/Swingなんだからアプレットと部品一緒。
どっちか覚えたらどっちもできるよ。
319:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/09 00:50:29
>>319
基本形=値渡し
参照型=参照渡し
基本形をラップするクラスが用意されてる(Integerなど)
しかしそんな意味不明な関数やめなさい。
その程度だったら参照渡しよりも戻り値のほうが可読性高い。
321:デフォルトの名無しさん
07/05/09 00:51:28
Cじゃないから
int x[1],y[1];
はコンパイルを通らない。
int[] x = new int[1], y = new int[1];
322:デフォルトの名無しさん
07/05/09 00:53:38
値を2つ返すから戻り値じゃ・・・ってことじゃないのか?
323:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/09 00:58:26
>>323
はいはい ぬるぽぬるぽ
フィールドpublicにするな
325:デフォルトの名無しさん
07/05/09 00:59:33
それ呼び出し側で r.a r.b 書き換わるの?
326:デフォルトの名無しさん
07/05/09 00:59:59
>>292
VM の実装依存じゃね?
327:デフォルトの名無しさん
07/05/09 01:00:46
Integerはimmutableだからこの場合役に立たない
Integerかintをラップするmutableなクラスを作ってその参照を渡さないと
>>319が具体例なのかどうか分からないので何ともいえないけど
それならint[] hoge() {return new int[]{789, 123, 456};}とかの方が(どっちもどっち)
328:デフォルトの名無しさん
07/05/09 01:01:55
呼び出し側で書き換えてもらうって考えはオブジェクト指向的じゃない。
自分(インスタンス)の値は自分(インスタンス)が管理する。
外部に公開するのはメソッド。
329:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/09 01:06:18
別にjavaでプログラミング=オブジェクト指向的プログラミングじゃないし敢えて茨の道を
そして死亡
332:デフォルトの名無しさん
07/05/09 01:08:40
A a = new A();
B b = new B();
じゃ、いけないのか?
失敗したら例外出すか、結果を知らせるメソッド持たせば。
333:デフォルトの名無しさん
07/05/09 01:11:52
インスタンスを作るメソッドなら作られたインスタンスこそ返すべきもののような気がする。
作業結果は返されたインスタンス自身が知っているだろうし、
結果によってはnullを返されたり例外を投げられたりしてもいいかもしれない。
そして関連性の無い二つのインスタンスを同時に返したりするのは設計そのものの再検討の余地あり。
334:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/09 01:17:24
Wrapper hoge()はWrapperのコンストラクタじゃいかんの?
336:デフォルトの名無しさん
07/05/09 01:20:43
オブジェクト指向は処理中心に考えるものじゃないから
目的がわからなければアドバイスしようがない
337:デフォルトの名無しさん
07/05/09 01:23:23
class Hoge {
final A a;
final B b;
Hoge() throws CannotCreateException {
a = new A();
b = new B();
}
338:デフォルトの名無しさん
07/05/09 01:23:59
>>320
> 参照型=参照渡し
ウソを書くな、ウソを。
339:デフォルトの名無しさん
07/05/09 01:24:32
>>336
おかげさまで自分が間違った方向に行こうとしてたのを食い止めることは出来たみたいです
目的はあるのですがこのまま鸚鵡返しで質問繰り返すのもどうかと思いますので
まず設計を見直してもう少し煮詰まってまた分からなくなったら聞きに来たいと思います
色々ありがとうございました
340:デフォルトの名無しさん
07/05/09 01:25:45
>>318
APIレベルの話をしているわけではなくてだな・・・
341:デフォルトの名無しさん
07/05/09 01:26:24
class Hoge {
final A a;
final B b;
Hoge() {
a = new A();
b = new B();
}
}
AとBに関連性がなかったら相当気持ち悪いクラスだが。
342:デフォルトの名無しさん
07/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
343:342
07/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:デフォルトの名無しさん
07/05/09 04:14:17
>>342-343
_,,,,._ 、-r
,.','" ̄`,ゝ _,,,_ _,,,_ _,,,,__,. | | _,,,,,_
{ { ,___ ,'r⌒!゙! ,'r⌒!゙! ,.'r⌒!.!"| l ,.'r_,,.>〉
ゝヽ、 ~]| ゞ_,.'ノ ゞ_,.'ノ ゞ__,.'ノ | l {,ヽ、__,.
`ー-‐'" ~ ~ 〃 `゙,ヽ ̄` `゙'''"
゙=、_,.〃
_____________
|2進数 小数 丸め誤差 |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
[Google検索] [I'm Feeling Lucky!]
URLリンク(javafaq.jp)
345:デフォルトの名無しさん
07/05/09 04:28:49
なんというやさしさ
346:342
07/05/09 04:34:21
>>344
ありがとうございました。
347:デフォルトの名無しさん
07/05/09 11:37:59
アクションイベントによってパネルの色を変えたいんだけどどうしたらいい??
フレームの色は変えられるけどパネルができましぇん
348:デフォルトの名無しさん
07/05/09 12:48:40
public void setForeground(Color c)
349:デフォルトの名無しさん
07/05/09 14:32:13
Frameを継承したクラスで、ウインドウアプリケーションを作っています。
コマンドプロンプトから、hogehoge.javaをjavacコマンドでコンパイル → javaコマンドで実行する際、
適用されるランタイムのバージョンはどこで設定されているのでしょうか?
よろしくお願いいたします。
350:デフォルトの名無しさん
07/05/09 16:57:13
>>349
プロンプトで
java -version
351:349
07/05/09 17:02:05
って質問が違ったね。
URLリンク(www.hellohiro.com)
にあるように環境変数のJAVA_HOMEを変えると、反映されるかと。
352:デフォルトの名無しさん
07/05/09 17:10:16
こんにちは。
北朝鮮から出稼ぎに来ている28歳の無職です。
先日、梅田のハロワのトイレに入って
ウンコをした際、
「トイレットペーパー以外の物は流さないで下さい」
と壁に張り紙がしてありました。
仕方がないので、ウンコを新聞紙に入れて持って来ましたが
非常に不便さを感じました。
皆さんはどのようにしているのでしょうか
参考までに聞かせていただけませんか?
353:349
07/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:デフォルトの名無しさん
07/05/09 18:34:59
>>353
> JDKのバージョン=ランタイムのバージョンという認識
違う。
JDKのインストーラのデフォルトの設定(全部OKした場合)では、JDKとは別に、JREが入る。
JAVA_HOMEが指してるのは、普通は JDK内のランタイム。
で、JREにはjavacはないけど、C:\Windows\SYSTEM32 とかに java.exe を突っ込むから、
どっちを使うかは、環境変数 PATH の設定による。
レジストリの値は関係ない。
355:デフォルトの名無しさん
07/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.
(後略)
356:349
07/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:デフォルトの名無しさん
07/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 より優先順位が高い。
358:349
07/05/09 20:13:53
>>357
わかりました。そういう意味があったんですね。ありがとうございます。
アプリケーションをjarファイルにして他PCでも動かしたいのですが、
適応するランタイムのバージョンというのは、どうやって見極めればいいのでしょうか?
359:デフォルトの名無しさん
07/05/09 21:58:49
>>358
新たに追加されたクラス、メソッドは API仕様見れば since タグふってあるから、
それを調べれば、どのAPIがどのバージョンで動くかは大体分かる。
あとは javac -target とかで、出力したクラスファイルの互換性を気をつける事とか。
360:349
07/05/09 22:03:25
ありがとうございました。API仕様を確認してみます。
またここで質問させてもらうことがあるかと思いますが、よろしくお願いします。
361:デフォルトの名無しさん
07/05/09 22:27:43
プログラム中で、trueのラジオボタンを setSelected(false); でfalseにしたはずなのに、isSelected()で調べてみたらtrueでfalseになっていません。
どうしたらいいでしょうか?
362:デフォルトの名無しさん
07/05/09 22:34:21
>>361
setSelected(false) しても、実際に反映されるのは
次にイベントディスパッチスレッドに処理が移った時なのよ。
>>143 のリンク先とか見てくれ。
363:デフォルトの名無しさん
07/05/09 22:39:09
>>362
早速ありがとうございます。
見てみることにします。
364:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/05/09 23:26:04
Listでも使えば?
366:デフォルトの名無しさん
07/05/09 23:54:22
>>364
String[] buff = (String[])str.clone();
buff[2] = sonyu;
367:デフォルトの名無しさん
07/05/10 01:15:22
遅レスだけど、
>>309
win用のコードをX11でも動かせるように変更する必要は”ない”。
物理フォントを指定してたら依存する可能性があるが、そういうのはとりあえずコメントアウトしてよし。
問題は単なる環境設定。JDKやX11環境が整っているという認識が間違っている。
とりあえずFreeBSDのスレでも行って聞いてみたら?
368:デフォルトの名無しさん
07/05/10 07:18:17
>>365
これ便利ですね。
ありがとうございました。
>>366
そうではないです。
369:デフォルトの名無しさん
07/05/10 08:44:56
URLリンク(java.sun.com)
このクラスで改行文字を表すにはどうすればいいでしょうか。
もしそれよりも一般的な方法があれば教えてください。
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:デフォルトの名無しさん
07/05/10 08:50:15
数値a,bを読み込み格納している数値を交換する方法で分らない部分があります。
変数は a,b,w でa,bは読み込んだ所まで大丈夫です。
a = w;
b = a;
w = b;
上記の式だとa=wは初期化されてないとエラーがでます。
たぶんwに何も数値がないからでしょうか?
フロートチャートだと上のような順番なんですけど