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

このエントリーをはてなブックマークに追加
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質問・相談スレッド85【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1147315998/

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

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

次スレは>>980あたりで。
2デフォルトの名無しさん:2006/06/03(土) 01:04:40
なぜDAOやサービスはステートレスに作るべきなんですか?
3規制テスト:2006/06/03(土) 01:46:22
規制テスト
4デフォルトの名無しさん:2006/06/03(土) 01:54:06
一乙
5デフォルトの名無しさん:2006/06/03(土) 07:37:47
で、結局C/C++とJavaではどっちのほうがいいの?
6デフォルトの名無しさん:2006/06/03(土) 08:48:21
>>5
スレまちがってるぞ
7名無しちゃん:2006/06/03(土) 11:27:13
今までパソコンに入っていたeclipsは2.1だったので、
3.1に更新したんです。
そして、フリーのUMLを入れました。
すると、eclipsもちゃんと起動してUMLも起動するのですが、
なぜか簡単なソースを入れて実行したら
「Could not find the main class, program will exit.」
とメッセージが出てきて実行できません。
非常にこまっています。
私の力じゃどうにもできないので、解決方法を教えてください。
お願いします。
8デフォルトの名無しさん:2006/06/03(土) 11:40:58
フリーのUMLってなんですか?
9デフォルトの名無しさん:2006/06/03(土) 11:43:05
>>7
その、簡単なソースが間違ってるか、パスが通ってないかだろ。
10名無し募集中。。。:2006/06/03(土) 11:46:15
>>7
eclipseスレ行け
11名無しちゃん:2006/06/03(土) 12:08:49
フリーのUMLはeclipseUML_E312_freeEdition_2.1.0.20060320.jarってゆうファイルです。
簡単なソースを2.1で実行したら普通に実行結果でたので間違ってないはずです。
どうしてでしょうか〜
12デフォルトの名無しさん:2006/06/03(土) 12:10:44
>>11
簡単なソース見ないとわからんだろ。パスはどうなのか?
レスみてんのか?
13名無しちゃん:2006/06/03(土) 12:11:15
すいません・・・
eclipseスレどこですか〜?(;_;)
14デフォルトの名無しさん:2006/06/03(土) 12:11:23
Eclipseスレ行けっつーの
15デフォルトの名無しさん:2006/06/03(土) 12:15:12
16名無しちゃん:2006/06/03(土) 12:15:57
行ってみます!!
ありがとうございました!
17デフォルトの名無しさん:2006/06/03(土) 14:12:01
JREのlib/extの中のライブラリを
アプレットから動的に読み込ませる方法ってありますか?

アプレット起動中に、ライブラリの差し替えや削除、追加を行いたいのですが。

よろしくお願い致します。
18デフォルトの名無しさん:2006/06/03(土) 14:15:11
サンドボックスで動いている以上、無理
19デフォルトの名無しさん:2006/06/03(土) 14:20:15
やっぱりむりかあ・・
20デフォルトの名無しさん:2006/06/03(土) 14:39:51
未だに初心者がアプレットをやる理由がわからん。
わざわざ自分から落とし穴にはまりに行ってるようなもんなのに。
21デフォルトの名無しさん:2006/06/03(土) 14:52:13
初心者向けの本でアプレットしか載ってないやつあるよね。あーゆーのは困る。
22デフォルトの名無しさん:2006/06/03(土) 14:54:47
雑談は他逝け
23デフォルトの名無しさん:2006/06/03(土) 19:45:50
BufferedImageのコピーで一番速い方法を教えてください。
24デフォルトの名無しさん:2006/06/03(土) 20:09:29
コピーを早くしたいというのは曖昧だな
blitがはやくということなら目的によって方法がかなり違うし
そもそもBufferedImageじゃないとだめなのかとか
25デフォルトの名無しさん:2006/06/03(土) 20:14:40
得られるインスタンスがBufferedImageであるディープコピーという条件です。
変換前のソースが何のクラスのインスタンスであるかは、特に気にしません。
26デフォルトの名無しさん:2006/06/03(土) 21:34:44
ホームページ上の画像を一気に落としたり
自動ログインするプログラムを作りたいのですが
参考になるサイトありますか?
27デフォルトの名無しさん:2006/06/03(土) 21:36:00
URLConnection でぐぐれ
28デフォルトの名無しさん:2006/06/03(土) 22:12:13
>>25
用途は?
本当にディープコピーが必要かという疑問がある
29デフォルトの名無しさん:2006/06/03(土) 22:12:52
>>27
サンクス
30デフォルトの名無しさん:2006/06/03(土) 22:23:01
>>28
アニメーション用の画像チップセットを基にして
ある差分情報を動的に書き込み、新たなチップセットを作るためです。
(実際はロード後は分割された画像リストになりますから、チップセットとは違いますが)
31デフォルトの名無しさん:2006/06/03(土) 22:25:11
>>30
それだとディープコピーはいらないね
blitでいいよ
32デフォルトの名無しさん:2006/06/03(土) 22:39:22
>>31
描画先のGraphicsに素材Imageと差分Imageを二度書きすることになりませんか?
先に合成を済ませてから使いまわす方が速いと思うのですが
33デフォルトの名無しさん:2006/06/03(土) 23:24:20
>>32
それはやってみてからの発言?
アルゴリズムのほうがはるかに時間かかってると思うよ
34デフォルトの名無しさん:2006/06/03(土) 23:44:59
>>31の言ってるblitって何?ビット転送のこと言ってるならなんか違う気が。
35デフォルトの名無しさん:2006/06/04(日) 15:05:00
Javaでエラーのダイアログの出し方を教えてください。

Dialogクラスの説明を見ても、モーダルかどうかとタイトルが
指定できるぐらいなんですが、ひょっとして、「エラーマーク
/警告マーク」とか「表示するメッセージ」とか「OK/キャンセル
ボタン」とかは、自分で部品をペタペタ貼り付けて作らないと
ダメですか?
36デフォルトの名無しさん:2006/06/04(日) 15:22:07
37デフォルトの名無しさん:2006/06/04(日) 15:49:46
>>35はほんとうに検索したのかねぇ
38デフォルトの名無しさん:2006/06/04(日) 16:06:06
>>36
ありがとうございます!
そういうクラスがあったんですね。助かりました!

>>37
Javaとダイアログ、あとエラーとか警告とかアラートとか付け加えて検索してました。
探し方そのものが的外れでしたね。すみません。
39デフォルトの名無しさん:2006/06/04(日) 17:35:20
javaでエディタ作ったんだけどテキストエリア内のJavaの予約語を強調表示するにはどうしたらいい?
40デフォルトの名無しさん:2006/06/04(日) 17:55:56
予約語を検索して色変えるなりboldにするなりしたらいい
41デフォルトの名無しさん:2006/06/04(日) 20:51:56
文字列に機種依存文字が含まれているかどうかを判定したいと思っています。
今考えている方法としてはString#getBytes("Shift_JIS") で返値から
再度Stringを生成して'?'が含まれているかどうかを判定する
この方法以外にうまくやる方法がありましたら教えていただけないでしょうか。

また、MACの機種依存文字((月)とか)も判定対象にしたいのですが、
Windows環境でこれらの文字を入力することができずテストができません。
こちらもよい方法がありましたら教えていただけないでしょうか。
4239:2006/06/04(日) 20:52:13
>40thx
43デフォルトの名無しさん:2006/06/04(日) 21:05:27
@とかAとか打ってみたらどうでっしゃろ?
44デフォルトの名無しさん:2006/06/04(日) 21:36:09
>>41
機種依存文字という言葉を勘違いして理解していませんか?
45デフォルトの名無しさん:2006/06/04(日) 22:31:02
JDBC経由でMySQLにデータをぶち込むプログラムを
作成しています。で、JDBCでMySQLにデータをぶち込む際に、
いくつかのレコードで以下の例外が発生してしまいます。

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'father' at row 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2973)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1600)

MySQLの「father」は「Char(255)」で定義していますが、一方のぶち込む
データは「大怐宦宦v等で8バイトしかありません。
データが切り詰められるような関係ではないと思います。

で、2000レコード程度ぶち込んだところ、どうやら以下のような
(特殊な?)文字を含むと上記の例外が発生しているようです。
・\守○○ ・大怐宦

何か解決策等がありましたら、御教授頂けますでしょうか。
よろしくお願いします。

※ちなみに「characterEncoding=sjis」にすると例外は発生しなくなりましたが、
MySQL上では上記のような文字が「?」で表示されるようになってしまいました。

■環境
Windows2000Pro + javaj2sdk1.4.2_02
MySql5.0 + mysql-connector-java-3.1.13
jdbc:mysql:///keiba?useUnicode=true&characterEncoding=MS932
46デフォルトの名無しさん:2006/06/04(日) 23:03:51
Seaserスレが雑談オンリーで入り込めないのでここで質問です。

S2JSFでs:forEachを使ってDBから取得した値を表示したいのですが、記述の仕方が解りません。
どのタイミングでどこから検索結果がセットされたDTOを呼び出すのでしょうか。

<component name="forEachDtoList" class="java.util.ArrayList" instance="session">
 <initMethod name="add" >
  <arg>
   <component class="action.zip.dto.DtoZip" >
    <property name="ZIP_NO">"0123456"</property>
    <property name="KEN">"あああ県"</property>
   </component>
  </arg>
 </initMethod>
</component>

public class ZipSearchActionImpl implements ZipSearchAction{
 private int index;
 private List dtoZipList;
 private DtoZip dtoZip;
 public void setIndex(int index) { this.index = index; }
 public void setDtoZipList(List dtoZipList) { this.dtoZipList = dtoZipList; }
 public DtoZip getDtoZip() { return dtoZip; }
 public String initialize() {
  // ここで無理やりDTOに値詰めてもinitMethodでaddした値で上書きされる
  dtoZip = (DtoZip) dtoZipList.get(index);
  return null;
 }
}
47デフォルトの名無しさん:2006/06/04(日) 23:08:44
スレ違い
48デフォルトの名無しさん:2006/06/05(月) 03:41:18
質問です。
Javamailを使ってメール送信のためのアプリケーション
を作成しようと思っているのですが、SMTPにパスワードを
送信するところがよくわからんのです。
↓ここを見て作ってるのですが、
ttp://www.fk.urban.ne.jp/home/kishida/kouza/old/javaml.html
どこをどういじくったらいいのでしょう?教えてください。
49デフォルトの名無しさん:2006/06/05(月) 03:59:33
>>48
Authenticatorを派生してgetPasswordAuthenticationをオーバーライドしなさい。
んでSession.getInstanceの第二引数に渡す。
ttp://www.geocities.co.jp/Playtown/7799/progmemo/javamail_send.htm
5048:2006/06/05(月) 14:07:09
>>49
ありがとう。
愛している。
どこまでも愛している。
51デフォルトの名無しさん:2006/06/05(月) 16:36:35
Integer型の配列をint型配列に詰め替えるには、
どうやるのが効率的ですか?
馬鹿正直に

Integer integerArray[];
int intArray[];
for(int i=0; i<integerArray.length; i++){
 intArray[i] = integerAttay[i];
}

とやるより良い方法無いですか?
52デフォルトの名無しさん:2006/06/05(月) 18:22:07
詰め替えない
53デフォルトの名無しさん:2006/06/05(月) 18:29:34
どうしても詰め替える必要があるならば、
そういう変換関数を用意しとけばいい。
54デフォルトの名無しさん:2006/06/05(月) 19:14:35
System.arraycopyが、配列の型ごとに多重定義じゃなくてObjectで定義して
あったからイケルかと思ったが、甘かった。→ArrayStoreException
55デフォルトの名無しさん:2006/06/05(月) 20:16:16
>>51
そんなことしないで Integer のやつそのまま使えばいいじゃん。
56デフォルトの名無しさん:2006/06/05(月) 20:19:49
まあ設計論無視して重箱の隅チューンするのも楽しいだろうけど
ラッパオブジェクトの配列ってのが意味不明、そこはArrayListでいいじゃん
57デフォルトの名無しさん:2006/06/05(月) 20:22:54
>>56
JavaSE5でないかぎり、ArrayListだと必ずInteger型のListになっている保証はないだろ?
配列なら型を限定できる。
58デフォルトの名無しさん:2006/06/05(月) 20:27:11
でも配列だとnullが入るじゃん
プリミティブ型にnullなんて概念ないよ
59デフォルトの名無しさん:2006/06/05(月) 20:33:36
>>58
何いってんだ?
ラッパオブジェクトの配列とArrayListの比較じゃないのか?
>ラッパオブジェクトの配列ってのが意味不明、そこはArrayListでいいじゃん
60デフォルトの名無しさん:2006/06/05(月) 20:38:59
だからだろ、配列の質そのものが等価じゃないっての
61デフォルトの名無しさん:2006/06/05(月) 20:43:46
質とか自分用語使うなよ
62デフォルトの名無しさん:2006/06/05(月) 20:48:10
自分が言語仕様理解できないからって噛み付くなよ うぜー
63デフォルトの名無しさん:2006/06/05(月) 20:52:50
言語仕様の話し始めちゃったよ^^;
64デフォルトの名無しさん:2006/06/05(月) 20:55:27
どうでもいいから、「配列の質」ってのが何なのかを説明してくれ。
65デフォルトの名無しさん:2006/06/05(月) 20:57:00
初心者がものを理解せず噛み付くとこういう恥をかくという典型例だな
次の方どぞー
66デフォルトの名無しさん:2006/06/05(月) 20:57:07
nullが入るってのはArrayListだって同じじゃん。
ArrayListはさらに、別の型も入っちゃうんだぞーーー!!!w
なのに、「ArrayListでいいじゃん」ってのがなぜなのかわからん。
67デフォルトの名無しさん:2006/06/05(月) 20:58:19
プリミティブの配列→0,0.0,falseで初期化される
オブジェクトの配列→nullで初期化される
68デフォルトの名無しさん:2006/06/05(月) 20:58:56
配列の質ってのが言語仕様にあるんですか?
69デフォルトの名無しさん:2006/06/05(月) 21:00:08
それじゃわからんよ。
ラッパオブジェクトの配列じゃなくてArrayListでいいじゃんという理屈にはならんだろ。
70デフォルトの名無しさん:2006/06/05(月) 21:00:33
質って専門用語じゃないぞ?
71デフォルトの名無しさん:2006/06/05(月) 21:01:30
しまったnull入るや
72池野めだか師匠:2006/06/05(月) 21:08:17
この変で勘弁しといてやるわ
73デフォルトの名無しさん:2006/06/05(月) 21:10:28
「初心者が」「言語仕様が」「質そのものが」とか言っておいて、このザマか
74デフォルトの名無しさん:2006/06/05(月) 21:12:45

つーかマグダラのマリアって本当にいたのかね?
75デフォルトの名無しさん:2006/06/05(月) 21:13:12
いやその部分はあってるし
76デフォルトの名無しさん:2006/06/05(月) 21:49:03
質問です。
アプレットにサーバーソケットの機能って
組み込んだりできますか?
アプレットを立ち上げたらサーバーソケットが起動する、という感じの。
77デフォルトの名無しさん:2006/06/05(月) 23:22:11
えっと〜
javaで画像を
8枚×3列で表示させたいのですが
何かいい方法はありますか??
78デフォルトの名無しさん:2006/06/05(月) 23:34:13
そう表示すればいいじゃんって思うのだけど
まず何に疑問を感じてるのか説明してくれ
書いてあるとおりだと「すれば?」って答えてしまう
79デフォルトの名無しさん:2006/06/06(火) 00:02:43
class Sample
{
public static void main(String args[])
{
String str = "hello";
char ch1 = str.charAt(0);・・・・・・・・・・・*
}
}


のところの、*の行の解釈で、

0という引数をStringクラスのcharAtメソッドに渡して、
その戻り値をch1に代入してる

という解釈であってますか??
80デフォルトの名無しさん:2006/06/06(火) 00:11:52
いいえ、違います
81デフォルトの名無しさん:2006/06/06(火) 00:13:21
>80
正確な解釈を教えてくれ
82デフォルトの名無しさん:2006/06/06(火) 00:16:25
Javaでexeのようなアプリケーションって作れるんでしょうか?
大学ではコマンドラインから起動するものしか使ったこと無いので・・・
83デフォルトの名無しさん:2006/06/06(火) 00:16:53
0という引数がStringクラスのcharAtに飛び込んで
襲われて逃げ出した戻り値がch1に篭城しにいった

が正解だったらいいなぁ
8479:2006/06/06(火) 00:19:31
>83
つまんない上に役に立たない解説ときた(T_T)
こりゃダメポ
85デフォルトの名無しさん:2006/06/06(火) 00:30:37
>>78

今はFrameの中に表示させてあるのですが
自分がやっている表示方法だと
同じ場所に重なって表示するか
画像に上書きをして、最終的に24枚目だけ表示してしまいます。

自分の希望をしてはサムネイル表示みたいにしたいのですが?
86デフォルトの名無しさん:2006/06/06(火) 00:32:00
jdkインストールすると中にjre入ってるのに
何でもう一回jreインストールされるの?
872年目 ◆mizf0Vej2Q :2006/06/06(火) 01:05:46
>>82
いったんjarにしてから、それをexeに変換すればできる。
JSmoothでぐぐれ

>>79
あってる。

>>76
できないかも?
jarならできることは確か。
88デフォルトの名無しさん:2006/06/06(火) 01:08:24
publicJREと開発用privateJRE
89デフォルトの名無しさん:2006/06/06(火) 01:14:50
>>85
表示をずらせよ。
90デフォルトの名無しさん:2006/06/06(火) 01:20:30
>>87
ありがとうございます
91デフォルトの名無しさん:2006/06/06(火) 01:23:13
import java.util.regex.*;
class LinkFinder {
public static void main(String args[]) {
Pattern pattern = Pattern.compile("( )");
Matcher matcher = pattern.matcher("123,555");
if(matcher.find())
System.out.println(matcher.group(1));
}
}
*************************************************
プリントするときにカンマを抜いて123555と表示させたいのですが
4行目の正規表現の部分でカンマを抜く方法はありますか?
92デフォルトの名無しさん:2006/06/06(火) 01:28:17
>>89

その表示のずらし方がわからないんです・・・
93デフォルトの名無しさん:2006/06/06(火) 02:18:57
class Car
{
int num;
double gas;
}

class Sample1
{
public static void main(String args[])
{
Car car1;
car1 = new Car();

car1.num = 1234;
car1.gas = 20.5;

System.out.println("車のナンバーは" + car1.num + "です。");
System.out.println("ガソリン量は" + car1.gas + "です。");
}
}
書籍を見ながらやってるのですが、javac Car.javaでコンパイルしjava Carでテストしたら
Exception in thread "main" java.lang.NoSuchMethodError: mainとでました、何が原因なのでしょうか

94デフォルトの名無しさん:2006/06/06(火) 02:20:58
基本的にJavaはコンポーネント使うとレイアウトマネージャ依存だからね
たぶんBorderLayoutとかで同じとこに表示してるとかじゃないかな
画像を適当なコンポーネントに貼り付けて、GridLayoutで8x3指定して放り込め
http://www.geocities.jp/h2fujimura/appendix/Layout/GridLayout/index.html
95デフォルトの名無しさん:2006/06/06(火) 02:22:29
>>93
コマンドライン載せてみな
9693:2006/06/06(火) 02:28:57
>>95
コマンドラインてこういうことでしょうか・・・

216 Car.class
398 Car.java
850 Sample1.class
97デフォルトの名無しさん:2006/06/06(火) 02:33:10
>>96
違う。そして93に載ってた、すまん。
そしてjava Carは違う、糞が
java Sample1だ、寝る
9893:2006/06/06(火) 02:35:38
>>97
ありがとう・・・、糞と言いつつ答えてくれる貴方、愛してます
良い夢を見てください、おやすみ
99デフォルトの名無しさん:2006/06/06(火) 04:01:27
switch文のbreakってラベル適用できますか?
100デフォルトの名無しさん:2006/06/06(火) 04:15:07
>>99
できるが、すごく嫌なソースになりそうだな。俺は使わん。
101デフォルトの名無しさん:2006/06/06(火) 05:53:07
初心者の質問です。よろしくお願いします。
HELLOを一通り勉強して、アプレットを今いじってます。

アプレットはhtmlファイルとjavaのソースファイル、そしてそれをコンパイルしたclassファイルを同じフォルダに入れてテストしますよね。もちろん設定次第では別フォルダでも可能でしょうが。
さて、そのテストなんですが。


初心者が普通学習する場合、

まずソースを作成して動作確認して、そして再度ソースを少し変更して動作確認する

これを繰り返すと思うのですが時々、ソースを変更したはずなのに、以前のソースの状態の動作をする場合があります。エディタでの保存を忘れてコンパイルしたといったミスではありません。
極端な場合クラスファイルを削除しても以前のソースの状態のままでhtmlが動作することもあります。
これはどういった場合に起こるのでしょうか?。

教えてください。
102デフォルトの名無しさん:2006/06/06(火) 06:38:55
>>101
キャッシュが残るんじゃない?
テストならアプレットビュア使えばいいんじゃない?
103デフォルトの名無しさん:2006/06/06(火) 08:07:18
プログラムを終了させるにはDOSウィンドウでコントロールCを押せば良いですが、
それと全く同じことをプログラムコードの中で行わせるにはどうしたらよいのでしょうか。
104デフォルトの名無しさん:2006/06/06(火) 08:09:15
System.exit(0);
105デフォルトの名無しさん:2006/06/06(火) 09:21:19
このやろー質問です
splitは行では区切れないのですか?
行で区切って格納したいのだが
106デフォルトの名無しさん:2006/06/06(火) 09:34:48
BufferedReader使ったほうがいいよ。
107デフォルトの名無しさん:2006/06/06(火) 09:39:22
>>106 やっぱ使わないとダミかぇー
ありがとん やってみます
108デフォルトの名無しさん:2006/06/06(火) 10:49:30
>>105
BufferedReaderが吉だが、splitでもできるぞ。どうやってるのかね?
109デフォルトの名無しさん:2006/06/06(火) 11:20:35
行で区切るのは可能だが、その「改行」とはなんぞや? ってのが出てくるのだよ。
\nだったり、\rだったり、\r\nだったりするから。
BufferedReaderにしときゃ無難。
110デフォルトの名無しさん:2006/06/06(火) 14:59:11
すみません・・・
>>89で表示をずらすって書いてあるのですが
表示のずらし方が分かりません・・・
誰か教えていただけますか?
111デフォルトの名無しさん:2006/06/06(火) 15:13:42
アノテーション使ったプロジェクトに参加しちまったPG居る?
tiger出る前にJava卒業しちまって、最近どうなってるのか知りたいんだが
112デフォルトの名無しさん:2006/06/06(火) 15:40:35
JSPやサーブレット、MYSQLの組み合わせで、ちまちまと掲示板を作ってます。
現在は参考書通りの設計でnページ目を開くたびに同じJSPにアクセスしていますが、
書き込み時のみプログラム処理で一括してHTML出力してしまい、
普通の閲覧はそのHTMLを見るだけにして負荷を減らしたいと思います。
(もちろん実際は負荷が気になる規模じゃないけど、個人的課題ってことで)
さらに後からでも自由にレイアウト変更しやすいようにしたいんですが…

JSPの出力をサーブレットから?保存するにはどうすればいいのか、
それとも何かもっといい方法ってありますか?
113デフォルトの名無しさん:2006/06/06(火) 15:55:02
>>112
つ Velocity
114デフォルトの名無しさん:2006/06/06(火) 16:45:01
書き込み途中はエラーがかえるのでその流れとかトラップ処理とか必要になるので
素人にはオススメできない

でもJSPでいいんじゃね?
DBからの情報をキャッシュしておくだけで問題ない

実際はパフォーマンス的には毎回DBよんでも問題はないと思うが
115デフォルトの名無しさん:2006/06/06(火) 16:51:48
>>110
何がわからないのかわからないが…
画像をLabelとかのコンポーネントで表示してるんなら、コンテナのレイアウトをGridLayoutにでもすりゃいい。
GraphicsにdrawImageしてるんなら、メソッドの引数でxy指定すりゃいい。詳細はjavadoc嫁。
116112:2006/06/06(火) 17:33:01
>>113
ほうほう、名前聞いたことあるだけで知らなかったけど、調べてみます。
THX!

>>114
…と、何やら問題も含んでるのですね?
実は自宅鯖に仲間内用の掲示板として置いてみてるんだけど、
ついでにそこでエンコしてたりすると時々遅いぞゴルァ!って言われたりするんで
少しでもどうにかならないかとw
117デフォルトの名無しさん:2006/06/06(火) 17:38:27
プログラムを実行する際に、与える引数によっては自分が書いたあるファイル(クラス)
が全く使われなかったりすることってありますよね?
引数がAならファイルAを使うけど、引数がBならファイルBを使う、みたいに。
118デフォルトの名無しさん:2006/06/06(火) 17:55:19
>>116
エンコしていたらデュアルコアとかにしないと静的なHTMLでも重いぞ
そのエンコーダをシングルスレッドで動かすのがまず大事だが
119デフォルトの名無しさん:2006/06/06(火) 18:11:32
Tomcatがたびたび落ちて困ります><
120デフォルトの名無しさん:2006/06/06(火) 18:12:13
>>118
まあ、そもそも鯖でエンコすなって感じですよね…
ともかくVelocityをちょっと調べ中で、
大雑把にはどんなものか分かりましたが
>>114のエラーやトラップ処理云々についてとか
デメリットの辺りをもう少し詳しくキボンヌ
ググッてて見つけられないんで、参考リンクかオススメ本でもいいのでお願いします
121デフォルトの名無しさん:2006/06/06(火) 18:19:32
>>117
当たり前でございます。
122デフォルトの名無しさん:2006/06/06(火) 18:22:36
CSVファイルのパーサーを作るという、車輪の再発明的なことをやってるんですが、
巷のCSVパーサーって、どの程度の処理速度なら速いって言えるんでしょうかね?
試しに、郵便局ホームページで公開されている事業所郵便番号CSVを食わせてみたのですが、
サイズ的には、13カラム*21383行。
データはここ。
ttp://www.post.japanpost.jp/zipcode/dl/jigyosyo/lzh/jigyosyo.lzh

パースして1行分のCSVオブジェクトを全てListに行単位で格納する処理で、完了まで0.5秒・・・
微妙に遅い気がします。
パーサ自体に、NULL文字を明示的に入れるとか、出力はカラム単位でクォートで囲む設定するとか、
いろいろオプション付けて重くなってはいます。

環境は、PenM1.4GHz、RAM1GB、Java5.0です。
こんなもんですかねぇ。。
123デフォルトの名無しさん:2006/06/06(火) 18:36:07
質問でも相談でもないスレ汚しかも知れませんが、Javaの課題をくれませんか?
こんな感じのプログラム作ってみろ。的なものです。

環境は、JDK1.4でGUIとネットワークは除く。
よろしくお願いします。
124デフォルトの名無しさん:2006/06/06(火) 18:37:10
>>123
宿題スレの課題とかどうよ?
http://pc8.2ch.net/test/read.cgi/tech/1145447187/
125デフォルトの名無しさん:2006/06/06(火) 19:23:08
>>102

101です。お答えありがとうございます。
アプレットビューア?、そんなもんがあんのか〜?、とググってみましたが、いまいちわかんないっす。JDKのツールのひとつってのはわかったんですがね。
もうちっと調べてみます。

