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

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

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

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

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

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

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

次スレは>>980あたりでお願いしまする。
2デフォルトの名無しさん:2005/11/13(日) 15:08:25
今ここに宣言する!!!

「2ゲットズサー三三三三三⊂⌒⊃゚Д゚)⊃」
3デフォルトの名無しさん:2005/11/13(日) 15:21:05
華麗に3ゲット
4デフォルトの名無しさん:2005/11/13(日) 15:32:23
String型の文字列のn番目の文字を抽出することってできますか?
5前スレ998:2005/11/13(日) 15:33:09
前スレ1000ありがとうございます。

Javaを独学で学ぼうとしているものです。
独学でマスターするには
■ともかくプログラミングする環境を整える。Javaならば、開発のためのソフトなどを用意しインストールして使える状態にする。
■後は、ひたすらプログラムを書く!
ということなので
初心者におすすめのソフトがあればお教えください。
6デフォルトの名無しさん:2005/11/13(日) 15:34:43
>>5
前スレ1000で回答もらってたじゃない
マルチは嫌われますよ
7デフォルトの名無しさん:2005/11/13(日) 15:35:24
>>4
これくらい低レベルな質問なら、おれでもわかる。
char c = s.charAt(n);
8デフォルトの名無しさん:2005/11/13(日) 15:37:49
>>7
ありがとう
9デフォルトの名無しさん:2005/11/13(日) 16:01:33
文字データの数字を数字に変換するにはどうしたらいいですか?
10デフォルトの名無しさん:2005/11/13(日) 16:04:29
char c = '9';
int i = c - '0';

String s = "10";
int j = Integer.parseInt(s);
11デフォルトの名無しさん:2005/11/13(日) 16:26:26
>>10
ありがとうございました
じゃあ逆に
数字を文字に変換することってできますか?
12デフォルトの名無しさん:2005/11/13(日) 16:35:56
>>11
APIくらいみやがれ

各種型から文字列にしたいのなら
String.valueOf( 123 )

逆に各種型からIntegerにしたいのなら
Integer.valueOf( "123" )

FloatやDouble、Longなどもこの規則で統一された

13デフォルトの名無しさん:2005/11/13(日) 16:41:00
>>12
ありがとうございました

1413:2005/11/13(日) 16:44:02
たびたびすいませんが
n文字の文字列から先頭のn-1もじを抜き取りたいんですが
簡単にできる方法ってないですか?
自分は
1からn-1番目の文字列をひとつずつcharAtで抜き取るぐらいしか
思いつかないんですがこれだとすこしコードが汚くなって
いやなんですが・・・
15デフォルトの名無しさん:2005/11/13(日) 16:45:58
>>14
> たびたびすいませんが
> n文字の文字列から先頭のn-1もじを抜き取りたいんですが
> 簡単にできる方法ってないですか?

あります。以上。回答もらったらWiki更新しようね。
16デフォルトの名無しさん:2005/11/13(日) 16:53:14
Wikiってなーに?
17デフォルトの名無しさん:2005/11/13(日) 16:59:42

型 Thread からの static メソッド sleep(long) には静的にアクセスしてください。

↑このエラーメッセージってどういうこと?
静的にアクセスってどうすればいいの?
18デフォルトの名無しさん:2005/11/13(日) 17:06:51
ウイッキーさん
19デフォルトの名無しさん:2005/11/13(日) 17:07:36
型 Thread の static メソッド のsleep(long) に静的にアクセスしろって事。
20デフォルトの名無しさん:2005/11/13(日) 17:08:20
>>17
ゆっくりと静かにEnterを押下
21デフォルトの名無しさん:2005/11/13(日) 17:18:39
前スレ987です。
ご意見くださったとおりいろいろ試しましたが
まだ良い方法が見つからないです。
onejarも調べて見ましたが、私にはいまいちわかりませんでした…

やりたいことは、a.jarとb.jarをまとめてc.xxx にして
a.jarとb.jarにクラスパスを通すということです。
jarは実行形式でなく、単なるライブラリであって、アプリから参照されます。

何かご存知の方よろしくです。
22578:2005/11/13(日) 18:31:52
http://page.freett.com/kb100000/2.txt
http://page.freett.com/kb100000/3.txt
これってどんなことをかけばいいんでしょうか?
調べたことをテキトーにかけばいいんですかね?
だいたいどのようなことをかけばよいか教えていただけませんか?
23デフォルトの名無しさん:2005/11/13(日) 18:33:08
質問です
ティンティン変数って何ですか?
24デフォルトの名無しさん:2005/11/13(日) 18:38:02
>>22
宿題は宿題スレで。

★★ Java の宿題ここで答えます Part 53 ★★
http://pc8.2ch.net/test/read.cgi/tech/1123639475/
25デフォルトの名無しさん:2005/11/13(日) 18:56:59
基本的な質問で申し訳ありませんが、質問させてください。
コンパイルしようとすると
「シンボルを解釈できません」と出てきます。
パスもクラスパスも1文字にいたるまで確かめたのですが間違っていません。
何より、一ヶ月前にはコンパイルできたものができなくなっているのですが、なにが原因なのでしょうか。
今日、別のマシンでコンパイルしてみたらできたのですが。
26デフォルトの名無しさん:2005/11/13(日) 19:03:52
>>16
>>1 参照

>>17
Thread.sleep();

>>21
「いまいち」などと曖昧な書き方ではなく何がわからないか具体的に書きなさい

>>23
Java関連の用語ではない

