[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 08/06 13:20 / Filesize : 292 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 15:21:29 ]
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/

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

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

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

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

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

次スレは>>980あたりで。

522 名前:497 mailto:sage [2007/06/14(木) 13:30:59 ]
>>498,499
レスありがとうございます。
他人が作った(ソースの無い)ものなので、RMIの実装は難しいです。

ということはネイティブなプログラムを書く事になりますが、
C言語には暗いので、なにか代替の方法があれば教えてください。
OSはWindows XPです。

523 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 15:57:08 ]
>>522
別にCでなくても得意の言語を使っても構わんよ
WindowsならDLLを作れればいいんだから

524 名前:516 [2007/06/14(木) 16:44:00 ]
>>521
了解しました
マンセルカラーを調べてみましたが青が青に見えない色が使われているとか問題があるみたいです
確かに単純ではないのかもしれません
色の足し算が出来るなら引き算も出来るのかと思ったんですがそうではないのかも
一応聞いてみます。ありがとうございました


525 名前:デフォルトの名無しさん [2007/06/14(木) 18:12:11 ]
卒研でタイピングゲームを作成することになったんですが、
GUIなどについてのオススメの参考書などありましたら教えてください。
サーブレットでの作成を考えています。よろしくお願いします。

526 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 18:29:47 ]
>>525
ゴメン。どうしたいのか分からないw

GUIって言ってるけどAjax?だったら、スレ違い。

GUIとサーブレットという単語に関連がなくてサーブレットを
使ってサーバで記録を付けるという話ならまぁ分からんでも無いが・・・
・・・卒業に一抹の不安がありますwww

GUIは、JDKについてくるSwingSetを見たら基本的なコンポネントが分かるかな。
それに、イベントモデルとかをWebのページで勉強すればOK。
キーワードは、"AWT イベントモデル" あたりで。

527 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 19:30:46 ]
>>526
ありがとうございます。
いまいちjava自体も分かってないんでこれから勉強します。

528 名前:デフォルトの名無しさん [2007/06/15(金) 15:13:04 ]
Java プログラムで jar ファイルを作成することはできるでしょうか?
読み取りなら JarFile クラスでできそうですが。。。

529 名前:528 mailto:sage [2007/06/15(金) 15:16:29 ]
JarOutputStream ですね。

530 名前:デフォルトの名無しさん [2007/06/15(金) 16:59:21 ]
PNG画像データが InputStream に入っているときに、
BufferedImage を構築するには、どうしたらよいでしょうか?



531 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 17:07:26 ]
>>530
javax.imageio.ImageIO#read(InputStream)

532 名前:497 mailto:sage [2007/06/15(金) 17:31:43 ]
>>523
そうですか〜
別の言語のスレで質問してみます。
ありがとうございました。

533 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 19:23:50 ]
C言語でいう、
int v[10];
int* v2 = &int[5];
を、Javaでやりたいんですが、どうやったらいいですか?
int[] v = new int[10];
int[] v2 = &int[5]; <---ここください。



534 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 19:24:32 ]
↑めちゃ間違い。訂正すまん。
int v[10];
int* v2 = &v[5];
を、Javaでやりたいんですが、どうやったらいいですか?
int[] v = new int[10];
int[] v2 = &v[5]; <---ここください。


535 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 20:05:48 ]
>>534
無理

536 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 20:23:52 ]
そういう使い方するなら Integer[] でいいだろ

537 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 22:29:20 ]
>>536
それ言うなら Integer[] じゃなくて

List<Integer> と List#sublist じゃなかろーか

538 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 23:31:58 ]
以下で定義されるブロック構造を導入する事で何が可能になり、それはプログラム開発において何に寄与するか?
A block is a sequence of statements, local class declarations and local variable declaration statements within braces.

Statement :: Block | .....
Block ::= { BlockStatementsopt }
BlockStatements ::= BlockStatement | BlockStatements BlockStatement
BlockStatement ::= LocalVariableDeclarationStatement | ClassDeclaration | Statement

539 名前:デフォルトの名無しさん [2007/06/16(土) 00:02:17 ]
ぬるぽ ぬるぽ ぬるぽ ・・・

540 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 00:36:24 ]
>>539
ガッ ガッ ガッ ・・・



541 名前:534 mailto:sage [2007/06/16(土) 01:33:19 ]
>>535-537
どもです。
実際には、Vector3[] v でつかっているですが、要素ごとにVector3をnewする
のが痛いので、値型であるfloatの配列で new float[length*3]で領域を確保して、
たとえば v[index*3].add( v[index2*3] )とかやりたいんです。
listはきつです。ランダムアクセスするんで。


542 名前:デフォルトの名無しさん [2007/06/16(土) 01:36:18 ]
JavaMailについて教えてください。
携帯のメールに text/htmlタイプで送信したのですが、
受信側ではtext/plainとなってしまい、リンクにアンカーが付かなくて困ってます。
しかし、本文の最後にYahooから勝手に付いてくるフッターのようなものがあるのですが
それにはアンカーが付いてます。 text/plainでもアンカーを付けることができるのでしょうか?
アンカーが付けたいだけなので、text/plainでもよいのならそうしたいのですが・・

543 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 01:39:11 ]
>>538
BNF表記で言語の構造を定義することで何が可能になり何に寄与するか?
って、逆に言うと、言語の構造を定義しないでどうやってプログラムできますか?


544 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 02:32:29 ]
>>543
じゃなくて、>>538 の表記を説明しろってことでは?

545 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 02:57:09 ]
>>541
javaのリストはただの動的配列だぞ。歴史的にはベクタの非同期版。
ランダムアクセスマーカーがついてるから一定時間以内のランダムアクセスを保証する。
マーカー付きでシーケンシャル・ランダム両アクセスが可能な場合
一般的にはアルゴリズムが切り変わってるから
541が想像してるのとは別物。
ArrayList使え、つーかjavadoc読め。

546 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 07:54:31 ]
IBMのPCにバンドルされているRuntimeと
SunのRuntimeって何か違うの?


547 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 08:15:19 ]
ランダムならHashedArrayMap

548 名前:542 [2007/06/16(土) 10:57:05 ]
自己解決しました^^;
ローカルアドレス xxx.xxx.xxx.xxxx:8080/ だと携帯のメーラーがアンカー付けてくれなかったみたいです。
http://ドメイン/ にしたらアンカー付けてくれました。

549 名前:548 mailto:sage [2007/06/16(土) 10:58:02 ]
すみません、投稿にアンカー付いちゃったm(_ _)m

550 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 14:32:28 ]
mail2.nara-edu.ac.jp/~asait/java/tomcat/tomcat.htm#section32
このページを参考にTOMCAT使おうとしてるんだけど
jspは動かせるけどclassから動かない・・・。
invokerのコメントアウトも削ってるのに404になる。
誰かエロい人教えてください。



551 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 14:49:00 ]
サーブレット名の前に/servlet/をつけてないんじゃないの

552 名前:550 mailto:sage [2007/06/16(土) 14:53:06 ]
サーブレット名って例のHelloWorldなら
localhost:8080/mypages/servlet/HelloWorldじゃダメってことですか?
教えてくんでごめんなさい。


553 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 15:01:03 ]
WEB-INF/classesにHelloWorld.classはあるのか?

554 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 15:04:37 ]
web.xml の設定がまずいんだろう。私もはまったことがある。
URL のマッピングがうまくいっていないんだろう。

555 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 15:47:44 ]
import java.util.Scanner;

と書くと、「シンボルが解決できません」と出てエラーになってしまいます。
J2SEのバージョンは1.5なので、Scnanerが実装されていないはずはないのですが・・・。
何故だか分かる方いますか?


556 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 16:16:39 ]
Scnaner→Scanner

557 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 16:29:12 ]
>>556
すいません、そこはただのタイプミスです(^-^;

558 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:02:45 ]
>>555
・javacのパスが1.5を指してない
・eclipseのビルドが1.5に設定されてない

559 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:34:32 ]
>>558
その通りでした・・・1.4.12のままでした。
助かりました、ありがとうございます。

560 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 20:25:41 ]
)553
置いてます。
>554
マッピングですか…。
xmlはよくわからないんですけど調べてみます。




561 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 21:52:57 ]
jarのアプリから同階層のファイルのパスが取得できずに困っています。

apl
│ readme.txt

└─work.jar
test.class
このようなJarアプリの構成の場合、readme.txtはwork.jarと同じ階層なので
./readme.txtと指定すれば良いと思ったのですが、読みにいけません。
test.classから見た場合を考え
../../readme.txtとしましたが、やはり読みにいけません。

System.getProperty("user.dir")を使用すればよいだけなのですが
なぜファイルが見つけられないのか困っています。

どなたか教えてください。

562 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 22:19:15 ]
"readme.txt"

563 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 23:37:16 ]
>>561
設定次第だけど、多分ソレは見えない。
アプリから読みたい場合、jarを自分で作っているならば、jarのルート(デフォルトパッケージ)の所にreadme.txtを置いてjarにする。

Webから読みたいならば、readme.txtをjspとか置いてある公開されているディレクトリに配置しなきゃダメ。


564 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 23:37:25 ]
文字セットをMS932に指定して出力をしたいのですが、やり方がいまいちわかりません。
少しは考えて以下のソースになったのですが、ダメです。
もっと複雑な手順が必要でしょうか?

while (true) {
int c = stream.read();
if (c == -1) {
stream.close();
break;
}

byte b =(byte)c;
String s = String(b,"MS932");
System.out.print(s);
}

565 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 00:15:40 ]
>>564
バイトで読み込んで文字コードを変換したいってこと?
File file = new File("text.txt");
FileInputStream input = new FileInputStream(file);
byte[] bytes = new byte[file.length];
input.read(bytes);
String string = new String(bytes);

コンパイラは通してないけど、こんな感じ。
文字コードはデフォルトでないならば、Stringのコンストラクタを調べて変換かけてくれ。

566 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 00:16:07 ]
Javaランタイムについて質問なんですが、"J2SE Runtime Environment 5.0 Updata 6"みたいなのはプログラムの追加と削除から消していいんでしょうか。

567 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 00:18:22 ]
>>566
オタクの環境で必要かどうかなんて、知らんがな。
他にどんなソフト入っているかとかによるから答えようがない。

568 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 00:34:10 ]
なんかテキストファイルを隔行で読み込んでしまうんだが、なぜ?
Arraylistに歯抜けになって格納される・・・

public ArrayList readfile(String path){
ArrayList<String> list = new ArrayList<String>();
try{
BufferedReader br = new BufferedReader(new FileReader(path));
while (br.readLine() != null){
list.add(br.readLine());
}
}catch(IOException e){
e.printStackTrace();
}
return list;
}


569 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 00:37:14 ]
>>568
while (true){
String line = br.readLine();
if(line == null) break;
list.add(line);
}
 

570 名前:568 mailto:sage [2007/06/17(日) 00:38:59 ]
index指定していなかったorz



571 名前:デフォルトの名無しさん [2007/06/17(日) 00:50:24 ]
Javaのjava.net.URLを使用して、Webサイトの情報を集めるプログラムを
作成したのですが、WindowsとLinuxで速度が異様に異なります。

プログラムはこんな感じのものです。
※関連ありそうな部分だけ抜き出しています
while(継続条件){
URL stockURL = new URL("http://アドレス");
in = new BufferedReader(new InputStreamReader(stockURL.openStream(),"EUC_JP"));
while ((line = in.readLine()) != null) {
//処理
}
in.close();
}

このようなイメージのプログラムをスレッドで100個同時起動しているのですが、
Windowsだと2時間くらいで終わる処理がLinuxで実行すると1時間で5%くらいしか
完了していませんでした。

Linuxのシステムモニタを見ると、通信がある程度行われると全く行われない
状態が数分続き、その後にまた通信しているようなイメージに見えました。
※通信していない間はCPU使用率も落ちる。

Linuxのシステムモニタとログを出力した際にURLオブジェクト生成のあたりで
止まっていたりするので、通信系だと思うのですが何か原因がわかる方いましたら
ご教示願えませんでしょうか。

プログラムよりもLinuxの設定なのかもしれませんが・・・。
よろしくお願いします

572 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 00:58:18 ]
>>571
Linuxはあまり詳しくないけど、どのLinuxを使っているかは書くべきじゃないか?

テストコードとして単純なソケットをつないで見るのはいかがだろうか?
String[] address = 略
while(int i = 0; i < 100; i++){
Thread thread = new Thread() {
public void run() {
Socket socket = new Socket(address[i], 80);
System.out.println("Connect!");
Thread.sleep(1000);
socket.close();
}
};
thread.start();
}
1秒置きにしかConnectできないとなれば、ソケット通信自体に制限がかかっているとしか考えにくいかな。



573 名前:568 mailto:sage [2007/06/17(日) 01:17:44 ]
>>569
解決しました!
ありがとう。

でも同じような処理なのになんでだろ・・・

574 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 01:22:38 ]
>>568
ヒント: br.readLine() の呼び出し回数

575 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 02:32:02 ]
TOMCATとMysqlを連動させようとしてます。
ちゃんと\libにもmysql-connector置いて環境変数も通ってるはずなんだけど、
Error at SQL connectionになります。
プログラム自体は間違ってないはずなんだけど、かれこれ数時間格闘してます。
TOMCATも他の簡単なものでは動いてます。
わかる方いたら教えてください。


576 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 08:35:02 ]
>>575
設定が間違っているだけだろう。
Tomcat、MySQL、OSなどの各バージョン、それからTomcatとMySQLは同じマシンなのか違うマシンなのか・・・など
まず、全ての環境を書け、アホ

1. 単純なJDBCの接続はできるか?
2. Tomcatの管理コンソールからは?

577 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 10:44:43 ]
Javaでドロップレット(アイコンにファイルをドラッグ&ドロップして作業させる)を作ることはできますか?
もし参考になるサイトをご存知でしたら教えていただけませんか?
よろしくお願いします。