そういうことがあり得るとわかっただけでも収穫です(^^。さすが2ちゃんねる。
126デフォルトの名無しさん:2006/06/06(火) 19:32:33
>>123
D言語のインテリセンス作って。Eclipse用にプラグインも。
127デフォルトの名無しさん:2006/06/06(火) 21:14:44
アプレットとサーブレット間をjava.net.URLConnectionクラスを使ってオブジェクトをやりとりする物を作りました。
サーブレットをTomcatにおいてアプレットビューワで実行するとちゃんと動くのですが、IEで実行すると動いてくれません。
それで、[ツール]―[Sun の Java コンソール]で見てみると

>access denied (java.net.SocketPermission localhost:8080 connect,resolve)

なエラーが出ていました。
どうしたら動くようになりますか?
128デフォルトの名無しさん:2006/06/06(火) 21:38:35
java+Swingで簡単なWindows向けアプリケーション作ってます。

んで、特定のキーの組み合わせでそのアプリケーションを
アクティブにしなきゃならないんですが、
KeyListenerなんかだと当然ながらアクティブ時の入力しか拾ってくれません。
JVM上で動いてるという仕様上無理なんでしょうか。

Win32APIでRegisterHotKey()という関数があるので、
JNIからc++経由で呼び出してみましたが、
ホットキーが押されたというイベントがWindowMessageで処理されるため、
java側で受け取ることが出来ません…

何かいい解決方法はありますか?
129デフォルトの名無しさん:2006/06/06(火) 23:03:54
>>128
>java側で受け取ることが出来ません…

別にイベントそのものを受け取る必要はなくて
JNIからJavaのウィンドウを触って
アクティブにすればいいだろう。
130デフォルトの名無しさん:2006/06/06(火) 23:25:35
>>122
クオーテーション使うと、複数行に及ぶ文字列とかちゃんと取ってこれるのかしら
131デフォルトの名無しさん:2006/06/06(火) 23:33:40
>>129
なるほど、ネイティブコード側で受け取ってしまえばよかったのかー。
試してみます、ありがとうございました。
132デフォルトの名無しさん:2006/06/06(火) 23:36:57
質問です。
ISO 8601の形式でDateオブジェクトを作ることはできますか?
DateオブジェクトからISO8061形式でフォーマットすることはできるのですが、
その逆がやりたいのです。
どうか良い方法を教えてください。
133デフォルトの名無しさん:2006/06/06(火) 23:58:38
>>132
SimpleDataFormat 見れ
134デフォルトの名無しさん:2006/06/07(水) 00:39:52
>>91
import java.util.regex.*;
class LinkFinder {
public static void main(String args[]) {
Pattern pattern = Pattern.compile("( )");
Matcher matcher = pattern.matcher("123,555");
if(matcher.find())
System.out.println(matcher.group(1));
}
}
ちょっと冗長だけどこれでいいんじゃね?
135デフォルトの名無しさん:2006/06/07(水) 00:42:46
>>122
>パースして1行分のCSVオブジェクトを全てListに行単位で格納する処理で、完了まで0.5秒・・・

21383行読んで0.5secなら、十分速いんじゃね?
136134:2006/06/07(水) 01:15:21
>>91
import java.util.regex.*;
class LinkFinder {
public static void main(String[] args) {
Pattern pattern = Pattern.compile("(\\d(,?\\d)*)");
Matcher matcher = pattern.matcher("1,5123,555");
if(matcher.find())
System.out.println(matcher.group(1).replace(",", ""));
}
}
1,2,3,4,5 とかも引っかかっていいんならこれでいいんじゃね?
137デフォルトの名無しさん:2006/06/07(水) 01:29:41
自作のビジュアルコンポーネントはどう作ればいいんでしょうか?
Buttonを継承してpaintをオーバーライドするやり方でやってみて、画像を被せるまでは出来たのですが
クリックした場合の凹む処理をどうやればいいのか分かりません
また、後ろにButtonの描写も入ってるのでこのやり方が正解だとは思えません・・・
こういう場合の定石や、作り方を載せているサイトまたは書籍があれば教えてください
138デフォルトの名無しさん:2006/06/07(水) 01:40:08
Javaのプログラムからマウスカーソルの操作やクリックなどをすることって可能ですか?
OSはWindowsです。
139デフォルトの名無しさん:2006/06/07(水) 01:47:54
>>138
java.awt.Robotを使えば出来ます
140デフォルトの名無しさん:2006/06/07(水) 02:12:04
>>139
ありがとうございますた!
141デフォルトの名無しさん:2006/06/07(水) 02:20:10
すみません、ご存知の方いらしたら教えてください。

Webアプリでパフォーマンスを極端に追及する場合、一つのServletまたはJSP内に処理を全部書いた方が早くなるものなんですか?
早くなるなら保守性は全く無視して良いという条件なのですが・・・。
142デフォルトの名無しさん:2006/06/07(水) 02:24:15
投資対効果を完全無視で良いなら、まぁ理論的にはな。
143デフォルトの名無しさん:2006/06/07(水) 02:55:51
>>141
そんなしょうもないことをするまえに
ちゃんとプロファイリングしろ。
144デフォルトの名無しさん:2006/06/07(水) 08:08:39
>>141
速くならない
145デフォルトの名無しさん:2006/06/07(水) 08:21:27
>>141
髭を剃ってダイエット、っていう程度には効果がある。
146122:2006/06/07(水) 11:11:55
>>130
1行分のCSVデータが、複数行にまたがるケースは考えてません。
"aaa", "bbb", "ccc"
なデータを取り込む際は、クォート取って格納し、出力時は任意のカラムに
改めてクォート付けるとかやってます。
・・・「1行分のCSVデータが、複数行にまたがるケース」って、けっこうありそうですかね?

>>135
ありがとう。
同じことやるにも、格納処理のやりかたやデータ構造次第で、けっこう変わると思うんで、
まずは不具合無く動くことを目標にがんばってみます。
147デフォルトの名無しさん:2006/06/07(水) 12:26:18
CSVでクォートとかエスケープとか改行文字とかそのへんすべて環境依存項目だからな
148127:2006/06/07(水) 13:58:47
すみません。
>>127ですが、わかる人いませんか?
一応自分でググって試してみたんですが、まだIEでは動いてくれません。
試してみた事は、[ツール]-[インターネット オプション]-[セキュリティ]-イントラネットの[レベルのカスタマイズ]でJavaアプレットを有効にして
ウイルスバスターのファイアーウオールの設定で、Webサービス (HTTP) ポート番号80,8080 の受信送信両方を例外指定しました。
そしたら、Java コンソールのエラーが

>Opening Connection
>access denied (java.net.SocketPermission localhost:8080 connect,resolve)

に変わりました。
Opening Connection という表示は、アプレットがサーブレットに Connection を開かせる処理をする前に System.err.Println() で書き出した文字列です。
その後、送信したオブジェクトがどうなったのかはわかりません。
IEで動かす場合、あと何を試してみるといいのでしょうか。
誰か助けてください。お願いします。
149デフォルトの名無しさん:2006/06/07(水) 14:08:47
そもそもCSVフォーマットと呼ばれる物の正確な定義は誰も知らない罠

一応MS流CSVの定義は合ったかも…
150デフォルトの名無しさん:2006/06/07(水) 14:14:50
CSV はみんな好き勝手な定義をして使ってたと思う。
151デフォルトの名無しさん:2006/06/07(水) 14:33:44
基本的には1レコード1行、つまりエクセルとかの表計算みたいな感じで、
改行で1レコード終了、項目間は,で区切る。
異なるシステム間でのデータ受け渡しだから、こうしましょうと双方が
決めたらいろんな仕様のcsvになる。
今はxmlとかだよなあ。
152122:2006/06/07(水) 15:19:33
JavaからCSVの話題になってきてしまって申し訳ない。

CSVはその名の通り、Comma Separatedなわけなんだけれど、
カンマ区切りじゃない(タブ区切りの)CSVとか、カラムがクォートで囲まれている・囲まれていないとか、
1行中のカラムに、クォートで囲まれたものとそうでないものが混在してるとか、
けっこー厄介なことに気が付きまして。
なので、汎用的なCSVパーサーを作ろうと考えたわけなのです。

いちおう作る前にリサーチして、

 「CSV Tools」
  http://kasparov.skife.org/csv/
 「CSV JDBC Driver」
  http://octopus.objectweb.org/doc/3.2-2/extras/Csvjdbc_readme.html
 「CSVTokenizer & CSVLine」
  http://www.wakhok.ac.jp/~tomoharu/Java/csv/

あたりは見てみたのですが、やりたいことにはどれも微妙にたらんかった('A`)
他にもあるんですかね?
いちお、私の知ってるJavaで制御できるCSV関連APIは以上で全部です。
153デフォルトの名無しさん:2006/06/07(水) 15:23:15
やっぱみんなcsvは苦労してんだね。
俺もそのへん試して微妙にたらんかった('A`)ので、Excelの吐くcsv限定で
かなり適当に自作した。 Accessはまた違うcsv吐くんだよなぁ…
154デフォルトの名無しさん:2006/06/07(水) 15:35:31
CSVなんてJakarta POIでどうにかできる
155デフォルトの名無しさん:2006/06/07(水) 15:36:09
そしてCSVを捨ててすべてXMLだけで表現する
156デフォルトの名無しさん:2006/06/07(水) 15:39:43
そして XML を捨ててすべて独自形式で表現する
157デフォルトの名無しさん:2006/06/07(水) 15:40:49
YAMLか?
158デフォルトの名無しさん:2006/06/07(水) 15:41:30
そしてXMLは自分が作ったと言い張る<丶`∀´>
159デフォルトの名無しさん:2006/06/07(水) 15:52:39
そして世界が踊り出す('A`)
160127:2006/06/07(水) 17:51:27
俺って馬鹿にされてるんでしょうか?
調べるのにももう疲れたし、どうでもいいかな。
161デフォルトの名無しさん:2006/06/07(水) 17:54:50
>>160
どうでもいいならいいじゃん。さっさとやめれ。
やるんなら死ぬ気でやれ。
162デフォルトの名無しさん:2006/06/07(水) 17:58:40
人は思考が停止すると All or Nothing でしか話さなくなる。
163127:2006/06/07(水) 18:04:31
次がつかえてるんでやめます。
スレ汚ししてすみませんでした。
>162さんの言うような面白い教訓も教わったのでまぁ良かったです。
ありがとうございました。
マジですみませんでした。本当にマジで。
164デフォルトの名無しさん:2006/06/07(水) 18:40:33
>>160
proxyを無効にせよ
165デフォルトの名無しさん:2006/06/07(水) 19:54:03
SwingにCanvas相当のコンポーネントってありませんか?
具体的にはBufferStrategyの使えるWindowじゃないコンポーネントです。
フルスクリーンじゃないときにスキンの中に埋め込みたかったのですが
SwingにCanvasを埋め込むとかは出来るのでしょうか?
166デフォルトの名無しさん:2006/06/07(水) 20:02:26
出来るよ
167デフォルトの名無しさん:2006/06/07(水) 20:03:27
SwingとAWTが一緒になりますが、見えない部分でおかしくなるということは?
168デフォルトの名無しさん:2006/06/07(水) 20:22:37
>>165
非推奨だが一応は出来る
そのかわり仕組みがきっちり分かってないと危険
SwingでやるならおとなしくJWindow直系だけにしておけ
169デフォルトの名無しさん:2006/06/07(水) 20:40:11
>>168
んー、非推奨を人様に配布するのは気が引けます。
では逆にpaintComponentのリアルタイム処理版はありますでしょうか?
別にイベントキューを通しても目に見えた問題はないのですが
管理の精度を上げられるなら上げておきたいです。
170デフォルトの名無しさん:2006/06/07(水) 20:47:48
非推奨ってどっかに書いてある?
171デフォルトの名無しさん:2006/06/07(水) 20:49:24
Swing AWT 混在 でぐぐると悲鳴が聞こえてくる
172デフォルトの名無しさん:2006/06/07(水) 20:51:54
どうでもいいが何でピカチューをシグネチャに・・・ホントどうでもいいが
173デフォルトの名無しさん:2006/06/07(水) 20:52:02
ヒント1:メニュー
174デフォルトの名無しさん:2006/06/07(水) 20:57:19
うん、みんなそのメニューのためにCanvas埋め込んで自滅してるみたいだねw
175デフォルトの名無しさん:2006/06/07(水) 21:13:49
それぞれどのように実装しているか考えれば分かりそうなものだが
なんかいまさらな話が多いな
176デフォルトの名無しさん:2006/06/07(水) 21:23:08
自称中級者がこのスレに何のよう?
177デフォルトの名無しさん:2006/06/07(水) 21:25:54
初心者スレでネタがループするのは昔からなんだが…
最近初心者脱出できたの?
178デフォルトの名無しさん:2006/06/07(水) 22:03:22
横からだけど、結局 Swing で Canvas の代わりになるものって何?
179デフォルトの名無しさん:2006/06/07(水) 22:06:12
JPanel
180デフォルトの名無しさん:2006/06/07(水) 22:06:17
JPopMenuの持つ、自身をヘビーウェイトにする機能を使うらしい。
闇のテクニックだね
181デフォルトの名無しさん:2006/06/07(水) 22:50:40
Javaを勉強したいと思っているのですが通信教育みたいので勉強
するのと自分で本買って勉強するのではどっちがいいですか?
182デフォルトの名無しさん:2006/06/07(水) 22:54:15
通信教育なんてもんがあんの?
183デフォルトの名無しさん:2006/06/07(水) 22:56:12
てかさ、JREを切り替えるフリーのソフトってない?

1.4.1じゃないと正常動作は保障しませんっていう
ソフトがあってさ、いまつかってるのが1.5.0
1.4.1はあまりつかいたくないんだけど、必要になった。
184デフォルトの名無しさん:2006/06/07(水) 23:00:28
>>183
JREを切り替えるフリーのソフトなんてものが必要な理由がわからん。
実行時に適宜必要なJAVA_HOMEを指定すればいいじゃん。
185デフォルトの名無しさん:2006/06/07(水) 23:00:53
>>178
JComponentすべて
186デフォルトの名無しさん:2006/06/07(水) 23:02:09
>>183
publicJREじゃないと絶対に動かないようなプロテクトかけてないかぎり普通にどうぞ
JavaはJREの共存が容易なのがうりだ

アプレット除く
187sage:2006/06/07(水) 23:04:29
ServletRequestのgetInputStreamってどういう時に使うべきものなのか誰か教えてくれ
HTTPのBodyをバイナリで取得しなければいけないケースってどんな時なんだ
188183:2006/06/07(水) 23:05:30
あ、そうか、パス変えればいいのか、漏れは、、OTL
レスしてくれた人、つまらん質問して悪かったスマン。。。
189デフォルトの名無しさん:2006/06/07(水) 23:05:38
>>187
multi;art/form-data
190デフォルトの名無しさん:2006/06/07(水) 23:10:18
学校の授業でJavaをかじった程度の学生です。
勉強がてら自分でソフトを作ってみたいんで色々考えてるんですけども難易度がどうも分からずちょっと質問させてください。

考えているソフトは
・クリップボードを監視してURLが入ってきたらブラウザを起動する
というものです。
1行チャットみたいなのがあって文字交じりの間にURLが入ってるんです。
1行丸ごとしかコピーできないのでアドレスバーに貼ってから前後の文字を消してる状態なんです。

ちょっとソフト探してみたんですけど見当たらないんでつくろうかと思ったんですけどどうなんでしょうか?
タスクトレイに常駐とかもさせたいんですけどJavaではまったく作ったことがなくてどれくらい難しいのか・・・

お暇あればレスよろしくお願いします。
191デフォルトの名無しさん:2006/06/07(水) 23:15:35
>>190
Javaでは無理。
192デフォルトの名無しさん:2006/06/07(水) 23:25:03
>>190
ヒントだけ
1,java.util.Timer
2,java.awt.datatransfer.Clipboard
3,java.lang.Runtime

タスクトレイに常駐はJavaのみではちと難しい。
193デフォルトの名無しさん:2006/06/07(水) 23:26:48
クリップボードの内容の取得は可能。
トレイ常駐はMustang(Java SE 6)から可能。

なのだが、肝心のクリップボード監視機能はなさそうだ。
194デフォルトの名無しさん:2006/06/07(水) 23:28:25
>>192
pollingか。
あまりエレガントではないが、それなら可能ではあるな。
195192:2006/06/07(水) 23:38:30
>>194
ポーリング以外にも処理できる方法があるの?
後学の参考にしたいのでご教示願う。
196デフォルトの名無しさん:2006/06/07(水) 23:46:35
>>195

や、クリップボードの内容の変化を通知するイベント&イベントリスナー
がないもんかと探してみてさ、ないな、じゃあできないな、と思いこんじゃ
って、ポーリングという手に気づかなかった漏れの頭が固かったという
ことなのです。
197190:2006/06/07(水) 23:46:42
レスありがとうございます。

まず・・・クリップボードの内容取得と監視が何が違うのかすらいまいち分かってませんorz
タスクトレイに常駐せずにクイック起動とかにショートカット作っておいて起動したときにクリップボードの内容を取得。
ということができるということでしょうか?

使い勝手は落ちるかもしれませんが劣化版・・・というのか初めて作るので敷居は低い方がいいかな・・・とか思ってます;
198sage:2006/06/08(木) 00:12:23
>>189
情報サンクス
199デフォルトの名無しさん:2006/06/08(木) 00:28:33
監視ってのは、クリップボードの内容が変わったことを知るってこと。

変わろうが変わるまいがひたすら1秒おきとかの周期で内容を取得し
てみるのが、ポーリングという概念。前回ゲットした内容と違うもの
が得られたら、新しい内容で目的の処理をすればいい。

対して、監視するってのは、新しい内容がクリップボードに入った
ことだけをなんとかして知り、そのときだけ内容を見に行くって
こと。可能ならば、こうした方がパソコン全体に与える負担は軽く
なると思われる。

クリップボードの中身を取ってくるという行為の負荷が無視できるほど
軽微なら、ポーリングでOK。

Toolkit tk = Toolkit.getDefaultToolkit();
Clipboard cb = tk.getSystemClipboard();
Object data = (String)cb.getData(DataFlavor.stringFalvor);
とかでクリップボードの内容が取れたと思う。

あと、常駐させるだけならタスクトレイにアイコンを出さずに
居座ることもできるので、それならMustangを待たなくてもよいですね。
この場合、Windowsだとシステムモニタとかから終了させることになる。
200192:2006/06/08(木) 00:31:23
>>196
レスありがとう。

>>190
できる。
「Clipboard java」で検索してみては。
201デフォルトの名無しさん:2006/06/08(木) 00:36:22
>>200

> >>190
> できる。
> 「Clipboard java」で検索してみては。

何でいちいち二回も答えてんの?
202デフォルトの名無しさん:2006/06/08(木) 00:36:24
補足しとくと、クリップボードなどの変更を監視したい場合、
処理負荷以外に、ポーリングでは取り落としが発生する可能性があるなど、
制限が出てくる。
監視機能がある場合も仕組みによっては取り落としが無いとは限らないけど、
そういうことが無いように実装されている場合が多い。
203190:2006/06/08(木) 01:05:14
皆さんご丁寧にありがとうございます。

色々試行錯誤しながら作ってみようと思います。
行き詰ったときお世話になるかもしれませんがよろしくお願いいたします;

>>201
難しい、と答えてもらってできる。と答えてもらってるんで質問者としてはちょっとやるきが出てありがたいっす。
204デフォルトの名無しさん:2006/06/08(木) 01:06:42
質問です。
アプレットで、Jテーブルにデータベースの内容を表示したのですが、
テーブルに表示した内容をマウスでクリックする事で、
クリックした行のデータベース内容を取得したいのですが、
この場合、クリックでの内容取得はどうすれば良いでしょうか?

MouseListenerを使って足掻いているんですが、
テーブルその物のデータとか、座標とか、違うものばかり取得してしまい、
目的のデータを取ってくる事が出来ず、詰まっています。

何かヒントだけでも頂けると助かります。
205デフォルトの名無しさん:2006/06/08(木) 01:08:53
>>204
クリックされた行のデータをキーにして検索すれよ
206デフォルトの名無しさん:2006/06/08(木) 01:17:31
>>187
ファイルアップロードとか
207デフォルトの名無しさん:2006/06/08(木) 01:44:56
>>205
早速のレスありがとうございます。説明不足でした。
クリックされた行のデータを取得する時点で詰まっています。
getValueAt() やgetRowCount() を使おうにも、書式が変なのか動作せず、
他の方法も思いつかないのが現状です。
208デフォルトの名無しさん:2006/06/08(木) 01:49:51
あっそう、としか答えようが無いわけだが
209デフォルトの名無しさん:2006/06/08(木) 01:54:11
columnAtPointとrowAtPointで座標を行、列に変換してからgetValueAtで要素をとれ

205=208か?的外れな回答はスレの質をさげる
210デフォルトの名無しさん:2006/06/08(木) 01:57:37
何かスレの質とか語り始めたぞw
211デフォルトの名無しさん:2006/06/08(木) 02:05:47
配列の質の次はスレの質かw
212204:2006/06/08(木) 02:23:35
>>209
ありがとうございます。その書式は試していませんでした。
Eclipseで赤線エラー吐いてますが、apiのJTable欄に色々書いてあるので、
columnAtPointとrowAtPointを無事読み込むよう、色々試行錯誤してみます。
213デフォルトの名無しさん:2006/06/08(木) 02:58:19
サニタイジングについて質問です。
以下のように一文字ずつ置換する方法しか思いつかないのですが
スマートに高速に置換する方法ってありますでしょうか?

pattern = Pattern.compile("<");
matcher = pattern.matcher(sHTML);
sHTML = matcher.replaceAll("<"));
pattern = Pattern.compile(">");
matcher = pattern.matcher(sHTML);
sHTML = matcher.replaceAll(">"));
214デフォルトの名無しさん:2006/06/08(木) 03:00:57
213のソース3行目は&lt;、6行目は&gt;です。
変換されてブラウザに表示されてしまいました><
215デフォルトの名無しさん:2006/06/08(木) 03:03:03
StringBuffer buffer = new StringBuffer();
for(int i=0; i<sHTML.length(); i++){
  char ch = sHTML.charAt(i);
  switch(ch){
  case '<':  buffer.append("<"); break;
  case '>':  buffer.append(">"); break;
  default:   buffer.append(ch); break;
  }
}
sHTML = buffer.toString();
216デフォルトの名無しさん:2006/06/08(木) 03:09:32
検査対象と置き換え先の文字を
それぞれ配列に登録しておく方法はどうかな。
217デフォルトの名無しさん:2006/06/08(木) 06:04:06
>>213
正規表現とreplaceAll()を使うとエラい遅いぞ。
218199:2006/06/08(木) 13:29:38
ちとBugParadeをみてみたら、クリップボードの内容変更通知が
RFE(機能拡張の要望)としてあがっており、解決済みになっていた。
java.awt.datatransfer.FlavorEvent/Listenerを使えと言うことら
しい。

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4259272
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/datatransfer/FlavorListener.html#flavorsChanged(java.awt.datatransfer.FlavorEvent)
219デフォルトの名無しさん:2006/06/08(木) 14:37:28
java.uti.Collections#sort()
って、意外と高速?

QuickSort系の処理を作って、2万行のテキストデータをソートさせてみたのだが、
自前(というか、サンプルを改造)のQuickSortより、Collections#sortのほうが高速だった。

o....rz
220デフォルトの名無しさん:2006/06/08(木) 15:51:15
>>219
サンプルデータ次第かもよ。
クイックソートの場合、使用する境界値が中央値より離れるほど
効率が下がるから。

Collections#sort()はマージソートなので、またアルゴリズムが違う。
詳しくはソートのアルゴリズムについて調べてくれ。
221219:2006/06/08(木) 16:51:37
>>220
お、マージソートですか。ありがとう。

ソートしたデータは、>>122の郵便番号データ。
ソートキーは、郵便番号データ中の大口事業所等の所在地の
JISコード(5バイト)ってやつをString→intに変換したもの。

環境は、PenM1.4GHz、RAM1GB、Java5.0で、
Collections#sort = 890ms〜900ms
自前QuickSort = 2060ms〜2100ms

アルゴリズムが違うとはいえ、2倍以上も遅いです。。。
自作したcompareToメソッドがタコいのかも。
つか、オレがその>>122。吊ってくる・・・

ちなみに、アルゴリズムの参考にしたサンプルコードがあるページはここ。
ttp://www.cs.ubc.ca/~harrison/Java/sorting-demo.html
Fast Quick Sortってやつを改造して、作りかけのCSVパーサに組み込んでみますた。
けっこー勉強になりましたよ。

とりあえず、郵便番号データを全部パースしてオブジェクト化したあと、
再度オリジナルと1バイト違わぬ全く同じCSVデータ化してファイルにはき出せるとこまで確認出来た。
なんとなくうまく動いてるモヨンヌ。
222デフォルトの名無しさん:2006/06/08(木) 17:49:31
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
ハローワールドをjavac HelloWorld.javaでコンパイルしてjava HelloWorldで実行すると
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
が出るのですが何故でしょうか・・・急に色々なプログラムがこのエラーをはくようになりました
223デフォルトの名無しさん:2006/06/08(木) 17:59:58
224222:2006/06/08(木) 18:22:39
>>223
ゴミン><
225デフォルトの名無しさん:2006/06/08(木) 18:37:02
くそぉ・・・
俺もなぜか>>222と同じ所でひっかかっちゃってる_| ̄|○
大文字小文字の間違いなんてしてないし、拡張子なんて入れてないし・・・
何度も見直したけど原因がわからない・・・なぜだ・・・
226デフォルトの名無しさん:2006/06/08(木) 18:38:48
227デフォルトの名無しさん:2006/06/08(木) 18:43:04
>>226
何度も見てるんだよ・・・wikiをさ・・・
でも実行できないのは何故だろうか・・・
228デフォルトの名無しさん:2006/06/08(木) 18:44:07
ごめん、俺が悪かった_| ̄|○
原因見つけた・・・
229デフォルトの名無しさん:2006/06/08(木) 19:34:52
だから俺はあの時「実のおかんと関係持ったらおしまいやで?」と説得してやったのに
230デフォルトの名無しさん:2006/06/08(木) 22:31:47
>>221
元データがものの見事にほぼソートされているデータっぽい?
クイックソートにとって最悪のデータ
231221:2006/06/08(木) 23:08:36
>>230
う、まさにドンぴしゃでソート済みデータだったかも。。。
とりあえず、他のデータでも試してみます。
232デフォルトの名無しさん:2006/06/09(金) 00:36:52
すいません、質問させて下さい。
現在、Javaを用いて天気予報を表示するようなツールを作ろうと思っているのですが、
天気予報の情報は、どこからどのようにして得られる事が出来るのでしょうか?
233デフォルトの名無しさん:2006/06/09(金) 00:47:14
234デフォルトの名無しさん:2006/06/09(金) 00:59:35
質問させてください。

ボタン
テキストフィールド
ラベル
(パネル)

これらのコンポーネントだけを並べて表示する場合、きれいに思い描いたとおりに並べたいので
レイアウトをnullにしてsetBound()で一つ一つ並べようと思ったのですが、
画面のサイズ変化に対応できるようにするにはどうすれば良いでしょうか?
画面を広げるとコンポーネント間の距離も広がったり。
235デフォルトの名無しさん:2006/06/09(金) 01:05:05
>>234
netbeansを使ったら?
236234:2006/06/09(金) 01:11:15
>>235
ありがとうございます。
何のことかわからなかったので検索してみると、開発ツールって出てきました。
僕はいつもメモ帳で書いてるので、こういうのは使ったことが無くてわからないんですが
それを使うとできるようになるんですか?
237デフォルトの名無しさん:2006/06/09(金) 01:47:38
使えばわかるさ!使い放題だから遠慮することないさ!
気がつけばメモ帳に戻れなくなるぜ!
2382年目 ◆jDx9Dmg0GM :2006/06/09(金) 02:11:57
>>192-193
SWT使えば可能だよ。
239234:2006/06/09(金) 02:29:22
>>237
ありがとうございます。やってみます
240デフォルトの名無しさん:2006/06/09(金) 12:59:56
Java プログラムで RFC 2822 準拠のメッセージを作成したり、
または *.eml ファイル (というか MH 形式)のファイルを
読み書きしたいのですが、どのようなライブラリを使うのが
Java 世界ではデフォですか?
http://java.sun.com/products/javamail/index.jsp
JavaMail ですか?
241デフォルトの名無しさん:2006/06/09(金) 13:18:17
>>240
eml JavaMailでぐぐると出てくる1つ目がそんな感じの事してるな
242デフォルトの名無しさん:2006/06/09(金) 13:30:42
サーバ・クライアント間でバイト列の連続送受信をやりたいのですが,
受信するときに
BufferedInputStream in = new ...(socket.getInputStream);
while(in.read(byteSeq) != -1) // byteSeqはbyte[]型
;
と書いているのですが, write側がソケットをクローズしない限り
read(byteSeq)が-1になりません.
byteSeqのサイズが不明な場合どのように書けばよいでしょうか?
どなたかよろしくお願いします.
243デフォルトの名無しさん:2006/06/09(金) 14:17:47
>>242
APIリファレンスくらい嫁

・ソケットにバッファされたバイトがなく、close を使用してソケットが閉じられていない場合、available は 0 を返す
244デフォルトの名無しさん:2006/06/09(金) 15:10:54
>>243
バッファにデータが残っているかどうかではなく, write()が終端したらループを抜けたいんですが, そもそもwrite()自体は終端しないのでしょうか?
read()が-1を返す条件が今の所ソケットクローズ以外に見つかりません
245デフォルトの名無しさん:2006/06/09(金) 15:24:32
>>244
ところてんって知ってる?
あれがイメージできればavailableの意味が解ると思うんだが
246デフォルトの名無しさん:2006/06/09(金) 19:26:05
Write側が書き終えたかどうかなんて、
Read側でどうやって知るんだよ。
最初にサイズを送るとか何らかの約束がないと無理だろ。
247デフォルトの名無しさん:2006/06/09(金) 19:42:12
文字列なら0終端という技が可能。
文字列ベースならざくざく読み込んでけばいい
(buffサイズ超えたらコネクション切るとか居るけどね)

バイナリなら俗にいうContent-Lenghtを事前に送る必要がある
これは「事前にサイズを知っている」という条件を満たすためのものだから
例えばはなから8バイトずつとか分かっているなら必要ない

Content-Lengthを必要とせずにバイナリを送る裏技(力技)もあるけど
これは一般的なやり方だとだいたいサイズが4/3倍になる
248デフォルトの名無しさん:2006/06/09(金) 20:02:55
>>243 245 246 247
やっぱりそうでしたか。write()が裏でサイズ送るか終端してくれれば
うれしいなと思ったんですが。available()は勉強しときます。
ありがとうございました。
249デフォルトの名無しさん:2006/06/10(土) 00:11:01
243=245か?availableは終端判定にはまったく使えないぞ。
250デフォルトの名無しさん:2006/06/10(土) 00:24:58
初心者質問失礼いたします。

int型をString型に代入する方法ってありますか?

int a = 1234;
を、
String str に代入したいのです。
String型をint型に…だったら Integer.parseInt(str); とすればいいんでしょうけど、
逆だとどうすればいいのかわかりません。
買ってみた入門書にも書いてなかったので、よろしくお願いします。
251デフォルトの名無しさん:2006/06/10(土) 00:27:00
何故Javaにはデストラクタがないのですか?
252199:2006/06/10(土) 00:28:38
代入するのは無理。
つーか Integer.parseInt(str)も、Stringをintに代入しているわけじゃないぞ。

intの値の文字列表現を作ることは出来る。
String str = String.valueOf(a);
とすると、int型のaの値の10進表現文字列を作ってくれる。
253デフォルトの名無しさん:2006/06/10(土) 00:30:56
>>252
ありがとうございます!早速チャレンジしてみます!
Integer.parseInt(str);は代入じゃなかったんですね……!!!!
254デフォルトの名無しさん:2006/06/10(土) 00:41:33
>>248
おいおい勝手にwariteでへんなのおくられたらこまるだろ
255デフォルトの名無しさん:2006/06/10(土) 00:44:56
>>253
ジー
256デフォルトの名無しさん:2006/06/10(土) 00:45:15
>>249
そういや似たようなので@ITでもIO回りの記事嘘かきまくってたの思い出した
終端判定にready()つかうあほな記事は他のところでも見られるんだよな
なんでへんな書き方が流行ったのだろうか
257デフォルトの名無しさん:2006/06/10(土) 00:59:31
test[0,1,2] = 10;
指定した配列に10を入れたいのですが、エラーが出ます。
どこが間違っているのでしょうか・・・?
258デフォルトの名無しさん:2006/06/10(土) 01:02:12
>>257
どういうエラーかを言いなさい。
>>1
259デフォルトの名無しさん:2006/06/10(土) 01:02:37
for(int i=0; i < 3; i++) {
test[i] = 10;
}
じゃだめなのか
260デフォルトの名無しさん:2006/06/10(土) 01:56:45
if文で (a と b)どちらかに当てはまった場合true処理を続ける為のの記号教えてください
&じゃなくて・・・忘れました
261デフォルトの名無しさん:2006/06/10(土) 01:58:53
^
262デフォルトの名無しさん:2006/06/10(土) 02:03:44
>>260-262
暇だからって荒すな。||
263199:2006/06/10(土) 02:56:05
「どちらか一方が当てはまったときのみ。両方が当てはまったら×」なら261のとおり ^
「両方当てはまってもOK」なら ||
264199:2006/06/10(土) 03:04:14
両方当てはまってもOKは | でもいい。
||との違いは、左辺が真だった時点で右辺の真偽を問うか否か。

15.22.2 Boolean Logical Operators &, ^, and |
15.24 Conditional-Or Operator ||
JLSのこのへんな。
265デフォルトの名無しさん:2006/06/10(土) 03:31:45
>>251
そういう言語仕様だから。
捨てられた(参照されなくなった)メモリはJVMが勝手に
回収する。ゆえに使用済みのオブジェクトにはできるだけ
すみやかにnullを代入すべし。
266デフォルトの名無しさん:2006/06/10(土) 06:38:53
package test;

public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World");
}
}

testフォルダに移動して、
上記のようにパッケージ指定してあるソースをコンパイルして、
java HelloWorldと入力して実行しようとしたら、
Exception in thread "main"
java.lang.NoClassDefFoundError: HelloWorld(wrong name:test/HelloWorld)
と出て、実行できません。
入力をjava test.HelloWorld にしてみましたが、だめでした。
NoClassDefFoundErrorが出た時のFAQなど調べても、
回答がありませんでした。
どうしたら実行できるのでしょうか?
267デフォルトの名無しさん:2006/06/10(土) 06:43:16
268デフォルトの名無しさん:2006/06/10(土) 06:47:25
LinuxでJavaやる場合ってテキストエディタはemacsで十分ですか?
269デフォルトの名無しさん:2006/06/10(土) 06:53:22
eclipse最強
270デフォルトの名無しさん:2006/06/10(土) 07:02:22
>>266
それもFAQだけど一応…
testフォルダの一つ上に出て
実行してみて。

>>268
内様に依る。
271デフォルトの名無しさん:2006/06/10(土) 10:05:26
272デフォルトの名無しさん:2006/06/10(土) 10:45:49
>>268
  _  _∩
( ゚∀゚)彡  vim!
 ⊂彡     vim!
273デフォルトの名無しさん:2006/06/10(土) 11:32:32
JAVAのフォルダに
「j2re1.4.1_02」と「jre1.5.0_06」があるんですが
「j2re1.4.1_02」は削除しても良いファイルですか?
274デフォルトの名無しさん:2006/06/10(土) 11:35:22
javaのフォルダって何?
わざわざ自分で用意しない限りできないだろ?
コンパネのプログラムの追加と削除で消せるよ
275デフォルトの名無しさん:2006/06/10(土) 13:23:57
>>274
プログラムファイルのとこにJavaのフォルダがあるんですよ...
無意識に作ったのかもしれません。
では「j2re1.4.1_02」はいらないプログラムってことですよね?
276デフォルトの名無しさん:2006/06/10(土) 13:31:37
消す前に以下のことを試してみ
1.コマンドプロンプトを開く(Winキー+Rキーで出てくる窓にcmd)
2.java -versionと入力
3.出てくるバージョンが1.5なら、1.4は遠慮せず消す
4.1.4が出てきたら環境変数JAVA_HOMEを1.5にする
277デフォルトの名無しさん:2006/06/10(土) 13:56:21
>>276
1.5とでました。ありがとうございます!
278デフォルトの名無しさん:2006/06/10(土) 14:50:18
Javaというよりプログラムを始めて間もないものです。

オブジェクトを引数にとるあるメソッドの呼び出し側のクラスAと
実装側のクラスBがあります。

Aクラス :foo(new Exception());
Bクラス :public void foo(Exception e){}

Bクラスの引数のExceptionをThrowableに変更して
コンパイル→実行をすると何事もなくうまく実行できます。

Bクラス
public void foo(Throwable e){}

しかし、Bを他所で変更し、コンパイルをせずに、
クラスファイルのみコピーしてそのまま実行すると、
NoSuchMethodErrorが発生してしまします。
Exceptionを引数にもったfooメソッドはないということです。

これはなぜなのでしょうか?
コンパイル時のどういった仕組みが影響しているのでしょうか。

いくらクラスの継承関係で上位互換があるとは言え、
ライブラリ側を変更したら、コンパイルをする必要があるということでしょうか。
279デフォルトの名無しさん:2006/06/10(土) 15:10:25
言葉よりソース。要点説明する能力がまだ身についてないんだから、先にすべきはそっちでしょ。
280デフォルトの名無しさん:2006/06/10(土) 15:30:47
>>278
メソッドは名前だけじゃなくて、
同時に引数型も(実際のVMはさらに戻り値の型も)使って検索してるから。

void foo(Exception) を探してるけど、
void foo(Throwable) しかみつからんのでNoSuchMethodError 食らってるだけ。
コンパイル時には解決できるけど、実行時には解決できない。

dolphin 以降なら バイトコード弄って無理やり invokeDynamic 使えば
NoSuchMethodError 食らわないかも。
281278:2006/06/10(土) 16:13:18
>>280
そういうことですか。
どのような変更をしたら、コンパイルが必要になるか?というのは全て洗い出せるのでしょうか?
それとも、どんな変更でもライブラリを変更したら、必ず使う側もコンパイルすべきとするべきでしょうか。
282デフォルトの名無しさん:2006/06/10(土) 16:54:39
Javaはインタプリタだがスクリプトではない
283190:2006/06/10(土) 19:56:13
前回はありがとうございました。
ちょこちょこ作ってるんですが壁にぶつかっちゃいましてヒント的なものをお願いします。

公開するものじゃなく身内が使うものを作っているのでとりあえず動けばいいと思い暫定的なものを作っています。
クリップボードからStringに読み込むところまではいけました。
文字列からURLだけを取り出す方法がわからずURLの最後に***とつけてもらうようにしてあります・・・

一応あとはブラウザを起動できれば一旦は完成と思うんですがどうすればいいのか一切わかっていません。
けっこうググったつもりなんですがJavaScriptの方がいっぱいでてきて思うように見つかりませんでした。
勉強がてらに作ってるんで糸口だけでも構わないのでお願いします。

あと皆さんは全く分からない場合どうなさってるんでしょうか?

API仕様では量が多すぎて見つけられず逆引きのところを探しても量が少なくてありませんでした。
284デフォルトの名無しさん:2006/06/10(土) 20:03:14
>>281
このあたり
http://java.sun.com/docs/books/jls/third_edition/html/binaryComp.html
読むのが面倒なら、全部コンパイル
285デフォルトの名無しさん:2006/06/10(土) 20:10:36
URLの抜き出しは正規表現(java.utilにある)を使うことになるだろうな。
厳密にやるとすごく複雑な表現になるので
https?://[-a-zA-Z0-9_.!~;/?:@&=+$,%#]+
くらいでごまかしてもいいかも。

ブラウザの起動は、JDK1.5までなら外部プロセスにまかせるしかない。
ProcessBuilderを使って、Windowsならstartコマンド、MacOSXならopenコマンド
を実行する。Linuxだとmozilla-remote とか firefox-remoteとかいうのがあった
と思う。要は機種ごとに別の処理を書くことになる。
1.6(現在ベータ版)なら、Desktop.getDesktop().browse(URI) が使える。
286デフォルトの名無しさん:2006/06/10(土) 20:11:41
java.util → java.util.regex だな。
287266:2006/06/10(土) 20:57:43
>>270
実行できました!ありがとうございます。
もっとよく調べないとだめですね。
逝ってきます・・・orz
288デフォルトの名無しさん:2006/06/10(土) 21:30:39
>>283
JAVAのバージョンを書いたほうがいいよ。
JDK1.5以降だけどInternet Explorerならこれで起動可能。

try{
java.util.List<String> list = new java.util.ArrayList<String>();
list.add("C:\\Program Files\\Internet Explorer\\iexplore.exe");
list.add("http://www.yahoo.co.jp./");
ProcessBuilder pb = new ProcessBuilder();
pb.command(list);
pb.start();
}catch(java.io.IOException ex){
ex.printStackTrace();
}
289デフォルトの名無しさん:2006/06/11(日) 09:54:08
sdk v1.4.0と1.4.2って何が変わったんですか?
290デフォルトの名無しさん:2006/06/11(日) 13:08:32
>>289
文字エンコード仕様とか
291デフォルトの名無しさん:2006/06/11(日) 13:08:55
1.4.1で今まで動いていたアプリが動かなくなる可能性がある変更点は文字コードだな
あとはJava2DアクセラレーションにDirectXが使われるようになったりしてJava2D使ってるSwingが大幅に実用的になった
1.4.1から1.4.2は表面上かわってないと思っていい
292デフォルトの名無しさん:2006/06/11(日) 14:45:23
RMIで、アプレットのメソッドをサーバーから呼び出すという
処理が可能だと聞いたのですが・・・。
実装方法が書いてあるサイトや書籍が見つかりません。
どなたかご存知ないでしょうか?
293デフォルトの名無しさん:2006/06/11(日) 14:50:59
一応セキュリティまわりいじればアプレットは何でも出来る

そもそもアプレットは鯖に配備される
そして鯖側は通常そのメソッドは知っていてもおかしくないはずだが
鯖からクライアントのメソッドを呼び出さなければならない状況ってあるのか?
設計変えたほうがよくないか?
294デフォルトの名無しさん:2006/06/11(日) 14:51:31
本間佳代。
295292:2006/06/11(日) 15:16:56
>>293
ある更新情報をサーバーが受け取って、
それをクライアント側(アプレット側)のメソッドを呼び出して
その更新情報を通知する、という処理を行いたいんです。
要は、サーバーからアプレット側へのデータの受け渡しを行いたいと。
最初はソケットを使ってできないか、という話になっていたのですが、
どうも無理っぽそうなので、RMIで何とかできないか、となったんです。
296デフォルトの名無しさん:2006/06/11(日) 15:27:23
>>295
RMIの使い方間違ってるな
それソケット通信でいいだろ
297292:2006/06/11(日) 15:34:53
>>296
ま・・・間違ってるんですか・・・。
ソケット通信使用の話は、セキュリティ云々で却下寸前になっていて、
それでRMIはどうか?ってなったんですけど・・・。
また検討し直さなきゃ・・・。orz
質問に答えてくださった方々、ありがとうございました。

298デフォルトの名無しさん:2006/06/11(日) 15:44:51
ソケットがダメならRMIも当然使えないんじゃないか?
299デフォルトの名無しさん:2006/06/11(日) 16:12:49
>>292
「セキュリティ〜」については
・署名付きアプレット
・Java Web Start
このどちらかで可能かと。
300292:2006/06/11(日) 16:48:36
>>299
ありがとうございます。
もう一度調べ直して、セキュリティに関して検討し直してみます。
301デフォルトの名無しさん:2006/06/11(日) 17:16:04
>>297
昔から普通に通信できるよ
鯖と違うマシンとは通信できないけど
302デフォルトの名無しさん:2006/06/11(日) 17:47:32
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String Dick1 = br.readLine();

BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String Dick2 = br.readLine();

これをコンパイルするとbr は main(java.lang.String[])で定義されています。
とエラーを出します、なぜでしょうか?
303デフォルトの名無しさん:2006/06/11(日) 17:48:20
お前がバカだから
304デフォルトの名無しさん:2006/06/11(日) 17:53:11
ショボン(´・ω・`)
305デフォルトの名無しさん:2006/06/11(日) 18:01:55
>>304
同じインスタンスを2つ作ってるからじゃない?
2番目をbrではなく別の名前にしないとだめなのではないか。。
と、Cしかやったことがない漏れがコメントしてみる。
306デフォルトの名無しさん:2006/06/11(日) 18:04:25
>>302
> BufferedReader br =
↑変数brはここで宣言済みなのに
> new BufferedReader(new InputStreamReader(System.in));
> String Dick1 = br.readLine();
> BufferedReader br =
↑この行で同じ名前の変数brをもう一度宣言しようとしているから
> new BufferedReader(new InputStreamReader(System.in));
> String Dick2 = br.readLine();
307302:2006/06/11(日) 18:06:10
>>305-306
ありがとうございます、変更したらコンパイル通りました
長い文だったので丸暗記してました・・・本当にばかだ・・うう
308デフォルトの名無しさん:2006/06/11(日) 18:20:26
質問させてください。

現在、Swingを使ったGUIアプリを作っているのですが、すでに50クラス以上あります。
これらのうちいくつかのクラスが、コンストラクタ内で結構な数のファイルリソースにアクセスしています。
なので、GUIビルダで表示させるとエラーが起きたり、クラスの生成順を入れ替えるとうまく
動かなかったりします。
おそらく、コンストラクタ内でやるのではなくて、アプリが一端立ち上がって、タイマーなどを使って
しばらくしてからファイルリソースへのアクセスをすれば解決すると思っているのですが、
具体的な方法がわかりません。

各GUIの部品などの生成、表示が終わった事を検出する方法や、タイマーといってもJavaには
色々ありますし。またスレッドを使った方法もあると思います。
一般にとられている、ポピュラーな方法を知りたいです。ご存じの方はいますでしょうか。
309デフォルトの名無しさん:2006/06/11(日) 18:28:46
>>308
50クラスもあるGUIアプリってどんなアプリですか?
ちなみに通常はスレッドを使用します。
タイマーで生成順序を変えるなんてことは考えない方がいいです。
310デフォルトの名無しさん:2006/06/11(日) 19:11:14
>>308
日本語でおけ
タイマーやスレッドとは関係ない話にみえるけど
311デフォルトの名無しさん:2006/06/11(日) 19:13:39
(y/n)を押して下さいというメッセージを表示した後
yを押した場合に「承認しました」というメッセージを出したいのですが
文法そのものがどうやって書けばいいかわかりません、何を使えばいいのでしょうか?
312デフォルトの名無しさん:2006/06/11(日) 19:20:38
>>311
JOptionPane.showConfirmDialog

環境を書いたら?
313デフォルトの名無しさん:2006/06/11(日) 21:09:58
>>311

////////////////////////////////////////////////////////////////
import java.io.*;

public class hoge {

public static void main (String args[])throws IOException {
BufferedReader br
= new BufferedReader(new InputStreamReader(System.in));

System.out.println("(y/n)を押してください");
String str = br.readLine();
char res = str.charAt(0);
if(res == 'y'){
System.out.println("承認しました");
}else{
System.out.println("ダメポ");
}
}
}
////////////////////////////////////////////////////////////////
最善の方法かは知らんが
314デフォルトの名無しさん:2006/06/11(日) 21:25:20
GUIでボタンとかテキストフィールドの位置って自分で決めれないんでしょうか?
315デフォルトの名無しさん:2006/06/11(日) 21:28:12
決めれる
レイアウトマネージャーでググれ
316デフォルトの名無しさん:2006/06/11(日) 21:42:22
>>309
スレッドを使用するのですか。
タイマーを使ってはいけないのは、どうしてでしょうか?
もう少し教えていただけますか?
317デフォルトの名無しさん:2006/06/11(日) 21:52:42
質問です。

StringBufferクラスにあるappendメソッドのように数値を扱えるものはないでしょうか?
例えばInt型の整数の値に入力された数値をくっつける。
int i=1のところに0を入力させると10になるといった感じです。
318314:2006/06/11(日) 21:52:45
>>315
ありがとう。
319デフォルトの名無しさん:2006/06/11(日) 22:03:03
>>317
StringBuffer使えばいいじゃない
Integer.parseInt(new StringBuffer().append(i).append(0).toString());
320デフォルトの名無しさん:2006/06/11(日) 22:12:21
>>317
なにしたいかわからんがフォーマッタでもさわってみたら?
321デフォルトの名無しさん:2006/06/11(日) 22:13:13
>>316
それは釣り
322デフォルトの名無しさん:2006/06/11(日) 22:40:02
>>190
ポーリングしなくてもできたよ

        Clipboard m_clp = getToolkit().getSystemClipboard();
        m_clp.addFlavorListener(new FlavorListener(){
            private String s = "";
            public void flavorsChanged(FlavorEvent e){
                try{
                    String buf = (String)m_clp.getData(DataFlavor.stringFlavor);
                    if(!s.equals(buf)){
                        System.out.println(m_clp.getData(DataFlavor.stringFlavor));
                    }

                    s = buf;
                    StringSelection strClip = new StringSelection(s);
                    m_clp.setContents(strClip , null);
                }catch(Exception err){
                    err.printStackTrace();
                }
            }
        });
323デフォルトの名無しさん:2006/06/11(日) 22:53:58
質問させてください。

public class test{
public static void main( String[] args ){
String strData = "null po";
System.out.println( strData.matches( "[^A-Za-z0-9]" ) );
}
}
これを動かすと百発百中でfalseが帰るんですがどこが悪いのでしょうか?
正規表現で英数字以外にヒットさせるようにしたいんですが・・・
324デフォルトの名無しさん:2006/06/11(日) 23:04:50
自己レス。".*[^A-Za-z0-9].*"って前後に入れなきゃ駄目なのね…
325デフォルトの名無しさん:2006/06/11(日) 23:38:18
matches(String)は全体一致
326デフォルトの名無しさん:2006/06/12(月) 00:07:14
C:\jikkeso>java -jar a.jar
Failed to load Main-Class manifest attribute from
aaa.jar

実行しようとするとこういうエラーがでちゃうんだけど何故でしょうか?
327デフォルトの名無しさん:2006/06/12(月) 00:07:24
おまえそれほんとにそれでいいのか?
328デフォルトの名無しさん:2006/06/12(月) 00:21:37
同じスコープで2回も宣言するなよ。(br)
329326:2006/06/12(月) 00:21:54
C:\jikkeso>java -jar aaa.jar
Failed to load Main-Class manifest attribute from
aaa.jar

ファイル名隠したつもりがaとaaaになってた・・・
訳してみたら負荷で失敗とかでた・・・
マニフェストがおかしいってことなんですか?
実行できるjarを作ろうとしてます
330デフォルトの名無しさん:2006/06/12(月) 00:28:52
>>326
JARファイルはzipファイルだから、とりあえず解凍ソフトで作成したJARファイルを解凍してみてください。

1,JARファイルの中に「MANIFEST.MF」というファイルがありますか?
2,MANIFEST.MF の中身に Main-Class: クラス名 という文がありますか?
331デフォルトの名無しさん:2006/06/12(月) 00:31:19
332デフォルトの名無しさん:2006/06/12(月) 00:41:46
>>326
NetBeans入れてコンパイルしてdistフォルダのぞいてみるのがはやそう
ライブラリとかも全部セットアップしてくれる
333デフォルトの名無しさん:2006/06/12(月) 10:56:12
質問させていただきます。
いまGUIを勉強しているのですが・・・・

JFrameを使って作られたGUIのJPanelの内容のみを更新するのは
どのようにすればよいのでしょうか?
例えば、JMenuからJMenuItemを選んだ場合
その選んだ内容によってJPanelのレイアウトを変えたい場合とかの
例が見つかりません・・・・。

よろしくお願いします。
334デフォルトの名無しさん:2006/06/12(月) 11:03:17
>>333
また、茨の道を・・・
CardLayoutを使ってレイアウトを変えたPanelを追加・表示するのがどんなバージョン、プラットフォームでも安定して動く方法

335デフォルトの名無しさん:2006/06/12(月) 11:42:30
>>334
ありがとうございます!
とりあえず試してみます
336デフォルトの名無しさん:2006/06/12(月) 11:53:33
Microsoft VM(Ver1.1.8相当)はGridBagLayoutに対応してますか?
337333:2006/06/12(月) 12:22:18
できましたー!
どうもありがとうございました!

もっと早く質問しにくればよかった orz
338デフォルトの名無しさん:2006/06/12(月) 12:45:43
JTextFieldに書き込んだ文字列が、どういう文字か(アルファベットか日本語か)を知るメソッドってないですか?
339デフォルトの名無しさん:2006/06/12(月) 12:51:17
文字列と文字は違うからな〜
340デフォルトの名無しさん:2006/06/12(月) 12:56:36
質問です。
the import org.eclipse cannot be resolved
って言うエラーが出ます。どこでorg.eclipseを設定すればよいのでしょうか。
341デフォルトの名無しさん:2006/06/12(月) 13:02:25
>>338
つ java.lang.Character.UnicodeBlock.of(調べたい文字)

Character.isXxxx系メソッドってのもある。
342338:2006/06/12(月) 13:27:43
>>341
ありがとうございます^^
343デフォルトの名無しさん:2006/06/12(月) 14:41:34
何か本に「・」がカタカナと判定されるとかあるから気をつけましょうみたいな事が書いてあった。
344デフォルトの名無しさん:2006/06/12(月) 14:49:12
Character.isDigitは漢数字だろうと何だろうと数字ならなんでもtrueなのも罠。
345デフォルトの名無しさん:2006/06/12(月) 15:51:08
豆という文字が入力されたら、変数から「豆の木になりました」という文字列を引き出して
ディスプレイに出力したいのですが、どう構文を書けばよいのでしょうか?
346345:2006/06/12(月) 16:22:02
もういい!大豆にして食っちゃう!
347デフォルトの名無しさん:2006/06/12(月) 16:36:43
public class check
{
public static void main(String[] args)
{
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));

String hoge = br.readLine();

if(hoge.equals(args[])){
System.out.println("一致");
}else{
System.out.println("不一致");
}
}
}

実行時に引数をargsに渡して、入力されたhogeと同じだった場合一致と表示させたいのですが
10行目のequalsで '.class'がありませんとエラーが出ます。
どこに問題があるのでしょうか?
348デフォルトの名無しさん:2006/06/12(月) 16:41:49
>>347
× args[]
○ args[0]
349デフォルトの名無しさん:2006/06/12(月) 17:22:09
>>334
俺も勉強になった。
ありがとう。
350デフォルトの名無しさん:2006/06/12(月) 18:30:30
>>348
ありがとうTT
351デフォルトの名無しさん:2006/06/12(月) 18:30:47
>>340
自己解決しました。失礼しました。
352デフォルトの名無しさん:2006/06/12(月) 18:34:21
htmlのテキストボックスから引数をとり計算するにはどうしたら
いいでしょうか?どんなメソッドを使うかだけでも助かります。
よろしくお願いします。
353デフォルトの名無しさん:2006/06/12(月) 19:03:45
>>352
javaとjavascriptを勘違いしていると思われ
354デフォルトの名無しさん:2006/06/12(月) 19:25:24
>>353
いえ確かにjavaです。
初心者ですが、javascriptとjavaが違うことはわかっています。
355デフォルトの名無しさん:2006/06/12(月) 19:29:46
HttpServletRequest#getParametersだって事くらい即分かるだろうに
356デフォルトの名無しさん:2006/06/12(月) 19:41:55
>>355
ありがとうございます。
357デフォルトの名無しさん:2006/06/12(月) 20:05:13
Javaアプレットの良い参考書(もしくは勉強サイト)等はありますでしょうか?
書店ではあまり見かけなかったもので・・。
358デフォルトの名無しさん:2006/06/12(月) 20:14:39
>>357
>>1
あと別な書店に行け。八重洲ブックセンターとか書泉とか。
359357:2006/06/12(月) 20:18:08
>>358
どうもありがとう。
360デフォルトの名無しさん:2006/06/12(月) 20:20:08
P***Gua****というものを導入しろと言われたのですが*に入る文字って何か分かりますか?
361デフォルトの名無しさん:2006/06/12(月) 21:28:39
>>360
100%ピュアグアバならGuayaba Puraでいいと思うんだがP***Gua****となると難しいな。
362デフォルトの名無しさん:2006/06/13(火) 10:03:27
P-38Guam旅行へ
363デフォルトの名無しさん:2006/06/13(火) 20:42:35
ボタンを押したら、テキストフィールドに入力された文字を取ってきてコマンドプロンプトに表示ってやりたいんですが
半角英数5〜10文字だけという条件を付けたいんです。
どういう例外処理をしていいかわかりません。

他スレで、matches("[a-zA-Z0-9]{5,10}") とやればいいと教えてもらったんですが
「TextFieldから取ってきた(String)文字」.matches("[a-zA-Z0-9]{5,10}") ってしたんですが、シンボルエラーが出ます。

どうすればいいでしょうか?
364デフォルトの名無しさん:2006/06/13(火) 20:49:10
>>363
他スレで聞けよ
365デフォルトの名無しさん:2006/06/13(火) 21:49:15
if 「TextFieldから取ってきた(String)文字」.matches("[a-zA-Z0-9]*")
then if 「TextFieldから取ってきた(String)文字」.length() <=10
AND 「TextFieldから取ってきた(String)文字」.length() <=10
366デフォルトの名無しさん:2006/06/13(火) 21:50:15
↑失敗した。。orz
367デフォルトの名無しさん:2006/06/13(火) 22:06:09
String TextFieldから取ってきたString文字 = "だみー";
if (TextFieldから取ってきたString文字.matches("[a-zA-Z0-9]{5,9}")) {
System.out.println(TextFieldから取ってきたString文字);
} else {
System.out.println("×");
}
いけるっぺ
368363:2006/06/14(水) 00:32:55
>>367
できました!
ありがとうございます!
369デフォルトの名無しさん:2006/06/14(水) 11:00:17
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/idl/jidlExample2.html
↑Windows環境で、ここのサンプル通りにやっているのだが、servertoolでのregister指定で
「不正なサーバ定義: main class not found.」ってエラーが出ちゃいます。
理由がわかる人教えて。

registerコマンドは
register -server PersistentServer -classpath . -applicationName s1
あるいは
register -server PersistentServer -classpath C:\eclipse\workspace\PersistentHello\bin -applicationName s1
という風に指定してます。
370369:2006/06/14(水) 11:03:15
ちなみに、orbdの起動は、
start orbd -port 1050 -serverPollingTime 200&
ってしないと駄目っぽい。
sunのチュートリアルっていまいち信用できんなぁ…。
371デフォルトの名無しさん:2006/06/14(水) 20:36:11
javaのPatternクラスを使った正規表現では
.(ピリオド)ってエスケープできないのでしょうか?
372デフォルトの名無しさん:2006/06/14(水) 20:49:22
できますよ。
373デフォルトの名無しさん:2006/06/14(水) 23:30:52
>>371
Pattern pattern = Pattern.compile("\\.");
374デフォルトの名無しさん:2006/06/15(木) 14:28:21
public class Test{
public static void main(String[] args){
int a = 0;
for(int i = 1; 1<=10; i++){
a += i;
}
System.out.println(a);
}
}
このように書くと、7行目のプリントラインに「この文に制御が移ることはありません。」とエラーが出ます
何故でしょうか・・・
375デフォルトの名無しさん:2006/06/15(木) 14:47:54
>>374
for(int i = 1; 1<=10; i++)
376374:2006/06/15(木) 14:51:15
>>375
アホでした、ありがとうございますorz
377デフォルトの名無しさん:2006/06/15(木) 15:01:36
java.util.zipパッケージのクラスを使用して
ファイル圧縮・解凍を行おうと思っているんですが、
ライセンスの問題ってあるんですか?

javaでシステム開発を行っているんですけど、
java.util.zipパッケージだけは特別だとか、そんなことありますか。

少し調べたけれど分からなかったもので。。
378デフォルトの名無しさん:2006/06/15(木) 16:38:04
>>377
ないよ。Java全体で、SunならSunのBCLAだし、IBMならそれなりのライセンス。
そもそもzipに特別なライセンスは必要ないでしょ?
379デフォルトの名無しさん:2006/06/15(木) 19:49:12
誰か戻り値という物を分かりやすく説明して下さい、学校の授業について行けません。・゚・(ノД`)
380デフォルトの名無しさん:2006/06/15(木) 19:55:13
先生に聞いてきな
381デフォルトの名無しさん:2006/06/15(木) 19:56:19
>>380
お前レスを投稿するという行為が関数呼び出し
そしてお前の書き捨てたその本文が引数
そして俺のこのレスが戻り値だ
382381:2006/06/15(木) 19:59:12
>>379
お前告る。美少女断る。この場合はbooleanのfalseが戻り値なんだが、わかるか?
383デフォルトの名無しさん:2006/06/15(木) 20:04:03
>>379
中学生?
中学生以上なら数学の関数の結果と思えば良い
384デフォルトの名無しさん:2006/06/15(木) 20:06:35
何そのelse句無視の投げっぱなしジャーマン
385デフォルトの名無しさん:2006/06/15(木) 20:28:01
中学生クラスのインスタンスがお前、告るは中学生クラスのメソッド、引数として中学生クラスのインスタンス美少女を渡す。
インスタンスがお前の場合、返り値は必ずfalse。
386デフォルトの名無しさん:2006/06/15(木) 20:37:27
告られるメソッドがある方が良くないか?
決めるのはインスタンス美少女だし。
387デフォルトの名無しさん:2006/06/15(木) 20:43:02
System.out.println(bisyojo.canLoveLove(inst379));
この場合、美少女がメソッド内部でクラス中に
きもかったという感想を伝えんとも限らないから要注意だ。
388デフォルトの名無しさん:2006/06/15(木) 20:48:20
ここは返り値のいろいろな説明・サンプルが見られる素晴らしいスレですね
389デフォルトの名無しさん:2006/06/15(木) 21:08:26
AAA[]lAAA = null;
lAAA = new AAA[10];