>>25
その情報からでは一ヶ月前から現在にいたるまでに変わった何かが原因としか言えない
27デフォルトの名無しさん:2005/11/13(日) 20:02:48
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class HelloApp extends JFrame implements ActionListener {
public static void main(String[] args) {
new HelloApp("HelloApp").show();
}
public HelloApp(String title) {

と続くプログラムなのですが、6行目の
new HelloApp("HelloApp").show();
は具体的にどんなことをしているのですか?
28デフォルトの名無しさん:2005/11/13(日) 20:27:00
>>27
まず言語の基本から勉強したほうがよくないか?
具体的に答えたところでこの質問の答えからは得られるものはないだろうし
29デフォルトの名無しさん:2005/11/13(日) 20:35:09
>>28
いや、基本は少しやったんで、とりあえずここだけ聞きたいんです
よろしくお願いします
30デフォルトの名無しさん:2005/11/13(日) 20:44:25
>>27
下記の二行と同じ
HelloApp x = new HelloApp("HelloApp");
x.show();
31デフォルトの名無しさん:2005/11/13(日) 20:49:58
>>29
基本ができてないからそんなこともわかんないんだと思うよ
32デフォルトの名無しさん:2005/11/13(日) 20:56:42
>>30
ありがとうございます。
33デフォルトの名無しさん:2005/11/13(日) 21:00:24
>>27
show()じゃなくてsetVisible(true)でないと警告でるかもね
34デフォルトの名無しさん:2005/11/13(日) 21:35:32
>>33
注: HelloApp.java は推奨されない API を使用またはオーバーライドしています。
注: 詳細については、-Xlint:deprecation オプションを指定して再コンパイルしてくだ
さい。
という警告が消えました。ありがとうございます。
35デフォルトの名無しさん:2005/11/13(日) 21:53:59
メッセージダイアログのメッセージを
改行できる記述ってありませんか?
JOptionPaneのshowMessageDialog()メソッドを
使っているのですが、メッセージが長くて、結果として
横長のダイアログが表示されてしまいます。
36デフォルトの名無しさん:2005/11/13(日) 21:56:26
\n
37デフォルトの名無しさん:2005/11/13(日) 22:10:30
>>36
不正な文字とエラーが出るのですが、以下の場合どうするのでしょう?

JOptionPane.showMessageDialog(null,
                      "改行を" + \n + "試みています"
                      );
38デフォルトの名無しさん:2005/11/13(日) 22:15:10
>>37
"改行を\n試みています"
39デフォルトの名無しさん:2005/11/13(日) 22:15:49
>>37
Javaの基本構文勉強したほうがいいよ
40デフォルトの名無しさん:2005/11/13(日) 22:25:07
>>38
すいません。ありがとうございました。

>>39
そうですね。基本がなってないですね。
文法書の最初から読み返す事にします。
41デフォルトの名無しさん:2005/11/13(日) 22:56:07
先生!jpg画像を加工したいです!

どの辺参照すればいいですか!
42デフォルトの名無しさん:2005/11/13(日) 22:58:15
>>41
画像全般扱うJava2D
画像のロードセーブのImageIO
43デフォルトの名無しさん:2005/11/13(日) 23:57:11
配列を書くまでは分かるんだが、
そこからどう使えばいいかわかんない・・・。
int[] date = {12,13,14,15,16,11,10};
この先どうやって使うんですか?
44デフォルトの名無しさん:2005/11/14(月) 01:02:12
どんなふうに使いたいんですか。
45デフォルトの名無しさん:2005/11/14(月) 02:15:49
>>44
例えば、平均を求めたいときとか、合計を求めたいときの使い方は
どうすればよいのでしょう?
46デフォルトの名無しさん:2005/11/14(月) 02:37:03
数字の並べ替えってどうやるんですか?
どなたか教えてください
47デフォルトの名無しさん:2005/11/14(月) 02:44:46
>>45
int[] date = {12,13,14,15,16,11,10};

int sum = 0;
for(int i = 0; i<date.length; i++ ){
sum += date[i];
}
System.out.println("合計:" + sum);
System.out.println("平均:" + ((float)sum / date.length));

つーか宿題スレにいったら?
48デフォルトの名無しさん:2005/11/14(月) 02:47:27
>>46
java.util.Arrays.sort(date);
49デフォルトの名無しさん:2005/11/14(月) 03:11:47
javaでCのsetprecisionみたいなことやるのってどうすればいいんですか
50デフォルトの名無しさん:2005/11/14(月) 08:41:35
>>49
System#printf()
とか使う
51デフォルトの名無しさん:2005/11/14(月) 08:42:06
Systen.out.printf()
だっけか
52デフォルトの名無しさん:2005/11/14(月) 09:50:21
オブジェクトのIDって取得できますか?
具体的にはMapとList(を実装したクラスのインスタンス)だけでいいのですが、RubyのObject#__id__ のように、オブジェクト固有のIDみたいなのが取得したいです。
53デフォルトの名無しさん:2005/11/14(月) 09:53:54
>>52
java.lang.System#identityHashCode(Object)

int じゃ足りなくなったらどーすんだろ? とか思ったが、まーいーや。
54デフォルトの名無しさん:2005/11/14(月) 10:09:06
2億もあれば十分じゃね?
55デフォルトの名無しさん:2005/11/14(月) 10:23:06
JFileChooserでファイル選択ダイアログを表示すると
例外が発生します。
fonts/fallbackにフォントへのリンクを作成してから
例外が発生するようになりました。
fonts/fallbackのリンクを消すと日本語は表示できませんが、
例外は発生しません。

環境は
SUSE Linux9.3
JDK1.5.0_04
です。

解決方法わかる方、よろしくおねがいします。
56デフォルトの名無しさん:2005/11/14(月) 11:35:14
toString、equal とはどういったメソッドなのでしょうか?
57デフォルトの名無しさん:2005/11/14(月) 12:01:31
58デフォルトの名無しさん:2005/11/14(月) 12:24:13
Cでいうところのargv[0]はどうやって取得?
System.err.println("usage: java " + argv[0] + "filename");
ってやりたいよな。いちいちクラス名に合わせて書き換え?
59デフォルトの名無しさん:2005/11/14(月) 12:33:02
>>58
> System.err.println("usage: java " + argv[0] + "filename");
> ってやりたいよな。
java -jar されてる場合とか java -cp されてる場合とか考えたら、それじゃ拙いだろ。
60デフォルトの名無しさん:2005/11/14(月) 13:33:08
クラスAとクラスBがあって、クラスAの中で作った変数をクラスBでも使えるようにするにはどうしたらいいんでしょうか?
イベント処理で、テキストフィールドを持つクラスAと、テキストフィールドに入力された変数に合わせてグラフィックスで描画を行うクラスBとの間の変数のやり取りの仕方がわかりません。
61デフォルトの名無しさん:2005/11/14(月) 13:36:54
java.sql.Connectionクラスの
commit、closeについてですが、
closeすると、commitも自動で行われるのでしょうか?
それとも、別々にやらないとダメなのでしょうか?
62デフォルトの名無しさん:2005/11/14(月) 13:47:54
>>61
DBってもんはオートコミットになってなければ勝手にコミットすることはないと思うのだが
63デフォルトの名無しさん:2005/11/14(月) 13:51:28
>>62
どっかでオートコミットが設定されてる文があるのかも・・
しらべてみま〜す
ありがとうございます(・∀・)ノ
64デフォルトの名無しさん:2005/11/14(月) 13:56:14
ドライバによってオートコミットの初期状態は違う可能性あり
トランザクション開始する前にはかならずオートコミットをOFFにしよう
65デフォルトの名無しさん:2005/11/14(月) 14:06:10
>>64
あれまっ!そうなんですか?!
マジでよ〜く調べたほうがよさそうだ〜〜(´д`)
66デフォルトの名無しさん:2005/11/14(月) 14:16:15
数字を比較する場合にint型の変数を符号で比較する場合と
String型で数字をequalsメソッドで比較した場合、

速度的には符号(==など)が早いのでしょうか?
それとも変わらないのでしょうか?
微々たる差ではありますが気になったもので。
67デフォルトの名無しさん:2005/11/14(月) 14:25:54
>>53
すげー、こんなのあったんだ。多謝多謝。
68デフォルトの名無しさん:2005/11/14(月) 14:27:13
>>66
== のほうが断然速い。
ただし、プログラム全体からみれば微々たる差なのはそのとおり。
69デフォルトの名無しさん:2005/11/14(月) 14:28:33
>>65
まあ調べた方がよいのは確かだが、実装レベルでいえば
>>64の言うとおり「トランザクション開始する前にはかならずオートコミットをOFFにしよう」
を守っておけば問題ない、というかむしろそうすべき。
ドライバ側で仕様変更が起こるかもしれないとか、RDBを問わず動作させねばならんとかあるわけで。
70デフォルトの名無しさん:2005/11/14(月) 14:36:27
>>68さん
レス、ありがとうございます。
やっぱり微々たるものですか・・・
byte[]でデータ入力があり、その値によって処理分岐をさせる場合、
一度int型に変換して符号で比較するぐらいなら、
String型のまま比較してもかわらなそうですね・・・。
71デフォルトの名無しさん:2005/11/14(月) 14:36:34
>>60
ほかのクラスの変数を直接参照することはできない。
一方が他方の参照を保持しておくか、または描写するメソッドの引数として渡す。

class TextField {
 private String text;
 public TextField(String text) { this.text = text; }
 public String getText() { return text; }
}
class Renderer {
 // 方法1. TextFieldオブジェクトの参照を保持しておき、それを描写する
 private TextField textfield;
 public Renderer(TextField textfield) { this.textfield = textfield; }
 public void render() {
  String text = textfield.getText();
 }
 // 方法2. TextFieldオブジェクトを引数として渡す
 public void render(TextField textfield) {
  String text = textfield.getText();
 }
}
72デフォルトの名無しさん:2005/11/14(月) 14:43:04
>>13
String str = "foobar";
String pre = str.substring(0, 3); // 先頭から3文字とりだす
String post = str.substring(4); // 4文字目以降を取り出す
String last = str.substring(str.length() - 1); // 最後の一文字だけを文字列として取り出す
73デフォルトの名無しさん:2005/11/14(月) 14:50:16
>>69
ありがとうございます〜
やっとわかってキタ━━━━(゚∀゚)━━━━ッ!!っす!
74デフォルトの名無しさん:2005/11/14(月) 16:51:17
javaでUDP通信を行ないたいのですが、データの受信を以下のようにスレッドで設計しました。

void run(){
DatagramSocket sock = new DatagramSocket(port);
while(true){
sock.receive(datagram);

処理…
}
}

この処理中に新しいパケットが届いた時、ループが返ってきた時にそのパケットはちゃんと処理されるのでしょうか?教えて下さい、よろしくお願いします。
75デフォルトの名無しさん :2005/11/14(月) 18:03:00
超初心者ですので馬鹿な質問かもしれませんが教えてください。
このように同じ内容のthreadを2個立ち上げ、その中で同じ内容のタスクaaaを
newでコールしたとき

thread1:new aaa
thread2:new aaa

呼び出したタスクaaaはthreadのようにそれぞれマルチに動いているのでしょうか?
それとも処理が終わるまで待っているのでしょうか?


76デフォルトの名無しさん:2005/11/14(月) 18:10:52
>>75
タスクaaa の実装によるとしか言いようが無い。

あと、「threadを立ち上げ」とか「タスクaaa をnewでコール」とか
抽象的な表現は止めてコンパイル可能なプログラムで示せ。
77デフォルトの名無しさん:2005/11/14(月) 18:23:47

すいませんでした
threadの開始はこんな感じです(中身は長いので省略しました)

Runnable r = new Runnable() {
public void run() {
boolean connFlag = connectableFlag;
int res = ResultCode.SUCCEEDED;
:省略
if (cms != null) {
cms.clientConnected(clientProp);
}
};
  new Thread(r).start();

そのthreadのなかでnewでコールしている部分です
MessageSender ms = null;
ms = new MessageSend(getInetAddress(), PortNum, dataSocket);
78デフォルトの名無しさん:2005/11/14(月) 18:46:16
>>74
UDPだと受け取れないパケットは取りこぼすんじゃないですかね
79デフォルトの名無しさん:2005/11/14(月) 18:48:39
SWTのImageDataでwidthとheightの値を小さくすると画像の右と下を削れますが、
左と上を削るにはどうすればよいでしょうか。
80デフォルトの名無しさん:2005/11/14(月) 19:29:19
SWTスレいったほうがいいんじゃね
81デフォルトの名無しさん:2005/11/14(月) 19:42:02
int[] data = {10,11,12,50,4,3,2,1};
このデータを使って最大値、最小値、合計、平均を求めるのがわかんない。
一つ一つはなんとかわかるんだけど、
全部一気にやるといっつもエラーがでる…。
なんででしょう?
82デフォルトの名無しさん:2005/11/14(月) 19:54:53
>>74
ソケットの受信バッファが十分空いてりゃ大丈夫じゃない?
83デフォルトの名無しさん:2005/11/14(月) 20:02:18
>>81
エスパー募集スンナ
8479:2005/11/14(月) 20:16:29
>>80
どうも。移動します。
85デフォルトの名無しさん:2005/11/14(月) 21:40:37
prepareStatementを使ってデータベースに登録するため、
getTimeでDate型の時間を受け取り、Timestamp型に変更して登録したいのですが、
クラスキャストエクセプションが出てしまいます。どうしたらよいのでしょう?

クラス名 **** = new クラス名(); ←get,setを持っているクラス 

String sql = "INSERT INTO RESERVATION VALUES(?) ";
pstmt.setTimestamp(1, (Timestamp)****.getTime());
86デフォルトの名無しさん:2005/11/14(月) 22:11:23
>>85
そのDateってjava.util.Dateだろ?

java.sql.Timestampとまったくべつのクラス渡してればエラーが出るのは当たり前
java.sql.Timestampのインスタンス作ればいいだけ

どこを迷うことがあるのさ
コンストラクタも1つしかないし
87デフォルトの名無しさん:2005/11/14(月) 22:43:09
pstmt.setTimestamp(1, new Timestamp(****.getTime().getTime()));
88デフォルトの名無しさん:2005/11/14(月) 23:14:10
配列自体はソートせずに、大きいものから表示したいのですがどんな方法がありますか?
89デフォルトの名無しさん:2005/11/14(月) 23:16:37
作業用の配列でも用意してそれをソートすれば
90デフォルトの名無しさん:2005/11/14(月) 23:19:17
【玄人】プロジェクト管理ツールApache Maven【2.0登場】
http://pc8.2ch.net/test/read.cgi/tech/1131976988/
91デフォルトの名無しさん:2005/11/14(月) 23:19:27
OS のクリップボードに画像を貼り付けたいのだが(Java 1.4 系)、
Windows だと上手く動くのに、Linux だと張り付かない。
このあたりはVMの実装依存なんですか?
92デフォルトの名無しさん:2005/11/14(月) 23:38:34
>>88
int限定
int[] data = {0, -20, 100, 5, 0};
int min = data[0], max = data[0];
for (int d : data) {
if (d > max) max = d;
if (d < min) min = d;
}
for (int i = max; i >= min; i--) for (int d : data) if (d == i) System.out.println(d);
9392:2005/11/14(月) 23:40:59
こっちの方がキレイ
int[] data = {0, -20, 100, 5, 0};
int min = data[0], max = data[0];
for (int d : data) if (d > max) max = d;
for (int d : data) if (d < min) min = d;
for (int i = max; i >= min; i--) for (int d : data) if (d == i) System.out.println(d);
9492:2005/11/14(月) 23:49:04
バグってたけど(゚ε゚)キニシナイ!!
95デフォルトの名無しさん:2005/11/14(月) 23:58:03
http://pc8.2ch.net/test/read.cgi/tech/1131282679/l50

237 :デフォルトの名無しさん :2005/11/14(月) 23:38:29
さあ話をそらしにかかりました
96デフォルトの名無しさん:2005/11/15(火) 00:04:08
>>93
それだとminとmaxの差が大きいと時間が掛からんか?

// 生成
java.util.Random random = new java.util.Random();
int[] data = new int[100];
for(int i=0; i<data.length; i++) data[i] = random.nextInt();

// ソート&表示
int[] cdata = data.clone();
Arrays.sort(cdata);
for (int i = cdata.length - 1; i >= 0; i--) System.out.println(cdata[i]);
97デフォルトの名無しさん:2005/11/15(火) 00:18:13
■幸福のコピペ(チョピペ)■
他のスレに貼り付けると□□□□■□□□□■□□□
□■■隠された文字が■浮き出るよ□□■■■□□□□
http://pc8.2ch.net/test/read.cgi/tech/1131282679/l50
□□□■■□■■□□□□□■■□□■■□■□□
237 :デフォルトの名無しさん :2005/11/14(月) 23:38:29
さあ話をそらしにかかりました□□□□■□□□■■□
□■■□□■□□□□■■□□■□□□□□■■□
98デフォルトの名無しさん:2005/11/15(火) 00:34:59
99デフォルトの名無しさん:2005/11/15(火) 00:53:42
JEditorPaneにHTMLのっけると、動作が非常に重いです
なんとかなりませんか?
それとも、そういう仕様でしょうか?
100デフォルトの名無しさん:2005/11/15(火) 02:12:54
携帯電話でSessionを管理するにはどのようにすればよいのでしょうか?
JSP→Servlet→JSP(セッションの値表示)→
Servlet(セッションの値がとれない)
いままでシュミレータを使っていてうまく動作していたのですが、
携帯で実際に操作してみると、sessionの値がnullで Server エラーになって
しまいました。。
101デフォルトの名無しさん:2005/11/15(火) 06:17:49
>>100
サーバー側に渡してないからでは?
携帯だとCookieは使えないものが多いらしいから
JSPの中で自分で渡さないとダメだよ
102デフォルトの名無しさん:2005/11/15(火) 09:58:33
>>100
HttpServletResponseのencodeURL()メソッドのAPIドキュメント見れ
10374:2005/11/15(火) 11:56:51
>>78,82
ありがとうございます。
実際このようなソースを書いてみたのですが、どうも取りこぼしてるような気がします。受信バッファのサイズを見てみたのですが、かなり大きかったので、受信バッファサイズに関しては大丈夫だったみたいです。

ではもしこのようなものを取りこぼさずに処理したい場合どうすればよいのでしょうか?
受け取る部分だけループで回して、受け取ったパケットの処理は別スレッドでやるというのが正解なのでしょうか?
104デフォルトの名無しさん:2005/11/15(火) 11:57:35
JAVAのAPIでデータを圧縮するようなものはありますでしょうか?
通信メッセージのサイズを抑制したいのですが。
105デフォルトの名無しさん:2005/11/15(火) 12:20:10
>>103
TCPに替えろ
106デフォルトの名無しさん:2005/11/15(火) 12:21:28
>>104
ZIP圧縮は標準でサポート
107デフォルトの名無しさん:2005/11/15(火) 12:22:25
UDPってのは取りこぼしてもいいから、という作り方しないとだめだからな
再送とかそういうメッセージ関係も自前で処理しなければならん
10874:2005/11/15(火) 13:10:19
>103,107
ありがとうございます。
そうですね、TCPに変えることも考えますw
再送処理とかめんどくさいのでw
109104:2005/11/15(火) 13:17:13
>106さん
ありがとうございます!
110デフォルトの名無しさん:2005/11/15(火) 13:54:44
質問なのですが、JAVAでIPv6プログラミングをしたいと思っています。そこでまず

@自分のマシンのあるインターフェースについているv6アドレスを取得することはできるのでしょうか?
AInet6Addressオブジェクトはどういう風に作成したらよいのでしょうか?例えば
Inet6Address ia = Inet6Address.getByName(www.abc.net);
のようにやってもエラーがでて
 InetAddress ia = Inet6Address.getByName(www.abc.net);
のようにするとv4アドレスしか取得できません。

誰か知ってる人いたら教えてください。お願いします。
111デフォルトの名無しさん:2005/11/15(火) 14:02:02
getByNameなんてInetAddress6では実装してないぞ
APIマニュアル読んでくれ
112デフォルトの名無しさん:2005/11/15(火) 14:02:16
>>110
Googleさんがご存知でしたので、聞いてみてください
113デフォルトの名無しさん:2005/11/15(火) 14:52:53
超あほな質問ですいません。

質問1
↓スレッド内部でこのような静的なフラグをもったとき
private static boolean SendEnd = true;
フラグはスレッドごとに持つのですか?それとも1個が書き換えられる?

質問2
↓スレッド内部でこのようなメソッドを持った時
public void setSendEndOn(boolean flag) {
SendEnd = true;
}
静的(static)を使用しないで他のタスクから見る方法はありますか?

public void setSendEndOn(boolean flag) {
SendEnd = true;
}
114デフォルトの名無しさん:2005/11/15(火) 14:55:01
修正

質問2
↓スレッド内部でこのようなメソッドを持った時
public void setSendEndOn(boolean flag) {
SendEnd = true;
}
静的(static)アクセスを使用しないで他のタスクから見る方法はありますか?

115110:2005/11/15(火) 15:01:08
>111
APIによるとInet6AddressはInetAddressから継承されているみたいなんですけど、これじゃダメなんですかね?

>112
java,IPv6などのキーワードで色々調べてみたのですがどうも見つかりません。もしよろしければ教えていただけますか?
116デフォルトの名無しさん:2005/11/15(火) 15:03:42
>>113
staticなメンバはクラスにくっつく
ただ、スレッドの最適化でコピーが作られる場合がある

質問2は意味が分からん
117デフォルトの名無しさん:2005/11/15(火) 15:04:33
>>115
マニュアル見てるならわかるはずだが継承してるけど、継承先実装してないだろ
だからInetAddressの実装が返されるだけ
118デフォルトの名無しさん:2005/11/15(火) 15:11:10
119デフォルトの名無しさん:2005/11/15(火) 15:13:11
>>116
しつこくてすいません
確認させていただくと
スレッド1 true
スレッド2 false
スレッド3 true
と書き換えた場合
スレッド1で再度見た時はtrue
スレッド2で再度見た時はfalse
スレッド3で再度見た時はtrue
にならないで最後に変更したものが入るという事でよろしいでしょうか?

質問2はつまり「static宣言してないメソッド(質問1で宣言したフラグだ
けでもいいです)を他のタスクから見る方法はありますか?」ということです。
120110:2005/11/15(火) 15:17:40
>>115
なるほど、そうですね(汗)できないはずだ…

>>118
ありがとうございます、読んでなかったです。とりあえずこれから読んでみます。
121デフォルトの名無しさん:2005/11/15(火) 15:19:07
質問1のフラグは静的メンバだからそのクラスのどのインスタンスからも見れる
メソッドを他のタスクから見るってのがいまいちよく分からない
122デフォルトの名無しさん:2005/11/15(火) 15:37:26
>>119
基本的にはそう
クラスというものにくっつくから実態はひとつだけ

ただ、同期化処理が入っていないのでマルチスレッドのときに動作は保障されない
単純なフラグの上げ下げと取得順序を意識しなくていいというのなら
volatile宣言いれるといいかと

質問2はまたもや意味が分からん
123デフォルトの名無しさん:2005/11/15(火) 15:39:10
>>121
すいません
僕も良くわかってないんでもう一度良く考えて投稿します
ありがとうございました
124デフォルトの名無しさん:2005/11/15(火) 16:11:02
JTableに得られた文字列や値を次々と格納する方法ってあります?
String name[] ={"項目1", "項目2" ,"項目3"};
String data[] ={a1 , a2, a3};//a1,a2,a3は得られ次第格納
lb = new JLabel("結果");
tb = new JTable(data, name);
sp = new JScrollPane(tb);
のようにしたら一応String型のデータもあるのですが互換性のない型となりました・・
a1〜a3までint型のものまでStringに変換してからとか必要なのでしょうか?
あるいは記入方法が間違っているのでしょうか?
125デフォルトの名無しさん:2005/11/15(火) 16:29:52
JTableのデフォはDefaultTableModel使ってると思うが
これはObjectが格納可能
intは入らない

が、オートボクシングでIntegerに変換されて入っているのでは?

126デフォルトの名無しさん:2005/11/15(火) 19:57:39
お尋ねします。
JFace/SWT で、スタンドアロンなアプリケーションを作っている最中です。
TabItem の 画面を 2分割しようと、createContents メソッドの中で


TabFolder tabFolder = new TabFolder(parent, SWT.NONE);
TabItem tabItem = new TabItem(tabFolder, SWT.NONE);
SashForm sash1 = new SashForm(tabFolder, SWT.NONE);
SashForm sash2 = new SashForm(tabFolder, SWT.NONE);
Composite comp = new Composite(tabFolder, SWT.NONE);
comp.setLayout(new FillLayout());
tabItem.setControl(comp);


などとやっているのですが、どうも間違っているようです。
2分割の方法に付いて、御教示いただければ幸いです。
127デフォルトの名無しさん:2005/11/15(火) 19:58:27
SWTスレいったほうがええ
128デフォルトの名無しさん:2005/11/15(火) 20:27:38
>>127
わかりました。もう少しだけ待って、向こうに引っ越します。
129デフォルトの名無しさん:2005/11/15(火) 20:54:31
>>126
あたしゃSWT使ったこともないがこうじゃないかね?

TabFolder tabFolder = new TabFolder(parent, SWT.NONE);
TabItem tabItem = new TabItem(tabFolder, SWT.NONE);
SashForm sash = new SashForm(tabFolder, SWT.HORIZONTAL);
tabItem.setControl(sash);
Composite comp1 = new Composite(sash, SWT.NONE);
Composite comp2 = new Composite(sash, SWT.NONE);
comp1.setLayout(new FillLayout());
comp2.setLayout(new FillLayout());
130デフォルトの名無しさん:2005/11/15(火) 21:35:22
すみません、これをUTF8からjdk1.5.0_05用とかに変換するには
どうしたらいいでしょうか?
http://kasamatusan.sakura.ne.jp/cgi-bin2/src/ichi16021.zip.html
131デフォルトの名無しさん:2005/11/15(火) 21:47:59
Java WebStart(javaws.exe, *.jnlp)を試してみようと思っています。

javaws.exe や *.jnlp を実行するとNullPointerException が発生し、
Javaアプリケーションキャッシュビューアが起動します。

ちゃんと起動できていないように思うのですが、この挙動で正しいのでしょうか?
違うようなら何がいけないのか、ヒントだけでも教えてください。

環境は、
OS: Windows XP SP2
jdk: j2sdk5.0 update 5 を jre 抜きで c:\java\dk 以下に
jre: j2re5.0 update 5 を c:\java\re 以下に
PATH: %PATH%;c:\java\dk\bin;c:\java\re\bin
です。
132デフォルトの名無しさん:2005/11/15(火) 21:50:07
>>130
> jdk1.5.0_05用
なんてものは存在しない。存在しないので変換なんかできない。

エンコーディング指定したいなら javac -encoding UTF-8 とかで指定。
133131:2005/11/15(火) 21:50:28
あ、ちょっと違った。

javaws.exe を起動 → Javaアプリケーションキャッシュビューア起動
*.jnlp をクリック → 対象アプリケーションが起動

いずれも、ぬるぽのエラーメッセージの後です。
134デフォルトの名無しさん:2005/11/15(火) 22:02:47
JavaWebStart対応アプリを
つくるときにおすすめの開発環境って何かない?

Eclipseを使ってるんだけど
専用プラグインでできる?
それともVEプラグインでできる?
できるとしたらどれがおすすめ?

だれかご教示ねがいまっせ
135デフォルトの名無しさん:2005/11/15(火) 22:11:07
あるクラスでComponentクラスのcreateImage()を使いたいのですが、
Componentクラスを継承せずに使うにはどういう風に書けばいいのでしょうか?
感覚的には

MemoryImageSource memory_image = new MemoryImageSource(width,height,buf,0,width);
Image img = (new Component).createImage(memory_image);

みたいな感じで書きたいのですが、、
ご教授お願いします。
136デフォルトの名無しさん:2005/11/15(火) 22:15:52
Component#createImageが本当に必要なのか考えるとか
137130:2005/11/15(火) 22:19:23
・ソimport java.awt.event.*;
1行目から↑で実行しても文字化けしてしまいます・・。
何かツールなどを使って変換するのでしょうか?
>132
javac -encoding UTF-8 TextEditor.javaとかやってみましたが
よくわからんとです・・
138デフォルトの名無しさん:2005/11/15(火) 22:22:10
139130:2005/11/15(火) 22:32:42
>>138
ありがとう。
140デフォルトの名無しさん:2005/11/15(火) 22:34:03
んじゃ消すねー
141デフォルトの名無しさん:2005/11/15(火) 22:34:46
>>137
あぁ悪い。BOM付き UTF-8 だね。
jEdit で表示できてたから気付かんかった。

mustang b61 使うか、先頭の3バイト削ってくれ。
http://bugs.sun.com/bugdatabase/view_bug.do;:YfiG?bug_id=4508058
142デフォルトの名無しさん:2005/11/15(火) 22:56:39
要はcrimsonを使わなきゃいいって話だからXercesにいれかえるとか
IBM JRE使うとかでもいい。
143デフォルトの名無しさん:2005/11/15(火) 23:04:57
strutsでスケジュール管理を作っているのですが
Listenerを使って名簿テーブルから「Name」「Id」を取得しDropDownListに「Name」を表示したいのですが、まず、Listenerがよくわかりません

public class StartPageListener implements ServletContextListener{
  public void contextInitialized(ServletContextEvent event){
    ServletContext context = event.getServletContext();
  try{
ScheduleManager smanager = ScheduleManager.getManager();
List userList = smanager.getUsers(); //ScheduleManagerで「Name」「Id」をリストで取得しました

     context.setAttribute(); //ここで何を書けばいいのかわかりません
}
catch(Exception e){
System.exit(0);
} }
public void contextDestroyed(ServletContextEvent event){

ServletContext context = event.getServletContext();
context.removeAttribute();






144デフォルトの名無しさん:2005/11/15(火) 23:25:14
jbuilderを使って動画を再生したいのですが
動画のソースをどの部分に書けばいいのかわかりません。
Application、Frameどちらかのソースなのか
他にソースを作らなければならないのか教えてください。
まだjavaを始めたばかりの初心者なのでどうかレスしてください。
145教えてください:2005/11/15(火) 23:32:34
javaで作成したアプリケーションの検索スピードを上げるため、Jetコンパイラの
Excelsior Jetを使用したところ一応のスピードアップは見られたのですが、検索
を重ねているうちに、マシンがフリーズしてしまいます。
使用したメモリの解放が上手く行われていないようなのですが、どなたか解決方法
をご存知の方がいらっしゃいましたら教えてください。
146デフォルトの名無しさん:2005/11/15(火) 23:48:38
プロファイラでどこでメモリリークしてるかつかめばいいだけでは
147130:2005/11/15(火) 23:56:21
GUIの立ち上がったアプレットの
スクリーンショットとる方法ありますか?
148デフォルトの名無しさん:2005/11/16(水) 00:25:06
サーバサイドjavaで設定用のダイアログボックスを使いたいのですが
どうすれば良いのでしょう?
親となるメインウインドウにボタンを作って、そこをクリックすると新しい
ウインドウが出るようにして、そのウインドウで設定用のチェックボックスや
テキストボックスを作ればいいところまでは分かるのですが、その
結果を親ウインドウに反映させるのはどうすればいいのでしょうか?

その結果を別の新規ウインドウや自分自身に反映させる方法は分かるのですが・・
149デフォルトの名無しさん:2005/11/16(水) 00:32:18
質問おねがいします


<%= new java.util.Date() %>

JSPファイルでこのように記述すると、
Wed Nov 16 00:31:32 JST 2005
このように時刻が表示されるのですが、
これをミリ秒で表示したいときは、どのように記述すればよいのですか?
150デフォルトの名無しさん:2005/11/16(水) 00:41:03
>>149
<%= new java.util.Date().getTime() %>

APIドキュメントぐらい見てから質問しろよな・・・
151デフォルトの名無しさん:2005/11/16(水) 00:49:20
>>150
すいません、右も左もわからない初心者なもので・・・
以後気をつけます
ありがとうございました
152デフォルトの名無しさん:2005/11/16(水) 02:30:02
GCの管理から外れたインスタンスを確保するにはどうすればいいの?
C#ではできるのになんでJAVAだとできないのやっぱり糞言語だからかな?
153デフォルトの名無しさん:2005/11/16(水) 02:55:18
すいません。
DAOとvalueobjectなんですが?
実行したときに、serchingがかかって、type一覧が出力されるのですが?
どれを選んでいいのかわかりません。
154デフォルトの名無しさん:2005/11/16(水) 03:02:17
>>152
ちなみに、何を作るために必要なんだ?
155デフォルトの名無しさん:2005/11/16(水) 03:08:10
今。参考書見ながらEclipse勉強しています。
postgresからデータを引っ張るためです。
156デフォルトの名無しさん:2005/11/16(水) 03:54:33
Java だって、下手糞に書けばメモリリークくらい出来ますよ
157デフォルトの名無しさん:2005/11/16(水) 05:57:06
Sun Java Studio Enterprise 8ってどうなの?
ずっとeclipse3でコード書いてきてそこまで不満は
無いんだけど・・・・デモ見る限りかなりの出来と
思うんだけど・・・・・
158デフォルトの名無しさん:2005/11/16(水) 08:50:54
NetBeansベースだからできはいい
159sage:2005/11/16(水) 10:16:34
>>152 ホレ今思いついたままに書いてみたぞ。
そんな物が必要だと思ったことは一度もないけどな。
import java.util.HashSet;
import java.util.Set;
public class UnGabage {
  public UnGabage() {
    instSet.add(this);
  }
  public void delete(){
    instSet.remove(this);
  }
  static Set instSet = new HashSet();
}
160デフォルトの名無しさん:2005/11/16(水) 10:29:45
ta.setComponentPopupMenu(popup);
popup.addPopupMenuListener(new PopupMenuListener() {
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
copy.setEnabled(ta.getSelectionStart() != ta.getSelectionEnd());
cut.setEnabled(ta.getSelectionStart() != ta.getSelectionEnd());
}
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {}
public void popupMenuCanceled(PopupMenuEvent e) {}
});
は何をしているのでしょうか?急ぎなので簡単にお願いします、¥すみません
161デフォルトの名無しさん:2005/11/16(水) 10:32:27
>>151
>すいません、右も左もわからない初心者なもので・・・
お箸を持つ方が右で、茶碗が左だろ?
これだから初心者は・・・
162デフォルトの名無しさん:2005/11/16(水) 11:11:51
>>161
左利きかもしれないけどな。
これだから初心者は・・・
163デフォルトの名無しさん:2005/11/16(水) 11:17:00
左利きのプログラマーなんていない
164デフォルトの名無しさん:2005/11/16(水) 12:01:32
>>159
ダウト
165デフォルトの名無しさん:2005/11/16(水) 12:09:27
>>152はSoftReferenceの使いかたも知らないアホということで
166110:2005/11/16(水) 12:18:29
レスが遅れてすいません、JAVAでIPv6プログラミングをしたいと言っていたものです。

あれから色々調べてみたところ、以下のページが見つかりました。

http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/net/properties.html

多分ここらへんのプロパティをデフォルトから変更すればできると思うんですが、変更の仕方がわかりません。ちなみに

Properties p = System.getProperties();
p.list(System.out);

みたいなコードを書いたら、上のページのようなプロパティは見当たりませんでした。
167デフォルトの名無しさん:2005/11/16(水) 12:20:25
>>166
無ければ自分でセットすれば
168166:2005/11/16(水) 12:36:05
>>167
え?そんなことできるんですか?
169126:2005/11/16(水) 12:41:42
>>129
遅レスすみません、まさに希望どおりになりました。
TabItemはCompositeの子ではないので、TabItem1つ1つにCompositeを
割り当ててやる必要があるのですね。
ありがとうございました。
170デフォルトの名無しさん:2005/11/16(水) 12:53:00
>>168
System.setPropertyというのがあるのだが。。。

あと、ここの下のほうを読んでみ
ttp://www.hellohiro.com/systemproperty.htm
171デフォルトの名無しさん:2005/11/16(水) 12:53:16
>>160
ポップアップメニューの登録。
ポップアップメニューが表示されるときに、ta(=テキストエリア?) で選択されてれば、
(ポップアップメニューの?)copy と cut を有効にする。そうでなければ copy と cut は無効。
172166:2005/11/16(水) 12:55:21
>>167
すみません、できました…。が結局変わりません。システムプロパティを見てみると

java.net.preferIPv6Addresses=true
java.net.preferIPv4Stack=false

になっていますが、システムプロパティ変更後のソースに

InetAddress ia[] = InetAddress.getAllByName(args[0]);
for(int i = 0;i < ia.length;i++)
System.out.println(ia[i]);

として引数にlocalhostと入れても出力は

localhost/127.0.0.1

となってしまいます…。
173デフォルトの名無しさん:2005/11/16(水) 13:08:26
>>172
1.4.2 だと InetAddress の staticイニシャライザでシステムプロパティ見て設定してる、
だから、一旦 InetAddress を使った後では System.setProperty とかやっても無駄。
174デフォルトの名無しさん:2005/11/16(水) 13:16:43
>>172
普通、localhostは、当たり前のように127.0.0.1のループバックだと思うんだが。
マシン名渡してみれ。
175デフォルトの名無しさん:2005/11/16(水) 13:26:58
>>173のような事情だと、javaのコマンドラインで
-Djava.net.prefer...ってやらないとダメなんでないかい。
176172:2005/11/16(水) 13:27:00
>>173
すみません、勉強不足のためよくわかりません…。とりあえずソースを載せます。

import java.net.*;
import java.util.*;
import java.io.*;
class a{
public static void main(String args[]){
try{
FileInputStream propFile = new FileInputStream("b.properties");
Properties p = new Properties(System.getProperties());
p.load(propFile);
System.setProperties(p);
System.getProperties().list(System.out);
InetAddress ia[] = Inet6Address.getAllByName(args[0]);
for(int i = 0;i < ia.length;i++)
System.out.println(ia[i]);
}catch(Exception e){
}}}

プロパティファイルb.propertiesも載せます。

java.net.preferIPv6Addresses=true
java.net.preferIPv4Stack=false

ちなみにOSはFreeBSD5.4RELEASE-p8です。

>>174
マシン名を渡してもダメでした…。
177デフォルトの名無しさん:2005/11/16(水) 13:35:53
>>176
うちだと動くよ。

%uname -a
FreeBSD home.dangan.local 5.4-RELEASE-p7 FreeBSD 5.4-RELEASE-p7 #1: Thu Oct 27 17:40:13 JST 2005 root@******:/usr/obj/usr/src/sys/******* i386
%cat test.java
import java.net.*;

public class test {
public static void main(String[] args) throws Exception {
System.setProperty( "java.net.preferIPv6Addresses", "true" );
InetAddress addresses[] = InetAddress.getAllByName("localhost");
for( int i = 0 ;i < addresses.length ; i++){
System.out.println(addresses[i]);
}
}
}
%javac test.java
%java -showversion test
java version "1.4.2-p7"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-p7-root_12_sep_2005_03_09)
Java HotSpot(TM) Client VM (build 1.4.2-p7-root_12_sep_2005_03_09, mixed mode)

localhost/0:0:0:0:0:0:0:1
localhost/127.0.0.1
178デフォルトの名無しさん:2005/11/16(水) 13:40:31
>>176
うちでも動いた
179デフォルトの名無しさん:2005/11/16(水) 13:41:01
IPv6がちゃんとインストールされていないとか
180172:2005/11/16(水) 13:57:15
>>177-179
うわ…。177氏のソースをそのまま動かしてみたところ動きませんでした…。
最後のjava -showversion testの出力結果を載せます。

java version "1.4.2-p7"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-p7-root_20_oct_2005_13_24)
Java HotSpot(TM) Client VM (build 1.4.2-p7-root_20_oct_2005_13_24, mixed mode)

localhost/127.0.0.1

ifconfigの結果を見るとfxp0のinet6にv6アドレスはついてます。(リンクローカルとグローバルの二つ)

>>179
IPv6って明示的に何かをインストールすべきなのでしょうか??
181デフォルトの名無しさん:2005/11/16(水) 14:05:05
>>180
jdk14 を make するときに、WITH_IPV6 してなかったとか?
182172:2005/11/16(水) 14:10:56
>>181
あまり覚えてませんが可能性はありますね…。それって調べる方法あるんですかね?

あともしそれを入れるとしたら一回deinstallしてからreinstallですかね?
183デフォルトの名無しさん:2005/11/16(水) 14:22:40
>>172
明示的にIPV6のほう使ったら?
184デフォルトの名無しさん:2005/11/16(水) 15:24:13
Java初心者ですが、Javaを使って下記の様なメニューリストを作成したいと思っています。

↓こっちのメニュー(リンク)にカーソルを合わせる
┌─┐┌───┐
├─┤│     │
├─┤│     │
├─┤│     │
└─┘└───┘
↑こっちに説明&リンク表示(最初から文章)

<外部CSS>
#left{float:left(以下略)}
#infospace{省略}

<head>〜</head>内
<script language="javascript">
<!--
function p(x) {document.getElementById('text').innerHTML=x;}
-->
</script>

<body>〜</body>内
<div id="menulist"><table><tr><td onmouseover="this.style.backgroundColor='#ffffff'" onmouseout="this.style.backgroundColor=''">
<a href="左側のリンクURL" onMouseOver="p('右側に表示される説明')">左側に表示されるリンク</a></div></td></tr></table>
<div id="infospace">右側のエリアに最初から表示される文章</div>

としたのですが、右側のエリアにリンクを貼る事ができません。

1、左側のメニューは全てリンクです。
2、右側のエリアには最初から説明文を表示させます。
3、左側の各リンクにカーセルを合わせた時に、右側のエリアに説明を表示させ、
なおかつ説明内にリンクを設置したいのです。
185デフォルトの名無しさん:2005/11/16(水) 15:27:15
>>1ミロ
186デフォルトの名無しさん:2005/11/16(水) 15:30:37
板違いでしたか…スミマセンorz
187172:2005/11/16(水) 15:38:51
>>183
すみません、どういう意味ですか??

とりあえず今jdkをインストールしなおしてます…。
portsからmakeしているのですが、オプションにWITH_IPV&というのがありました。
これってmake installするときに指定するものなんですか?それとも途中でオプションの指定画面のようなものが出るのでしょうか?
188デフォルトの名無しさん:2005/11/16(水) 15:49:11
>>187
まずネットワークインターフェースの列挙からしてみたらという意味だ

環境がようわからんのでな
189172:2005/11/16(水) 15:51:48
>>188
なるほど、とりあえず今jdkをdeinstallしてしまったので、また入ったらやり直してみます。
190デフォルトの名無しさん:2005/11/16(水) 15:58:56
deinstallって初めて聞いた
191デフォルトの名無しさん:2005/11/16(水) 16:03:01
>>187
make -DWITH_IPV6=yes とかしときゃよかったような。
jdk14 はオプションの設定画面は出なかったと思われ。
192デフォルトの名無しさん:2005/11/16(水) 16:04:00
>>182
あるのかもしれんが、俺は知らない。
もしあったら教えてくれ。
193デフォルトの名無しさん:2005/11/16(水) 19:34:11
非推奨はアノテーションとJAVADOCの両方に記述すべきですか?
二重記述でなんかいやなんですが…
194デフォルトの名無しさん:2005/11/16(水) 20:02:53
アプレットでゲーム(キーボードイベントを用いて)を造っているのですが、

アプレットビューアでアプレットを起動
    ↓
アプレットの領域内をマウスでクリック
    ↓
キーボードが機能する (キーを入力するとその結果がアプレットに表示される)


領域内をマウスでクリックが嫌だったので、 init(); に setFocusable(true); を追加すると
アプレットビューアでアプレットを起動後、領域内をマウスでクリックしなくてもキーボードは機能してくれました。

その後、インターネット上に、アプレットを公開したのですが
アプレットビューアでは出来たはずの、領域内をマウスでクリックしなくてもキーボードは機能する。が出来ず、
一度領域内をマウスでクリックしなければ、キーボードが機能してくれませんでした。

インターネット上で、アプレットの領域内をマウスでクリックせずにキーボードが機能してくれるようにする
にはどうすればよいでしょうか?

文字が多くてスミマセンでした。
お願いします。
195デフォルトの名無しさん:2005/11/16(水) 20:12:49
すみません、どうしても分からないので質問させてください。
String型の文字列を int 型に直したいのですが。
コンパイルは通りますが、以下のようなエラーが起きます。
エラー箇所は Byte byt = new Byte(str); でエラーが起きているとでます。

java.lang.NumberFormatException : Value out of lange. Value : "250" Radix : 10

ソースは以下のとおりです(切り抜き)

str = strPool.substring(bigin, end);
System.err.println("str = " + str);
Byte byt = new Byte(str);
return byt.intValue();

str は String str; として定義されています。
System.err.println(); によって出力してみたところ、 str には "250" が入っています。
調べてみたところ127以下の数字なら無事変換できるのですが、128以上だと上記のようなエラーが起こります。
あ、ここまで書いて気づいたのですが、もしや Byte って1バイト以上の数字が扱えないから、128以上ではエラーが
起こるのでしょうか?
196デフォルトの名無しさん:2005/11/16(水) 20:16:46
おめでとう
197デフォルトの名無しさん:2005/11/16(水) 20:17:01
byteは-128〜127だ
198デフォルトの名無しさん:2005/11/16(水) 20:43:08
>>195
byte配列にするクラスメンバ関数がStringにあったと思うが。
getBytes()だっけか?
199デフォルトの名無しさん:2005/11/16(水) 20:45:45
>>195
strに"127"を入れてエラーにならなかったら
その仮説で良いと思うけど
200デフォルトの名無しさん:2005/11/16(水) 20:47:44
>>195
なぜ、Byteを使う?
201鯖男:2005/11/16(水) 20:49:06
どなたか教えてください。
マルチクライアント非対応サーバになんとしても接続したい場合

InetSocketAddress socketAddress =
new InetSocketAddress("localhost", 1234);
Socket socket = new Socket();
while ((socket.isConnected()) == false) {
try {
socket.connect(socketAddress,0);
} catch (IOException e) {
System.out.println("未接続");
}
}

のようなコードではダメなのはなぜでしょうか?
202デフォルトの名無しさん:2005/11/16(水) 20:49:30
つーかよintにしたいだけなら

int i = Interger,parseInt(str);

でおわりだろ
203デフォルトの名無しさん:2005/11/16(水) 20:59:54
>>199
仮説って……

http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Byte.html#Byte(java.lang.String)
> 文字列は、基数 10 で parseByte メソッドを使用するのと同じように byte 値に変換されます。

http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Byte.html#parseByte(java.lang.String,%20int)
> 以下に挙げる状況のどれかが発生した場合に、NumberFormatException 型の例外がスローされます。
> ・文字列によって表される値が、byte 型の値ではない
204デフォルトの名無しさん:2005/11/16(水) 21:03:39
つっこむべき所はbiginだと思うの
205デフォルトの名無しさん:2005/11/16(水) 21:10:59
>>204
すげー観察力
206デフォルトの名無しさん:2005/11/16(水) 21:24:51
わざわざByteを使っている理由は、ただ単に私が初心者で
StringをIntにしたいと思い、ドキュメント眺めてたら
たまたま最初にByteをみつけたから使っていました。

>>204
(( ゜д゜))ガーン
スペルミス
207デフォルトの名無しさん:2005/11/16(水) 22:09:05
オートボクシングとか働くから、プリミティブ型とオブジェクト型、あまり区別しなくていいかもね。
多態性で問題が生じることはあるかもしれないけどー。
208デフォルトの名無しさん:2005/11/16(水) 22:10:26
yield文とはどういうものなのですか?
209デフォルトの名無しさん:2005/11/16(水) 22:26:22
210デフォルトの名無しさん:2005/11/16(水) 22:27:31
日本語扱うならbyteが基本だけどな。
Strは入力も出力もUTF-8で統一してないと問題が発生する。
ありがちなのがメール(ISO2022JP)との入出力で問題発生。

SunがUTF-8以外でも非破壊で扱えられる様にStrを拡張してくれないと困る。
211デフォルトの名無しさん:2005/11/16(水) 22:40:22
>>210
UTF-8?
何をお馬鹿なことを書いてる?
Java StringはSJISでもEUCでも何でも扱えるよ
API見直せ
212デフォルトの名無しさん:2005/11/16(水) 22:56:01
>>211
入出力の時に変換しているだけで内部は常にUNICODEだったはず
213デフォルトの名無しさん:2005/11/16(水) 23:03:57
UTF-8で統一しても問題が発生することがあるよ
文字コードとUnicodeのマッピングの関係で
214デフォルトの名無しさん:2005/11/16(水) 23:30:32
つーか、MS932かそれ以外でだな

しかもMS932が一番シェアあるもんだから厄介だという
215189:2005/11/16(水) 23:48:28
レスが遅くなってすみません。javaでWITH_IPV6オプションを入れようとしていたものです。

先ほど一回jdk14をdeinstallしたあと

# make -DWITH_IPV6=yes install

と打ったのですが、177氏のテストプログラムが動きませんでした。(v4アドレスしか出てきませんでした。)とりあえずもう一度jdkをdeinstallしました。WITH_IPV6オプションを指定する方法を色々調べたところ

# make CFLAGS+=WITH_IPV6 install

とあったのですが、これが正しいのでしょうか?
216デフォルトの名無しさん:2005/11/16(水) 23:55:15
>>75
Javaに「タスク」なんて用語なはないのでイマイチ意味があいまいだが
synchronizedで排他しない限り
どのメソッド内(コンストラクタも含む)のコードも別スレッドで同時に
動く可能性はある。
217デフォルトの名無しさん:2005/11/17(木) 00:12:13
超初心者で、今日から始めた者ですが…
コンパイルの時に

警告: この文字は、エンコーディング MS932 にマップできません。
\0 は不正な文字です。

と沢山出て困っています。
全文字を半角に書いた上でやっているのですが…
218デフォルトの名無しさん:2005/11/17(木) 00:14:13
>>201
どなたかお願いします。
219デフォルトの名無しさん:2005/11/17(木) 00:30:08
>>215
FreeBSDは使ってないが、
# make CFLAGS+=-DWITH_IPV6 install
だと思うぞ。
220デフォルトの名無しさん:2005/11/17(木) 00:31:21
>>217
ソースコードをWindowsのメモ帳でUnicodeで保存してないか?
221デフォルトの名無しさん:2005/11/17(木) 00:33:46
>>201
そのコードで動きそうなもんだが、何がダメなんだ?
222デフォルトの名無しさん:2005/11/17(木) 00:34:18
>>215
ちょっと試してみる。

#make clean ; make -DWITH_IPV6=yes patch
===> Cleaning for rpm-3.0.6_10
===> Cleaning for unzip-5.52_2
(中略)
===> Applying extra patch /usr/ports/java/jdk14/files/disable-ipv6.patch
===> Applying FreeBSD patches for jdk-1.4.2p7_2

あ、ダメだ。disable-ipb6.patch が当たってる。

# make clean ; make CFLAGS+=WITH_IPV6 patch
===> Cleaning for rpm-3.0.6_10
===> Cleaning for unzip-5.52_2
(中略)
===> Applying extra patch /usr/ports/java/jdk14/files/disable-ipv6.patch
===> Applying FreeBSD patches for jdk-1.4.2p7_2

これもダメみたい。

#make clean ; make -DWITH_IPV6 patch
===> Cleaning for rpm-3.0.6_10
===> Cleaning for unzip-5.52_2
(中略)
done
===> Applying FreeBSD patches for jdk-1.4.2p7_2

これなら大丈夫っぽい。
223デフォルトの名無しさん:2005/11/17(木) 01:08:52
初心者ですすいません。
org.apache.jasper.JasperException: JSPのクラスをコンパイルできません
理由はなぜなんでしょうか?
224デフォルトの名無しさん:2005/11/17(木) 01:12:43
TreeNode型の変数のノード名をString型で取りたいのですが、
Node型のgetNodeName()の様な関数も見当たらず、お手上げな状態です。
どなたかご教授願えますでしょうか?
225189:2005/11/17(木) 01:14:04
>>222
わざわざありがとうございます!それで今試しているところです。結果がわかり次第また書き込みます。一つ質問があるのですが、make patchということはそれが終わったあとmake installを行うことでインストールが終了するということですよね?
226デフォルトの名無しさん:2005/11/17(木) 01:18:39
org.apache.jasper.JasperException: JSPのクラスをコンパイルできません
なぜですか?
227217:2005/11/17(木) 01:24:23
>>220
ありがとうございます!
ANSIで保存したところ、無事にコンパイルできました。
228デフォルトの名無しさん:2005/11/17(木) 01:31:06
>>223
org.apache.jasper.JasperException: Unable to compile class for JSP
でググれ
229201:2005/11/17(木) 01:40:20
>>221
サーバが他のクライアントと接続を切ってすかさずListenに入って
いるのですが、このコードではwhileを抜けれずループしっぱなし
になるんです。
230c言語初心者:2005/11/17(木) 02:03:48
コマンドライン引数で指定した解像度と明るさのPPM画像ファイルを生成する。
/*

#include <stdio.h>
#include <stdlib.h>
#include “ppm.h” /*PPM画像ファイル処理関数ライブラリ*/

Int main(int argc,char *argv[])
{
FILE *fpout; /*出力ファイルポインタ*/
unsigned char *buf; /*画像データバッファへのポインタ*/
int width; /*画像の幅*/
int height; /*画像の高さ*/
int br; /*画像の明るさ*/
int i,j         /*注目ピクセルの座標(横、縦) */
int k; /*注目ピクセルの先頭からの位置*/
231c言語初心者:2005/11/17(木) 02:12:47
質問というよりプログラムが長いのでいくつかに分けて書き込みます。
下記の二つのプログラムをまとめて一つにするには、どうしたらよいですか?
/*
コマンドライン引数で指定した解像度と明るさのPPM画像ファイルを生成する。
/*

#include <stdio.h>
#include <stdlib.h>
#include “ppm.h” /*PPM画像ファイル処理関数ライブラリ*/

Int main(int argc,char *argv[])
{
FILE *fpout; /*出力ファイルポインタ*/
unsigned char *buf; /*画像データバッファへのポインタ*/
int width; /*画像の幅*/
int height; /*画像の高さ*/
int br; /*画像の明るさ*/
int i,j         /*注目ピクセルの座標(横、縦) */
int k; /*注目ピクセルの先頭からの位置*/
232c言語初心者:2005/11/17(木) 02:13:38
/*コマンドライン引数の個数チェック*/
if(argc<5){
printf(“Usage:%s<outfile><width><height><bright>\n”,argv[0]);
exit(0);
}

/*コマンドライン引数で指定されたファイルをバイナリ書き込みモードでオープン*/
if(NULL==(fpout = fopen(argv[1],”wb”))){
printf(“%sをオープンできません\n”,argv[1]);
exit(-1);
}

/*画像の横幅を取得*/
Sscanf(argv[2],”%d”,&width);

  if(width <=0){
printf(“画像の横幅の指定が不正です\n”);
exit(-1);
}

/*画像の高さを取得*/
sscanf(argv[3],”%d”,&height);
if(height <=0){
printf(“画像の高さの指定が不正です\n”);
exit(-1);
233c言語初心者:2005/11/17(木) 02:15:23
}
/*画像データバッファを取得*/
if(NULL==(buf = malloc(width*height*3*sizeof(unsigned char)))){
printf(“画像データバッファの取得に失敗しました\n”);
exit(-1);
}

/*画像データバッファに画像データを書き込む*/
for(j = 0;j < height; j++){
for(i = 0; i <width; i++){
k = (i+j*width)*3;
buf[k+0] =(unsigned char)br;
buf[k+1] =(unsigned char)br;
buf[k+2] =(unsigned char)br;
}
}

234c言語初心者:2005/11/17(木) 02:16:23
/*PPMヘッダーをファイルに出力*/
put_ppm_header(fpout,width,height,PPM_DEPTH);

/*画像データバッファの内容をファイルに出力*/
fwrite(buf,width*height*3*sizeof(unsigned char),1,fpout);

/*画像データバッファを解放*/
free(buf);

/*ファイルクローズ*/
fclose(fpout);


retrun0;
ここまでが一つで、
235c言語初心者2:2005/11/17(木) 02:20:22
/*
PPM画像の平均輝度を算出する。
*/


#include <stdio.h>
#include <stdlib.h>
#include “ppm.h” /*PPM画像ファイル処理関数ライブラリ*/

/*ピクセルのRGB各要素から,輝度を求める*/
int brightness(unsigned char *dat)
{
unsigned int r,g,b;
unsigned int br; /*ピクセルの輝度*/

r=(unsigned int)dat[0];
g=(unsigned int)dat[1];
b=(unsigned int)dat[2];

br=(77*r+151*g+28*b)/256;

return(int)br;
}
236c言語初心者2:2005/11/17(木) 02:22:36
r=(unsigned int)dat[0];
g=(unsigned int)dat[1];
b=(unsigned int)dat[2];

br=(77*r+151*g+28*b)/256;

return(int)br;
}

Int main(int argc,char*argv[])
{
FILE*fpin; /*入力ファイルポインタ*/
unsigned char*buf; /*画像データバッファへのポインタ*/
int header_len; /*画像データのヘッダのバイト数*/
int width; /*画像の幅*/
237c言語初心者2:2005/11/17(木) 02:23:50
int height; /*画像の高さ*/
int depth; /*画像のデータ最大値*/
int br; /*ピクセルの輝度*/
int sum; /*輝度値の合計*/
double br_mean; /*平均輝度*/
int i,j; /*注目ピクセルの座標(横、縦)*/
int k; /*注目ピクセルの先頭からの位置*/

/*コマンドライン引数の個数チェック*/
if(argc<2){
printf(“Usage:%s<infile>\n”,argv[0]);
exit(0);
}

/*入力ファイルをバイナリ読み取りモードでオープン*/
if(NULL==(fpin = fopen(argv[1],”rb”))){
printf(“%sをオープンできません\n”,argv[1]);
exit(-1);
}
238c言語初心者2:2005/11/17(木) 02:24:44
/*入力ファイルのヘッダ情報を取得*/
header_len = read_ppm_header(fpin,&width,&height,&depth);
/*ヘッダが不正な場合は終了*/
if(header_len < 0){
printf(“入力ファイルのヘッダが不正です\n”);
exit(-1);
}

/*画像データバッファを取得*/
in(NULL==(buf = malloc(width*height*3*sizeof(unsigned char)))){
printf(“画像データバッファの取得に失敗しました\n”);
exit(-1);
}

/*画像データの本体をバッファに読み込む*/
fseek(fpin,header_len,SEEK_SET); /*ヘッダの分だけ飛ばす*/
fread(buf,width*height*3*sizeof(unsigned char),1,fpin);

239c言語初心者2:2005/11/17(木) 02:25:47
/*バッファ内の画像データの平均輝度を求める*/
sum = 0;
for(j = 0;j < height;j++){
for(i = 0;j < width;i++){
k = (i+j*width)*3; /*j行i列のピクセルはkバイト目*/
br = brightness(buf+k);/*該当ピクセルの輝度*/
sum += br; /*輝度値の総和*/
}
}
br_mean =(double)sum/(double)(width*height);

/*平均輝度を表示する*/
printf(“%sの平均輝度:%lf\n”,argv[1],br_mean);

/*画像データ用バッファを解放*/
free(buf);

/*ファイルクローズ*/
fclose(fpin);

return0;
}
240c言語初心者2:2005/11/17(木) 02:27:24
/*バッファ内の画像データの平均輝度を求める*/
sum = 0;
for(j = 0;j < height;j++){
for(i = 0;j < width;i++){
k = (i+j*width)*3; /*j行i列のピクセルはkバイト目*/
br = brightness(buf+k);/*該当ピクセルの輝度*/
sum += br; /*輝度値の総和*/
}
}
br_mean =(double)sum/(double)(width*height);

/*平均輝度を表示する*/
printf(“%sの平均輝度:%lf\n”,argv[1],br_mean);

/*画像データ用バッファを解放*/
free(buf);

/*ファイルクローズ*/
fclose(fpin);

return0;
}
の二つです。長すぎて面倒だと思いますがどなたかお願いします。
241デフォルトの名無しさん:2005/11/17(木) 02:29:40
>>230-240
スレタイよく見ろ
スレ違いで10レス消費かよ…
242デフォルトの名無しさん:2005/11/17(木) 03:01:37
>>230
Javaで全部書き直せ。話はそれからだw
243デフォルトの名無しさん:2005/11/17(木) 06:23:09
MS932って日本語対応してないような。。。

宿題の丸投げかよ(w
244デフォルトの名無しさん:2005/11/17(木) 10:12:38
オブジェクトを丸々コピーするにはどうしたらよいでしょうか?

Hoge a = new Hoge();
Hoge b = new Hoge();

a = b; //これではだめですよね?

a.copyFrom(b); //こんな感じで中身もコピーしたいのですが・・・
245デフォルトの名無しさん:2005/11/17(木) 10:22:52
>>244
cloneメソッドを自分でオーバーライド
246デフォルトの名無しさん:2005/11/17(木) 10:24:58
> MS932って日本語対応してないような。。。
> MS932って日本語対応してないような。。。
> MS932って日本語対応してないような。。。
> MS932って日本語対応してないような。。。
> MS932って日本語対応してないような。。。
> MS932って日本語対応してないような。。。
> MS932って日本語対応してないような。。。

247デフォルトの名無しさん:2005/11/17(木) 10:27:54
>>244
"ディープコピー"でぐぐれ。
248225:2005/11/17(木) 11:13:15
JAVAでIPv6プログラミングをしたいと言っていて、WITH_IPV6パッチを当てていたものですw

ようやくできました!!どうやら正解は>>222氏の

# make clean ; make CFLAGS+=WITH_IPV6 patch ; make install

みたいです。これでインストールしなおしたら>>177氏のテストプログラムが正しく動くようになりました。
長い間レスしてくださったみなさん、本当にありがとうございました!
249デフォルトの名無しさん:2005/11/17(木) 11:29:04
自ら作成したbyte[]をzip圧縮し、ファイルにではなく
新たなbyte[]の変数へ置き換えようと思います。
(byte[] planeByteArray →圧縮しサイズ抑制→ byte[] zipedByteArray)

zipファイルは作成する必要がなく、byte[]データの圧縮のみ行えればよいのですが、
ZipEntryクラスのインスタンスを生成する時に指定する、コンストラクタの
引数(ファイル名)は適当な文字列を入れてよいのでしょうか?

それともZipEntryを使わずにデータのみzip圧縮が可能なのでしょうか?
250デフォルトの名無しさん:2005/11/17(木) 11:35:06
>>249
適当な名前
251デフォルトの名無しさん:2005/11/17(木) 11:40:13
>>249
圧縮したいだけ(zipとの互換性いらない)なら、GZIPOutputStream使えば?

蛇足:
plane -> plain
ziped -> zipped
だと思われる。
252デフォルトの名無しさん:2005/11/17(木) 11:41:47
>>250
無能回答者ひっこめ
253249:2005/11/17(木) 11:54:33
>>251さん
要求メッセージの一部に圧縮データを付加、応答メッセージには圧縮データを
そのまま乗せてもらい解凍するので、内部で扱えれば問題ない(zip互換必要なし)です。

GZIPOutputStreamは考慮してませんでした。ありがとうございます調べてみます。

>>250,>>252さん
現在は適当にzent = new ZipEntry("test.zip");のようにして使っています。
さすがにこれは自分でもどうかと思っていたところです。
254249:2005/11/17(木) 11:55:33
スペルミスの指摘もありがとうございます(^^;
255デフォルトの名無しさん:2005/11/17(木) 12:04:30
>>224
JTreeに限らずSwingはtoString()をデフォで表示するという特徴がある
つまり、実装クラスがStringならそのまま文字列なのだがそれ以外もありえるので
文字列とは限らない

ノード名を取得すると考えずに
DefaultMutableTreeNodeをつかってユーザーオブジェクトのセットをしたほうがらくだと思われ
そのユーザーオブジェクトにStringいれてもいいしコレクションだろうがBeansだろうが自由にすればいい

リストボックスだろうがテーブルだろうがコンボボックスだろうが、入るのはクラス
これがSwingの楽な点でもある
256デフォルトの名無しさん:2005/11/17(木) 12:19:07
>>252
じゃあ、どうしたらいいの?
257デフォルトの名無しさん:2005/11/17(木) 13:39:45
String a;
String b;

a="a";
b="b";

a=b;

とするとaに"b"が入りますか?
それともaがbを指すだけですか?
258デフォルトの名無しさん:2005/11/17(木) 13:55:36
>>257
a が、そのとき b が参照していたもの(この場合は"b")を参照するようになる。
259デフォルトの名無しさん:2005/11/17(木) 14:06:49
>>258
さんくす。やっぱりそうですよねー
中身をコピーしたい場合はどうすればよいでしょうか・
260デフォルトの名無しさん:2005/11/17(木) 14:09:00
>>259
a = new String( b );
261デフォルトの名無しさん:2005/11/17(木) 14:09:24
>>257=>>244なら相当頭が逝かれてるな
262デフォルトの名無しさん:2005/11/17(木) 14:13:29
>>260
さんくす。

>>261
そのとおりです。すみません。

ちなみにDate型はどうやってコピーすればよいでしょうか?
263デフォルトの名無しさん:2005/11/17(木) 14:15:27
>>262
Date date2 = (Date)date1.clone();
264デフォルトの名無しさん:2005/11/17(木) 14:17:47
>>263
ありがとうございます。
なるほど。キャストしないといけなかったですか。
265224:2005/11/17(木) 15:22:45
>>255さん
貴重なお時間を使っての回答ありがとうございます。
Node型とTreeNode型で互換性が無さそうだったので、
DefaultMutableTreeNode型もそうなのかとスルーしていたのですが、
ダメ元でTreeNode型の変数をDefaultMutableTreeNode型に型キャストして
toString()をかけたらノード名が出てきました。
>>255さんのおかげです。本当にありがとうございました。
266デフォルトの名無しさん:2005/11/17(木) 15:40:01
>>244はString とその他のクラス(とプリミティブ型)の違いを理解できなくていずれ嵌るんだろうな。

散々がいしゅつなねただが・・・。
267デフォルトの名無しさん:2005/11/17(木) 15:41:37
>>265
ほかにもDefaultなんちゃら〜ってのがたくさんあるけど
Swingは標準でそれ使ってる
逆にこれらを継承していったり実装していけばいい

ソースコードをみるとこの辺わかるよ
Swing部分のソースコードは分かりやすいから斜め読みしてみるといい

API見るときは既知の実装されたクラスとかのリンクみるといいよ
268デフォルトの名無しさん:2005/11/17(木) 15:46:43
>>266
理解してますよ!
269デフォルトの名無しさん:2005/11/17(木) 16:24:00
if (obj instanceof Foo)
で obj が Foo クラスのインスタンスかどうか調べることができますが、
この Foo を実行時に指定するにはどうしたらいいでしょうか。
つまりコンパイル時には Foo というクラス名がわからなくて、設定ファイルなどからクラス名を読み取った場合などです。

ついでに
try { ... } catch (Excetion ex) { ... }
で Exception のクラスを実行時に指定する方法も教えてください。
270デフォルトの名無しさん:2005/11/17(木) 16:34:28
>>289
1つめ:
obj.getClass() == {Foo}.getClass() で、とりあえず同じクラスかどうかは分かる。
instanceofと同じ動作なら、{Foo}.getClass().getInterfaces() .getSuperclass()とかで
じっくり追いかければ判断は可能。
リフレクションとか使うともっと簡単にできるのかな。
そもそもこんな処理をしないように書けるんじゃないか?

2つめ:
無理
271270:2005/11/17(木) 16:35:32
訂正

x {Foo}.getClass().getInterfaces() .getSuperclass()
o obj.getClass().getInterfaces() .getSuperclass()
272デフォルトの名無しさん:2005/11/17(木) 16:35:33
>>269
両方とも無理。
前者は Class#isInstance(Object) とか Class#isAssignableFrom(Class) とかで代用可能。
後者をやろうとすると、実行時にバイトコードいじるしかなさそう。

try{
 //いろいろ
}catch(Exception ex){
 if(HogeException.class.isInstance(ex)){
  //こっちは良いとしても
 }else{
  //こっちはどーしよーもない。
  //throw ex;するには throws Exception しなきゃあかんし
  //握りつぶすのもいかんだろ。
 }
}
273デフォルトの名無しさん:2005/11/17(木) 18:26:50
public class RaceDemo {

private final static int NUMRUNNERS = 2;

public static void main(String[] args) {
SelfishRunner[] runners = new SelfishRunner[NUMRUNNERS];

for (int i = 0; i < NUMRUNNERS; i++) {
runners[i] = new SelfishRunner(i);
runners[i].setPriority(2);
}
for (int i = 0; i < NUMRUNNERS; i++)
runners[i].start();
}
}

↑をコンパイルしようとすると「シンボルを解釈処理できません」と出るのですが
  どこがいけないのでしょうか?
274デフォルトの名無しさん:2005/11/17(木) 18:31:01
>instanceofと同じ動作なら、{Foo}.getClass().getInterfaces() .getSuperclass()とかで じっくり追いかければ判断は可能。
275デフォルトの名無しさん:2005/11/17(木) 18:42:08
>>273
SelfishRunnerクラスはどこにあるのだ?
276デフォルトの名無しさん:2005/11/17(木) 18:43:12
>>273

>for (int i = 0; i < NUMRUNNERS; i++)

行末に { がないけどコピペミスなのかどうなのか・・・・
277デフォルトの名無しさん:2005/11/17(木) 18:47:24
>>273
SelfishRunner というクラスは java.lang.Thread をextends してるかな。
278デフォルトの名無しさん:2005/11/17(木) 18:52:53
>>273
クラスパスが指定できてないんだろ
279デフォルトの名無しさん:2005/11/17(木) 19:12:48
エスパー募集かよ
280デフォルトの名無しさん:2005/11/17(木) 19:18:34
エスパー伊藤:はい〜
281デフォルトの名無しさん:2005/11/17(木) 19:38:01
初期化つきインスタンスフィールドについてなのですが、
必ず上から下に向かって初期化が実行されるという保証はないのでしょうか?
(初期化のために下で宣言されている変数を使用してはいけない
というのはわかったのですが)

例えば下の様なコードがあった場合、x生成のコンストラクタには0が
引数に渡されて、y生成時には1が渡される保証はないのでしょうか?

class Foo {
 private int i = 0;
 private Bar x = new Bar(i++);
 private Bar y = new Bar(i++);
  :
}
282デフォルトの名無しさん:2005/11/17(木) 19:43:59
>>281
Fooのコンストラクタ内でやれば問題ないだろ
283デフォルトの名無しさん :2005/11/17(木) 19:49:01
import java.util.Formatter;
public class PrintfTest {
public static void main(String[] args) throws IOException {
int nn=1234;
String ss="abcd";
Formatter fmt=new Formatter();
fmt.format("nn=%d ss=%s\n",nn,ss); //7行目
System.out.println(fmt);
}
}
上のプログラムの7行目で、Eclipseにformatメソッドの引数の型が
違うといわれますが、どう直せばいいでしょうか?
お願いします。
284デフォルトの名無しさん:2005/11/17(木) 19:49:35
>>281
保証されてる。

http://www.y-adagio.com/public/standards/tr_javalang2/execution.doc.html#44670
> 4. このクラスに対するインスタンス初期化子及びインスタンス変数初期化子を実行し,
>  そのクラスのソースコードにおいて,字句的に出現する左から右の順番で,
>  インスタンス変数初期化子の値を対応するインスタンス変数に代入する。
285デフォルトの名無しさん:2005/11/17(木) 19:58:02
>>283
nnをIntegerに汁
286デフォルトの名無しさん:2005/11/17(木) 20:02:13
>>284
ありがとうございます。安心しました。
そんなところに書かれていたんですね。
287デフォルトの名無しさん:2005/11/17(木) 20:06:46
>>283
Window -> Preferences -> Java -> Compiler -> Compiler compliance level を 5.0 にすれ
日本語化してる場合は ウィンドウ -> 設定 -> Java -> コンパイラー -> コンパイラー準拠レベル

JRE が 5.0 でも Eclipse 内蔵コンパイラの Compiler compliance level が 1.4 だと
可変長引数は使えない。
288& ◆664NoHulD2 :2005/11/17(木) 20:22:54
>>287
ピンポイント!!
うまくできました。
全くそのとおりでした。本当にありがとう。
285さんもありがとう。
289デフォルトの名無しさん:2005/11/17(木) 21:41:17
初心者です。コンパイルはできるのですが、うまくいかないのはどうしてですか?
お願いします。
import java.applet.*;
import java.io.*;
import javax.swing.*;

public class test2 extends JApplet{
public void init(){
try{
FileWriter out = new FileWriter("aiueo.txt");
out.write("aiueo");
out.close();
}
catch(IOException e){}
}
}
290しろ:2005/11/17(木) 21:44:11
for文で画像の連続やってるんですが、どうしても連続にならないんですけど?
ひとつしか表示されません。
291デフォルトの名無しさん:2005/11/17(木) 21:51:13
Javaって変数名に日本語使えるんだ・・・
Javaソースファイルを書くときに、変数名を日本語にしている人って
いないですよね?
292デフォルトの名無しさん:2005/11/17(木) 21:53:13
>>290
さっぱり意味不明

>>291
書籍や雑誌のサンプルだと結構あるね
仕事でそれやってる人はいないと思うけどね
293デフォルトの名無しさん:2005/11/17(木) 21:53:48
>>289
何がどうウマくいかないのか
294デフォルトの名無しさん:2005/11/17(木) 21:59:38
実行しようとすると、アプレットは初期化されていません。とでて、
コマンドプロンプトのほうには
java.security.AccessControlException:
access denied(java.io.FilePermission aiueo.txt write)
とかが出てきます。
295デフォルトの名無しさん:2005/11/17(木) 22:02:52
>>294
つーかaiueo.txtってもちろん存在するんだよな?
296292:2005/11/17(木) 22:04:31
お〜、いきなりレスが・・・

> 書籍や雑誌のサンプルだと結構あるね

Javaを勉強して2日目ですが、いきなりのビックリです・・・

> 仕事でそれやってる人はいないと思うけどね

やっぱりそうですよね。VBも変数名とかに日本語が使えるという話を
聞いたことがありますが、さすがに日本語で変数名とか付ける人は
めったにいないですよね・・・
297291:2005/11/17(木) 22:05:15
すいません。↑の名前はは292ではなく、291です。
ごめんなさい・・・
298デフォルトの名無しさん:2005/11/17(木) 22:06:33
>>295
その辺も試したのですが、あるないに関わらず同じエラーがでました。
299デフォルトの名無しさん:2005/11/17(木) 22:08:00
どなたか教えてください。
マルチクライアント非対応サーバになんとしても接続したい場合
InetSocketAddress socketAddress =
new InetSocketAddress("localhost", 1234);
Socket socket = new Socket();
while ((socket.isConnected()) == false) {
try {
socket.connect(socketAddress,0);
} catch (Exception e) {
System.out.println("未接続");
}
}
ではなぜダメなのでしょう?
サーバが他のクライアントと接続を切ってすかさず接続待ちの状態
に入っているのですが、このコードではwhileを抜けれずループしっ
ぱなしになるんです。
300デフォルトの名無しさん:2005/11/17(木) 22:17:19
>>298
まぁアプレットの制限を調べてから
プログラム書こうよね
301デフォルトの名無しさん:2005/11/17(木) 22:20:10
>>291
public class クラス { public static クラス オブジェクト = new クラス();}
302デフォルトの名無しさん:2005/11/17(木) 22:21:28
java使いって落ち着きが無いよね
303デフォルトの名無しさん:2005/11/17(木) 22:26:25
sdk 落とせ寝ーぞ
今sunにアクセスしてみ。
じぇんじぇんDLできねーから。
http://java.com/ja/download/manual.jsp
304じぇぬろーく ◆RyJENULLoQ :2005/11/17(木) 23:13:55
ttp://java.sun.com/j2se/1.5.0/ja/download.html
じゃなくて?

まぁ、今こっちも重いが。
305デフォルトの名無しさん:2005/11/17(木) 23:54:37
質問です。
JavaMail API を使ってメール送信が出来るプログラムを作ったのですが、
jarにすると動きません(javaコマンドだったら動きます)。
JavaMail API を使っているクラスのコンストラクタ呼び出しで固まって
しまっているようです。
どうしたらいいんでしょうか
306デフォルトの名無しさん:2005/11/18(金) 00:06:15
>>305
これが原因じゃないか?

http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/windows/java.html#-jar
> このオプションを使用すると、指定した JAR ファイルがすべてのユーザクラスのソースになり、
> ユーザクラスパスのほかの設定は無視されます。
307デフォルトの名無しさん:2005/11/18(金) 00:07:00
どうかたまるんだよ
コマンドラインからやるのとjarであることとは関係ないぞ
308305:2005/11/18(金) 00:56:17
>>306
ありがとうございます。
java -jar で動かしてみたら NoClassDefFoundErrorが出ていました
>>307 今までjarファイルダブルクリックで起動していたもので)

となると…jarから起動させたい場合はどうしたらいいんでしょうか。
よろしくお願いします
309デフォルトの名無しさん:2005/11/18(金) 01:11:29
クラスパス入れてないだけかよ
310305:2005/11/18(金) 01:35:11
>>309
クラスパス、環境変数には設定していたんですが…

頂いたヒントを元に調べたところ
ttp://www.fk.urban.ne.jp/home/kishida/kouza/old/javajar.html
↑に分かりやすくまとめてありました。
結構ややこしいところみたいですね、ありがとうございました。
311デフォルトの名無しさん:2005/11/18(金) 09:34:10
以下のプログラムを実行しようとしてもNoSuchMethodErrorが出てしまいます
どうすれば解決するのか教えてください

public class TwoThreadsDemo {
public static void main (String[] args) {
new SimpleThread("Jamaica").start();
new SimpleThread("Fiji").start();
}
}

public class SimpleThread extends Thread {
public SimpleThread(String str) {
super(str);
}
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println(i + " " + getName());
try {
sleep((int)(Math.random() * 1000));
} catch (InterruptedException e) {}
}
System.out.println("DONE! " + getName());
}
}

312デフォルトの名無しさん:2005/11/18(金) 11:35:55
文字コードについて悩んでいます。

FileInputStream inReader = new FileInputStream(args[0]);
BufferedReader bufReader = new BufferedReader(new InputStreamReader(inReader, "えんこーど"));

として、一行一行
で読んでは、書き(ISO2022JP)というだけのプログラムなのですが、
入力で何を指定しても
inline = bufReader.readLine(); で止まってしまうのです。必ずというわけではありません。
何処かの行で止まり、とまる行はファイルと転送モードが同じであれば、毎回同じ行で止まります。
(アスキー転送でもバイナリ転送でも、どちらでも発生しますが、止まる部分は違います。)

前提として、Windowsからfedoraに転送したものを読み込みます。

苦肉の策で、iconvを使用して、Shift-JISからいったんUTF-8に変換し
UTF-8として読み込んでいます。
しかし、毎回事前にiconvを走らせるのは面倒ですし、いろんなミスの不安が付きまといます。
それ以前に、どの程度iconvが信頼できるのかわかりません。fromをShit-JISとひとくくりに
扱ってる所も不安です。
どうにかJava内だけで対応出来ないでしょうか。
313デフォルトの名無しさん:2005/11/18(金) 12:39:42
>アスキー転送でもバイナリ転送でも
なんだそりゃ
314デフォルトの名無しさん:2005/11/18(金) 12:48:46
多分、FTP でサーバにアップして、
そのサーバで当該プログラムを実行している、ということなんだろう。

エンコードはあってるの?
バイナリデータをダンプするなり、バイナリエディタで開いて確認したりしてみた?

※Reader でないものを inReader などと名付けるのが気色悪い。
 inStream とかにしたらどうよ。
315デフォルトの名無しさん:2005/11/18(金) 12:51:02
>>312

・「止まる」というのが文字通りプログラムがそこでフリーズするのか、
それとも例外でも投げられるのか。
・InputStreamのまま読んでみるとぜんぶ読めるのかどうか。
・一番重要な "えんこーど" というのが "Shift_JIS" なのか
"Windows-31J" なのか。
316デフォルトの名無しさん:2005/11/18(金) 12:51:18
>>311
どこでNoSuchMethodErrorが出ているのかな?
317デフォルトの名無しさん:2005/11/18(金) 12:53:46
--- チラシの裏 ---
最近、基本がなってない質問が多いのは
卒研が本格的になってきたからな
318デフォルトの名無しさん:2005/11/18(金) 12:55:22
>>311
NoSuchMethodError は、
コンパイル時の環境(ライブラリパスなど)より実行時の環境が古い時などに起こる。
自作のクラスの古い class ファイルが残ってたり、
JDK と JRE のバージョンが違ってないかチェック。
319312:2005/11/18(金) 14:12:10
>>314
そうです。一番大事な所が説明不足でした。すいません。
FTPもしくはJavaのFileUploadでテキストファイルをアップロードしています。
(FileUploadはバイナリ転送なので、FTPでアップロードした場合と同じ所で止まります)

エンコードには何を指定しても、止まってしまいます。

>>315
例外無しでフリーズします。
InputStreamのまま読むのも試してみます。
"えんこーど"には何を指定してもダメでした。
320デフォルトの名無しさん:2005/11/18(金) 14:23:16
"2005/11/18"という文字列からDate型の変数を作りたいのですが
どのようなコーディングになりますでしょうか?
よろしくお願いします。
321デフォルトの名無しさん:2005/11/18(金) 14:42:55
322デフォルトの名無しさん:2005/11/18(金) 15:01:18
どなたか知っていれば教えてくだされ。

製品を jar として納品しますが、ソースは納品しません。
そこで、jar 使用時に例外が発生した場合、スタックトレース内にソースの情報を含めたくないのです。
例えば下↓の文の場合、3:だけは表示したくないのです。

1:java.sql.SQLException: No suitable driver
2: at java.sql.DriverManager.getDriver(Unknown Source)
3: at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:743)

利用者側のソース情報が表示される分には何の問題もありません。
jar のオプションでできるのでしょうか。
それとも StackTraceElement を加工するしかないのでしょうか。
323デフォルトの名無しさん:2005/11/18(金) 15:07:38
>>322
コンパイル時のオプション。デバッグモードオフでコンパイル汁
324デフォルトの名無しさん:2005/11/18(金) 15:14:10
>>321
解析も出来るんだ
325デフォルトの名無しさん:2005/11/18(金) 15:16:16
>>321
ありがとうございます。できました。
326デフォルトの名無しさん:2005/11/18(金) 15:26:09
2つのjavax.sql.RowSetをひとつのトランザクションとして一まとめに処理したい場合って
どうするのですか?

327322:2005/11/18(金) 15:31:00
>>323
ありがとうございます。

情報が不足していたので補足します。
納品するのは「デバッグモードオフで実行するアプリ」ではなく、
開発者が使用する「クラスライブラリ」なのです。
なので開発者がデバッグモードのときでも非表示としたいのが目的です。

323さんのご指摘で実現できる方法があれば是非おしえてください。

328デフォルトの名無しさん:2005/11/18(金) 15:52:13
>>317
確かにこの時期APIマニュアルも読んでないのが多いんだよな
あとは基本的な言語使用とか
329デフォルトの名無しさん:2005/11/18(金) 17:56:19
>>327
よく読めよ。
330デフォルトの名無しさん:2005/11/18(金) 18:00:41
>>327
Javaってインタプリタって知ってる?
バイトコードを展開すればソース取れるんだが。
331322:2005/11/18(金) 18:17:37
知りません、知るつもりも無いですが
javaなんて本当は使いたくないのに
332322:2005/11/18(金) 18:21:20
ヤりません、ヤるつもりも無いですが
セックスなんて本当はヤりたくないのに
333デフォルトの名無しさん:2005/11/18(金) 18:22:20
>>332
童貞乙
334デフォルトの名無しさん:2005/11/18(金) 18:47:12
テキストファイルを読み込まずに何行あるか分かるメソッドないですか?
やっぱり一度読み込んでカウントするしかないんですかね。
335デフォルトの名無しさん:2005/11/18(金) 18:50:18
>>334
まず、行の概念を勉強した方が良いな
336デフォルトの名無しさん:2005/11/18(金) 18:57:11
>>334
実際に、どういった場合かを書いた方が良いと思うよ。
337デフォルトの名無しさん:2005/11/18(金) 19:48:43
>>336
きっとこういった場合だと思うよ。

String[] lines = new String[file.getLines()];

ただただ配列に入れたいだけ。
338334:2005/11/18(金) 19:58:41
テキストファイルのファイル名に、
行数を埋め込むようにすることで、実現できました。
339デフォルトの名無しさん:2005/11/18(金) 20:01:52
仕様でカバーできるならそれでもいいんじゃないかな

俺ならファイル名には格納せんが
340デフォルトの名無しさん:2005/11/18(金) 20:18:01
>>331
Javaも使いこなせないようでは
この先仕事は無いぞ
341デフォルトの名無しさん:2005/11/18(金) 21:13:54
>>334
そんなメソッドどんな言語でも実現不可能
342デフォルトの名無しさん:2005/11/18(金) 22:13:29
>>341
読み込む処理を自分で書かずに、だったら実現できそうだけど。
commons io 使えば FileUtils.readLines(file, encoding).size() で取れるし。
343デフォルトの名無しさん:2005/11/18(金) 22:35:11
>>334
APIドキュメントぐらい読めよ。
344デフォルトの名無しさん:2005/11/18(金) 23:04:06
Javaアプレットかサーブレットで書かれた掲示板とかご存知の方いないでしょうか?
あまり複雑な物じゃなくて自分でソース書き加えてカスタマイズ可能な物ならなお嬉しいのですけど
345デフォルトの名無しさん:2005/11/18(金) 23:53:35
自作した方が早いな。めどいけど。
346デフォルトの名無しさん:2005/11/18(金) 23:57:45
サーブレットの自作なら簡単だが、レンタルで設置する環境が少ない。
アプレットも最新のJDKを使えば余裕で作れるが、1.1しか使っちゃいけないみたいな空気。
347デフォルトの名無しさん:2005/11/19(土) 00:32:30
Javaってインタプリタって知ってる?
バイトコードを展開すればソース取れるんだが。
348デフォルトの名無しさん:2005/11/19(土) 00:34:43
知ってるけどそれが何か?
ネイティブだって逆コンパイルできますよ。
349デフォルトの名無しさん:2005/11/19(土) 00:38:23
いや、俺は醤油派だし
350デフォルトの名無しさん:2005/11/19(土) 01:10:28
ServerSocketでポートをオープンして
そのポートに来た通信をすべて特定の他のマシンのポートへ転送。
他のマシンからの返信もそのままソースへ戻す

単にTCP通信を転送するだけのプログラムってどうすりゃいい?
351デフォルトの名無しさん:2005/11/19(土) 01:17:53
>>350
accept()したらスレッド起こして他のマシンへTCP接続
→「キタ通信を読んで他のマシンへの接続に書く」を「キタ通信」が
 切れるまでくり返す。

というかJavaの課題か、それ?
352344:2005/11/19(土) 01:22:27
サーブレットなら自前で動かす環境はあるのですが、
どうも最初から作るのが面倒なので、適当な物無いかと探してます。
自分でカスタムするといっても、登録メンバーに投稿内容をメールで転送したいと思う程度なので
掲示板としてある程度完成したものでも構いません。
使い方としてはグループウェア的な感じで使おうかと思ってます。

やっぱり最初から自作の方が早いですかねぇ
353デフォルトの名無しさん:2005/11/19(土) 01:27:51
掲示板程度ならJSPベタでもぜんぜん行ける。
ちょい時間を投資する余裕があるなら、Struts+Velocityあたりがオススメ。
メール転送機能のこと考えるとVelocityの整形機能はアプリの質を上げてくれるはずだよ。
354デフォルトの名無しさん:2005/11/19(土) 01:55:06
掲示板程度JSP+Beansとかのベタのほうがいいかと
JSPはEL使えるし楽チン
355デフォルトの名無しさん:2005/11/19(土) 01:56:18
掲示板の整形とメールの整形が同じ手法でできるならそっちのが楽じゃねーの?
356デフォルトの名無しさん:2005/11/19(土) 08:00:33
質問です
よくJSPで、HTML部とプログラム部は分けなさい、と言われますが、それは初めに一気に処理をしてそれから出力しろということですか?
Perlの癖があって、感じがつかめません
357デフォルトの名無しさん:2005/11/19(土) 08:22:31
そういうこと
358デフォルトの名無しさん:2005/11/19(土) 09:17:03
PerlだってHTMLとプログラムが入り混じってたら最悪だろ
359デフォルトの名無しさん:2005/11/19(土) 10:50:20
jarコマンドについてですが、
foo.jarとbar.jarがあって、これを解凍後に再度hoge.jarとして
一つにアーカイブしたいのですが、jarコマンドで可能でしょうか?
jarファイル数は任意で、ファイル名はワイルドカードを指定したいです。

jar -xvf *.jar rem 解凍
jar -cvf hoge.jar -C . . rem 圧縮

batファイルで上記を考えたのですが、なぜか解凍が
実行できないです。

同一ディレクトリにあるjarファイルを一度に解凍するのは
無理なのでしょうか?
ANTじゃないと厳しいでしょうか。
360デフォルトの名無しさん:2005/11/19(土) 11:02:14
for %%j in (*.jar) do jar -xvf %%j
361デフォルトの名無しさん:2005/11/19(土) 11:06:55
>>359
forを使えばできるよ
for %I in ("*.jar") do jar -xvf %I
362デフォルトの名無しさん:2005/11/19(土) 11:38:40
>>344
JSP掲示板で検索せよ
363デフォルトの名無しさん:2005/11/19(土) 11:39:22
>>346
> サーブレットの自作なら簡単だが、レンタルで設置する環境が少ない。

自宅でLinuxなどをインストールしてサーバを構築せよ
364デフォルトの名無しさん:2005/11/19(土) 11:45:50
>>359
EclipseのfatJarプラグインを使うと
そういうことが非常に楽にできるぞ
365359:2005/11/19(土) 14:18:28
>>360 >>361
センキュー!できたよ。
ただ、jardescとかわけのわからんファイルができるが何これ?
ほっといてOK?

>>364
これまた簡単! 今回はbatにするけど、いいですね。
366デフォルトの名無しさん:2005/11/19(土) 16:32:04
java で、プロセス間の排他制御をやる方法って、
最新のバージョンならFibber・・・・なるクラスを使えば
良いみたいだけど、昔のjava(1.1とか、1.2とか)バージョンの場合、
どうするの?
 Thread間ならsyncronizedでいけるのは、分かっているんだけど、
 教えて。
367デフォルトの名無しさん:2005/11/19(土) 16:33:45
最新のバージョンでやればいいじゃない。
Javaなんてそれそのものがフレームワークなんだから
Cと違ってできないものは梃子でもできないよ。

↓以下俺への叩き
368デフォルトの名無しさん:2005/11/19(土) 16:38:52
仏様はどのような悪人でも極楽浄土へ迎えてくれます
369デフォルトの名無しさん:2005/11/19(土) 16:39:08
いまさら1.1の話されてもな
プロセス間の制御ってことはアプリだろうし
古いJRE使うこともないような

複数のJREは共存できるんだし
370デフォルトの名無しさん:2005/11/19(土) 16:53:33
>>367
 最新のバージョンを使えない〜、としたら、
 やっぱり、jni + C(セマフォ)ですか?
 
371デフォルトの名無しさん:2005/11/19(土) 17:28:14
JNIを使える環境なら最新のprivateJRE使ったほうがはやいような・・・
372デフォルトの名無しさん:2005/11/19(土) 17:33:23
>>368
ないない
373デフォルトの名無しさん:2005/11/19(土) 17:35:27
>>371
 最新のものを使えない前提で、考えると
 やっぱりこれしかないんですね。orz
 jni + c でいくしか。。。

 javaノミと考えると、ファイルを使った排他制御があげられると
 思うんですが、レースコンディションであぼ〜ん死遭難で、
 駄目ですよね
374デフォルトの名無しさん:2005/11/19(土) 17:58:01
排他すべきプロセスをみんなJavaにしてThreadで排他。
375デフォルトの名無しさん:2005/11/19(土) 18:29:56
>>374
 複数プロセス+マルチスレッドで、syncronized って有効なんですか?
 1プロセス+マルチスレッドならば、いけると解釈したのですが・・・・。
 
 A1プロセス--A(Thread+syncronizedなプログラム)
B1プロセス--

 この状態で、排他制御してくれるということですか?
376デフォルトの名無しさん:2005/11/19(土) 18:34:22
いや無理だろ。
MySQLとかで擬似通信しちゃえ。
377デフォルトの名無しさん:2005/11/19(土) 18:49:02
>>376
 データベースが使えれば、そうしますけどね。

 A1プロセス-- プログラム--データベース(排他制御)ってことですよね。
 B1プロセス--
 
 解決策としては、バージョンを上げる以外としては、セマフォ?
 これ以外なにかあります?
378デフォルトの名無しさん:2005/11/19(土) 18:50:41
環境がわかんね
379デフォルトの名無しさん:2005/11/19(土) 19:26:00
PrivateJREがわかってないんじゃ・・・
380デフォルトの名無しさん:2005/11/19(土) 19:46:00
Private JRE ってなんですか?
381デフォルトの名無しさん:2005/11/19(土) 19:52:20
>>377
UNIXのシェルみたいにファイル作ればどうだ
382デフォルトの名無しさん:2005/11/19(土) 19:57:26
1.2だったらFile.createNewFileがアトミック性があるので
排他制御に使えなくもない。
383377:2005/11/19(土) 20:06:02
>>381
I/O かむと、おそいんで、ほんとぜろこんまな世界の同時排他制御は
 むりですよね。

>>382
 その手は、微妙に危険だと思ってるんですが・・・。
 レースコンディションみたいな状態だと、隙間にはいりますよね。
 
Private JRE って、一つのクラスのみを 最新の jar ファイルを
 クラスパスに入れてコンパイルして使用するって言うことですか。
384382:2005/11/19(土) 20:49:12
>>383 隙間にはいらないことが保証されているって意味だよ。
つーかAPIマニュアルよめ。
385デフォルトの名無しさん:2005/11/19(土) 21:13:19
排他制御にファイルを使いたくないんなら、ソケット使えばいいじゃん。
簡単だぜ。
386377:2005/11/19(土) 21:43:14
>>384
なるほど、サンクス。
387デフォルトの名無しさん:2005/11/19(土) 22:21:10
共有メモリ代わりにRMIサーバーを利用してセマフォ作っとくとかは?
388デフォルトの名無しさん:2005/11/20(日) 01:43:53
arraylistの前方検索なのですが、
arraylist.indexOf(Object elem)を、
arraylist.indexOf(Object elem,int fromindex)
の様に使いたいですが、できるでしょうか?

389デフォルトの名無しさん:2005/11/20(日) 02:03:02
>>388
indexOf(Object, int) は Vector にはあるんだけどね。
390デフォルトの名無しさん:2005/11/20(日) 02:12:16
vectorはレガシーコレクションだから使わないほうがいい、
と聞いていたので躊躇っていたのですがやはりそれしかないですか。
うーむ、あったら便利なのに。
arraylistでは無理という認識であってますか?
391デフォルトの名無しさん:2005/11/20(日) 02:13:54
ArrayListならRandomAccess可能なんだからget(i)でいいじゃん。
392デフォルトの名無しさん:2005/11/20(日) 02:17:00
>vectorはレガシーコレクションだから使わないほうがいい、
理由は違うと思う
393デフォルトの名無しさん:2005/11/20(日) 02:20:16
>>389
arraylist.subList(fromIndex, toIndex).indexOf(elem);
でどお?

http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/List.html#subList(int,%20int)

 このメソッドは、配列に一般的に見られるような、
 明示的な範囲操作のための要求を不要にします。
 リストを要求するいかなる操作もリスト全体ではなく、
 subList ビュー上で操作することで、範囲操作として使用できます。
394デフォルトの名無しさん:2005/11/20(日) 02:21:19
>>393
それ今書こうと思ってた。
395デフォルトの名無しさん:2005/11/20(日) 02:24:09
ってことは
for(int i=fromindex;i<arraylist.seze();i++){
arraylist.get(i).equals(対象);
}
でやるってことですか?
396デフォルトの名無しさん:2005/11/20(日) 02:25:43
あ、すいません。いまみてきます。
397デフォルトの名無しさん:2005/11/20(日) 02:26:03
>>395
ArrayListだから許容できる荒業だとは思うけどねぇ
398デフォルトの名無しさん:2005/11/20(日) 02:27:40
あ、なるほど。
これでできそうです。ありがとうございました。
あと非常に勉強になりました。重ねて感謝します。
399デフォルトの名無しさん:2005/11/20(日) 02:47:16
JFrameとかに付けた複数のコンポーネントを枠で囲いたい場合、目的のコンポーネントを付けたJPanelにsetBorderする以外の方法はありますか?
400デフォルトの名無しさん:2005/11/20(日) 09:13:10
classファイルからjavaファイルに変換するデコンパイラってありませんか?
ソースをなくしてしまってclassファイルだけ残っているので困っています。
401デフォルトの名無しさん:2005/11/20(日) 09:15:27
jad
402400:2005/11/20(日) 12:43:46
すみません。誰かお願いします。
今日中にどうしてもソースが必要なんです。
よろしくお願いします。
403デフォルトの名無しさん:2005/11/20(日) 12:46:37
こたえてもらってるじゃん。
404デフォルトの名無しさん:2005/11/20(日) 12:50:32
>>400
わからなければクラスファイルをどこかのアプローダにUpしてください
デコンパイルして渡します
405デフォルトの名無しさん:2005/11/20(日) 13:00:00
クラスパスってPCを起動する度に毎回設定しなきゃならんのか?
406デフォルトの名無しさん:2005/11/20(日) 13:03:39
そうでもない。
407デフォルトの名無しさん:2005/11/20(日) 13:07:09
C言語のライブラリパスと一緒だ
408デフォルトの名無しさん:2005/11/20(日) 13:19:40
409400:2005/11/20(日) 14:09:49
>>404
すみません。仕事のものなので外には出せないんです。
方法があれば教えていただきたいです。

どなたかよろしくお願いします。
410デフォルトの名無しさん:2005/11/20(日) 14:13:53
>>409
上司に謝って休日返上で働く
411デフォルトの名無しさん:2005/11/20(日) 14:22:40
>>401
せっかく答えてるのに、カワイソス
412デフォルトの名無しさん:2005/11/20(日) 14:30:06
デコンパイラ以外に有効な解決策があると思うが
いきなりデコンパイラに行くあたりが素敵でカワイソス
413400:2005/11/20(日) 14:36:10
自己解決しました( ´∀`)
414デフォルトの名無しさん:2005/11/20(日) 14:37:05
どう解決したか書かないのも多いよな
415400:2005/11/20(日) 14:38:26
>>412
ほかに有効な解決策ってなんでしょうか?


>>413
残念ながらしていません。
416412:2005/11/20(日) 14:52:47
>>415
スレ違いになるのでここでは回答しかねる
417デフォルトの名無しさん:2005/11/20(日) 14:53:45
まあ >>413 で解決したと言ってるのを信じようじゃないか
418デフォルトの名無しさん:2005/11/20(日) 15:06:25
>>400 を見る

回答を用意して書き込む直前にリロードして確認する

>>413 を見る

用意した回答を破棄する

>>415 を見る

(#´・ω・)
419デフォルトの名無しさん:2005/11/20(日) 15:09:03
jad
420デフォルトの名無しさん:2005/11/20(日) 15:11:28
jad
jadclipse
DJ
421400:2005/11/20(日) 15:46:43
>>416
なんとかお願いします。困っています。

>>417
解決していません。413は別の人です。

どうかアドバイスよろしくお願いします。
422デフォルトの名無しさん:2005/11/20(日) 15:48:40
>>421
jad
jadclipse
DJ
423デフォルトの名無しさん:2005/11/20(日) 15:54:04
>>421
401は見たわけ?
424デフォルトの名無しさん:2005/11/20(日) 15:54:12
>>421
もうね、>>401を1万回読んでから、氏んでよし。
425デフォルトの名無しさん:2005/11/20(日) 15:59:00
>>421
今忙しいので回答するにしても明日以降にしたいと思います
426デフォルトの名無しさん:2005/11/20(日) 16:00:38
>>400
よく釣れてますね
427デフォルトの名無しさん:2005/11/20(日) 16:30:40
質問なのですが、intなどのプリミティブ型の変数を簡単に二進数表示するようなクラスとかってありますか?
428デフォルトの名無しさん:2005/11/20(日) 16:34:21
Integer クラス
429デフォルトの名無しさん:2005/11/20(日) 16:36:14
>>427
あります。以上。
430427:2005/11/20(日) 16:40:07
>>428-429
ありがとうございます!解決しました!
431427:2005/11/20(日) 16:45:45
いえ、まだ解決していません
たとえばどんな方法でしょうか?
432427:2005/11/20(日) 16:48:39
解決しました
433427:2005/11/20(日) 16:53:37
やめてください いじめないでください
434デフォルトの名無しさん:2005/11/20(日) 16:55:27
トリ付けて質問すれば良いじゃない
435427:2005/11/20(日) 16:57:10
今からつけても、427を名乗る人がみんなとリップつけたらわからないじゃないですか・・・
427書いた時点で書いていれば・・・
436427:2005/11/20(日) 16:57:50
他の掲示板で解決しました。
ここは役に立ちませんね
437434:2005/11/20(日) 17:00:14
>>435
いまさら 427 の質問の話をしてるわけじゃないよ
もう完全な回答が出てるし
438デフォルトの名無しさん:2005/11/20(日) 17:00:34
IntegerのAPIリファレンスみれば解決してんじゃん
役に立ってるっつーの!(`・ω・´)
439デフォルトの名無しさん:2005/11/20(日) 17:30:34
いったいいま何の話してるんだよ、質問させてくれよ
440デフォルトの名無しさん:2005/11/20(日) 19:47:05
>>435
「みんなとリップつけたら」って、なんでいきなり口紅の話が?
441デフォルトの名無しさん:2005/11/20(日) 21:05:20
冬だしな。薬用だろ。しかも北海道限定版
442デフォルトの名無しさん:2005/11/20(日) 21:48:27
トランプゲームを作っているのですが、
このようなトランプゲームで
手持ちのカードを表示するパネルってのは
どのように設計すべきなのでしょうか?
大まかな形が出来上がったものの
いざ、手持ちのトランプを減らしたり増やしたりするときに更新しようとすると
できなくて困っています。

今は
card1 などはJPanelを継承したクラスのインスタンス

JPanel panel = new JPanel;()
panel.add (card1);
panel.add (card2);
更に元のPanel.add.(pael);

こんな感じで
更新する時には
panel = new JPanel;()
panel.add (card1);
panel.add (card2);
panel.add (card3);
更に元のPanel.add.(pael);

という感じでやっているのですが、これでは更新されません。
この方法で更新する方法があれば教えてもらいたいです。
443デフォルトの名無しさん:2005/11/20(日) 21:52:09
トランプくらいなら JPanel を継承して paint で描くのが一番楽。
444デフォルトの名無しさん:2005/11/20(日) 22:04:11
revalidate()する
445442:2005/11/20(日) 22:21:24
>>443
今作り直しをしようとしているところですが、
paintってのは
paint()
ですか?
それとも
paintComponent(Graphics g)
のことですか?

>>444
それはちょっと無理そうです。
446デフォルトの名無しさん:2005/11/20(日) 22:24:39
public void paint(Graphics g);
447デフォルトの名無しさん:2005/11/20(日) 22:26:22
パネルをカードにするなよ馬鹿。
ぐらふぃっこに落とせ。な?
448デフォルトの名無しさん:2005/11/20(日) 22:34:35
SwingコンポーネントをつかってというのならLabelとかJPあねl使ってというのは別に悪くはないな
ただ、それが動的に計算できないようなんで自前描画もだめっぽいけど
449デフォルトの名無しさん:2005/11/20(日) 22:36:16
Flashで作れば?自作画像もガンガンイベント受け取るよ。
450デフォルトの名無しさん:2005/11/20(日) 22:47:42
>>446
SwingではpaintComponentじゃないのか?
451デフォルトの名無しさん:2005/11/20(日) 22:48:30
>>450
しらん。
452442:2005/11/20(日) 22:48:35
>>446
わかりました。ありがとうございます。

>>447
>パネルをカードにするなよ馬鹿。
そうですか・・・
Graphicsに落とします。

>>449
趣味ではなく
javaでの課題なのです・・・


どうやらcore javaの上巻だけでは資料が足りないようなので
明日にでも買ってくることにします・・・
453デフォルトの名無しさん:2005/11/20(日) 22:55:13
>>452
> どうやらcore javaの上巻だけでは資料が足りないようなので
> 明日にでも買ってくることにします・・・

ぐぐればおk
454デフォルトの名無しさん:2005/11/20(日) 23:00:29
class ThreadX extends Thread {
String msg;
ThreadX(String x) {msg = x;}
public void run() {
for (int i=0; i<100; i++) {
System.out.print(msg);
}
}
}
public class ThreadDemo {
public static void main(String args[]) {
Thread th1 = new ThreadX("a");
Thread th2 = new ThreadX("b");
th1.start(); th2.start();
try {th1.join(); th2.join();}
catch (Exception e) {e.printStackTrace();}
}
}
の「aとbが混ざるまでの繰り返し回数を調べる」とはどういうことでしょうか?
実行するたびに実行結果が変わるのですが。
455デフォルトの名無しさん:2005/11/20(日) 23:01:57
宿題は宿題スレ池
456Java初心者:2005/11/20(日) 23:02:05
今Javaの課題をやっているのですがご教授願えませんでしょうか。
・JFrameのサブクラスを作成しそのコンテントペインに前回作成したパネルを
載せること。
・ウインドウ上部の×印をクリックウインドウを閉じたときにプログラムが終
了するようにウインドウリスナーを登録せよ。リスナーは匿名内部クラスにす
ること。
・メニューバーを実装し、「ファイル」→「終了」を選択するとプログラムが
終了するように。「ヘルプ」→「バージョン情報」を選択するとメッセージダ
イアログが表示されるように。「終了」と「バージョン情報」について、それ
ぞれキーボード入力Ctrl+xとCtrl+Shift+vでも実行されるようにし。なおか
つリスナークラスを独立したクラスにしなさい。

という、課題なのです。
途中までは作ってみたのですが、どうしても完成しません。お願いします。
457456:2005/11/20(日) 23:02:45
スレ違い、失敬
458デフォルトの名無しさん:2005/11/21(月) 00:43:01
Javaでコールバックってどうやって書けばいいの?
計算終わったら別のクラスに結果を通知するイベント
発生させたいんだけどどうやって書くの?Cしか書いたことないから
解らない
459デフォルトの名無しさん:2005/11/21(月) 01:13:44
>>458
interface Callback { void invoke(); }

private Callback callback;
public void setCallback(Callback c){ callback = c; }
public void method(){
 //いろいろ
 callback.invoke();
}
460デフォルトの名無しさん:2005/11/21(月) 02:03:19
>>366
> java で、プロセス間の排他制御をやる方法って、
> 最新のバージョンならFibber・・・・なるクラスを使えば
> 良いみたいだけど、昔のjava(1.1とか、1.2とか)バージョンの場合、

Java SE6 Mustangでしかできないとおもったけど
できるんだ。
461デフォルトの名無しさん:2005/11/21(月) 02:05:45
>>458
デザパタみるといいとおもうよ
462デフォルトの名無しさん:2005/11/21(月) 02:18:37
>>461
デザインパターンにコールバックはあったっけ?
459以上に適切に説明できないと思うんだけど。
463デフォルトの名無しさん:2005/11/21(月) 02:23:15
>>462
この手のスレは気分だけ上級者を味わいたいと思う輩が多いから・・・
464デフォルトの名無しさん:2005/11/21(月) 07:41:57
お前を筆頭にな
465デフォルトの名無しさん:2005/11/21(月) 08:11:09
>>462
自画自賛乙
466デフォルトの名無しさん:2005/11/21(月) 09:16:32
藻前方助けてください
for文で1〜1000の数値を出力して、その1〜1000の合計の値を出力するプログラムを
作成しているんですが、1〜1000の出力は出来ても1〜1000の合計を算出する方法が分かりません!
今出来てる分は

public class Goukei{
public static void main (String args[]){
int a=0;
for(a=1; a<=1000; a++){
System.out.println(a);
}
}
}

一応1000まで表示させるということでここまでは自力でも書けましたが・・・・
合計を算出するまでが出来ませんorz
どなたかアドバイス願います・・・・
467デフォルトの名無しさん:2005/11/21(月) 09:18:50
宿題スレ行け
468デフォルトの名無しさん:2005/11/21(月) 09:25:50
>>466
合計しようとする努力しろよ

int sum = 0;
for(int i=1; i<=1000; i++){
sum += i;
}
System.out.println(sum);
469えり:2005/11/21(月) 11:07:00
教えて下さい(ノ_・。)
今携帯からHPを作ってるのですが画像をアップロード出来るのはパソコンからだけですか?
470デフォルトの名無しさん:2005/11/21(月) 11:12:37
板違いのような気がするが。
471425:2005/11/21(月) 11:20:06
>>400 はどうなった?
472デフォルトの名無しさん:2005/11/21(月) 11:25:34
>>471
decompile Javaでぐぐれば掃いて捨てるほど出てくるよ
473えり:2005/11/21(月) 11:52:54
ゴメンなさい。2チャン初心者なので…質問するとこもっと探してみます。
すいませんm(__)m
474デフォルトの名無しさん:2005/11/21(月) 11:54:13
初心者ならもっとよく調べろ、ぼけ
475デフォルトの名無しさん:2005/11/21(月) 11:58:35
フレームにメニューバーをつけて、メニューバーにメニューを貼りつけ、
さらに、そのメニューにサブメニューとして"数字"というのをつけます。
で、"数字"というサブメニューに1〜5の数字を持つメニューアイテムを貼ります。
それで、以下のようなプログラムを書いたんですけど、ヌルポが出てしまいます。
どこがダメなのかわかりますか?

入りきらないので、ソースは次のレスに張ります。
476475:2005/11/21(月) 12:00:31
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Sample extends JFrame{
  Container c;
  MenuBar mb;
  Menu menu, submenu1;
  MenuItem menuitem[];
  Sample(){
    super("サンプルフレーム");
    c = this.getContentPane();
    c.setLayout(new BorderLayout(20,20));
    mb = new MenuBar();
    this.setMenuBar(mb);
    menu = new Menu("メニュー");
    mb.add(menu);
    submenu1 = new Menu("数字");
    menu.add(submenu1);
    menuitem = new MenuItem[5];
    for(int i=0; i<menuitem.length; i++){
      menuitem[i].setLabel(Integer.toString(i));
      submenu1.add(menuitem[1]);
    }
  }
  public static void main(String[] args){
    JFrame frame = new Sample();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(500,400);
    frame.setVisible(true);
  }
}
477475:2005/11/21(月) 12:03:37
ああっと、
submenu1.add(menuitem[1]);

submenu1.add(menuitem[i]);
ですね。
ヌルポはかわりませんが・・・。
478デフォルトの名無しさん:2005/11/21(月) 12:10:22
>>476
こういうのが必要です。
menuitem[i] = new MenuItem();
配列の勉強が必要かな。
479デフォルトの名無しさん:2005/11/21(月) 12:31:29
nullpo
480466:2005/11/21(月) 12:56:24
回答ありがとうございます。JAVAにも宿題スレあったの知りませんでした・・・(ノД`)
スレ汚しして申し訳ありません。
481475:2005/11/21(月) 13:31:18
>>478
できました、ありがとうございます。
なるほど、intなどの配列とGUI部品の配列では、少し勝手が違いますね。
482デフォルトの名無しさん:2005/11/21(月) 14:07:02
JListに関する質問です。
javax.swing.JListで表示した内容を、クリアし別のデータを
再度表示させる方法を知りたいのですが、どなたかご教授ください。
483デフォルトの名無しさん:2005/11/21(月) 15:21:51
>>462
デザパタしらないのでは?
484デフォルトの名無しさん:2005/11/21(月) 15:22:37
>>482
まず聞きたいがAPIマニュアルはよんだ?
485デフォルトの名無しさん:2005/11/21(月) 15:26:33
>>482
1.読み込む
2.表示する
3.クリアする
4.1に戻る
486デフォルトの名無しさん:2005/11/21(月) 16:33:36
>>475
>>477

ガッ
487デフォルトの名無しさん:2005/11/21(月) 18:24:32
JavaScriptでWindowsの×ボタン制御って可能なんでしょうか?

ウィンドウ右上の×ボタンを押された際に、
閉じてよいかの確認のダイヤログを表示し、
[はい]が押された時のみウィンドウを閉じるよう制御したいのです。

function test(){
if (confirm("閉じていいの?")) {
window.location.href="/login/logout.do";
} else {
}
}
window.onbeforeunload = test;

この形だとconfirmの結果がfalseでも閉じるイベントが継続して
ウィンドウを閉じられてしまうのですが・・・
488デフォルトの名無しさん:2005/11/21(月) 18:35:29
>>487
>>1
JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/
489デフォルトの名無しさん:2005/11/21(月) 21:40:26
まあ、MustangでもJavaScriptが使えるようになるんだから
このすれでいいジャマイカ
490デフォルトの名無しさん:2005/11/21(月) 22:13:35
scriptが使えるのは言語だけであってブラウザの制御とは関係ないんじゃ・・・
491質問:2005/11/21(月) 22:44:00
数値をアスキーコードを用いて変換したいのですが、簡単な方法無いですか?
102(8進数)=66(10進数)=Bの流れで変換したいのですが・・・
492デフォルトの名無しさん:2005/11/21(月) 23:04:29
うむ、MustangではPHPやGroovyも使えるようなので
このスレでも質問を受け付けてもいいじゃろお
493デフォルトの名無しさん:2005/11/21(月) 23:21:42
BufferedReader br = BufferedReader(なんたら);
String line = null;

while(br.ready()){
line = br.readLine();
System.out.println(line);
}

とかいう処理でbr.ready()で回すのってあまり使わないほうがいい?
494デフォルトの名無しさん:2005/11/21(月) 23:25:07
普通こうやるんだけどね。なんでそれやろうとおもったの?
String line = null;
while((line = br.readLine())!=null){
System.out.println(line);
}
495デフォルトの名無しさん:2005/11/21(月) 23:31:13
レイアウトマネージャーの利点と欠点て何でしょうか?
GUI設計してて分からなくなってきた…
496デフォルトの名無しさん:2005/11/21(月) 23:38:24
利点:コンテナサイズに合わせて自動的に大きさ調整してくれる
欠点:ある程度 『型』 にはまったレイアウトしか作れない

……他に何かあったっけ?
497デフォルトの名無しさん:2005/11/21(月) 23:39:23
↑こんなんはどうかな。
String line;
Scanner sc=new Scanner(なんたら);
while(sc.hasNext()){
 line=sc.nextLine();
 System.out.println(line);
}
498デフォルトの名無しさん:2005/11/21(月) 23:41:34
>>495
プラットフォームによるコントロールの大きさやフォントの違いなどで
固定配置ではあるプラットフォームではうまく表示されていても
別のプラットフォームでは意図したように表示されない可能性あるという問題を
ある程度吸収してくれるというメリットがある
499デフォルトの名無しさん:2005/11/21(月) 23:44:02
>>494
> String line = null;
このnullは何?


for (String line; (line = br.readLine()) != null; ){ ... }
500デフォルトの名無しさん:2005/11/21(月) 23:46:15
>このnullは何?
まぁ、いいやん

>for (String line; (line = br.readLine()) != null; ){ ... }
Javaだけやっている人はこの書き方は出来ない
501デフォルトの名無しさん:2005/11/21(月) 23:51:10
for の3番目の式が空白なのって、なんか違和感あるでス (;_ _)
502デフォルトの名無しさん:2005/11/21(月) 23:52:21
>494

この書き方自体は俺が書いたわけでないんで
どうしてかというのには答えられない。
教授が回すのは好ましくないっていってたような
気がしたんだがどうしてなのかなぁ?と思って
ここに質問してみた。
503デフォルトの名無しさん:2005/11/21(月) 23:56:58
普通にJavaやっている奴は
>>494でいい
>>493だって回していることに変りは無い、もちろん間違っていない
>>499のやり方はJavaやっている人間から見たら基地外だが、間違っていない
504デフォルトの名無しさん:2005/11/22(火) 00:05:35
>>493 はだめじゃないか?

public static void main(String[] args) throws IOException {
System.out.println(new BufferedReader(new InputStreamReader(System.in)).ready());
}

↑の結果 false
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/io/BufferedReader.html#ready()
505デフォルトの名無しさん:2005/11/22(火) 00:27:07
ストリームの状態を指すだけだから
ファイルの終わりをさすかどうかとは別
506デフォルトの名無しさん:2005/11/22(火) 01:11:58
>>503
499のforイディオムってふつーだろ?
スコープ考えたらむしろ推奨だと思うが?
507デフォルトの名無しさん:2005/11/22(火) 02:04:38
意図的な

 String 〜
 while(〜){
  〜
 }

のほうが好きだな
後でその部分だけメソッド化とか容易だし
508デフォルトの名無しさん:2005/11/22(火) 02:44:22
>>506
同意
509デフォルトの名無しさん:2005/11/22(火) 03:48:48
PHPのexplodeみたいな関数ありますか?

explodeみたいな関数とは、指定文字で分割して
配列に格納する関数です。

よろしくおねがい致します。
510デフォルトの名無しさん:2005/11/22(火) 03:53:32
511デフォルトの名無しさん:2005/11/22(火) 03:53:54
>>509
String.split("正規表現")
512デフォルトの名無しさん:2005/11/22(火) 03:58:10
>>510
>>511
速レスありがとうございます!
早速やってみます。
513デフォルトの名無しさん:2005/11/22(火) 07:55:40
便乗ですが、
正規表現を使わずにexplodeする方法はありませんか?
514デフォルトの名無しさん:2005/11/22(火) 09:26:34
>>513
つ[StringTokenizer]
515デフォルトの名無しさん:2005/11/22(火) 09:45:42
>>513
jakarta commons lang 使って StringUtils.split(str, separator);
516デフォルトの名無しさん:2005/11/22(火) 10:39:29
入力された日付の文字列が正しいものかを判定しbooleanで返すメソッドを作りたいと思っています。Calendarなどを使い日本形式(?)の日付を判定することはできたのですが、
これを英形式の日付にも対応させたいと思っています。
どのようにすればよいか教えていただけないでしょうか。

trueを返す文字列
2005/11/11
2005-11-11
11 Nov 2005
(基本的にDBの日付型に登録できるものはtrueを返すようにしたい)
517デフォルトの名無しさん:2005/11/22(火) 10:46:57
>>516
どのようにって、普通に対応させれば良いのでは?
何を教えて欲しいのかわからん。

丸投げしたいなら宿題スレにでも行ってくれ。
518デフォルトの名無しさん:2005/11/22(火) 11:53:22
WebサービスとしてApacheAxisを採用しているのですがクライアントパソコ
ンの性能のようでサーバーとの通信が遅く応答に15秒以上掛かっています。
いろいろ調べましたが、あきらかにクライアント側のAxisの処理に時間が掛
かっています。性能はクライアントのCPUが600MHzでサーバー側が1GHzで
す。
Axisを最適化する方法もしくは早くする方法はありませんか。
また、Axisより早いSOAPを知らないでしょうか。ちなみにクライアントを
1GHzにすれば4秒ぐらいにはなりますが、顧客のパソコンが600MHzなので
それに合わせる必要があります。

よろしくお願いします。
519デフォルトの名無しさん:2005/11/22(火) 12:02:22
>>516
日付チェックなら、calendar.setLenient(false)で良いかと
520デフォルトの名無しさん:2005/11/22(火) 12:38:14
>516
つ正規表現
521デフォルトの名無しさん:2005/11/22(火) 12:59:18
「JTextFiledに半角英数字しか入力できない」といった制限をもうけることができますか?

↓当方が作成したこのやり方では上手くいかないみたいです。。。

JTextFiled text = new JTextFiled();
text.setDocument(new LimitedDocument(nMax));

private class LimitedDocument extends PlainDocument {

LimitedDocument(){
}

public void insertString(int nOffset, String str, AttributeSet attr){
try {
//半角英数字以外ならreturn
if(!isHarfOrNumber(str)){
return;
}
super.insertString(nOffset, str, attr);
} catch (BadLocationException e) {
DialogUtil.showSystemErrorDialog();
}
}
}
522デフォルトの名無しさん:2005/11/22(火) 13:00:18
>>500

> >for (String line; (line = br.readLine()) != null; ){ ... }
> Javaだけやっている人はこの書き方は出来ない
意味がわからん。
それだったらCしかやってない香具師もその書き方できないことになる。
523521:2005/11/22(火) 13:01:03
/**
* 文字列が半角英数字・もしくは半角数字かを判断します。
* @param 対象文字列
* @return 半角英数字-true それ以外-false
*/
private boolean isHarfOrNumber(String str){
if(str == null){
return false;
}
int nLength = str.length();
for (int i = 0; i < nLength; i++) {
char aChar = str.charAt(i);
if(!((aChar >= 'a' && aChar <= 'z')
|| (aChar >= 'A' && aChar <= 'Z')
|| (aChar >= '0' && aChar <= '9'))){
return false;
}
}
return true;
}
524デフォルトの名無しさん:2005/11/22(火) 13:03:26
>>516
複雑なregexな正規表現つかうまでもなく
DateFormatで解決できる。
こいつでぐぐるかjavadoc見よ
"{0}/{1}/{2}"
"{0}-{1}-{2}"
"{1} {2} {0}"
こんな感じだったかな。こいつをつかってパースして
525デフォルトの名無しさん:2005/11/22(火) 13:04:11
>>523
Jakarta Commons Validatorを使うとかなり楽だよ
526デフォルトの名無しさん:2005/11/22(火) 14:34:12
jws使うんでjarにしてるんですが、ちょっと質問させてください。
main.jar --> commons-io.jar
への呼び出しは、普通に-cp commons-io.jarとか
jnlpで<resources>に書いておくとクラスパス通るんですが、

main.jar --> 俺.jar
         +- commons-io.jar
とすると、NoClassDefFoundErrorが出ます。
俺,jarの中に入れたjarファイルにはクラスパス通せないんでしょうか?
俺.jarのMANIFEST.MFには、common-io.jarのClass-Path:を書いてあるのですが。
jarの仕様上、そういったことは出来ないんでしょうか。
527デフォルトの名無しさん:2005/11/22(火) 15:37:57
>>518
速度が問題になるサービスにJavaは不向き。
速度のためならFire 10kが買えるほどの大富豪クライアントに納品しないと(w
528デフォルトの名無しさん:2005/11/22(火) 15:39:59
ユーティリティクラス内のサブクラスは
普通のユーティリティクラス(public static)と同様に
Static(private static)で作るべきなのでしょうか?
529デフォルトの名無しさん:2005/11/22(火) 15:59:31
通常、ユーティリティークラスは状態を持たないので
サブクラス(内部クラスのこと?) もstatic classで良いと思われ
530デフォルトの名無しさん:2005/11/22(火) 15:59:36
>>518
マルチポスト氏ね
531528:2005/11/22(火) 16:03:09
>>529さん
解説ありがとうございます。
確かに状態を保持しないのでstaticで良いですね。
532デフォルトの名無しさん:2005/11/22(火) 17:09:41
ユーティリティクラスはstaticメソッドしかもたないなら
なぜサブクラスが必要なのか理解できない。
大抵finalにして
デフォルトコンストラクタもprivateにして
不用意なアクセスを禁止すると思うのだが。
533デフォルトの名無しさん:2005/11/22(火) 17:36:13
JLabelのに表示している画像 を返して、
一致するならコンソール出力させたいのですが、次の記述ではコンパイルもとおりません。

ご指摘よろしくお願いします。

if(label.getIcon==("../images/test.gif");
  System.out.println("test.gif");
}
534デフォルトの名無しさん:2005/11/22(火) 17:46:00
>>533
構文エラー
っつーかそれって画像を比較してないし
535デフォルトの名無しさん:2005/11/22(火) 17:59:27
>>533
"../images/test.gif" てStringオブジェクトとして判断されるよ
536デフォルトの名無しさん:2005/11/22(火) 18:14:12
>>534
>>535

具体的に、どう対処したらよいでしょうか?
 ==("../images/test.gif"){
という部分は使いたいので、getIconメソッドでは無理かとかんがえています。
537デフォルトの名無しさん:2005/11/22(火) 18:30:04
日本語が壮絶に微妙だな。
>>536
NetBeansでもEclipseでも、フリーのIDEを落としてくる。
で、ネットか本で、基本的なjavaの構文を勉強する。
そうすりゃコンパイルは通るように書ける。
今のレベルでは、ここに張り付きっぱなしになるし、誰も答える気すら起きない。
教育スレではないのでね。
538デフォルトの名無しさん:2005/11/22(火) 18:37:34
>>536
if文自体がきちんと書けてない等、かなりの初歩的なミスが目立つので
もうすこし基本を勉強しなされ
539デフォルトの名無しさん:2005/11/22(火) 18:40:11
>>533
画像の内容比較は一行じゃできない
540デフォルトの名無しさん:2005/11/22(火) 19:40:00
ある文字列から、特定の文字だけを消す処理って、どうしたらいいでしょうか?
特定の文字で分割する処理があるので、それを使って、
分割後を繋げるという方法ならできるのですが、
今一効率が悪そうな感じがしまして・・・。

何かよい方法があれば、ご教授願います。
541デフォルトの名無しさん:2005/11/22(火) 19:46:20
replaceでいいんでないの?
s.replace("特定","");
542デフォルトの名無しさん:2005/11/22(火) 19:47:29
>>541
あ、replace関数がありましたか・・・。
見落としてました。ありがとうです。
543デフォルトの名無しさん:2005/11/22(火) 20:25:14
>>541
replaceAll() じゃないと文字列の場合出来ないと思うが?
544デフォルトの名無しさん:2005/11/22(火) 20:34:35
質問です.
たとえば文字コードSJISで書いたソースをデフォルトの文字コードがeucJPな環境で
コンパイルして実行すると日本語の表示が文字化けしてしまいますけど,これを回避する
方法はありますか?
ソースの文字コードをeucJPに直してからコンパイルすると正常に表示されますが,
いちいち変換するのも面倒なので困ってます.
545デフォルトの名無しさん:2005/11/22(火) 20:35:28
ごめん。replace()でも出来るな。CharSequenceの方で。
>>543は忘れてくれ。
546デフォルトの名無しさん:2005/11/22(火) 20:36:13
>>544
javac -encoding Shift_JIS *.java
547544:2005/11/22(火) 20:40:34
>>546
なるほど!
ありがとうございます!
548デフォルトの名無しさん:2005/11/22(火) 22:25:40
>>546
そのやり方をするなら
Apache Antでbuild.xmlを書かせることをお勧めしたいな。
<!-- compile java sources -->
 <property name="encoding" name="Shift_JIS" />
<target name="compile">
<delete dir="${classes}" />
<mkdir dir="${classes}" />
<javac srcdir="${source}"
destdir="${classes}"
encoding="${encoding}"
debug="on"
optimize="off"
deprecation="off"
excludes="${excludefiles}"
>
</javac>
</target>
549デフォルトの名無しさん:2005/11/22(火) 22:40:22
Shift_JISよりもWindows-31Jの方がもしかしたらいいかも。
550デフォルトの名無しさん:2005/11/22(火) 22:57:15
すんません。String#charAt(int index) が導入されたバージョンについてなんですが、
このメソッドは 1.0 から存在し、1.4 からは CharSequence#charAt(int index) の実装として定義されるようになった
って認識であってます?
551デフォルトの名無しさん:2005/11/22(火) 23:00:50
そんなもんjavadoc見ればいいだろ
552デフォルトの名無しさん:2005/11/22(火) 23:03:36
javadoc 見た上での疑問でした。
導入されたバージョンは記述無し、CharSequence は 1.4 から導入なんでどうなのかな、って。
553540:2005/11/22(火) 23:21:29
再び質問すみません。
上の回答の通り、replaceではダメでしたので、
replaceAllを使おうとしたのですが、
「シンボルを解釈処理できません。」と出てきます。
使った記述は↓ですが、
String tmp_str = "abc";
tmp_str = tmp_str.replaceAll("a", "b");
どうしてもエラーを修正できません。
何が行けないのでしょう・・・。
554デフォルトの名無しさん:2005/11/22(火) 23:27:54
エラーが出るのはコンパイル時なのか実行時なのか。
コンパイル時なら jdk 最新版にすれば通るような予感。
555540:2005/11/22(火) 23:30:30
コンパイル時です。
replaceAllって、最近追加されたものなのですか?
とりあえず、更新してきます。
回答ありがとうございました!
556デフォルトの名無しさん:2005/11/22(火) 23:36:37
version 最初に確かめろや。ちなみに replaceAll は 1.4 から追加されてる。
557デフォルトの名無しさん:2005/11/22(火) 23:47:28
>>549
一番いいのはShift_JISを完全に使用禁止に撤廃し
UTF-8で統一することだね。
558デフォルトの名無しさん:2005/11/22(火) 23:50:11
>>553
> 何が行けないのでしょう・・・。

この「でしょう」っていいかたが
人様を見下しているようでムカツクので
質問に答える気が失せるんだよな。
いかにも自分のやっていることは正しくて
Javaコンパイラが悪いんだ、
質問に答えてくれるのがあたりまえなんだと
主張しているようで。
559デフォルトの名無しさん:2005/11/22(火) 23:58:36
ほっとけ。本気でムカついたら、萌えキャラが困り果てて泣きついてくる姿を想像して和むんだ。
560デフォルトの名無しさん:2005/11/23(水) 00:16:42
ヲタとそれに関連する物 (とくにアニメ) がムカつく
561デフォルトの名無しさん:2005/11/23(水) 00:17:30
質問です
初心者で表現がおかしいかもしれませんが、例えとして、1の処理を[5回]、2の処理を[3回]、3の処理を[6回]、4の処理を[6回]、
1〜4の処理を上記の回数処理したあとまた最初に戻りループするプログラムがあるとします
(ここでの処理1〜4は結構長いもの)
そうする場合、一つのクラスに
if (1の処理は五回未満){
1の処理
}else if(2の処理は3回未満){
  2の処置
  }else if(3の処理は6回未満){
  3の処置
  }else if(4の処理は6回未満){
  4の処置
}
としてループさせるのと

562540:2005/11/23(水) 00:18:31
>>558
そのような意味を込めて言ったわけではないのですけど・・・。
すみませんでした。
563デフォルトの名無しさん:2005/11/23(水) 00:18:52
if (1の処理は五回未満){
1();
}else if(2の処理は3回未満){
  2();
  }else if(3の処理は6回未満){
  3();
  }else if(4の処理は6回未満){
  4();
}
1のクラス 2のクラス 3のクラス 4のクラス
としてクラスを呼び出すのは、どちらが軽く処理されるのでしょうか?
mainのクラスを膨大にするより、クラスを別に作ってそっちで処理した方がいいのでしょうか?

iアプリのゲームを作っていてループさせることを考えているのですが
電池の消費量や、動作の重さがきになるので・・・
勿論、1〜4の流れを綺麗に固定の回数とかではなく、
いろんな要素での条件判断の上、処理を行うのですが、上手な説明の仕方がわからなくて・・・

どなたか詳しい方居ましたらお願いします
分かり辛いかもしれませんが・・・

564デフォルトの名無しさん:2005/11/23(水) 00:26:17
>>560
そいつはスマン。
だけど、どうであれ自分の都合の良い方に解釈した方が気分的に良いだろうとは思った。
565デフォルトの名無しさん:2005/11/23(水) 00:35:46
>>558
そりゃ曲解だと思うが。
566デフォルトの名無しさん:2005/11/23(水) 00:43:46
>>559
アニヲタネタを持ち出すとますますむかついてくるな。
アニヲタでないのにアニメ好きそうだろ
とか言ってくる奴や上司みているとぶん殴りたくなってくるんだよな。
567デフォルトの名無しさん:2005/11/23(水) 00:46:43
>>565
よく何か揉め事が起きると
「どうしてこんなことになったんでしょう」
とか無責任なことをいって責任を他人になすりつけて
甘えて自分があたかも
当事者でないかのようなフリをして逃げる奴がいるんだ。
そういう奴みたいでムカツクんだよね。

MLとか掲示板とかでもよくみかけるがね。
被害者面して自己解決しようとしないオバサンみたいなのに多いがな。
568デフォルトの名無しさん:2005/11/23(水) 00:49:50
>>563
> if (1の処理は五回未満){
> 1();
> }else if(2の処理は3回未満){
>   2();
>   }else if(3の処理は6回未満){
>   3();
>   }else if(4の処理は6回未満){
>   4();
> }
> 1のクラス 2のクラス 3のクラス 4のクラス
> としてクラスを呼び出すのは、どちらが軽く処理されるのでしょうか?
> mainのクラスを膨大にするより、クラスを別に作ってそっちで処理した方がいいのでしょうか?
>
> iアプリのゲームを作っていてループさせることを考えているのですが
> 電池の消費量や、動作の重さがきになるので・・・
> 勿論、1〜4の流れを綺麗に固定の回数とかではなく、
> いろんな要素での条件判断の上、処理を行うのですが、上手な説明の仕方がわからなくて・・・

で、どれくらい時間がかかるんだよ。
一回のループが大した時間でないなら電池消費量なんぞ
気にせんでもええだろしな。

パフォーマンスのことは実際に作ってそれが終わってから考えるべきだ。
作ってる最中にそんなこと考えているとコードが汚くなるし
自分が何をやろうとしていたのか忘れる。
各パターンで実際に自分で試してみるのがいい。
569デフォルトの名無しさん:2005/11/23(水) 00:58:36
>>567
しかし、確かにそういう奴はいるが、どう考えてもこの状況はそれと違うだろう。
まして「何がいけないのでしょう」と聞いている。言葉上に失礼な点もないし、
内容的にも、俺はこいつが自分のミスを認識していると解釈すると思うのだが。
ここは質問スレなのに、一体どうあんたはどう聞かれたら気がすむのかと。
570デフォルトの名無しさん:2005/11/23(水) 01:03:44
なんか日本語的に終わってるな。俺の文章。
ポチる前に分かりやすいよう並び替えたら、めちゃくちゃになってしまった。全文訂正。

>>567
確かにそういう奴はいるが、しかしどう考えてもこの状況はそれと違うだろう。
まして「何がいけないのでしょう」と聞いている。言葉上に失礼な点もないし、
内容的にも、俺はこいつが自分のミスを認識していると解釈するが。
ここは質問スレなのに、一体あんたはどう聞かれたら気がすむのかと。
571デフォルトの名無しさん:2005/11/23(水) 01:17:34
あの質問が有ります。
javaのインターフェイスって
要するにクラスのグループ化が目的で
インターフェイスで定義されてる抽象メソッド実装して
使うモノですよね・・・・
でもSerializableやswingのActionListenerとか
いんたーそれ自体がクラスのシリアル化やボタンアクションの
機能を持ってるみたいな気がするんですけど・・・・
これってどうなんでしょうか・・・・?
572デフォルトの名無しさん:2005/11/23(水) 01:19:10
>>571j
訂正
いんたー → インターフェイス
でした。
573デフォルトの名無しさん:2005/11/23(水) 01:19:54
Webページを取得し、
そのページの文字コードをUTF-8に変換したいのですが、
簡単な方法はないでしょうか?
HTTPかHTMLのヘッダのcharsetから分かるとは思いますが、
書かれていない場合などにも対応できる方法はないでしょうか?
ライブラリなんかがあるといいですが。。
574デフォルトの名無しさん:2005/11/23(水) 01:34:03
コンストラクタで得た値を使って、privateの配列を
作りたいと思うのですが、どうすればいいのでしょうか?
たとえば、

public class AAA{
private int size;
private double[] input = new double[size];

AAA(int a){
size = a;
}
}

これだと、input配列が上手く出来ていないようです。
どなたか教えてくださいm(__)m
575デフォルトの名無しさん:2005/11/23(水) 01:35:12
>>574
public class AAA{
private double[] input;

AAA(int size){
input = new double[size]
}
}
576デフォルトの名無しさん:2005/11/23(水) 01:44:19
悲しいほどに美しく動きました。
有難うございました。
577デフォルトの名無しさん:2005/11/23(水) 01:49:24
最近、本当に礼を言っているのか
どう見ても精子なのかわからなくなってきた orz
578デフォルトの名無しさん:2005/11/23(水) 01:51:35
> javaのインターフェイスって
>要するにクラスのグループ化が目的で
ちがう
579デフォルトの名無しさん:2005/11/23(水) 01:56:17
真・コンピュータ用語辞典
"どうしてでしょう
どうしてでしょう?
【発言・行動】
・メーリングリストなどで見かける、自称「初心者」の質問の仕方。
・「どうしてでしょう?」と書かれても、自分のところの開発・実行環境も書いていないし、エラーの状態も書いてないではねぇ〜。
・そう言う大事な情報を書かないのは、どうしてでしょう? こっちが聞きたい・・・。"
http://glossary.tank.jp/t0270.html
580デフォルトの名無しさん:2005/11/23(水) 02:16:10
>>579
ああそういうやつがあるのか。
でもそういうのがダメなら、一体どう聞けばいいのだろうね。
なぜ初心者に「どうしてでしょう」が多いのかといえば、
それは日本語で聞いているからと言う理由以外はないだろうね。
「どうしてでしょう」に他意やまして悪意があるわけではない。

しかし、>>558少なくとも「人様を見下してるようでむかつく」は曲解以外の何者でもないと思うが。
「情報が足らなくて分かるはずもない質問を平気でしてくる奴ばかりでうんざり」とかなら、
まあそうだろうね、でもここ初心者の質問スレだしそういういうのもしょうがないかな、ってなるけど。
581540:2005/11/23(水) 02:25:03
うぅ、私の失言でここまで事が大きくなるなんて;
本当にごめんなさい!

あれからJDKを更新したのですが、何故か未だにreplaceAllが使えないです;;
java -versionでバージョンを調べても、ちゃんと
java version "1.5.0_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-b05)
Java HotSpot(TM) Client VM (build 1.5.0_05-b05, mixed mode, sharing)
なっているのに、依然として
hunter.java:292: シンボルを解釈処理できません。
シンボル: メソッド replaceAll (java.lang.String,java.lang.String)
位置 : java.lang.String の クラス
tmp_str = tmp_str.replaceAll(" ", "");
が出てきます・・・。
CharSequenceの方も検索して、それで出てきた方法で試しましたけど、ダメでした。
582デフォルトの名無しさん:2005/11/23(水) 02:27:10
>>580
「どうしてでしょう?」って聞かれたら
「君が間違ってるから」って言いたくなるんじゃないかと

「ありますか?」って聞かれたら
「あります/ありません」って言いたくなるし
583デフォルトの名無しさん:2005/11/23(水) 02:28:11
>>578
そうなんですか・・・・?
詠んでる本にはそう書いて有りました。
では何が目的なのでしょうか?
584デフォルトの名無しさん:2005/11/23(水) 02:31:47
>>581
「うぅ」とか「;」とか「!」とか「;;」とか「・・・」とか
見事なまでに神経を逆撫でする表現がお得意なご様子
585デフォルトの名無しさん:2005/11/23(水) 02:33:29
日本企業に勤務する海外ITエンジニアの悩み − @IT自分戦略研究所
"ケース2 質問や確認をするとき
(×)「〜でしょう?」 → (○)「〜ですか」

 これは目上の相手を「むっ」とさせることが多い注意ポイント。
しり上がりの調子で文を結び、質問としているが、いい方によっ
ては非常に無礼に聞こえる可能性が高い。スキルがあるのにこ
の点で損をしていることは、Bridge Career Chainの第3期に相当
する人材など、日本での勤務経験がある方にも意外と多い
(Bridge Career Chainについては本連載第4回「中国人ブリッジ
SEのキャリアパス」を参照)。

 全体に共通することだが、日本語が少々しゃべれる外国人に対し
て日本人は一般に寛容である。その一方で「何だ、この人は!
失礼ないい方だな」と思っても、よほどのことがない限り相手の
日本語を直接注意することはないと考えた方がよい。"
http://jibun.atmarkit.co.jp/ljibun01/rensai/noeinjp13/noeinjp01.html
586デフォルトの名無しさん:2005/11/23(水) 02:35:16
別に効き方が気に入らなければ
無視すれば良いのでは?

ってかインターフェイスが
クラスのグループ化が目的な面も
かなり有ると思うですけど。
それ以外に何か有るんですか・・・・?
587デフォルトの名無しさん:2005/11/23(水) 02:36:30
>>582
それはただのイジワルというか冗談でしょ。

真面目な状況なら普通は、
「どうしてでしょう」→考えうる可能性を提示
「ありますか?」→ある/なし+軽く解説
情報が足らない→何を知らせればいいか(不足している情報はなにか)を伝える
だとおもうけど。
588デフォルトの名無しさん:2005/11/23(水) 02:37:30
>>585
わざわざそんなのをコピペして
ネチケットを啓蒙する方が怖い。
でしょうか?で答えてる普通の人も居る

589デフォルトの名無しさん:2005/11/23(水) 02:37:31
java3Dのこいつは読んどけって入門書ありますか?
3D関連スレで同じ質問をしていた人がいましたが、特に答えられてないようなので
質問・相談スレに聞きにきました。
590デフォルトの名無しさん:2005/11/23(水) 02:41:46
通りすがりですが。

>>581
pathが怪しいと思う。
コンパイルする時javacをフルパスで打ってみて。
例えば、
C:\j2sdk1.4.2_01\bin\javac Hoge.java
という感じで。
591デフォルトの名無しさん:2005/11/23(水) 02:41:51
>>587
おっしゃる通り「真面目な状況なら普通は」ということかと思う

ここでのやりとりが「真面目な状況」なのかどうかが疑問だし
ボランティアの回答者に「普通は」と言って多くを求めない方が良さそう

もしも回答してもらえて解決策が見つかればラッキーかと思う
592デフォルトの名無しさん:2005/11/23(水) 02:45:39
>>591
ってか掲示板で
585みたいなビジネスマナーを出すのも
おかしい。
586こそ普通の状態。
答えたく無ければ答えなくて良いわけだし
それとも日本語を訂正させて「むっ」しない
質問の仕方をしたら答えるってワケでも無いでしょうに。

ここは聞く自由も有れば答えない自由も有る。
593デフォルトの名無しさん:2005/11/23(水) 02:47:45
しかし590さんは漢だな〜
大体、日本語にケチを付ける奴に限って
何ひとつ答えずに板が荒れる原因にもなる。
594デフォルトの名無しさん:2005/11/23(水) 02:48:20
>>585
そんなのもあるのか。一応参考にしておこう。
しかし話し言葉において、それは外国人が日本語をよく知らずに
なんでも語尾上げで質問することにより生ずる問題じゃないかな。
595デフォルトの名無しさん:2005/11/23(水) 02:49:49
>>593
質問への注目を集めるために質問者が煽りを自演して
耐えかねた人から回答を引き出すという手法もあるようですよ
596591:2005/11/23(水) 02:53:20
>>592
なんで自分宛てに >>585 の話を「おかしい」と指摘されてるのかよくわからないけど
とりあえずビジネスマナーに適ったやり方をしておけば避けられるトラブルもありそう
597デフォルトの名無しさん:2005/11/23(水) 02:58:16
>>596
>>594に書いたけど、それは「外国人」で「会話」と言う条件下についてのものだと思うが
598デフォルトの名無しさん:2005/11/23(水) 03:08:41
>>597
確かに外人でしかも口答と
掲示板の文字では全然意味が違う。
単に気に入らないから変なコピペで
叩く理由を追加しただけでしょ。

正しい日本語の話題は文字コードだけで
十分。
599デフォルトの名無しさん:2005/11/23(水) 03:10:12
>>597
日本人だろうと外国人だろうと
会話だろうと書面だろうと
友人相手だろうと顧客相手だろうと
いかなる状況でも無難になるように
しっかりと準備した形にしておけば
より安全なんじゃない?
600デフォルトの名無しさん:2005/11/23(水) 03:18:53
>>599
だからさっき俺は>>594>>585が「いかなる状況でも無難」と言うものではなく
「口頭」かつ「外国人」と言う条件下で無難なものにすぎないといったのだが。

しかし、これではただの正しい日本語の議論になってしまって有意義でないな。
601デフォルトの名無しさん:2005/11/23(水) 03:23:01
VMのメモリが9G割当しても2Gしか割り当てられない
バグがあるのを見つけたんだけどどこに言えば改善してもらえるの?
602デフォルトの名無しさん:2005/11/23(水) 03:28:50
>>601
少なくともここではない
603デフォルトの名無しさん:2005/11/23(水) 03:28:57
>>601
恐らくそれはバグではありません。
32ビットCPUでアプリが使用可能なメモリは最大4GBまでです。
604デフォルトの名無しさん:2005/11/23(水) 03:40:29
で誰かインターフェイス分かる方は
クラスのグループ化が目的以外の
主要な目的とSerializableとかのインターフェイスの
挙動の謎を教えて頂けないですか?
605デフォルトの名無しさん:2005/11/23(水) 03:43:11
インターフェースのどのような挙動が謎であると思われているのでしょうか。
606デフォルトの名無しさん:2005/11/23(水) 03:49:36
>>605
すいません
571でも書いたのですが
自分が考えるavaのインターフェイスとはクラスのグループ化が目的
インターフェイスで定義されてる抽象メソッド実装して使うモノ。
でもSerializableやswingのActionListenerとか
それ自体がクラスのシリアル化やボタンアクションの
機能を持ってるみたいな気がするのですが・・・・
この挙動が自分には分からないのです。
607デフォルトの名無しさん:2005/11/23(水) 03:58:06
>>606
それ自体が機能を持っているわけでは在りません。
例えばSerializableは中身が空のinterfaceであり何の機能も持ちません。
それをimplementsする事により、プログラマがそのクラスのシリアル化を
許可するという意思を示しているに過ぎません。

オブジェクトのシリアル化を行っているクラスでは、該当のクラスがSerializableを
implementsしているかいないかを判定し、
「プログラマがシリアル化を許可しているクラスなのでシリアル化しよう」とか
「プログラマがシリアル化を許可していないからシリアル化しないことにしよう」とか
決定しているわけです。

ActionLisnerに関しては、何かのクラスにそのリスナを登録しておき
何かのイベントが発生した場合(例えばボタンが押された等)に
そのリスナのメソッドを呼んでもらうためのものです。
608デフォルトの名無しさん:2005/11/23(水) 04:05:46
>>601
動かしてるプラットフォームぐらいは書こう。
ふつうの設定のIA-32 Windowsならアプリケーションが扱えるメモリは2GB未満。
609デフォルトの名無しさん:2005/11/23(水) 04:06:54
>>607
さっそくのご回答有り難う御座います。
なるほど・・・・・
”オブジェクトのシリアル化を行っているクラス”ってのも
Serializableを実装してるって事ですか・・・・?
Objectクラスの様にオバーライドして使うメソッドが有るとか・・・・
自分で言って居て良く分からん・・・・・

610デフォルトの名無しさん:2005/11/23(水) 04:08:47
>>607
すいません。
もっと勉強して来て出直し来ます。
有り難う御座いました。
611デフォルトの名無しさん:2005/11/23(水) 04:12:31
>>609
>”オブジェクトのシリアル化を行っているクラス”ってのも
>Serializableを実装してるって事ですか・・・・?

違います。例えばあなたがSampleという名前のクラスを作成したとします。
Sampleクラスのシリアル化を行っても良いか悪いかの決定権は
あなたにあります。シリアル化を希望するならばSerializableを
impelmentsします。

シリアル化を実際に行っているクラスがSerializableをimplements
しているわけではありません。

シリアル化を行っているクラスに、あなたのSampleクラスが渡された場合、
そのクラスは

「むむ、Sampleクラスをシリアル化しろとの指令が来たけど、このクラスはシリアル化しても良いのかな?
Serializableをimplementsしていればシリアル化しても良いということだから、SampleクラスがSerializableを
implementsしているか調べよう」

という判断をしているわけです。
612540:2005/11/23(水) 04:14:38
>>590
見事にパスの設定忘れでした。
設定したところ、無事にコンパイルできました。
ありがとうですm(_ _)m
613デフォルトの名無しさん:2005/11/23(水) 04:17:58
>>611
本当に良い方ですね・・・・・
アホな質問に真摯に答えて頂いて有り難う御座います。
使用方法
シリアライザブルなオブジェクトをシリアライズする場合には
java.io.ObjectOutputStream、シリアライズしたオブジェクトを復元する
場合にはjava.io.ObjectInputStreamを使用します。
ってネットで見かけたのでここら辺のクラスが絡んでそうですね・・・
確かにこのインターフェイスの使い方を見ると
単純にインターフェイスとはクラスのグループ化が目的だけが目的とは
言えないけど・・・・・
Serializable x = new SampleClass()てのも有り得るワケですね・・・・
614デフォルトの名無しさん:2005/11/23(水) 04:23:05
>>613
interfaceはクラスのグループ化・・というよりは
その名の通り「インタフェース」を提供するものです。
「このinterfaceを実装したクラスには必ずこういうシグニチャのメソッドがあるよ」という
約束をするわけです。

ですのでSerializableはinterface本来の使い方とは異なる特殊な使い方だと言えます。
615デフォルトの名無しさん:2005/11/23(水) 04:27:30
>>614
自分の言う”クラスのグループ化”ってのは
実装クラスに同じシグニチャの(型と名前)メソッドを実装させて
インスタンス化の場合に便利にするって事が「インタフェース」
と考えてました。
616デフォルトの名無しさん:2005/11/23(水) 04:30:04
便乗質問
シリアライズできるクラスって
「そのクラス内で使用されているクラスが、すべてシリアライズできるクラス」
でいいんでしょうか?
617デフォルトの名無しさん:2005/11/23(水) 04:32:08
それに自分が詠んだ本には
継承やインターフェイス(継承するモンは無いですが)を使う時は
このンスタンス化の場合に便利にするって事だけの場合に使って。
それ以外はコンポジションやデリゲーションとか使えって書いて有ったし。
618デフォルトの名無しさん:2005/11/23(水) 04:32:32
>>615
>インスタンス化の場合に便利にするって事が「インタフェース」
>と考えてました。

それは多分誤解です。

例えば、ボタンがあります。
このボタンが押されると、ブザーが鳴るのか、核ミサイルが飛ぶのか
それはまだ判りません。

例えばその時、
「このボタンが押された時は、ButtonListenerインタフェースのonClickメソッドを
 呼ぶから、そのonClickメソッドの実装は、ブザーを鳴らすなり、ミサイルを
 飛ばすなりスキにしてね」
という約束事にしておくわけです。

後は、プログラマが、そのButtonListenerというインタフェースを実装したクラスを
スキに作ってボタンに渡してやればよいのです。
619デフォルトの名無しさん:2005/11/23(水) 04:36:15
>>616
それは違います。そのクラスの中にシリアル化できないクラスが含まれていれば
シリアル化できません。

>>617
経験を積めば段々判ってくると思うので、まずはいろんなコードを読んだり
プログラムを沢山書けば、自然にわかってくるはずです。
620デフォルトの名無しさん:2005/11/23(水) 04:37:39
JavaのIDEが無料になりすぎてどれがいいのか分かりません。
使った人とか適当でもいいので特徴とか教えてください。
621デフォルトの名無しさん:2005/11/23(水) 04:39:20
>>616
ここらへんに詳しく書いて有ります。
ttp://www.asahi-net.or.jp/~dp8t-asm/java/tips/Serializable.html

>>618
Serializableは特殊ですけども
ButtonListenerインタフェースには直接ボタンアクション
を起こすクラスが別に実装されてるって事ですよね・・・?
だから”クラスのグループ化”と別に機能のグループ?みたいなのが
インターフェイスって事ですか・・・・?

我ながら本当にアホだ・・・・
622デフォルトの名無しさん:2005/11/23(水) 04:42:49
>>615
>インスタンス化の場合に便利にするって事が「インタフェース」
>と考えてました。

便利にするには通常のクラスのほうが便利なんじゃないでしょうか。
派生クラスのほうで基底クラスとは違う処理のメソッドがなければオーバーライドしなければいいのですから。
interfaceを用いる場合は、このinterfaceから派生するクラスには
「このメソッドがなければならない」という縛りをつける時に使用する、でどうですか?
623デフォルトの名無しさん:2005/11/23(水) 04:44:58
普通のインターフェイスは何となく分かるんですが・・・
Serializableは特殊で
swingのActionLisnerは・・・・音を出す、核のミサイルってのは
自分で実装するのは分かるけど
ボタンアクションは・・・・・要するにGUIでユーザーがボタンをクリックした
時にそれアクションをするクラスが無いと駄目ですよね?
624デフォルトの名無しさん:2005/11/23(水) 04:47:39
>>621
インタフェースを提供するのがinterfaceです。
でも、今は深いことを考えずに先に進む事が重要だと思います。
ではおやすみなさい。
625質問:2005/11/23(水) 04:48:23
>>491でも書いたのですが、JAVAでアスキーコードとか用いて数値を変換するのプログラムとか教えてください。
626デフォルトの名無しさん:2005/11/23(水) 04:50:22
>>622
長々と付き合って頂いて有り難う御座います。;
この話題が気になって未だにeclipse3を立ち上げられない・・・・

「このメソッドがなければならない」という縛りをつける時に使用する」
が正に継承(実装する時)のキモと思うですけども

インターフェイスAを実装したB,C,Dが
A b = new B()
A c = new C()
A d = new D()を必ず保証するのが抽象クラスや
それを更に制約を強化したのがインターフェイスと考えてましたが・・・・
627デフォルトの名無しさん:2005/11/23(水) 04:50:28
>>619
えーと、確認です
>>616 「そのクラス内で使用されているクラスが、すべてシリアライズできるクラス」 → シリアライズできるクラス
>>619 「そのクラスの中にシリアル化できないクラスが含まれている」 → シリアライズできないクラス

>>616が違っていると言われた点はどこですか?
628デフォルトの名無しさん:2005/11/23(水) 04:51:15
>>624
有り難う御座いました。
629デフォルトの名無しさん:2005/11/23(水) 04:55:32
>>620
とりあえずEclipseでは?
情報も多いし、使用しているところも多い。
630デフォルトの名無しさん:2005/11/23(水) 05:04:41
>>629
Sun Java Studio Enterprise
Sun Java Studio Creator
とかあたりはどうなんでしょう。

JDeveloperとかも無料になってるし。
Microsft Visual Studio Express Edition
も一応J#とかいうへんなのは在るみたいですが。
631デフォルトの名無しさん:2005/11/23(水) 05:32:54
>>625 >>491
「数値を変換する」の意味がよくわかりませんが
int型数値を10進、8進で表現したいのであれば Integer.toString(int i, int radix)
文字コードとして扱いたければcharにキャストするだけ
なのだが…ちがうのか?
632デフォルトの名無しさん:2005/11/23(水) 05:42:14
J#って使ってるひといるのかな?
J#の存在意義がまったくわからない。
使っている人がいたら挙手、お願いします。
633デフォルトの名無しさん:2005/11/23(水) 05:51:59
>>625 >>491
つ[ Integer.parseInt(String s, int radix) ]
634デフォルトの名無しさん:2005/11/23(水) 06:01:11
>>518
WebServiceというCPUリソースを大量消費するテクノロを使うのに
なんでクライアント機は600MHzのマシンなんだ?
パソコンの中の人はXMLをエンコードしたりデコードしたり必死なんだぞ。
あれこれ努力する前にクライアント機を新調してくれ!


…と上司に報告だ!
635デフォルトの名無しさん:2005/11/23(水) 06:14:56
パフォーマンス面の問題の場合、ソフトウェアで努力するよりはハード
ウェアを買ってしまったほうがコストが低いことが多い。

636デフォルトの名無しさん:2005/11/23(水) 07:48:37
チラシの裏

スレ伸びてると思ったら
自治厨てかマナー厨が沸いてたのね
お前がどう思うかなんてどうでもいいんだよね
愚痴りたかったらマ板でどうぞ
637デフォルトの名無しさん:2005/11/23(水) 08:38:25
>>636
自己批判ですか
638デフォルトの名無しさん:2005/11/23(水) 08:45:22
>>637
自己批判こそ成長への鍵
639デフォルトの名無しさん:2005/11/23(水) 08:52:22
>>638
マジレスすると >>636 は自分のこと省みずに他人への文句として言ってるだけだろ
640質問:2005/11/23(水) 08:57:18
>>631>>633
数字を10,8,2進数に変換するのはInteger.parseInt(String s, int radix)を使えば良いと分かりました。
例えば、Bはアスキーコードでは102(8進数)なのですが、キーボードからBと入力したら102(8進数)と処理するプログラムを作りたいのですが、
アスキーコードをプログラムに関連付けるみたいな事は出来ないのでしょうか?
説明下手ですいません。
641デフォルトの名無しさん:2005/11/23(水) 09:00:12
>>639
マジレスいらんねん
642デフォルトの名無しさん:2005/11/23(水) 09:04:38
まぁ上で言葉遣いがどうとか発狂してた>>558
チラシの裏というか便所の落書きの>>636
全く無意味なマスターベーションだな
643デフォルトの名無しさん:2005/11/23(水) 09:10:56
>>640
> キーボードからBと入力したら102(8進数)と処理する
これじゃわからん。
644質問:2005/11/23(水) 09:24:45
>>640
例えば実行結果ですが
A〜Zまでのアルファベッドを入力して下さい。
B
Bは8進数で102です。
こんな感じです。
645デフォルトの名無しさん:2005/11/23(水) 09:27:07
それ宿題だろ?
だったら宿題スレ池
646デフォルトの名無しさん:2005/11/23(水) 09:30:28
>>644
char c = //入力
System.out.println(c + "は8進数で" + Integer.toString(c, 8) + "です。");

じゃいかんのか?
っつーか、>>631 で回答貰ってるような。
647デフォルトの名無しさん:2005/11/23(水) 09:33:29
>>640
たしかに宿題っぽいからスレ違うかもね。
たぶんこんな感じかな。

【キーボード(標準入出力の場合)】
Integer.toOctalString(入力された文字)で8進数に変換できる。

【文字列の場合】
文字列のStringオブジェクトからtoCharArray()でcharの配列を取得。
Integer.toOctalString(char配列[index])で8進数に変換できる。

【補足】
2進数・・・Integer.toBinaryString(int)
8進数・・・Integer.toOctalString(int)
16進数・・・Integer.toHexString(int)
648質問:2005/11/23(水) 09:37:29
>>646あ、アスキーコードとか使わなくてもInteger.toString(int i, int radix) を使えばいいんですね。
ありがとうございます!
649デフォルトの名無しさん:2005/11/23(水) 09:38:14
キーボートで押されたキーを判別するなら
KeyEventを拾って KeyEvent#getKeyChar()

てか明らかに宿題だな
650デフォルトの名無しさん:2005/11/23(水) 09:39:14
5.0以降ならprintf 使ってもOK。
System.out.printf("%1$cは8進数で%1$oです。", (int)c);
651質問:2005/11/23(水) 09:40:53
647>>さんもありがとうございます!
次からは宿題レスに行きます。
652デバッグよろ:2005/11/23(水) 11:01:09
import java.io.*;
public class Drink{
public static void main(String[] args){
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try{
// System.out.println("飲み物は何が好きですか?\n1 オレンジジュース\n2 コーヒー\n3 ミルク");
System.out.println("飲み物は何が好きですか?");
System.out.println("1 オレンジジュース");
System.out.println("2 コーヒー");
System.out.println("3 ミルク");
String line = reader.readline();
int n = Integer.parseInt(line);
switch(n){
case 1:
System.out.println("オレンジジュースです。")
break;
case 2:
System.out.println("オレンジジュースです。")
break;
case 3:
System.out.println("オレンジジュースです。")
break;
}
}catch(IOException e){
System.out.println(e);
}catch(NumberFormatException e){
System.out.println("数字の形式が正しくありません。");
}
}
}
653デフォルトの名無しさん:2005/11/23(水) 11:12:19
>>652
意地でもオレンジジュースなんだなw
654デフォルトの名無しさん:2005/11/23(水) 11:21:03
コマンドラインで
appletviewer test.html
と実行するとき、appletviewerを略してappvと出来るようにしたいのですが、教えてください!
appv test.html
こんな風にする方法です。
655652:2005/11/23(水) 11:23:56
>>653
あっ、間違えてた。でもそこは関係ないじゃん。コンパイルすると100個くらい
エラーが出る。エロイ人!!おせーてください。
656デフォルトの名無しさん:2005/11/23(水) 11:26:09
>>655
宿題なら宿題スレに行く方が良いと思うよ
仕様が不明な状態ではデバッグは無理だよ
657デフォルトの名無しさん:2005/11/23(水) 11:26:23
>>652
String line = reader.readLine();//Lを大文字

System.out.println("オレンジジュースです。");//;追加×3
658652:2005/11/23(水) 11:40:45
>>657
どうもありがとうございます。

>>656
そうですか。宿題スレにいってきます。
659デフォルトの名無しさん:2005/11/23(水) 12:16:41
>>627
あるインスタンスのtransientでないフィールド(クラス、インスタン共)の
インスタンスがSerializableでかつ、それらのインスタンスを再帰的に調べてもずっと
Serializableなインスタンスばかり含まれる場合のみシリアライズを実行可能、ってことだろう

例えばシリアライズしたいインスタンスのクラスに、public Parent p; というフィールドがあって
public Parent implements Serializable {....}
であったとしても
public Child extends Parent {
private NotForSerialize a;//シリアライズできないクラス
}
となっていて、 p = new Child(); と代入されていた場合は
この「インスタンス」はシリアライズできない
ってことが619の言いたい事ではないかな?
660デフォルトの名無しさん:2005/11/23(水) 12:25:04
class抜けてたよorz
661デフォルトの名無しさん:2005/11/23(水) 12:44:25
>>604
デザインパターンの本を読め

そうすれば謎は解ける。

とりあえず結城浩の「Java言語で学ぶデザインパターン入門」でも
よんどけばわかる。
662デフォルトの名無しさん:2005/11/23(水) 12:46:17
あと、「シリアライズできない」の意味も2重にあるね
→ 実行時例外 NotSerializableException 発生
→ 例外は発生しないが、シリアライズ・デシリアライズの結果が「正しく」ない
ex)スーパークラスがSerializableじゃなかった
663デフォルトの名無しさん:2005/11/23(水) 12:46:56
>>630
Sun Java Studio Enterprise
Sun Java Studio Creator
がただになったってことは
NetBeanはいらなくなる?

NetBeansのほかにCreatorもEnterpriseも複数インストールするのだるいんだよね。
メインはEclipseを使っているだけに。
GUIを作るときだけCreatorを使うっててもありか。

664デフォルトの名無しさん:2005/11/23(水) 12:47:52
>>630
J#は別物でJavaではないだろう
665デフォルトの名無しさん:2005/11/23(水) 12:52:28
CreatorでGUIだけって・・・正気か
666デフォルトの名無しさん:2005/11/23(水) 14:57:17
JAVA 2 SDKダウンロードしたいんだけど
サン・マイクロシステムズのHP落ちてない??
他に方法ない??
667デフォルトの名無しさん:2005/11/23(水) 15:06:04
>>666
ダウンロードできたよ。
668デフォルトの名無しさん:2005/11/23(水) 15:11:37
>>667
詳しく.
ttp://jp.sun.com/
アドレス間違ってる???
669デフォルトの名無しさん:2005/11/23(水) 15:12:17
>>668
普通は java.sun.com
670デフォルトの名無しさん:2005/11/23(水) 15:32:24
>>668
jp.sun.com でもいけたぞ。
ちょっとつながらなかっただけで鯖落ちを疑うなよw
671デフォルトの名無しさん:2005/11/23(水) 15:49:08
>>654
つ[ MS-DOSバッチファイル ]
672デフォルトの名無しさん:2005/11/23(水) 15:56:08
>>670
マジで.落ちてないんだ.
何回やっても繋がらないOrz
673デフォルトの名無しさん:2005/11/23(水) 16:40:11
>>672
おれも繋がるぞ。
繋がらないのは、まぁいわゆるウイルスだ。気にするな。
でもここからJ2SDKのダウンロードページに行けるの?
674デフォルトの名無しさん:2005/11/23(水) 17:04:08
SunのWebサイトが繋がりにくいのも事実だ。
675デフォルトの名無しさん:2005/11/23(水) 17:30:04
>>654
でも載せたのですが、コマンドラインでappletviewerを略す方法教えてください。
676デフォルトの名無しさん:2005/11/23(水) 17:31:37
>>675
それは Java に関する質問というよりもむしろ OS 関連の質問になります
残念ながらスレ違いですので適切な場所に移動してご質問ください
677デフォルトの名無しさん:2005/11/23(水) 17:47:10
classファイルをバイナリ解析する方法があると聞いたのですが、どうやればいいのでしょうか?
また、解析するとどのような情報がわかるのでしょう?
678666:2005/11/23(水) 17:56:00
気がついたら3時間・・・・
俺釣られてる??マジで落ちてない??
679デフォルトの名無しさん:2005/11/23(水) 18:05:05
>>678
今、ダウンロード開始して見た
680デフォルトの名無しさん:2005/11/23(水) 18:28:26
>>677
>解析するとどのような情報がわかるのでしょう
ソースコードがほぼ完全に復元できます。

class のフォーマットについて死ぬほど詳しく載ってる書籍があったと思ったけど、
名前忘れた。スマヌ。
681デフォルトの名無しさん:2005/11/23(水) 18:48:51
>>680

>ソースコードがほぼ完全に復元できます。

これはすばらしい・・・
ううむ、なんと言う書籍なんでしょうねぇ。

Webで探してもあまり多くの情報は出てこないし・・・
682デフォルトの名無しさん:2005/11/23(水) 18:55:12
何ヶ月か前にJAVAを始めて現在数値計算用のプログラムを作っているのですが、
整数の値がLong型で表すことができる値を超えてしまった場合の例外処理はできるのでしょうか?
683デフォルトの名無しさん:2005/11/23(水) 19:03:46
>>682
Long型の定義がわからないので答えようがありません。

大文字小文字もだけど、全角半角もちゃんと区別しろよ。
684デフォルトの名無しさん:2005/11/23(水) 19:25:52
このサイト見たらプログラムもあるし、画像処理何でも出来るってサイトない?
685デフォルトの名無しさん:2005/11/23(水) 19:33:51
ない
686デフォルトの名無しさん:2005/11/23(水) 19:45:48
あるだろ?
687デフォルトの名無しさん:2005/11/23(水) 19:46:49
>>683
すみません
整数を表すデータ型のlongです
688デフォルトの名無しさん:2005/11/23(水) 19:48:39
Javaには整数型のオーバーフローはないよ
689デフォルトの名無しさん:2005/11/23(水) 19:51:42
オーバーフローはするだろ。例外は飛ばないけど。
690デフォルトの名無しさん:2005/11/23(水) 19:57:14

オーバーフローしないよ
691682:2005/11/23(水) 20:02:03
>>688-689
dクス
確かにオーバーフローはしないんですが符号が
入れ替わって何事もなかったかの様に動作するのが気に食わないのです
別の対策を考えてみます
692デフォルトの名無しさん:2005/11/23(水) 20:03:44
なにをオーバーフローという言い方するかの問題だけな希ガス
そもそも桁数が大きい場合BigIntegerとかBigDecimalとかがあるわけだが
それらは考慮したのかな
693689:2005/11/23(水) 20:05:34
>>690,691
表現できるビット数を超えてしまって意図しない値になることを
オーバーフローと呼ばないのであれば何もいうことはない。
694デフォルトの名無しさん:2005/11/23(水) 20:23:51
>>692
BigIntegerなどについては現在考慮中ですが、
まずはエラー処理をきちんとしておきたかったのです。

>>693
確かにそうなのですが、
エラーとしてプログラムが止まってくれないのでこのような表現をしていますた。
695デフォルトの名無しさん:2005/11/23(水) 21:52:20
>>665
CreatorってGUIを作るために
生まれたんじゃないのか?
SwingとかではなくWebのGUI専用か?
696デフォルトの名無しさん:2005/11/23(水) 21:53:30
>>672
リロード汁。

shift押しながらブラウザのリロードボタンを押せ
697デフォルトの名無しさん:2005/11/23(水) 21:55:34
>>675

>>676
OSの問題でなくても解決できることはある
それは、バッチファイルやシェルスクリプトの他に、
Apache Antを使う方法だ。

cmdタスクまたはexecタスクを使うことになるが。
だがM$-DOSバッチファイルやシェルスクリプト、GNU make
よりもわかりやすく書くことができる。
698デフォルトの名無しさん:2005/11/23(水) 21:57:24
>>678
ブラウザのキャッシュを消せ。
ダウンロードページをもう一回最初からたどれ。

ダウンロードに失敗して
ブラウザの戻るを一回押しただけだと
赤い背景のボックスで警告が出るだろう。
そしたらもっと「戻れ」

わからなければjava.sun.comの最初のぺーじで
シフトキーをおしながらなんどもリロードしろ。

699デフォルトの名無しさん:2005/11/23(水) 21:57:39
>>663
http://goodjob.boy.jp/chirashinoura/detail/id/46.html
JavaでGUIアプリを作るならこのへんで基本的なコーディングは理解しておいた方がいいよ

700デフォルトの名無しさん:2005/11/23(水) 21:58:19
>>698
それは F5 攻撃。リロードは程々に
701デフォルトの名無しさん:2005/11/23(水) 21:58:27
>>683
確かにLong型は存在しないがLong型とlong型は存在するんだな
702デフォルトの名無しさん:2005/11/23(水) 22:01:20
>>699
親切にサンクス
以前も秀丸+antだけでSwingで電卓作ったんだが
なんとかレイアウトとか出たが、
デザインパターンを応用する方法がわからなくて。
GUI開発やるときロジックとGUIをどう分離するか
気になって。

Eclipse3.1でVisual Editorプラグイン使って
開発すること考えたんだが、使い勝手悪いという噂を聞いて
SunのIDEのほうがいいとか聞いたので今検討しているのでありますなのだ。

703デフォルトの名無しさん:2005/11/23(水) 22:05:49
>>694
Long.MAX_VALUEを越えることがわかってるなら
BigInteger使った方が楽でいいよ。
longの最大を超えるほど計算する必要が
ないってことがわかってるならBigIntegerつかわなくてもいいけど
途中の計算で越えることがあるならBigIntegerつかってもいいかと。
パフォーマンスに多少悪影響はでるけど、
小数点数なら10進2進変換誤差が無い分精度が保てる。
704デフォルトの名無しさん:2005/11/23(水) 22:07:39
>>691
> >>688-689
> dクス
> 確かにオーバーフローはしないんですが符号が
> 入れ替わって何事もなかったかの様に動作するのが気に食わないのです
> 別の対策を考えてみます

longって例外も履かないそんな恐ろしいもんだったのか
へぇー。
履くようにstaticメソッドとかで設定することってできないのかな。

あ、strictfp修飾子をclassやメソッドの頭に追加するだけじゃ解決しない?
か?
705デフォルトの名無しさん:2005/11/23(水) 22:08:54
strictfpは浮動小数点専用だった
スマン関係なかった
706デフォルトの名無しさん:2005/11/23(水) 22:10:48
>>704
メジャーどころの言語だとlongに限らず整数型は全部そうだろ。
いやC#はコンパイルオプションで例外をはくようにできるんだったか。
707デフォルトの名無しさん:2005/11/23(水) 22:17:37
>>706
MSIL にはフロー時に例外吐く命令があったはず。Java には無いんだっけ?
708デフォルトの名無しさん:2005/11/23(水) 22:18:01
なんかこええな。
事前にこのプログラムはlongのmaxを越えてしまいそうか
推測できるようにしておかないととんでもないことに
なりそうだな。
709デフォルトの名無しさん:2005/11/23(水) 22:20:16
>>702
NetBeansおとしてくれば?
レイアウトマネージャの勉強になると思うよ

JPanelにボーダーセットしてみれば各種パラメータの動きが分かると思う

Swingを本格的にやりたい場合現実的にNetBeansしかないからね
あとはノウハウとか貯めていければ
710デフォルトの名無しさん:2005/11/23(水) 22:21:41
>>708
何の言語でも範囲を特定しておくのは普通なんじゃ・・・
711デフォルトの名無しさん:2005/11/23(水) 22:22:06
>>702
VEは重たいから、そのうちだんだん苦痛になってくるよ
コーディングで対処した方が実は効率よかったりする
712デフォルトの名無しさん:2005/11/23(水) 22:25:26
>>710
ってことは最初からBigIntegerってことかね。

っていうかlongでmaxを越えることって滅多にないってこと?

doubleで限界を超えることがあるなら
んなことはないと思うのだが。


713デフォルトの名無しさん:2005/11/23(水) 22:29:14
Mathクラスにhtpot()なんてメソッドが追加されていることに
初めて気づいた。

へぇー

今まで自作してたけどこいつをつかえば
複素数クラスを自作しているときにわざわざ作ってしまったのだが。
他にもいろいろあるんだなlog10()とかlog(n+1)とか。
双曲線関数とか。ulpとか
それよりlog2()はないのか?

log_n(a)がないってことはやっぱりlog(n,a)みたいなメソッドを自作ってことか。

714デフォルトの名無しさん:2005/11/23(水) 22:30:34
立方根cbrt()も追加されていた。

ただしaconh(), asinh(), atanh()が
ないのが残念だ。
715デフォルトの名無しさん:2005/11/23(水) 22:41:12
>>711
コードレベルでいいレベルならそれでもいいけど
実際のところ画面数が多いとかコンポーネントの数が多い場合
コードレベルで開発されたら仕事だったらそいつぶっとばしてるけどね


>>712
doubleで超えるって・・・何の計算するんだ?
そもそも浮動少数は範囲が保証じゃなくて有効桁数で保持してるだけ
誤差を前提にそれらしい値をとるだけ

それはBigDecimalでもどこで切るかというだけでいえることだけどね
716デフォルトの名無しさん:2005/11/23(水) 22:55:12
>for (String line; (line = br.readLine()) != null; ){ ... }
じゃぁおまえらこの書き方普通に使うんだな?
「やめましょうよぉこういう書き方すんの(苦笑)」と、言われるのがオチだ
717デフォルトの名無しさん:2005/11/23(水) 23:01:00
>>716
・・・
恥ずかしいからもう止めとけ
718デフォルトの名無しさん:2005/11/23(水) 23:10:46
牧瀬理穂って34才なのか
719デフォルトの名無しさん:2005/11/23(水) 23:24:23
JAVA初心者です。
プログラムを書いていて、try−catchを用いて例外処理を加えると
互換性のない型というエラーがでてしまいます。
これはどうしてなのでしょうか??
ご教授お願いします。
720デフォルトの名無しさん:2005/11/23(水) 23:34:29
>>661
こんばんわ
自分は"10日でおぼえるJavaオブジェクト指向入門教室"
って本を読んでいまして・・・・・
まぁ10日で覚えられるワケも無く・・・・・
昨日自分なりに考えた訳ですけども
Serializableは特別として
swingのActionListenerインターフェイスを使う時はactionPerformed()メソッドを
実装するワケですけども実際使う時はactionPerformed(ActionEvent e)で
このActionEventのオブジェクト eを受け取るからボタンアクションした時の
トリガーで自分が実装した処理を行うワケですよね・・・?
だから別にインターフェイスがボタンアクションの挙動を持ってるワケでは無い。
違うでしょうか・・・・?
721デフォルトの名無しさん:2005/11/23(水) 23:34:59
>>719
このあたりかなぁ。もっと良いページあったように思ったけど失念した。
ttp://www.redout.net/data/osietekun.html
722デフォルトの名無しさん:2005/11/23(水) 23:35:02
>>719
コードうp
723デフォルトの名無しさん:2005/11/23(水) 23:35:56
>>719
あなたが互換性のない型の値を誤った方法で処理しているからでしょうね
724デフォルトの名無しさん:2005/11/23(水) 23:41:45
>>720
勉強し始めて10日しか経ってないのなら、機械的にコードを書くだけに留めた方が吉。
下手に考えるとドツボにハマるよ。

とりあえず、class と interface に意味的な差はあまり無いことだけ覚えとけば良い。
技巧的な差はかなり大きいんだけど。
725デフォルトの名無しさん:2005/11/23(水) 23:44:05
>>716
おれはwhileを使って書く
726デフォルトの名無しさん:2005/11/23(水) 23:47:12
>>724
いえいえ。
javaを勉強し始めたのはもう随分前です。
前のスレでも書きましたけど
eclipse3やmysql、tomcat,jamesとかでweb鯖を実験的に
立てたりしてるんですけど・・・・
設定ばっかり詳しくなってもう少しjavaの基本の事を
勉強しようと思ったので・・・・・
どうも根っこの部分が分からないと気持悪いので質問してます。
分かってないのにアホな質問を連発してすいません。
727デフォルトの名無しさん:2005/11/23(水) 23:51:11
>>720
結城浩の本は初心者向けで
わかりやすいからデザインパターンの
本もさくっ、さくっ、と読めるぞ。

packageがなんであるか、オーバーライドがなんであるか、
interfaceとabstractがなんであるるかが概要程度で
わかっていれば問題なしに読める。
クラス図とか(独自記法だがバージョンの古い)UML使って解説
してるからわかりやすい。例もあたえているし
ソースコードもすべて書いてるのでさくっといける。
とりあえずデザインパターンの第一章 Iteratorパターンと
次のパターンAdapterパターンを読めば
interfaceがなんであるかすぐわかる。
メソッドの引数に自分が定義したinterfaceの型を指定するとか
いうやり方もにもinterfaceは使える。
ほかに、一つのオブジェクトに対して、複数の型を持たせられるという
メリットもある。それもメソッドの引数にしていするためだが。

メソッドの引数をserializableインターフェースを実装したクラスの
オブジェクトだけしか入れたくないときとかに役立つ。
public Serializable doMethod(Serializable serializableObject){
 ・・・・ new ObjectOutputStream(・・・・・・・serializableObject・・・・);
}
みたいなものとか。直列化可能なオブジェクトしか使えないメソッドってことで。

728デフォルトの名無しさん:2005/11/24(木) 00:00:40
>>727
なるほど・・・
金が無いんで立ち読みして良さ気だったら買います。
729デフォルトの名無しさん:2005/11/24(木) 00:01:24
>>715
> >>712
> doubleで超えるって・・・何の計算するんだ?
> そもそも浮動少数は範囲が保証じゃなくて有効桁数で保持してるだけ
> 誤差を前提にそれらしい値をとるだけ
10進2進変換誤差もある程度解決できるし、金融系にも使えるし
研究にもつかえるし、ま、いいんでないかと。
あとJakarta Commons MathのAPIに
BigMatrixというクラスが追加されたぞ。
BigDecimal対応だ。待ちに待っていた、という感じだぜ。
今まで自作していたんだけどな。

Overview (Math 1.2-dev API)
http://jakarta.apache.org/commons/math/apidocs/org/apache/commons/math/linear/package-summary.html

> それはBigDecimalでもどこで切るかというだけでいえることだけどね

その心配も、Java SE 5 Tigerから追加された
java.math.MathContextというクラスで解決できる。
こいつで桁数精度を指定してnewしたオブジェクトと、
RoundingMode列挙型をBigDecimalのコンストラクタに指定すれば
自動的に指定された場所で切ってくれる。
すでに列挙型定数としてDECIMAL_128とかいうのがあって
そいつを指定すれば128bitsで計算してくれる。
C#のdecimal型とほぼ同じ精度で計算ができるようになる。
BIgDecimalにはスケールというフィールドが用意されていて
そいつをBigDecimal#setScale()で調整できる。

Commons Mathは複素数や正規分布とか統計学とか
ガンマ関数、β関数とかも追加されて気がつけば
凄いことになってるな。
730デフォルトの名無しさん:2005/11/24(木) 00:04:30
>>728
図書館にリクエストするという方法もあるぞ。

結城浩はキリスト教徒だからなのか
わかりやすく解説してる感じがする。
その代わり初心者向けなので
慣れてくると物足りないと感じてくる。
そのときは他の本も読むべし。
731デフォルトの名無しさん:2005/11/24(木) 00:06:24
>>726
そんなに設定ができるってことは
他の原語の経験もありそうだな。
他の原語の影響で基本文法しってるなら
Javaもすぐに習得できるだろう。
今までどんな原語を覚えていたかにもよるが
Cをしっていればすぐにわかる。
732デフォルトの名無しさん:2005/11/24(木) 00:08:25
>>730
別にキリスト教徒かどうかは良いですけどw
昔、図書館にリクエストしたら古い本は駄目でした。
でも有名な人の本なら他の地域の図書館に有るかもですね。
でもインターフェイスって普通に実装して使う以外に
引数にして使うとかも有るんですね・・・・・
想像した事も無かった。
733デフォルトの名無しさん:2005/11/24(木) 00:11:40
>>732
あ〜。妙な解釈すると、インタフェイスは 『多重継承できる抽象クラス』 でしかないのよ。
インタフェイスを特別な何かと思っちゃダメ。
734デフォルトの名無しさん:2005/11/24(木) 00:13:48
>>731
いいえ、友達のプログラマ崩れ?っぽい奴が
居ていくつか本を貰ってjavaを独学でやりました。
javaはコードはeclipseで何とか楽出来てますけど
環境作る方が時間食ってる気もします。
もう少しjavaの基本を高めて複雑なプログラム作りたい
と思って・・・・・
735デフォルトの名無しさん:2005/11/24(木) 00:14:22
>>721
>>722
>>723
どうしてもエラーが消えず、例外の簡単なプログラムを作って
みたのですが、これでも互換性のない型とでてしまいます。
何が行けないのでしょうか??
class ArithmeticException {
public static void main(String args[]) {
int a = 10;
int b = 0;
int c;

try {
c = a / b ;
System.out.println( "c = "+c );
}

catch(ArithmeticException e){
System.out.println( "ArithmeticException!! bが0のため計算できません。" );

}
finally {
System.out.println( "Exception checking completion" );
}
}
}
ご教授いただけたら幸いです!!


736デフォルトの名無しさん:2005/11/24(木) 00:20:53
>>733
それって良く言いますよね・・javaは多重継承が無い代わりに
インターフェイスが有るって・・・。
インターフェイスAとXを実装したB,C,Dが
A b = new B()
A c = new C()
A d = new D()

X b = new B()
X c = new C()
X d = new D()
って使える場合が多重継承ですよね・・・
プラグラムでAやBを意図的に選択する・・・・・
ヤバイ、8ビットの俺の頭が痛くなってきた
737デフォルトの名無しさん:2005/11/24(木) 00:21:41
>>735
問題なのは、この行
>class ArithmeticException { 

こう変えれば治る
>class ArithmeticExceptionSample { 
738デフォルトの名無しさん:2005/11/24(木) 00:24:39
>>736
そう考えるから難しい。
単純に、B, C, D は A として扱うこともできる、X としても扱うこともできると考えれば良い。

ActionListener と Serializable を実装した Sample クラスは、
ActionListener として扱うことが出来るし、
Serializable としても扱うことが出来る。
739デフォルトの名無しさん:2005/11/24(木) 00:30:36
>.>738
この場合は
例えば
X b = new B()
でAの抽象メソッドAmethd()は
b.Amethd()っでも利用出来るワケですか?

自分は主にjsp/servletを書いてますけど
インターフェイスはSerializable以外実装した覚えが無い。

インターフェイスを使うレベルって何か相当高そうですね・・・・
740デフォルトの名無しさん:2005/11/24(木) 00:30:39
わりとオブジェクト指向のことは忘れて
「Javaはこう書かないとダメらしい」ぐらいでもいいんじゃないかなぁ。
コードをがしがし書くうちに
「なんかおれ似たような処理、あちこちに書いてるなぁ」
とか思い始めたら「継承」「ポリモーフィズム」の出番だ。

GUIまわりを扱うとどうしても継承やらポリモーフィズムが出てきちゃうんで
コンソールアプリケーションでロジックを極めてから
外のグラフィカルな世界に出ていければいいんだけど…
…いまどきCUIなんてつまらないかもね。
741デフォルトの名無しさん:2005/11/24(木) 00:32:04
>>735
互換性のない型のエラーがやっと消えました(;_;)
ありがとうございました。
もっともっと勉強します(;_;)
742デフォルトの名無しさん:2005/11/24(木) 00:34:54
>>741
あ、ちなみに何でクラス名を変えるとエラー消えるのかもちゃんと考えとくことを薦めるよ。

ヒントは、この行の ArithmeticException はどのクラスを指していたか。
>catch(ArithmeticException e){
743デフォルトの名無しさん:2005/11/24(木) 00:36:12
>>740
あなたはどんな場合にインターフェイスを
使ってらっしゃるんですか・・・・?
言葉では難しいかも知れませんけど良ければ参考に
したいので教えて頂けますと有り難いのですけども・・・・
744デフォルトの名無しさん:2005/11/24(木) 00:38:56
>720
> 10日でおぼえるJavaオブジェクト指向入門教室

これあんまり薦めない。
丸の内とらの書いた本って他はどうか知らないけど、
「10日で〜」に限っては身についた気がしない。
745デフォルトの名無しさん:2005/11/24(木) 00:46:45
触って慣れるに限るよな。
そういう本を読んだ奴に限ってmainに全部突っ込みたがる
746740:2005/11/24(木) 00:52:12
>>743
正直、あまり使わない。
interfaceは本当に根幹に近い基底クラスの代わりにしか使わないから
一からライブラリを構築しようとするときにしか使わない。

でもJavaの場合、標準のAPIでも大抵の物は用意されているし
用意されていなくても、オプションで世界標準ともいえるような有名どころが作った
ライブラリが無料で手に入る。
まず既存のクラスから派生できないか考えて、たいていどこかに落ち着く。
interfaceをもし使ったとしても教科書どおりの使い方しかおれにはできないです。
747デフォルトの名無しさん:2005/11/24(木) 00:52:25
>>743
まぁ書いた人にもよるでしょうけど

jsp/servletの山田先生のは分かりやすくて良かったです。
でもjavabeanくらいしか使って無いですね・・・・
748デフォルトの名無しさん:2005/11/24(木) 00:56:15
>>746
なるほど・・・・
でもインターフェイスの基本をちゃんと分かってれば
ライブラリとかも使いやすいですよね・・・・
749デフォルトの名無しさん:2005/11/24(木) 00:59:15
>745
というか、この手の指南本って
ほとんどmainの中に全部が突っ込まれてないか?
図書館にあるのをいくつかちらっと覗いてみたが、
ソースがずーっと何ページも続くものの多いこと。

むしろ良書ってどれなのか教えてほしいくらいだよ。
750デフォルトの名無しさん:2005/11/24(木) 01:04:07
>>739
> X b = new B();
Xに入れたものはXで定義したメソッドしか呼べない。
751750:2005/11/24(木) 01:05:33
訂正
Xとそのスーパークラス(もしくはスーパーインターフェース)で定義されているメソッドしか呼べない。
752デフォルトの名無しさん:2005/11/24(木) 01:07:05
>>749
その本ではデザインパターンの基本だけ
GoFのTmplateやFacadeなんかも
教えていて・・・
インターフェイスの項目も
実装したオブジェクトを配列でインスタンス化して
mainで使うサンプルが有りました・・

>>750
ご親切に有り難う御座います。
753デフォルトの名無しさん:2005/11/24(木) 01:09:02
>>746

えー?クロージャ作るのに使いまくりですが。
754デフォルトの名無しさん:2005/11/24(木) 01:09:22
>>729
いや、MathContext使っているからこそ
今まで以上に有効桁数を意識するんだけどな

でも演算するたびにこまめにMathContext設定するのも割りとだるいね
BigDecimalは演算のたびに新しいBigDecimal返すから仕方ないんだけど

BigDecimalを3で割ったらエラーでましたとか
なんつーかもっといい実装というか使い方はできないのかなぁと

プリミティブのように扱いたいところだね
755740,746:2005/11/24(木) 01:10:16
>>748
そうですね。
知識としては必須ですよ。
756デフォルトの名無しさん:2005/11/24(木) 01:13:58
みなさん
ご親切に有り難う御座いました。
自分なりに頑張ってレベルアップして
行きたいと思います。
m(_ _)m ペコリ
757デフォルトの名無しさん:2005/11/24(木) 01:25:43
まだまだ始めたばかりですがjavaを勉強しております。
equalslgnoreCaseの使い方がいまいち解らなく質問させてもらいます。

取りあえず書いたプログラムは
import java.io.*;

class StringTest1{
public static void main(String args[]) throws IOException{

System.out.println("irete");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String str1 = br.readLine();
System.out.println("irete");

String str2 = br.readLine();

boolean flag = str1.equalslgnoreCase(str1);

if (flag == true ){
System.out.println("issyo");
}
else{
System.out.println("tige-");
}
}
}

です。修正していただけると幸いです。
758デフォルトの名無しさん:2005/11/24(木) 01:26:18
>752
「10日でおぼえるオブジェクト指向入門」のことか?
うん、持ってるから知ってるよorz

この本よりも「オブジェクト脳の作り方」のほうがためになる。
サッとさらった程度だが、何だか分かりやすくて良い。
内容が気安い感じがするんだよな。
イラストはダサいが。
759デフォルトの名無しさん:2005/11/24(木) 01:40:56
>>757
何を質問したいのかコードから全く見えないので、とりあえずequalsIgnoreCaseだけ説明。
つーかメソッド名の通りなので、説明するほどのコトでもないのだが
「文字列かどうかを判断する (大文字/小文字を無視) 」ってだけ。

"ABC".equals("ABC") true
"ABC".equals("abc") false

"ABC".equalsIgnoreCase("ABC") true
"ABC".equalsIgnoreCase("abc") true
760759:2005/11/24(木) 01:42:00
訂正
x 「文字列かどうかを〜
o 「同じ文字列かどうかを〜
761デフォルトの名無しさん:2005/11/24(木) 01:46:24
>>759
ありがとうございます。
意味解りませんよね。すみません
しかも、プログラム間違えてるし…。
str1とstr2に大文字小文字の変化だけつけた文字列を入れて
一緒なのか確認したかったのです。

どうやらコンパイルしようとすると
boolean flag = str1.equalslgnoreCase(str2);
この文法が間違っているようでコンパイルできなかった為に
equalslgnoreCaseの書き方を知りたかったのです。
762746:2005/11/24(木) 01:47:17
>>753
Javaで無理してクロージャもどきを使わなくてもいいと思う。
763デフォルトの名無しさん:2005/11/24(木) 01:48:58
軽く鬱病
764デフォルトの名無しさん:2005/11/24(木) 01:50:02
入れて なんてまた卑猥なプログラムですこと
765デフォルトの名無しさん:2005/11/24(木) 01:52:21
時間も時間だし、ireteと書いた。
今は反省している。
766デフォルトの名無しさん:2005/11/24(木) 02:05:57
知ってる?
Javaを極めたヤツのことを Java man って言うんだぜ!
767デフォルトの名無しさん:2005/11/24(木) 02:25:23
Javaのマニュアル見るコマンドだな。
768デフォルトの名無しさん:2005/11/24(木) 02:27:03
>761

boolean flag = str1.equalsIgnoreCase(str2);
といれてみては?
769デフォルトの名無しさん:2005/11/24(木) 02:36:10
DIとAOPを勉強しようと思ったらどの本読めばいいでしょうか?
なんか最近シーサーとかAspectJを使うよりもああゆうのを
全部一から創って見たいのですがどこから手をつけていいやら
ここにいる人はそんなの簡単にできるけど時間が無くてやらないって
聞いてきたのでもし知っていたら、本とか資料とか教えてください。
770デフォルトの名無しさん:2005/11/24(木) 03:52:05
>>768
本当にありがとうございます。
できました。 lとIの違いだったとは…。
やっと寝れます。
771デフォルトの名無しさん:2005/11/24(木) 04:42:23
>>766
いや、J2EEエンタープライズアーキテクトです
772デフォルトの名無しさん:2005/11/24(木) 04:43:27
>>735
> class ArithmeticException {

これはこれを見たとき、わざとやってる釣りかと思った。
773デフォルトの名無しさん:2005/11/24(木) 08:42:48
今日からJAVAはじめようと思って、ダウンロードしたまではいいのですが、
パス、クラスパスの設定のところで詰まりました。WindowsXPです。
パス、クラスパスを設定し、その場で作ってみたサンプルプログラムを実行するとうまくいきます。

ところが、一度コマンドプロンプトを閉じ、再度コマンドプロンプトを立ち上げると、
先ほど設定したはずのパス、クラスパスが無かったことになってしまっているようです。
原因がわかる方いましたら、解決策を教えてくださいませ。
774デフォルトの名無しさん:2005/11/24(木) 08:45:33
Javaに関係ないし。
Windows板に逝け。
775デフォルトの名無しさん:2005/11/24(木) 08:48:55
>>773
コンパネ-->システム-->詳細設定-->環境設定に設定する。
776デフォルトの名無しさん:2005/11/24(木) 10:40:53
>>775
そんなやり方すすめるなよ、う゛ぉけ。
777デフォルトの名無しさん:2005/11/24(木) 10:45:53
778デフォルトの名無しさん:2005/11/24(木) 10:50:24
環境変数に書いちゃったら他のJAVAプログラムが参照しちゃうよな
779デフォルトの名無しさん:2005/11/24(木) 10:51:22
パスの設定は環境変数でいいんじゃね?
クラスパスは起動時に指定するにしても
780デフォルトの名無しさん:2005/11/24(木) 10:51:43
>>776
では、良いやり方キボンヌ。あ、酔っぱらいオヤジが絡んでるだけかw
781デフォルトの名無しさん:2005/11/24(木) 11:06:54
>>780
「スレ違いの質問には回答しない」というのが「良いやり方」なのかと思った
782デフォルトの名無しさん:2005/11/24(木) 11:08:50
>>781
そっちかよw
783デフォルトの名無しさん:2005/11/24(木) 11:26:26
>>775
セキュリティ的に問題が(w
他のプログラムからも参照できちゃうよ(w

納品のときにもいちいち設定してくれとか言うのかな?
世界規模で1万台のPCのインスコ作業とか氏ぬね(w
784デフォルトの名無しさん:2005/11/24(木) 11:30:03
いんすこ作業するのはクライアントのシステム部なのでどうでもいい
請け負う場合でも外注なのでどうでもいい
785デフォルトの名無しさん:2005/11/24(木) 11:33:05
>>775
コンパネわらた

コンパネっていったら
普通コンクリートパネルだろw
786デフォルトの名無しさん:2005/11/24(木) 11:34:29
>>783
> >>775
> セキュリティ的に問題が(w
> 他のプログラムからも参照できちゃうよ(w
>
> 納品のときにもいちいち設定してくれとか言うのかな?
> 世界規模で1万台のPCのインスコ作業とか氏ぬね(w

そこでNotron Ghostの出番ですよ
787デフォルトの名無しさん:2005/11/24(木) 11:36:15
>>783
うは、すごい人キタ━━━━━━(゚∀゚)━━━━━━ !!
スタンドアロンのPCでJavaの勉強したいってだけだろうに。
世界規模のインストールまで!
おもろいな、このスレ。
788デフォルトの名無しさん:2005/11/24(木) 11:46:24
世界規模を持ち出すまでもなく、
自PCでも必要なクラスパスはアプリによって違うんだし、
システム環境変数に設定してしまうのはおすすめできかねる。
789デフォルトの名無しさん:2005/11/24(木) 12:00:49
だからApache Antを使うか、
マニフェストに書き出すのがいいかと
でFatJARを使って
790デフォルトの名無しさん:2005/11/24(木) 12:53:13
GNU Classpath
http://www.gnu.org/software/classpath/


オープンソースのJavaクラスライブラリ - GNU Classpath 0.16 "Harmony!" 公開
http://pcweb.mycom.co.jp/news/2005/07/04/013.html


これってそんなに凄い?

GNUが作ったてのがかなりきになる。
Apacheとランセンスのことで揉めそうになってるみたいだし。
LGPLではなくGPLってのはかなりやばいね。
791デフォルトの名無しさん:2005/11/24(木) 12:53:33
環境変数とかがわからいないレベルを相手に
いつもAntを持ち出すのはどうなんだろう・・・
792デフォルトの名無しさん:2005/11/24(木) 12:54:20
>>790
パフォーマンスとかの面ですごくない
793デフォルトの名無しさん:2005/11/24(木) 13:55:25
え?
クラスパスなんて環境変数わからなくても使えるじゃん

オプションで-classpathをしてしてさ。
それをやるんだったらAntの<classpath>,<pathelement>とか
つかったほうがましでしょ。
環境変数で面倒なことになるより、こっちを勧めた方が
将来ためになるし開発効率もあがる。
794デフォルトの名無しさん:2005/11/24(木) 14:13:09
すみません。
Javaで作ったアプリケーションをJavaアプレット化する場合、
一般的にどのような所に注意すればよいでしょうか?
795デフォルトの名無しさん:2005/11/24(木) 14:16:45
>>794
何をしたいかによる。
気をつける前にアプレットを使った場合と
使わない場合のGUIアプリを作ったことがあるのか?
796デフォルトの名無しさん:2005/11/24(木) 14:26:41
>>794
アプレットの制限事項
797デフォルトの名無しさん:2005/11/24(木) 15:13:35
このソースをコンパイルしてIE6(VMはアップデートしていません)で実行しようとすると
"class test not found" と言われます
appletviewer では実行できるので何が悪いのかわかりません
どこが悪いのでしょうか

コンパイルはこうしています
javac -source 1.2 -target 1.2 test.java

--- test.htm ---
<HTML><BODY>
<APPLETCODE="test" width=320 height=240>
</APPLET>
</BODY></HEAD>

次レスがソースです
798797:2005/11/24(木) 15:15:20
-- test.java 1/2 --

import java.awt.*;
import java.lang.*;
import java.applet.Applet;
public class test extends Applet implements Runnable{
public Thread m_thread = null;
public void paint(Graphics g){
g.drawString("aaa", 0, 20);
}
public void update(Graphics g){
paint(g);
}
public void start(){
if(m_thread == null){
m_thread = new Thread(this);
m_thread.setPriority(Thread.MIN_PRIORITY);
m_thread.start();
}
}
public void stop(){
if(m_thread != null){
m_thread = null;
}
}
799797:2005/11/24(木) 15:15:54
-- test.java 2/2 --
public void run(){
Thread thread = Thread.currentThread();
while(m_thread == thread){
try{
thread.sleep(10);
}catch(InterruptedException e){
return;
}
repaint();
}
}
}
800デフォルトの名無しさん:2005/11/24(木) 15:17:22
>>797
MSJVM使ってんなら javac -target 1.1 test.java にせんと動かんぞ。
801797:2005/11/24(木) 15:21:44
>>800
javac -target 1.1 test.java
とすると
javac: 1.1 は無効なソースバージョンです。
と出るんです

VMを更新してないIEでも実行できるようにしたいのですが
1.5は捨てて少し古いバージョンを入れたほうがいいということでしょうか
802デフォルトの名無しさん:2005/11/24(木) 15:30:44
<APPLET CODE="test.class" width=320 height=240>
にするととどう?
803797:2005/11/24(木) 15:32:26
>>802
やっぱりだめでした...
804デフォルトの名無しさん:2005/11/24(木) 15:33:26
>>797
書き写しの間違いだろうけど
</HEAD>じゃなくて</HTML>だよね
805797:2005/11/24(木) 15:37:40
あ、すみません写し間違いです

806デフォルトの名無しさん:2005/11/24(木) 15:38:44
あと
APPLETとCODEの間も空白が抜けてるな
807デフォルトの名無しさん:2005/11/24(木) 15:39:16
>>787
Javaの仕事受けたのでこれから勉強する所かもよ(w
808797:2005/11/24(木) 15:45:57
何度もすみません…
コピペするとこうなっております…
<HTML>
<BODY>
<APPLET CODE="test" width=320 height=240>
</APPLET>
</BODY>
</HTML>

809デフォルトの名無しさん:2005/11/24(木) 16:08:52
>>808
当然、classファイルもHTMLとともに、置いているんだよな。
810797:2005/11/24(木) 16:09:36
自己解決しました
javac -source 1.2 -target 1.1 test.java
としてVMを1.1のままソースのバージョンを1.2にすれば動作するようです

みなさんどうもありがとうございました!

811デフォルトの名無しさん:2005/11/24(木) 16:52:37
JFileChooserでファイル名変更を不可にする、新規フォルダ作成を不可にするの2点が上手くいきません
随分以前にどなたかのサイトで見たような記憶もあるのですが、たどれなくなってしまって、
Swingは今更かも知れませんが、この辺ご存じの方居ませんでしょうか?
812デフォルトの名無しさん:2005/11/24(木) 18:41:46
>>801
1.5すてるまでせんでええと思うが。

813デフォルトの名無しさん:2005/11/24(木) 20:40:12
>>811
FileSystemView
814デフォルトの名無しさん:2005/11/24(木) 21:44:44
>>813
ありがとうございます、でもFileSystemViewで上手くやる手法が思いつきませんでした・・・

ttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4525475
ここのを真似て解決させました、検討して下さった方ありがとうございました
815デフォルトの名無しさん:2005/11/24(木) 21:47:56
最も基本的なことやってなかったってか
816デフォルトの名無しさん:2005/11/25(金) 00:59:52
ファイルに1行につき1単語が書いてあって、何行あるか分からない場合、
全ての単語をString型の配列に入れるにはどうすればいいんでしょうか?
817デフォルトの名無しさん:2005/11/25(金) 01:01:03
readLine で読み取った端から ArrayList に入れて、最後に String[] に変換。
818816:2005/11/25(金) 02:20:50
ありがとうございます。
819デフォルトの名無しさん:2005/11/25(金) 02:24:27
ファイルサイズからわかるから

ArrayListではなくいきなりString[]にいれつことができるのでは?
820816:2005/11/25(金) 02:27:31
ファイルサイズからでも行数がわかるということでしょうか?
821デフォルトの名無しさん:2005/11/25(金) 04:35:10
ダウンロードしたライブラリはどこに置けば良いんでしょうか・・・。
macOSXを使用していて、java mail を使用したいと思いって落としたんですけど、やりかたがよくわからなくて・・・。

822デフォルトの名無しさん:2005/11/25(金) 04:41:14
携帯からなんですけど
最近JAVA関係の資格をとりたいと思いまして、とるならばSJC-Pをとって次に
SJC-Dをとるのが無難なんでしょうか?
823821:2005/11/25(金) 07:07:27
>>821
つまらない質問してスイマセンでした。
自己解決しました。

/System/Library/Java/Extensions/以下にjarファイルをコピーして、適当にインポートしたらコンパイルできました。
824デフォルトの名無しさん:2005/11/25(金) 09:35:30
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class L2 extends Applet{
Button btn1;
Button btn2;
Button btn3;
Button btnClear;
Image[] myImg;
int flag;
public void init(){
myImg=new Image[3];
myImg[0]=getImage(getDocumentBase(),"1.gif");
myImg[1]=getImage(getDocumentBase(),"2.gif");
myImg[2]=getImage(getDocumentBase(),"3.gif");
Panel myPanel1=new Panel();
myPanel1.setLayout(new GridLayout(1,3));
myPanel1.add(btn1=new Button("1"));
myPanel1.add(btn2=new Button("2"));
myPanel1.add(btn3=new Button("3"));
setLayout(new BorderLayout());
add(btnClear=new Button("画像消去"));
add("North",myPanel1);
add("south",btnClear);
btn1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
flag=1;
repaint();
}
});
825続き:2005/11/25(金) 09:36:36
btn2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
flag=2;
repaint();
}
});
btn3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
flag=3;
repaint();
}
});
btnClear.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
flag=4;
repaint();
}
});
826続き:2005/11/25(金) 09:38:09
flag=0;
}
public void paint(Graphics g){
switch (flag){
case 0:
break;
case 1:
g.drawImage(myImg[0],1,1,this);
break;
case 2:
g.drawImage(myImg[1],1,1,this);
break;
case 3:
g.drawImage(myImg[2],1,1,this);
break;
}
}
}
このプログラムを実行するとコンパイルは出来ますが、アプレットは初期化されていません。と出ます。何故か分かりますか?教えてください。
アプレットのHTMLはごく普通です。
827デフォルトの名無しさん:2005/11/25(金) 11:09:53
>>824-826
add(btnClear=new Button("画像消去"),BorderLayout.SOUTH);
add(myPanel1,BorderLayout.NORTH);
//add("south",btnClear);(゚听)イラネ

それと
flag=4;はflag=0;のほうがわかりやすい。
828デフォルトの名無しさん:2005/11/25(金) 11:27:04
>>822
Sun認定Java資格 実用情報【SJC-D用】
http://pc8.2ch.net/test/read.cgi/prog/1105893148/l50
Sun認定Java資格 実用情報 3 【SJC-P用】
http://pc8.2ch.net/test/read.cgi/prog/1117031782/l50
Sun認定Java資格 実用情報【SJC-*用】
http://pc8.2ch.net/test/read.cgi/prog/1132537203/l50
Sun認定Java資格 実用情報【SJC-WC用】
http://pc8.2ch.net/test/read.cgi/prog/1129512876/l50


おれもしりたい。
おれはいま一番下の一般的なやつ
アソシエイツをとろうとしているJava SE 5 Tgierにも対応してるあれ
829デフォルトの名無しさん:2005/11/25(金) 12:14:01
コンパイルすると

〜〜は推奨されないAPIを使用またはオーバーライドしています。
詳細については、-deprecationオプションを指定して再コンパイルしてください。

と表示されるのですがなにが間違っているのでしょうか?

初心者ですいませんが、よろしくお願いします
830デフォルトの名無しさん:2005/11/25(金) 12:21:18
>>827
出来ました!アプレット上手く行きました!ありがとうございました!
831デフォルトの名無しさん:2005/11/25(金) 12:24:12
>>829
推奨されないAPIを使用またはオーバーライドしているんだろう。
832829:2005/11/25(金) 12:25:32
>>831
すいません、その場合どうすればよいのでしょうか?
833デフォルトの名無しさん:2005/11/25(金) 12:28:52
>>832
・ APIリファレンス見て、代わりに使えるメソッドを使用する。
・ javac -deprecation オプションを使用して その場しのぎ。
834デフォルトの名無しさん:2005/11/25(金) 12:32:27
まずは833氏の最初の策を必ず実行して、
簡単な書き換えが不可能だと分かるまでは
二番目は実行しないこと。
835829:2005/11/25(金) 12:36:41
>>833
ありがとうございます

>>834
とりあえず2番目を実行してしまったのですが何故いけないのでしょうか?

ちなみにコンパイルすると
java.lang.Threadのresume()は推奨されません。
thread.resume();
と出て実行されませんでした

ホントに初心者ですいません
836デフォルトの名無しさん:2005/11/25(金) 12:41:54
>>835
>何故いけないのでしょうか?
仕様を推奨されていないモノを無理矢理使うことになるから。
837デフォルトの名無しさん:2005/11/25(金) 12:42:38
仕様を推奨

使用を推奨
838デフォルトの名無しさん:2005/11/25(金) 12:44:33
839829:2005/11/25(金) 12:48:03
ttp://www.diku.dk/hjemmesider/studerende/duff/Fortune/

ここのサイトのThe sourceを実行させたかったのですが
自分でやるとダメでした

詳しい人、誰か助けてください
840デフォルトの名無しさん:2005/11/25(金) 12:49:00
>>835
すごい連鎖反応が起きているな。

新しいものにコード書き換えた方が早いな
841デフォルトの名無しさん:2005/11/25(金) 13:35:22
Eclipseを使用した環境でアプリを作りたいと思っています。
特定キーを押した場合に、特定の動作を取るという内容なのですが…

これを非アクティブ時、つまりフォーカスの失われた時にも動作させるには
どうすれば良いのでしょうか? FocusListenerやWindowListenerでは、
enableEventの監視を続けてはくれませんでした。

動作としては「Joy○key」の様な動きをして欲しいと思っているのですが…
先輩方、お力をおかし下さい…
842デフォルトの名無しさん:2005/11/25(金) 13:43:40
>>841
Toolkit#addAWTEventListener() 使えば?
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/Toolkit.html#addAWTEventListener(java.awt.event.AWTEventListener,%20long)
843デフォルトの名無しさん:2005/11/25(金) 14:13:33
最初にEclipseを使ったとかいって、
何がいいたいのかわからないが
別にEclipseは関係ない話だな
844デフォルトの名無しさん:2005/11/25(金) 15:05:15
Eclipse隔離スレって無かったっけ?
845デフォルトの名無しさん:2005/11/25(金) 15:28:46
>>844
【SDKから乗換】EclipseでJAVAの勉強【初心者歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1105811745/l50

これだな
846デフォルトの名無しさん:2005/11/25(金) 16:08:49
JavaでMySQLを動かそうと考えています。
最初にサーバーにログインするときのパスワードは
コンソールで入力させようと考えているのですが
普通にInputStreamReaderを用いると入力した文字がバレバレになってしまいます。
なんとかこれを「*」などの文字に変える方法はありませんか?
847デフォルトの名無しさん:2005/11/25(金) 16:12:04
>>846
JavaSE 6.0 で java.io.Console#readPassword()
848デフォルトの名無しさん:2005/11/25(金) 16:14:22
6.0かThx!
849841:2005/11/25(金) 16:51:52
すいません、Toolkit#addAWTEventListener()ですよね…
引き渡し方が解らないんですが、どうすれば良いんでしょう_| ̄|○

voidだって事でてっきりenableEventの様な使い方かと思ったんですが…
どこかクラスを作ってimplementし、そっちのdispachメソッドの内部で処理するんでしょうか。
Toolkit.getDefaultToolkit().addAWTEventListener()をMainコンストラクタで生成し、
そっちに回してみたんですが非アクティブだと反応してくれないんです。

…ひよこな私をお助けくだせえorz
(ちなみにEclipseと書いたのは使用環境を伝えたかったのみで、他意はございません)
850デフォルトの名無しさん:2005/11/25(金) 17:14:16
まずはSwingとかAWTとかの基本的なイベントから勉強しよう
途中をすっ飛ばして結果だけ求めてもまた同じところで躓くから
851デフォルトの名無しさん:2005/11/25(金) 19:25:43
>>845
あの質問内容と隔離と堂関係あるんだ?

【Java/C/PHP/D/他】統合開発環境Eclipse M19
http://pc8.2ch.net/test/read.cgi/tech/1131604081/
852デフォルトの名無しさん:2005/11/25(金) 23:29:53
javaプログラムをコンパイルするときにクラスパスを指定するやりかた(javac -classpath c:\〜 こんなの)で、
クラスパス指定先の.jarを二個以上指定するにはどうやって記述するんだっけ?
853デフォルトの名無しさん:2005/11/25(金) 23:32:08
確かコロンかセミコロンでつなげればよかったはず・・・
854デフォルトの名無しさん:2005/11/25(金) 23:42:06
それがうまくいかないんですよ

javac -classpath "C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\sample\WEB-INF\lib\jfreechart-0.9.20.jar";"C:\Program Files\ApacheSoftware Foundation\Tomcat 5.0\webapps\sample\WEB-INF\lib\jcommon-0.9.5.jar" CircleChartMap.java
コンパイル文はコレ↑なんですが、もしかしたらクラスパスが↑で指定したjar二つしか効いてなくて、windowsの環境変数に登録されてたクラスパスの設定が消えているんでしょうか
既存のクラスパスに追記する形で指定ってどうやるんでしょうか
855デフォルトの名無しさん:2005/11/25(金) 23:43:26
Windowsならセミコロン、ゆにっくす系ならコロン
856デフォルトの名無しさん:2005/11/25(金) 23:45:00
>>854
javac -classpath %CLASSPATH% ;.....でできないかな
857デフォルトの名無しさん:2005/11/26(土) 00:00:30
>>853-856
できました!
ありがとうございます

javac -classpath "%CLASSPATH%;C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\sample\WEB-INF\lib\jfreechart-0.9.20.jar;C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\sample\WEB-INF\lib\jcommon-0.9.5.jar" CircleChartMap.java

これで正解だったみたいです
858デフォルトの名無しさん:2005/11/26(土) 00:11:34
>>857
あんまり長いパス名は
環境変数で TOMCAT_HOME
とかで定義しといたほうがいいぞ
859デフォルトの名無しさん:2005/11/26(土) 00:14:13
ラッパクラスの配列から基本型の配列に変換する方法や、その逆の方法は、
要素を一つづつ移すしか無いのでしょうか?
860デフォルトの名無しさん:2005/11/26(土) 00:33:32
>>850
正にその通り。
htmlも分からん素人状態でeclipseを使おうとしたら
まだ本とかも出て無くて設定だけで時間を食って
java自体の勉強はすっ飛ばし・・・・
まぁ勉強にはなったが。
eclipse使い始めて一年経ってやっとantを使いましたよ。
861デフォルトの名無しさん:2005/11/26(土) 01:32:26
strutsを勉強中なのですが"saveErrors"を使った処理がわかりません。
***.jspにテキストフォームを2つ持ち、そこに「intA」「intB」があり、A>Bとなるときにエラーメッセージを出力したいです。
struts-configでvalidator="true"とinput=***.jspを定義し(他の設定も正しいとして)
ActionFormでint A、int B を持ち、
***.jspに<html:errors/>を書き

***.jspのActionとして、***Action.javaを定義したのですその先の書き方がわかりません
if(A>B){


return(mapping.getInputForward());
}
862デフォルトの名無しさん:2005/11/26(土) 16:02:36
JavaのSwingでJButtonを継承して複数行のラベルを表示できるボタンを作っています、
ラベルの行数によってボタンの高さを変えるためコンストラクタを以下のようにしました。

CButton(String[] s,int pw){
super();
strs = s;//strsはラベルを保持するメンバ変数
FontMetrics fm = getGraphics().getFontMetrics();
Dimension ps = new Dimension(pw,strs.length * fm.getHeight());//pwは横幅
setPreferredSize(ps);
}


しかしこのようにするとぬるぽが発生してプログラムが終了してしまいます。
原因はgetGraphics()はコンポーネントが描画できないときはnullを返すためのようですが、
これを解決するためにはいつフォントの高さを取得してサイズを設定すればよいのでしょうか?
863デフォルトの名無しさん:2005/11/26(土) 16:06:06
複数行なんてテキストをhtmlで与えればいい話だろ
Swingの部品はほとんどhtmlを解釈してくれるぜ
864デフォルトの名無しさん:2005/11/26(土) 16:10:44
>>863
それは知りませんでした。
ありがとうございました。
865デフォルトの名無しさん:2005/11/26(土) 16:10:49
実際に描画される時になってから決めればいいんじゃないの?
866デフォルトの名無しさん:2005/11/26(土) 16:15:23
strutsもswingも隔離スレ有るのに。
867デフォルトの名無しさん:2005/11/26(土) 16:17:05
swingはあれ、ネタスレだとおもた
868デフォルトの名無しさん:2005/11/26(土) 16:57:00
Swingの場合コアAPIにはいってきたからだぶりやすい
869デフォルトの名無しさん:2005/11/26(土) 18:07:12
>>861
saveErrorsメソッドについては、requestまたはsessionにActionMessagesを保存する為のメソッドです。
Actionクラスのソースコードを読めばわかりますが、
その際のkeyには"org.apache.struts.action.ERROR"という文字列が使われているようです。

<html:errors/>タグはrequestまたはsessionスコープの中を探して
"org.apache.struts.action.ERROR"というキーでActionMessagesオブジェクトがあれば
それを表示する仕掛けです。

しかし、a > bの比較をActionクラスの中で行うのは、あまり良くないと思います。
validatorのvalidwhenなどを使うのはどうでしょうか?
870デフォルトの名無しさん:2005/11/26(土) 18:35:31
30ミリ秒ごとに、アプレットに1づつ大きくなる数字を表示したいんですが、
ぬるぽが出ます。構成もいまいちよくわかってません。ご教授ください。

public class MyApplet extends Applet{
  static int count=0;
  public void init() {
    Timer timer1=new Timer();
    timer1.schedule(new MyTimerTask(),30);
  }
  public void paint(Graphics g) {
    g.drawString(String.valueOf(count),20,20);  //この行でぬるぽ
  }
}
class MyTimerTask extends TimerTask{
  Graphics g;
  int count=0;
  MyApplet ma=new MyApplet();
  public void run() {
    count++;
    ma.paint(g);
  }
}
871デフォルトの名無しさん:2005/11/26(土) 18:38:09
DefaultTableModelを利用して、テーブルを作成したのですが、
ある一部のセルの背景色を変えたいと思っています。
どうしたらいいかアドバイスをください。
872デフォルトの名無しさん:2005/11/26(土) 18:39:48
>>870
timer1 MyAppletのメンバにしたほうがいいんでは?
873デフォルトの名無しさん:2005/11/26(土) 18:40:03
>>870
>ma.paint(g);
この行の g には何が入ってるの?

ma.repaint(); に変えれば良い筈。
874873:2005/11/26(土) 18:41:59
いや、すまん。872 の言うとおり、それ以前の問題だったな。
875デフォルトの名無しさん:2005/11/26(土) 18:43:52
>>870
Applet#paint()は明示的に呼んじゃだめ
876870:2005/11/26(土) 19:09:09
ぬるぽはなくなり、アプレット上に数字も表示されましたが、数字が初期値0のままです。
各所にSystem.out.println();を挿入して調べたところ、
init()、paint()、run()がこの順に1回づつしか実行されていませんでした。
おねがいします。

public class MyApplet13 extends Applet{
    int count=0;
    Timer timer1;
    public void init() {
        timer1=new Timer();
        timer1.schedule(new MyTimerTask02(),30);
    }
    public void paint(Graphics g) {
        g.drawString(String.valueOf(count),20,20);
    }
}
class MyTimerTask02 extends TimerTask{
    int count=0;
    MyApplet13 ma13=new MyApplet13();
    public void run() {
        count++;
        ma13.repaint();
    }
}
877デフォルトの名無しさん:2005/11/26(土) 19:35:40
>>876
スケジュールの指定が間違っているに一票
878デフォルトの名無しさん:2005/11/26(土) 19:42:50
一番大きい原因は 『表示している MyApplet13 以外の MyApplet13 を repaint しようとしている』 だけど、
他にもスケジュールが 『 30 ミリ秒後に 1 回だけ実行』 になってるとか。
879デフォルトの名無しさん:2005/11/26(土) 19:44:41
あ、まだあった
『値を更新しているのは MyTimerTask02.count だけど、表示しているのは MyApplet13.count の方』
880デフォルトの名無しさん:2005/11/26(土) 19:45:55
流れ切ってスイマセン!

Java等をこれから勉強しようと思い、明日 中古PCを買いに行きます。
予算は六万円なのですが、どの程度のスペックの物を買えば良いでしょうか?

Win95時代にN88をいじっていた程度で最近の標準的スペックがまったくわかりません。
どうぞ温かい返答お願いします!
881デフォルトの名無しさん:2005/11/26(土) 19:46:22
run()の中はループにしないと一回実行してスレッドは終了する
882デフォルトの名無しさん:2005/11/26(土) 19:48:40
>>880
とりあえずSunのWebサイトを見て必要スペックを確認してみてはどうか

基本的にハイスペックであればハイスペックであるに越したことはないし
標準的なスペックと言われても何をもって標準とするかなんて難しい
883デフォルトの名無しさん:2005/11/26(土) 19:49:06
>>876
Timerクラスの使い方のほか、他にもいくつかバグがあります。
明確なミスなので、冷静になってソースを見渡せばすぐに気付くはず。
勉強だと思って良く考えて。
884876:2005/11/26(土) 19:49:19
スケジュールは
timer1.schedule(new MyTimerTask02(),30,30);
と直しました。

>>原因は?『表示している?MyApplet13?以外の?MyApplet13?を?repaint?しようとしている』

どう記述しましょうか?3回目ですすみませn
885デフォルトの名無しさん:2005/11/26(土) 19:49:58
>>881
Timer で回す場合は繰り返し実行される (場合もある)
886884:2005/11/26(土) 19:51:22
もう少し検討してみます。
みなさんあり。
887デフォルトの名無しさん:2005/11/26(土) 19:53:59
>>884
タイマーは UI スレッドととは別のスレッドだから、
count を volatile 指定するのが普通のやり方

ただし int は原子性は保たれてるので、
速度をかすめとりたいなら、また話は別だが
888デフォルトの名無しさん:2005/11/26(土) 20:27:37
>>880
そいや、今更ながら eclipse の推奨スペックってどのくらいなんだ?
メモリが重要らしいけど、メモリ高くてかなわん

おしえてエロイ人
889876=884:2005/11/26(土) 20:27:47
MyTimerTask02クラスを、MyApplet13クラスの内部クラスとしたらうまくいきました。
外部のクラスとしてMyTimerTask02クラスを定義したいときは、
何かしらの記述が必要みたいですね・・・
890デフォルトの名無しさん:2005/11/26(土) 20:33:14
>>871
セルレンダラ使う

TableColumn::setCellRenderer
あたりをみてごらん
891デフォルトの名無しさん:2005/11/26(土) 20:41:51
>>889
静的でない内部クラスのインスタンスは
その外側のインスタンスの上に作られるっぽく、
外側のインスタンスフィールドにアクセスが可能

別々に作ったら、共有するための何からの工夫が必要になる。

ところで、eclipse でデフォルトの設定だと
外側のクラスの private なフィールドにアクセスしようとすると、
「フィールドをパッケージプライベートにしろ、遅くなる」
って警告が出てくるんですが、これって本当?

まあ、どこでカプセル化するかの考え方によるんだけど、
最近、クラスの一部ともいうべきインナークラスのために、
他のクラスに晒すのは、どうなんだと思うようになった。
892デフォルトの名無しさん:2005/11/26(土) 20:55:12
>>891
EclipseのVersion: 3.1.1をデフォルト設定のまま使用していますが
そのようなメッセージは出ないようです。
jdkは1.4.2_01と1.5.0_5で試しました。
893デフォルトの名無しさん:2005/11/26(土) 20:58:34
>>892
JDKは関係ないだろ。
デフォルトのコンパイラはEclipseが独自に持っているのだから。
894デフォルトの名無しさん:2005/11/26(土) 21:12:34
>>893
そうなんですか、知らなかったです。
試しにパフォーマンスに差が出るのか試しましたが、差も無いようです。
895デフォルトの名無しさん:2005/11/26(土) 21:43:21
Windows上で、ドライブのボリュームラベルを知る手段はありますか?
896デフォルトの名無しさん:2005/11/26(土) 21:50:28
appletviewerで標準でないライブラリを使用したアプレットを実行すると、例えば
java.lang.NoClassDefFoundError: org/jfree/data/CategoryDataset

というようなエラーが出ます。「NoClassDefFoundError appletviewer」でぐぐると
同様の問題に当たっている人がいるようですが、解決方法は見つけれませんでした。

書いている途中できづきましたが、非標準のライブラリを使用するアプレットは
実行する人(ブラウザ)もそのライブラリを使えないと意味がないですよね。
という事でappletviewerのクラスパス関連が怪しいと思いますが、
ハッキリとした情報をお持ちの方は教えて下さい。

あと、そのプログラムは java hoge では実行できる事を確認しています。
897デフォルトの名無しさん:2005/11/26(土) 22:01:02
クラスパスを通す
898デフォルトの名無しさん:2005/11/26(土) 22:02:51
javaで普通のアプリって向いてるの?
何に使われてるのが多いの?
899デフォルトの名無しさん:2005/11/26(土) 22:12:57
>>898
「普通のアプリ」の定義が曖昧すぎて何とも答えようがない。
900デフォルトの名無しさん:2005/11/26(土) 22:14:04
普通のi-アプリは、Javaで書かれてます。
901デフォルトの名無しさん:2005/11/26(土) 22:14:32
>>898
何に使われているのが多いのか。
・サーバサイドシステム(Webシステムなど)
・携帯アプリ(iアプリなど)
・アプレット(証券のオンライントレードシステムなどでよく見る)
902デフォルトの名無しさん:2005/11/26(土) 22:34:37
シェアという意味では、どの分野もいまいちじゃねーの?
サーバーサイドが一番シェア率高いかな。
903898:2005/11/26(土) 22:36:40
>>898
おお、参考になります
web系が多いのか

勉強を進めていってるんだけど、何をしたらいいのかいまいち分からんのです
904898:2005/11/26(土) 22:37:06
>>901 でした
905デフォルトの名無しさん:2005/11/26(土) 22:39:12
勉強目的なら普通にSwing使ってスタンドアロンアプリでいいのでは?
業務系はわりとあるよ
906デフォルトの名無しさん:2005/11/26(土) 22:51:06
>>903
web系なら雑誌いっぱいでてるぞ
907898:2005/11/26(土) 22:53:01
初めて聞く単語です
スタンドアロンアプリっすね しらべてみます
ありがとう
908さくら:2005/11/26(土) 22:54:38
あの、Microsoft Word に付着できるプロトタイプ・アプリが作りたいんですけど、
誰か無機能アプリ(外見だけの為のアプリ)が作れる英語のサイト知りませんか?
友達が教えてくれないんですよ。。。(−_−)
909898:2005/11/26(土) 22:54:38
>>906
雑誌あまり見たことなかったです
ありがとう 漁ってみます
910デフォルトの名無しさん:2005/11/26(土) 23:07:36
>>908
知ってますよ
911デフォルトの名無しさん:2005/11/26(土) 23:08:34
マイクから音声を入力してファイルに保存したいのですが、
どのクラスを使用すればマイクからの入力データを扱えるのでしょうか?
912デフォルトの名無しさん:2005/11/26(土) 23:10:59
MCI
913デフォルトの名無しさん:2005/11/26(土) 23:18:40
>>911
サウンド周りの基本のJavaSoundをなぜ調べない
最低限マニュアルくらい見てくれ・・・
914デフォルトの名無しさん:2005/11/26(土) 23:19:43
OGGライブラリの日本語解説ってない?
915デフォルトの名無しさん:2005/11/26(土) 23:21:10
英語まったく読めない俺でも使えたから
サンプル見れば大丈夫かと

すんごい簡単だから
916デフォルトの名無しさん:2005/11/26(土) 23:36:54
初心者です。

html側から input type="text" でjspに値を渡し
jsp側で request.getParameter でString型の変数に入れ
その変数をif文で条件分岐させたいのですが
うまく処理してくれません。
変数が受け取った値とif文で設定している半角英数字とが
一致したときの処理をさせたいのですが
同じ値を入れても、elseのほうへ飛んでいってしまいます。

どなたかお願いします。

917デフォルトの名無しさん:2005/11/26(土) 23:38:25
>916
一応聞くけどequal()使ってるよね?
918デフォルトの名無しさん:2005/11/26(土) 23:39:30
>>916
<input>タグにname属性は入れたかい?
getParameterの引数は"text"じゃなくてそっちだぞ
919916:2005/11/26(土) 23:41:14
いえ、使ってません。
…といいますか、equal()がよくわかりません。

ちなみに、変数をintで取り
if文の条件も数字を設定すれば
うまくいくんですよね…
920916:2005/11/26(土) 23:43:20
>>918さん

おっしゃるとおり
<input>のnameに設定したものを
jsp側のrequest.getParameterに設定しています。
921デフォルトの名無しさん:2005/11/26(土) 23:46:42
>>917を使えというのが正解だ。
922916:2005/11/26(土) 23:58:12
>>917さん

今まで「equals()」そのものを知らなかったんで
「==」で判断させていました。
さきほど、equalsについて少し調べてみまして
結果、利用方法等もわかり無事きちんと動きました。

917さんをはじめ、皆さんどうもありがとうございました!
923デフォルトの名無しさん:2005/11/27(日) 00:01:02
「参加の時代」ってキーワードはいいんだけど
デスクトップ環境やCGIレンタルの代替とかに食い込んでいかないとどうにもならんね
鯖だけでは終わって欲しくないけど、アプローチが弱い気がする
924デフォルトの名無しさん:2005/11/27(日) 00:11:01
デスクトップは、Java Desktop System や Looking Glass が
頑張ってるけど、このあたりはやはりVM上で動くJavaは不利だ・・・。

先日のJavaOneTokyo2005で、Sunはちょっとしたネットカフェみたいな
コーナーを設置して、Solaris/Java Desktop System のマシンを数台
解放していたけど、「Java Desktopはこんなに重い」をアピールして
しまっていたようで逆効果だったような気がする。
925デフォルトの名無しさん:2005/11/27(日) 00:16:04
あれの重さはJavaが原因じゃない希ガス
926デフォルトの名無しさん:2005/11/27(日) 00:38:23
Exception in thread "main" java.lang.NoSuchMethodError: main

というエラーはmain関数がないよ、って言ってるのですか?
927デフォルトの名無しさん:2005/11/27(日) 00:40:07
うん
928デフォルトの名無しさん:2005/11/27(日) 00:40:47
んだす。その手のエラーは大抵mainがstaticじゃないってのとjarでメインクラスの指定し忘れがあるかです。
929デフォルトの名無しさん:2005/11/27(日) 00:42:16
アプレットビューアからはJTextAreaオブジェクトに書かれた文字列をCtrl + Cでコピーできたのですが。
HTMLに同様のアプレットを埋め込みwebブラウザから見たところ、JTextAreaオブジェクトに書かれた文字列がコピーできなくなりました。
アプレットビューアとwebブラウザでは何故動作が違うのでしょうか?
930デフォルトの名無しさん:2005/11/27(日) 00:42:25
厳密にはstatic メソッドが無い場合
931デフォルトの名無しさん:2005/11/27(日) 00:43:05
>アプレットビューアとwebブラウザでは何故動作が違うのでしょうか?
アプレットビューアとwebブラウザが違うから
932929:2005/11/27(日) 00:54:50
>>931
アプレットビューアとwebブラウザの動作は違うのですか。
ありがとうございました。

では、webブラウザからJTextAreaオブジェクトに書かれた文字列のコピーをしたい場合はどうすればよいのでしょうか?
933デフォルトの名無しさん:2005/11/27(日) 00:56:31
>>929
それサンドボックスのセキュリティでひっかかってる
たとえばかってにバックグラウンドでクリップボードを取得して掲示板にばら撒いたり
したら大変なことになるでしょ?
934929:2005/11/27(日) 01:03:30
>>933
なるほど。
javaアプレットって使いづらいですね。
よくよく、考えればjavaアプレット自体あまりみない気がしてきた。

本来javaはどのような場面や、プログラムで活躍するのでしょうか?
935デフォルトの名無しさん:2005/11/27(日) 01:06:47
アプレットはリッチクライアントとしてしか今は利用されてないかと

制限がいやなら普通にアプリケーション作れば?
順番的には先にアプレットを触るというのがおかしいと思うけど
936デフォルトの名無しさん:2005/11/27(日) 01:06:51
>なるほど。
ほんとにわかったのか?
>javaアプレットって使いづらいですね。
上級者しか使いこなせないしな
>よくよく、考えればjavaアプレット自体あまりみない気がしてきた。
上級者しか使わないしな
>本来javaはどのような場面や、プログラムで活躍するのでしょうか?
上級者が利用する場面
937デフォルトの名無しさん:2005/11/27(日) 01:07:56
>順番的には先にアプレットを触るというのがおかしいと思うけど
入門書がそうなっているからなぁ ホント、アレはやめて欲しい
938929:2005/11/27(日) 01:12:32
すみません、自分まんま入門者です。
WisdomSoftのjava入門ではプリケーションよりアプレットが先に説明されていたので、てっきりアプレットのほうが簡単なのだと思っていました。
939デフォルトの名無しさん:2005/11/27(日) 01:12:44
アプレットはフレームワークであることを理解しないときっついからな
940デフォルトの名無しさん:2005/11/27(日) 01:20:35
上の方にもあったけど、証券のオンライントレードシステムでは
アプレットをよく見る。
941929:2005/11/27(日) 01:22:35
ttp://www.jetchat.com/friend/index.htm
のJetChatでは、ログを選択するとTextAreaらしきものが現れ、これはCtrl + Cでコピーすることができました。
何故、サンドバッグによって妨害されないのですか?
942デフォルトの名無しさん:2005/11/27(日) 01:37:57
>>940
ブラウザよりも
アプレットのほうが「おかしな操作するユーザ」やブラウザの違いからアプリケーションを守れるからね
HTTPではなくて独自のプロトコル使えるし
943デフォルトの名無しさん:2005/11/27(日) 01:38:50
>何故、サンドバッグによって妨害されないのですか?
サンドバッグではなく「サンドボックス」な
3回までOKなんだよ
944デフォルトの名無しさん:2005/11/27(日) 01:44:59
>>922みたいなequals()を==と間違って
使ってしまう輩に対しては
是非ともCheckstyleを使って貰いたい。
こいつを使えば、あやまって==を使っているコード
があるところを自動的にチェックしてくれる。

Eclipseでも使えるので
CheckStyleプラグインをダウンロードだ。
ベータ版でも十分使える。しかもJava SE 5 Tigerでも使えるようになった。
CheckStyle-4.0.0.-beta6を入手せよ。
そしてequlas()メソッドの問題などを検出できるように設定せよ。

945929:2005/11/27(日) 01:45:48
>>サンドバッグではなく「サンドボックス」な
>>3回までOKなんだよ
すみません、間違えてました。
どう考えてもサンドバッグはありえないですよね。。

アプリケーションから入って、もっとjavaやプログラミングのこと勉強してから出直します。
ご迷惑、お掛けしました。
946デフォルトの名無しさん:2005/11/27(日) 01:46:15
947デフォルトの名無しさん:2005/11/27(日) 01:49:20
>>924
漏れもJavaOneTokyo2005言ってきたが
あれはそんなに重いか?
たまたま何かあったんではないかと。

重たいのもあったが、
8年前に大学にあったSolarisマシンでもあんなもんだったな。
NetScape起動するのにちょっと時間がかかってたような。

漏れはSun Rayしか使ってないが


948デフォルトの名無しさん:2005/11/27(日) 01:50:09
>>928
mainがpublicじゃないってのもある。
Java認定試験アソシエイツにもその例題があった
949デフォルトの名無しさん:2005/11/27(日) 01:51:47
>>934
短絡的だな。
セキュリティにひっかかるといっても
Appletが入ったJarファイルにsignjarで署名すれば
引っかからないわけだが。
950デフォルトの名無しさん:2005/11/27(日) 01:53:44
>>937
いつの時代の入門書だ。
最近のはServletやDBが多いかと。
もしくは本当に基本文法のみ。
951デフォルトの名無しさん:2005/11/27(日) 02:11:59
ファインドバグだろ普通
952デフォルトの名無しさん:2005/11/27(日) 02:19:14
>>790
> 現在、GNU Classpathはjavax.swing以下のパッケージを除く
> ほぼすべてのパッケージでJDK1.2と100%に近い互換性を実現している。
> (略)
> ロードマップによると、JDK1.2に関してのより高い互換性と安定性を
> 実現した時点で正式リリースとする予定になっている。
これって「予定」っていうのか?
953デフォルトの名無しさん:2005/11/27(日) 02:22:10
>>847
"*"じゃなかったような。
954デフォルトの名無しさん:2005/11/27(日) 02:46:16
表示されないみたいだね
955デフォルトの名無しさん:2005/11/27(日) 03:06:55
>>846
入力を促す画面になったら
そこでGUIを起動してパスワード用フォームに
入力させるというのはどうだろう?

もしくは、一時入力したら即座に文字を消去し*に変換するという
やり方とか。
BSキーを押すと*を一つ消して前に戻り、入力によって
メモリに確保された文字も一時消去する、ってなかんじのをエンター
押すまで。
956デフォルトの名無しさん:2005/11/27(日) 07:56:34
6532個のデータがあるMySQLを
Javaで呼び込んでも呼び込めません。
解決方法おしえてください。
957デフォルトの名無しさん:2005/11/27(日) 09:25:10
説明不足ですいませんでした。
少ないデータなら呼び込めるのですけど、
6532個もの大きなデータになると
エラーになりました。
958デフォルトの名無しさん:2005/11/27(日) 09:35:35
読み込むのならよくやるのだが、呼び込んだことがないのでわからん。
確かなんとか条例で禁止されてたような気がする。
まあ、どうせ環境問題に帰着するのさっw
959デフォルトの名無しさん:2005/11/27(日) 09:37:40
>>957
すいません読み込むでした。
恥ずかすぃ
960デフォルトの名無しさん:2005/11/27(日) 13:20:49
スレ違いかもしれませんが
http://pc8.2ch.net/test/read.cgi/tech/1123639475/707
aとbが混ざるまでの繰り返し回数のカウンタはどのようにつけるのか
良かったら教えてください
961デフォルトの名無しさん:2005/11/27(日) 13:29:51
>>960
System.out.print(msg); を
System.out.print(i+":"+msg);
に変えればいいとおもう
混ざっているか混ざっていないかは
出力データ見れば一目瞭然だし
そのときのカウンタの値も表示されるのでOK
だと思うんだがどうよ
なんせ、質問の意味がよーわからん 何がしたいのか・・・
962960:2005/11/27(日) 14:19:20
>>961
センキュー。頑張って勉強します!
963デフォルトの名無しさん:2005/11/27(日) 14:47:28
mysqlにJDBC経由で接続しているんですが、日本名のカラムの値が
取り出せなくて困っています。

rs.getString("<Column_Name"); // カラム名は日本語。これだと例外
rs.getString(1); // これだとちゃんと取得できる

試しにResultSetMetaDataオブジェクト使ってカラム名を参照してみたところ、
文字化けしていました。

どなたか詳しい方いらっしゃいましたら原因教えてもらえませんか?

コネクタにはMySQL Connector/J 3.1.11を使っています。
964デフォルトの名無しさん:2005/11/27(日) 15:12:24
>>963
ResultSetMetaDataというものをResultSetから取り出して
getClumnName()でどんな名前でカラムが格納されているのか確認しよう
おそらく文字化けしたカラム名が格納されているはずなので
rs.getString("文字化けしたカラム名");だと取得できる
普通カラム名に日本語は使わない
965デフォルトの名無しさん:2005/11/27(日) 15:20:56
オブジェクト指向について分からないことがあるのでどなたか教えてください。

フィールドとして宣言した変数には自動的に初期値が入るんですよね?
その時点でフィールドは初期化されているのに、
コンストラクタもフィールドの初期化を勝手にしてくれるんですよね?
なぜ何度もフィールドの初期化を繰り返すのかがよく分からないのですが・・・。
もしよかったら教えてください!

966デフォルトの名無しさん:2005/11/27(日) 15:22:49
カラム名に日本語を使う使わないは条件次第だが、単純に接続のミスしてると思われ
接続URLとか大丈夫なの?
環境とかさらさないとどうにも
967デフォルトの名無しさん:2005/11/27(日) 15:23:32
>>965
コンストラクタは主に初期化のルーチンを自分で書けるってだけ
968デフォルトの名無しさん:2005/11/27(日) 15:24:46
>>957
どんなエラーが出たか書かないと
毎度の用に無視されるぞ。
どうせメモリが足んないとかだろうが
969デフォルトの名無しさん:2005/11/27(日) 15:30:03
>>966
>rs.getString(1); // これだとちゃんと取得できる
なので接続のミスなのか?
カラム内の取得データが文字化けしていないのだったら
エンコードの問題ではない

ドライバがカラム名に関してエンコード対応していないだけだろうなので「カラム名に日本語」使わないと思う コレは俺の考え

どの道その文字化けしたデータでgetString("文字化け文字")しないといけないので
String col="文字化けしていないカラム名";
String col2=new String();//←文字化けした文字列をわざと作る
getString(col2)
しかないだろう
970デフォルトの名無しさん:2005/11/27(日) 15:30:28
>>965
自動的に入る初期値ってのは、すべてのクラスに対して同じ値になる。
コンストラクタはパラメータがあれば、そのパラメータを使って初期値を任意に実行時に決定することもできる。
971965:2005/11/27(日) 15:31:03
>>967
早速のレスありがとうございます。
ルーチンという言葉を初めて聞いたのでぐぐってみたのですがよく分かりませんでした。
せっかく教えてもらったのにすいません。
どういう意味なのかもう少し簡単に教えてもらえませんか?
972デフォルトの名無しさん:2005/11/27(日) 15:31:15
× 自動的に入る初期値ってのは、すべてのクラスに対して同じ値になる。
○ 自動的に入る初期値ってのは、すべてのインスタンスに対して同じ値になる。
973デフォルトの名無しさん:2005/11/27(日) 15:31:45
>>963
> mysqlにJDBC経由で接続しているんですが、日本名のカラムの値が
> 取り出せなくて困っています。
>
> rs.getString("<Column_Name"); // カラム名は日本語。これだと例外

とりあえず文字列リテラル内の < が気になった

974デフォルトの名無しさん:2005/11/27(日) 15:35:08
>>965
確かに
class Clazz{
String string1=null;
}
とやる意味は無い
975965:2005/11/27(日) 15:44:43
>>972
>>974
レスありがとうございます。
深く考えすぎなんですかね?
とりあえずこういうものなのだと思ってもう少し勉強してみます。
ありがとうございました。
976デフォルトの名無しさん:2005/11/27(日) 15:55:44
>>969
環境しだい
977デフォルトの名無しさん:2005/11/27(日) 15:59:21
>>964,>>966,>>969,>>973
レスどうもです。

文字化けしたカラム名でrs.getStringやったらちゃんと取得できました。

接続URLは、
Connection dbConn = DriverManager.getConnection("jdbc:mysql://localhost/empdb?useUnicode=true&characterEncoding=SJIS","root","");
こんな感じでUnicodeとかSJISオプションを外したりしても結果は一緒…(´・ω・`)

ちなみにテーブル名も日本語なんですが、SelectやUpdateは
日本語混みで普通に通ります。
なので、やっぱりコネクタ(=ドライバ?)が日本語カラム名に
対応してないのかなぁと。。。


>とりあえず文字列リテラル内の < が気になった
SI系のドキュメント書くときとかで、変数の場合は
斜体+<>で表現する事が多いかも。MSとか
978デフォルトの名無しさん:2005/11/27(日) 16:02:04
あ、すんません。
mysqlは5.0.15でOSはXP SP1です。

いずれちゃんとLinuxに導入しようとは思ってますが。。
979デフォルトの名無しさん:2005/11/27(日) 16:07:37
>>968
すいません。
こういう感じです。
java.sql.SQLException: Column index out of range.

at com.mysql.jdbc.ResultSetMetaData.getField(ResultSetMetaData.java:468)

at com.mysql.jdbc.ResultSetMetaData.getColumnName(ResultSetMetaData.java:337)

at isbn_mysql.main(isbn_mysql.java:42)
980デフォルトの名無しさん:2005/11/27(日) 16:12:10
>>979
それ件数ではなくエラーメッセージどおりなんじゃ・・・
981デフォルトの名無しさん:2005/11/27(日) 16:13:34
>>978
とりあえずSJIS指定はmずいんじゃない?
WinならMS932とかwindows-31J
あと、DB自体のエンコーディング指定とかどうなってるかによるか
982デフォルトの名無しさん:2005/11/27(日) 16:13:49
ひとりだけ、似たようなDBの質問に間違えて反応している件について
983979:2005/11/27(日) 16:28:59
?????
984デフォルトの名無しさん:2005/11/27(日) 16:44:17
>>982

>>980のことな
985デフォルトの名無しさん:2005/11/27(日) 16:44:40
>980
次スレお願い。
986デフォルトの名無しさん:2005/11/27(日) 16:44:59
.bmpファイルをhtmだと表示できて、AppletViewerだと表示できないのですが、
AppletViewerは .bmp ファイルの表示不可ですか?
JavaJDK1.3です。
987デフォルトの名無しさん:2005/11/27(日) 16:49:15

ブラウザがBMP表示できるだけ
AppletViewerはJavaなのでBMP表示できるようにお前が作らないと無理だろ
ちなみにAppletをブラウザに持ってきても同じこと
988デフォルトの名無しさん:2005/11/27(日) 16:52:54
ありがとうございます。
989デフォルトの名無しさん:2005/11/27(日) 17:09:33
じわりじわりと 20秒おきに1000を狙う俺
990デフォルトの名無しさん:2005/11/27(日) 17:10:04
じわりじわりと 20秒おきに1000を狙う俺
991デフォルトの名無しさん:2005/11/27(日) 17:10:45
じわりじわりと 20秒おきに1000を狙う俺
992デフォルトの名無しさん:2005/11/27(日) 17:11:49
そういうのは次スレリンクの後な。まっとれ。
993デフォルトの名無しさん:2005/11/27(日) 18:53:27
着信アリこえええええええええええ
994デフォルトの名無しさん:2005/11/27(日) 19:11:56
じわりじわりと 20秒おきに1000を狙う俺
995デフォルトの名無しさん:2005/11/27(日) 19:22:19
>>979
お前英語くらいわかるだろ?
996デフォルトの名無しさん:2005/11/27(日) 19:24:45
【初心者】Java質問・相談スレッド76【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1133087049/l50

埋める前に先にスレ立てる準備しろよそこの20秒置きの奴
997デフォルトの名無しさん:2005/11/27(日) 19:31:33
じわりじわりと 20秒おきに1000を狙う俺
998デフォルトの名無しさん:2005/11/27(日) 19:42:30
うめるぞ
999デフォルトの名無しさん:2005/11/27(日) 19:47:18
埋めりゃいいだろカスが。
↓1000取って喜んでるルールも守れない厨房。
1000デフォルトの名無しさん:2005/11/27(日) 19:48:10
OKwwwwwwwwwwwwwwwwwww
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。