578 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 11:44:58 ]
先週からservletによる課題作成を始めたのですが、
public void doGet(HttpServletRequest req, HttpServletResponse res)〜
といったメソッドを使い、JSPへ変数の値を受け渡すことは出来たのですが、
画面遷移時にreqとresの値を初期化していない、という指摘を受けました。

ServletConfigなどを調べ、初期処理メソッドを作り、super.init(conf);
といった感じで書いてみたのですが、System.out.printlnで調べてみると、
reqもresも全く初期化されていませんでした。
req == null; のようにするとエラーが起きてしまいますし、
どうすれば初期化出来るのか、どのメソッドが正解なのか分かっていません。

何かしらヒントを頂ければと思います。宜しく御願いします。

579 名前:575 mailto:sage [2007/06/17(日) 11:45:11 ]
>576
すいません。

環境は
OS XP HOME
TOMCAT5.0.28
Mysql4.1
j2sdk1.5.0_02
mysql connector/J 3.1.7
でTOMCATもMysqlも同じマシンです。

単純な接続もできず、
コンソールのユーザーデータソースは1つもない状態です。
web.xmlの設定や、server.xmlの設定が調べていてもよくわかりません。
多分Mysqlのパスがうまくいってないんだろうとは思うけど…。

580 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 11:52:44 ]
>>579
どういう例外が発生したのか、手を抜かずに書こう。
スタックトレースは長いが全文書くくらいのつもりで。

JDBCデータソースを使ってるとしたら、
Tomcatは4.x系と5.0系と5.5系で設定方法が違うので、気をつけて。5.0系はこれを参照
ttp://tomcat.apache.org/tomcat-5.0-doc/jndi-datasource-examples-howto.html
使ってないとしたら、JDBCドライバの置き場所かURLの間違いだろう。

どっちにしろ、スタックトレースがないので判断のしようがない。



581 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 13:04:18 ]
>>577
start "" "対象jarのパス" %1
というバッチファイルを書いてそれに対してエクスプローラからファイルをドロップすれば
mainのargs[0]でファイルパスが取得できるよ
もっといい方法もありそうな気はするけど

582 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 16:07:17 ]
Java で Windows の service は作れますか?
コントロールパネルのサービスから起動・停止コントロール出来ますか?

583 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 16:12:12 ]
できたらすごいよね

584 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 17:06:12 ]
デーモンというかクライアントに機能をサービスするだけなら出来る。
いわゆるサービスにするためにはサービスマネージメントAPIを実装
する必要があるからJNIでも使うしかないんじゃないかな。
汎用的なサービス化ツールも無い訳じゃないけどね。


585 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 17:27:43 ]
それなら初めからCで書けば良いじゃないか


586 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 18:23:11 ]
回答いただいたみなさんありがとうございます
質問の仕方が悪かったので仕方ないのですが
もう Java で単独で動くところまで出来上がってて
それを Windows 上でサービスにしてインストール
出来たらいいなと思って質問しました
bat ファイルでも作って起動時に実行でもいいんですけど
もう少しスマートな方法は無いかな・・・と


587 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 19:12:03 ]
Cでラッパー書けばよくね?

588 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 19:14:43 ]
それなら初めからCで書けば良いじゃないか

589 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 19:15:55 ]
よくよめ。もうJavaで出来ちゃってんだよボケ

590 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 19:26:22 ]
じゃぁ漏れがサービス化ラッピング用の
AbstructInteface創ってやるから
お待ちください



591 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 20:04:51 ]
System.out.println("Format:"+channel.getFormat().toString());

channel.getFormat().toString()

こんなにドットが続く意味が分かりません。
printlnでメソッドを引数に出来るのですか?
初歩の質問ですいません。

592 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 20:19:46 ]
printlnが引数にとっているのはメソッドではなくメソッドを評価した値です

593 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 20:27:39 ]
>>591
System.out.println("Format:"+channel.getFormat().toString());

String str = "Format:"+channel.getFormat().toString();
System.out.println(str);

594 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 20:34:50 ]
>>591
>>592

なるほど。やっと意味が分かった気がします。
返信ありがとうございます。


channnel.getFormat().toString()

という記述は、channnelというオブジェクトに対してgetFormatというメソッドの中のtoStringというメソッドを使って、それを評価した値がstrに格納されるということでしょうか?
なんか変な解釈をしてそうですが。

595 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 20:36:09 ]
ちがいます
どうみても変な解釈です
本当にありがとうございました

596 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 20:39:19 ]
>>595

ですよね。
getFormat()とtoString()の間を結ぶドットの意味が分からないというのが問題点です。
どう見ても勉強不足です。
本当にアリガトウございました。

597 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 20:43:34 ]
>>582-590
www.syuhitu.org/other/javasvc.html

598 名前:デフォルトの名無しさん [2007/06/17(日) 20:48:13 ]
人にjarファイルを配布する際、
swtって外部DLLとか持ってこないといけないっぽいけど、
swingだと何も用意しなくていいの?



599 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 20:51:54 ]
>>598
SWTも月末に出るver3.3だと外部dllは必要ない。

600 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 20:54:36 ]
>>596
channnel.getFormat().toString()は、
Object obj = channnel.getFormat();
obj.toString();
とおんなじ



601 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 20:59:31 ]
>>600

今度こそ本気で分かりました。
toStringの意味が分かってなかったのが原因だったようです。
ご丁寧にも返信くれた方ありがとうございました!


602 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 21:47:53 ]
>>586
Microsoft Java Language Conversion AssistantでC#に変換しちゃえ

603 名前:598 mailto:sage [2007/06/17(日) 23:05:40 ]
>598 
うわマジサンクス

諦めてswingで画面作り直してたけど、SWTでもなしでいけるようになるのか…


604 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 23:59:31 ]
informaってインストールはどうすればいいのでしょうか?
サイトからダウンロードはしたのですが……

605 名前:デフォルトの名無しさん [2007/06/18(月) 00:49:10 ]
packageとimportの意味が調べてもよく分かりません。教えてください。

606 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 01:50:43 ]
調べて分からない人間に教えて分かるとは思えない

607 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 03:14:11 ]

public class GuessServlet extends HttpServlet{
public void doGet( HttpServletRequest request,
HttpServletResponse response)
throws IOException,ServletException{
response.setContentType("text/plain; charset=Windows-31J");

これのresponse.setContentTypeというのは、サーバーからクライアントに送られる文字の
エンコードにだけ関与しているということでしょうか?

608 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 04:17:22 ]
何でそう思ったのか書け

609 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 08:07:43 ]
>605 簡単に説明。extendsは別のクラスにあるメソッドを使うための儀式みたいな物。
packageはプロジェクトが大規模になるとファイルが散乱して美しくない&再利用しにくい
ということでフォルダーを作ってその中にファイルを入れてしまおうというシステム


610 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 08:10:19 ]
みすった^^;extendsじゃなくてimportな。