上記のような感じで配列なインスタンス生成を行って
それぞれのインスタンスが持つメソッドを呼ぶのは
どうすればいいんでしょうか?

AAA[0].BBB();

と普通にやるとぬるぽなんですが…。
390デフォルトの名無しさん:2006/06/15(木) 21:11:01
返り血
391デフォルトの名無しさん:2006/06/15(木) 21:32:57
AAA[] arr = new AAA[10];

for(int i = 0; i < arr.length; i++){
arr[i] = new AAA();
}


頑張って携帯で打ち込んでみた
つーかArrayList使え
392デフォルトの名無しさん:2006/06/15(木) 21:35:48
AAA[] arr = new AAA[10];

for(int i = 0; i < arr.length; i++){
    arr[i] = new AAA();
}

インデント入れろや、頑張ったって言うくらいなら
393デフォルトの名無しさん:2006/06/15(木) 21:36:24
1. 3を4で割った答えと余りを整数で答えなさい.

2. 3a=(3/2)b+c の等式を bについての等式に変形しなさい.

3. 数字だけを組み合わせて作る4桁の暗証番号は全部で何通りできますか?
4.キーボードから正の数を次々と入力し,0が来たら,それまで入力した数の最大値,最小値,
平均値を出力するプログラムを書きなさい.
教えてください。。HTML使ってます。
394デフォルトの名無しさん:2006/06/15(木) 21:41:00
宿題スレじゃないんで。
395デフォルトの名無しさん:2006/06/15(木) 21:44:04
>392
iMomaで見たらインデントされてるのだが…
ブラウザだと崩れてしまうか。
配慮が足らんかった
すまそ
396デフォルトの名無しさん:2006/06/15(木) 21:45:54
>>395
きつく言ってごめんね。
397デフォルトの名無しさん:2006/06/15(木) 21:46:05
バカはほっとけ
398大阪人 ◆0RbUzIT0To :2006/06/15(木) 22:08:53
JSPのみでHIT&bLow数字当てゲームの作りかた教えて!
今日学校で宿題出た!
3桁でお願い致します
399デフォルトの名無しさん:2006/06/15(木) 22:11:39
揚げ
400デフォルトの名無しさん:2006/06/15(木) 22:15:24
400
401デフォルトの名無しさん:2006/06/15(木) 22:34:13
>398
ソースコード貼ればいいの?俺Cしかわかんね
だれかやったれ
402デフォルトの名無しさん:2006/06/15(木) 22:38:28
宿題スレで。
まあ、次に挙げる口座に
指定の額を入れてくれれば
やってあげても良いのだがな。
403デフォルトの名無しさん:2006/06/15(木) 22:44:07
宿題スレじゃねーっての。
"00"+Random#nextInt(int)で初期化
入力はStringを取ればいい
あとは適当にやれ
404デフォルトの名無しさん:2006/06/15(木) 23:17:47
このスレが適当かわかりませんが。。。
スレ違いであれば誘導ください。

SwingアプリをWebブラウザ上で実行させるにはどのような方法がありますか?
目的は、スタンドアローンのSwingアプリをデモ用にWeb公開したいのです。
ただし、デモユーザに特別な環境は用意させたくありません。

アプレットに改造できれば良いのですが、時間がかかりすぎますし。
JavaアプレットのVNCビューワで公開するというのも考えたのですが、
VNCですと特定のアプリのみ利用可能にすることはできませんよね。。。

ヒントがあればお願いします
405デフォルトの名無しさん:2006/06/15(木) 23:36:07
406デフォルトの名無しさん:2006/06/15(木) 23:36:08
webページのソースってどーやって取得するんですか
ブラウザっぽいの作りたいんだけど
407404:2006/06/15(木) 23:42:59
>>405
ありがとうございます。
調べてみます。
408デフォルトの名無しさん:2006/06/15(木) 23:48:14
>>406
宿題スレに張られてたやつ
http://www.wikiroom.com/java/index.php?%A5%BD%A1%BC%A5%B9%C5%BD%C9%D5%A4%B1
本格的にブラウザ作るのなら、 Socketを使用する必要あり。
409デフォルトの名無しさん:2006/06/16(金) 00:20:48
>>408ありがと
これで、ぽいのつくれそうです
410デフォルトの名無しさん:2006/06/16(金) 01:05:13
>>404
JFrameをJAppletにする。
mainメソッドの中身をinitメソッドへ。
411デフォルトの名無しさん:2006/06/16(金) 02:06:54
String str=("abc 123 hhh ");
strからabc,123,hhhを取り出したいのです。
どうすればいいでしょうか?
412デフォルトの名無しさん:2006/06/16(金) 02:36:59
>>411
案1 trim()してreplaceall(" ", ",")
案2 split(" ")
何か理由があって「1.4以降のJavaは使えない」という状況なら
java.util.StringTokenizer
413デフォルトの名無しさん:2006/06/16(金) 02:39:27
>>412
書き忘れたけど案1と案2は同値じゃないから。
「取り出したい」の意図によって使いわけて。
414デフォルトの名無しさん:2006/06/16(金) 02:55:28
>>412
splitでググったら何とかできました。
サンクス
415デフォルトの名無しさん:2006/06/16(金) 03:11:48
課題でtexもどきを作っているんですが、数式を表示するのに有用なGUIとかって有りますか?
416デフォルトの名無しさん:2006/06/16(金) 08:35:47
>>415
MathML+対応ブラウザ
417デフォルトの名無しさん:2006/06/16(金) 10:50:14
なんか宿題多いねー6月ってなんかあったっけ
418デフォルトの名無しさん:2006/06/16(金) 11:00:23
>>417
夏休み前の課題の山
提出は夏休み後な
419デフォルトの名無しさん:2006/06/16(金) 13:50:40
7進数のやり方を教えて下さい!
420デフォルトの名無しさん:2006/06/16(金) 13:53:41
>>419
Integer.parseInt(s, 7);
Integer.toString(i, 7);
421デフォルトの名無しさん:2006/06/16(金) 14:28:17
クラスリテラルという記述方法がありますが(String.class 等)、
この結果の getName() は、対象がクラスであれば(配列クラス、プリミティブ、voidを除くと言う意味で)
FQCN であると考えて良いのでしょうか?
422389:2006/06/16(金) 15:10:14
>>391

なるほど、個別にnewする必要があるのか。
勉強になったよ、ありがとう。
423デフォルトの名無しさん:2006/06/16(金) 15:37:42
>>421
クラスリテラルは java.lang.Class のインスタンスだから、
java.lang.Class の getName() を調べればいい。

で、getName() は「バイナリ名」を返すので、厳密には限定名とは違う。
具体的にはメンバークラスとか内部クラスとか使ってる場合に、
取り囲むクラスのバイナリ名 $ 内部クラスの単純名 みたいに $ で区切られたりする。
424デフォルトの名無しさん:2006/06/16(金) 16:53:31
>>423
ありがとうございます。
何となく危惧していた所まさにその通りでした。。
425ちょっと失礼します:2006/06/16(金) 18:04:15
日本が朝鮮半島に支配される日が、刻々と迫っています
突飛な話と思われるかもしれませんが、これは絵空事ではありません
プログラミングの合間でも結構ですので、ご支援頂けると助かります


★非常事態発生!!遂に日本に朝鮮人が押し寄せる法案が可決、成立!!! ★

自民党が本来推進していた「北朝鮮人権法案」とは、北への「経済制裁のみの法案」でした。
これに対し民主党も二月に「北朝鮮人権侵害救済法案」として「独自案」を国会提出。
これは「脱北者を難民と認定し、日本の定住資格を与える」という条項を盛り込んだものです。
法案成立を急ぐ自民党は、ここへ来て民主案(脱北者支援)も受け入れる考えに方針を転換…
脱北者支援について「施策を講じるよう努める」の明記で合意し、13日衆院を通過。
そして16日、法案は修正されぬまま自公民3党などの賛成多数で可決、成立しました。

【政治】 「北朝鮮人権法案」、成立…脱北者の保護・支援や、経済制裁促す(N速+現行スレ)
http://news19.2ch.net/test/read.cgi/newsplus/1150423526/l50
【日本終了】朝鮮人を日本に大量移住 反対 OFF6(抗議運動作戦本部)
http://off3.2ch.net/test/read.cgi/offmatrix/1150340403/l50
【ネットで中継】放送局を作るOFF【自宅ミニFM】(真実を伝える為の2ch放送局誕生!)
http://off3.2ch.net/test/read.cgi/offmatrix/1150250373/l50
426デフォルトの名無しさん:2006/06/16(金) 18:22:55
すいません。質問です。
現在、JavaScriptで監視ツールのパラメータをipmsg(フリーソフト)で
障害発生時にポップアップで出しています。
このポップアップで出たメッセージをファイルにログとして残したいです。
JavaScriptでファイルに書き込むようなことはできるのでしょうか?

初心者で申し訳ないのですが、どなたか教えてください。
427デフォルトの名無しさん:2006/06/16(金) 18:28:43
↑の者です。ここJavaScriptの板じゃなかったですね。
すいません。
428デフォルトの名無しさん:2006/06/16(金) 21:32:58
ドメインない人はどうやってライブラリ配布すればいいの?
パッケージをいきなりhogelibみたいにライブラリ名にしちゃうと後で困らない?
429デフォルトの名無しさん:2006/06/16(金) 21:40:54
>>428
メルアド
430デフォルトの名無しさん:2006/06/16(金) 22:00:35
>>429
ごめん、ちょっと意味がわかりません。
@の右側ってこと?ドメインだよね、これ。
431デフォルトの名無しさん:2006/06/16(金) 22:12:38
java_confなるドメイン登録サービスがあるのか
趣旨は素晴らしいけど審査してないのかな、ゴミのように登録されているw
432デフォルトの名無しさん:2006/06/16(金) 22:12:50
ttp://www.iajapan.org/bukai/java/wg_bof/package.html
jp.gr.java_confのサブパッケージでよければここで誰でも取れる。
433デフォルトの名無しさん:2006/06/16(金) 22:13:41
パッケージ名はユニークならOKってことなら
メルアドはユニークだろ、と言う意味では?>429
434デフォルトの名無しさん:2006/06/16(金) 22:22:19
>>433
430向けでいい?とりあえずその理屈には納得だけど
物凄い量のスパムがきそうでやだなw
435デフォルトの名無しさん:2006/06/16(金) 22:29:47
orgドメインでこういうのがあればなぁ
やっぱライブラリの格とでも言うのか、3領域で済むライブラリに高級感を感じる
org.apacho.geregereとかね
436デフォルトの名無しさん:2006/06/16(金) 23:42:37
LifeクラスとPlayerクラスの二つのファイルが同じフォルダに入っているにも関わらず、
LifeクラスでPlayerクラスのメソッドを利用するためにPlayerクラスのインスタンスを作成しようと
private Player player;
player = new Player();
と宣言すると、
Life.java:33: シンボルを解決できません。
シンボル: コンストラクタ Player ()
場所 : Player の クラス
player = new Player();
^
というコンパイルエラーが出てしまいます。
player = new Player();
を宣言せずにコンパイルするとコンパイルエラーは出ないのですが、
LifeクラスでPlayerクラスのメソッドを呼び出すところになると
画面がとまってしまいます。
なぜこのようなことが起こるのですか?それと解決策も教えてください。お願いします。
437デフォルトの名無しさん:2006/06/17(土) 00:48:22
> private Player player;
> player = new Player();

private Player player = new Player(); にするか
player = new Player(); をコンストラクタかどこかのメソッドの中に書け。
あと同じフォルダにあるかどうかはまったく関係ない。
438デフォルトの名無しさん:2006/06/17(土) 01:10:11
>>437
解決しました、ありがとうございました。
439デフォルトの名無しさん:2006/06/17(土) 02:07:08
ホームページのソースから<td class=.emph.>○○</td>に囲まれた文字列を抜き出し表示します
これの表示結果をaaa.txtに出力したいのですがうまくいきません。どなたか教えてください

public class pw4 {
public static void main(String[] args)
throws IOException
{
URL u = new URL("http://money.www.infoseek.co.jp/MnStock/4755.j/slast/");
InputStream is = u.openStream();
InputStreamReader isr = new InputStreamReader(is, "euc-jp");
BufferedReader reader = new BufferedReader(isr);
String line;

Pattern p=Pattern.compile("<td class=.emph.>(.*)</td>");
while ((line = line=reader.readLine()) != null){
Matcher m=p.matcher(line);
if(m.find()){
String rep = m.group(1);

System.out.println(rep);

}
}
}
}
440デフォルトの名無しさん:2006/06/17(土) 02:20:31
>>439
aaa.txtへ書き出すFileWriterを作るか、リダイレクトしなさい。
441デフォルトの名無しさん:2006/06/17(土) 07:28:15
文字列をバイトストリームに変換してファイルに書き込むにはどうしたらよいのでしょうか。
442デフォルトの名無しさん:2006/06/17(土) 07:30:46
意味不明だが、圧縮とか暗号化すればいんでね
443デフォルトの名無しさん:2006/06/17(土) 07:36:09
文字列をバイト配列にしてOutputStreamにどかっと流せばいいよ
てか文字列ならWriterにしようよFileWriterにすれば文字列でいい。
444デフォルトの名無しさん:2006/06/17(土) 07:37:14
>>441
OutputStreamWriterとFileOutputStream
445デフォルトの名無しさん:2006/06/17(土) 08:51:06
Hashtableで同じキーを指定してputしたら、
古いものは上書きされてるのでしょうか?
446デフォルトの名無しさん:2006/06/17(土) 09:16:31
>>445
やってみたら?
447デフォルトの名無しさん:2006/06/17(土) 10:16:23
ちょっと試せばすぐにわかることを聞くのはやめれ。
初心者以前の問題。
448デフォルトの名無しさん:2006/06/17(土) 10:34:19
試す前にまず仕様を確認しろと。
449デフォルトの名無しさん:2006/06/17(土) 10:35:35
仕様を確認する前に仕様を策定する側にまわれと
450デフォルトの名無しさん:2006/06/17(土) 11:39:32
どうしてもわからないので教えてください。

テキストファイルを読み込んで+1して同じファイルに出力しようと思っているのですが、
+1されて画面に表示するところまでは正常なのですが、最後のファイルに出力がされません。

import java.io.*;

public class Count {
public static void main(String [] args) throws Exception {
String file = "1.txt";
BufferedReader br = new BufferedReader(new FileReader(file));
BufferedWriter bw = new BufferedWriter(new FileWriter(file));

int num = Integer.parseInt(br.readLine());
num++;

System.out.println(num);
bw.write(num);
}
}
451デフォルトの名無しさん:2006/06/17(土) 11:43:41
closeしてないの?
452デフォルトの名無しさん:2006/06/17(土) 11:46:07
>>450
bw.write(num);
      ↑ここに入れるのは整数じゃなくて文字コード
453デフォルトの名無しさん:2006/06/17(土) 11:48:27
br.readLine() の戻り値をnullチェックしましょう。
bwはfulshとcloseが必要です。
454デフォルトの名無しさん:2006/06/17(土) 12:00:30
みなさんありがとうございます。

>>453
本来はnullチェックすべきだとは思いますが、リード側には問題なさそうです。
試しに、リードの部分を消して書き込み処理だけで試しましたが同じでした。

>>451
closeは省略できると聞いたのですが。一応、closeして試しましたがだめでした。

>>452
文字コード? 本文はどうするのですか? 一応、String型でも試しましたが、駄目でした。

Linuxでやっているのですが、1.txtのパーミッション、ディレクトリのパーミッションが問題だったりするのでしょうか?
コンパイル時、実行時にエラーが出てる訳ではないのです。
実行前に1.txtに100と書き込んでから、実行後1.txtを見ると消えている状態なのです。
455デフォルトの名無しさん:2006/06/17(土) 12:01:52
試す前に仕様を確認するかどうかはケースバイケースじゃないのかな。

SJC-Pの問題では、ソースコードが提示されてコンパイルできるかどうかを
問う問題が多いが、これが試験ではなく現場レベル・実用レベルだったら
すべて詳細に仕様を調べるよりもコンパイルしてみたほうが
早いし、それで充分な場合も多いと感じる。

・・・とは言え、仕様の確認は重要だな。
J2SEのAPIドキュメントに載っている範囲ならまだいいが、
J2EEあたりになると仕様で決まっていない・明確化されていない部分の
実装依存という問題がかなりあるから。
「試して・動けばOK」という考えだと仕様でそう動くことになっているのか
実装依存でたまたまそう動いてしまっているだけなのかの切り分けができない。
456デフォルトの名無しさん:2006/06/17(土) 12:06:41
>>454
bw.write(int);使わなくても
bw.write(String.valueOf(num));
でいけると思うけど。
457デフォルトの名無しさん:2006/06/17(土) 12:09:43
>>456
だめでした。
458デフォルトの名無しさん:2006/06/17(土) 12:16:36
つーかException表示してくだされ
ファイルのオープンで失敗してるかもしれんし

まさか同じファイルを書き込もうとはしてないよな
片方をオープンしたまま
459デフォルトの名無しさん:2006/06/17(土) 12:18:18
>>454
ファイルのcloseに限らず資源の解法は必須

あとプログラム自体が初めてならJava以外にも根本的なところが抜けてるようにみえる
電子計算機概論くらいはさらっとよんでおけ
460デフォルトの名無しさん:2006/06/17(土) 12:30:18
>>454
1.ファイル名を変えること。または、Readerをclose()してからWriterをつくること。
2.write()はclose()かflush()しないとバッファがいっぱいになるまで書き込まれない。
461デフォルトの名無しさん:2006/06/17(土) 12:45:17
write→バイト(数値/文字コード)をストリームに書く。
print→文字列をストリームに書く。
という違いがある。
読み込むのが数値の文字列表現なら("1"とか)なら、書く方もwriteじゃなく
printじゃないのか?
462デフォルトの名無しさん:2006/06/17(土) 12:57:10
みなさんご指摘ありがとうございます。ようやく正常に動作しました。いろいろなミスが重なっていたようです。

write()のclose()、同じファイルを同時にオープンしていたこと、bw.write(int) が原因だったようです・・・。
read()の方はclose()しなかった場合は、何か悪いことになりますか?


public void write(int c) throws IOException
単一の文字を書き込みます。
オーバーライド:クラス Writer 内の write
パラメータ:c - 書き込む文字を指定する int

と書いてあったのでint型もOKと勘違いしたのですが、この「int c」というのはどういう意味なのですか?
463デフォルトの名無しさん:2006/06/17(土) 13:01:32
>>462
readの方のクローズは、もしこの後に処理を続けた場合に開きっぱなしになる

writeについてはintのバイナリ表現(32bit整数)をネットワークオーダーで出力する
C言語なんかのintのバイナリ表現と違ってJavaの場合環境依存しないバイナリ表現になる
464デフォルトの名無しさん:2006/06/17(土) 13:14:40
>>463
つまりwriteにはint型のままではNGなのですか?

>>459
一応、基本情報とSJC-A持っています・・・。(両方とも堂々と言えるようなレベルではないけど・・・。)
465デフォルトの名無しさん:2006/06/17(土) 13:22:16
>>464
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
bw.close();
適当にテキストファイル作ってこれやってみそ。自分が何やってるか解るだろ。
ファイルの一部分の読み書きは、RandomAccessFile使う。
466デフォルトの名無しさん:2006/06/17(土) 13:24:26
writeの引数のintは実質charだと思えばまあ大きな間違いはない。

A という文字はユニコードでは u+0061 だが int とみなすと 0x0061 = 97
write(97) で A という文字が出力される。
467デフォルトの名無しさん:2006/06/17(土) 13:25:36
u+0061 は a だな。A は u+0041 か。
468デフォルトの名無しさん:2006/06/17(土) 15:56:55
インスタンス変数は hoge_ みたいに後ろにアンスコ付けてるけど、
クラス変数の接尾語・接頭語はどうしてる?
469デフォルトの名無しさん:2006/06/17(土) 16:01:28
何だよその時代遅れの
470デフォルトの名無しさん:2006/06/17(土) 16:05:46
finalize句でファイルのクローズをしちゃいけないそうですが
どうしてですか?
471デフォルトの名無しさん:2006/06/17(土) 16:17:38
>>470
EffectiveJavaを嫁
472デフォルトの名無しさん:2006/06/17(土) 16:25:02
呼ばれるタイミングがGC依存だからだよ
try-open-finally-closeの定型を使いなされ
473デフォルトの名無しさん:2006/06/17(土) 17:48:57
ファイナライザってnativeの後始末をするためのものじゃないの?
474デフォルトの名無しさん:2006/06/17(土) 18:43:23
>>473
Yes!
475デフォルトの名無しさん:2006/06/17(土) 18:46:56
呼ばれないで終了することも多いしな
476デフォルトの名無しさん:2006/06/17(土) 18:51:53
>>473
native の後始末でも、普通は手動でやるか
Runtime#addShutdownHook() で後始末するかだね。

finalize() 使うことって殆どないと思う。
477473:2006/06/17(土) 18:57:21
適当に答えたら当たっていたようです!
勉強になりました(><)
478デフォルトの名無しさん:2006/06/17(土) 20:33:37
Effective Javaからすればfinalizeは「保険」でしかない
479デフォルトの名無しさん:2006/06/17(土) 20:58:19
ときどきでいいからJavaの鉄則のことも思い出してください
480デフォルトの名無しさん:2006/06/17(土) 21:00:01
EJはJava5.0の仕様に影響するほどの一冊だからちょい特別視されちまうのさ
481デフォルトの名無しさん:2006/06/17(土) 21:01:29
Javaの鉄則>>>>>>>Effective Java
(翻訳の質)
482デフォルトの名無しさん:2006/06/17(土) 21:31:27
Effective Javaは確かに見にくいな
それでも良書
コード部分だけみてもいいべ
483デフォルトの名無しさん:2006/06/18(日) 00:15:07
Appletでjarの中に詰め込んだファイルのリストを得る方法はありませんか?
Fileを使いたくてもAppletでは無理ですので、せめてjarの中だけでも調べたいです。
484デフォルトの名無しさん:2006/06/18(日) 00:15:22
Effective Java>>>>>>Javaの鉄則
(本の内容)
485デフォルトの名無しさん:2006/06/18(日) 00:50:00
Javaをアップデートしたら前のバージョンのファイルは削除しちゃっていいんですか?
486デフォルトの名無しさん:2006/06/18(日) 01:09:06
使っていなければよいと思われ。
487デフォルトの名無しさん:2006/06/18(日) 01:13:16
javaで大体400行前後で自由にプログラムを作れって課題ですが、
この規模だとどの程度のものが出来るか例を教えてもらえないでしょうか?
かなり初心者です
488デフォルトの名無しさん:2006/06/18(日) 01:29:43
>>487
リソースを別にして良いなら簡単なゲームが作れる
489デフォルトの名無しさん:2006/06/18(日) 01:35:37
eclipseでsrc(.java)とbin(.classがある)に分けて保存してるんですがこの場合画像ファイルはbinに置くのが普通ですか?
イメージを読み込むときは
image = ImageIO.read(getClass().getResource("test.gif"));
を使ってます。
490デフォルトの名無しさん:2006/06/18(日) 01:35:49
図書スレが今分断してしまって人いないので
ここで聞かせて下さい

日本語で読めるJava関連の書籍で
初心者が中級者へステップアップするために
欠かせない本を紹介して下さい

とりあえず買おうと思っているのは
Effective Java
Javaの鉄則
です
他にありませんか?
491デフォルトの名無しさん:2006/06/18(日) 01:43:55
>>490
Javaの格言
Java魂
軽快なJava
リファクタリング
パターン指向理ファクタリング入門

あたりは結構面白かったよ。
492デフォルトの名無しさん:2006/06/18(日) 01:51:23
>>488
ゲームですか・・実用的なプログラムはまだ無理かな
493デフォルトの名無しさん:2006/06/18(日) 02:00:31
>>489
Eclipseでは、ソースフォルダにあるものはコンパイル出力ディレクトリにコピーされるから
srcに置いてOK。binに入れておくと何かのタイミングでキレイさっぱり削除されてしまうことがあるから要注意。
494デフォルトの名無しさん:2006/06/18(日) 02:09:44
>>492
ディレクトリからファイルを再帰的に検索して、指定した文字列や正規表現が含まれるファイルを探して、そのパスと行数を表示するプログラムとか
495えり:2006/06/18(日) 03:00:19
はじめまして。早速ですが、どなたか教えていただけないでしょうか?
現在iアプリを作成しているのですが、エラーが発生し困っています。
Dojaというエミュレータ上では、正常に起動できる状態なのですが、
携帯電話実機で起動すると、以下のエラーが発生します。
「message=Cannot class in system package」
これは、ADF設定にAppTrace=onと設定し、出力したものです。
アプリケーションを起動し、「通信を開始しますか?」のダイアログにて
「はい」「いいえ」のどちらを選択してもエラーが出ます。
Javaも初心者ですが、時間がなくて大変困っています。
エミュレータにて、起動したときには正常に動作するにも関わらず
実機ではできないとはなぜなのでしょうか?
エラーの意味がよくわかりません。
よろしければご教授ください。
496デフォルトの名無しさん:2006/06/18(日) 03:33:10
use File::Find;
my $keyword = shift;
find(sub {
if (!-d && /$keyword/ && open my $fh, $_) {
my $line_count = @{[<$fh>]};
printf "%s %d\n", $File::Find::name, $line_count;
}
}, '.');
497デフォルトの名無しさん:2006/06/18(日) 08:36:04
>>492
昔作ったオセロゲームが800行だった。書き方によって増減すると思うけど、参考まで。
498デフォルトの名無しさん:2006/06/18(日) 11:09:00
Javaって趣味でつくるプログラミングが
やりにくいからな〜〜〜
499デフォルトの名無しさん:2006/06/18(日) 11:12:34
内容が無い様なものなら作るのが勿体無いよ
500デフォルトの名無しさん:2006/06/18(日) 11:15:30
趣味でスタンドアロンならMS系がいいし、趣味でWebならPHPがいいよ。
趣味でやるならiアプリぐらいかな。
501デフォルトの名無しさん:2006/06/18(日) 11:17:07
初歩的な質問ですみません。
JDK1.5.0_07をインストールし、Path設定を行ったのですが、
javacでクラスファイルは生成されるのですが、javaコマンドで読み込んでくれません
(NoClassDefFoundError)

Path設定はjavacで動いているので間違いないと思うのですが…
念のため、別環境で作ったクラスファイルを読ませたのですが、やはりNoClassと表示されます。
問題はどこにあるのでしょうかorz
502デフォルトの名無しさん:2006/06/18(日) 11:18:44
503デフォルトの名無しさん:2006/06/18(日) 11:21:20
誘導ありがとうございます。申し訳ないorz
504デフォルトの名無しさん:2006/06/18(日) 11:30:08
>>490
Effective Java のジョシュアが書いた続編っぽいやつ
Java Puzzlers が面白いよ。
505デフォルトの名無しさん:2006/06/18(日) 12:13:54
ベースとなるMapをある条件でEntryを抽出した別のMapにとり
その別のMapからremoveするとベースとなるMapも連鎖的に削除される
といった機能を持つクラスはありませんでしょうか?

DBのテーブルのようなものですが、極力早く処理したいのです。
506デフォルトの名無しさん:2006/06/18(日) 13:06:21
>>493
d
srcに置いたら読み込めました
507デフォルトの名無しさん:2006/06/18(日) 14:28:49
特定の拡張子のファイルって、特定のアプリに関連づけられていて、ダブルクリック
するとそのアプリが起動してファイルが開かれますよね。
Javaアプリケーションでもそれってできるんでしょうか。

特にJava Web Startアプリでそれをやりたいんですが・・・。
508デフォルトの名無しさん:2006/06/18(日) 14:32:30
JRE 入れると、jnlp に関連付けされなかったっけ?
509デフォルトの名無しさん:2006/06/18(日) 15:30:10
インスタンスを強制的にold世代に殿堂入りさせる方法はありませんか?
510デフォルトの名無しさん:2006/06/18(日) 16:00:18
GCされたオブジェクトを知る方法は、ありませんか?
511デフォルトの名無しさん:2006/06/18(日) 16:01:31
>>509

Mapとかに入れておく。
512デフォルトの名無しさん:2006/06/18(日) 16:07:02
>>510
JMX
513512:2006/06/18(日) 16:07:44
ごめ、はやまった。
514デフォルトの名無しさん:2006/06/18(日) 16:08:54
>>511
ああ、なるほど。それでルートから外せば良いのですね。
深く考えるだけ無駄のようでしたorz
515デフォルトの名無しさん:2006/06/18(日) 16:52:07
>>508
いえ、jnlpの話ではなくて、
たとえばJavaでリッチテキストエディタを作ったとするじゃないですか。
そしたらリッチテキストの拡張子(.rtf)がついたファイルをダブルクリックすると
ワードパッドやWordじゃなくて、そのJavaエディタでファイルを自動的に開く
ようにしたいんですよ・・・。
516デフォルトの名無しさん:2006/06/18(日) 17:01:25
Windowsのフォルダオプションの拡張子関連付けだろ?
webstartは設定ファイルの中にjvmの設定を埋め込んでなかったっけか
jarならフォルダオプションの機能を使えばいい、JNIで作れると思うよ
アプリの配置位置が固定になるから諸刃の刃だとも思うけど
517デフォルトの名無しさん:2006/06/18(日) 17:10:03
>>515
少なくとも Mustang までは標準API では無理。

JDIC の filetypes API 使うとできるっぽいような気もする。
これ Dolphin に入るかな? もしくは JNI 使って自力で実装するか。
Windows だとレジストリ読み書きできる API さえ作っておけばできるんじゃなかったけ?
518デフォルトの名無しさん:2006/06/18(日) 17:17:19
PrivateProfile〜みたいな名前であったはずだよ<レジストリAPI
openってアクションに普通にコマンドラインのパスだけみたいな単純な作りで登録できたはず
519デフォルトの名無しさん:2006/06/18(日) 17:28:05
>>518
PrivateProfile云々って INI 操作用の API じゃなかったっけ?
520デフォルトの名無しさん:2006/06/18(日) 17:31:51
あ、そうだったかもw
ごめそ
521デフォルトの名無しさん:2006/06/18(日) 17:43:24
>>512

ありがとうございます。
もう少し、詳しく教えてください。
jconsoleだと、メモリの状況とかは、わかるみたいですが...。
インスタンス名とかクラス名がわかるといいのですが。
522デフォルトの名無しさん:2006/06/18(日) 18:55:04
>>517, >>518, >>519
ありがとうございます。
Mustangなら標準APIでできるのですか?
将来的にできればよいので、別にMustangでもかまわないです。
もう少し詳細を教えていただけますか?
523デフォルトの名無しさん:2006/06/18(日) 19:02:28
そろそろ JAR に固有のアイコン仕掛けられるようにしろよと思う今日この頃。
524デフォルトの名無しさん:2006/06/18(日) 19:03:32
>>523
それはOSの仕事だからJavaががんばっても無理じゃね?
525デフォルトの名無しさん:2006/06/18(日) 19:06:48
皆さんのこれだけは絶対読め
と言える一冊を教えてください
526デフォルトの名無しさん:2006/06/18(日) 19:09:37
このスレを最初から読め、絶対だ
527デフォルトの名無しさん:2006/06/18(日) 19:28:37
>>524
んなこたねぇ。Illustrator や Photoshop のファイルはサムネールが 16x16, 32x32 アイコンになる。
Shell 何とかだか何とか Handler だか作れば出来る。
528デフォルトの名無しさん:2006/06/18(日) 19:31:15
>>522
Mustang じゃ無理。Dolphin に入るかも? って感じ。
詳細は https://jdic.dev.java.net/ で自分で聞くなりしてくれ。
529デフォルトの名無しさん:2006/06/18(日) 22:41:07
javaでexeするにはどれが一番ですか?
530デフォルトの名無しさん:2006/06/18(日) 23:01:33
サンドボックスにするためにFileではなくURLを使いたいのですが
作業ディレクトリ(user.dir)をURLに変換するにはどうしたらよいのでしょうか?
531デフォルトの名無しさん:2006/06/18(日) 23:24:35
>>527
すべてのOSでGUI環境が前提になっているわけではないんだが。
532デフォルトの名無しさん:2006/06/19(月) 00:21:04
今Servletのプログラミングをやっていて
ファイルのダウンロード処理をServlet側で失敗した場合に
最初に表示していた画面と同じ画面(JSPです)にエラーメッセージを
表示させようとforwardでやろうとしたんですが
ダウンロード処理でoutputStreamを使用するとresponseが返せずに
失敗します。
何か良い方法は無いでしょうか?
533デフォルトの名無しさん:2006/06/19(月) 12:09:27
>>532
元の画面からScriptで別Windowとしてダウンロードしておいて
元の画面はダウンロードが終わるまでは結果を全て返却しないorリロード繰り返し
534デフォルトの名無しさん:2006/06/19(月) 13:54:27
FileChannel#getChannelってホントに速いのかな?
BufferedImage作ろうとしてByteBuffer#arrayとByteArrayInputStream使ったけど
FileInputStreamとURL#openStreamの間くらいの性能しか出ない…
そのままプリミティブで頑張れる用途でだけ高速なのか?
535デフォルトの名無しさん:2006/06/19(月) 16:11:36
JavaでGUIアプリケーションを作ってるんですが、
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
を記述してプログラムを終了させてもWindowsタスクマネージャにjavaw.exeが残ってしまうのですが、
何が原因ですかね?
536デフォルトの名無しさん:2006/06/19(月) 16:21:47
for(int a=1; a>=100; a++){
System.out.print(" "+a);
}

数字を10ずつ100まで改行していきたいのですが、どのようにすればいいのでしょうか?
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
537デフォルトの名無しさん:2006/06/19(月) 16:24:09
>>535
アプリケーションの javaw.exe は残ってないんだけど、
開発環境(Eclipse とか NetBeansとか)が使ってる
javaw.exe が残ってるのを見て勘違いしてるとか?
538デフォルトの名無しさん:2006/06/19(月) 16:29:46
>>536
最初の1行はwordでということか?
539デフォルトの名無しさん:2006/06/19(月) 16:32:34
>>537
コマンドプロンプトから実行しても終了しないんですよ。
Ctr-Cでも終了しません。
540デフォルトの名無しさん:2006/06/19(月) 16:48:40
Jane Doe Style 2.31 ですが、
起動しようすると、インストールしてあるウィルスチェックソフトavastが反応して
トロイの木馬の警告が出ます。
無視して良いんでしょうか?
541デフォルトの名無しさん:2006/06/19(月) 16:52:39
>>539
とりあえず
final JFrame frame = new JFrame("test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
SwingUtilities.invokeLater(new Runnable(){
  public void run(){ frame.setVisible(true); }
});
みたいな最小のソースで動かしてみれば?

最小のソースで動くのに、君のプログラムが動かないのであれば、君のプログラムが変。
最小のプログラムで動かなければ(VM、OS、ハードまで(?)含めて)システムの方が変。
542デフォルトの名無しさん:2006/06/19(月) 17:23:37
>>539
別のjavaアプリが動いてる可能性に5000バーツ
543デフォルトの名無しさん:2006/06/19(月) 17:40:26
アプレットで、JTableにデータベース情報を表示、
DB情報が変更されたら、修正後の結果をJTableに反映させる、
というものを作っているのですが、Jtablelが増えてしまったり、
灰色になって表示されなくなって、上手く動作しません。
テーブル内容を更新するには、どうすれば良いでしょうか。

removeやupdateUIなど、関係ありそうなものも調べて書いたのですが、
どうにも上手く動作せず、見当はずれな気がしてきて。
何かヒントを頂けないでしょうか。
544デフォルトの名無しさん:2006/06/19(月) 19:56:35
コンパイルエラーです。

Kadai3 にアクセスできません。
クラスファイル .\Kadai3.class は不正です。
クラスファイルのバージョン 49.0 は不正です。48.0 であるべきです。
削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。

ってどういう意味でしょうか?
学校のPCでやったときはこんなのでなかったのに
545デフォルトの名無しさん:2006/06/19(月) 20:01:09
もしかして、5.0でコンパイルしたのに1.4とかで実行した?
546デフォルトの名無しさん:2006/06/19(月) 20:01:21
>>544
クラスファイルバージョンが 49.0 って事は学校では 5.0 以降使ってんじゃね?

で、家では 1.4.x 使ってるのでクラスファイルバージョン 48.0 までしか対応してないとか。
547デフォルトの名無しさん:2006/06/19(月) 21:27:15
Javaで画像処理をしてるんですが、
モノクロ画像をBufferedImageに読み込んで1ピクセルずつgetRGBで取り出して
ある閾値以上のピクセルを抽出する処理してるんですが、もっと効率のいい方法は無いですかね?
モノクロ画像ということを利用してどうのこうのとか…
548デフォルトの名無しさん:2006/06/19(月) 21:36:54
>>529
JSmoothいいと思うよ。
549デフォルトの名無しさん:2006/06/19(月) 21:39:46
簡単なアプレットを作って実行していたんですが、
appletviewerを右上のXボタンで閉じる際に
以下のようなexceptionメッセージが出る場合があるのですがどうすればよいのでしょうか?
しかも出る場合と出ない場合の両方があってもうお手上げ状態なんです。
どうかご教授下さい。

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: component argument pData
at sun.awt.windows.Win32SurfaceData.initOps(Native Method)
at sun.awt.windows.Win32SurfaceData.<init>(Unknown Source)
at sun.awt.windows.Win32SurfaceData.createData(Unknown Source)
at sun.awt.Win32GraphicsConfig.createSurfaceData(Unknown Source)
at sun.awt.windows.WComponentPeer.replaceSurfaceData(Unknown Source)
at sun.awt.windows.WComponentPeer.replaceSurfaceData(Unknown Source)
at sun.awt.windows.WComponentPeer$2.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
550デフォルトの名無しさん:2006/06/19(月) 21:40:27
getRGB(int,int,int,int,ing[],int,int)の方使えばいいんじゃないの?
それ以上速いなら俺も知りたい
551デフォルトの名無しさん:2006/06/19(月) 21:47:48
>>549
UNIX or Linux
appletviewer hoge.html >/dev/null 2>&1

Windows cmd.exe
appletviewer hoge.html >nul 2>nul
552デフォルトの名無しさん:2006/06/19(月) 22:47:48
以下のようにコレクションを動的に生成すると警告が吐かれてしまいます。

String className = "java.util.ArrayList";
Class listClass = Class.forName(className);
Object obj = listClass.newInstance();
List<String> list = (ArrayList<String>)obj;
list.add("foo"); list.add("bar");
System.out.println(obj);

これをどうにか警告なしで実現したいのですが、どのようにしたら良いのでしょうか?
553デフォルトの名無しさん:2006/06/19(月) 22:51:22
>>552
で?その警告メッセージはどう表示されるのですか?
554552:2006/06/19(月) 22:53:57
コレクションの型チェックの警告です。

注: D:\java\workspace\Test\src\test\Main.java の操作は、未チェックまたは安全ではありません。
注: 詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてください。
555デフォルトの名無しさん:2006/06/19(月) 23:07:14
>>547
BufferedImage img = ImageIO.read(new File("grayscale.png"));
DataBufferByte dataBufferByte = (DataBufferByte) img.getData().getDataBuffer(); // 型判定省略
byte[] buffer = dataBufferByte.getData();

適当だが、こんなのはどうだろう。
詳しくは java.awt.image.Raster や java.awt.image.DataBuffer を参照して。
556デフォルトの名無しさん:2006/06/20(火) 00:21:12
>>547
その程度の情報では画像ソースしだいでいくらでもコードは変わるぞ
557デフォルトの名無しさん:2006/06/20(火) 02:02:21
>>551
回答ありがとうございました。試してみたところ確かに件のメッセージが出ることはなさそうです。

もう一つお聞きしたいのですが、これをそのままブラウザ上で起動した場合何か問題があるのでしょうか?
もしあるとするならば解決法をお願いします。 
558デフォルトの名無しさん:2006/06/20(火) 02:26:34
if(条件){
String rep = a;
System.out.print(rep);
}

if(条件){
String rep2 = b;
System.out.print(rep2);
System.out.print(rep);
}

変数 rep は初期化されていない可能性があります。

と出るのですがどうしたらいいですか?
559デフォルトの名無しさん:2006/06/20(火) 02:30:12
変数をifブロックの前に定義すれば?
560552:2006/06/20(火) 02:36:31
外でrepを宣言しててそっちは初期化してないんだろ?
ifブロック内で新しくrep宣言してるやん
561デフォルトの名無しさん:2006/06/20(火) 09:47:55
インターフェースについて質問です。

あるインターフェースを実装したクラスを作成する場合、そのクラスはインターフェースで定義されている全てのメソッドをオーバーライドしなければなりません。そうしないとコンパイルエラーとなります。
しかしインタフェースComparatorを実装したクラスを作成する場合、メソッドequalsを書かなくてもメソッドcompareのみをオーバーライドするだけでコンパイルは成功して、実際クラスとして機能します。

このようにインターフェースの中で必要とするメソッドのみを使う方法を教えてください。
562デフォルトの名無しさん:2006/06/20(火) 10:52:16
>>561
equalsはjava.lang.Objectで実装されている。(適切に実装されているかはさておき)
インターフェースであろうとabstract classであろうと実装されていないメソッドは全て実装しなくてはならない。
563デフォルトの名無しさん:2006/06/20(火) 10:52:54
equals()はスーパークラス(java.lang.Object)で定義されているからだろ。
あとは、抽象クラスならすべてのメソッドのオーバーライドは必須ではない
564デフォルトの名無しさん:2006/06/20(火) 10:59:16
質問。Javaでメソッド内での変数の入れ替えを
呼び出し元に反映させるにどうすればいいの?
C++だったらポインタ、.NETだったら参照渡しで出来るのはわかるんだけど・・・。

//C#
Swap( ref int num1 , ref int num2 )
{
int swap = num1;
num1 = num2;
num2 = swap;
}

//C++
Swap( int* num1 , int* num2 )
{
int swap = *num1;
*num1 = *num2;
*num2 = swap;
}
565デフォルトの名無しさん:2006/06/20(火) 11:02:14
>>564
無理

でも、なんでそんなことする必要があるの?
566デフォルトの名無しさん:2006/06/20(火) 12:06:25
>>564
グローバルなクラスに変数を入れて
どこからも参照できるようにするとか

そういう風にしたい変数って多くないし、これでいいんじゃない?
あんま頭イイやり方じゃないけど。
567デフォルトの名無しさん:2006/06/20(火) 12:09:26
>>565
ただなんとなく考えてみただけなので、
特に理由は無いです(ぉぃ)
568561:2006/06/20(火) 12:46:42
>562,563
java.lang.Objectの存在を忘れていました。
回答どうもです。
569デフォルトの名無しさん:2006/06/20(火) 15:03:43
最近JavaScriptを始めた初心者です。
どうしたら解らないので、教えて下さい。

新しいウィンドウを開いたり、閉じたりすることは出来たのですが、
新たに開いた子ウィンドウを
元の親ウィンドウがあるホームページ内にいる場合は開いたままで、
ホームページの外に出たら閉じるようにしたいのです。
どうしたら良いのでしょうか?
570デフォルトの名無しさん:2006/06/20(火) 15:05:54
>>569
>>1の下のほう嫁
571デフォルトの名無しさん:2006/06/20(火) 15:34:59
PHPから転向してきたJava初心者です。

今、Eclipseが使えない環境で作業していまして、
各ステータスをプリントアウトしながらデバッグしています。

そこで思ったのですが、
javaにはPHPのvar_dumpに相当する便利なメソッドはないのでしょうか?

よろしくお願いします。
572デフォルトの名無しさん:2006/06/20(火) 15:40:11
どうも。
突然乱入してスマソ。
ところで、管理者設定ってどうしたら破れるの?
って友人に聞かれたので教えてください 
573デフォルトの名無しさん:2006/06/20(火) 15:41:28
管理者を買収するか脅迫すればおk。
574デフォルトの名無しさん:2006/06/20(火) 15:42:24
>>571
jdbでも使うしか無いかねぇ。 あんま便利じゃないけど。
詳細はsunかgoogleに聞いて。
575デフォルトの名無しさん:2006/06/20(火) 15:44:55
>>573
買収なんて無理だお。
なんとかレジストリとかでできないですかぁ?
576デフォルトの名無しさん:2006/06/20(火) 15:49:35
なにこのサンドバッグ >>575
577デフォルトの名無しさん:2006/06/20(火) 15:57:28
面白そうなんだお。
本当にこれ叩いていいんですかぁ?
578デフォルトの名無しさん:2006/06/20(火) 16:00:51
OK
579デフォルトの名無しさん:2006/06/20(火) 16:47:36
質問です。
PrintWriter.println(String s)で、
何故かArrayIndexOutOfBoundsExceptionが
発生してしまいます。

このように出ています。
Caused by: java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)

PrintWriter.println(String s)に何か制限でもあるのでしょうか?
580デフォルトの名無しさん:2006/06/20(火) 17:01:34
>>579
一部だけ抜き出さないでスタックトレースを全部晒せ。
581579:2006/06/20(火) 17:08:16
すみません。
このようになっています。

Caused by: java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at com.evermind.server.http.EvermindServletOutputStream.write(EvermindServletOutputStream.java:216)
at com.evermind.server.http.EvermindServletOutputStream.write(EvermindServletOutputStream.java:151)
at sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(StreamEncoder.java:336)
at sun.nio.cs.StreamEncoder$CharsetSE.implFlushBuffer(StreamEncoder.java:404)
at sun.nio.cs.StreamEncoder$CharsetSE.implFlush(StreamEncoder.java:408)
at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:152)
at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213)
at java.io.BufferedWriter.flush(BufferedWriter.java:230)
at java.io.PrintWriter.flush(PrintWriter.java:120)
at java.io.PrintWriter.newLine(PrintWriter.java:256)
at java.io.PrintWriter.println(PrintWriter.java:405)
at java.io.PrintWriter.println(PrintWriter.java:516)
at jp.co.xxx.test.logic.Logic.outputCsv(Logic.java:305)
... 14 more
582デフォルトの名無しさん:2006/06/20(火) 17:20:28
>>579
println() には何のクラスのインスタンスを渡している?
ソースの中の println() を使用している個所を抜き出してコピーペーストして書け。

583579:2006/06/20(火) 17:37:57
こんな感じです。

PrintWriter out = new PrintWriter(response.getWriter(), true);
String s = "xxxxx"; // 実際には1000文字ぐらいの文字列
out.println(s); // ここでエラー発生
584デフォルトの名無しさん:2006/06/20(火) 17:40:17
>>581
> com.evermind.server.http.EvermindServletOutputStream.write(EvermindServletOutputStream.java:216)
ここで System#arraycopy の使い方間違ってるんだろ。PrintWriter は無関係。

com.evermind.server.http.EvermindServletOutputStream でぐぐったら、
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=29778&forum=12&7
他にもトラブってる人が居るみたいだね。
Oracle のサポート窓口で聞いてみるとかした方が良いかも。
585デフォルトの名無しさん:2006/06/20(火) 17:49:42
 windowsとLinuxのパス区切りの違いの吸収について
教えてください。

たとえばwindow環境では、application.getRealPathの結果が、

 c:\home\hoge\file

のように"\"で区切られます。
最後の"/"相当の文字の位置を知るために、現状ではまず
 lastIndexOf("/")
を試し、-1が戻ってきたら次に
 lastIndexOf("\\")
を試みていますが、もっと簡便な方法はありませんか?


////////////////////////////
//path中の最初の"/"の位置を取得する
String sSP = application.getRealPath([ファイル]);

if((li = sSP.lastIndexOf("/")) == -1){
li = sSP.lastIndexOf("\\");
}
////////////////////////////
586デフォルトの名無しさん:2006/06/20(火) 17:53:01
つFile.separator もしくは System.getProperty("file.separator")
587デフォルトの名無しさん:2006/06/20(火) 18:48:01
創るjavaで勉強してる初心者なんですけど
NetBeansでソースを書いて実行すると
「 クラス○○○にはmainメソッドがありません。 」
と出てくるのですがどうしたらいいのかわかりません
教えてください
588デフォルトの名無しさん:2006/06/20(火) 18:52:45
mainメソッド書けば良いよ
589デフォルトの名無しさん:2006/06/20(火) 19:01:18
>>588
mainメソッドをどこに書けばいいのですか?
それさえわかりません
590デフォルトの名無しさん:2006/06/20(火) 19:01:43
じゃあ死ねば
591デフォルトの名無しさん:2006/06/20(火) 19:06:30
>>590
死んできます
冥途の土産に教えてくだされ
化けて出ますよ
592デフォルトの名無しさん:2006/06/20(火) 19:09:27
なんでかしらんけどAlt+Enterの例外補完が聞かない
欄は表示されるのに補完を実行しても反映されない
それどころか稀に周辺のコードを汚して壊すw

う〜ん、変なオペレーションした記憶がないのに・・・
593デフォルトの名無しさん:2006/06/20(火) 19:32:17
>>592
どっかに全角文字が入ってるよ
594デフォルトの名無しさん:2006/06/20(火) 19:33:51
>>591
死ぬ前にケツ貸せ
595デフォルトの名無しさん:2006/06/20(火) 19:34:38
>>593
だったら警告でるのでは?
596デフォルトの名無しさん:2006/06/20(火) 19:40:38
JTextAreaの内部文字列をgetTextを経由せずにアクセスできないのでしょうか?
charをシーケンシャルアクセスできれば十分なのですが、何か方法があればお願いします。
597536:2006/06/20(火) 19:40:59
>>538
遅くなってすいません、Wordでとはどういう事でしょうか?
DOS上に100までの数字を10ずつ改行していきたいです
forの中にどのような事をすれば簡潔に改行するプログラムをかけるのかな分かりません
598デフォルトの名無しさん:2006/06/20(火) 19:45:44
>>587
mainがないってことはそのクラスは
他のmainのあるクラスから使うクラスなんじゃないの?

         (;^ω^)
         /  つ
        (_(_,)
         しし'
599デフォルトの名無しさん:2006/06/20(火) 19:49:05
そうだねプロテインだね
600デフォルトの名無しさん:2006/06/20(火) 21:00:47
Imageを切り分けて複数のImageを生成する方法はありますか?
601デフォルトの名無しさん:2006/06/20(火) 21:20:37
>>597
めちゃくちゃベタだけど。こんなんでいんじゃね。
public class PrintInt {
public static void main(String[] args) {
for(int i=1;i<100;i++){
System.out.print(i);
if(i%10 == 0){
System.out.println();
}else{
System.out.print(" ");
}
}
}
}
602597:2006/06/20(火) 21:32:29
>>601
ありがとう、心の底から愛してる
603デフォルトの名無しさん:2006/06/20(火) 22:09:04
>>601
99までじゃない?
しかも、10までがずれちゃう。
604デフォルトの名無しさん:2006/06/20(火) 22:14:59
>>603
1から99までの出力は確認してます。100を入れたかったらi<101か<=にする。
出ませんでしたか?
605デフォルトの名無しさん:2006/06/20(火) 22:16:20
出ました。
1〜10がずれないようにするにはどうしましょうか?
606デフォルトの名無しさん:2006/06/20(火) 22:19:21
>>605
format使って桁数(2桁とか3桁とか)を設定するとか。
めんどいのであとはどうぞご自由に。
607デフォルトの名無しさん:2006/06/20(火) 22:25:01
わかりました。
608デフォルトの名無しさん:2006/06/20(火) 22:31:39
わかりませんでした。
609デフォルトの名無しさん:2006/06/20(火) 23:23:22
for (int i = 1; i <= 100; i++) {
System.out.printf("%3d%s", i, i % 10 != 0 ? " " : "\n");
}
610デフォルトの名無しさん:2006/06/20(火) 23:44:32
%cでいいな
611デフォルトの名無しさん:2006/06/20(火) 23:46:24
ありがとうございました。
612デフォルトの名無しさん:2006/06/20(火) 23:55:32
jarファイル化の質問です。
以下のように外部に公開するクラスを限定できないでしょうか。

[Pugyaa.jar]
HogeClass(public) ← このクラスだけを公開したい
HageClass(private)
HigeClass(public)

教えて下さいツンデレお姉さん。お兄さんでも構いませんが。
613デフォルトの名無しさん:2006/06/20(火) 23:58:22
HogeClassが他のクラスと依存関係にないならそのHogeClass.class取り出して公開すればいいのでは。
614デフォルトの名無しさん:2006/06/21(水) 00:15:07
サーブレットで、ブラウザの入力フォームから名前・性別・年齢を入れたものをテキストにするにはどうしたらいいですか?
またその入力したデータを削除ボタンを押したらテキストから消す機能も欲しいのですが・・・

教えてエロい人!
615612:2006/06/21(水) 00:19:38
>>613
すみません。例が悪かったですね。↓こんな感じです。
[Pugyaa.jar]
HogeClass ← このクラスだけを公開したい
HageClassIF
HageClassImpl

[HogeClass]が[HageClassImpl]を使用する(依存する)ような感じです。
[HogeClass]はファサードっぽいイメージです。
実際は[HageClassImpl]は凄い沢山あります。
このままjar化すると全ファイル公開されてしまう。。
616デフォルトの名無しさん:2006/06/21(水) 01:05:34
>>612
Antのjarタスクでjarを作るようにして、
filesetの指定で**/*IF.classと**/*Impl.classをexludeするようにフィルタリングする。
617デフォルトの名無しさん:2006/06/21(水) 04:01:53
>>612
依存しているならjarの中には入れざるを得ないし、
見えてほしくないクラスの可視性をpackage privateにするくらいしかないだろう。
あるいは難読化でもかけてみるとか。
618デフォルトの名無しさん:2006/06/21(水) 08:51:00
Fileクラスでディレクトリを指定してdeleteを使うと、
ディレクトリが空の場合のみディレクトリを削除しますが、
ディレクトリとファイルごと全て削除する方法はあるのでしょうか。
619デフォルトの名無しさん:2006/06/21(水) 09:21:57
>>618
無いと思うなあ。
CommonsIOに再帰的に(サブディレクトリも)削除するのがあるから、それ使うとか。
620デフォルトの名無しさん:2006/06/21(水) 12:51:33
JTextFieldでプロンプトのようなものを作りたいのですが
例えば、"prompt: "を先頭に出してそれを削除できなくしたり
キャレットがフォーカスできないようにしたいのですが、簡単な方法があれば教えてください。
621デフォルトの名無しさん:2006/06/21(水) 13:35:01
あるフォルダ以下(サブフォルダ有り)に対して、
ファイルの更新や追加削除があった場合、それを通知するプログラムを作りたいのですが、

1:定期的に、指定フォルダ以下をFile#list()を使ってファイルリストを取得。
  isDirectory()などを使い、サブフォルダを再帰的に取得する。

2:前回のファイルリストと照合し、変化があれば通知する。

3:これをスレッドで回す

ってイメージしてるんですけど、
指定フォルダ以下のファイルの更新状況監視って、他にどんなやりかたがありますか?
622デフォルトの名無しさん:2006/06/21(水) 15:36:58
ある本で
3を小数として64ビットで表現すると
0100 0000 0000 1000 ・・・0000
となる。これはIEEE754という表現形式である。
とありますがなぜそうなるかわかりません。教えてください。
623デフォルトの名無しさん:2006/06/21(水) 15:54:17
>>622
先頭1ビット:0→正の数、1→負の数
2〜12ビット:指数部→2^nをあらわす(ただし、ここが0の時に0としたいので0x400を下駄に履いている)
13ビット〜:仮数部→1.xxxxxxxxxx(2進数の固定小数点)ただし、正規化して整数部は必ず1にしているので1は省略する
624デフォルトの名無しさん:2006/06/21(水) 18:52:01
jar in jarみたいなことはどうすればよいのでしょうか?
1ファイルで済ませたいのでCommonsなどを埋め込みたいのですが
625デフォルトの名無しさん:2006/06/21(水) 19:05:16
クラスローダを自作する。
626デフォルトの名無しさん:2006/06/21(水) 19:14:58
ああ、なるほど。意外とすっきりとした解決。
627デフォルトの名無しさん:2006/06/21(水) 19:42:12
StringBufferからStringに変換する場合、
バッファと新しいストリングとで倍のメモリを消費することになりますよね?
バッファの方が変更不可になるなどの制約を受けても良いので
同一の内部配列を使ってStringを作るようなクラスはありませんか?
628デフォルトの名無しさん:2006/06/21(水) 19:47:19
>>627
Java使うの止めれば?
629デフォルトの名無しさん:2006/06/21(水) 19:49:33
はぁ?
630デフォルトの名無しさん:2006/06/21(水) 20:03:06
Stringのコンストラクタにはpackage privateでサポートしてるから
java.langパッケージ内にそういうクラスが追加されれば可能。
631デフォルトの名無しさん:2006/06/21(水) 20:11:12
>>630
が、java.*パッケージのクラスを勝手に定義するのはライセンス違反なので、俺らにはムリ。

結論:あきらめる。
ま、あれだ。Stringで使うメモリけちっても、大して性能向上に繋がらない。
短寿命のオブジェクトは速攻でGCされるようになっているので、気にするだけ意味無いよ。
632デフォルトの名無しさん:2006/06/21(水) 20:22:48
アルゴリズムやら速度のネックになりそうなところをチューニングしなされ
StringBufferをつかうよりStringBuilderのほうが早いし
Stringのプラスによる連結においても場合によってはStringBuilder:appendを使うより早いコードが生成されるとか
そういうのもしっておけ
633デフォルトの名無しさん:2006/06/21(水) 20:29:35
んなもん常識だろカス
雑魚がイカ臭い講釈たれてんじゃないよw
634デフォルトの名無しさん:2006/06/21(水) 20:32:25
>>633
雑魚発狂wwww
635デフォルトの名無しさん:2006/06/21(水) 20:32:43
wがやたら多いな
636デフォルトの名無しさん:2006/06/21(水) 20:42:41
wは多い方が知的だからな
637デフォルトの名無しさん:2006/06/21(水) 20:45:56
むしろ痴的
638デフォルトの名無しさん:2006/06/21(水) 21:03:15
LinuxやMacや*BSDはWindows-31Jをサポートしてますか?
最低限サポートの対象からは外れてるはずなので
知ってるOSのサポート状況だけでも教えていただけると幸いです。
639デフォルトの名無しさん:2006/06/21(水) 21:04:45
あ、該当ページあった。ごめんやっぱいいです。
640デフォルトの名無しさん:2006/06/21(水) 21:51:50
JAVAの言語仕様の本を一通り読みました。
次に、JDKに関する解説書を読みたく、探しているのですが、なかなかこれというものに出会えません。
みなさんのお勧めを教えて下さい。
オライリージャパンとかピアソンエデュケーションとかの、翻訳本がいいです。
よろしくお願いします。
641デフォルトの名無しさん:2006/06/21(水) 22:22:46
APIリファレンスでいいじゃん
642デフォルトの名無しさん:2006/06/22(木) 00:03:54
>>627
Java2 1.4 の場合、stringBuffer.toString() か new String(stringBuffer)
とすれば、バッファはコピーされずに共有される。
Java5 ではコピーされる。
643デフォルトの名無しさん:2006/06/22(木) 07:59:01
Javaで開発している香具師が「このAgentは、なんたらかんたら」
と言っているのをよく聞くのですが、何のことを言っているのでしょうか?

JavaでAgentなる基底クラスってあるのですか?
詳しい方、教えて下さい。
644デフォルトの名無しさん:2006/06/22(木) 08:22:20
Swingで画像を表示するプログラムを作っています。
メニューバーのメニューからファイルチューザで画像を選択し
選択され画像をpublic void paint(Graphics g)内で表示するように
しているのですがpaintメソッドのせいか
フォームを表示したときにメニューバーが表示されないというか
文字が消えているというかうまく表示されません。

また画像を表示したときもメニューバーが消えてしまいます。

ContentPaneの上にJPanelを乗せて、JPanelに画像を表示しています。

わかりにくい説明ですが、うまく画像表示部分(JPanel)だけ
更新できないものでしょうか。
そもそもやり方が間違ってるのでしょうか。
レスお願いします。
645デフォルトの名無しさん:2006/06/22(木) 08:41:34
>>664
画像表示はJLabelを使うのが楽。
画像ファイルからImageIcon作ってJLabel#setIcon(Icon)で終了。
646デフォルトの名無しさん:2006/06/22(木) 11:29:47
GUI上で引数を与えて、スタートボタンを押すとあるスレッドを
a = new a(this);
a.start();
という形で実行させるプログラムを書いているのですが、
今度はストップボタンを押すとこのスレッドを止める形をとりたいのですが、
stop()メソッドは deprecatedだとエラーがでました。
この場合GUIからスレッドを止める方法はあるのでしょうか。

647デフォルトの名無しさん:2006/06/22(木) 12:35:59
>>664
Swingの描画は
paint()ではなく、paintComponent()
内でやりなはれ。
648デフォルトの名無しさん:2006/06/22(木) 12:53:16
>>646
そのThreadに setStop(true) とか停止要求を送れるようにしといて
Thread側で止まるように処理を書くべし。
649649:2006/06/22(木) 14:48:35
回答ありがとう。解決しました。
650デフォルトの名無しさん:2006/06/22(木) 14:58:49
ステータスバーは無いのかね?
651デフォルトの名無しさん:2006/06/22(木) 15:17:40
import java.awt.*;
import java.applet.*;

public class HelloWorldApplet extends Applet {
 public void paint(Graphics g) {
  g.drawString("Hello World",20,20);
 }
}

この超初心者用アプレットがIEで動かない?なんで?
別の練習で作ったアプレットは動いた。
ブラウザのJavaの実行権限もつけてる。
このクラスを呼んでるhtmlをOperaに突っ込んだらちゃんとでた。

う〜ん、謎です。。。どなたかご教授を。
652デフォルトの名無しさん:2006/06/22(木) 15:18:52
IEのセキュリティじゃねーの
653651:2006/06/22(木) 15:22:56
>別の練習で作ったアプレットは動いた。
いやだから同じブラウザに別のアプレットを
突っ込んで動くんだよ。。。
654デフォルトの名無しさん:2006/06/22(木) 16:36:41
>>651
Javaコンソール見てみて(ツール→SUNのJavaコンソール)
655644:2006/06/22(木) 17:37:54
>>645
>>647
thx

解決しました。
656デフォルトの名無しさん:2006/06/22(木) 17:40:51
ネットワーク通信で、byte型のコードとdouble型のデータを同時にクライアントに送りたいんですが
この場合クライアントは、byte型の受信を見張るスレッドとdouble型の受信を見張るスレッドの
2つスレッドを準備するしか方法はありませんか?

もっと効率のいい方法があれば教えてください。
657デフォルトの名無しさん:2006/06/22(木) 17:55:32
>>651
IEの方はMicrosoftのJavaで動いてるんじゃない?
で、コンパイル時にtarget指定してないと。

javac -target 1.1 -source 1.3 HelloWorldApplet.java
とかで試してみて。
658デフォルトの名無しさん:2006/06/22(木) 17:57:17
ステータスバーは無いのかー?
659デフォルトの名無しさん:2006/06/22(木) 18:02:55
>>658
Swingの標準コンポーネントがあればステータスバー作れるよ。
ステータスバーってコンポーネントは無い。必要ないと思うし。
660デフォルトの名無しさん:2006/06/22(木) 18:38:48
>>658
JLabelで代用。
661デフォルトの名無しさん:2006/06/22(木) 18:44:05
なに、SwingのステータスバーってもしかしてSouthに細く配置してるだけなん?
662デフォルトの名無しさん:2006/06/22(木) 19:17:46
ステータスバー固有の機能ってなんかあったっけ?
663デフォルトの名無しさん:2006/06/22(木) 19:42:36
ステータスを表示するんじゃないか
664デフォルトの名無しさん:2006/06/22(木) 19:46:00
GUIがダサいんだが


何とかならんのかね?君。
665デフォルトの名無しさん:2006/06/22(木) 20:04:32
そう?V2CとかWindows L&Fで使ってみてよ。
僕はぜんぜん気にならないんだけど。
MacやLinuxの人らに愛用者が多い2chブラウザだよ。
666デフォルトの名無しさん:2006/06/22(木) 20:34:37
>>664
Look&Feel使ってもダサいと思うなら諦めなされ。
667デフォルトの名無しさん:2006/06/22(木) 21:22:31
XPテーマをLuna以外にしてWindows L&F



・・・泣いた
668デフォルトの名無しさん:2006/06/22(木) 21:47:39
669デフォルトの名無しさん:2006/06/22(木) 21:49:50
>>668 あるよ。
670デフォルトの名無しさん:2006/06/22(木) 21:57:00
>>669
どうやんの
671デフォルトの名無しさん:2006/06/22(木) 22:02:32
672デフォルトの名無しさん:2006/06/22(木) 22:27:11
初心者なので、すごいしょっぱい質問をします

javaで以下のようなコーディングをし
----------------------------------------------------------↓
StringBuffer message = new StringBuffer();

message.append("登録完了レコード\n");

for(int i=0; i<emp_list.size(); i++){
message.append(emp_list.get(i)+"\n")
}

request.setAttribute("msg", message.toString());
----------------------------------------------------------↑

jsp側でmsgをアラート表示しようとすると
「終了していない文字列型の定数です」とエラーがでます。

改行コード関係でエラーになるのはなんとなく想像つきますが
対処法がわかりません
どなたか指導の方よろしくお願いします

673デフォルトの名無しさん:2006/06/22(木) 22:31:39
>>671
必要な byte なり double なりのメンバ(おそらく Byte や Double にラップする必要があるとおもうけど)
を持つクラスを作って、それをシリアライズして送るというのではダメ?
674デフォルトの名無しさん:2006/06/22(木) 22:38:54
すいません。質問です
コンパイルして実行したら
at sun.awt.windows.Win32Renderer.doFillPoly(Native Method)
at sun.awt.windows.Win32Renderer.fillPolygon(Unknown Source)
at sun.java2d.SunGraphics2D.fillPolygon(Unknown Source)
at House.construct(House.java:38)
at Ex10.row(Ex10.java:33)
at Ex10.paint(Ex10.java:46)
at sun.awt.RepaintArea.paintComponent(Unknown Source)
at sun.awt.RepaintArea.paint(Unknown Source)
at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

こんな風に出てうまく実行できません
何ですかこれは
675デフォルトの名無しさん:2006/06/22(木) 22:46:40
Ex10 の課題は自分で考えろボケ
676デフォルトの名無しさん:2006/06/22(木) 22:53:43
>>656
送るのも送られるのもしょせん01の列でしかないんだから
区別できるプロトコルを適当に作って送れば
(そして手元でbyteやdoubleを復元すれば)問題ない。
677デフォルトの名無しさん:2006/06/22(木) 22:57:19
>>675
何回か実行できたんですけど
さっきからずっとこれなんです
678デフォルトの名無しさん:2006/06/22(木) 23:40:42
私たちはエスパーではありません

at House.construct(House.java:38)
at Ex10.row(Ex10.java:33)
at Ex10.paint(Ex10.java:46)

の部分のソースくらい提示しましょう
679デフォルトの名無しさん:2006/06/22(木) 23:58:44
House38行目 g.fillPolygon(tx,ty,size);
Ex10の33行目 h.construct(g);
Ex46の46行目 row(100,250,40,Color.red,g);
これだけで原因がわかるでしょうか?
680デフォルトの名無しさん:2006/06/23(金) 00:01:41
その出力(スタックトレース)の前に例外名は出ていないのかね。
681デフォルトの名無しさん:2006/06/23(金) 00:04:43
すいません例外名とは何ですか?
ごめんなさい話になりませんね…
682デフォルトの名無しさん:2006/06/23(金) 00:05:39
>>679
ピンポイント杉
わかるわけねえだろwww
683デフォルトの名無しさん:2006/06/23(金) 00:12:53
すいません。なんのなく分かりました
Exception in thread "AWT-EventQueue-0"java.lang.ArrayIndexOutOfBoundsException:
coordinate array

ってかいてあります
684デフォルトの名無しさん:2006/06/23(金) 00:17:18
だからなぜ言われた箇所しか提示しない?

スタックトレースを丸々貼り付けてエラー箇所のソースも丸ごと貼れば
問題もすぐに解決するだろうに
685デフォルトの名無しさん:2006/06/23(金) 00:25:33
質問です。
サーバーでクライアントの接続をsocketで管理してるんですが
クライアントがいきなり切断した場合、サーバー側で切断を知る方法ってありませんか?

スレッドで、ずっと繋がってるか見張る方法を思いついたんですが
そのためだけにスレッドを見張るのは非効率な気がするので
他にいい方法があれば教えてください。
686デフォルトの名無しさん:2006/06/23(金) 00:30:04
C:\JSamples>java Ex10
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException:
coordinate array

at sun.awt.windows.Win32Renderer.doFillPoly(Native Method)
at sun.awt.windows.Win32Renderer.fillPolygon(Unknown Source)
at sun.java2d.SunGraphics2D.fillPolygon(Unknown Source)
at House.construct(House.java:38)
at Ex10.row(Ex10.java:33)
at Ex10.paint(Ex10.java:46)
at sun.awt.RepaintArea.paintComponent(Unknown Source)
at sun.awt.RepaintArea.paint(Unknown Source)
at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

これがスタックトレースです
687デフォルトの名無しさん:2006/06/23(金) 00:33:38
>>686
House.javaの38行目でArrayIndexOutOfBoundsExceptionが発生している。

配列やコレクションを扱ってて、存在しないインデックスにアクセスしようとしてない?
例えば、配列の要素数が5なのに hairetsu[5]を指定してるとか。
688デフォルトの名無しさん:2006/06/23(金) 00:34:06
ソースって丸々のした方がいいでしょうか?
689デフォルトの名無しさん:2006/06/23(金) 00:35:19
自分で考えろよ
690デフォルトの名無しさん:2006/06/23(金) 00:38:26
とりあえずHouseのソースです
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/********** クラス House *****************/
public class House{
/*************** フィールド *****************/
int x = 100;//初めのx座標
int y = 250;//初めのy座標
int size = 40;//初めの大きさ
Color c = Color.red;//初めの屋根の色
/************** コンストラクタ *****************/
public House(int x1,int y1,int size1,Color c1){
x = x1;
y = y1;
size = size1;
c = c1;
}
691デフォルトの名無しさん:2006/06/23(金) 00:39:04
/*********** construct **************/
public void construct(Graphics g){
int tx[] = new int[3];
int ty[] = new int[3];
g.setColor(Color.black);
g.drawRect(x,y-size,size,size);
g.setColor(c);
tx[0] = x;
ty[0] = y-size;
tx[1] = x+size;
ty[1] = y-size;
tx[2] = x+size/2;
ty[2] = y-size*3/2;
g.fillPolygon(tx,ty,size);
}
}
692デフォルトの名無しさん:2006/06/23(金) 00:42:33
でこれがEx10のソースです

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/******** クラス 10 ************/
public class Ex10 extends JFrame{

/************** コンストラクタ *****************/
public Ex10(){
setBackground(Color.white);
setSize(400,300); //画面サイズの初期値
/* ×ボタンが押されたら、プログラムを終了する */
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
693デフォルトの名無しさん:2006/06/23(金) 00:43:17
/*********** 家の並びを描画 ***************/
/*** 左下座標(x,y),大きさsize,屋根の色cの家が
無限遠点(300,50)に向かって並ぶ ***/
void row(int x,int y,int size,Color c,Graphics g){
int x1,y1,size1;

if(size>4){
/*** 家の描写 ***/
House h= new House(x,y,size,c);
h.construct(g);
/*** 左下座標の計算 ***/
x1 = 300-(300-x)*(y-50-size*2)/(y-50);
y1 = y-size*2;
/*** 次の家の大きさ計算 ***/
size1 = size*(y-50-size*2)/(y-50);
/*** 再帰呼び出し ***/
row(x1,y1,size1,c,g);
}
}
/************** paint *****************/
public void paint(Graphics g){
/**** 赤屋根の家の並び ***/
row(100,250,40,Color.red,g);
row(200,250,40,Color.blue,g);
}

/******************* main *******************/
public static void main(String[] args){
Frame w = new Ex10(); //コンストラクタの起動
w.setVisible(true);//ウィンドウの表示
}
}
694デフォルトの名無しさん:2006/06/23(金) 00:47:34
g.fillPolygonの第三引数sizeのイミわかってる?
その場合3じゃなきゃいかんのだよ。40が入ってるじゃないか。
695デフォルトの名無しさん:2006/06/23(金) 00:51:57
>>685
select は使っていますか?
切断は select で検知できると思いますが・・・。
696デフォルトの名無しさん:2006/06/23(金) 00:57:23
凄く分かりました。
何やってんだ俺…
三角形描くんだからそうですよね
俺なんか死ねばいい…orz
ほんとにアリガトー御座いました
697デフォルトの名無しさん:2006/06/23(金) 00:58:14
ちなみに例外のメッセージにしっかり書かれている coordinate array というのは
「座標の配列」という意味。
698デフォルトの名無しさん:2006/06/23(金) 01:00:02
そうなんですかー
もっと勉強しなきゃいけないですね
今度は教える側に…
何年かかるやら
699デフォルトの名無しさん:2006/06/23(金) 01:00:33
>>690-693
原因は>>694の言うとおりなんだけど、それ以前にオブジェクト指向が理解できてないから
そんなことになってるんだと思う。
独学でやってるなら、GUI以前に、もうちょっとクラス構成ってものを勉強したほうがいいよ。
学校の宿題なら、自分でやるか、恥を忍んで先生か学友に聞きなさい。
700デフォルトの名無しさん:2006/06/23(金) 01:04:26
はい!分かりました
先生に聞きます&本気で勉強します
701デフォルトの名無しさん:2006/06/23(金) 06:57:16
702デフォルトの名無しさん:2006/06/23(金) 10:48:28
勉強方法についてなんだけど
数学の公式みたいに基本的な物覚えてそれを応用していくみたいな感じでOK?
703デフォルトの名無しさん:2006/06/23(金) 11:00:10
まず、他の言語の知識があるかどうかによって変わる。
704デフォルトの名無しさん:2006/06/23(金) 11:14:13
>>703
他言語の知識があったらこういう質問はしないと思うよ。

>>702
数学というより、外国語の習得に近いかも。
基本文法・基本構文を覚えて、
あとはたくさん単語(クラスライブラリ)を覚えること
言い回し・イディオム等(設計や実装のよくあるパターン)を覚えること。
705デフォルトの名無しさん:2006/06/23(金) 11:23:52
他言語の知識が無いのなら、最初はあんまりいろいろなことを覚えようとしないほうがいい。
たとえば、main メソッドしかないクラスでいろんなことをやって、
クラスやなんやらは後回しにしてもいい。

で、そのやり方で限界を感じたら、「なんかべんりな機能がないかな」という感じで、
必要な機能を探していくのがいい。

プログラミングの経験が一切無い状態で、抽象クラスだとかインタフェースだとかの知識を
詰め込もうとしても、消化不良になる。
706672:2006/06/23(金) 11:36:54
自己解決しますた
というか、あまりにもくだらない質問でしたね…orz
707デフォルトの名無しさん:2006/06/23(金) 13:41:27
ソースの流用についてなんですが、
J2ME WirelessToolkitで開発したのをDojaに移植する場合、
どのくらいのソースを流用できるか知りたいのです。

画面などのUI部分は無理だと思いますが、
内部処理(計算・データ保持)のとこはそのままいけたりしませんか?
708デフォルトの名無しさん:2006/06/23(金) 14:05:06
NetBeansをダウンロードして使い始めたばかりの初心者です。
Swingが便利だと聞いてmain入りのアプリを作ったんですが、どうも
配置したコンポーネント(jlabelなど)が表示されないんです。
コンパイルはできるんですが、、。んで、グーぐるで調べたところ、
setVisibleという関数で行けるらしいということまでは分かったんですが、
ここで思考能力がストップしてしまいました。お助けください。
Netbeansのコンポーネントを選んで右クリックしてプロパティを
選んだら、色とか大きさとかを変えられるウィンドウが開くんですが、
その中にvisibleの項目が無いのがすごく不思議です。AWTならメニューが
あって、trueとかfalseを選べるんですけど。Swingってほんとに便利なの
かななんて思い始めました。

ソースは長すぎるので、以下の要点だけを抜粋しています。
public class SelfSimulate9 extends javax.swing.JFrame {
public SelfSimulate9() {
initComponents();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new SelfSimulate9().setVisible(true);
}
});
}
public void paint(Graphics g){
trans(); //いろんな計算をする。
axis(g); //いろんな計算をして描画。
calculation(g); //いろんな計算をして描画。
}
よろしくお願いします。
709708:2006/06/23(金) 14:17:12
あ、いけました。jButton1.setVisible(true);
を、public void paint(Graphics g)のメソッドの中に入れたら
表示されました。でも、repaintしないと表示されないんです。
一発で表示されないものなのかな、、、。
710デフォルトの名無しさん:2006/06/23(金) 14:20:11
>>708
paint(Graphics g)を、paintComponent(Graphics g)に変更する。
711708:2006/06/23(金) 14:30:05
やったー、いけました。paintComponentメソッドって、今ぐーぐる
したらかなり基本的なもののようでした。まいった。
どうもありがとうございます。てか、ものすごい早いご返答。
712651:2006/06/23(金) 14:35:29
>>657
レスが遅くなって申し訳ありません。
そのコマンドで出来ました!ありがとう!
713デフォルトの名無しさん:2006/06/23(金) 15:04:08
>>705
そのやり方で始めちゃうと、
・考える前に書く、書きながら考える
・仕様書はソースコード
という奇病にとりつかれるおそれがある。
714デフォルトの名無しさん:2006/06/23(金) 15:15:24
ポケコン買ってBASICからやれ。話はそれからだ。
715デフォルトの名無しさん:2006/06/23(金) 15:42:37
>>713
奇病?
まったく健全だと思うが。

 ・書いたこともないのに能書きだけたれる
 ・誰も読まない、実際の動作と同期していない仕様書(紙切れ)
  を膨大なコストをかけて作る

ほうが、病気だな。
716デフォルトの名無しさん:2006/06/23(金) 15:44:58
>>715
頭大丈夫?
717デフォルトの名無しさん:2006/06/23(金) 15:56:06
とりあえずコードを書き始めてしまう。
コードを書きながら何をどう作るか考えている。

こんな状況を健全だと思う奴がいるからプロジェクトは火を噴く。
718デフォルトの名無しさん:2006/06/23(金) 15:57:39
まあ、でも、ここでは、プロジェクトの話をしてるんじゃないし。
719デフォルトの名無しさん:2006/06/23(金) 16:01:56
プログラミング経験がまったく無いです、
これから Java 勉強します、って言っている奴に、
プロジェクトだら設計だら、子難しい話を押し付けて、
コードをかくまえに、「全部覚えろ」とかいってたら、
いつまでたっても身につくわけ無いじゃん。

「この段階で」まず大事なことは "Hello world" と画面に出させることだろ。
720デフォルトの名無しさん:2006/06/23(金) 16:08:55
javaのソケットプログラミングについての質問です、よろしくお願いします。


データを送信するクライアントと、受信するサーバ間でファイルのやりとりをするプログラムを作成しました。
データを正しく送信できたのですが、サーバでは空のファイルしか受信できませんでした。
パケットをモニタリングしたところデータは正しく送信されていました。

クライアントのファイル送信の処理部分は、以下のとおりです。

FileInputStream fis = new FileInputStream("送信するファイル名");
BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());

while((n=fis.read(buf))>0){
bos.write(buf,0,n)
}
bos.flush();

サーバのファイル受信の処理部分は、以下のとおりです。

FileOutputStream fos = new FileOutputStream("受信側のファイル名");
BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());

while((n=bis.read(buf))>0){
fos.write(buf,0,n);
}
fos.flush();

クライアントがbos.write()するときに、サーバ側でbis.read()の待ち状態になっていないと
ファイルが受信できないのでしょうか?


721デフォルトの名無しさん:2006/06/23(金) 16:09:43
プロジェクトの話じゃなくて、そういうプログラマを作ってしまっていいのか?って話。
そんな奴使いたくないよ。
722デフォルトの名無しさん:2006/06/23(金) 16:11:04
そもそもプログラムが習得困難なもののように行ってる時点で
そういう輩は早々この世界から消えてもらった方が良い
723デフォルトの名無しさん:2006/06/23(金) 16:12:10
javaでレジストリにアクセス(書き込み)することは出来ますか?
724デフォルトの名無しさん:2006/06/23(金) 16:12:48
>>720
当たり前田のクラッカー
725デフォルトの名無しさん:2006/06/23(金) 16:25:11
>そもそもプログラムが習得困難なもののように行ってる
は?
726デフォルトの名無しさん:2006/06/23(金) 16:27:19
はじめに何をどう書くのか考えると習得困難になるという感覚がもうダメダメだね。

何を書くのか、構成を決めてから書きなさい
って、小学生の時、国語の時間に作文を書くときに習わなかったのかね。

何も考えないでとりあえず書き始めちゃうと却って習得困難だよ。
727デフォルトの名無しさん:2006/06/23(金) 16:29:29
任意のレジストリ情報を読み書きするのは標準APIでは無理。
それっぽいライブラリはたぶん世の中にあると思う。

自前の設定なんかをレジストリに読み書きしたいだけなら
Preferences API(JDK1.4〜)を調べてみること。
728デフォルトの名無しさん:2006/06/23(金) 16:33:32
727さんありがとうございました
729デフォルトの名無しさん:2006/06/23(金) 16:35:34
>>719
>子難しい話
は?
730デフォルトの名無しさん:2006/06/23(金) 16:38:20
少子化問題キタ━━━━━━(゚∀゚)━━━━━━ !!
731デフォルトの名無しさん:2006/06/23(金) 16:43:04
ここで議論はやめようよ。質問と回答のスレなんだからさ。

>>723
Preferences APIというものがあります。レジストリツリーに自由にアクセスできるわけじゃないですが。
732デフォルトの名無しさん:2006/06/23(金) 16:44:02
お前ら、もっと子供作れ
733デフォルトの名無しさん:2006/06/23(金) 16:49:34
>>719
プログラミング経験のないヤツが、自己流で>>705見たいな勉強法で始めたら
悲惨なことになるよ。
だれかが系統立てて教育するというなら、はじめはそれでいいと思うけどさ。
734デフォルトの名無しさん:2006/06/23(金) 16:53:07
>>731
回答の妥当性を判断できない質問者もたくさんいるということも忘れずに。
735デフォルトの名無しさん:2006/06/23(金) 18:33:54
すみません。
お手数をおかけしますが、どなたかお助け下さい。
コマンドプロンプトから
JAVA -Version
と入力した際に出るVersion情報を、テキストファイルにして
記録するにはどうしたらいいのでしょうか?
JAVAのVersionによって、呼び出すバッチファイルを
切り替えたいのですが、私の脳髄では、Version情報をテキスト
ファイル化し、そこからversion情報を検索してIFで分岐させる
ことしか思い浮かびません。
JAVA -version >C:\11111.txt では当然のようにダメでした。
どなたかご教授お願いします。
736デフォルトの名無しさん:2006/06/23(金) 18:40:55
import java.io.*;
class br{
public static void main(String args[]){
String FILE_NAME = "aaa.txt";
String str;
try{

BufferedReader br = new BufferedReader(new FileReader(FILE_NAME));
while((str = br.readLine()) != null){
System.out.println(str);
}
br.close();
}catch(IOException e){
System.out.println("Exception :" + e);
}}}

aaa.txtファイルの2行目と4行目のみを出力したい場合は
どうしたらいいのでしょうか?お願いします


737デフォルトの名無しさん:2006/06/23(金) 19:10:47
>>723
レジストリの実体ファイルにバイナリアクセスすればいいと思うよ

と言うのはおいておいて、まあ、SWTを使ったらできるんちゃうかな↓参考
ttp://d.hatena.ne.jp/a-san/20051228
738デフォルトの名無しさん:2006/06/23(金) 19:11:40
>>735
落ち着け。何がしたいんだ?
>テキストファイルにして記録する
JAVA -version > C:\11111.txtでいいと思うよ。

>JAVAのVersionによって、呼び出すバッチファイルを切り替えたい
System.getProperty("java.version")とかSystem.exit()を使えばできると思う。
739デフォルトの名無しさん:2006/06/23(金) 19:17:39
>JFrameに表示したいコンポーネントは、ContentPaneに追加する必要があります。
http://www.atmarkit.co.jp/fjava/rensai3/swing02/swing02_02.html
740デフォルトの名無しさん:2006/06/23(金) 20:15:06
>738様
735です。アドバイス有り難うございました。もう少し詳しく書きます。
以下のようなバッチファイルを動作させたいと思っています。
______________________________________________________________
JAVA -version > C:\11111.txt
●(↑この行のままでは中身のない0バイトファイルが出来ます)
find "1.4.2_03" C:\11111.txt
if %errorlevel% ==1 (goto notver3) else goto ver3

:ver3
java -jar 22222.jar

:notver3
java -jar -version:1.4.2_03 22222.jar
________________________________________________________
人に作ってもらった22222.jarがバージョンj2re1.4.2_01〜03でしか作動しません。
それで、-version:1.4.2_03のオプションを付けて、動作させました。
しかし、PCに1.4.2_03だけが入っている場合、
-version:1.4.2_03のオプションを付けると動作しないことが分かりました。
それで、上のようなバージョン判別のバッチファイルを作ったわけです。
(PCには1.4.2_03のみが入っているか、1.4.2_03とその他のバージョンが同時に
入っているかのどちらの状況しかありませんので、判別は上の内容で事足ります。
ちなみに、jarfileが1.4.2_03に関連付けられていても、
-versionで他のヴァージョンが表示される場合動作しません)
私はJAVAに関して完全に無知なので、
最新のバージョンでも稼動するようにjarファイルを改造することは出来ません。
1行目だけうまく行けば、問題はないのですが...。
ご助力をお願いいたします。
741デフォルトの名無しさん:2006/06/23(金) 21:11:21
    .__
   J_†_|
  [[(,,・Д・)<Out of Memory. (Short o frame buffer)
  [[/⊃¶⊃¶ 携帯アプリでnewでメモリ確保したり画像をロードしたりする所で
≡ ◎-ヽ◎┴◎ これがでてアプリが壊れてしまったぞ。どういうときに出るエラーなのか知りたいぞ。
742デフォルトの名無しさん:2006/06/23(金) 22:02:26
携帯アプリで使用できる規定の量以上のメモリを使用しようとしたんじゃない?
数百kの画像読み込もうとしたとかさ。
以上、携帯アプリ開発未経験者の推測でした
743デフォルトの名無しさん:2006/06/23(金) 22:26:52
    ⊂⊃
★  ∧η∧
 \_(,,・Д・)<こんどは、Uncaugh exception happend
  ヽ    |フというメッセージがでて落ちてしまうぞ。
   /_ _| 画像の容量を半分にしたらOut of Memoryから解放されたぞ。
744デフォルトの名無しさん:2006/06/23(金) 22:29:23
自分で考えろうんこ
745738:2006/06/24(土) 00:14:59
>740
XPで確認したが、標準出力では無く標準エラー出力に出力されるようだ。↓みたいにすればファイルができた。
java -version 2> C:\11111.txt
746デフォルトの名無しさん:2006/06/24(土) 00:26:30
747デフォルトの名無しさん:2006/06/24(土) 00:53:21
どうしようもない質問なんだけどさ
JDK 5.0ってどこでDLするの?
まとめサイトの直リン教えても画面真っ白で適当に探したら
j2sdkってのがあったけど、、、、、

すまん、もうちょっと詳しく説明してください、、
748デフォルトの名無しさん:2006/06/24(土) 00:54:28
それでいいお
749デフォルトの名無しさん:2006/06/24(土) 01:02:37
>>748
即答サンクス

あと、DLするのはそのソフトだけでいいんですか?
プログラム打って コンパイルするまですべてを含めてですが
750デフォルトの名無しさん:2006/06/24(土) 01:03:23
>>1ミロ
751デフォルトの名無しさん:2006/06/24(土) 02:30:44
JDK1.5.0_06に関してなんですけど
大変初歩的な質問で恐縮なんですが
標準クラスライブラリのパッケージファイル(jarなどで圧縮されたファイル)
のある場所ってどこなんでしょうか?
JDKインストールする場所によりけりだとは思うんですが標準的に
インストールした場合どこにあるのでしょうか?
よろしくお願いします
752デフォルトの名無しさん:2006/06/24(土) 04:13:28
JAVAでフォルダの表示方法(縮小版、並べて表示など)を変更するアプリを作りたいのですがどうすればできるのでしょうか?
あるいはどのクラスを使えば実現できるのでしょうか
市販のAPIリファレンス本やjavadocも見てみたもののそれっぽい機能を提供してくれるクラスを発見できませんでした

Windowsの機能では特定のフォルダだけか、全てのフォルダにその設定を適用するかのどちらかの方法しかないので
サブフォルダを含めた特定フォルダだけ表示を統一するアプリを作りたいんです
取り込んだ日付ごとにサブフォルダに分かれたデジカメ写真用のフォルダなどを想定してます
753デフォルトの名無しさん:2006/06/24(土) 05:23:51
>>752
Swing には任意のファイル一覧を表示するコンポーネント自体が入ってないので
自力で作るか、サードパーティ製のコンポーネント探さないとダメ。
754デフォルトの名無しさん:2006/06/24(土) 08:02:34
>>751
JDKインストールディレクトリ/jre/lib/rt.jar
755735:2006/06/24(土) 08:08:16
738様

735です。ようやく解決しました。
本当にありがとうございました。
 java -version 2> C:\11111.txt
お手数をおかけしてばかりで申し訳ありませんが、
もしよろしければ、この「2」の意味を教えていただけますか?
「XXに書いてある」という情報でも非常にありがたいです。
よろしくお願いいたします。
756デフォルトの名無しさん:2006/06/24(土) 08:24:59
>>755
「Windows 標準エラー出力 コマンドプロンプト」でググれ。
757735:2006/06/24(土) 08:55:40
>756様

735です。ありがとうございました。
ようやくすべて理解できました。
758デフォルトの名無しさん:2006/06/24(土) 13:49:59
あみだくじを作りたいんですが、うまくできません。
どうしたら、いいんですか??
759デフォルトの名無しさん:2006/06/24(土) 14:18:28
彼女を作りたいんですが、うまくできません。
どうしたら、いいんですか??
760デフォルトの名無しさん:2006/06/24(土) 14:27:38
>>758
1 2 3 4
 | | | |
|−| |−|
 | |−| |
  | | ||
761デフォルトの名無しさん:2006/06/24(土) 14:28:11
宿題スレへいきな。
言語じゃなくアルゴリズムの問題だ。
ノード関係の問題だがListも要らずに作れるぞ
762デフォルトの名無しさん:2006/06/24(土) 14:29:19
ネタはちゃっちく見えても
答えが深そうだととりあえず煽ってごまかす。
ここの初級者どもはチンカスだと覚えとけ。
763デフォルトの名無しさん:2006/06/24(土) 14:32:05
そうそう、どんなあみだくじが作りたいのか、
どううまくいかないのかも書けないようなアホの質問は
煽ってごまかす賃かすの集まりです。
764デフォルトの名無しさん:2006/06/24(土) 14:38:16
>>762
JDK のインストールから Java の文法から GUI 機能からあるアルゴリズムから
質問から想定できるもん全部お前が教えてやれよwww
765デフォルトの名無しさん:2006/06/24(土) 14:46:26
作るだけなら乱数使ってコンソールアプリでもいける
766デフォルトの名無しさん:2006/06/24(土) 14:48:05
なんつーか
コンピュータの基礎も知らんでプログラム始めちゃう人が増えたから
仕方ないとは思う

それ以上に
コミュニケーションの基礎も知らんでネット始めちゃう人が増えたから
どうしようもないとは思う
767デフォルトの名無しさん:2006/06/24(土) 14:48:13
作るだけなら脳内で良い
768デフォルトの名無しさん:2006/06/24(土) 15:17:55
mainメソッドである数値を計算して求めました。
そしてその数値を同じclass内の他のメソッドでもつかいたいのですが
どうすればいいでしょうか?
769デフォルトの名無しさん:2006/06/24(土) 15:21:07
クラスフィールドに代入しておけば良いのでは?
770デフォルトの名無しさん:2006/06/24(土) 15:25:19
>>768
一番簡単な方法

 public static void main(String[] args) {
  〜
  使いたいメソッド( その数値 );
  〜
 }

 public static void 使いたいメソッド( int その数値) {
  〜
 }
771デフォルトの名無しさん:2006/06/24(土) 16:37:12
入力ストリーム系のクラスにあるavailableなんだけど
これにデータが溜まるまで何で待ってるのが一番いいの?
772デフォルトの名無しさん:2006/06/24(土) 18:03:55
デスクトップのスクリーンショットを撮るプログラムを
作っているのですが、画面のサイズを取得する方法はあるのでしょうか。

Rectangle rectangle = new Rectangle(0, 0, 1400, 1050);
BufferedImage bufImg = robot.createScreenCapture(rectangle);

今は画面サイズを手動で指定ます。
773デフォルトの名無しさん:2006/06/24(土) 18:14:06
5秒後にキーボードのTを押すみたいなプログラムはどう作ればよいですか?
774デフォルトの名無しさん:2006/06/24(土) 18:28:47
>>773
「5秒後にTを押す」のはプログラムではなく人間なんじゃないんですか?
775デフォルトの名無しさん:2006/06/24(土) 18:32:27
>>772
簡単に済ますならToolkit

マルチディスプレイとかも対応したいのなら
GraphicsDeviceとかそっち方面もしらべるがよろし
776772:2006/06/24(土) 18:51:34
>>775
さんくす。
調べてみます。
777デフォルトの名無しさん:2006/06/24(土) 19:01:43
>>774
いいえ、プログラムです
778デフォルトの名無しさん:2006/06/24(土) 19:25:52
ソフト板のFirefoxスレで煽られたんだけど、
FirefoxをJAVAで作るわけにはいかなかったんですか?

JAVAで作れば、メモリの事も気にしないでいいらしいし
Cよりも速いという話を聞いたんですが、
Firefoxスレではなんか否定的な空気でした。
どういう事なんでしょうか?
779デフォルトの名無しさん:2006/06/24(土) 19:28:29
>>778
うわー人間性がとことん低い
780デフォルトの名無しさん:2006/06/24(土) 19:30:04
Color.whiteとColor.WHITEどう違うの?
781デフォルトの名無しさん:2006/06/24(土) 19:36:50
皆さんserverVMで起動するとき -serverオプション使いますよね?
でもディフォルトでインストールするとserverVM入ってないですよね。
私はいつもJDKからJREにserverフォルダをコピーして「あー。起動したYO」ってやってるんですけど。
これって邪道ですよね。
正式にはどうserverVMをインストールすればいいんですか?

環境:windows jdk5.0
782デフォルトの名無しさん:2006/06/24(土) 19:38:25
>>780
まったく同じ
public final static Color white = new Color(255, 255, 255);
public final static Color WHITE = white;
783デフォルトの名無しさん:2006/06/24(土) 19:40:50
>>782
なんで2つあるの?
784デフォルトの名無しさん:2006/06/24(土) 19:46:39
>>783
1.3までは小文字のほうだけだった。
推測だけど、Javaプログラマには定数の名前を大文字で書く慣習があるので、
1.4から大文字のが追加された。
785778:2006/06/24(土) 20:01:09
>>779
なんか失礼だったらすいません。
あまりこっちの事は詳しくないんで。。。
786デフォルトの名無しさん:2006/06/24(土) 21:04:42
>>784
サンクス。
787デフォルトの名無しさん:2006/06/24(土) 21:13:23
>>773,774
java.awt.Robot
788デフォルトの名無しさん:2006/06/24(土) 21:58:28
>>778
あえてマジレス。
メモリのことを気にしないで良いというのは、「使い終わったメモリの
始末を自動的にしてくれる」というだけで、メモリ使用量自体は増える。
「Cより速い」というのは、どこで聞いたかしらんけど大嘘。
789デフォルトの名無しさん:2006/06/24(土) 22:08:52
でも遜色ないくらいには早くなってるよな
790デフォルトの名無しさん:2006/06/24(土) 22:11:15
でもハードウェアに負荷かかってるのはなんとなく感じるな。
同じ 120km/h 走行でもベンツとカローラの違いみたいな。
791デフォルトの名無しさん:2006/06/24(土) 22:19:09
>>771
溜まるのをavailableで待つという考え方が間違い
何かしてる間にavailableで溜まってないか確認する
792デフォルトの名無しさん:2006/06/24(土) 22:20:14
メモリの使用量には気を使わないといけない
793デフォルトの名無しさん:2006/06/24(土) 22:21:28
おいおい、available() なんて不確かなもんに期待すんなよハゲ
794デフォルトの名無しさん:2006/06/24(土) 23:15:07
795デフォルトの名無しさん:2006/06/24(土) 23:39:26
サーバーVMはたしかにCより早い場合があるな
Cだとコンパイル時に最適化を決めるのに対して、実行時に最適化できるほうが
可能性はあるわけだし、GCにしろキャッシュがヒットしやすいように配置したり
いろんな高速化技術の固まりだしな
796デフォルトの名無しさん:2006/06/24(土) 23:47:18
俗に言うCPU最適化が走るからってのがそうなる一番の原因だね
逆を言えばマイナーCPUではインタプリタでしかないみたいな可能性も
797デフォルトの名無しさん:2006/06/24(土) 23:52:08
x86でこの手のマイクロベンチマークやると大体
VC >> Java(serverVM) > gcc = gcj
って感じで、gccがウンコという結論になってつまらん。
798797:2006/06/24(土) 23:55:55
あ、なんか誤解されるような書き方した気がするから補足するけど、
Javaが遅いというつもりはないよ。Javaかどうかっていう言語の違い
より実装系の違いを論じるべきレベルまでJavaは速くなったということ。
799デフォルトの名無しさん:2006/06/24(土) 23:58:23
>>797
もしかしてGCCを全くチューニングしない状態で測定してるんじゃないか?
あれはチューニング前提で作られているわけで、チューニング無しじゃ遅いのは当然。
800デフォルトの名無しさん:2006/06/24(土) 23:59:28
パソコン(IEなど)→httpサーバー(CGI)→2chdat取得
→httpサーバー(CGIでHTML変換)→パソコン(IEなど)に出力

というような2chの過去ログ倉庫を作りたいのですが
既に完成されたソースなど公開されていますか?
801デフォルトの名無しさん:2006/06/24(土) 23:59:36
>>797
ベンチマークなんてマーケティング手法なんだし仕方ないんじゃない?
802デフォルトの名無しさん:2006/06/25(日) 00:15:28
クラスのフィールドやメソッドの前に#をつける文化ってどこ発ですか?
java.lang.Object#wait() ←こんなの
803デフォルトの名無しさん:2006/06/25(日) 00:39:24
>>802
URI
804デフォルトの名無しさん:2006/06/25(日) 00:45:29
>>802
javadoc
805デフォルトの名無しさん:2006/06/25(日) 01:00:27
>>802
javadoc 用コメントの @see タグとか {@link} タグとか
806デフォルトの名無しさん:2006/06/25(日) 01:09:54
プログラミング初心者お勧めのjava書籍教えてください。
春からの大学の授業でjavaをしてますが教科書がありません。
あと、授業ではブラウザで画像を表示させてます。(画像を交互とか・・大きさ変えたり)
同じ今年の春から、COBOLとVBも授業でしています。
どれも、内容は触り程度だとおもいます。
こんな感じの経験です。

なん
807デフォルトの名無しさん:2006/06/25(日) 01:13:46
いつの間にかSJC-Aなる資格区分が出来ていますが
これはSJC-Pの下位資格と考えていいのでしょうか?
808デフォルトの名無しさん:2006/06/25(日) 01:27:54
マーケティング的にSJC-Pより浅く広くをうたって同格っぽさをかもしだしていますが
公式的を見る限りでもどう考えても下位資格です。
809デフォルトの名無しさん:2006/06/25(日) 01:31:21
>>806
やさしいJava
810752:2006/06/25(日) 02:09:40
>>753
わかりました、ありがとうございます
811デフォルトの名無しさん:2006/06/25(日) 04:06:22
>>807
Java文法に関しては下位資格。
Java文法以外に、SJC-P の扱ってない、J2SE、J2EE、J2MEの違いとか、
サーブレット、JSP、や jar ファイル、XML、UML などの知識が加わっている。

ぶっちゃけた話、SJC-P は本当に「文法だけ」なので、
コンパイルの仕方を知らなかったり、classpath の扱いを知らなかったり、
標準クラスライブラリの構成を知らなくてもいい。

これだけだと、実際のアプリケーションを開発・実行しようとしたときに、
すぐ壁にぶつかる。たとえば、GUIベースのアプリや、
Webアプリを組もうとしても、どうしたらいいかわからない。
SJC-Aの知識は、こういうとき「何を調べればいいかわかる」レベルまではカバーしてる。
812デフォルトの名無しさん:2006/06/25(日) 05:36:00
SocketException: Software caused connection abort: socket write error
がどうしてもおこってしまうのでしょうがどうしたもんでしょうか。
813デフォルトの名無しさん:2006/06/25(日) 08:57:57
>>806
触りだけ教えてもらうんじゃ大変だな
814708:2006/06/25(日) 09:16:04
質問があります。netbeansを使って、絵や線を表示させるシンプルな
アプリを作ろうとしているのですが、つまづきました。
作ったクラスをちょっと書いてみます。
public class SelfSimulate10 extends javax.swing.JFrame {
public void paintComponent(Graphics g){
jButton1.setVisible(true);
axis(g);
}

public void axis(Graphics g){
g.drawString(String.valueOf(x0),xtr(x0),ytr(y0)+10);
}
}
こんな感じです。でも、メソッドaxis(g)が実行されない問題が起きています。
jpanelを使えば描画が簡単と聞いたのですが、
public class SelfSimulate10 extends javax.swing.JFrame and javax.swing.JPanel{
としても失敗に終わりました。助けて下さいませ〜。
それともaxis(g)に一工夫こらせば、実行されるのかな、、、。
815708:2006/06/25(日) 09:20:52
さらにpaintComponent()メソッド内に、
super.paintComponent(g);
を書くと良い、とあったのですが、書くとエラーが出るんです。
JPanelをextendしていないクラス内で書いているからかな、と思うのですが、
かといってJFrameをextendしている現状を変えたくない、というあたりで
ダウン。ええーん、助けてください〜!!
816デフォルトの名無しさん:2006/06/25(日) 09:46:50
>>814-815
JFrameはJComponentを継承していないし、JFrameにはpaintComponent()メソッドがない。
だから、SelfSimulate10#paintComponent(Graphics g)はオーバーライドしたことにならず呼び出されない。
(axis(g)以前にpaintComponentが呼び出されない)

>extends javax.swing.JFrame and javax.swing.JPanel
Javaはクラスの多重継承できません。
817デフォルトの名無しさん:2006/06/25(日) 09:54:16
>>814-815
JPanelを継承して書き直すか
JPanelを継承したクラスを別に作って
それをSelfSimulate10から使うとか。
818708:2006/06/25(日) 09:55:17
で、さっきJpanelをつけてみたんですが、
private void initComponents() のメソッドの中に、
jPanel1 = new javax.swing.JPanel();
という文が付け足されました。
このjPanel1のインスタンスに絵を描くには、どのようにすればよいか、
というところでまたまたわかりません。
 ちなみに、それはSelfSimulate10 extends JFrameのクラス内で宣言
されています。でもそのクラス内ではpaintComponentは使えないんです
よね?こまったな〜。
819708:2006/06/25(日) 09:58:40
>>817
ちょっとトライしてみます。またすぐ戻ってきます。
ありがとうございます。
820デフォルトの名無しさん:2006/06/25(日) 10:03:04
>>818
jPanel1 = new javax.swing.JPanel() {
protected void paintComponent(Graphics g) {}
};
821708:2006/06/25(日) 10:04:54
少し教えてもらったことを考えたのですが、どうやら私は
Jframeにいろいろボタンとかテキストエリアなどさまざまなものを
貼り付けてそこで作業をしようとしていたことが原因しているような
気がしてきました。JFrameは土台に過ぎず、JPanelを重ねて、そこで
いろいろ作業をさせるようにできている、ということが理解できて
いなかったのがつまづいた原因のようでした。どうもありがとう
ございました。
822デフォルトの名無しさん:2006/06/25(日) 10:36:35
Threadの立ち上がりを待つ良い方法があれば教えてください。
常駐するワーカースレッドに仕事を与えようとしても
スレッドがwaitする前にnotifyが走ってしまいます。
823デフォルトの名無しさん:2006/06/25(日) 12:02:00
nに入力された数字列の中で最も多く出現する数字を返すメソッドcountの中身を埋めなさい。ただし、最も多く出現する数字が複数ある場合、位が小さい数字を優先的に返すことにする。
例えば、nが123331の場合、3が3個、1が2個、2が1個出現するので返す値は3となる。
また、nが245654の場合、4と5が2個、2と6が1個出現する。この場合4の方が小さい位で出現しているので返す値は4となる。

public class NumCounter{
public int count(int n){
int[] a=new int[10];
for(int i=0;i<10;i++)a[i]=0;
r=n%10;
n=n/10;
a[r+1]++;
int ans=0;
for(int i=0;i<10;i++)if(a[i]>ans)ans=a[i]
return ans;
}
}

ここまではやったのですが
最も多く出現する数字が複数ある場合、位が小さい数字を優先的に返すことにする。
が書けません。どうすればいいでしょうか
824デフォルトの名無しさん:2006/06/25(日) 12:25:59
>>822
notifyAllじゃないのか
825デフォルトの名無しさん:2006/06/25(日) 12:43:04
WeakHashMapのvalueがkeyをフィールドに持った場合、これは期待するような連鎖開放は発生するのでしょうか?
やはりvalueがkeyを参照している時点で、連鎖開放の条件が失われているのでしょうか?
うまくテストをすることが出来ないので、ご存知の方はご教授ください。
826デフォルトの名無しさん:2006/06/25(日) 16:35:49
java.awt.FileChooser#setFilenameFilter(java.io.FilenamaFilter)はWindowsでは実装されていないのですか?
827デフォルトの名無しさん:2006/06/25(日) 16:43:00
>>826
setFilenameFilter使えない?使えたと思うけど。
FilenamaFilterは自分で実装しないといけないけどね。
828デフォルトの名無しさん:2006/06/25(日) 16:55:29
>>822
ちと文章が意味不明だが
コンカレントAPIくらいみたほうがいいぞ
便利な同期関係がそろってる
829デフォルトの名無しさん:2006/06/25(日) 20:25:22
FileOutputStreamのオブジェクトを作ろうとしたときに投げられる
FileNotFoundExceptionの
(ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。)
というエラーの「構文が間違っています」とはどういう意味でしょうか?
(ディレクトリのパス名 + File.separator + ファイルの名前);
という引数を与えたのですが、、
830デフォルトの名無しさん:2006/06/25(日) 20:30:10
>>829
その場合あんまり意味無いよ
指定した名前ではファイルかディレクトリが見つけられなかったって事
「俺の間違いじゃなくお前がなんか間違えてるんだろ?」って遠まわしに言ってる
831デフォルトの名無しさん:2006/06/25(日) 20:36:14
なるほど。回答ありがとう。
832デフォルトの名無しさん:2006/06/25(日) 23:51:45
>>822
Threadはそれ自体が明示的に待つものではなく
synchronizedなオブジェクトのwaitによって「待たせる」ものです。

自分で排他したい部分をsynchronizedにして待たせる条件をちゃんとするしかない。
ちゃんとしてればThreadは待たされるしちゃんとしてなければ勝手に進んでしまう。
833デフォルトの名無しさん:2006/06/26(月) 18:38:06
配列で大量に要素を持ちたいんだけど、boolean型は2bit?
834デフォルトの名無しさん:2006/06/26(月) 18:47:19
boolean型は32bit
配列のbooleanはVMによる。
835デフォルトの名無しさん:2006/06/26(月) 18:51:22
つまり、それぞれの要素の番号について正誤判定したいんだけど、
true or false で管理しようが int型の 0 or 1 で管理しようがサイズは変わらないってこと?
836デフォルトの名無しさん:2006/06/26(月) 19:03:48
boolean単体の場合はサイズは変わらないけど、
配列のbooleanは8bitのこともある。

ほかに、intのbitでフラグ管理する方法もある
837833:2006/06/26(月) 20:15:52
>>836
どうりでboolean , 2bitでググってもhitしないわけですか。
trueとfalseの二つだから2bitだと思ってた。
>intのbitでフラグ管理
軽く調べてみたけど、今やっと配列あたりまで進んだ程度の知識なので難しいかも。
まあもうちょっと調べて頑張ってみます。
838デフォルトの名無しさん:2006/06/26(月) 20:21:09
まあ待て
おまいは2値を表現するのに
2ビット使うのかね?
839デフォルトの名無しさん:2006/06/26(月) 20:23:46
うわ、勘違い。1bitですた
840デフォルトの名無しさん:2006/06/26(月) 20:30:34
ん?わからなくなってきた。
booleanでググったら1bitって出てくる。
どういうこと?
841デフォルトの名無しさん:2006/06/26(月) 20:36:21
Javaは8バイト単位で構成されている。
Objectのインスタンスは8バイト、booleanをフィールドに持てば16バイト。
64bitを単位をする構造体をイメージすれば大体同じじゃないかな。
842デフォルトの名無しさん:2006/06/26(月) 20:58:32
8+1でも16バイト、8+8でも16バイト、8+1*8でも16バイトってことね
843デフォルトの名無しさん:2006/06/26(月) 21:09:28
>>842
ようするにフィールドで宣言する場合、booleanだろうがdoubleだろうが16バイト使う
ってこと?
844デフォルトの名無しさん:2006/06/26(月) 21:11:00
845デフォルトの名無しさん:2006/06/26(月) 21:20:26
>>844
宿題スレ池
★★ Java の宿題ここで答えます Part 56 ★★
http://pc8.2ch.net/test/read.cgi/tech/1145447187/
846デフォルトの名無しさん:2006/06/26(月) 21:23:43
>>843
C言語でも同じだよ。必ずバイト境界に切り上げられる。
ただしC言語の場合はバイト境界はCPUのバス幅と等価。
847デフォルトの名無しさん:2006/06/26(月) 21:51:25
>>846
じゃあどんな型を使おうが、メモリを使用する量は同じってことでおk?
あと配列の場合はどういう風に使用してるの?
848デフォルトの名無しさん:2006/06/26(月) 22:06:59
量で言えばそうなる。だからと言って意識するのはモグリ。
配列は知らないな、lengthが唯一のフィールドであるクラスとかそんなんじゃない(適当
849デフォルトの名無しさん:2006/06/26(月) 22:10:34
つかさ、大量に要素ってどれぐらいなの?
850デフォルトの名無しさん:2006/06/26(月) 22:20:47
>>849
日本語でOK
851デフォルトの名無しさん:2006/06/26(月) 22:24:23
>>850
>>833のままの表現なんだが、何か問題ある?
852デフォルトの名無しさん:2006/06/26(月) 22:26:40
>>851
アンカーつけろやという問題。
853デフォルトの名無しさん:2006/06/26(月) 22:30:52
>>852
日本語とアンカーつけは違問題だと思うが。
854デフォルトの名無しさん:2006/06/26(月) 22:32:44
アンカーが無ければ成立しない駄レスじゃん
855デフォルトの名無しさん:2006/06/26(月) 22:33:41
>>854
てか、ログ読んでたら大体分かると思うんだが?
856デフォルトの名無しさん:2006/06/26(月) 22:33:48
風呂でゆっくり考えてたらわかってきた気がする。
ようするに、intの32bitとかdoubleの64bitとかは値の範囲であって、
メモリにはどんな型でも16byte使って記憶されるわけね。
そんで意識するのはモグリ、と。

>>849
現在100万個。できれば1億ぐらい使いたいから困ってる。
857デフォルトの名無しさん:2006/06/26(月) 22:37:01
>>856
をいをぃ、って感じ。
858デフォルトの名無しさん:2006/06/26(月) 22:37:52
8の倍数な、16ってのはObjectのインスタンス+単一のプリミティブ型の場合。
intを3つ持つクラスのインスタンスなら24バイト。
859デフォルトの名無しさん:2006/06/26(月) 22:39:05
>>856
1億って・・・Σ(゚д゚)オイオイ

ファイルに記述して、1万個ずつくらい取り出して逐次処理とかできんの?
860デフォルトの名無しさん:2006/06/26(月) 22:39:41
booleanの配列を持ちたいときはBitSetを使いなさい
861デフォルトの名無しさん:2006/06/26(月) 22:39:46
お願いがあります!

JCAPTCHAという画像認証(Gmailとかの登録時に出てくるギザギザした
ランダムな文字列のあれですね)のクラスライブラリがあるんですが、
ソースコードが困難(汚い?)すぎて全く読めません。

▽JCAPTCHA
http://sourceforge.net/projects/jcaptcha/

この程度のコードは読めないとだめなのでしょうか?
皆さんの意見を聞かせてください。

▽JCAPTCHAを使用するサンプルコード
http://www.in-vitro.jp/blog/index.cgi/Library/20050827_01.html


862デフォルトの名無しさん:2006/06/26(月) 22:42:45
>>837
java.util.BitSetを使うって手も。
863デフォルトの名無しさん:2006/06/26(月) 22:43:21
>>857 >>859
いや、課題でさ、なるべく早いものを作らなきゃけなくて、
ある程度速くするだけだったら要素は1000ぐらいで足りるんだけど、
自分で考えた最速を作るんだったらそのぐらい必要になったわけでございます。
1000万で十分なんだけど、そこからさらに発展させたいな・・・とか考えてしまいまして…。

>>858
おお、型によってまとめられるわけですか。

>>860
調べてみる
864デフォルトの名無しさん:2006/06/26(月) 22:45:35
>>863
バイト境界で切り上げと言ってるだろ。
865デフォルトの名無しさん:2006/06/26(月) 22:48:29
>>864
ああ、たぶん理解した。
866デフォルトの名無しさん:2006/06/26(月) 22:49:13
>>863
最初に言えや。それなりのレスできる。あと大量にとかいう表現はやめれ。
867デフォルトの名無しさん:2006/06/26(月) 22:49:27
BitSetって最高だよな、色んな応用が出来て知る人ぞ知る感があって漢クラスだよ。
868デフォルトの名無しさん:2006/06/26(月) 22:52:11
素数な予感。アリストテレスは古いとかそんな奴だろ
869デフォルトの名無しさん:2006/06/26(月) 22:52:49
>>866
悪かった。今後注意する。
870デフォルトの名無しさん:2006/06/26(月) 23:00:03
>>868
このエスパーが。
求めたい数の√までの素数の配列作って順番に割ってく方法も考えたんだけど、
1億までの自然数の配列作って、篩を使って合成数を消すパターンが最速かな、と。
どんな数いれても一瞬で判断できるから。
871デフォルトの名無しさん:2006/06/26(月) 23:09:42
何この句読点祭り
872デフォルトの名無しさん:2006/06/26(月) 23:10:38
>>870
残念ながら計算量的には順番に割っていくのも合成数を消すのもまったく同等です。
結果をメモリに残しておくかどうかの違いしかない。
一度計算した結果をファイルにでも残しておくなら別だがな。
873デフォルトの名無しさん:2006/06/26(月) 23:19:30
http://www.ipa.go.jp/security/fy14/crypto/prime_num/invest.pdf

素数の判定何て数学者でも無いのに意味ないっしょ
874デフォルトの名無しさん:2006/06/26(月) 23:20:10
>>871
書く→修正を繰り返してたらこうなった。
読み返してなかった。申し訳ない

>>872
そのあと10万〜1000万の素数を何回も引っ張り出してくるプログラムだから、
そのたびにその数が素数かどうか判定するのに時間かかるのが問題。
だから一瞬で判定できるように全部の配列を作っちゃおうかと考えてたんだけど。
詳しく説明してなくてスマン。
875デフォルトの名無しさん:2006/06/26(月) 23:25:17
それなら最初からどっかに落ちてる素数のファイルでも用意しておけばいいだろ
876デフォルトの名無しさん:2006/06/26(月) 23:28:54
>>875
それはさすがに反則なんじゃないかと。
まあ全部の配列持つのも反則なような気がしないでもないけど。
877デフォルトの名無しさん:2006/06/26(月) 23:36:23
君のやろうとしてる事は自分のプログラムでわざわざ円周率を求めて
それを使用してるようなものじゃん
878872:2006/06/26(月) 23:38:49
>>874,876
わからないやつだな。毎回計算してメモリに持つんだったら>>874

>そのあと10万〜1000万の素数を何回も引っ張り出してくるプログラムだから、
>そのたびにその数が素数かどうか判定するのに時間かかるのが問題。

も計算量的には無視できるっていってるんだよ。ホントに速くしたいんだったら
一度計算しておいたものを読み込むしかない。
879デフォルトの名無しさん:2006/06/26(月) 23:40:50
>>877
そう考えると使っていいのかな。

いい加減居つき過ぎなような気がしてきたからそろそろ去ります。
迷惑かけました。
880デフォルトの名無しさん:2006/06/26(月) 23:41:19
一度計算しておいたものの計算はどうすんだ
881デフォルトの名無しさん:2006/06/26(月) 23:42:33
ネットから引っ張ってくんじゃね?
882デフォルトの名無しさん:2006/06/26(月) 23:44:28
なるほど、つまりは料理番組の表だけの時間ってわけだな。
素材の仕込み時間がどれだけかかるかは関係ないって話だ。
883デフォルトの名無しさん:2006/06/26(月) 23:45:48
>>878
>毎回計算してメモリに持つ
最初に全部計算してメモリに持たせて、ある値nが素数かどうか知りたいときには
配列の要素のn個目を参照して素数かどうか判断するってことじゃない?
884862:2006/06/26(月) 23:47:18
>>874
フェルマーテストとかで「確率的素数判定」を行ったほうが計算量が少なくなるからお勧め。
885デフォルトの名無しさん:2006/06/26(月) 23:54:33
質問です。
JComboBoxでsetSelectedIndexでコンボボックスの値を変えると
itemStateChangedも一緒に呼び出されてしまうのですが
itemStateChangedを呼び出さず、コンボボックスの選択値を変える方法はありませんか??
886デフォルトの名無しさん:2006/06/27(火) 02:17:39
class Hello{
public static void main(String[] args) {
System.out.println("Hello World!");
}
}

これを別のクラスから呼び出してHello World!を表示させるにはどう書けばよいのでしょうか?
解説サイトまわっても呼び出し方を見つけられず困ってます
class Yobidashi{
・・・
}
887デフォルトの名無しさん:2006/06/27(火) 02:46:08
>>886
class Hello{
public static void main(String[] args){
System.out.println("HELLO");
}
}

class Yobidashi{
public static void main(String[] args){

Hello hello = new Hello();

hello.main(args);
}
}

こんなやり方してる奴見たこと無いな
888デフォルトの名無しさん:2006/06/27(火) 02:58:46
ところで、素数でアリストテレスって?
889デフォルトの名無しさん:2006/06/27(火) 02:59:34
>>887
Hello.main(null); でいいじゃん。new Hello(); する必要ある?
890デフォルトの名無しさん:2006/06/27(火) 12:30:57
2006年1月10日
2006年3月5日
2006年12月3日
2006年12月23日

20060110
20060305
20061203
20061223

のようにしたいのですが
replaceAll置き換えで
年[0-9]年にマッチしたら年を0に変える
のようにしたいのですが
891デフォルトの名無しさん:2006/06/27(火) 12:43:29
>>890
日本語でおk
892デフォルトの名無しさん:2006/06/27(火) 12:44:20
>>890
思いの丈を書くのは自分のBLOGで。後半は意味不明だが。
893890:2006/06/27(火) 12:47:17
囲まれた部分を置き換えみたいなことできませんが?
894デフォルトの名無しさん:2006/06/27(火) 12:47:34
>>890
日本語がよくわ
つーかjava.util.Date、java.text.SimpleDateFormatあたりを見てみろ
895デフォルトの名無しさん:2006/06/27(火) 13:27:25
>>890
こんな感じか?

public static void main(String[] args) {
String text = "2006年1月10日\n2006年3月5日\n2006年12月3日\n2006年12月23日";
System.out.println(replace(text));
}

static final Pattern PATTERN = Pattern.compile("([0-9]{4})年([0-9])?([0-9])月([0-9])?([0-9])日");
static String replace(String text) {
boolean replace = false;
Matcher m = PATTERN.matcher(text);
StringBuffer buf = new StringBuffer();
while (m.find()) {
replace = true;
m.appendReplacement(buf, m.group(1));
buf.append(m.group(2) == null ? "0" : m.group(2));
buf.append(m.group(3));
buf.append(m.group(4) == null ? "0" : m.group(4));
buf.append(m.group(5));
}
m.appendTail(buf);
return replace ? buf.toString() : text;
}
896デフォルトの名無しさん:2006/06/27(火) 15:53:06
0を追加後、2桁だけ残す
static String replace(String text) {
return text.replaceAll("年(\\d+)月(\\d+)日","-0$1--0$2-").replaceAll("-(?:(0\\d)|0(\\d{2}))-","$1$2");
}
もっと上手いやり方ないかな
897デフォルトの名無しさん:2006/06/27(火) 16:53:54
何をしたいのかわからないのを推測するのは無駄
898デフォルトの名無しさん:2006/06/27(火) 19:00:54
ブラウザからJavaを起動する手順などが書かれたHPってありますか?(出来れば初心者向け希望)

http://kgs.kiseido.com/ja_JP/applet.jsp ← こういうの作りたいんですけど
899デフォルトの名無しさん:2006/06/27(火) 19:41:48
>>898
AppletならHTMLのソースに<APPLET code="クラス名.class" width="幅" height="高さ"></APPLET>ていれたらいいよ。
900デフォルトの名無しさん:2006/06/27(火) 20:06:15
public class aaaa{
public static void main(String[]args)
901デフォルトの名無しさん:2006/06/27(火) 20:08:56
public class aaaa{
public static void main(String[]args)
String a=abc;
int h=
}
}



http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/String.html#length()
このメソッドの使い方がよくわからないのですが上のソースの場合どう改訂したらhに3が代入されるのですか?
902デフォルトの名無しさん:2006/06/27(火) 20:14:02
>>901
int h = a.length();
903デフォルトの名無しさん:2006/06/27(火) 20:14:23
あっ!()入れ忘れてました!w
904デフォルトの名無しさん:2006/06/27(火) 22:48:27
char[] cc={a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z};

これでcc[0]=a,cc[1]=bになるんじゃないんですか?どこが違うでしょうか
905デフォルトの名無しさん:2006/06/27(火) 23:33:51
>>904
イミフ
906デフォルトの名無しさん:2006/06/27(火) 23:50:51
1 import java.util.regex.*;
2 
3 class Sample{
4   public static void main(String args[]){
5     Pattern pattern = Pattern.compile("/");
6     String[] strs = pattern.split(args[0]);
7     System.out.println(strs[0]+"年"+strs[1]+"月"+strs[2]+"日");
8   }
9 }


これはYYYY/MM/DDとコマンドライン引数で入力すると、
YYYY年MM月DD日の形式で表示されるプログラムです。

5行目が意味わかりません。
Patternとconpileメソッドの使い方がさっぱり意味不明です。
API読んでも理解不能です。これホントに日本語か?って感じです。

説明お願いします。もしくはわかりやすいサイト教えてください。
907デフォルトの名無しさん:2006/06/27(火) 23:52:29
日本語だから理解できないのは日本人じゃないからじゃないかな?
908デフォルトの名無しさん:2006/06/27(火) 23:57:01
Pattern#compile(String)は引数で与えられた正規表現(?)を使うPatternを返すメソッドって感じだったかな?

だからsprit()でYYYY/MM/DDをYYYY, MM, DDに分割してるってことだと思う。
909デフォルトの名無しさん:2006/06/28(水) 00:16:45
正規表現(?)ってなんですか。。。
910デフォルトの名無しさん:2006/06/28(水) 00:23:17
文字のパターンみたいなもの。
911デフォルトの名無しさん:2006/06/28(水) 00:23:27
ぐぐれ
912904:2006/06/28(水) 00:28:06
String str="abcdefghijklmnopqrstuvwxyz";
char[] cc=str.toCharArray();
これでchar[0]がa、char[1]がbになるじゃない
でもtoCharArray()を使わないで
char[] cc={a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z};
とすればchar[0]にa、char[1]にbが入ると思ってるんだけど、どっかおかしい
int[] a={4,3,4,52,5,};
とするとa[0]=4,a[1]=3となるのをchar型で応用してみたんだけど、エラー出るのです
913デフォルトの名無しさん:2006/06/28(水) 00:30:55
辞書代わりに
JavadocをHTMLで見たいんですが
どこに置いてありますか?
Sunのサイトって入り組んでてわかりにくいです・・・
914デフォルトの名無しさん:2006/06/28(水) 00:36:27
'a', 'b', 'c'
915デフォルトの名無しさん:2006/06/28(水) 00:38:29
916デフォルトの名無しさん:2006/06/28(水) 00:45:48
>>915
早速ありがとうございます。
ローカルで見たいんですけど
これってダウンロードできるとこありますか?
917デフォルトの名無しさん:2006/06/28(水) 00:48:03
とおもったら、ここにあるようですね。
ありがとうございました。
http://java.sun.com/j2se/1.5.0/ja/install-docs.html
918デフォルトの名無しさん:2006/06/28(水) 00:49:40
919デフォルトの名無しさん:2006/06/28(水) 00:59:21
実行できるjarファイルってどうやって作るんですか?
ダブルクリックしたら作成したプログラムが動く奴。
920デフォルトの名無しさん:2006/06/28(水) 03:02:03
921デフォルトの名無しさん:2006/06/28(水) 08:56:53
>>920 サンキュ
922デフォルトの名無しさん:2006/06/28(水) 14:14:06
nullが代入されてる状態でもsynchronizedの対象にできるの?

private String abc = null;
・・・
synchronized(abc) {
}
・・・

みたいな。
923デフォルトの名無しさん:2006/06/28(水) 14:15:28
そりゃぬるぽだろ
924デフォルトの名無しさん:2006/06/28(水) 14:21:36
>>923
ありがと
925デフォルトの名無しさん:2006/06/28(水) 15:37:23
>>922
http://www.y-adagio.com/public/standards/tr_javalang2/statements.doc.html#255769
> 14.18 synchronized 文
> synchronized文は,最初に Expression を評価することによって実行される。
> Expression の評価が,何らかの理由によって中途完了すれば,
> synchronized 文は同じ理由によって中途完了する。
> そうでないときには,Expression の値が null ならば,NullPointerException が投げられる。
926デフォルトの名無しさん:2006/06/28(水) 20:45:19
HH:MM:SSで与えられる時間を整数倍するにはどうすればいいのでしょうか?
927デフォルトの名無しさん:2006/06/28(水) 20:56:55
文字列なんだったらHH、MM、SSの各2文字を抽出して整数に変換
それでもって HH*3600 + MM*60 + SS で秒に変換
あとはお好きなように。

まあSDK見ればもっと手軽な方法見つかると思うが。
928デフォルトの名無しさん:2006/06/28(水) 22:03:09
JAVAランタイムダウンロードできないんですが、どうなっているんでしょうか?
929デフォルトの名無しさん:2006/06/28(水) 22:08:31
いま試してみたけどダウンロードできるよ。なんか遅いけど。
930デフォルトの名無しさん:2006/06/28(水) 22:14:33
http://www.java.com/ja/
ですか?できませんが>929
931デフォルトの名無しさん:2006/06/28(水) 23:12:36
932デフォルトの名無しさん:2006/06/29(木) 01:04:03
StringBufferは何故equalsを実装していないのですか?
933デフォルトの名無しさん:2006/06/29(木) 02:11:27
>>932
StringBuffer は mutable だから比較の際には syncronized する必要があるけど、
それだと 2つの StringBuffer を syncronized しないといけなくなるから、
ライブラリ側でやるとデッドロックの回避とか考えると頭が痛い、
やるならライブラリユーザ側でやってくれって事じゃないかな?
と思ったけど、それだと StringBuilder で equals が実装されてないのが謎になっちゃうな。

他には、equals 実装するなら hashCode() も実装しなきゃいかんけど、
StringBuffer の内容変更するたびに hashCode 再計算するとパフォーマンス落ちるとか?

http://bugs.sun.com/bugdatabase/view_bug.do;?bug_id=4049974
とか見ると、馬鹿がStringBuffer を Map のキーにするのを防ぐ(?)のも理由のひとつだとか。
934デフォルトの名無しさん:2006/06/29(木) 02:17:50
StringBufferは生成物としてtoStringの結果を取り出す「作業領域(buffer)」
と考えると、中にある文字列の同値性でわざわざ再定義する必要はなかろ、
てことかもね。
935デフォルトの名無しさん:2006/06/29(木) 04:54:23
コレクションに入れた後に、hashCode 変えられたら困るだろう。
ゆえに、immutable しか equals は定義してはいけない
936デフォルトの名無しさん:2006/06/29(木) 05:20:29
だな
937デフォルトの名無しさん:2006/06/29(木) 05:48:34
>>935,936
思いっきり mutable な ArrayList とかが equals を再定義している件についてどう思われますか?
938デフォルトの名無しさん:2006/06/29(木) 05:53:25
ますますワケワカメだな
939デフォルトの名無しさん:2006/06/29(木) 06:48:05
>>937
動きゃいいんだよ。そもそもJava自体が慎重に設計されてるわけではないし。
940デフォルトの名無しさん:2006/06/29(木) 08:42:30
>>927
やってみます。ありがとうございました。
941デフォルトの名無しさん:2006/06/29(木) 16:32:38
StringBuffer[] sbArray = new StringBuffer[80];
String data = "abcdefghijklmnopqrstuvwxyz";
int i = 0;
int j = 0;
for(i =0 ;i<data.length();i++){
if(data.charAt(i) ==','){
j++;
}sbArray[j].append(data.charAt(i));
    }
とするとどうしてsbArrayがnullになってしまうのですか?
942デフォルトの名無しさん:2006/06/29(木) 16:38:31
sbArrayの各配列は初期化されてないからNullのままだろ
943941:2006/06/29(木) 16:40:37
即レスありがとうございます。
944デフォルトの名無しさん:2006/06/29(木) 16:48:24
白黒の画像から1ピクセルずつ濃淡の度合いを取り出すのはどうしたらいいですか?
945デフォルトの名無しさん:2006/06/29(木) 18:34:28
>>944
まず、画像って何?ファイル?それとも自分でDrawした物?
946デフォルトの名無しさん:2006/06/29(木) 18:53:30
URLConnectionでHTMLを取得したのですが
下のようにJavaScriptで呼ばれた部分のHTMLを取得する
には、どうしたらよいでしょうか?

<script type="text/javascript">
document.write(getPageHTML());
</script>
947デフォルトの名無しさん:2006/06/29(木) 19:34:48
>>946
>>1を読もう。
948デフォルトの名無しさん:2006/06/29(木) 22:27:42
exeファイル開くにはどうすればいいですか?
949デフォルトの名無しさん:2006/06/29(木) 22:43:57
バイナリエディタに突っ込め
950948:2006/06/29(木) 22:55:34
言い方が悪かったです。
Sample.javaをコンパイルして実行したら
cmd.exeが実行されるようにしたいのです。
Sample.javaにどう記述したらいいんですか?
951デフォルトの名無しさん:2006/06/29(木) 23:03:21
Runtime.exec()
952デフォルトの名無しさん:2006/06/29(木) 23:03:43
>>947
JavaプログラムでHTMLを取得する場合
WebのJavaScriptの部分が取得できないのですが、
それもJavaScriptの質問に抵触するのでしょうか?すいません
953デフォルトの名無しさん:2006/06/29(木) 23:05:16
>WebのJavaScriptの部分が取得できないのですが

んなこたーない
954デフォルトの名無しさん:2006/06/30(金) 00:18:43
中味が.jsに定義してありました・・・なんとかなりそうです。
お世話をかけました
955デフォルトの名無しさん:2006/06/30(金) 01:12:30
JAVAで実行ファイル作成するにはどうすればいいんですか?
956デフォルトの名無しさん:2006/06/30(金) 01:19:11
957デフォルトの名無しさん:2006/06/30(金) 01:36:14
実行可能jarで起動しているjavaアプリから、
同時に起動しているアプレットのインスタンス、
あるいは同時に起動しているほかのjavaアプリのインスタンス
を参照することはできますでしょうか?
958デフォルトの名無しさん:2006/06/30(金) 01:52:13
こんばんは。初歩的な質問ですいません。
DoJaでTEXTBOXに数値以外が入力されたらエラー表示するにはどうすればいいんでしょうか
959デフォルトの名無しさん:2006/06/30(金) 02:20:55
どうすればって数値以外が入力されたか調べるしかないだろ。
960デフォルトの名無しさん:2006/06/30(金) 02:24:54
書き方が変でしたね。
その方法が知りたいのです。
961デフォルトの名無しさん:2006/06/30(金) 02:34:30
TreeMapで、値から逆にキーを取得する方法ってありませんか?
962デフォルトの名無しさん:2006/06/30(金) 03:23:04
>>961
Iteratorで各値をチェック→キーを取得
963デフォルトの名無しさん:2006/06/30(金) 04:48:11
static { }
みたいなブロックはどういう意味なんでしょうか?
964デフォルトの名無しさん:2006/06/30(金) 05:25:34
ttp://www.thinkit.co.jp/free/event/javaone/2006/12.html
この記事に
「サプリケーションサーバー」
という単語があるのですがどういうサーバーですか?
まさかアプリケーションサーバーを間違っているのですか?
965デフォルトの名無しさん:2006/06/30(金) 06:49:28
>>963
static初期化子
>>964
筆者が独自にそういうものを規定していなければ、単に書き間違い。
966デフォルトの名無しさん:2006/06/30(金) 10:36:06
次のプログラムを教えて下さい!

1 5個の整数をキーボードから入力し、それらの合計と平均を求めるプログラム。
2 2以上の整数Nを入力し、0からNの偶数をすべて出力するプログラム
3キーボードからx(x >= 1)の値を入力し、f(x) f(xー1)*2+1 f(0)=1の値を出力するプログラム
4 整数Nを入力し、それが素数かどうか判定するプログラム
5 5個の整数を入力し、最小、最大を求めるプログラム
6 整数Nを入力し、 約数をすべて求めるプログラム
967デフォルトの名無しさん:2006/06/30(金) 10:47:10
>>966
★★ Java の宿題ここで答えます Part 56 ★★
http://pc8.2ch.net/test/read.cgi/tech/1145447187/
968デフォルトの名無しさん:2006/06/30(金) 10:51:03
>>957

Mustangのjconsoleはアプリg側で特に何もしなくても監視できる
ようなので、JMXでできるのかもしれない。
969デフォルトの名無しさん:2006/06/30(金) 11:55:13
オブジェクト指向の
クラス、フィールド、メソッド、メンバ、コンストラクタ、継承、オーバーロード
パッケージ、インポート、カプセル化、インターフェース、配列、例外
などの最も基本的なこと(一番簡単なプログラム)だけ勉強するのに適した参考書とかありますか?
あとサーブレット、JSPの基本のこととか。(Tomcatを使った基本的なこととか。)
今ははじめてのJSP&サーブレットプログラミング改訂版っていうのを借りて読んでるんですが・・。

メソッドの基本だったら↓こんな感じで書いてあるものが理想です。よろしくお願いします。
「b.java」

public class b{

//メソッド
static void meso(){
System.out.println("メソッド(=C言語では関数)内部だよ");
}

public static void main(String args[]){
System.out.println("これからワープ");
meso();
System.out.println("メソッド終わったよ");
}
}
970デフォルトの名無しさん:2006/06/30(金) 12:09:38
そんな小学生の教科書見たいな本は無い
971デフォルトの名無しさん:2006/06/30(金) 12:11:43
?を含む文字列の?の全てを他の文字に置き換えたいときには、
どうしたらいいのでしょうか。
正規表現のためreplaceAllメソッドを使えば例外が投げられてしまいますが。
972デフォルトの名無しさん:2006/06/30(金) 12:12:42
>>970
わりと簡単めにわかりやすく書いてあるものならありますか?
973デフォルトの名無しさん:2006/06/30(金) 12:18:25
>>971
\\
974デフォルトの名無しさん:2006/06/30(金) 12:36:06
>>972
取りあえず本屋池
お前のわかりやすいが分るエスパーなど居ない
975968:2006/06/30(金) 12:48:02
jconsole.jarをバラして逆コンパイルしてみた。
sun.tools.jconsole.LocalVirtualMachineで、
MonitoredHost.activeVms()ってのを使ってるようだが、
Sun製クラスなのね。標準APIにはなさそう。
976デフォルトの名無しさん:2006/06/30(金) 13:37:06
Javaにデフォルト引数がないのにはどんな理由があるのですか?
977デフォルトの名無しさん:2006/06/30(金) 14:19:00
>>945
カメラからBufferedImageにとりこんだ白黒画像です。
978デフォルトの名無しさん:2006/06/30(金) 14:27:02
>>976
理由はしらん。
構文解析の手間が増えるのと、とりあえずオーバーロードで間に合うから
ってあたりじゃね?
979デフォルトの名無しさん:2006/06/30(金) 15:49:15
>>977
945ではないが濃淡の度合いって何ですか?
ARGBの値とは関係なし?
無知でスマソ。
980デフォルトの名無しさん:2006/06/30(金) 16:52:10
白黒画像=2値ビットマップ画像
白黒写真=グレースケイル画像

と解釈してしまうのは漏れだけか。
981デフォルトの名無しさん:2006/06/30(金) 18:41:29
コンソールから入力された改行コードを検出するにはどうしたらいいですか?
なぜ
keyin = br.readLine();
if(keyin =="\n")

とかではだめなんですか?
982デフォルトの名無しさん:2006/06/30(金) 18:44:22
>>981
改行を検出して改行までの文字(改行は含まない)をStringで返すのがreadLine()ですが。
983981:2006/06/30(金) 18:54:00
>>982
ありがとうございます。
984デフォルトの名無しさん:2006/06/30(金) 19:43:07
javaのクラスというのを最近習ったのですが、説明聞いてもいまいちわけわかりません
理解しやすくイメージを僕に植え付けてもらえませんか?
985デフォルトの名無しさん:2006/06/30(金) 19:47:11
やだ
986デフォルトの名無しさん:2006/06/30(金) 19:57:24
じゃ、手抜きで

インスタンス=鯛焼き
クラス=鯛焼きの型
987デフォルトの名無しさん:2006/06/30(金) 20:00:34
>>986
何か違う気がする。
少なくとも、意図があまり伝わらない。
988デフォルトの名無しさん:2006/06/30(金) 20:03:09
クラス:人間
 メソッド:食べる、考える、・・・
 フィールド:目、口、年齢、・・・

クラス:労働者 人間を継承
 メソッド:働く、・・・
 フィールド:会社、・・・
989デフォルトの名無しさん:2006/06/30(金) 20:04:10
クラス:NBAのバスケットプレイヤーの写真
インスタンス:イノタケのバスケット漫画
990デフォルトの名無しさん:2006/06/30(金) 20:14:07
>>986はどっちかというとtemplate methodだなw
991デフォルトの名無しさん:2006/06/30(金) 21:36:39
>>977
BufferedImage#getRGB()
ってのではだめ?白黒ならRGB同じ値のはずだから & 255 して1バイト目取り出したら濃度が256階調で得られるけど。
992デフォルトの名無しさん:2006/06/30(金) 21:51:10
RGBからHSBに変換して(Colorクラスでできる)、明度を取った方がいいかも。
993デフォルトの名無しさん:2006/06/30(金) 21:58:20
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2218.zip

ほんとに、ごくごく簡単なクライアント、サーバプログラムを作ろうとしてるんですが、
サーバからのメッセージがクライアントで受け取れてないようです(出力でnullが出る;;)
どこがまずいんでしょうか…

//もしかして、ネットワークプログラミングスレに行くべきな質問でしたらすみません
994デフォルトの名無しさん:2006/06/30(金) 22:03:00
>>993
Serverクラスの方
writer.println("test"); の後に
writer.flush();
を入れてみて。
995デフォルトの名無しさん:2006/06/30(金) 22:13:51
"" をプリントするにはどうしたら良いのでしょうか。
996デフォルトの名無しさん:2006/06/30(金) 22:15:41
エスケープシーケンス
997デフォルトの名無しさん:2006/06/30(金) 23:28:34
WinXpでこんなソフトを考えてますが、可能でしょうか?

LPT1を監視して、他のアプリケーションが印刷ジョブを流したら、
そのデータを読み取りたいです。印刷は行います。

998デフォルトの名無しさん:2006/06/30(金) 23:37:02
次スレないんすか。
999デフォルトの名無しさん:2006/06/30(金) 23:50:21
ほい

【初心者】Java質問・相談スレッド87【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1151678944/
1000デフォルトの名無しさん:2006/06/30(金) 23:54:47
1000ゲットしたら夢のような就職ができますように
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。