611 名前:577 mailto:sage [2007/06/18(月) 10:15:30 ]
>>581
ありがとうございます
でも自分にはまだ難しくて解りません(´・ω・`)

612 名前:デフォルトの名無しさん [2007/06/18(月) 19:37:02 ]
swingで自前でダイアログ作るのってどうすればいいのでしょうか・・・?

dialog.show();を使ったら推奨されないとか言われてeclipseにおこられてしまいました・・・。



613 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 19:50:11 ]
>>612
java.sun.com/javase/ja/6/docs/ja/api/java/awt/Window.html#show()
> 推奨されていません。 JDK version 1.5 以降は、 setVisible(boolean) に置き換えられました。

614 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 20:48:27 ]
>>575
うちではできてる

615 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 22:04:24 ]
RMIのリモートオブジェクトなのですが、
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/rmi/spec/rmi-arch3.html
のように、リモートオブジェクトのスレッドは保証されていないとあります。
これを固定する方法はあるのでしょうか?
サーブレットのシングルスレッドモデルのようなイメージです。
性能面等はとりあえず差し置いて構わないのですが。
カスタムソケットファクトリあたりがそうなのかなあと思ったのですが
使い方がよく分かりませんでした…

616 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 22:10:50 ]
>>615
RMIは単なる中継に使って、別プロセスで本体を上げていてはどうか?
RMIのシグネチャの中にスレッドを特定するキーを持たせておいて
RMIの機能は単なるディスパッチャ。
やりたいことが何かわからんのでこれくらいしか・・・

617 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 23:10:24 ]
>>615
まんま、簡易Servletでも作成してしまえばいいと思われ。
イベントのディスパッチスレッドがリクエスト毎にスレッド立ち上げればいいでしょう。

618 名前:デフォルトの名無しさん [2007/06/18(月) 23:51:43 ]
ファンクションキーでタブやフレームをきりかえれるような処理ってできますか?

F2を押したら現在のフレームを閉じて新しいフレームを開く みたいな

619 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 00:11:51 ]
>>618
ヒント: java.awt.Event

620 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 01:03:59 ]
Wikipediaを読んでいたら「Javaでは意図せずオーバーライドしてしまう問題がある」というような記事が
書かれていたんですが、この問題はいつごろから指摘されたものなんでしょう?
言語設計時にすでにわかっていたんでしょうか?それとも後から見つかったものでしょうか?



621 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 01:14:12 ]
>>620
意図しないオーバーライドはあまり問題になることはない。
問題になるのはオーバーライドしたつもりがしてなかったケース。
この対策としてjava 5から@override が追加になった。

622 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 01:22:14 ]
>>621
実際はそうなんですか。
「してるつもりがしてなかった」ってのは気をつければ防げますけど
「するつもりがないのにしていた」のはいくら気をつけても防げないので問題が大きそうに感じたんですが。

てことは設計時に気づいてたけど問題が小さいので気にしなかったって感じなんですかね?


623 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 01:26:10 ]
Javaに限ったことではないんじゃねーか?
オーバーライドをサポートするすべての言語で起こりうる問題だとおもわれ。

624 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 01:26:33 ]
>>620
意図しないオーバーライドが問題になるケースって具体的にどんなん?
オーバーライド失敗には、メソッド名のスペルミスとかあるけど。

625 名前:620 mailto:sage [2007/06/19(火) 01:41:47 ]
>>623
例えばC#だとoverrideの指定が必須らしいんでそういうのは起こらないそうです

>>624
本来呼ばれるはずのないタイミングで呼ばれる可能性があるのでは?


626 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 01:53:19 ]
質問。
tとhに値を入れてその計算の結果に基づいて、いくつかの言葉から
1つを表示するには(例えば、暑い、寒い)どうすればいいですか?

今は結果以外のも表示されてしまっています

627 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 01:58:43 ]
>>626
もう少し常人にわかるように質問してくれ

628 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 02:06:38 ]
例えばt=15 h=12
t+h<25なら 暑い
t+h<10なら 寒い

今回は27なので暑い  と表示させたいのに寒いも表示されてしまう

629 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 02:14:53 ]
暑い=0、寒い=1なら対象の数を2で割れば余りが0か1になるからそれで表示できる。
こんな感じ?

630 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 02:21:22 ]
計算結果を使って表記したいんですよ



631 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 02:26:47 ]
>>630
計算結果ってどういう根拠の計算をするんだよ。適当でいいのかw
(t + h) % 2 とか

632 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 02:33:29 ]
例えば
tが湿度 kが温度

不快指数を出す

結果から
暑いとか寒いとか表示させる

633 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 02:35:47 ]
じゃそうすればいいじゃん。
わからんから、>>628の例で行けば
例えばt=15 h=12 
t+h<10なら 寒い
そうでないなら 暑い 


634 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 02:39:27 ]
暑いとか表示させたい種類が6つ

635 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 02:48:30 ]
なんとなくわかった。 else if の使い方がわからなかったって話か。
中学生は早く寝なさいね

www.hellohiro.com/basic/ifelse.htm


636 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 02:50:11 ]
else ifって言えばよかったんだ。失敗した

一応言うけど中学生じゃないよ

637 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 03:59:45 ]
>>625
>本来呼ばれるはずのないタイミングで呼ばれる可能性があるのでは?
それオーバーロードじゃね?

638 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 04:33:11 ]
いやオーバーライドでしょ

意図せず呼ばれるっていう例じゃないけどこういう時問題になりそう

Hogeを継承したSpecialHogeがあってSpecialHogeのほうに状態の正当性を表明する
AssertValidメソッドがあったとする
それとは無関係にあとからHogeのほうにAssertValidメソッドが追加されたとする
するとSpecialHogeのAssertValidはあとから追加されたHogeの同名メソッドをオーバーライドしてしまって
HogeのAssertValidが呼ばれなくなってしまう

みたいな。

639 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 07:34:29 ]
スーパークラスのメソッドも確認せずに継承して意図しないオーバーライドってどんだけ間抜けな奴なんだ

640 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 08:06:04 ]
>>625
いや、C# のoverride指定が必須で問題が起こらないってんなら、

Javaでもオーバーライド禁止したいなら
メソッドに final指定しときゃ良いんだから問題は起こらないと言える。



641 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 08:11:02 ]
>>639
スーパークラス側で後からメソッド追加したらたまたまサブクラス側に同じシグネーチャの
メソッドが既にあったっつーことでわ?

642 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 08:11:40 ]
>>640
釣りか?
オーバーライドを禁止してどうする。

643 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 08:16:27 ]
>>642
オーバーライドを禁止すりゃ「意図しないオーバーライド」は起きない。至極当然の話。

644 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 08:19:01 ]
クラス A でオーバーライドするためには final を削除する必要がある。
しかし、その状態ではクラス B でその関数を意図せずにオーバーライドする可能性がある。

645 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 08:22:26 ]
>>644
上段は「オーバーライドされたくないメソッド」を「意図してオーバーライドしたい」ケースだから別の問題。

下段は意味がわからん。

646 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 08:31:45 ]
>>638
とはいっても現実にそーゆー問題が多発しているかというと???
>>624 が言うようなスペルミスはかなり多発してるけど。

647 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 08:45:47 ]
>>645
「意図してオーバーライドしたい」メソッドは final にできないが、
そのメソッドはいくらでも「意図しないオーバーライド」が出来てしまう、ということだ。

648 名前:デフォルトの名無しさん [2007/06/19(火) 08:51:54 ]
>>647
finalがつかないなら、親クラスはオーバーライドされても良いと意思表示してる。

非finalなら子クラスが知らないうちに「意図しないオーバーライド」する可能性はあるものの、
オーバーライドしたら、いまどきのIDEなら表示してくれるので危険性はかなり低い。

649 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 09:01:15 ]
>>638
でもそれ実際には問題になりにくいよな。
HogeのAssertValidが状態の正当性を表明するものなら
状態の正当性を表明するSpecialHogeのAssertValidに上書きさたからといって
問題になるのは考えにくいわけで。

状態の正当性を表明以外でAssertValidって名前にするのも考えにくいし……

650 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 09:29:23 ]
C#の場合は非virtualのメソッドや隠蔽を盛り込んでしまったんで、
あの辺を厳密にせざるを得なかったのだと思う。
javaの場合は現状のままで混乱もない。単なる言語の設計思想の差だ。



651 名前:616 mailto:sage [2007/06/19(火) 10:21:50 ]
>>616-617
遅くなりましたがありがとうございます。
自分も大体同じ案を考えたのですがそれが普通か分からず、
RMIオブジェクトの生成あたりをカスタマイズする方法が
もしかしたらあるのかも、と思い質問させて頂いていました。
まずはその線で行ってみます。

652 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 10:29:11 ]
>>648
override があればその危険性を排除できる。
final によるコントロールは override の代替にはならんよ、ということ。

653 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 10:55:31 ]
素直に言語仕様が甘かったと認めればいいのに
C#よりJavaの方が先発だから仕方ない

654 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 11:04:42 ]
甘かったというよりは後発がより優れているのは当然。
後発で先発と同じ失敗をしたらたたかれるだろw

655 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 11:21:57 ]
C# に typedef がないのは(ry

656 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 11:45:28 ]
>>652
> override があればその危険性を排除できる。
うっかりoverride付け忘れの危険性もあるわけで、どっちもどっちじゃね?

まぁ、普通は警告見れば気付くだろうけど
それ言ったら「意図しないオーバーライド」も相当間抜けな話だし。

657 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 11:52:28 ]
>>652-656
オマエら他所いってやれ

658 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 12:17:17 ]
>>657
技術屋って上級者ほど空気読めないよな

659 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 12:47:39 ]
たまたま話の流れがそれでヒートしただけでは・・・

660 名前:デフォルトの名無しさん [2007/06/19(火) 13:20:48 ]
JAVAやってみたいがEclipseをIDEに使う場合
他に何を入れればいいかが判らない
J2SEいれてそれでOK?
JavaSwingとかはJ2SEに一緒に入ってるの?



661 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 13:32:02 ]
>>660
J2SEも含めて何もいれる必要はない。
しいて言えば、基本APIドキュメントの日本語版程度。

662 名前:デフォルトの名無しさん [2007/06/19(火) 13:45:21 ]
>>661
レスサンクス
逝って来る

663 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 13:56:05 ]
>>656
override がないとエラーなんすけど・・・

664 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 15:00:24 ]
>>663
今のところJavaではオーバーライドするのにoverrideなんてものは要らん
他の言語の話なら他所でやってくれ

665 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 15:35:47 ]
つーか
>するとSpecialHogeのAssertValidはあとから追加されたHogeの同名メソッドをオーバーライドしてしまって

こうなる前にまず、リファクタリングでスーパーのメソッドに移動してると思うんだが。
ただの不注意、誰でもあるからどうしようもない。

666 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 15:51:39 ]
現実的に起こりえるのは、オーバーライドしちゃいけないメソッドをオーバーライドしちゃったというケースだからね。
finalがあるのでこれを防ぐってのがJavaの設計思想なわけだ。
orverrideと書かなきゃオーバーライドできないってのもありだけど、ダメと言っているのにオーバーライドする馬鹿がいるとしたらJavaのが優秀w

667 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 16:04:04 ]
>>663
> 10.2.2 The new modifier
> A class-member-declaration is permitted to declare a member with the
> same name or signature as an inherited member. When this occurs,
> the derived class member is said to hide the base class member.
> Hiding an inherited member is not considered an error,
> but it does cause the compiler to issue a warning.

668 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 22:45:34 ]
>>667
エラーだろうが警告だろうが上の文脈では本質的に同じだろう。
つかさすがにそれはスレ違い

669 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 22:53:36 ]
javaってC#のnewオーバーロードに相当する機能はないの?

670 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 22:55:21 ]
>>667
いや、>>656は区別してるから文脈上は別。
区別できてなかったら>>663がアホなんだろ。

っつか、スレ違いならレスつけるな



671 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 22:56:11 ]
>>669
newオーバーロードが欲しいケースって、どんなケース?

672 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 23:00:55 ]
Charset charset1 = Charset.forName("SJIS");
CharsetDecoder decoder = charset1.newDecoder();
ByteBuffer bb = ByteBuffer.wrap("a".getBytes());
System.out.println(decoder.decode(bb).toString());

先生・・・aが表示されんとです・・。

673 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 23:10:36 ]
>>672
1.6以降だと表示される。1.5、1.4だと駄目だったと思う。

bugs.sun.com/bugdatabase/view_bug.do?bug_id=6196991
が原因。CharsetDecoder#decode(ByteBuffer) のバグ。

674 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 23:13:21 ]
>>672
2文字(ab)以上でないとダメみたい

675 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 23:21:57 ]
>>672
1.4でソース読んでみた。
0.5(平均バイト) × 1(バイト) が 0になる為、1バイトは無視されるバグだった。

676 名前:669 mailto:sage [2007/06/19(火) 23:24:21 ]
>>671
すまん変な表現だった
C#では、派生クラスでnewキーワードを使ってスーパークラスと同じシグネチャの
メソッドを定義して、スーパークラスのメソッドを隠してしまえるの。
オーバーライドとは違って、派生クラスのオブジェクトをスーパークラスの
オブジェクトとして扱えば、スーパークラスに定義されたメソッドが呼び出される。
newを付けなくても動作は同じなんだけど、コンパイラで警告が出る。
こんな感じ
class A{public virtual void Method();}
class B : A{public new void Method();//オーバーライドするときはnewじゃなくてoverride}

677 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 23:26:43 ]
>>676
それは知ってる。

で、具体的にどんなケースで必要になるの?って質問なんだが。

678 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 23:54:05 ]
デリゲートだっけ?そういうのがないjavaだと困らんような。
公開フィールドに突っ込まれたクロージャは将来困るかも知れんが。

679 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 23:56:54 ]
> 公開フィールドに突っ込まれたクロージャは将来困るかも知れんが。
???

680 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 04:15:12 ]
どんな場合に使うかも知らずに「知ってる」って…w



681 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 08:30:14 ]
使われたくないスーパークラスのメソッドを隠す
publicをprivateにするのも可
インターフェイスの明示的実装とあわせて、
継承を繰り返したりインターフェイスを多数実装したクラスが
継承メンバだらけでぐちゃぐちゃになるのを防ぐ機能だよ
さすがにスレ違いだなすまん

682 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 09:22:42 ]
>>681
> 使われたくないスーパークラスのメソッドを隠す
> publicをprivateにするのも可

> 3.7 Scopes
> The scope of a name is the region of program text within
> which it is possible to refer to the entity declared by the name
> without qualification of the name.

> 3.7.1 Name hiding
> The scope of an entity typically encompasses more program text
> than the declaration space of the entity. In particular,
> the scope of an entity may include declarations that introduce
> new declaration spaces containing entities of the same name.
> Such declarations cause the original entity to become hidden.

> 7.3 Member lookup
(中略)
> First, the set of all accessible (§3.5) members named N
> declared in T and the base types (§7.3.1) of T is constructed.
> Declarations that include an override modifier are excluded from the set.
> If no members named N exist and are accessible,
> then the lookup produces no match, and the following steps are not evaluated.

683 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 09:37:12 ]
続く

> Next, members that are hidden by other members are removed from the set.

だけど、これは(集合内の)他のメンバによって隠ぺいされるメンバは集合から削除される、なんだろな。

684 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 18:21:04 ]
基底クラスでpublicになってるのを派生クラスでprivateにするのはC#でも無理だな
派生クラスで基底クラスが実装してるものと同じインターフェイスを実装しなおしたいとか、
インターフェイスを実装したいけど、そのメンバが
基底クラスのメンバと名前が被ってるとかいうときに使う

685 名前:デフォルトの名無しさん [2007/06/20(水) 19:51:32 ]
くだらない質問ですいません。
int b=1;
int c=0;
int d=b---c;
これは解釈の仕方ではインクリメント演算子にもなるし、
デクリメントにもなると思います。この場合はデクリメント演算子と
解釈して計算するそうです。なぜそうなるのでしょうか?
人間がこういう場合はこうすると決めたことなのでしょうか?

686 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 19:56:38 ]
むしろどう解釈したらインクリメントになるのか教えてほしい

687 名前:デフォルトの名無しさん [2007/06/20(水) 20:00:48 ]
すいません、間違えました。前置演算子として解釈するのか
後置演算子として解釈するのかでした。

688 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 20:13:49 ]
左から判定していくんじゃねーの

689 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 20:15:12 ]
>>685
C言語は解釈順が決められていないが
Javaは前から評価していくと決まっていて、
単項演算子は、2項演算子の-よりも優先度が高いから
d = (b--) - c
じゃないのか?
ttp://www.y-adagio.com/public/standards/tr_javalang/15.doc.htm#4779

690 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 20:30:46 ]
>>689
そのURLに書いてあるのは値の評価順のことでしょ
構文解析の話題とはまったく関係なくない?




691 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 20:42:20 ]
>>689
www.y-adagio.com/public/standards/tr_javalang/3.doc.htm#95504
> Javaは,他の字句変換を行えば文法的に正しいJavaプログラムが生成される場合でも,
> 各段階で(トークンの)最長可能変換を常に使用する。例えば,入力文字a--bは,
> a,-,-,bとトークン切出し(3.5)すれば,文法的に正しいJavaプログラムの一部となるが,
> 文法的に正しくないa,--,bにトークン化される。

692 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 21:09:26 ]
>>681
つリスコフの置換原則

693 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 21:25:57 ]
eclipseのVisual Editorでswingを使ったGUIプログラムを作りました(main()はなし)
eclipse上からはメニューからJava Bean実行を選ぶだけで実行出来るのですが、
コマンドプロンプトや他のPCから実行したい場合どうすればよいのでしょうか?


694 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 21:28:45 ]
エントリポイントないのにどうやって実行するんだ?

695 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 21:32:05 ]
>>693
いったい何を言っているんだ・・・
mainメソッドを記述したクラスを作って実行すればいいじゃないか?

696 名前:デフォルトの名無しさん [2007/06/20(水) 21:38:00 ]
685です。回答ありがとうございました。
ホームページを見たのですが、勉強不足で理解できませんでした。
いろいろ自分で調べてわかるようにしたいと思います。

697 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 21:47:18 ]
「左から順に解析される」
「複数の解釈が可能な場合は常に長い方が採用される」

この2点だけおさえておけばいい。
あとは理解力の問題だ。

「この条件で自分で解析するとしたらどうなるだろうか?」
というのを実際に紙にでも書いて考えてみれ。

698 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 22:30:54 ]
見てすぐに理解できないコードは実務では不要
言語研究とか趣味ならいいが。

699 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 04:52:42 ]
String hoge = fuga.split("regex");
if(hoge.length >= 3 && hoge[2].equals("hage")){
}
みたいに書いたときにIndexOutBoundみたいなException出る心配はないですよね


700 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 05:21:26 ]
>>699
IndexOutOfBoundsExceptionが出る心配はない。
その前にコンパイルエラーが出る。



701 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 05:24:45 ]
つ String[] hoge =
配列の要素数をチェックしているからhoge[2]でインデックス範囲外アクセスの例外は出ないよ

702 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 05:38:31 ]
>>700
すみません typo です

String[] hoge = fuga.split("regex");

と解釈してください

703 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 05:39:57 ]
必ず左から評価されると決まっていない場合は
ifを2行に分ける必要があるんだけど
Javaの場合は大丈夫だお

704 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 07:39:28 ]
// さっき知ったJadが凄過ぎて感動して耳から鼻くそが出てきそう

705 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 08:35:10 ]
if(hoge.length >= 3 & hoge[2].equals("hage")){
}
だとショートサーキット評価が行われないから、
hoge[2]が無ければArrayIndexOutOfBoundsExceptionが投げられる。

706 名前:デフォルトの名無しさん [2007/06/21(木) 10:39:34 ]
送信ボタンを押しても、反応しません・・。
どこか、間違えていますか?
初心者なので、ご指摘・修正の方を宜しくお願いいたします。

i-get.jp/upload500/src/up5912.txt

707 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 11:12:52 ]
>>706
JButton button2
コンストラクタの中で定義しているローカル変数のbutton2とインスタンス変数のbutton2の名前が衝突しているのが原因。
解決方法としては、コンストラクタの方の
 JButton button2 = new JButton("送信"); /* 送信ボタン */

 button2 = new JButton("送信"); /* 送信ボタン */
とする。
それだけだとぬるぽが起こるガッ、原因は同じ。

708 名前:デフォルトの名無しさん [2007/06/21(木) 11:18:48 ]
>>707
ご回答ありがとうございます!
修正をさせて頂きましたが、ぬるぽが発生します。
ぬるぽを防ぐにはどの様に修正した方が良いでしょうか?
色々とぐぐったのですが、初心者なので良く分かりませんでした。
質問ばかりですみません・・。

709 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 11:29:23 ]
>>708
原因は一緒だといってるだろうガッ
解決した理由を考えなければ、貴様は何度も同じ質問をする。

710 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 11:33:52 ]
Java最強!?
pc11.2ch.net/test/read.cgi/tech/1182390759/



711 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 12:05:45 ]
>>705
ぬるぽじゃないの?

712 名前:711 mailto:sage [2007/06/21(木) 12:23:10 ]
あ、ああああ。すません。演算子見てませんでした。

713 名前:デフォルトの名無しさん [2007/06/21(木) 17:08:38 ]
StreamTokenizer って指数形式の浮動小数点数を数値として読み取ってくれないのですか?
読み取らせるにはどうしたらよいでしょうか。

714 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 20:29:36 ]
JDBCでMySQLにデータ追加するプログラムを作っているのですが、
eclipseで実行するとデータ追加出来るのに、JavaWebStartで実行するとできません。
ドライバか何か設定してやらないといけないのですか?

715 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 20:37:51 ]
エスパーさーーん出番ですよー

716 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 20:41:42 ]
-classpath

717 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 23:31:34 ]
エスパーしても要求するライブラリインスコさせてないとかセキュリティマネージャとか色々ありすぎる。

718 名前:618 [2007/06/22(金) 00:58:49 ]
>>619
ありがとう
答えは、VK_F1でOKでしょうか?

なんかjava.awt.event.KeyEvent
の説明にあった、「定数の値に頼らないでください」の注意書きがよくわからなかったのですが…



719 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 01:19:13 ]
定数と比較する時に数値リテラルを使うなって事。

final byte COLOR_RED=127;
と定義されてるからと言って

//赤の場合
if(getColor() == 127) System.out.println("赤です。")

と書かない。実装がいつ変更されるか分からないから。
言い方変えると実装に依存するなと言う事。

720 名前:デフォルトの名無しさん [2007/06/22(金) 05:36:26 ]
//赤の場合
if(getColor() == COLOR_RED) System.out.println("赤です。")

これはOK?



721 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 05:51:15 ]
おk

場合によっちゃ型まで変更があるかも知れん。

final String COLOR_RED="#ff0000";

if(getColor()==127)...

こうなったら定数とgetColor()の定義以外にリテラルも変更する必要が出て来てバグを誘発したりする。

公開されてるAPIリファレンスの説明文から分かる情報以上の、たとえばソースコードから
得た情報に依存したコードを書くのは行儀悪い。

722 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 11:11:40 ]
型の変更に対応できるソースなんて書けないだろ
その例だと>>720もアウトだし。

723 名前:デフォルトの名無しさん [2007/06/22(金) 11:30:15 ]
JDialog って、コンストラクタで作成した後で、
オーナーを変更することはできないのですか?

724 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 11:59:39 ]
>>723
作成した後に変える必要があるのですか?
新たにnewすることはいけないことですか?
専用のPanelを作成することはできないのですか?
特定の用途であれば、それぞれのパネルを保持すればよいのではないですか?

725 名前:723 [2007/06/22(金) 12:54:17 ]
すいません、質問を変えます。
やりたいことは、JOptionPane みたいに、
Component を受け取って、その親の Frame または Dialog を
オーナーとするダイアログを作成したいんですが、
JDialog のコンストラクタが Frame または Dialog しか受け付けないので、

class SomeDialog extends JDialog {
 public SomeDialog(Component comp) {
  super(comp); // これはできない。
 }
}

はうまくいきません。

super(SwingUtilities.windowForComponent(comp));

これも、JDialog のコンストラクタが Window を受け付けないので、だめです。

instance of で Window が Frame か Dialog かの判定はできますが、
super はコンストラクタ内の最初に呼び出さなければいけないので、これもできません。

何かいい方法はないでしょうか?

726 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 13:38:21 ]
作成側でownerに対する参照を持っているべきだと思うな。
使い分けはオーバーロードしておきゃOK

class SomeDialog extends JDialog {
 public SomeDialog(Dialog owner) {
  super(owner);
 }
 public SomeDialog(Frame owner) {
  super(owner);
 }
}

727 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 13:41:18 ]
>>725
createDialog みたいなメソッド作って、そこで instanceof して
2種類のコンストラクタ呼び分けるしかないのでは?

1.6以降なら JDialog のコンストラクタが Window も引数にとれるようになってるけど。

728 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 13:42:31 ]
どうしても中で判定したい場合は、次のメソッドを追加。

static SomeDialog createInstance(Component component) {
    if(component instanceof Dialog) {
         return new SomeDialog ((Dialog) component);
    } else if(component instanceof Frame) {
         return new SomeDialog ((Frame) component);
    } else {
throw new IllegalArgumentException() // ?
    }
}


729 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 15:41:46 ]
ローゼンのキャラが解説してるjavaのサイトがあったのですが
どなたかご存知ないですか?
クライアントサーバとかの解説がされているページです。

730 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 19:58:15 ]
クライアントサーバ方式のチャットを作っています。
クライアントがメッセージを受け取り、TextAreaに追加する際
同時にキャレットを動かし最新の発言が見えるようにしています。

これだとログをさかのぼり読んでいる最中に発言があると\(^o^)/オワタなので、
スクロールバーが一番下にある状態に時だけキャレットを動かしたいと思うのですが
どうやってそういう状態を知るのか分からず、実装できません。
助言をください。

以下が現在使っているメソッドです。

public void addMessage(String str) {
messageArea.setText(messageArea.getText() + "\n" + str);

try {
messageArea.setCaretPosition(messageArea.getText().length());
} catch (Exception ex) {
}
}




731 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 20:40:11 ]
>>730
JScrollPane#getVerticalScrollBar()で取得した垂直スクロールバーに対して、
getMaximun()で最大値, getValue()で現在のスクロール量が取れる。
スクロール可能な実際の最大値は、getMaximun()の値から縦の長さ分引いた値になるので注意。
あとは、この辺組み合わせればできるだろ。

732 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 20:50:06 ]
>>730
ttp://blog54.fc2.com/g/grodictionary/file/20061015215500.jpg
図解してみた。

733 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 20:56:09 ]
>>732
グロ画像。今時こんなの貼るやついるんだな。

734 名前:sage [2007/06/22(金) 21:13:49 ]
コマンドプロントにて
javac ファイル名.javaでエンターを押し
コンパイラされて文字が出てくるはずだと思うのですが
何故か出てきません

public class ExerciseD2L1 {
public static void main(String args[]) {
System.out.println("ここに文字いれてます");
}
}

↑間違っていますか?

735 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 21:17:15 ]
コンパイルしただけじゃだめだぞw
後に実行しないと。

>java ExerciseD2L1 エンター

736 名前:sage [2007/06/22(金) 21:27:22 ]
解決できました!
>>735さんありがとうございます><

737 名前:736 mailto:sage [2007/06/22(金) 22:16:59 ]
先ほどのものですが
新しくメモ帳で同じようなものを作ったのですが

public class SampleD2L2 {
public static void main(String args[]) {
System.out.println("文字");
}
}

これでコマンドプロントでjava SampleD2L2 エンターを押しても
Exception in thread "main" java.lang.NoClassDefFoundError:
が出てきます。
・String に == は使うな。equals() を使え。
と書いてありますがそうするとどう書いていけばいいのでしょうか?
ちなみに参考書を買ってやっているのですが
参考書ではjavac ファイル名.java エンターなのですが・・・・
ちなみにどちらをやってもできませんOTL

738 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 22:20:17 ]
>>737
> javac SampleD2L2.java
でコンパイルが成功したら

> java SampleD2L2
で実行。

739 名前:736 mailto:sage [2007/06/22(金) 22:27:13 ]
>>738さんありがとうございました><
無事解決しました

740 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 23:13:03 ]
>>736
読んでいる参考書を晒して欲しい
もしかしたらば、とんでもなく糞本を読んでいるかもしれない。
丸の内なんとかとか・・・



741 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 23:28:19 ]
awtコンポーネントとswingコンポーネントを
Frame、JFrame内に共存させてもいいんでしょうか。

試してみたところ不具合は起きませんでしたが、
この先疑問を抱えながら開発するのは不安なので
ご存知の方教えてください。

742 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 00:10:22 ]
不安だったらやめとけ

743 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 00:29:39 ]
うちのPCは家庭用最先端な4コアCPUです。
こういうのはマルチスレッドの処理が速いと聞きましたが、
このスレッドってJAVAのThreadと同じものですか?
Thread使って並列処理するとうちのPCの性能を生かせるのでしょうか?
それとも、JAVAのThreadとは別物なのでしょうか?

744 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 00:34:26 ]
匿名クラスってコンストラクタ定義できないっスよね?

745 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 00:56:02 ]
>>744
できない。

インスタンス初期化子使うかフィールド宣言に初期化子付けるか、そーゆーので代用。

746 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 01:34:28 ]
増えたと思ったらw

>>741
軽量が先、重量が後に描画される。

747 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 02:17:31 ]
>>743
VMの実装によると思われる。
たぶん、凡人が考えるようなことはやっている。

748 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 04:14:36 ]
java.util.concurrent.ExecutorService の中にタスクが残っていなければ shutdown したいんですが、
独自の ExecutorService を作る必要がありますか?

749 名前:デフォルトの名無しさん [2007/06/23(土) 07:41:23 ]
GUIのレイアウトについての質問です。

ウィンドウを左右二つのパネルに分けています。
左のパネルには可能な限り大きな正方形を表示します。
右のパネルには色々な情報を表示します。
左のパネルの横幅は縦幅以上には広がりません、

(1)
ウィンドウが横に広がれば
右のパネルの横幅は変わらず、左のパネルだけが広がります。

(2)
横幅=縦幅の時にウィンドウが横に広がれば
左のパネルは変化せず、右のパネルがだけが広がるようにしたいです。

GridBagLayoutを使い(1)は実現できましたが(2)はどのように実装すれば良いのでしょうか

750 名前:デフォルトの名無しさん [2007/06/23(土) 08:29:27 ]
JDKについているHTMLドキュメントが使い難い・・・不親切だし・・・
スレッドでwait()したらsynchronizedも解除されるなんてリファレンスに書いてないし・・・
勉強中にこんなことで悩んでいたし・・・



751 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 08:38:06 ]
>>750
書いてあるよ。
ttp://java.sun.com/javase/ja/6/docs/ja/api/java/lang/Object.html#wait(long)
>現在のスレッドをこのオブジェクトの待機セットに入れるときに、wait メソッドはこのオブジェクトのロックだけを解除します。

最初は慣れないが、ガンガレ。

752 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 08:47:59 ]
>>751
Σ( ̄ロ ̄lll)
wait(long)じゃなくてwait()のところを読んでいたので気がつかなかった・・・

感謝です

753 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 08:50:42 ]
>>750
sunの開発者向けページにあるチュートリアル見ると幸せになれるよ。
sunのjavadocは完全に公開仕様な部分しかふれてないから
実装よりの事は伏せてある(リスナが呼ばれる順に依存しちゃダメな理由とか)。
外部プロジェクトから取り込んだライブラリのドキュメントと見比べると
コピペだって事が分かる。javadocの方針は仕様のみ書けって事だからそういうもんなんだろ。
ただ、そのコピペが所々間違えてるんでチュートリアルとかガイドをちゃんと読んだ方が良い。


754 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 08:57:40 ]
>>753
ここですか?
jp.sun.com/developers/individual.html

755 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 09:10:18 ]
>>749
>左のパネルには可能な限り大きな正方形を表示します。
>左のパネルの横幅は縦幅以上には広がりません、
>ウィンドウが横に広がれば
>右のパネルの横幅は変わらず、左のパネルだけが広がります。

矛盾してない?

756 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 09:39:30 ]
ウィンドウの横幅を広げれば、自動的にウィンドウの縦幅も広がっていくって事なんじゃない?

757 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 10:56:54 ]
>>748
よく知らんが、shutdownは残りのタスクが終了するまで待つとかしないん?

758 名前:749 mailto:sage [2007/06/23(土) 11:43:23 ]
分かりやすい説明がが書けず、すみません。

>>755
ウィンドウが横に広がれば、
右のパネルの横幅は変わらず、左のパネルだけが優先して広がるが、
左のパネルの横幅がウィンドウの縦幅の大きさまで達するとそこからは右のパネルが広がりだすという事です。

>>756
いえ、そうではありません。
ウィンドウが縦に広がった場合は特に特別な事はなく、右のパネルも左のパネルも
ウィンドウが広がった分だけ広がります。

759 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 12:11:12 ]
ああ、つまり
┏━━┳━┓
┃   ┃  ┃
┃   ┃  ┃
┗━━┻━┛
では無く、
┏━━┳━┓
┃   ┃  ┃
┃   ┃  ┃
┣━━┫  ┃
┗━━┻━┛
なんだな。左下にパネルで無い部分があると(右下にもあるかも知れないが)。


760 名前:749 mailto:sage [2007/06/23(土) 12:19:39 ]
あ、左のパネルが長方形でもその中に描写可能な最大の正方形をと描くという意味で、
左のパネル自体が正方形という意味ではないです。

この記述は質問レスにいらなかったかもしれませんが、
左パネルの(横幅が縦幅に達した後)広がりが止める理由が分かってもらえればと思い書きました。
実際紛らわしくなっただけのような気もしますが(^_^;)



761 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 13:20:50 ]
>>757
shutdown は新規タスクの追加を禁止して、現在のタスクが全て完了したらシャットダウンするんです。
新規タスクの追加を禁止せずに、以後タスクが全て完了したタイミングでシャットダウンを予約〜ってことをするにはどうすればいいのかなーと。

762 名前:デフォルトの名無しさん [2007/06/23(土) 18:04:47 ]
学校でコメントアウトに日本語が含まれるプログラムを自宅のPCでコンパイルすると、
警告:この文字は、エンコーディング MS932 にマップできません。
との警告が表示されます。
学校のPCでは問題なくコンパイルできます。
自宅でのコンパイルの警告をなくしたいのですが、どなたか方法知りませんでしょうか?

763 名前:デフォルトの名無しさん [2007/06/23(土) 18:11:42 ]
swingでダイアログを作ろうとして、
Dialog NewDialog = new java.awt.Dialog(new BaseFlame());
と書いても

Dialogが解決できませんとeclipseに怒られてしまいます・…
所有者ってなんでしょうか。親フレームだと思ったのですが…


764 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 18:32:55 ]
judeでクラス図を書こうとしてるんですけど、どうかいていけばいいかわかりません。
問題
ある旅行代理店では,宿泊施設と交通機関のチケットをセットにした商品販売を開始することにした.
この商品販売のための,計算機システムの導入も検討している.
この商品は顧客が店舗に行き,代理店の店員と価格や時間等を考慮し相談しながら販売することを想定している.
しかし,将来は顧客自身がウエブサイトや携帯電話等を通して,この商品を購入することが可能となるようにしたいと思っている.
この代理店は以下の三つの既存システムを利用可能である.

765 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 18:35:09 ]
* 宿泊施設の空室照会および予約システム: 交通機関の駅等の名前と,宿泊人数,宿泊希望日を入力すると,宿泊可能な宿泊施設の候補を5つ程度教えてくれる.
候補は価格の安い順,高い順でソートできる.
候補として提示される宿泊施設の情報は,施設が提供した自由記述の説明である.そして,空室を予約することができる.
* 交通機関(列車,バス,飛行機)の空席照会および予約システム: 人数,出発希望日時,到着希望日時と到着先を入力すると,空席がある交通機関の組合せ候補を5つ程度提示してくれる.
移動時間の短い順,価格の安い順で候補はソートされる.
そして,空席を予約することができる.
* 最寄駅等の照会システム: 住所を入力すると最寄の交通機関駅等の候補(5つ程度)と,そこまでの距離を教えてくれる.

尚,支払い業務については当面考えなくても良い.

766 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 18:39:24 ]
上記に示した商品販売のための計算機システムの設計をせよ

って問題です。
どうやって作っていけばいいのかおしえてください。

767 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 18:41:18 ]
>>763
たぶんDialogの完全名を解決できていない。
インスタンス生成の方にはjava.awt.を付けてるのに変数名の型に付けてないのは何で?

>>764-766
judeの使い方について説明を求めているのであれば板違い。ソフト板とかか?(違うかも)
宿題なら宿題スレへ。

768 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 18:41:57 ]
なんのために学校行ってるの?

769 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 18:46:44 ]
>>762
ソースファイルの文字エンコーディングを調べて、
例えばutf-8なら、
javac -encoding utf-8 ソースファイル
のようにコンパイルするか、
自宅のPCのOSで使われている文字エンコーディングにソースファイルを変換してからコンパイルすれ。

770 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 18:50:48 ]
>>763
せっかくswingでダイアログ作るならJDialog使えよw



771 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 19:01:53 ]
>>749 >>755-760

これでどうかな?

sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29497


772 名前:763 [2007/06/23(土) 19:26:05 ]
>>767

ありがとうございます。
単なるimport文抜けのミスでした…


>>770
フォントサイズとかレイアウトとかを自分で変更したかったので・・・
JDialogだとなんかフォントおかしくなりませんか?

773 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 19:49:55 ]
>>772
現行のswingスレの478あたりからの流れを読むといいかも

774 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 20:44:10 ]
intをStringにキャストするにはどうすればいいんですか?
int a=1;
String s;
s = (String)a;
これでエラーになります。

775 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 20:51:20 ]
Integer.toString(a);
あるいは
String.format("%d", a);


776 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 20:54:47 ]
>>775
ありがとうございます。

777 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 21:04:52 ]
StringBuffer sb = new StringBuffer();
String s = sb.append(a).toString();


778 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 21:09:39 ]
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
pw.printf("%d", a);
pw.flush();
String s = sw.toString();


779 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 21:11:17 ]
>>777-778
面白い?

780 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 21:14:27 ]
「int を String に変換」 はできるけど、「int を String にキャスト」 は不可能だと思うが……

Integer.toString(v) も『キャスト』って呼んでいいの?



781 名前:772 mailto:sage [2007/06/23(土) 23:02:08 ]
>>773

おお、そんな方法があったのですね。
自分でダイアログ用のライブラリを作ってしまいましたorz


782 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 23:04:07 ]
変数の帰り値を取得するのってどうするのでしょうか?

PHPの場合は
function test(&$abc, &$def) {
}

という感じだったのですが、javaの場合??になっています。


783 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 23:05:10 ]
>>780
>>774に対する回答としては、「キャストできない」が正解だろうな。
>>775のやり方は「キャストではないけど、変換は可能」だし。

784 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 23:06:46 ]
>>782
[戻り値の型] メソッド名(引数1, 引数2){}
適当にJavaの解説サイトくらい読んでから質問しろな

785 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 23:16:01 ]
PipedOutputStream po = new PipedOutputStream();
PipedInputStream pi = new PipedInputStream(po);
PrintStream ps = new PrintStream(po);
ps.printf("%d\n", a);
ps.flush();
BufferedReader br = new BufferedReader(new InputStreamReader(pi));
String s = br.readLine();


786 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 03:01:39 ]
>>785
パイプが詰まったら止まっちゃうだろう。マルチスレッドで

787 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 05:50:02 ]
詰まらなくても \n 忘れると止まるw

788 名前:デフォルトの名無しさん [2007/06/24(日) 14:21:26 ]
Javaでフォーム最前面表示って可能ですか?
toFront();ループでやってみたんですが
常に最前面表示される方法は無いでしょうか?
アクティブでなくても構いません

789 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 14:42:47 ]
SwingかHTMLか話はそこからだ

790 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 14:49:27 ]
>>788
1.6以降なら java.awt.Window#setAlwaysOnTop(boolean)

それ以前だと標準APIじゃ無理。
JNI使って自力でやったりするしかない。



791 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 14:50:30 ]
>>790
1.5以降だった。

792 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 15:07:20 ]
main(String[] args) の argsの引数を受け取って、
String s1 = args[0];
String s2 = args[1];
という文を書くと、
引数無しで実行するとエラーになってしまいます。
エラーではなく、正常に実行されてif文で「引数を入れてください」みたいなコメントを出したいのですが
どういう条件にすればいいんでしょうか?

793 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 15:17:25 ]
>>792
args.length でチェック。


794 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 15:38:05 ]
プロパティファイルって普通どこにどんな名前で保存するんでしょうか

795 名前:デフォルトの名無しさん [2007/06/24(日) 17:26:43 ]
JFreeChartに関して
同じグラフの中に棒グラフと折れ線グラフを表示する方法はありますか


796 名前:792 mailto:sage [2007/06/24(日) 17:29:46 ]
>>793
出来ました。ありがごうございます

797 名前:デフォルトの名無しさん [2007/06/24(日) 17:36:52 ]
質問があります。入門書に以下のようなサンプル例文があったのですが、
実際のJavaプログラムではこのようなオブジェクト作成、クラス利用は
どのように使われているのでしょうか?

class roadstarCar{

int type;
int engine;

}

void output(){
System.out.println("車の型は" +type);
System.out.println("車のエンジンは" +type);
}

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

roadstarCar eunos = new roadstarCar();

eunos.type = NA6CE;
eunos.engine = B6;

eunos.output();
}

798 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 17:42:19 ]
>>797
それが書かれてた入門書って何?

799 名前:デフォルトの名無しさん [2007/06/24(日) 17:57:58 ]
SWINGで
ボタンにキーを割り当てる方法を教えて頂けませんか?
例えばOKボタンがあって
クリックしてもALT+スペースを押しても
同じ動作をする様にしたいです

800 名前:デフォルトの名無しさん [2007/06/24(日) 18:00:32 ]
コンストラクタが無いね

例で之は酷くない?



801 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 18:02:41 ]
>>797
勘違い系の入門書の筆頭だな、そりゃ

802 名前:デフォルトの名無しさん [2007/06/24(日) 18:05:42 ]
>>798
やさしいJavaって本です。
本当はCarクラスで、フィールド名はnumとgasだったのですがつまらないんで
マツダのロードスターをメインに書き換えてみました。

>>800
この本読んでもつかめなかったのですが、コンストラクタとはいったい何でしょうか?

803 名前:デフォルトの名無しさん [2007/06/24(日) 18:15:16 ]
ダイアログを消したいのですが、なぜか
「dispose() は型 new ActionListener(){} で未定義です。」
と言われます。
サンプルとか見てもこれで消えると思ったのですが…

OK_button.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
dispose();
}
});

804 名前:ぴっころ [2007/06/24(日) 18:26:56 ]
はじめまして。ぴっころです。
Cとは少し違うかもしれませんが、キャリフラグとオーバフローフラグ
の違いを教えて頂けないでしょうか?

805 名前:ぴっころ [2007/06/24(日) 18:27:47 ]
すみません。誤爆でした。

806 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 18:42:19 ]
やっぱ、やさしいjavaか。最近エンカウント率高いな。
そんな本すぐに窓から投げ捨てろ!!

コンストラクタとはインスタンスを初期化するためのしくみ。


あ〜ちなみにやさしいjavaがどういう本かと言うと、
やさしいC++のポインタの説明が無くなったがだけ。
コードがまるっきし同じで説明もまあ、同じ事言ってるかな。
java独自の仕様にはとくに触れてないというか説明してないというか。

んでやさしいC++がCを知らんでもわかるようにってコンセプトでやさしいCって本と内容がかなり重複してる。

第3版なんて5.0対応と謳いつつ、内容は5.0の新機能を使ってないんで5.0でもコンパイラ通るだけ。


807 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 19:12:18 ]
すげー

808 名前:デフォルトの名無しさん [2007/06/24(日) 19:17:55 ]
>>797
色々直してみた
class RoadstarCar{ // クラス名はClassNameのように単語ごとに大文字で始める
String type;
String engine; // 文字列はString型(正確にはクラス)で

public RoadstarCar(String type, String engine){
this.type = type; // コンストラクタでインスタンスを生成すると同時に初期設定する
this.engine = engine; // ここでは引数で渡された文字列で型式とエンジン名を初期化する
}
public void printInfo(){
System.out.println("車の型は" + type); // メソッド名は具体的に分かりやすい名前をつける、
System.out.println("車のエンジンは" + type); // methodName()のように小文字で始めて単語ごとに大文字に
}
}

class Honban{
public static void main(String args[]){
// コンストラクタに型式とエンジン名を文字列として渡して初期化
// 文字列を表現するには" "で囲めばよい
// いきなりNA6CEとか言われてもコンパイラが困っちゃうよ
RoadstarCar eunos = new roadstarCar("NA6CE", "B6");
// ↑クラス名とインスタンス名、メソッド名を明確に区別するためにも
//  大文字と小文字を使い分けるのは重要でしょ
eunos.printInfo(); // 最後にeunosオブジェクトに情報を表示させる
}
}

809 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 19:24:44 ]
>>808
個人的な意見だが、俺なら type と engine は public final にする。

810 名前:デフォルトの名無しさん [2007/06/24(日) 19:25:57 ]
やさしいJavaか・・・乙
コンストラクタを説明するにはインスタンスを考えなきゃいけないんだが、インスタンスはOK?
クラスってのがデータの設計図で、実際にデータとするのがインスタンスだ。
クラスが携帯のアドレス帳のフォーマットで、インスタンスが登録した1件1件のデータと思いねぇ。

コンストラクタってのは、このインスタンスを生成する時に1回だけ呼び出される特殊なメソッド。
何か特別なこと(初期値の設定)とかする場合もあれば、何もしない場合もある。



811 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 19:30:03 ]
てか、やさしいjavaは576頁あって半分以上が変数・配列・制御文だからな。

>>808
コンスタラクタ付けただけかい。
carクラスにpublic void printInfo()はやめようぜ。

812 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 19:44:54 ]
>>803
・取り囲むクラスに dispose() が無い。
>>803 が静的文脈内にあるので、インスタンスメソッド dispose() を呼び出せない。

のどっちか。

813 名前:デフォルトの名無しさん [2007/06/24(日) 19:47:08 ]
>>811
それってどんなボッタ?

814 名前:797 [2007/06/24(日) 19:54:22 ]
すいません。やさしいJavaのレッスン8からレッスン10をずっと読み直していました。

>>806
本屋のPC書籍のところに大ベストセラーで置いてあって、他の本より安かったんで買ってみました。
この手のプログラミング言語は初めてだったので、これでいいかと思い選びました。
Javaはオブジェクト指向言語らしいのですが、本にはオブジェクト指向プログラムとは何かの説明がまったくないので
広辞苑で調べてみたのですが、ひとつひとつのクラスに役割をもたせて、複数のクラスでひとつの処理をする、という事であっているのでしょうか?
カバーの後ろ開きに載ってるやさしいシリーズ、全部おなじ内容だったんですね。流石、経済学部卒ですね>作者

>>808
補足ありがとうございます。今、理解しながら読んでいます。

>>810
本には「コード上で作成される車1台1台の事をオブジェクト、またはインスタンスと呼びます。
本書ではオブジェクトと呼ぶことにしましょう。」

とあるのですが、>クラスが携帯のアドレス帳のフォーマットで、インスタンスが登録した1件1件のデータと思いねぇ。
と説明されれば一発でわかるのに対して、車で解説されると逆に混乱してしまいますね。
本書に、Car car1 = new Car(); とあり、これでインスタンスを作成してるっぽいのですが
これを宣言する事によって、>>797で書いた例文だとhonbanクラスからroadStarCarクラスを呼び出す事が出来るようになる
という事でしょうか?

815 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:01:30 ]
>>814
君に「安物買いの銭失い」という言葉を贈ろう。

本は複数買ったほうが良い。1度に一気に買わなくてもいいから。
それぞれの記述の違いを見比べると本質が理解できる場合が多いよ。

816 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:04:40 ]
Core Javaに一刀入魂!

817 名前:デフォルトの名無しさん [2007/06/24(日) 20:07:14 ]
前面にIE
後ろにJavaアプリ(SWING)
の状態でIEがアクティブの時にキーストローク送って裏に有るJavaアプリを
操作する方法は無いでしょうか?

818 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:09:10 ]
>>799
InputMap

819 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:10:07 ]
JSPのELで、オブジェクトのアクセッサを介さずに、publicなインスタンス変数に直接アクセスすることはできますか。
他人の作ったクラスで、publicなインスタンス変数にアクセスするものがあるので。

820 名前:810 [2007/06/24(日) 20:17:31 ]
クラスとインスタンスの例えで、車とか動物だったらその本はまずNG

>>814
インスタンスを生成するってのは、まんまデータを作るって事。
変数を宣言してるので、car1はそのデータに名前をつけていると考えればいい。
つまり、Car car2 = new Car() と書けば、もう1つデータ(インスタンス)が作成させる。
(この辺の例えもアドレスデータで考える方が納得しやすい)

なんで、呼び出すことができるってのは間違っていないけど、まずはデータとして利用できるようになるって考えるべき。
アドレスデータであれば、登録(インスタンス化)したんで、見ることができるようになったわけだ。
例えばこんな感じ
System.out.println("車の型は" + car1.type);
car1のtypeを読み出している
ここまで理解できてから、「メソッド」という機能を習得する
これはクラス(データ)に操作(振る舞い)を持たせることができる機能



821 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:26:03 ]
メソッドや変数にstaticをつけると、クラスメソッドやクラス変数になるのはわかるのですが、
classにstaticをつけると、どのような処理になるのでしょうか?

822 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:28:51 ]
>>821
静的メンバクラスになる。
static がなければ内部クラスになる。

823 名前:808 [2007/06/24(日) 20:29:27 ]
>>812
ありがとうございます。

なぜか、ダイアログをfinalでnewしたらいけました・…


824 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:31:20 ]
>>821
前提として1つのクラスの中に別のクラスを記述する場合にしかclassにstaticは使わない
インナークラスっていうんだが、暫くはないものとして考えてOKだと思われ

825 名前:デフォルトの名無しさん [2007/06/24(日) 21:00:10 ]
>>822,824
ありがとうございます。
調べてみたところ、静的メンバクラスというのは、
クラス配下に静的メンバだけしか持たないということらしいのですが、
一体、どういったときに使用するのでしょうか?

826 名前:736 mailto:sage [2007/06/24(日) 21:04:04 ]
>>740さん
10日でおぼえるJava入門教室 第二版
という本なのですが・・・・
どうでしょうか?

827 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 21:17:13 ]
>>826
思いっきり丸の内じゃねーかwww

828 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 21:21:17 ]
>>825
> クラス配下に静的メンバだけしか持たない
逆。内部クラスは静的メンバをもてない。

内部クラスって用語は、結構混乱があるので注意。
本や人によっては「入れ子になったクラス」全般を指してたりする。
俺は言語規定の
> 内部クラス(inner class)は,明示的又は暗黙にstaticと宣言されない入れ子クラスとする。
って定義にしたがってるだけ。

829 名前:797 [2007/06/24(日) 21:32:30 ]
>>815
大体読んだのですが、そんな気がしてきました。
表面を軽く説明して読者をわかった気にさせる感じですね。
明日、>>816さんが奨めているCore Javaという本を大きめの書店に探しにいってみます。

>>820
ちょっとアドレス帳で作ってみました。こんな感じでしょうか?
この場合のメソッドとは何でしょうか?
本の方には、「クラスの機能を表す仕組み」とあるのですが、このプログラムの場合
アドレスブックに載っているデータを表示するのが目的なので、system.out〜の部分がメソッドになるのでしょうか?

830 名前:797 [2007/06/24(日) 21:38:47 ]
改行が多すぎると言われたので分けました。

class Addressbook{
String name;
String address;
int phonenum;

public Addressbook(String n, String a, int p){
n=name;
a=address;
p=phonenum;
}

public void show(){
system.out.println("名前は"+name);
system.out.println("住所は"+address);
system.out.println("TELは"+phone);
}

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

Addressbook sato = new Addressbook();
sato.name = "佐藤";
sato.address = "東京都港区赤坂4";
sato.phone = 0355490000;

sato.show();
}
}



831 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 21:47:28 ]
show()がAddressbookクラスのメソッド
ほかにも、
public String 居住する都道府県を取得();
public void こいつに電話をかける();
とかいろいろ考えられるでしょ

832 名前:デフォルトの名無しさん [2007/06/24(日) 21:53:04 ]
>>828
内部クラス != 静的メンバクラスですか?

内部クラス(インナークラス)・・・クラスにstaticがつかず、静的メンバをもてない。
静的メンバクラス・・・クラスにstaticがつく。静的メンバを持っている??? ←ここが分かりません。


833 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 22:04:10 ]
staticが付いたクラスは名前の前に (外部のクラスの名前). が付いただけの独立したクラス

834 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 22:05:02 ]
>>832
静的メンバクラスは、インスタンスメンバも 静的メンバを持てる。
内部クラスは、インスタンスメンバは持てるが 静的メンバを持てない。

835 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 22:06:20 ]
× 静的メンバクラスは、インスタンスメンバも 静的メンバを持てる。
○ 静的メンバクラスは、インスタンスメンバも 静的メンバも持てる。

836 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 22:09:04 ]
>>832
実は全然違う。

public class Sample {
    public static class Inner01 {  // 静的内部クラス
        public String foo() { return Sample.this.toString(); }  // この行でコンパイルエラー
    }
    public class Inner02 {   // 非静的内部クラス
        public String foo() { return Sample.this.toString(); }
    }
}

new Sample.Inner01(); // クラス Sample 外からの Inner01 の new 方法
new Sample().Inner02(); // クラス Sample 外からの Inner02 の new 方法


静的内部クラスは、外部クラスのインスタンスを必要としない。
一方、非静的内部クラスは外部クラスのインスタンスを必要とするけど、その代わりそのインスタンスに暗黙的にアクセスできる。

837 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 22:10:28 ]
間違えた。

new Sample().new Inner02();

838 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 22:12:43 ]
>>827
そんなに糞なのか?
恐いものみたさに立ち読みしてみるか

839 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 22:21:31 ]
class Sample{
private int value;
static class InnerClass{
private Sample 外部クラスのインスタンス;
public InnerClass(Sample soto){外部クラスのインスタンス = soto;}
public void Hoge(){外部クラスのインスタンス.value = 2;}
}
これが内部クラス
実際C#だとこんな風にする

840 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 22:23:59 ]
実際っていうか、C# の内部クラスは java の静的内部クラスで、
java における非静的内部クラスは C# には無いからなぁ……



841 名前:デフォルトの名無しさん [2007/06/24(日) 22:25:56 ]
>>833-
みなさん、ありがとうございます。
むずかしいですね。
よく整理したいと思います。

842 名前:デフォルトの名無しさん [2007/06/24(日) 22:47:35 ]
フィールドは必要がなければprivate にしてカプセル化したほうが
よりスマート
クラスのできればpublic private 等を上手く使ったほうがいいだろう
javaのこういた部分は洗練されてるので私は好きですね

843 名前:デフォルトの名無しさん [2007/06/24(日) 23:32:24 ]
ある数以下に含まれている素数をすべてスクロールリストに表示するプログラムを作っているのですが
どうしても上手くいきません。どこがおかしいか指摘していただけるでしょうか?

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


public class ex2a extends JFrame {
JTextField f1 = new JTextField();
JButton b1 = new JButton("変更");

844 名前:843 mailto:sage [2007/06/24(日) 23:33:41 ]
すいませんまちがえました。以下が本物です。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ex2f extends JFrame {
JTextField f1 = new JTextField();
DefaultListModel model = new DefaultListModel();
JList l1 = new JList(model);
JButton b1 = new JButton("表示");


845 名前:843 mailto:sage [2007/06/24(日) 23:34:49 ]

public ex2a() {
setSize(400, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane(); c.setLayout(null);
c.add(f1); f1.setBounds(40, 40, 180, 40);
c.add(b1); b1.setBounds(240, 40, 80, 40);
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
int n = (new Integer(f1.getText())).intValue();
boolean sosu = true;
for(int i = 2; i < n; ++i) {
if((n % i) == 0) { sosu = false; }
}
f1.setText("prime number : " + sosu);
}
});
}
public static void main(String[] args) {
(new ex2a()).setVisible(true);
}
}

846 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 00:07:13 ]
なにがやりたいのかがわからない。
JListに表示したいのならば、JListに追加する。
actionPerfomedの中は、
                int n = (new Integer(f1.getText())).intValue();
                Vector primeList = new Vector();
                for (int i = 2; i <= n; ++i) {
                     if(i が 素数) primeList.add(new Integer(i));
                }
                l1.setListData(primeList);
こんな感じだ。

847 名前:デフォルトの名無しさん [2007/06/25(月) 00:18:42 ]
>>817
は不可能なんでしょうか?
おねがいします

848 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 00:22:49 ]
>>847
WindowsアプリとJavaアプリのとの違いを勉強しておいで

849 名前:デフォルトの名無しさん [2007/06/25(月) 00:31:30 ]
dll経由のネイティブインターフェイスを使ったり
ランタイムをつかったり
いろんな方法があるので、具体的にどんな操作を
行いたいのかが纏まってからの方がよさそう

850 名前:デフォルトの名無しさん [2007/06/25(月) 00:35:02 ]
>>848,849
JNIで実装したいのですが、、



851 名前:843 mailto:sage [2007/06/25(月) 01:05:02 ]
>>846
ありがとうございます。Vectorの使い方がよく分からなかったので、配列を使ってやってみたのですが
シンボルが見つからないとエラーがでてしまいました。一体どこがおかしいのでしょうか?たびたび申
しわけございません。

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

public class ex2f extends JFrame {
JTextField f1 = new JTextField();
JList l1 = new JList();
JButton b1 = new JButton("表示");


852 名前:843 mailto:sage [2007/06/25(月) 01:06:33 ]
public ex2f() {
setSize(400, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane(); c.setLayout(null);
c.add(f1); f1.setBounds(40, 40, 180, 40);
c.add(l1); l1.setBounds(40, 100, 180, 40);
c.add(b1); b1.setBounds(240, 40, 80, 40);
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
int m = (new Integer(f1.getText())).intValue();
int j = 0;
int[] primeList = new int[100];
for(int n = 1; n <= m; ++n) {
boolean sosu = true;
for(int i = 2; i < n; ++i) {
if((n % i) == 0) { sosu = false; }
}
if(sosu) { primeList[j] = n; ++j; }
}
l1.setListData(primeList);
}
});
}
public static void main(String[] args) {
(new ex2f()).setVisible(true);
}
}

853 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 01:40:05 ]
シンボル未解決なんてどうせどっかタイプミスしてんだろ。
エラーメッセージに出てる行とその前後をよく見直せ。

854 名前:749 [2007/06/25(月) 02:09:03 ]
>>771
参考になりました。
無事実装できました。

sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29498
uproda11.2ch-library.com/src/1111460.png

855 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 04:16:38 ]
おめでとう

856 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 07:38:38 ]
>>843
配列を使うほうが難しいのでVectorを勉強するべき
時に、i++ でなくて ++i を好んで使うのはなんで?

857 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 07:39:30 ]
補足し忘れた。
VectorはArrayListと使い方は一緒

858 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 08:07:05 ]
C++ 使いはイテレータの関係上 ++i を好む傾向がある。

859 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 09:23:49 ]
long型より大きい数を使いたい場合には変数はどのようにすればいいのでしょうか?

860 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 09:27:29 ]
BigInt



861 名前:デフォルトの名無しさん [2007/06/25(月) 10:21:25 ]
>>859
ヘルプで変数見たらサイズとか範囲とかあるだろ?
そんなことすら調べれないならPGなんかすんな


862 名前:859 [2007/06/25(月) 10:28:37 ]
>>861
お前には聞いてない。

863 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 10:44:10 ]
>>862

>>860
>>861

864 名前:デフォルトの名無しさん [2007/06/25(月) 10:44:27 ]
#include<stdio.h>
#include<time.h>
void main()
{
int a,b,c,d,e,hp1,hp2=100,etou;


printf("相手を選んでください。\n1.江藤(Lv1) 2.シーツ(Lv2) 3.金本(Lv3)\n");
scanf("%d",&b);
printf("\n");
if(b==1)
{ hp1=100;
while(hp1>0)
{
a=time(0);
a=a%21;


865 名前:デフォルトの名無しさん [2007/06/25(月) 10:49:08 ]
etou=time(0);
etou=etou%35;

printf("プレイヤー(HP:%d)vs江藤(HP:%d)\n",hp1,hp2);
printf("選択してください。 1.攻撃 2.寝る\n");
scanf("%d",&c);printf("\n");
if(c==1)
{
printf("プレイヤーは江藤を殴った。\n江藤に%dのダメージをあたえた!!\n\n",a);
hp2=hp2-a;
if(hp2<=0){e=1;}
else if(hp2>0){
printf("江藤の逆襲だ!\nプレイヤーは%dのダメージをくらった!!\n\n",etou/2);
hp1=hp1-(etou/2);
}
}

866 名前:デフォルトの名無しさん [2007/06/25(月) 10:49:44 ]
晒していい?答えは聞いてない!

内部型がどうこういってるやつは
javafaq.jp/ のS14~16読んでこい。

867 名前:デフォルトの名無しさん [2007/06/25(月) 10:50:47 ]
else if(c==2)
{
if(hp2>0){
printf("江藤の攻撃だ!\nプレイヤーは%dのダメージをくらった!!\n\n",etou/2);
hp1=hp1-(etou/2);}
else if(hp1<0){e=2;}
}


}
if(e==1)printf("あなたの勝ちです!!\n");
else if(e==2){printf("あなたの負けです!!\n");}

}

printf("ゲーム終了です\n");
}

868 名前:デフォルトの名無しさん [2007/06/25(月) 10:52:49 ]
>>859
またお前か
最近ム板で暴れまわってるなw

猛威を振るう台風のようだ
くだらん事で荒しまくりwwww

869 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 13:03:48 ]
もの凄い初心者ですまんとです
eclipse+VEでSWTで何か作っとるとですが
イメージを貼り付ける方法がわからんとです
「Image xxx;」とかするとエラーになるとです
誰か教えて欲しいとです

870 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 14:25:33 ]
ものすごい初心者ならばコンソールアプリケーションから学べ



871 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 14:29:27 ]
それはコマンドプロントとかでやるヤツのことですか?
一応やったとです

872 名前:デフォルトの名無しさん [2007/06/25(月) 14:45:07 ]
try chatchは条件分岐に使ってもよいのでしょうか?
例えばArrayIndexExceptionが起きたら、違う処理をさせるとかです。
たくさんやる処理なのでif文で分岐させるのと、
どっちが速いかとか気になります。

873 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 14:49:03 ]
>>872
タブー
try-catchは例外処理の為の仕組みだから条件分岐には使用しちゃダメ
ちなみにパフォーマンスも悪い
例外ケースが最速になるような最適化をすると思うかい?

874 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 14:49:11 ]
基本的に例外は遅いし、
プログラムを読む時に基本的にまずエラー処理の文脈で理解されるものだから、
単なる条件分岐の代わりとして try-catch は使わないのが基本。

大抵は補助的に関数を使うこと等で解決できると思うが。

875 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 15:29:13 ]
初心者な質問ですみませんが、メインメソッドに対してString型以外
(例えばint)を引数として渡すにはどうすればよいでしょうか。

public static void main(int args)ではコンパイルエラーでした。

876 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 15:31:28 ]
>>875
コンパイルエラーが起きるとも思えんが。

877 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 15:35:03 ]
ありがとうございます。
アルェーEclipseからfatalなんちゃらって文句言われたんですが…。
しかし、構文としては問題ないみたいですね。
ケアレスミス含め、他の部分を見直すことにします。

878 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 15:39:06 ]
public static void main(String[] args)
はないとだめだからな。
Javaはここから以外で始まらない

879 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 15:42:14 ]
>>875
普通、シェルがコマンドライン引数としてjavaプログラムに渡す引数は文字列しかない。
引数に数字が入っていてもそれは数字を表す文字であって数値とは解釈されない。
数値と解釈するか文字列と解釈するかは受け取る側のプログラムに任されている。
なので、public static void main(String[] args)で受けて、
引数をintとして解釈したいならInteger#parseIntなり他の手段なりで、
文字列をintに変換する必要がある。

880 名前:デフォルトの名無しさん [2007/06/25(月) 15:42:58 ]
>>872-873
イベント駆動型の条件分岐はあるけどね




881 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 15:51:22 ]
難読化の手法の一つとしては条件分岐を例外処理に書き換えるってのがあるけれど、
実行効率とかを考えると使いどころが難しいし、書き換えは人間がやる仕事ではない。
「たくさんやる処理」に適用するならなおさら

882 名前:デフォルトの名無しさん [2007/06/25(月) 17:02:33 ]
public static void main(String[] args){
try{
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = Integer.parseInt(args[2]);
こんなことするのは邪道ですか?
}catch(Exception e){
System.err.println("usage hogehoge");
}
}


883 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 17:06:44 ]
>>882
どこが邪道だと思うのかを書かないと何とも言えない

884 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 17:19:04 ]
>>882
args の長さを最初に1回チェックすればいいだけだろ?
何で例外使うのか。

885 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 17:30:26 ]
Exceptionでcatchする時点でタコ

886 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 17:34:13 ]
>>884
はあ?長さ?

887 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 17:50:56 ]
ぷww
 length
【名-1】 長さ、全長{ぜんちょう}、丈

888 名前:デフォルトの名無しさん [2007/06/25(月) 18:04:51 ]
ばかばっかだなw

889 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 18:10:35 ]
>>882
問題なし

890 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 18:22:58 ]
Integer.parseInt なら大した処理じゃないからいいように見えるが、
その処理がもの凄い時間がかかる場合は?
とか考えると、先にコマンドライン引数の個数をチェックした方が一般的にはいい。
個数だけじゃ判定できないって場合は別だが。



891 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 18:38:10 ]
初めて来てみた。で、いきなり笑った
もう来ません。ありがとうございましたw

892 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 19:03:54 ]
アプレットについて質問です。

Color fontcolor=new Color(0,0,255);
String v23=getParameter("fontcolor");
if( v23!=null )
fontcolor=new Color(Integer.parseInt(v23,16));

System.out.println(fontcolor);
System.out.println(v23);

>java.awt.Color[r=0,g=0,b=255]
>null

色情報を取り出して(0,0,255) => (0000FF)と16進数に変換して
もう一度 Colorオブジェクトを生成することを示すコードだとは思うのですが、
どう意図でもってこう記述されているのかわかりません ><
古いバージョンのVMだと意味があるとか、そういうことなのでしょうか?
よろしくお願いします。

893 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 19:14:13 ]
>>892
Color(0,0,255) はパラメータが無かったときのデフォルト色。
Color(0,0,255) は小さなオブジェクトだから先に生成してあとで捨てることになっても問題はないだろう。
下のように書いてもいい。
Color fontcolor;
String v23=getParameter("fontcolor"); 
if( v23!=null ) fontcolor=new Color(Integer.parseInt(v23,16)); 
else fontcolor=new Color(0,0,255);

894 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 19:30:53 ]
>>892
<param name="fontcolor" value="ff00ff">
というのがあれば、0xff00ff (255,0,255)の色になり、なければ
0,0,255のまま



895 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 19:40:45 ]
----------Test01.java-----------
class Test01{
public static void main(String[] args){
Test02 t2 = new Test02();
System.out.println(t2.s);
}
}
--------------------------------

----------Test02.java-----------
class Test02{
String s = "test";
}
--------------------------------


例えば上のような2つのファイルがあった時、Test01.javaはコンパイルする必要があるけど
Test02.javaはコンパイルの必要が無いですよね。
コンパイルが必要が不要かってのは具体的にどう判断すればいいんでしょうか?

896 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 19:49:39 ]
>>895
自分でコードを書くとき、ふつうは不必要なコードなんて書かない。
そうでないケースでも、必要か不必要か迷ってる時間があったらコンパ
イルしてしまえばいい。

antとかEclipseとか使うようになれば、コンパイルの手間なんて気にな
らなくなる。


897 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 19:58:05 ]
Test02.javaもコンパイル必要

898 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:00:45 ]
SWTのwin32をダウンロードしたら
swt-awt-win32-xxxx.dll
swt-gdip-win32-xxxx.dll
swt-wgl-win32-xxxx.dll
swt-win32-xxxx.dll
といくつもdllが付いてきたんですが
swt-win32-xxxx.dll は無いと動かないみたいですけど
他のは無くてもとりあえず動いています
どういうときに使うのでしょうか?


899 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:04:02 ]
>>887
例外処理を使ってるのはlengthの問題じゃないってことだよ

900 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:33:56 ]
>>885
ParseException と ArrayIndexException の
どちらも発生する可能性あるじゃないですか!!

その上でどっちが発生しても同じメッセージ出すんだから
まとめて Exception にした方が効率いいじゃないですか?




901 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:37:47 ]
誤爆?何の言語使ってるの?
NumberFormatException
ArrayIndexOutOfBoundsException


902 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:38:32 ]
ワラタ
まあ実際例外処理なんてそんなもんだろw

903 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:01:03 ]
>>900はそれでいいので、決してJavaが書けますとか言ってプロジェクトに来ないでくださいね

904 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:02:31 ]
>>900はネタで書いてんだろ

905 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:25:47 ]
7割くらい本気です

906 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 22:10:46 ]
Exception サブクラス全部拾っちゃうだろ常識的に考えて・・・(=ω=.)

RuntimeExceptionは拾っちゃダメだろ。

907 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 22:16:20 ]
main で最終的に Exception 拾うのって本当にナシなのかな。
考慮されてない例外が投げられた場合って、
例外拾わないままエラー終了してくれた方がいいのか?
製品でも?

908 名前:875 mailto:sage [2007/06/25(月) 22:20:29 ]
>>878,879
ありがとうございます。理解しました。

909 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 22:25:51 ]
>>907
マジレスしとけば、Exceptionで拾って復帰することに意味があり、復帰させる事ができるならば、catchしてもいいと思う。
Webアプリでも創れば解るけど、フレームワーク周りでExceptionはcatchされて処理されるケースが多い。
mainで拾わずに起動プロセスに投げても、stackTraceは表示されるわけだが、それでもわざわざ拾う必要はあるかい?

910 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 22:28:16 ]
>>909
ユーザを混乱させないために、
分かりやすい形でエラーが発生した旨を表示した方が
いいんじゃないかな、とか思ったりするんだよね。



911 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 22:41:05 ]
>>909
だったら各所で入力チェックと例外処理を記述しろよw
mainで拾う例外なんてぬるぽとか、要はバグだろ?
ユーザーに分かりやすい様に、ぬるぽで落ちました、サーセンwwwとでも表示するのかい。

912 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 22:48:11 ]
そう。要はバグ。
まあ、Java なら拾わなくていいのかな・・・。

913 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 23:06:28 ]
ていうかwibアプリのフレームワークという特殊な例をそこで出すか?
それ自体まさに例外な気がする。

914 名前:730 [2007/06/26(火) 00:02:10 ]
>>731
うまくいきました。
レスありがとうございました。

915 名前:デフォルトの名無しさん [2007/06/26(火) 00:07:05 ]
お薦めは特に無いがJAVAが簡単でいんじゃね、汎用性からいってもCかJAVAかになると思う
汎用系の未経験求人なんてあるのだろうか、多分WEBオープン系がほとんどじゃね

C言語は組込系の主流、組込系ってのは名前の通り、機械に組み込まれて変更がきかないタイプのプログラム
車の制御システムとか、プレステのゲームソフトとかに当たる
市場に出回ってからバグ見つかると直すのに超費用がかかるので、ゲーム会社とかはよく「仕様です」と言い張るw
言語としては普通だけどアドレス管理やメモリ管理がだるい、あと専門卒の若い子がやたらお出来になる

JAVAはWEBオープン系の主流、オープン系ってのは、まぁお察しの通りインターネットみたく皆に開かれたプログラム
yahooのような検索エンジンとか、amazonのようなお買い物サイトとかに当たる
運用開始後も楽々バグが直せるよヘヘイヘーイ
言語としてはかなり簡単、Cで手動な部分も自動で管理してくれる、でも誰にでもできる感じがCマニアには不評

取引先はどこだろうと似たようなものを作るので現時点ではほぼ意味なし、何でもいい
ただし所属会社が固有の業界に特化していた場合、そこがキャリアの強みになり弱みにもなるので、転職時に響いてくる
例えば銀行・金融系などは只のIT屋は絶対に雇ってくれない、専門知識と十分な業界経験が最低条件になる

ちなみに数学・英語は高2程度できれば十分(英語は語彙が多いにこした事はない)
証券のプロジェクトとかでデフォルト機能外の複雑な演算を組まされる事もあるが、基本的にはデフォルト機能で事足りる
まぁネットOKのプロジェクトなら分からない事は逐次ネットで調べればよく、ネットNGなら回りの人に聞けばいいので

916 名前:デフォルトの名無しさん [2007/06/26(火) 01:07:00 ]
JAVASDK1.6環境で、build.xmlを使ってAntしたんですが、
「シンボルを見つけられません。」を連呼してとまってしまいます。

[javac] C:\L1J\src\l1j\server\server\MobTable.java:81: シンボルを見つけられ
ません。
[javac] シンボル: メソッド setHp(int)
[javac] 場所 : l1j.server.server.templates.L1Npc の クラス
[javac] l1npc.setHp(j);
[javac] ^

Wikiも見たり、環境変数なんかも調べたんですがまだわかりません。
tomcatなど他にもいろいろ入れなくてはいけないんでしょうか…
よろしくお願いいたします。

917 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 01:26:00 ]
setHp(int)がprivateメソッドになってるんじゃないの?

918 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 02:19:16 ]
もしそれならこんな風にならない?

[javac] l1npc.setHp(j);
[javac]      ^



919 名前:916 [2007/06/26(火) 06:59:00 ]
ちょっとずれていました…

[javac] l1npc.setHp(j);
[javac]    ^

「ドット」.を指し示している状態です

920 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 11:43:46 ]
どう見ても l1npc にシンボル setHp が無いんだろう。



921 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:06:38 ]
◎渡してる j がint型ではない
○setHpじゃなくてsetHPとかSetHpとかになってる
▲setHpがprivateメソッドになってる


922 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 13:22:58 ]
a1,a2,a3,a4,…a20
という変数があった時、
これらの変数をfor文で一気に配列に代入することって可能ですか?

int[] ia = new int[20];
for(int i = 0; i < 20; i++) {
ia[i] =

この後が分かりません

923 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 13:39:00 ]
>>922
不可能


924 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 13:42:02 ]
>>923
そうでしたか、ありがとうございます。

925 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 13:59:37 ]
listなら可能

926 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 14:28:05 ]
>>922
どうしてもならリフレクションでできるけど、
まずはそういう変数を作ってる時点でダメだな。

927 名前:デフォルトの名無しさん [2007/06/26(火) 14:28:32 ]
Servlet って何でこんなにややこしいんやろ。PHP みたいにお気軽にできんのかな。

928 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 14:45:28 ]
そりゃLLと比べりゃjavaはややこしいだろうよ。
groovyとかruby使えば良いじゃん。

929 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 14:51:21 ]
servletの何がややこしいんだ?
基本的な概念だけ覚えてあとはクラスをその都度調べればいいだけだ

930 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 14:56:46 ]
いや、多分サーバを用意する必要があるのが面倒っていってるんだろう。
PHPを例に出すってことは。
PHPは、Apacheのモジュール有効にするだけでいいし、という話かと。

CGI経由で、起動するJavaのテンプレート系フレームワークがあってもいいかな、とは思う。



931 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 15:02:04 ]
>>929
PHPに比べたらややこしいだろ。
ファイルアップロードとかで差が出る。

932 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 15:31:22 ]
そう、ファイルアップロードは致命的だよな。デフォルトで Java にないのは。

933 名前:デフォルトの名無しさん [2007/06/26(火) 16:30:21 ]
<%@ page language="java" pageEncoding="UTF-8" %>
<%@ page import="java.io.*" %>

<%
response.setContentType( "application/octet-stream;charset=Windows-31J" );
response.setHeader( "Content-Disposition", "attachment; filename=\"sample.csv\"");

String text = "sample!!!";
out.write( text );
%>

上のプログラム動かしたら冒頭に改行が3個入るんですけど、
入らないようにする方法ってないでしょうか?

934 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 16:31:00 ]
System.out.printlnのoutがPrintStream型でバイナリのストリームってのが納得いきません
入力を受け取るInputStreamのinも同様に納得がいかないです
文字を入出力してるんだからテキストデータのストリームであるべきじゃないんですか?


935 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 16:42:00 ]
>>933
%> と <% の間の改行を消すといいかも


936 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 16:42:37 ]
>>934
標準入出力はリダイレクトでバイナリファイル扱う可能性があるので、
バイナリのストリームの方が良い。テキストからバイナリに
完全な復元ができない事も考えればバイナリであるべき。

System.in がテキストデータを扱う事の方が多いのに
InputStream だとバイナリしか取れなくて、いちいち
InputStreamReader でラップするのが面倒ってのは同意するけど。

937 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 16:44:16 ]
>>934
gzip -dc foo.tar.gz | tar xf -
みたいに、標準入出力はバイナリを受け渡すことも多いのです。


938 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 16:46:43 ]
文字を入出力しているという前提が間違っている、ということで。
>>934 の憤りはどこへぶつければいいのかwww

939 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 16:55:38 ]
>>935
改行削ったら上手くいきました!
レスありがとう!!

940 名前:934 mailto:sage [2007/06/26(火) 17:16:18 ]
なるほど…バイナリもテキストもどっちも扱う可能性があるので
変換可能なバイナリストリームを採用してるんですね。

でも、System.out.println("Hello"); のようなありきたりの文は、
Helloという文字列のテキストデータをバイナリストリームで扱ってることになりませんか?
InputStreamReaderの場合と同じようにPrintWriterでラップするなら分かるんですが。



941 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 17:36:27 ]
端末から見たらテキストなんてエンコーディングに従ったバイト列だろ。
out.print形式はjavaがデフォルトのエンコーディングを使って変換してるだけ。
たしかjavadocに書いてあるぞ。

ところでjavaって標準出力がDOS-BOXなどの端末だった場合、
System.outへ一度出力した文字は消せないの?
テキストがスクロールアウトして新しいテキストが流れてくるんじゃなくて
ローグライクみたいにスクロールさせずに画面更新したりクリアしたりってどうするの?

942 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 17:37:03 ]
>>940
そのままバイナリストリームで扱ってて、最終的にシェルがそれをテキストに変換にしてるんじゃね?

943 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 17:40:22 ]
>>941
端末操作はモロ環境依存

944 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 17:42:12 ]
>>941
> System.outへ一度出力した文字は消せないの?
改行前なら \r で行頭に戻れるかもしんない。
端末と System.out の実装の両方に依存するけど。

> ローグライクみたいにスクロールさせずに画面更新したりクリアしたり
jcurses みたいな外部ライブラリ使ってくれ。

945 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 17:45:57 ]
というかテキストストリームとバイトストリームの区別って改行コードの扱いだけだったと思ってたんだが違うの?

946 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 17:46:41 ]
>>942
その理論だと標準入力をInputStreamReaderでラッピングする必要も無い気がする

947 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:14:42 ]
int型のメソッドでreturnでxという変数を返すとき、mainの条件で「xが帰ってこない場合」というifは作れるのでしょうか?

948 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:15:18 ]
変数 x は返せない

949 名前:デフォルトの名無しさん [2007/06/26(火) 18:25:01 ]
jdbcでpostgreSQLにつなごうとしているのですが、
以下の設定でなぜかNo Suitable Driverと言われてしまいます。
どこがおかしいのでしょうか?
CLASSPATHにはjarファイルの絶対パスを記述しています。
jdbcドライバは、postgresql-8.2-505.jdbc3.jar
postgreSQLは8.2を使っています。


String url = "localhost:5432"; // args[0];
String usr = "test"; // args[1];
String pwd = "test"; // args[2];

// JDBCをここでロード
Class.forName("org.postgresql.Driver");

// 接続
System.out.println("Connecting to Database URL = " + url);
Connection db = DriverManager.getConnection(url, usr,pwd);


950 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:25:56 ]
エルレガーデンのHPでメニューバーがグラデーションになっていてスクロールすると
バックが透けているのですが、javaで出来るんでしょうか?
気になって調べてみたんですが、分からなかったので。。どなたか教えてください。
エルレHP www.ellegarden.jp/ja/index.asp



951 名前:デフォルトの名無しさん [2007/06/26(火) 18:29:58 ]
誰か>>850を、、

952 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:34:18 ]
>>951
いくら出す?

953 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:35:43 ]
何をきっかけとして>>817の処理を行うつもりなの?
IEのスクリプト?

954 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:42:06 ]
>>947
そのメソッドで例外を投げれば、値を返さずにメソッドを終了すること
ができる。mainではtry-catchすればいい。

そんなことはしないで、Integerなどクラスを使って、値を返したくない
ときはnullを返すのが良いと思う。


955 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:47:21 ]
>>950
Javaだとかなり難しい。ウェブ制作板へどうぞ。


956 名前:941 mailto:sage [2007/06/26(火) 18:48:56 ]
thx!
やっぱ依存か。
Consoleクラスが追加されたけど現状だとエコー文字列のマスクしかできないからなぁ。


957 名前:デフォルトの名無しさん [2007/06/26(火) 19:26:11 ]
任意のURLからHTMLの特定部分、例えばTABLEだけを吸い出したい
時に、純粋にJAVAだけを使うのと他のスクリプト言語を併用するのでは
どちらが効率や再利用性の面で優れてますか。

またできたら、上記の場合のお勧めのスクリプト言語を教えてください。

958 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 19:28:46 ]
GroovyやRhinoからjavaのライブラリ使う。
HTMLParserとか。

959 名前:デフォルトの名無しさん [2007/06/26(火) 19:29:24 ]
>>950>>955
java script を使うほうが一般的ですがjavaアプレットでも簡単にできます

960 名前:デフォルトの名無しさん [2007/06/26(火) 19:36:45 ]
Rhinoってサーバサイドで動くんですか?




961 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 19:46:29 ]
javaしか使えないくせに
俺一流プログラマー
みたいな顔してる上司がうぜぇ
Cマスターの俺に指図すんじゃねーよ屑
こんな糞言語使えるだけで満足か
早く市んでくれ

962 名前:デフォルトの名無しさん [2007/06/26(火) 20:10:55 ]
cは開発の能率悪いでしょ

963 名前:デフォルトの名無しさん [2007/06/26(火) 21:02:02 ]
>>957
TidyLibというものがあります。
ほとんどの言語に対するバインディングがあるので、
一度調べてみてください。
商用製品でも採用例が多く、一番実績があると思います。

964 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 23:04:05 ]
>>949
>String url = "localhost:5432"; // args[0];
  ↓
String url = "jdbc:postgresql:dbnamehogehoge";

しかしそのエラーメッセージも不親切だよなw

965 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 23:18:58 ]
Socketって後始末に明示的にclose()呼び出さなくてもいいですか?
SocketインスタンスがGCに回収されるときに自動的にコネクション切断
などの面倒は見てくれるんでしょうか?


966 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 23:40:54 ]
明示的に呼び出せるタイミングがあるなら、そのタイミングでcloseを呼び出せ

967 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 23:54:50 ]
>>965
面倒見てくれるかどうかは実装依存だろう。
SocketもSocketImplもfinalizeはオーバーライドされていないから、
GCのタイミングでの処理は何もしないかもね。
まあ適当な時に適当に切断はされるだろうけど、エレガントに処理されるかどうかは分からん。

968 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 23:57:54 ]
基本的にネイティブなリソースを触った場合GCに任せないで自分で解放する。
ファイナライザ使うのも間違い。

969 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:03:17 ]
>>966-968
レスありがとうございました!
なるほど、close()は明示的に呼び出さないとダメなんですね。
勉強になりました。

970 名前:デフォルトの名無しさん [2007/06/27(水) 00:04:19 ]
GC時に処理させたいならファイナライザを使うのは間違いじゃないと思うがね
最後までその機会が来ないことがあることは想定しておかないといけないが



971 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:06:53 ]
>>970
この質問の場合はfinalizeに処理させるのは間違いだろ。
一般論で質問者を惑わせるな。

972 名前:デフォルトの名無しさん [2007/06/27(水) 00:31:11 ]
便乗ですが

Socket s = new Socket(hogehoge);
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream(), "UTF-8"));

見たいな処理したあとの解放って
s.close();
だけでいい?
br.close();
も必要?
あるいは
InputStreamReader の close() とかもしとかないとだめ?


973 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:32:02 ]
>>970
この場合はGCに任せて良いかどうか判断するのが難しいだろう。
javaのファイナライザがどういうためのものかちゃんと理解してないならなおさら。

974 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:47:58 ]
>>957
JavaにXMLパーザってついてなかったっけ?

975 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:51:00 ]
HTMLはSGMLアプリケーションなんだが。
XMLパーサにHTML食わせても整形式エラー吐くと思うぞ。

976 名前:デフォルトの名無しさん [2007/06/27(水) 00:56:20 ]
>>974
ドキュメント検索したらHTMLパーサも付いてましたね
HTML->JAVA
JAVA->HTML
HTML->HTML

でXMLも噛ませられれば操作上は十分になってきますね

XMLパーサとサーブレット&JSPを使うとXSLは必要なくなるんでしょうかね?

ご回答いただいた方々、まことに有難うございました
いただいた回答の中のRhinoは有用性が高そうなので
検討してみます。


977 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:57:40 ]
>>972
(1) 使ってるラッパークラスのコンストラクタが例外を発生しないこと
(2) ラッパークラスの close がラップしてるクラスの close を呼び出すこと
を確認して、最も外側のクラスの close を対処すればいい。

978 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:57:53 ]
javax.swing.text.html.parser

979 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 01:03:51 ]
>>972
s.close() すれば
s.getInputStream() で得られたストリームも自動的に close() される。

sclose() してない時に br.close() した場合、成功すれば、
s も勝手に close() される。

980 名前:デフォルトの名無しさん [2007/06/27(水) 01:06:08 ]
>>979
IDEによってはエラーを吐きますね。
明示的にクローズした方がいいと思います。



981 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 01:06:11 ]
>>978
あれパーサでパースして結果をレンダラに渡す程度の使い道しか想定してないからなぁ。
パース結果を自分でハンドリングするなら他のライブラリの方が良い。
まあ、それ以前にHotJavaのパーサは3.2finalの独自拡張なんで現行とは少し違うが。

982 名前:デフォルトの名無しさん [2007/06/27(水) 01:09:33 ]
パーサの存在を知らなくて自作してしまったorz


983 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 01:12:37 ]
SGMLのパーサを実装できるほど程の知識と腕があるなら自前が良いけどなw
正規表現なんかで実装しちゃだめだぜ。

984 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 01:16:45 ]
javaでbigintの変数を宣言するときにはどのようにすればよいのでしょうか?
bigint a; のような感じにしても認識してくれません

985 名前:デフォルトの名無しさん [2007/06/27(水) 01:20:31 ]
java.math.BigInteger

986 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 01:22:04 ]
前にもあったぞこのネタ

987 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:25:03 ]
このスレはネタとバグでできています

988 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:30:27 ]
long型でないと数値がオーバーするので、long型の配列を作りたいのですが、
long p[]=new long[(int) (n+1)];だと結局エラーが出てしまいます。どうすればよいでしょうか?

989 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:36:05 ]
>>988
何がどうエラーが出るんだ?
明確なエラーが出るのにその状況とエラーメッセージを書かないのは問題を解決したくないからか?

990 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:41:38 ]
エラトステネスのふるいのメソッドをlong型に変更して扱える最大数を増やしたいのですが、上手く行かないのです。

public static int Primes(int n){
int i,k;
int x[]={0};
int p[]=new int[n+1];
for(i=2; i<=n; i++) p[i]=1;{
for(i=2; i<=n; i++){
if(p[i]==1){
x[0]=i;
for(k=2; i*k<=n; k++) p[i*k]=0;
}
}
}
return x[0];
}



991 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:51:07 ]
>>990
エラーも書けよ

992 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:53:12 ]
エラーは

Exception in thread "main"

です

993 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:57:48 ]
小出しにするなよ、もっといろいろ出てるだろ

994 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:58:16 ]
>>990
配列サイズはintなのでlongは無理。
配列以外のコレクションを使うか、配列を複数用意して使う。
でも単純に考えてもint限界のInteger.MAX_VALUE*8バイトでもギガバイトをはるかに超えてることは認識してる?
そのプログラムのような単純なエラトステネスのふるいはかなり効率が悪いと思うし。

995 名前:デフォルトの名無しさん [2007/06/27(水) 03:03:04 ]
whileに直せばいいじゃん

996 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 03:17:50 ]
> for(i=2; i<=n; i++) p[i]=1;{
ここじゃね?
シンタックスエラー出てない?

997 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 03:19:52 ]
じゃあ1000取り合戦でもしますか

998 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 03:20:00 ]
>>996
文法的には問題ないはずだが、アルゴリズム的には知らん

999 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 03:20:33 ]
殺伐としてきたZE!!!!

1000 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 03:21:15 ]
いやっほーーーーーーーーーーーぅ!!!



1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<292KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef