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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
過去ログ、関連スレの一覧や、
これからJavaでプログラミングを始めたいが、
なにをすればいいか、わからないひとは、下のリンクをクリック。
http://www.wikiroom.com/java/

以下のエラーが表示されて、途方にくれているあなたは、下のリンクを。
「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path%2Cclasspath

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

前スレ。
【初心者】Java質問・相談スレ34【大歓迎】
http://pc2.2ch.net/test/read.cgi/tech/1066718007/

すべてのクラス (Java 2 プラットフォーム SE v1.4.0)
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
Java (TM) 2 SDK ドキュメント
http://java.sun.com/j2se/1.4/ja/docs/ja/index.html
Java言語規定 第2版 目次
http://www.y-adagio.com/public/standards/tr_javalang2/jTOC.doc.html
数字を書き込んだ文字列 String myStr を一桁ずつ int[] myInt に格納するやり方を教えて。
自分で思いついた
  myInt[i] = Integer.parseInt(myStr.substring(i,i));
よりも単純なやり方がありそうな気がするんで。
char[] cs = myStr.toCharArray();
myInt[i] = cs[i] - '0';

getBytes() でもいいし、あとめんどくさいから適当にキャストして
こんなの感じのもある 桁数によるが
int value = new Integer(myStr).intValue();
for ( ...
myInt[i] = value%10;
value /= 10;
>>3
それをやりたいなら
myInt[i] = Integer.parseInt(myStr.substring(i,1));
でしょ
>>6
あなた Perl か何かと間違ってますよ
>>3
myInt[i] = myStr.charAt(i) - '0';
おまいらのは本当に>>3より単純かと問い詰めたい。
>>9
文字コード使うのは一般人には意味不明だろうな
素人にはお勧めできない
コードの意味がわかりやすいのは>>3かな
>>3>>4 とか >>8 が理解できない程度の素人だった、と?
Javaで二重ハッシュってできるのでしょうか?
perlからJavaに乗り換えようと思い勉強中なのですが
なかなか乗っていなくて・・・。
よろしく尾長居しますs。
13大林:03/11/05 19:56
端末(ktermやコマンドプロンプト)で入力した値(double型)をフレームに
表示させたいのですがどうやってフレーム上に表示されるようにするのか
分かりません。誰か御力を貸して頂けませんでしょうか?
また説明が足りないようでしたら聞き返してください。

import java.io.*;
import java.util.*;
import java.awt.Graphics;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.FlowLayout.*;
public class Shikaku11{
public static void main(String args[]) throws IOException{
JFrame frame = new Shikaku11Frame();
frame.show();
System.out.println("PressureAB PressureMidの値を入力しなさい");
}
14大林:03/11/05 19:58
>>13のつづき

public String getDouble() throws IOException{
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String strAB = br.readLine();
String strMid = br.readLine();
double numAB = Integer.parseDouble(strAB);
double numMid = Integer.parseDouble(strMid);
return " " + numAB + " " + numMid;
}}
class Shikaku11Frame extends JFrame{
public Shikaku11Frame(){
final int X_MaxFrameSize = 1024;
final int Y_MaxFrameSize = 768;
setSize(X_MaxFrameSize,Y_MaxFrameSize);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}});
Container contentPane = getContentPane();
contentPane.add(new ShikakuPanel11());
}}
15大林:03/11/05 19:59
>>14の続き

class Shikaku11Panel extends JPanel{
Shikaku11 S11 = new Shikaku11()
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawString(S11.getDouble(), 337, 180);
}}
16デフォルトの名無しさん:03/11/05 20:08
おいおい、GUIはイベント駆動だから
すでに処理終わってるコンソールから受けとろうとしても無理なんじゃないの?
ソースは読んでないけどね
17大林:03/11/05 20:10
とすると、新しくクラスを作ってShikaku11クラスで作ったメソッドを
作成しなければならないのですか?
18デフォルトの名無しさん:03/11/05 20:27
いや、その前に
入力もフレームから受け取る設計した方が自然だろ?
Shikaku11パネルに
テキストフィールドとボタン追加して
テキストフィールドに実数入力
ボタン押すと表示するようにすればいいのではないか?
Java2 SDK ドキュメントの日本語HTMLHelp版を配布している所ってありませんか?

http://www.confluent.fr/javadoc/jdk14e.html

↑のサイトには日本語版がないようなので・・・。
どなたかご存知でしたらよろしくお願いします。
20デフォルトの名無しさん:03/11/05 20:41
class FileSearch2{
public static void main(String[] args){
try{
File fl = new File(args[0]);
FileWriter fw = new FileWriter(fl.getPath(),true);
for(int i=0;i<100;i++ ){
fw.write(i);
System.out.println(i);
}
fw.close();
} catch(IOException e){
System.out.println("ERR:"+e.getMessage());
}
}
}
これを実行すると
Systemには0〜99まで表示されますが
ファイルには文字化けして出力します

どうしてですか?
>>20
> ファイルには文字化けして出力します
キミのプログラムが「文字化けして出力」するように書かれているから。

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/io/Writer.html#write(int)

> 単一文字を書き込みます。書き込まれる文字は、
> 指定された整数値の下位 16 ビットに格納されます。
> 上位 16 ビットは無視されます。

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/io/PrintStream.html#println(int)

> 整数値を出力して、行を終了します。このメソッドは、
> print(int) を呼び出してから println() を呼び出すのと
> 同じように動作します。

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/io/PrintStream.html#print(int)

> 整数を出力します。String.valueOf(int) により作成された文字列は、
> プラットフォームのデフォルトの文字エンコーディングに従って
> バイトに変換され、このバイトが write(int) メソッドとまったく
> 同じ方法で書き込まれます。

> fw.write(i);
は UTF-16 で \u0000 〜 \u0063 まで書き込んでるだけ。
(i==0 のとき '\u0000' が出力される)

> System.out.println(i);
は i が対応する文字列に変換されてから出力される。
(i==0 のとき "0" が出力される)
22デフォルトの名無しさん:03/11/05 20:54
charで書き込まれるからじゃないか?
23大林:03/11/05 20:55
>>18
では、Shikaku11Panelクラス内にShikaku11()メソッドを作り
その中にテキストフィールドやボタンを作っていけば良いのですね。
ありがとうございます。取りあえずその方法でやってみます。
良く分からなかったらまた質問したいと思います。よろしくお願いします。
>>14
ええと、大林ヨネさんだっけ?

>>14 のが上手く動かないのは
paintComponent(Graphics g) 内で入力待ち(S11.getDouble() の br.readLine() とこね)してるのが原因。

まぁ >>18 が言うようにテキストフィールドとか使った方が良いだろね。
26デフォルトの名無しさん:03/11/05 23:31
メモ帳で書こうと思っているんですが
Helloworld.java.txt
のように拡張子がtxtになってしまいます、どうしたら良いですか?
メモ帳を捨てる
283:03/11/05 23:38
遅レスだが、どうもありがとう。
かなり参考になったス。
Javaとして正しいコードだが、あるコンパイラではコンパイルできない
みたいな現象は存在するものなのかい? バージョンとかは別にして。
30デフォルトの名無しさん:03/11/05 23:48
コンパイルは通ってもLinuxとWindowsで微妙に動作違うのはあったなSwing関係の話だけど
31元木:03/11/05 23:57
下のプログラムなのですが、エラーが出てしまいます。最初はフレームだけで表示していたのですが、下のようなプログラムにするとエラーがでて困っています。
どなたかアドバイス頂けませんか?
import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.util.*;

class FooyobiPenel extends JPanel
{
public FooyobiPanel(int[] abc)
{
Label l1=new Label("E");
add(l1);
setLayout(null);
l1.setBounds(30,30,20,20);
if ((abc[0] == 1)&&(abc[1]==1)&&(abc[2]==0)&&(abc[3]==1)) {
l1.setText("YU"); }
else{l1.setText("E");}
} }
class FooyobiFrame extends JFrame{
public FooyobiFrame() {
setSize(300,300);
Container contentPane = getContentPane();
contentPane.add(new FooyobiPanel());
}}
正しくないけどコンパイルは通るってのはいくつかあったね。
33元木:03/11/05 23:58
>>31の続き
public class Fooyobi
{
public static void main(String args[]) throws IOException
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

StringTokenizer tokenizer = new StringTokenizer(in.readLine(), " ");

int[] abc=new int[4];
for(int i=0;i<4;i++){
abc[i]=Integer.parseInt(tokenizer.nextToken());
}
Fooyobi fooyobi = new FooyobiPanel;
fooyobi.pack();
fooyobi.show();
}
}
34デフォルトの名無しさん:03/11/06 00:00
>>26

ファイルの種類を「すべてのファイル」にして保存すれば大丈夫
>>26

ダブルクォートで囲んで保存。
"Helloworld.java" みたいな。
>>32
詳細きぼんぬ
>>31
そういう風にソースだけべたべた貼っても、誰も試しません。
教える側は自分の役には立たないし、お人よしばかりじゃないですから。
どんな「エラー」が出るのかもきちんと書いて下さい。
そうでないと、自己解決させる勉強もしてもらいたいけど、しにくいし。

まぁ一見して
Fooyobi fooyobi = new FooyobiPanel;
これが意味不明だけど。
>>36
JDK 1.3以前 での

 int method(){ return 0; ; }

とか。
3926:03/11/06 02:12
>>34-35
サンクス
無事できました。
メモ帳を捨てるという解は不採用か?
最も妥当に思えるが・・・
>>40
そんな効率のいい回答はつまらない
>>38
return のあとに文(からっぽだけど)が来ているってこと?
(・∀・)つ〃∩ ヘェーヘェー
>>42
1.4のReleaseNoteにも載ってる有名なバグ
44デフォルトの名無しさん:03/11/06 13:18
Javaで特定のディレクトリに存在するファイルを一括処理する
フレームワークってどこかにないんすかね?
たとえばUnixコマンドの
rm -Rf ./*
のようにやるとカレント度ディレクトリに存在する全ての
ファイル、サブディレクトリとその中のファイルも再帰的に一括消去
するというフレームワーク。

Apache Antにもあるfilesetや、 ディレクトリ名/**.java のようにサブディレクトリも
含めて一括してファイルをまとめて扱うことができる
フレームワーク。ないっすかね?


それとも、Compositeパターンで自力で実装するしかないっすか?
>>44
そんなん、フレームワーク使わんでも十数行書けば実現できるんじゃ…
汎用性を意識したのないかなーとおもっただけで。

すくなくとも再帰関数を使うのは確実で、どうせならCompositeパターンを
使ってと。いやどうせなら洗練されたより便利なフレームワークはないものかと思ったんで。

Jakarta Commons に IOというのがあるらしい。
それに対する期待が大。
けどまだ作成途中段階らしい。
ドキュメントすらないのでがんばってソースコードを解読するしかないかな。
>>46
汎用性を意識すれば大規模になるしメンテも大変になる。

十数行で書けるようなモノを汎用性を保ちながら
フレームワークに落としこむなんて無駄な努力は普通はしない。
48デフォルトの名無しさん:03/11/06 15:00
>>26
ファイル名の変更で「.txt」を消せばいいだけやろ。
49デフォルトの名無しさん:03/11/06 15:10
>>48
お前いつもそんな事やってんのか?
50デフォルトの名無しさん:03/11/06 15:36
Swingで複数のリストから選択された項目を
別なリストに表示したいんんですけど、setListData
を使うと片方のリストで選択した項目しか表示されません。
こういう場合にはどんな方法を取ればいいんでしょう?



図で表すとこんなことがしたい(◎は選択されていることを示す)

ListA{x, ◎y, z}
→ ListC{y, b}
ListB{a, ◎b, c}
>>50
setListData を使うと両方のリストで選択した項目を表示できるよ。
52デフォルトの名無しさん:03/11/06 15:52
>>51
具体的にはどんなことをするんですか?
配列か何かを使用するんでしょうか。
>>52
分からないと言い出すほうが不思議だよ。
今はかたっぽから getSelectedValue して setListData でつっこんでるんだろ?
両方から getSelectedValue して突っ込んだらしまいだろうが。

それでもわかんなかったらソース晒せ。
あーだこーだ嘲笑しながら作ってやるから。
ごめん
55デフォルトの名無しさん:03/11/06 16:36
ServerSocketで同じポートを複数同時使用するのってまずいんですか?

やってみたら
java.net.BindException: Address already in use: JVM_Bind
とエラーが出たもんでまずそうな気はするんですけど、
やはりこれは同じポートでServerSocketを使用したのが原因でしょうかね?
5655:03/11/06 16:38
自己解決。
顔洗ったらすぐ解けました。
失礼。
>>55
同時に複数接続を許す ServerSocket は
new ServerSocket(ポート番号, 最大接続数);
ってやるんでは?
>>47
> >>46
> 汎用性を意識すれば大規模になるしメンテも大変になる。
おいおい、Compositeパターンはそんなに大規模でもなければメンテナンスも大変でないぞ。
>>58
誰が Compositeパターン==大規模 なんて書いたんだ?
60デフォルトの名無しさん:03/11/06 16:49
HP作りました! 是非見てください!!!
http://bass01.fc2web.com だよ!
61デフォルトの名無しさん:03/11/06 18:15
JAVA 3Dで点Pをy軸周りに45度回転し,それをQに代入したいのですが、うまくいきません。
以下のように設定しています。
使い方が違うのでしょうか?

Point3D P = new Point3D(1.0, 1.0, 0.0);
Point3D Q = new Point3D(0.0, 0.0, 0.0);
Matrix4d m = new Matrix4d();
m.setZero();
m.setRotation(new AxisAngle4d(0.0, 1.0, 0.0, Math.toRadians(45)));
m.transform(P, Q);
62デフォルトの名無しさん:03/11/06 18:24
>>61
代入ってtransformなのか?
63デフォルトの名無しさん:03/11/06 18:48
>>62
ttp://java.sun.com/products/java-media/3D/forDevelopers/J3D_1_2_API/j3dapi/
みて”点Pを変換してQに代入”と解釈しました。
64:03/11/06 20:03
struts + mod_rewrite を使用したいのですが・・・。

mod_rewrite で
RewriteRule abc/TEST/([0-9]+)/index.html abc/TEST.do?foo=$1
として
http://www.example.com/abc/TEST/122/index.html
へアクセスすると、
ログからは、apacheは abc/TEST.do と foo=122 に分割してくれるのですが
abc/TEST.do ファイルを Apache の DocumentRoot で探して、
当然そんなファイルは存在しないのでエラーを返してしまいます。
RewriteRule で http://www.example.com/abc/TEST.do?... みたいに
フルアドレスを書けば一応アクセスは出来るのですが、REDIRECTに
なってしまい、意味がありません・・・。
どうしたらいいのでしょうか?


65デフォルトの名無しさん:03/11/06 20:44
ユーザ名ってどうやったら得られますか?
よろしくお願いします。
66デフォルトの名無しさん:03/11/06 20:47
パッケージ内で使う共通変数、定数とかって、
どっかでまとめて定義しておきたいんですけど、
どうするもんですか?
現状、各クラスごとに同じ定数を定義していて、
変更が面倒なので教えてください。
>>64
Unix板のApacheスレに行ったほうが答えてもらえるのでは。
>>65
String username = System.getProperty("user.name");
69デフォルトの名無しさん:03/11/06 21:43
指定のファイルへの書き込みで質問です

ファイル内の最初か最後への追加書き込みなら
FileWriterを使うんだと思いますが

ファイル内の途中での追加書き込みや
一行目から読み込んで、ある文字列の後にだけ追加書き込みする場合には
どうすればいいのでしょうか?
>>69
途中への追加書き込みを行った内容を別ファイルに保存し、その後でリネーム。
71デフォルトの名無しさん:03/11/06 22:04
>>70
その途中追加の書き込みの仕方がよく分からないのですが…
72デフォルトの名無しさん:03/11/06 22:20
>>61
自己レスです。(解決しました)

Point3D P = new Point3D(1.0, 1.0, 0.0);
Point3D Q = new Point3D(0.0, 0.0, 0.0);
Matrix4d m = new Matrix4d();
m.setZero();
m.set(new AxisAngle4d(0.0, 1.0, 0.0, Math.toRadians(45)));
m.transform(P, Q);


m.setRotation(new AxisAngle4d(0.0, 1.0, 0.0, Math.toRadians(45)));

m.set(new AxisAngle4d(0.0, 1.0, 0.0, Math.toRadians(45)));
としたところ解決しました。
(1)元のファイルを読み込み用に開く
(2)新しく書き込み用ファイルを開く
(3)元のファイルからデータを読みながら、それを新しいファイルに書く
 途中必要なところで適宜追加のデータを書く
(4)全部書き終わったら両方のファイルを閉じる
(5)新しくできたファイルを元のファイル名にリネームする
74n:03/11/06 22:29
po
75shota:03/11/06 22:37
初めて2ちゃんねるにきました これは僕のホームページです きてください よろしくお願いします。

http://www.rak2.jp/town/user/shota/
76デフォルトの名無しさん:03/11/06 22:59
質問です。

仮引数にobject型を取るメソッド
(例:public void addElement(Object obj) )は
実引数に何を入れてもいいのですか?
>>76
プリミティブ型はダメだけど…
78デフォルトの名無しさん:03/11/06 23:15
>プリミティブ型はダメだけど…

返信ありがとうございます。
ということは、プリミティブ以外は入れてもOKなんですよね?

友人に聞いたら、「全てのクラスはobjectのサブクラスだから」
と言っていたのですが、いまいち納得できなくて・・・



>>78
Java の全ての型は大きくわけると プリミティブ型と参照型の二つにわかれる。
全ての参照型は Object のサブクラス。
>>79
間違った。全ての参照型のインスタンスは Object のサブクラス。
81デフォルトの名無しさん:03/11/06 23:45
>全ての参照型のインスタンスは Object のサブクラス

ありがとうございます。そうなんですよね。
そう本にも書いてあったのですが、やっぱり納得いかなくて・・

80さんはとくに疑問に思わないですか?

>>78
ものすごく大雑把に言えば、Javaには「モノ」を1個、2個と数えるための型と、
「モノ」そのものを表す型の2種類がある。

前者は「数値」の類、つまりプリミティブ型。
後者は「モノ」全般、Object型だ。
Objectを引数に取るということは、「モノ」ならなんでもいいよ、ってことでもある。
でも数のカウント自体(プリミティブ型)は引数に取れない訳だ。
>>81
Javaがはじめてのプログラミング言語か?
84デフォルトの名無しさん:03/11/07 00:08
>>Objectを引数に取るということは、「モノ」ならなんでもいいよ

ありがとうございます。なるほど「モノ」ならなんでもいいんですね。
でも、入れて上手くいくものといかないものはありますよね?

↑日本語の意味わかりますか?(笑

>>81
いえ、cはけっこうできてるつもりです。あと、phpとかも
85デフォルトの名無しさん:03/11/07 00:17
「数値」とか「モノ」っていう意味付けを対応させるのはあんまり意味内とおもうなあ。
C#みたいにintとかもユニフィケーションしてる場合もあるし
Cが結構できる人間がそんなところで躓くんかい・・
>>84
Cプログラマなら、構造体の先頭にtagをつけて値をunionとして持って
引数にvoid*を渡しているのと同じだと思えないの?
言語規定なんだから覚えて終わりだろが。
89デフォルトの名無しさん:03/11/07 00:28
>>86
すいません。できてないのかも・・

例えば、vector のメッソド add(Object o) があるじゃないですか、
それ使って、

Vector vec1 = new Vector();
vec1.add(new String("a"));
vec1.add(new String("b"));

Vector vec2 = new Vector();
vec2.add(new String("c"));
vec2.add(new String("d"));

vec1.add(vec2);

とかって、したらどうなるんですか?
>>89
おまえが組み立てたようになる。
Cができるのに一体これの何が不思議なんだ?
なんてことない。VectorオブジェクトがVectorオブジェクトを持つ。それだけ。
きっとCはできるけどポインタはわからないんでしょう(笑)
そういうのはできてるとは言わないなぁ。
酷なようだが、今後しばらく、C なり Java なり人前で「できる」と言わないこと。
94デフォルトの名無しさん:03/11/07 00:41
>>90
不思議です。

>>91
>VectorオブジェクトがVectorオブジェクトを持つ
ちょっと、わかった気がします。

>>92
いえ、ポインタもわかりますよ。

みなさん、こんな質問につきあってくれて、ありがとうございました。
がんばってみます。
>>66
どっかのクラスにまとめて定義する。public static final で。
パッケージ内ならどっからだって参照できるし、
public なクラスに定義すればパッケージ外でも参照できる。
96デフォルトの名無しさん:03/11/07 00:44
「基底クラスに当てはまることは派生クラスにもすべてあてはまる」

「StringはObjectの派生クラス」

「add(Object o)が可能ならadd(String o)も可能」
よくある例え

insert(Object o) は Object型も Vib型も Penis型も(ry
insertToAnal(new PenisBand())
ArrayListを引数にとるMethodには、ArrayListしか渡せない。
void doSomething(ArrayList list);

Listを引数にとるメソッドなら、LinkedListもsubListもArrays.asListも渡せる。

void doSomething(List list);

doSomething(new LinkedList());
doSomething(someList.subList(from,to));
doSomething(Arrays.asList(someArray));
100デフォルトの名無しさん:03/11/07 01:13
すいません。94です。

Vector vec1 = new Vector();
vec1.add(new String("a"));
vec1.add(new String("b"));

Vector vec2 = new Vector();
vec2.add(new String("c"));
vec2.add(new String("d"));

vec1.add(vec2);

System.out.println((Vector)(vec1.lastElement()).lastElement());

↑こういうのはできますか?
 ていうか、できなかったんですけど、もしよろしかったら、
 教えてください。

>>100
> System.out.println((Vector)(vec1.lastElement()).lastElement());
キャストの位置が違う。
System.out.println(((Vector)vec1.lastElement()).lastElement());
>>100
エラーメッセージ読んだ?
103デフォルトの名無しさん:03/11/07 01:21
>>100
できます。何がどうできなかったんですか?
104デフォルトの名無しさん:03/11/07 01:23
>>101
すいません。できました。ありがとうございます。

>>102
「シンボル解釈処理できません」
と、書いてあったのですが、よくわからなくて・・

でも、本当にちょっとわかった気がします。
付き合っていただいた方々ありがとうございます。
105デフォルトの名無しさん:03/11/07 01:36
教えてください
BufferedReader read = new BufferedReader(new FileReader(args[0]));
String line;
while((line = read.readLine()) != null){
if (line == "0"){
System.out.println("○");
else{
System.out.println("×");
}}
これを実行して、
ファイル内に0があっても、拾ってくれません
全部×になってしまいます
どこがいけないのでしょうか?
import org.apache.commons.lang.StringUtils;

if (StringUtils.equals(line, "0")) {
} else {
}
初心者にいきなり jakarta commons はちとアレだろ
>>105
オブジェクト同士の == は、VM 上にて同一のものを指すかどうかであって、
中身が同じかどうかは equals メソッドで調べる(「中身」の判定条件はクラスにより異なる)。

String クラスの場合、String a = b, c = b; という経緯なら a == c は真だが、
例えば String a = "A", c = "AB".substring(0, 1); という経緯だと a != c であるが、 a.equals(c) ではある。

>>106 は大仰。
109デフォルトの名無しさん:03/11/07 01:54
実はline.equals("0")でもだめだったりして。
line.indexOf("0")!=1だったりしてー。
ありがちー。チョウウザー。
>>105とちょうど同じメソッド?使ってるので便乗です。

ファイルに書き込みログを書きたいのですが、
ファイルに書き込むと全部上書きされてしまいます。

ログファイルみたいに、全部書き込みが残るようにするにはどうしたらいいのでしょうか。
>>110
append modeで開く
11265:03/11/07 02:35
>68
できたよ。ありがとう。
113105:03/11/07 02:35
すいません108で出来ました
ありがとうございます
もう一つわからないところがあります
BufferedReader read = new BufferedReader(new FileReader(args[0]));
PrintWriter fw = new PrintWriter(new BufferedWriter(new FileWriter(args[1])));
String line;
while((line = read.readLine()) != null){
fw.write(line);
}
でやると何もおこらないのですが、
これって間違っているのでしょうか?
114デフォルトの名無しさん:03/11/07 02:37
「ウェブサービスに最適な開発言語はJava」
http://headlines.yahoo.co.jp/hl?a=20031106-00000004-wir-sci
>>113
このプログラムをどのような引数で実行したら、
何が起こると期待していたのに、
実際には何も起こってしまったのか、
日本語で書いてください。
>>113
args[0], args[1]の意味をわかっていっているのか?
>>109
>line.indexOf("0")!=1だったりしてー。

line.indexOf("0") != -1 でないか
118105:03/11/07 03:08
>>115
引数はabc.txt xyz.txtで実行して
abc.txtの内容をxyz.txtに書き出そうとしたのですが
xyz.txtには何もおこりません(空白が上書き?)
>>118
最後にfw.close()してみたら?
>>119
とりあえず書き出しはできました
何故か改行は無視されますが
ありがとうございます
>>120
readLine()で読んでwrite()で書いてるんだから当然。
println()で書け。
123105:03/11/07 03:32
>>121
writeとprintってどう違うのですか?

JavaDoc見ても
write(String s)
print(String s)
では同じようなことが書いてて
どっちもファイルに書き込みできるし
printではなくprintlnだ、よく見ろ。
lnはlineであり改行を意味する。
125105:03/11/07 03:47
>>124
すいません
120はクリアしてて
疑問として123はどう違うんだと思ったのですが
writeもprintも改行されずに両方ともファイルに出力されますよね
一見同じ結果が返されるのですが…
>>125
PrintWriterに限れば、実際の挙動はwrite(String s)でs==nullの
場合に例外があがるくらいで他は同じ。

しかし存在目的が違う。
write()はWriter族のクラスツリーに共通のメソッドでより(レイヤが)低レベル
対してprint()はPrintWriterだけにあるメソッドで、PrintWriterは他の
StreamやWriterを修飾するためのクラスなので、print()の中では必ず他の
クラスのwrite()を呼んでいる。
> print()の中では必ず他のクラスのwrite()を呼んでいる。

ごめん、PrintWriterのwrite()も他のクラスのwrite()を必ず呼ぶわ。
書き直し。大雑把に書くと

(OutputStream ... バイト列の出力をできるようにするクラス)
 Writer ... 文字や文字列の出力をできるようにするクラス
 PrintWriter ... もっと便利な出力をできるようにするクラス

となる。Writerから提供されるのがwrite(String)、PrintWriterから
提供されるのがprint(String)なわけだが、PrintWriterはWriterの
サブクラスでもあるので両方持っている。
これでわかるかな?
129前スレ409:03/11/07 04:55
前スレ409です。
またまた質問させてください。

こんなアプレット作ってみますた。
http://park.zero.ad.jp/~zbh17397/java/1/CanvasGraphicsSample2.html
(ソースは最後のhtmlをjavaに変えてくだしゃい。まぁこんなの誰も要らないだろうけど)

で、これをちょっと発展させて、
http://park.zero.ad.jp/~zbh17397/java/2/applet.png
こんなのを作ろうと思い、
http://park.zero.ad.jp/~zbh17397/java/2/CanvasGraphicsSample3.java
こんなソースを書いてみますた。
キャンバスひとつに、ボタン一個のシンプルな配置です。

ですが、コンパイルすると
CanvasGraphicsSample3.java:10: シンボルを解釈処理できません。
シンボル: クラス CanvasMake
位置 : CanvasGraphicsSample3 の クラス
CanvasMake canvas1;
^
CanvasGraphicsSample3.java:17: シンボルを解釈処理できません。
シンボル: クラス CanvasMake
位置 : CanvasGraphicsSample3 の クラス
canvas1=new CanvasMake(0,0,320,320);
^
エラー 2 個

と出てしまいます。
何がいけないのでしょうか…?
かれこれ5時間ガンガったけど、もうダメポ。
130デフォルトの名無しさん:03/11/07 05:29
インターフェイスの意味がわかりません
interface GreetingInterface {
  void greet( );
}
class Japanese implements GreetingInterface {
  public void greet( ) {
   System.out.println("こんにちは");
  }
}
class English implements GreetingInterface {
  public void greet( ) {
   System.out.println("Hello");
  }
}
public class Greeting {
  public static void main (String[ ] args) {
   Japanese insJ = new Japanese( );
   English insE = new English( );
   insJ.greet( );
   insE.greet( );
  }
}
とあったときに
インターフェイスをimplementsしなくても
クラス名.メソッドだけで普通に実行を処理できると思うのですが…
具体的にインターフェイス部分のvoid greet();は各クラスにどのようなかかわりを持ってるのでしょうか?
131デフォルトの名無しさん:03/11/07 06:02
コマンドプロンプトで半角英数以外の文字(カタカナや平仮名)を
打つにはどうすればいいのでしょうか?
つまらん質問ですいません。
132409:03/11/07 06:22
動かない方のプログラムの概要書くのを忘れてますた。
Initializeとあるボタンを押すと、乱数によってセルに色が塗られるものです。
133デフォルトの名無しさん:03/11/07 07:46
>>130 例が悪い。これを参考に考えろ。
GreetingInterface greeter = null;
boolean isJapanse = Math.random() > 0.5; // 2分の1
if (isJapanese) {
 greeter = new Japanese();
} else {
 greeter = new English();
}
greeter.greet(); // GreetingInterface has greet method




        


         ていうか入門書くらい買えや。






>>129
} の位置
つぶさに見なさい
>>134
禿同。
それがむりならどっかのウェブサイトいけ。
そんな基本的なこともここで聞いてるようじゃろくなプログラムかけねーよ。
クラスを作って、コンストラクタの引数をString[]にしています。
これに引数無しのコンストラクタでデフォルトで特定のString配列を引数に
しようとしているのですが、同じ処理を書くのが面倒なので
コンストラクタを下記のように書きたいのですが。
Hoge() {
 Hoge(String[]);
}

String[] って具体的に値がある場合はどういう書き方になるのでしょうか。
{"hoge1","hoge2","hoge3"}
"hoge1","hoge2","hoge3"
("hoge1","hoge2","hoge3")
などを試しましたが、全部駄目でした。
>>137
Hoge() {
 this(new String[] { "hoge1", "hoge2", "hoge3" });
}
139デフォルトの名無しさん:03/11/07 09:51
String[]型はべた書きするとどんな書き方になるんでしょうか。
引数として渡したいのですが、渡す先がコンストラクタなので、
String s[] = {"hoge1","hoge2","hoge3"};
という書き方が出来なくて困っています。

>>139
お前の目は節穴か
Java質問スレっていうより、日本語による正しい質問内容の伝え方と
正しい解答内容の読み方伝授スレって感じですね。
142デフォルトの名無しさん:03/11/07 10:25
日本語としてまともに質問になってないのに
「わからないなら書くな」「ちゃんと答えろ」
とか言って逆ギレするパターンが最近増えてまつね。
2chは便利だけど、このくらい本で読まなきゃ習得に10倍くらい
時間かかりまっせ。読みながら本の内容質問してもいいと思うし。
入門書も読まずに続けるのは時間が実にもったいない。
http://www.amazon.co.jp/exec/obidos/ASIN/4894713438/
http://www.amazon.co.jp/exec/obidos/ASIN/4894714361/
http://www.amazon.co.jp/exec/obidos/ASIN/4797319127/
144前スレ409:03/11/07 15:35
ううむ、{の位置は直したんですが、描画されない…。
なんでぇ〜〜〜え?
入門書はこちらを参考に
http://www.1point.jp/~book_2ch/program/java.html
146デフォルトの名無しさん:03/11/07 16:04
JTreeで、現在選択されているノードがルートかどうか
判定するにはどうすれば良いですか?
ルートのノードの項目テキストは不定なのでTreePathを取得して
getLastPathComponentでは判定できません。
147デフォルトの名無しさん:03/11/07 16:57
>>139
new String[]{"aa","bb"}
148デフォルトの名無しさん:03/11/07 17:32
JavaってなんかC++から継承した書き方が形骸化っていうか
必然性のない書き方になってるところが結構あるきがする。
>>148
そーゆー話題は死滅スレでやれよ…
150デフォルトの名無しさん:03/11/07 17:47
java.io.*
を使う時は必ず

tyr{
}catch(IOException e){
を使わなければならないと参考書に書いていたのですが
使ってない場合もあります

どっちが本当なのでしょうか?
>>150
参考書の著者が大のつくバカか、君の読み間違いのどちらか。

正しい答え:
 呼び出したいメソッドが IOException を throw しうるときには、
 ・ try 〜 catch を使う
 ・ 呼び出した側のメソッド宣言に throws 節を加える(外側にさらに throw する)
 のどちらかをしなければならない。
 IOException はもっぱら java.io.* の各クラスのメソッド(コンストラクタ含む)で throw されるが、
 java.io.* のクラスだけとは限らないし、java.io.* の全クラスの全メソッドで throw されるというわけでもない。
もっぱら、は間違いか。主に、か。
153デフォルトの名無しさん:03/11/08 00:57
例外をかならずキャッチしてなかったことにしてしまう、なんて
ルールは下の下の下!
ハンドリングする必要ないならキャッチするな!
そのまま投げるべし!

例外機構の説明がいい加減な初心者本は、まるで必ずキャッチしな
きゃいけないような書き方をしてるの多いけど、最悪です。いわば
コンパイルを通すために無理やりやってるだけです。
例外送出機構の真価は、例外が発生した直接の原因が、例外をハン
ドリングした位置(メソッドコールスタックが何段あろうとズバッと)
で簡単に詳しく分かってしまうことだと思いまつ。

初心者本にあるようなメソッドの書き方ばっかりしていると、例外
機構の存在意義がないですよ。
154デフォルトの名無しさん:03/11/08 01:16
>>153
コンパイルが通らないソースほど無駄なものはない。
例外をどうにかしないとコンパイルが通らないという仕様自体に議論があるくらいだから、例外についてなにも考えないならprintStackTraceでOKだと思う。
職業プログラマは置いといて、趣味プログラマや学生は、まず動かして興味をもつことが大事だし。
例外がコンソールに表示されるときって
問題箇所がソースコード内の行まで指定される場合と
問題の起きたメソッドの名前だけ指定される場合があるみたいだけど
どういう違いでこんなことが? 全部前者にしてよ。
例外は、例外処理が必要なときに必要な処理をすればよいのだから、すべてきちんと処理する必要はないし、もちろん全て無視する必要も無い。
>>155
そりゃ、そういうコード書いてるんだろ。
tomcat 4.0.6なんですが、客がWEB-INF/classes以下に
classファイルのバックアップを残してるんですが、問題ないですか?
拡張子は ***.class.bk てな感じなんですが
>>158
どういう問題を想定してるんだ?
>>155
exception.printStackTrace(); してるか、
System.out.println(exception); してるかの違いかな…

自分が手を入れられる箇所なら後者を前者に書き換えりゃ良いだけ。
>>154
> 例外をどうにかしないとコンパイルが通らないという仕様自体に議論があるくらいだから、
あったっけか?

C# の delegate みたいのがあるんならともかく、
現在の Java の仕様ので Exception を明示的に処理しなければいけないってのは合理的だと思うけど。
>>159
クラスが競合したりとか(これはなさそうですが)、
リソースを無駄に消化したりとかです。
163デフォルトの名無しさん:03/11/08 01:57
URLベースで「HttpServletResponse#encodeURL()」セッションを保持しているサイトで、静的ページに
遷移した時、セッションが継続されないサイトがある。
例:http://user.hatarako.net/hatarako/hu-1-1.do
何故だかわかるか?

ちなみに、encodeURL()はブラウザがクッキーを制限している場合にのみ
URL書き込みが行われる点に注意!
宿題乙
>>163
これは、出題してんの?
>>160
thanx!
167デフォルトの名無しさん:03/11/08 03:13
例外処理を効率よくプログラミングできる方法が載っているサイトまたは良い書籍はないっすか?

しかも例外処理をデザインパターンでうまく管理する技がのっているほんとか?
168デフォルトの名無しさん:03/11/08 08:08
例外のioExceptionで使う
printStacktraceって何ですか?
どういうときに使うのでしょうか?
JavaDOCなどを見てもいまいちわかりません
169JPS ◆k2TxvFSFC. :03/11/08 09:24
javaでモーダルなウィンドウを作る時ってどうしたらいいの?
>>155
コンパイル時のオプションの指定の違い。
行番号情報が入らないのはjavac実行時に-g:noneとか指定しているのだろう。
Ant等一部のツールではコンパイル時のデバッグオプションがデフォルトでオフになっていて、
行番号等の情報がクラスファイルに入らないようになっている。
171デフォルトの名無しさん:03/11/08 10:30
すいません、Java覚えてまもない初心者の質問です。
コマンドラインからjavaのプログラムを実行するのではなくて、
exeファイルからプログラムを実行するにはどうしたらよいでしょうか?
また、その際のexeファイルの作り方(記述する内容)も教えていただきたいです。
172デフォルトの名無しさん:03/11/08 10:58
oracleやmySQLやSQLサーバのDBを
JavaでSQLを使って表示するのは可能だと思いますが
AccessのクエリやテーブルなどのDBを表示させることは可能でしょうか?

googleなどを見ても特にそういった事はあまり書かれてないので…
教えてください
Access ODBC
174デフォルトの名無しさん:03/11/08 11:05
java2APIをネットがつなげない環境で見たいのですが
SUNのサイトのどこでダウンロードするのでしょうか?

SUNのサイトで見ても英語だらけでよく分かりません
175デフォルトの名無しさん:03/11/08 11:12
>>171
exegファイルはWindows固有の方式なのでそういった機能はありません。
batファイルでも書いとけ。
もしくはexeファイルだけcで作るとか。
>>174
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/index.htmlか
それならばここからGetHTMLWやIrvineで引っこ抜け。
176デフォルトの名無しさん:03/11/08 11:15
>>175
>それならばここからGetHTMLWやIrvineで引っこ抜け。
なんですか、それ
>>176
ダウソ厨の常識
178175:03/11/08 11:25
君には難しい話かもしれないが。
世の中には検索エンジンというものがある。
知りたい言葉を入れるとそれに関するページを出してくれる優れものだ。
聞く前に調べないと人生の敗北者扱いされるよ?
勿論手遅れだけど。
http://www.google.com/search?as_q=GetHTMLW&num=10&hl=ja&ie=Shift_JIS&c2coff=1&output=advanced_search&btnG=Google+%8C%9F%8D%F5&as_epq=&as_oq=&as_eq=&lr=&as_ft=i&as_filetype=&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=
179デフォルトの名無しさん:03/11/08 11:36
ファイルの中から
そのファイル中にある文字列の左から4文字目から5文字目だけを読み込みたいときに
書き出したい時どうするのでしょうか?

stringtokenizerメソッドを使うのはわかりますが
位置の指定とかよくわかりません
>>179
意味不明。
java.lang.String.substring(int, int)じゃないのか?
182179:03/11/08 11:49
>>180
aaa.txtがあって中味が
\23456
3456あ8
675634
あ45634
そのファイルを読み込んで、各行の左から4文字目から5文字目までを抜き出して
45
6あ
63
63
として、これを表示するにはどうすればいいのでしょうか?
183月のプリンセス:03/11/08 11:59
こんにちわ、もしよろしかったらどうかご教授ください。
ちなみに、私は13歳の女子中学生です、実は月のプリンセスです。

質問「Tomcat 4.1 って j2sdk1.3.4 でも なんの問題もなくインストール
   できるの?」

Tomcatをインストールするときに、Tomcatが「j2sdk1.3.4」を探し当てて
しまうのです。 私の使用しているパソにインストールされている「visual J++」
に含まれている「j2sdk1.3.4」をTomcatが自動で探し出してしまうのです。
(メッセージダイアログボックス名・「 Apache Tomcat 4.1.18 Setup 」)
「 Using Java Development kit found in ;C\j2sdk1.3.4\bin」と、
本当は、「j2sdk1.4.0」の方をTomcatさんに探し当てて欲しいのですが…。
私のパソコンは、普段は「j2sdk1.4.0」でJavaを動作させています。
だからTomcatさんに

(メッセージダイアログボックス名・「 Apache Tomcat 4.1.18 Setup 」)
「 Using Java Development kit found in ;C\j2sdk1.4.0\bin 」
と探し当てて欲しいのですがねぇ…。
別に支障はないんでしょうか?

次に続きます To Be Next Continued
184デフォルトの名無しさん:03/11/08 12:00
>>183
氏ねい
import java.io.*;
class File4to5 {
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new FileReader(new File(args[0])));
String strLine = new String("");
String strreport = new String("");

while ((strLine=br.readLine()) != null) {
strreport = strreport + strLine.substring(3,5) + "\n";
}
br.close();
System.out.println(strreport);
} catch (IOException e) {
System.out.println("開かんぞボケ。\n(" + e + ")");
}
}
}






java File4to5 target.txt
186月のプリンセス:03/11/08 12:13
実は私は学生でして、チームメイトの水野亜美ちゃんといっしょにシステム開発を
しております。あと、レイちゃんとまこちゃんと美奈子ちゃんもいます。美奈子ちゃんは
ちょっと気に食わないかな。

んで、学校の共用PCにTomcatをインストールしたのですが、上記のカキコのように
TomcatがJ2SDK1.3.4の方を探し当ててくるのですよねぇ・・・。
つまりJava 2 SDKのバージョン確認の際に 「1.3.4」と表記されてしまって、
共用パソコンに入っているのは、「j2sdk1.4.0」なんですが…、なぜだろう。
一応、私こと月野うさぎがチームリーダーですので、調べておこうと思いまして。
そこで便所の掃き溜めである2chにたずねてきました。
今の所なんの問題もないんですけどね、Tomcatの方は…。ただ単にTomcatの表記バグミス
なのかなぁ・・・?
でもたしかTomcat 4.1ってj2sdk1.4.0以上が稼動条件だったような気がします。
これから開発をやっていく中で、なんかエラーとかが出ないかどうか気になります。
もし、なにかご存知の方がいられましたら教えてください。
教えてくれなきゃおしおきよー! っーか、実写版セラムンって「月に代わってお仕置きよ!!」
っていう前口上がないよね…(−−;
>>186
下着くれたら教えてやってもいいよ
>>186
お仕置きしてください ハァハァ
>>186
本題に悩むのより、
カマ口調のレス本文を推敲するほうに手間かけてる気がするが、どうだろうか。
>>182
「自分には何ができて何ができないのか」を把握する前に質問スレに駆け込む、
クソ初心者におきまりの行動ですね。
それをきちんと把握して、ここで説明してください。
何にも分からないならもすこし入門書で勉強してからこい。
そんときにはもう >>181 が答えになってるから。
>>190
>>185 が答え書いちゃってますが…
>>191
あ、ほんとうだ。
193181:03/11/08 15:12
>>190
プププ馬鹿じゃねーのw
java のプログラムをコマンドラインから起動する際に、
任意個数の\(円マーク)を引数として渡す方法を教えてください。
下のコードでimageをincrementalに描画したいのですが、実際にはimageのロードが
終了するまで画面にimageが表示されません。これは何かが根本的に間違っているのか、
下のコードでimageをincrementalに描画したいのですが、実際にはimageのロードが
終了するまで画面にimageが表示されません。これは何かが根本的に間違っているのか、
それとも必要なステップが欠けているだけなのでしょうか。解決策へのポインタだけでも
下のコードでimageをincrementalに描画したいのですが、実際にはimageのロードが
終了するまで画面にimageが表示されません。これは何かが根本的に間違っているのか、
それとも必要なステップが欠けているだけなのでしょうか。解決策へのポインタだけでも
示して頂ければ幸です。
すみません、194-197は私の設定ミスで、改行する度に書きこまれてしまいました。
コードを下に示しますので、よろしくお願いします。

import java.awt.*;
import javax.swing.*;
public class ImgTest extends JFrame {
  Image iImage;
  public ImgTest(String sfn) {
    iImage = Toolkit.getDefaultToolkit().getImage(sfn);
    setSize(1400, 1050);
    setVisible(true);
  }
  public void paint(Graphics g) {
    g.drawImage(iImage,0,0,this);
  }
  public static void main (String args[]) {
    ImgTest it = new ImgTest(args[0]);
  }
}
>>194
コマンドラインshell がどーゆー処理するかによる。

'\' がエスケープシーケンスの開始の場合は "\\" で 一個の "\" が渡るので
"\\\\" と書けば "\\" がプログラムに渡ると思う。
>>198
> Toolkit.getDefaultToolkit().getImage(sfn);
って progressive jpeg とかだと progressive に読み込むんだっけか?

javax.imageio 使えばイベント取れそうだけど、
デフォルトの spi が progressive jpeg とかに対応してるかは知らん。
201デフォルトの名無しさん:03/11/08 16:47
Swingやりたいのですが、先ず何から始めたらいいですか?
AWTって学ぶ必要ありますか?SwingだけでOKですか?
>>201
入門書くらい買いなさい。
話はそれからだ。
>>200
gifファイル等で、上から徐々に表示されていくのを想定していました。
最後に表示されるまでの間にもpaint()は頻繁に呼ばれているようなので、
このような動作を期待したのですが…。

とにかく、javax.imageioを調べてみます。ありがとうございました。
204デフォルトの名無しさん:03/11/08 17:05
JSplitPaneのsetDividerLocationのパーセンテイジ指定が機能していないように
思うのですが、何か対策ありますか?
>>204
http://developer.java.sun.com/developer/bugParade/bugs/4276222.html
によると JSplitPane が visible になってないとこのメソッドは働かない、
とか書いてあるけど そーゆーのでなくて?

とりあえず BugParade あさって、自分と同じ症状が無いようだったら バグ報告だしといてください。
206デフォルトの名無しさん:03/11/08 17:18
>>202
Swingの入門書は持ってませんが、Javaの基本は押さえてるつもりです。
で、何か助言はありますか?
>>206
他人に助言を求めるヒマがあったら
一行でもソース書くとか 他人のソースを読むとかすれば?
208デフォルトの名無しさん:03/11/08 17:24
stackoverflowerrorが出たのですが、
これは再起構造を持つメソッドの使用において
再起回数が多すぎる場合なんでしょうか?
>>206
入門書読まないやつに助言の必要なし。
210デフォルトの名無しさん:03/11/08 17:25
>>207
わかりました。1行くらい書いてみます。

import java.lang.*

次は何をやったらいいでしょうか?
>>206

>>202が入門書を読めといってるのは
入門書を読めばわかるようなことを調べもせず、
丸投げのように訊いてくる馬鹿がいるから。


あなたもその一人の可能性が大ってことさ。
>>210
>次は何をやったらいいでしょうか?
に対して >>207 を適用してください。
>import java.lang.*

プ
>>208
×再起 ○再帰

> 再起回数が多すぎる場合なんでしょうか?
そだね。再帰の打ち切り条件間違ってるので無限に再帰してる場合とか。
215デフォルトの名無しさん:03/11/08 17:35
>>214
ありがとうございました。
『再帰』部分の条件を見直し、無限再帰部分を直します。

ところで、再帰の限界を超える場合は無限以外にはどの程度なんでしょうか?
たとえば
int fib(int n){
if(n<2)return 1;
else fib(n-1)+fib(n-2);
}
こんな関数だと無茶苦茶再帰しますが、
n=100程度でも同エラーが起こるのでしょうか。
216デフォルトの名無しさん:03/11/08 17:36
int fib(int n){
if(n<2)return 1;
else return fib(n-1)+fib(n-2);
}
修正・・・恥ずかしいミスごめん!
それくらい自分で実験したほうがいいんじゃ・・・
218デフォルトの名無しさん:03/11/08 18:01
>>217
そうでした!
まずは自分でやってみてから質問する。基本ですね。

基本を履き違えてすんませんでした。
>>211
熟練者が釣り師になってるパターンを見逃すな。
public static void main(String[] args) {
 while (true) System.out.println("ぬるぽ");
}
throw(new java.lang.2chAddictedException);
>>221
コンパイルエラー
1. × new java.lang.2chAddictedException
  ○ new java.lang.2chAddictedException()
2. クラス名の先頭には 2 は使えない。
3. java.lang パッケージにユーザがクラスを作るべきでない。

他にもある?
>>223
て言うか何マジレスしてんだと。
>>224
え… つっこんで欲しかったんじゃないの?
>>223
知識豊富なマジレスカコイイ!

public static void main(String[] args)
{
 System.out.println("227 :デフォルトの名無しさん :03/11/08 23:55");
 System.out.println(">>226");
 System.out.println("自作自演かよ(プ");
}
227デフォルトの名無しさん:03/11/09 00:41
public System sysCrack() {
    System sys;

    // 実装ご自由に。ヤバイから2ch如きに公開できない。

    return sys;
}
228デフォルトの名無しさん:03/11/09 01:05
簡易メモ帳を作ろうと思ったんですけど、
ウインドウの端で折り返そうとするとちゃんと表示されません。
ウインドウをリサイズするとちゃんと表示されるんですけどどこがおかしいのでしょうか?
1.2および1.4でコンパイル、実行してみましたが症状は同じです。

import java.awt.*;
import java.awt.event.*;

class Notepad extends Frame{
TextArea ta;
Button b;

public Notepad(){
setSize(300, 300);
ta = new TextArea();
add(ta, BorderLayout.CENTER);
b = new Button("折り返す");
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
remove(ta);
ta = new TextArea(ta.getText(), 5, 5, TextArea.SCROLLBARS_VERTICAL_ONLY);
add(ta, BorderLayout.CENTER);
repaint();
}
});
add(b, BorderLayout.SOUTH);
}

public static void main(String[] args){
new Notepad().setVisible(true);
}
}
229デフォルトの名無しさん:03/11/09 01:36
>>228
JDKのDemoソースを見て勉強しろ。
230デフォルトの名無しさん:03/11/09 03:34
>>228
ボタン押すたびにコンポーネントインスタンス差し替えるって、
あんたあほですか。
231月のプリンセス:03/11/09 03:36
月のお尻プリンセス…なんてね。

>>186の質問なんですが…まぁ…2chで質問しても誰もご存知ないようですので
まー、ココは博識な方が集まるスレでなんの意見もない、聞いたこともない・・と
いう結果なら、実際問題として問題はないと判断してもいいと思います。
Pathはj2sdk1.4.0で通してあるのでJservのコンパイルの際などは問題なく
コンパイルってますし。 ただ、tomcat 4.1のインストルの際にj2sdk1.3.4を
使用したってことなのかな…うーん…うーん…うーん…こ。
おそらくWindowかtomcatの表記バグミスだと思われます、またなんか問題がでたら
うさぎちゃんのパーソナルコンピュータで開発をすればいいだけだしね、学校の
共用PCだからなんかセキュリティとか使い勝手が面倒だっていうだけですから。

んでは、アデュー
勝手にTomcatのせいにするなヴォケ
バグがあると思うならApacheに報告でもしてみろ。
233デフォルトの名無しさん:03/11/09 03:52
>>231
自分がつかっているマシンの環境も理解していないのに、何ボケたこと
ぬかしてますか。
234月のプリンセス:03/11/09 04:10
だってうさぎちゃんはおバカさんなんだもの
宿題乙
Java質問・相談スレの31のURLをご存知の方教えてください。
>>236
http://pc2.2ch.net/tech/kako/1062/10624/1062421340.html
過去ログ倉庫漁ったら出てきた。
java アプリで、jarに格納した,save.datにデータを書き込んで保存すること出来ますか?
java web startでjarに全てのファイルを格納しなさいって書いてあります。
クライアント側で、データを書き込む場合、データファイルをjarに格納しなきゃならないですか?
試してみたら、OSごと落ちました。
ごめん、1行目の文章が解読できない
240よねなが:03/11/09 15:16
端末(コマンドプロンプトなど)に「指定の番号」 「1番目の値」 「2番目の値」を入力して表示させるというプログラムで、
「指定の番号」を入力するとどこの位置に表示するかを決め、「1番目の値」と「2番目の値」を入力すると表示されるというものです。
入力は以下の通りで「指定の番号」は1〜3の3つあって、同時に3つとも表示されるようにしたいのですがやり方がわかりません。
誰かアドバイスいただけませんか。

指定の番号 1番目の値 2番目の値を入力してください

「指定の番号」
「1番目の値」
「2番目の値」

指定の番号 1番目の値 2番目の値を入力してください

「指定の番号」
「1番目の値」
「2番目の値」
   ・
   ・
   ・
(以下繰り返し)
>>237
どうもありがとうございます。
自分で過去ログ探せばよかったんですね。申し訳ありません。
242よねなが:03/11/09 15:18
>>240の続き
import java.io.*;
import java.awt.Graphics;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Poke{
static String getDouble = "";
public static void main(String args[]) throws IOException{
JFrame frame = new PokeFrame();
frame.show();
int i = 0;
while(i <= 200){
System.out.println("指定の番号 1番目の値 2番目の値を入力してください");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
double numAB = Double.parseDouble(br.readLine());
double numMid = Double.parseDouble(br.readLine());
getDouble = " " + numAB + " " + numMid;
frame.repaint();
i++;
}
}}
243よねなが:03/11/09 15:20
>>242の続き
class PokeFrame extends JFrame{
public AtaiFrame(){
setSize(600, 500);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
     System.exit(0);
}});
Container contentPane = getContentPane();
contentPane.add(new PokePanel());
}}
class PokePanel extends JPanel{
public void paintComponent(final Graphics g){
super.paintComponent(g);
g.drawString(Poke.getDouble,250, 180);
g.drawString();
}}
244238:03/11/09 15:21
jarの中に入れたあるファイル(たとえば,save.datファイル)に、たとえばゲームのセーブデータを
保存すること出来ますか?jarがzipファイルだから、無理っぽいのだけれど、
出来るだけ、jarファイル、一つにまとめたくて。
>>243
大林 ヨネ よねなが さん、フレームから入力する話はどーなりましたか?
>>244
無理
247よねなが:03/11/09 17:57
>>245
この方法でないといけないみたいなので・・・
とりあえず1個のときはできるようになったのですが・・・
248よねなが:03/11/09 18:54
調べてあれこれやっているうちに解決できました。
お騒がせしました。
249デフォルトの名無しさん:03/11/09 21:57
>>248
解決できたのなら、どうやって解決できたのかを書き込んだほうが、あなたのためにも良い思う。
他者から情報を得ようとすることはあっても、自分からは情報を提供しない質問厨だと思われれば、
つぎにこの問題の続きで、何かわからないことに遭遇した場合、再度質問を投げかけても誰も答え
てはくれまい。

>>244
一応Javaには、jar,zipファイルを扱うためのクラスはある故、不可能ではないが、
何故そのようなことをする必要があるか疑問。
なにもセーブデータをダウンロードしてきたjarファイルのなかに保存する必要はあるまい。

jarファイルを扱うプログラム中で扱う方法については>>1のリンクに書いてあるとおもう。
すべてのクラス (Java 2 プラットフォーム SE v1.4.0)
Java (TM) 2 SDK ドキュメント
for(int i=0; i < 10; i=i+1) {

myString=myReader.readLine();
a=Integer.parseInt(myString);

if((a/10==x) ||(a%10==y)){
System.out.println("1B");}

else if((a/10==y) ||(a%10==x)){
System.out.println("1H");}

else if((a/10==y) &&(a%10==x)){
System.out.println("2H");}

else if((a/10==x) &&(a%10==y)){
System.out.println("BINGO!");
System.out.println(" ");
System.out.println("Congraturations!");}
i=10;

else {
System.out.println("ノーヒット");}

}

超初心者です。
自分で作って見たんですが
else' への 'if' がありません。
とでます。どなたか対策を教えてください。
251249:03/11/09 22:04
>>238, >>244
失礼。jarファイルをプログラム中で扱う方法については>>1のリンクに書いてある。

JAR の機能
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jar/index.html

ただ、そのような方法を採る必要はないと私は思うが。
>>250
インデントしる。
250です。
最後のeven ifの最後尾の括弧がずれてたみたいです。
解決しました。
まあ答えを書いちゃえば

   System.out.println("Congraturations!");}
 → i=10;

   else {
   System.out.println("ノーヒット");}

   }

この部分で if ~ else ~ がとぎれてるから。
インデントすればすぐ気付くはず。
先に自己解決された・・・
_/ ̄|  ( ( ((○ コロコロ
Javaの将来は暗いって本当ですか?
どんな点がマズいと言われてるんですか?
else if((a/10==x) &&(a%10==y)){
System.out.println("BINGO!");
System.out.println(" ");
System.out.println("Congraturations!");}
i=10;

else {

>>250
恐らくは、上のi=10 が曲者と思われる。
これを削除するなり、"}"のなかに入れてしまえばコンパイルは通るだろう。
ただ、それで貴方の意図通りのプログラムになるかどうかまでは、私は存じない。

あと気になる点を老婆心ながら一つ。
2chに書き込むために意図的に改行の位置などを変えたのかもしれないが、
Javaには推奨されるif elseの書き方がある。
それに従えば、貴方の>>250のような単純な文法ミスは起こりにくい。
これについても、>>1に書いてある。

Java言語規定 第2版 目次
http://www.y-adagio.com/public/standards/tr_javalang2/jTOC.doc.html
Eclipseみたいな便利なIDEを使えば変な書き方は自然と矯正されていくわけだが。
   _
 _|\\_            。      【 死 】
 |\_  _\→       ( >>1 )_    | ̄ ̄ ̄|
 \|  \ \__|     三   (*゜▽゜)   |    |
    ̄\| ̄|      三  (∪∪)    |    |
        ̄          ∪∪     |    |
ハゲシク ガイシュツ ( ´∀`)σ)゚Д゚) >>257
>>256
パトロンがMicrosoftじゃない点
>>254,257
失礼しました。。
インデントですね。勉強します。

ジャヴァの将来が暗い・・・??
入門者のやる気を損なう話ですね。。
263221:03/11/10 00:33


class t{
public static void main(String a[]){
String[][] ac = {{"a","b","c","d","e"},{"f","g","h","j","k"}};
for(int i=0; i>ac.length; i++){
String[] b = ac[i];
String c = hoge(b);
System.out.println(c);
}
}

public static String hoge(String[] str){

for(int i=0; i>4; i++){
String c =str[i];
}
return c;
}
}
書いたら
D:\j2sdk1.4.1_01\classes>javac t.java t.java:18: シンボルを解決できません。
シンボル: 変数 c場所 : t の クラス return c;
最終的にhogeメソッドで変数acの入子の要素解したいんですがどうすればいいですか?
>>262
気にしなくていいよ。仮にJavaを使わなくなったとしても、
Javaで培ったプログラミングスキルは無駄にならない。
>最終的にhogeメソッドで変数acの入子の要素解したいんですが

ごめん、煽りじゃなくて本気でこれに振り仮名うってくれ
最終的に hoge メソッドで変数 ac の入れ子の要素を返したいのですが
このスレってなんでみんなインデントしてないの?掟?
public static String hoge(String[] str){
 String c;
 for (int i=0; i>4; i++){
  c = str[i];
 }
 return c;
}


コンパイルできたところで何をやりたいのか意味不明だけどw
269デフォルトの名無しさん:03/11/10 00:49
傷を嘗め合うスレはここですか?
>>263
> for(int i=0; i>4; i++){
> String c =str[i];
> }
で c は for 文の中でのみ有効
それなのに for 文の外で return c; とやっている
>>269
まあそんなところだ。
マゾはお断り。
>>267
半角スペースの連続やタブは投稿後に除かれる仕様
273デフォルトの名無しさん:03/11/10 01:06
>>272
誰に説明してんだよ。技術者に説明するときはそうじゃないだろ。
Javaプログラマは低レベルですね
275デフォルトの名無しさん:03/11/10 01:15
>>274
Javaプログラマは低レベルなことも網羅している天才なのだよ。
抽象化のプロでありながら、機械語のプロでもある。天才そのものだ。
俺はいろいろ知ってるが貴様だけには何も教えない。
4億積まれても無理。この知識は金に換算できない。
もし換算できるとしたら、今俺がもらってる年収10億。これだね。

>>275
( ´,_ゝ`)
>>273
技術者への説明は簡潔に無駄なく漏れなく
君はどう説明するの?
>>275
最後の2文の矛盾っぷりが・・・
279デフォルトの名無しさん:03/11/10 01:27
今晩は2匹しか釣れなかった。これじゃ朝食にもなんねぇよ。
素人はアフォな事書けば釣れると思ってるんだろうな
本物の釣り師は天才なのに
>>277
273ではないが
行頭の連続した半角スペースやタブは0個のスペースとして
それ以外の連続した半角スペースやタブは1個のスペースとして
表示される (表示されるだけでソース上は取り除かれていない)。
>>277
「Htmlの仕様も知らんのかヴォケが!」かな?
>>282
一般人にも技術者にも説明になってないよ
>>281
はあ…
専用ブラウザを使ってる限りhtmlの仕様は意識しないよ
まあAAがずれないようにhtmlの表示に合わせてるんだろうが
>>281
行の途中の空白はともかく
行頭の空白はソースでも取り除かれているようだが?
286よねなが:03/11/10 02:42
>>249
忠告ありがとうございます。
Pokeクラスの中を以下のように書き足しいじってpaintConponent()メソッドに
表示させたい位置を定義すればできました。
と、簡単ですがこんな感じで。
public class Poke{
static String getDouble1 = "";
static String getDouble2 = "";
static String getDouble3 = "";
public static void main(String args[]) throws IOException{
JFrame frame = new PokeFrame();
frame.show();
int i = 0;
int bl; //番号をあらわす
while(i <= 200) {
System.out.println("番号 PressureAB PressureMidの値を入力してください");
BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));
bl = Integer.parseInt(br1.readLine());
double numAB1 = Double.parseDouble(br1.readLine());
double numMid1 = Double.parseDouble(br1.readLine());
if(bl == 1){
getDouble1 = " " + numAB1 + " " + numMid1;}
if(bl == 2){
getDouble2 = " " + numAB1 + " " + numMid1;}
if(bl == 3){
getDouble3 = " " + numAB1 + " " + numMid1;}
frame.repaint();
i++;
}}}
287デフォルトの名無しさん:03/11/10 03:02
for文を使ってラベルを複数定義しようとするとき、一番最初のところに定義しておけば
どのメソッドの中でもその定義したものは使えると思うのですが、下のプログラムのように
for文を最初に定義することは不可能なのでしょうか?型の開始が不正ですとエラーが出てしまいます。
どなたかアドバイスいただけませんか?
import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.util.*;
class Atai extends Frame{
for(int i=1; i<3; i++){
Label label(i)=new Label("label");
add(li);
}
public Atai(){

setLayout(null);
setSize(500,500);
label1.setBounds(10,10,20,20);
label2.setBounds(30,30,30,30);
}
public static void main(String[] args) throws IOException {
Atai atai=new Atai();
atai.show();
}
}
288287です:03/11/10 03:06
すみません。for文のlabel(i)の()は書き間違いです。
289デフォルトの名無しさん:03/11/10 03:13
Forte使い始めたんですが、Swingで、JPanelとJButtonとJLabelとJTextFieldを
乗っけて、さあとりあえずレイアウトのみでコンパイルするか!
と思い、コンパイルしてみたところ、フォームサイズを500*500に設定したにも拘らず、
画面の左端の方にちっちゃくしかでてきません。
どこかプロパティの別の個所をいじる必要があるのでしょうか?

あと、アプレットで、ファイルのアウトプットはできるのでしょうか?
290デフォルトの名無しさん:03/11/10 03:13
>>287
> for(int i=1; i<3; i++){
メソッド、インスタンス、静的初期化子、のいずれかの中でなければ for 文は使えません。
>>291
> メソッド、インスタンス、静的初期化子、のいずれかの中でなければ for 文は使えません。
インスタンスじゃなくてコンストラクタだ…
>>291
インスタンス初期化子も抜けてるし…
http://www.geocities.co.jp/MusicStar-Keyboard/4234/gallery.html
まあエロ画像でも見て落ち着け
295デフォルトの名無しさん:03/11/10 04:02
JDialogで右上の×ボタンを選択不可にしたいのですが
それはできないのでしょうか?
>>289
どのレイアウトを使ったのか(ボーダーとかグリッドバッグとか)
各コンポーネントをどこに配置したのか

こういった情報がまったく書いてないので誰が読んでも
さっぱりだと思うぞ。情報は最初からすべて出せ。
>>295
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
でいけそうな気がする。
298前スレ409:03/11/10 06:16
>>289は私です。名前書き忘れです。大学のPCから書き込めないので携帯でカキコしますた。

>>296
レイアウトは、nullレイアウトで、
http://park.zero.ad.jp/~zbh17397/java/2/applet.png
な感じに配置してみますた。(画像はappletになってますが、実際はフォームに配置)
フォームにボタンを画像のように貼り付け、キャンバス領域の代わりにJPanelを配置。といった感じです。

と、もうひとつ質問させてください。
public class ransuu{
public static void main(String[] args) throws IOException{
PrintStream ps=new PrintStream(new FileOutputStream(new File("data.txt")));

MyGraphicFrame mgf=new MyGraphicFrame();
mgf.setSize(356,356);mgf.setVisible(true);
}
}

//GraphicFrameクラスの宣言
class MyGraphicFrame extends Frame{
public void paint(Graphics g){
(計算過程:サイコロを振り、1ステップずつ、目の数によって四角を色で塗りつぶす)
(meは、サイコロの目)
ps.println(n+"\t"+me);
}
}

nステップにおけるサイコロの目を出力したいのですが、コンパイルすると、
最後に出てくるpsがダメ!といわれてしまいます。ちゃんと一番最初に宣言してるのに、ナゼ!?
>>298
psについては、スコープの違いが原因。
シングルトンパターンでも使ってみるのがいいかもしれない。

それかMyGraphicFrameのフィールドとして、PrintStream 型のメンバを持たせればいい。
そしてMyGraphicFrameをコンストラクトするときか初期化するときに、
psをMyGraphicFrameのインスタンスに渡してやればいいと思うよ。
300デフォルトの名無しさん:03/11/10 13:59
キーロガーって簡単に作れますか?
301デフォルトの名無しさん:03/11/10 15:18
JNIについて質問があります。
c++から、doubleの配列を受け取りたいのですが、うまいきません。
というかやり方がよくわかりません。

jdoubleArray jdata = env->NewDoubleArray(3);
return jdata;

今は上のようにしていますが、リターンは0.0になってます。
NewDoubleArray()の引数は、どう指定すればよいでしょうか?
また他に、やり方はありますか?
ちなみに、double配列はdata[3]と定義してます。
>>301
> jdoubleArray jdata = env->NewDoubleArray(3);
長さ 3 の配列(個々の要素は 0 で初期化される)を生成して

> return jdata;
それを返してる。

よって、
> c++から、doubleの配列を受け取りたいのですが、うまいきません。
の要求は満たされている。

何をしたいのか、が間違ってるか、
うまくいっていない、という認識が間違っているかのどちらか。
303デフォルトの名無しさん:03/11/10 15:34
>>302
double配列はdata[3]にデータが格納されています。
そのdata[]の値をJavaにわたしたいので、
data[]をjdoubleArray jdataにコピーしたいのです。
>>303
(jdouble != doubleの場合は)double[] から jdouble []にコピーして、
env->SetDoubleArrayRegion
305デフォルトの名無しさん:03/11/10 15:47
>>304
double[] から jdouble []にコピーはどうやってやるの?
jdata = data;
とかでいいの?
>>305
jni.h 見て確認しろ。
>>289
JFrameのコード生成タブで、フォームサイズポリシーを「サイズ変更コードの生成」

あと、いまさらForte使うくらいならNetBeans使え
ttp://www.netbeans.jp/
308デフォルトの名無しさん:03/11/10 16:31
java言語を少し学んだんですが、コマンド文が"System.out.println"のように
C言語などと比べてやたら長い気がするんですが、使いやすいんでしょうか?
またどの点が便利なんでしょうか?
Cでも関数ポインタテーブルとかを使えば実装できるけれど、
言語が文法レベルで多態性とかを実装してることかな。

クラス名やメソッドが長いと感じたら、入力を補完してくれる高機能なエディタを使うといいよ。
たとえば、vimとかemacsとか。
>>308
それは言語に関係ない。
というか、もっとちゃんと勉強しろ。
それに同じことやるとCの方が関数名長くなる傾向がある。
311デフォルトの名無しさん:03/11/10 18:38
javaのソースファイルからhtmlファイルを作成してくれるソフトってないんですか?
っていうか絶対ありますよね。探すの下手なんです・・・。
知ってるかたいたら教えてください。
おながいします。
313デフォルトの名無しさん:03/11/10 20:00
Java には文字列が数値表現化どうかをチェックする isNumeric() みたいな関数はないのでしょうか?
今は数値に変換しようと試みて例外(NumberFormatException)が発生するかどうかで確認しています。
なんとなく正常系で例外補足というのが気持ち悪いのですが…。
314デフォルトの名無しさん:03/11/10 20:26
正規表現を使ってhtmlのタグを抽出するプログラムを作りたいのですが、

Pattern p = Pattern.compile("<([/]?)([a-zA-Z][a-zA-Z0-9:_.-]*)([^<>]*)>");

とすると、

<img alt="あああ">

などのように日本語が入っているタグがマッチしません。
日本語が入っていても正しくマッチさせるにはどうすればよいのでしょうか?
315デフォルトの名無しさん:03/11/10 21:03
>>314
全ての文字を表現する方法があったはず。
[a-zA-Z0-9:_.-]を省略した表現だとヒット!あとは調べれ。
316デフォルトの名無しさん:03/11/10 21:03
>>311 そのまんまgoogleに聞いてみた。一番最初のやつ。
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=java2html
>>312
ちげーよ。

>>316
>>316
あっ。英語じゃん。日本語無い?
>>316
こいつは便利そうだ。
>>312 >>317-318は馬鹿だけど。
>>317-318
googleで "Java2HTML" を日本語のページの中から検索すればいいのではないか?
もちろん、そんなことに気がつかない>>317-318は馬鹿だが。

http://www.google.co.jp/search?q=java2html&ie=UTF-8&oe=UTF-8&hl=ja&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
321デフォルトの名無しさん:03/11/10 21:57
Tomcatのバージョンの違いってなんですか?
特に3点台と4点台
それくらい調べろ。ぐーぐるってしってっか?
>>319-320
そんなにムキになんなヨ。こちとら酒が入って適当に遊んでんだからさ。
酒も飲めないぼっちゃんよ。ふぁいと。wwww
>>323
晒しあげ
ある特定の絶対パスを基準にして、そこからの
相対パスを取得するようなメソッドはありませんか?
1.4.2のAPIを探してみたんですが、抽象パスから
絶対パスを返すようなのしか見つけられませんでした。
>>325
ありません。
327デフォルトの名無しさん:03/11/10 22:17
ソケットが相手側から切断されていることをノンブロッキングで調べたいんだけど、
isClosed()だと反対側からcloseしてもいつもfalseが返ってくる。
setSOTimeOut()セットして戻り値調べるとかも考えたんだけど、
コネクション数が多くなるかもしれないんで、
タイムアウトを1msにしてもレスポンスタイムが遅くなりそうで気になる。
検出する方法ってほかに何がある?
328前スレ409:03/11/10 22:18
>>299
>>307

お蔭様で解決しました〜♪
ありがとうございます。
329デフォルトの名無しさん:03/11/10 22:23
public KeiyakuTourokuInsideDB(Connection con){
this.con = con
}

こういうthisのある変数に代入しているソースをよく見かけるのですが
これって何をしてるのでしょうか?
これをすることで何ができるのでしょうか?
>>329
それは哲学だな。何かが出来るかもしれないし、何も出来ないかもしれない。
>>329
メンバー変数名とローカル変数名が競合するときに、
メンバー変数を参照するためには this キーワードを使います。
http://msugai.fc2web.com/java/this.html
>>329
> this.con = con
仮引数 con を インスタンス変数 con に代入する。

> これをすることで何ができるのでしょうか?
これは Java を使うと何ができるのでしょうか? ってのと同じ質問だね。
一般的な回答をすると、自分で考えろって感じですか。
>>325 それぐらい粂!
>>327
>isClosed()だと反対側からcloseしてもいつもfalseが返ってくる。
isClosed()はこちら側のソケットの状態じゃないかな。

>setSOTimeOut()セットして戻り値調べるとかも考えたんだけど
これはSO_TIMEOUTを設定したソケットから定期的にread()して長さが0かどうか調べるのね。
その他には、
・コネクションの数だけスレッドを立てて、それぞれがread()で待つ
・JDK1.4以降なら、java.nio.channels.Selectorが使えるかも
くらいしか思いつかんが...
>>330 が村上春樹ちっくでワラタ

>>329
「スーパークラス」とか「インナークラス」とかのキーワードで調べてみると
幸せになれるよ。きっと。

それよか public KeiyakuTourokuInsideDB( などの実務上のメソッド名を
そのまま書いちゃうことのほうが問題なような肝擦るw
336デフォルトの名無しさん:03/11/10 22:44
自分のクラスがStaticでなければ自分のクラス内ののメソッドを参照するにも
自分自身をインスタンス化しなければならないのでしょうか?
33776:03/11/10 22:46
そうでーす。
>>336
メソッドは参照するものじゃないが。
で、インスタンスメソッドのコールには必ずインスタンス参照が必要。
339デフォルトの名無しさん:03/11/10 22:49
>>336
はい。いいえ、それは違います。>>336
私はそのクラスがインスタンス化されてから初めてメソッドが呼ばれると考えます。
自分のインスタンスはthisで参照でき、また、それは省略可能です。
従って、自分のクラス内のメソッドは、メソッド名だけで参照できると考えます。
340名梨産:03/11/10 22:50
こういう記述はよく見かける。おいらもその目的でそうしてるなぁ。
Java勉強したての頃、こうじゃなきゃ hoge() から static節を外せない
という結論に至ってるです。

public class test{
 public test(){
  hoge();
 }
 public static void main(String[] args){
  test app=new test(); // コレのことだよね?
 }
 private void hoge(){
 }
}
341名梨産@340:03/11/10 22:52
>>336 へのレスですた(恥
しかも>>338読んで自分の見当違いに気付いて鬱。
>>338
インスタンスが必要な場合でも、必ず呼び出し側で、
newしなければならない訳ではないけどね。
なぜそこまでしてstatic句をはずしたいのか
>>340
> Java勉強したての頃、こうじゃなきゃ hoge() から static節を外せない
static節って? 構文解析でもしてるん?

あと、例のような話であれば static修飾子外さなきゃ良いだけの話では?
345デフォルトの名無しさん:03/11/10 22:56
>>342
しなくてもいいが、してる場合もある
あれはどういう意味?
>>345
インスタンスが1つしか必要でない場合。
347デフォルトの名無しさん:03/11/10 22:59
JSPって死滅するの?
今から勉強してもあんま意味ない?

その場合は取って代わるのは何でしょうか?
>>347
たとえ、死滅したとしても
JSPのポリシーは引き継がれる。
だから勉強したほうがいいと思われ。
>>347
そーゆー話題は死滅スレ行ってやれ。
>>347
FlashやPHP、JavaAppletその他を利用したリッチクライアント。
351デフォルトの名無しさん:03/11/10 23:09
キャッシュというのがよくわかりません
(int)や(String)ならわかりやすいのですが
スーパークラスとか他のクラスでキャッシュするのは
どういう目的でしょうか?
教えてください
>>351
キャスト
353名梨産:03/11/10 23:15
>>343
java.CommAPI でシリアルコントロールする時に1つのCOMポートを
操作するクラスで複数のCOMポートをいじりたかったから。
複数のDBにアクセスする時とかもこういう風にしない?折れだけ??
スーパークラスでキャスト??? どこでそんな学習したんだ?
355デフォルトの名無しさん:03/11/10 23:19
>>354
抽象クラスにキャストすることは稀にある。
ClassLoaderでロードしたクラスの抽象クラスにキャストするとかね。
356327:03/11/10 23:29
>>334
>これはSO_TIMEOUTを設定したソケットから定期的にread()して長さが0かどうか調べるのね。
反対側から切られてるときって-1(EOF)じゃない?

>・コネクションの数だけスレッドを立てて、それぞれがread()で待つ
最初はこれやってたんだけど、これやるとコネクション数が増えたときに
スレッドがもう作れないっていうExceptionが吐かれたの。

>・JDK1.4以降なら、java.nio.channels.Selectorが使えるかも
初めて聞きました。ちょっと見てみます。
ありがとうございました。
357貧乏紙:03/11/10 23:33
<%@ page isThreadSafe="false"%>
<%!boolean kakunin(int i,String){
<%--第二引数で指定した言葉を
第一引数で指定した年の流行語が真か偽かを調べるSFチックなメソッドです。
--%>
}
%>
<%
whlie(true){%>
<%= "今年の流行語は" %>
<%out.println("JSPでつよ・。・。");
Thread.sleep(1000);
if(kakunin(2003,"JSP")){
break;
}
%>
358初心者:03/11/10 23:41
初心者です。

今日、JAVAの本を購入して早速勉強してるのですが
コマンドプロンプトの画面で、わざとエラーをだそうとした所で躓きました。
エラーメッセージは出るのですが、どの部分が間違ってるのか表示され
なくて困っています。

先輩方教えてくださいませ。
359貧乏紙:03/11/10 23:53
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class TT extends HttpServlet{
public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
out.println("<html><body>");
out.println("Servlet版だちょ!");
out.println("勉強するならServletも忘れずに!");
out.println("</html></body>");
getServletContext().log("from Binbougami");
}
}
360334:03/11/11 00:04
>>356
>反対側から切られてるときって-1(EOF)じゃない?
確かにそうだったかも。
ttp://www.kt.rim.or.jp/~ksk/sock-faq/unix-socket-faq-ja-2.html#ss2.1
によれば、UNIXのSocketではread()で0を返すらしくて、read()の0はEOFだから、
Socketから得られるInputStreamでは-1を返すのが筋か。

>最初はこれやってたんだけど、これやるとコネクション数が増えたときに
>スレッドがもう作れないっていうExceptionが吐かれたの。
コネクションを張ってる時間が短いなら、
スレッドプールを作って、そいつとコネクションをひもつける。
スレッドプール容量以上のコネクション要求が来た場合には、accept()しないで待たせておく。
って感じでどう? 待たせるのが駄目かもしれんが。
361デフォルトの名無しさん:03/11/11 00:24
すいません。超初級の質問で申し訳無いんですが、
if (int1 == 0){
  int2 = 0;
}else if(int1 == 1){
  int2 = 1;
}else if(int2 == 2){
  int2 = 2;
}
と書いて、最初のifでtrueだった場合は
以下のif文も判定されるんですか?
どなたかお願いします。
362デフォルトの名無しさん:03/11/11 00:26

最後のif文の()内のint2はint1でした。
すいません。
363デフォルトの名無しさん:03/11/11 00:26
>>360
オブジェクトプールやスレッドプールはライブラリ使った方が確実だよ。
キーボード入力に関するイベント処理についてお聞きしたいんですが、
例えばJTextFieldに対してaddKeyListenerメソッドでリスナー登録すれば、
テキストフィールドにフォーカスがいっている間にキー入力のイベント処理を起こすことができますが、
フレーム(もしくはパネル)を対象にして、キー入力のイベント処理を起こすことはできるのでしょうか?
365デフォルトの名無しさん:03/11/11 00:37
>>364
ショートカットキー?
>>361
されない
>>350
PHPのリッチクライアントってなんだ?
>>365
そうですね
>>350
そもそもJSPはサーバーアプリなのに
何でリッチクライアントが出てくるのか・・・
370311:03/11/11 01:15
>>316
遅レスですがサンクス!
んで今英語なんで訳してるんですが、こういうのって訳したのをネット上で公開しちゃまずいですよね?
承認もらわなきゃダメなんですかね。
スレ違いですいません。
あと「Colourized」ってのはカラフルくらいの訳でいいんすか?
371314:03/11/11 01:18
>>315
[a-zA-Z0-9:_.-]を省略しましたが、やはり日本語が含まれているとヒットしません。

<img alt="aaa">

のような日本語の含まれないタグだと、元の表現でもヒットします。
正規表現の書き方ではなく、日本語も含めて判定するのかどうかの設定がどこかにあるような気がするのですが・・・
そりゃ[]内に英数字しか書いてないんだから日本語がヒットするわけなかろう
374デフォルトの名無しさん:03/11/11 01:40
>>371
調べることは大切だけど、無理して正規表現でやらなくても、
他に実現方法いくらでもあるでしょ。
>>371
\p とか \P とか使ってみたらどうだろ?
中途半端に身に付けた正規表現は厨房生成器ですからね
Javaで書かれたクラスプラットフォームなキーロガーが
完成したら俺にも教えてくれ(笑)
379314:03/11/11 02:21
>>372
パターンを "<([/]?)([a-zA-Z]+)([^<>]*)>" のように簡略化してみました。
<img alt="あ"> の場合、([a-zA-Z]+)に対して (img) が、([^<>]*)に対して ( alt="あ") がマッチして欲しいのですが、altの中に日本語があるとマッチしません。
なので「[]内に英数字しか書いていない」というのは関係ないように思います。<>以外の全ての文字の中に日本語が含まれていないようなのです。

>>375
\pや\Pというのが日本語も含めた文字集合をあらわしているのでしょうか?仕様書を調べてみます。
380デフォルトの名無しさん:03/11/11 02:32
Jakarta OROとjava.lang.regexどうちがうのよ?
どう適切に選べばいい?
>>364
フレームやパネルでキーボードのイベントを取ることは出来る。
JComponent のisFocusTraversableのメソッドをオーバーライドする。
setEnabledをtrueにする。
だったっけな。ちょっと良く覚えてない。
向き不向きに関係なく文字列解析を何もかもやらされて
正規表現ライブラリの中の人も大変だよね〜
javaSDK1.4.1 w2kで開発したプログラムが、macOSX ver 10.2 javaSDK 1.4.1で
動きません。念のため、ソースコードをOSX上でコンパイルしても、(コンパイル自体はエラーもなく通ります。)
# Component Manager: attempting to find symbols in a component alias of type (regR/carP/x!bt)
と言うエラーが出ます。
macOSXで動かすには、何かほかにライブラリとか必要になるのでしょうか?

384383:03/11/11 03:01
ちなみにSwingと javax.sound.midiを使ってます。
>>383
"# Component Manager: attempting to find symbols in a component alias of type (regR/carP/x!bt)" でググってみれば?
特に Java と関係ありそうなのが見つからんかったので自力でがんがってくれ。
386前スレ409:03/11/11 03:40
すいません、また質問させてください。

12345678901234567890…
と書かれているファイルがあります。
このファイルから、ランダムアクセスファイルクラスを使って、2バイトのデータを読み込みたいのですが、
参考書には1バイトの読み込みしか書かれてなく、
Sunの仕様を読んでもどのようにしたらよいかわかりませんでした。
このような場合、read()のメソッドはどれをどんな感じで使用したらよいのでしょうか?
>>386
readShort() もしくは readUnsignedShort()
388前スレ409:03/11/11 04:08
>>387
readShort()使ってみたら、コンパイルは上手くいきました。
ありがとうございます。

しかし、ご好意に報いることができず、求めていた結果とは違っていました。
もう一度だけお願いいたします。
12345678901234567890…
と書かれた数字を2バイトずつ読み取って、
122334455667788990011223344556677889…
と別のファイルに書き込むという感じにしたいのです。
readShort()を使った場合、
223456789012345678901234567890…
となってしまいますた。

説明が足らずにすいませんでした。
byte b[2];
b[0] = in.readByte();
while (in.getFilePointer() < in.length()) {
b[1] = in.readByte();
out.write(b);
b[0] = b[1];
}
390前スレ409:03/11/11 05:15
byte[] b=new byte[2];//2バイト分格納用
int c;



for(int i=0;i<=raf.length();i++)
{
//ファイルAの現在のファイルポインタ位置から2バイトデータを読み取る
c=raf.read(b);

//読み取ったデータをファイルBに書き込む
fos.write(c);

//次のファイルポインタ位置に移動
raf.seek(i+1);
}

ってやってるんですが、出来上がったファイルBを秀丸くんで見ると、
Bに四角がついたものになってしまいます。
恐らく型の変換が上手くいっていないんだと思っておりますが、
アドバイスお願いいたします。
391389:03/11/11 05:51
>>390

c=raf.read(b); の行で、実際にファイルから読み込まれたデータが格納されるのは
配列bの方。cには読み込まれたバイト数が格納される。
よって、次の fos.write() にはbを指定しなければいけないことになる。
ということだ。せっかくだから fos.write(b, 0, c) にしとけ。
392前スレ409:03/11/11 06:01
>>389
ありがとうです〜〜〜。
レス頂く少し前に、1ビットずつ2回繰り返し、ファイルポインタをひとつ戻す
というローテクなやり方で自己解決しましたが、何ビットもファイルを読み込みたいときは、
こちらの方が断然使いやすいですね〜。
大変勉強になりました!
1ビットずつ読む方法俺にも教えてよ
394デフォルトの名無しさん:03/11/11 09:19
自作のクラスのインスタンスを配列にしたい場合、
Vectorなどのクラスを使わないと実現不可能なんですか?

class MyClass {
  ...
}

public UseMyClass {
  public static void main(String args[]) {
    MyClass mc[] = new MyClass[10];
    ...
  }
}

というようにしたいのですが、
java.lang.NullPointerException
コンパイルは通ってもが発生してしまいます。
395デフォルトの名無しさん:03/11/11 09:20
↑すいません、
public class UseMyClass {
です。
396デフォルトの名無しさん:03/11/11 09:23
↑×2 あ、なんか最後日本語おかしくてすいません。
コンパイルは通るのに、実行すると
java.lang.NullPointerException
が発生してしまいます。
ということです。原因を教えていただけたら幸いです。
397デフォルトの名無しさん:03/11/11 09:25
>>394

MyClass mc[] = new MyClass[10];
の後に、例えば
for(int i=0;i<mc.length;i++){
mc[i]=new MyClass();
}
などの処理を書かないとダメダヨ
398デフォルトの名無しさん:03/11/11 11:07
ふと思ったんだけど、JAVA入門でコマンドラインで動く程度のプログラムを
書いて「なるほど、ふんふん」とか感心してみたりするじゃない。
…でも、この次って何があるの?

JAVAって、普通の人が普通に自分のために役立つプログラムを書くのに適して
ないと思うんだけど、これは素人の考えなのかなあ。

入門レベル卒業後はみんなどんなプログラム書いてるんだろう?
>>398
Ruby 使え
>>398
>普通の人が普通に自分のために役立つプログラムを書くのに適して ない

じゃぁ自分が「適してる」と思う言語で作ればいいだろ。
401デフォルトの名無しさん:03/11/11 11:36
>>400
ちまたではJAVA、JAVA言うけれど、みんな何に使ってるのかなって思ったの。
プログラミングを学ぶには最適な言語だと思う。でも、それを活かせる場が無ければ
勉強だけで終わっちゃうじゃない?
JAVAを勉強してる人の全てがサーバサイドでWebサービスアプリ作ったり、携帯アプリ
作ってるとはとても思えなくて。

ケンカ売ってるんじゃないよ?
>>401
>JAVAを勉強してる人の全てがサーバサイドでWebサービスアプリ作ったり、携帯アプリ
>作ってるとはとても思えなくて。
こっから
>普通の人が普通に自分のために役立つプログラムを書くのに適して ない
こう飛躍する思考が分からん。

普通の人って誰? 普通にってどういうこと?
キャラクタベース卒業直後ってこと? それは要するに勉強不足で組めないだけだろ。
「適してる」言語を挙げて、比較して論じてよ。ここじゃスレ違いだけど。

そもそも、先に用途があって、後から言語や API が用意されるんだからさ、
勉強したあとで用途に合わないとか言い出すなよ。
JavaをJAVAとかく奴は(ry
昔なら自分のHP用にJavaアプレットを作ったりしてみたものであった。
たしかにPerlなら、CGIスクリプトを作ってみたりができたが、
Javaサーブレットやjspが使えるレンタルサーバも、あまりない。
まあ自宅サーバ持ちなら、トムキャットやJBossを入れている諸兄も多そうだが。

実務においてサーバサイドが全盛のように、
各Javaプログラマの個人的な利用法を見ても、サーバサイドでの利用が多いのではないかな。
windows, Mac, Linuxといった複数のOSを日常的に使っているプログラマなら、
あるいは、たとえばFTPソフトや、インスタントメッセンジャーなどの各種クライアントサイドなプログラムを
Javaで個人的に実装してみたりもするのかもしれないが。
405デフォルトの名無しさん:03/11/11 12:15
>>402
普通というのはプロじゃない趣味プログラマという意味です。
プログラミングの学習そのものが好きという人も中にはいるかと思いますが、そうじゃない
人達にとってJavaの用途って何だろうと思ったわけです。

>>404
うん。聞きたかったのはそういうことです。

Javaと聞くと、エンタープライズ、チーム開発、サーバサイドなどなど、大規模な
用途ばかり連想されて、じゃあ個人用途では何に使っているのだろう? というのが
疑問でした。
俺個人の感想としては、
Swingなどの統一されたAPIがあって、
これを使えばどのOSでも動くGUIアプリケーションが
楽に作成できるというのがいいね。

これがC, C++なら、それぞれのOSや環境ごとに、
独自のAPIを調べて呼び出さなければならない。

まあ最近では、どのOSにも対応した
グラフィカルなライブラリも散見されるが。
つまりそのライブラリ用に一つプログラムを書けば、
あとは再コンパイルするだけで
"Write Once, Run Anywhere" を実現できるわけだ。

まあGUIなアプリケーションが楽に作れるといっても、
VBなどに馴れた人々に取っては、また別の意見もありそうであるが。
>>403
>普通というのはプロじゃない趣味プログラマという意味です。

今の世の中じゃ、それはまだまだ普通と言えないと思うが。
まぁついでだから、その「普通の人」が組むソフトの例も挙げてみてくれよ。
普通の人=企業だったら上から降りてくるものを導入するのが困難な人
と定義するのはどうか?

例えば,個人で Oracle 使う人間は稀だろ?
>>408
例示の妥当性に疑問が。
JDBC かませたら Oracle だろうが MySQL だろうが、大体同じだもの。
も少し Java 寄りに頼む。
>>409
Java 寄りに例を挙げたら俺が答えを出していることになるのでは?
趣味のプログラマに足りないのは
金銭・物品のバックアップ,実務経験,人手だと思われ

よって1人(〜3人程度)がお小遣い程度の出費で出来ることを考えればいいと思う
あと,タダで利用できるソフトウェアでも,
その導入の契機が企業などでの経験から来ているものは避けた方がいい
精々 Java 関連雑誌を読んで導入しようと考える程度のものがいい
412デフォルトの名無しさん:03/11/11 12:51
>>407
ちゃんと>>404 >>406 みたく理解してくれてる人がいるので、これ以上
「普通の〜」に噛みついてウダウダ言うような人は(´ー`)チラネー

別に個々人の「普通」を一致させなくても、407の頭の中の人が思う「普通」で
考えればいいよ。407がよほどのへそ曲がりでなければ。
413デフォルトの名無しさん:03/11/11 12:55
要するに、何か例を挙げたところで、
「そんなの簡単に作れるだろ ばーか」
と言われるのが怖いようです
414デフォルトの名無しさん:03/11/11 12:56
いいから黙って AWT か Swing はじめろよ。
難しくないから。普通の人には。
>>414
SDK だけで始められるというのが魅力だわな
>>398
それは初心者用の本であって、入門用の本ではない。
ウィンドウの表示かサーブレットJSPのことが書いてないような本は、初心者が読んでも初心者のままだ。
Java入門とうたいつつクラスの説明が書いてない本は、問題外。
417327:03/11/11 13:08
>>360
>ttp://www.kt.rim.or.jp/~ksk/sock-faq/unix-socket-faq-ja-2.html#ss2.1
>によれば、UNIXのSocketではread()で0を返すらしくて、read()の0はEOFだから、
余談だけど、available()は0返すんだよね。-1返してくれりゃ済むのに。

>スレッドプールを作って、そいつとコネクションをひもつける。
今そういうつくりに変えてるところ。
けどacceptしない、っていうのはだめみたい。
数千くらいは受付しないとだめだって。

java.nioのSelector試してみました。
反対側がソケットを切断したらSelectionKey.OP_READで登録した
SocketChannelがシグナル状態になったけど、戻り値が0でした。
ノンブロッキングに設定してあるからパケットが無くても戻り値0。
Selectorでシグナル状態になっていて、かつSocketChannelのreadの
戻り値が0だったらソケットは切断されている、って判断するのは正しいですかね?
selectとreadの間に割り込みでreadが入らなければOKですかね?

>>363
SUNが出してる専用のライブラリってあるんですか?
今は自分で書いちゃってますが。
>>417
Jakarta Commonsにないかい?
>>417
Jakarta Commons Pool。Apacheライセンスなので商用製品にも使い放題だ。
ttp://jakarta.apache.org/commons/pool/
ttp://jakarta.apache.org/commons/pool/examples.html
Jakarta Commonsって結構知られてないのな。車輪の際発明しなくて便利なのに。
420デフォルトの名無しさん:03/11/11 13:40
http://java.sun.com/products/java-media/3D/download.html
ここに行ってもJava3Dダウンロードできないんだけど、
どうしたらいいの?
他に手に入る場所ってないよね?
>>420
君に教えておいてあげるけど、
「ここのやつダウンロードできない!!」「この URL、見れない!」という訴えのほとんどは、
本人の環境によるものであって、万人に共通のことではないんだよ。
現に今俺、落とせてるし。
ブラウザかプロバイダを変えて試してみてね。
>>419
車輪の再発明と再開発を混同してるやつハケーン
Jakarta Commonsは実装だから発明してるわけではない。
423デフォルトの名無しさん:03/11/11 13:56
>>421
ちなみにブラウザは何?
私はIE6.0なんだけど。
>>422
物の例えじゃん。
なんでもかんでも噛みつけばいいってもんじゃないよ?
CommonsはJAVA PRESSやらWEB+DB PRESS、JAVA DEVELOPERで最近よく取り上げられてるね。
>>424
誤解がはびこるだろ。
427327:03/11/11 14:16
>>418,>>419
Jakarta Commonsって初めて知りますた。
便利そうですな。
またプール使うことがあったらこっち使ってみます。
>>423
NN7.1 と IE6.0 で両方うまくいってます。
板違いなのでもう来ないでね。
429デフォルトの名無しさん:03/11/11 14:32
>>316のマニュアルの翻訳終了!
勝手にうpしていいものか・・・。
>>429
とりあえずメールで尋ねてみては?
俺もぜひ読んでみたいし。
431デフォルトの名無しさん:03/11/11 15:07
>>428
NN7.1って何の略やねん。
それに、>>423は板違いじゃねーぞ。
ここで合ってると思うよ。
>>431
java.sun.com が落ちてるとかならともかく、
「ダウンロードできません」だけなら板違い。
433デフォルトの名無しさん:03/11/11 15:15
>>432
ならば、正解の板は?
土井たか子風に答えてください!
>>433
どこの板にふっても迷惑なだけだろな、
Sun に直接メールでもすれ
>>431
ブラウザでNNときたらあれしかないでしょ。あれしか。
436デフォルトの名無しさん:03/11/11 16:24
double型の配列w[9999]があります。

プログラムのある箇所で、forループをまわし、
配列内のいくつかの要素に数字を代入します。

確認の為に、ループ内でw[]を出力すると、
w[1001] = 0.75
w[1002] = -0.25
このように数字が代入されていることが確認できます。

しかし、ループを出た直後にこれらの要素を出力すると、
w[1001] = NaN
のように表示されてしまいます。
この間、w[]に変更を加える記述は見あたらず、困っております。
配列w[]の要素が消えた原因として、どのようなことが考えられるのでしょうか?
>>436
原因:ループ内とループ脱出で、違う w[] インスタンスを参照している。
つまり中身が消えたのではなかろう。

初心者特有のバグ。指南はしにくい。ソース晒しなさい。
>>436
ばかこーどの例
double[] d = new double[9999];
for(int i = 0; i < d.length; ++i){
  double[] d = new double[9999];
  d[i] = 123.45;
  System.out.println(d[i]);
}
System.out.println(d[1001]);
単なる勘違いじゃネーの?
440デフォルトの名無しさん:03/11/11 16:50
>>437
ありがとうございます。
該当箇所のソースが少し長い(50行くらい)ですので、
webにアップしました。

http://www.geocities.co.jp/Milkyway-Lynx/9939/java/source.java(ソースファイル)
http://www.geocities.co.jp/Milkyway-Lynx/9939/java/source.html(html版)

CのプログラムをそのままJavaに移植しているので、
オブジェクト指向の欠片もないコテコテです・・・
441デフォルトの名無しさん:03/11/11 16:51
テキストファイルの読み込みをしたいのですが、
下のクラスファイルとtest.txtというファイルを
同じフォルダに入れてhtmlファイルから動作させると、
appletviewerではできるのですが、
htmlファイルを直に開いても、アプレットの四角い灰色しか表示されません。

どうしたらよいか、どなたか教えてくれませんか。


import java.awt.*;
import java.applet.*;
import java.io.*;

public class Io extends Applet {
Label label;

public void init() {
try {
FileReader fr = new FileReader("test.txt");
BufferedReader br = new BufferedReader(fr);
label = new Label(""+br.readLine());
fr.close();

} catch(Exception e) {
System.out.println(e);
}

this.add(label);
}
}
>>440
下から 5行目で上書きしてんじゃないのか?
j1 がどっからどう始まるのか分からんから処理追えないし・・・

それと、
System.out.println("\nw["+(j2*100+j1)+"]:"+w[j2*100+j1]);
こうしないと表示が変だろう。関係ないだろうけど。

int index = j2*100+j1;
System.out.println("\nw["+ index +"]:"+w[index]);
こうでもいいし。
>>441
appletviewerで見れて
ブラウザで見えないてことはhtmlが間違ってるんだろ。
>>441
1.>htmlファイルを直に開いても、
  ブラウザで、ってことか? それなら「ブラウザではできません」と書きなさい。
2.グレーになりっぱなしってことは Javaコンソールに何か出ている可能性高し。
  ちゃんとそれ見て分析しなさい。
3.例外は e.printStackTrace(); した方がよりよく問題を把握できる。
4.アプレット(ブラウザで動かす、という本来の用途での)では、ローカルファイルの読み込みはできない。
  new InputStreamReader(getClass().getResource("test.txt").openStream()); か何か使いなさい。
  ↑それぞれのメソッドの意味と返るオブジェクトのクラスについても勉強すること。
445436:03/11/11 17:03
>>438
コード全体を見直しましたが、w[]のインスタンスは1つしか生成していません。

上記のリンクが外れておりますので、もう一度張っておきます。

<該当箇所のソース>
http://www.geocities.co.jp/Milkyway-Lynx/9939/java/source.java
http://www.geocities.co.jp/Milkyway-Lynx/9939/java/source.html

>>440
j1は0から始まっています。
5行目のご指摘がありましたので、見直します。
ありがとうございます。
2’
 ファイルオープン失敗で IOExcepiton が出て、
 label が不定 (null) のままなので、add(null) して怒られていると予想できる。
 Javaコンソールには catch されなかった NullPointerException がエラー出力されている。
 発生箇所は Component 実装の深部。
>>440
べつに、その程度でオブジェクト指向がどうのこうのいう必要はない。
448前スレ409:03/11/11 18:38
数字と数字の間にタブ(やコンマ等)を書き込みたいのですが、

fos.write("\t");

ではダメなのでしょうか?
449前スレ409:03/11/11 18:52
自己解決いたしました。
スレ汚し、すいませんでした。
450デフォルトの名無しさん:03/11/11 20:09
javaの文字列変換で
"クラス"→"class"
"メイン"→"main"
になど日本を英語に変換(あるいはその逆でも)って可能でしょうか?

"クラス"→"kurasu"
"メイン"→"mein"
なら無理やりでも可能だと思いますが…
451デフォルトの名無しさん:03/11/11 20:14
あんたらオライリー読んでるかい!?入門の次は何をやれば・・とか言ってる香具師!
オライリーを読みなさい。オライリーを理解できるようになって始めて初心者脱出。
それまではグダグダ言わずにコンソールで勉強汁。
452デフォルトの名無しさん:03/11/11 20:15
処理のない引数なしコンストラクタって
よく書かれていますが、何のためにわざわざ明示するのでしょうか?
あれって書かなくても実行時に自動的に勝手に作成されるから、あまり書く意味ないのでは?

public class const{
public const(){
}

などです
>>452
private だったりしない?
>>453
そうです
間違いました
>>454
クラス外からのインスタンスの生成を防ぐ
>>450
どーゆーつもりで聞いてるか非常に気になるな・・・
好意的に考えて・・・「翻訳API があるか」ってことか?
多分無いと思う。

「API って何ですか」とか言わないように。
>>456
APIとかじゃなしに
自分で作るにしても技術的にjavaでそういうことが可能かって事?
>>457
カタカナ英語と英語の対応表があればな
459デフォルトの名無しさん:03/11/11 20:56
>>455
書かなくても自動的に引数なし処理なしコンストラクタが作成されるから
結果的に同じじゃないのでしょうか?
460豆さん:03/11/11 20:59
質問です。アプレットを実行しようと思ったのですが、appletviewer・ブラウザともに
実行できません。コマンドプロンプトには、下のようなエラーが出てます。↓
access denied(java.io.FilePermission ..)
アプレットのソースもHTMLも参考書を見て作成したので環境の設定に問題
があるのでしょうか?
>>457
激しく可能だね。

>>459
private の場合は違うんだよ。
new const(); できなくなる。


っていうか 1文字目は大文字にしなさい。
>>459
public class A{ privateA(){} }

public class A{}
で引数なしのコンストラクタを外部から読んでみればわかるよね。
463360:03/11/11 21:02
>>417
>数千くらいは受付しないとだめだって。
ぬは。同時コネクションが数千か、一秒間に数千コネクション受け付けるのか、
どっちにしろきつそうだなぁ。

>SUNが出してる専用のライブラリってあるんですか?
>今は自分で書いちゃってますが。
スレッドプールはDoug Lea先生のutil.concurrentあたりかなぁ。
ttp://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html
>>460
環境の設定に問題があります。
「アプレットでファイルを扱おう」という腹づもりにもやや問題があります。

あなたは知らないかもしれませんが、Google という大変素敵なウェブサイトがあります。
キーワードを入れると、自分の欲しい情報がかなりの確率で手に入るサイトです。
http://www.google.co.jp/search?q=cache:ezN-25snMGYJ:www.dmz.hitachi-sk.co.jp/Java/Tech/security/12security-sample.html+java.io.FilePermission+%E3%82%A2%E3%83%97%E3%83%AC%E3%83%83%E3%83%88&hl=ja&lr=lang_ja&ie=UTF-8
465デフォルトの名無しさん:03/11/11 21:40
課題で、数字を入力して四則演算をさせるプログラムなのですが、
例外処理とか言うやつをしないといけません。
数字入力に関しては何とか出来てるっぽいです。
が、Stringの部分はとりあえず読み込んでしまい、エラーが出ないので、
出るようにして、その例外処理をしたいのです。
金曜日までなのですが、誰か教えて下さい。お願いします。m(_ _)m
←←の部分の!を使うらしいんですが・・・

import java.io.*;

public class Kadai1104 {
public static void main(String args[])throws IOException{
BufferedReader d=new BufferedReader(new InputStreamReader(System.in));
double num=0;
for(;;){
try{
num=Double.parseDouble(d.readLine());
}
catch(java.lang.NumberFormatException e){
System.out.println("数字を入力してください");
continue;
}
break;
}
System.out.println(num);
466465続き:03/11/11 21:52
for(;;){
String s=d.readLine();                ←←
if(s.equals("=")) break;
double num1=0;
try{
num1=Double.parseDouble(d.readLine());
}
catch(java.lang.NumberFormatException e){
System.out.println("数字を入力してください");
continue;
}
if(s.equals("+")){
num=num+num1;
}
// else if(!s.equals("+")){                 ←←
// System.out.println("記号を入力してください");
// continue;
467豆さん:03/11/11 21:53
>>464
Webに載っているとおり、java.plocyの中身を書き変えましたが、解決しません。
しかも、アプレット自体はボタンとラベルを表示するだけでファイル書き込みを
しているとは思えないのですが、、、。
エラー内容は↓です。
java.security.AccessControlException: access denied (java.io.FilePermission \cla
sses\Sample.class read)
468465続き:03/11/11 22:04
}
else if(s.equals("-")){
num=num-num1;
}
else if(s.equals("*")){
num=num*num1;
}
else if(s.equals("/")){
num=num/num1;
}
System.out.println(num);
}
num=num;
System.out.println(num);
}
}

469デフォルトの名無しさん:03/11/11 22:15
下のようなプログラムなのですが、Age3FrameでcontentPane.add(new Age3Panel(a))とするとシンボルが解釈してもらえないので
すが、どなたかアドバイス頂けませんか?
public class Age2 extends Frame{
Label l1=new Label("U"); Label l2=new Label("R"); Label l3=new Label("wwwwwww");
static int a[]=new int[4];
String tameshi="";
public Age2(int[] a){
setLayout(null);
setSize(700,700);
add(l1);add(l2);add(l3);
l1.setBounds(200,200,20,20);l2.setBounds(400,400,30,30);l3.setBounds(500,500,70,70);
try{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
StringTokenizer tokenizer = new StringTokenizer(in.readLine(), " ");
for(int i=0; i<4; i++){
a[i]=Integer.parseInt(tokenizer.nextToken());
tameshi = AnalyzeStatus(a);
l3.setText(tameshi);
} }
catch(Exception e){
System.out.println("BuffereadReader Error.");
} }
:
}
class Age3Frame extends JFrame{
public Age3Frame(){
setSize(1024,750);
Container contentPane=getContentPane();
contentPane.add(new Age3Panel(a));
}}・・・
470469です:03/11/11 22:32
最初のextends Frameはextends JPanelの間違いでした。
なんでAge3Panel(a)が解釈されると思ったのかアドバイスしてほしい。
472デフォルトの名無しさん:03/11/11 23:54
JavaにおけるXMLの利用って何でしょうか?
たとえばweb.xmlやserver.xmlなど
473デフォルトの名無しさん:03/11/12 00:01
JUnit の textui を使ってテストケース走らせると、最初に標準出力に
ピリオドが 1 つだけ出るんだけど、これって何ですか? (JUnit 3.8.1)
474デフォルトの名無しさん:03/11/12 00:07
...................... <-テスト通過を示す記号
ok
..E... <-エラー!!!
message:なんかバグってますよ。

475469:03/11/12 00:12
public class Age2Panel extends JPanel{
public Age2Panel(int[] a){

でした。たびたびすみません。
AgePanel(a)はコンストラクタだから解釈されると思いました。
普通にAgePanel()の場合new AgePanel()でいけるのと同じと思ったのですが
>>472
いみがわからん。
それは、C++におけるCSVの利用ってなんなのか、みたいな無意味な質問だ。
GUIには
Hook Operationパターンは使えるよな?
478デフォルトの名無しさん:03/11/12 01:21
そんなパターン聞いたこと無い
MEで使えるJAVAのフリーのコンパイラってありますか?
ありますが、479の使えるコンパイラは存在しません。
JAVAなんてありません。
482デフォルトの名無しさん:03/11/12 01:44
メールプログラム作っています
とりあえず送信専用のアプリなんだけど
Winだと大じょぶなんだがMacに送ると文字化けします。
どうも日本語のあたりが?になってしまう

一応ヘッダはこのように指定して、文字化けはない思ったんだが
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit

何ででしょう?

あJavaMailはつかわないで、Socketでおこなっとります
>>482
> あJavaMailはつかわないで、Socketでおこなっとります

なんで?
とりあえず、おまえのせい。
>>482
Javaとまったく関係ない話題ですね。
このスレこんなんばっかり(笑)
>>484
まったくじゃないんじゃないの?
自分が組んだプログラムがバグってるのはなんでですかって質問だけど、とりあえずJavaで組んでるみたいだし。
>>465
はっきり言っておくけど君がすべきなのは例外処理じゃなくて単なる条件判断だよ。
>例外処理とか言うやつをしないといけません
NumberFormatException の方はまぁまぁ正しい使い方してるけど、
「とか言う奴」という程度の理解力じゃここでどう教えても間に合わない悪寒。
そんなに単純な課題じゃないようだからね。丸投げスレ探して、そっちで聞いた方が吉かも。

>>467
何か手順がおかしいんじゃないの?
環境の状態は我々には分からんので、参考書のとおりかどうか、もっかいつぶさに確認してくれ。
ファイルパスと手順を正確に細かく書いてくれたら、誰かが同じこと試してくれるかもしれないけど。

>>469>>475 のソース断片の関係性がさっぱり分かりません。
もっときっちり書いて下さい。

>>485
だって「Macに送る」と化けるんだもん。
SMTPサーバ越えてから向こうの問題か、ほんとに iso-2022-jp で送ってるか?って話。
バイナリでログとれば確認できること。Java かどうかは無関係。
487485:03/11/12 03:22
>>486
たぶんこいつは「Macに送る」と化けるんじゃなくて、WinのOutlookで受け取れば化けないだけなんだよ。
Winでも他のメーラーでは化けてる可能性大。
Outlookで受け取れることは、メールが送れてることの指針にはならないけど。
Javaで組んだプログラムがバグってるという点ではJavaに関係あるけど、原因は482。
488デフォルトの名無しさん:03/11/12 03:57
JavaAppletでページ移動後も動作を続けられる方法はないでしょうか?
>>488
FRAME
プロパティにインデックスを持つBeanのListの中から、指定したインデックスの
Beanを探索するとします。そのとき、

1.for文でぐるぐる一個づつ(線形探索)調べる。
2.CompareTo メソッドを使って sort → binarysearch

とどっちが速いですか?
後者は特に内部がキャスト連発になるのが気になります。
>>490
もうね、あほかと、ばかかと。
データ件数によるだろうが。
>>491
どのくらいのオーダーからやう゛ぁくなるんでしょうか?
493デフォルトの名無しさん:03/11/12 07:08
>>487
脆弱メーラOutLookをそんなに弁護しなくても
495デフォルトの名無しさん:03/11/12 08:01
>>490
3.Comparatorを実装して、Arrays.sort(beanArray, comparator)する。
  そのあと、Arrays.binarySearch(beanArray, targetBean, comparator)する。
>>485
おいおい勝手に決め付けてんじゃねーよ。このヒキヲタ
>>494
弁護してるようにはみえないが。
>>492
そんなん、Beanの実装によるだろ。
「CompareToメソッド」がどのくらいの重さか、とか。
499デフォルトの名無しさん:03/11/12 12:29
javaでオブジェクトのメソッドを標準出力にdumpするようなのあります?
>>499
そんな至れり尽せりなのはない。
getClass() して getMethods() したらどう?
>>499
リフレクション?
>>500

ありがとう
調べてきます
503デフォルトの名無しさん:03/11/12 12:48
Java3Dで、楕円ってできる?
楕円錐でもいいんだけど。
誰か、教えてくださいというかソースあったらください。
504469です:03/11/12 12:56
もっときっちり書いてくださいという指摘がありましたので、一応全て載せておきます。
import java.awt.*;import javax.swing.*;import java.util.*;import java.io.*;
class Age2Panel extends JPanel{
Label l1=new Label("U"); Label l2=new Label("R"); Label l3=new Label("wwwwwwww");
static int a[]=new int[4];
String tameshi = "";

public Age2Panel(int[] a){
setLayout(null);
setSize(700,700);
add(l1);add(l2);add(l3);
l1.setBounds(200,200,20,20);l2.setBounds(400,400,30,30);l3.setBounds(500,500,60,60);
tameshi = AnalyzeStatus(a);
l3.setText(tameshi);
try{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
StringTokenizer tokenizer = new StringTokenizer(in.readLine(), " ");
for(int i=0; i<4; i++){
a[i]=Integer.parseInt(tokenizer.nextToken());
} }
catch(Exception e){
System.out.println("BufferedReader Error.");
} }
public String AnalyzeStatus(int[] a){
switch(a[1]){
case 1:
return checkIL(a[3]);
case 2:
return VA(a[3]);
default:
return "mistake";
}}
505469:03/11/12 12:57
504続き
public String checkIL(int i){
if(i==1){
return "O";
}
else{
return "X";
} }
public String VA(int i){
if(i==1){
return "OP";
}
else{
return "CL";
}} }
class Age2Frame extends JFrame{
public Age2Frame(){
setSize(1024,750);
Container contentPane=getContentPane();
contentPane.add(new Age2Panel(a));
}
}
public class Age2{
public static void main(String[] args) throws IOException {
JFrame frame=new Age2Frame();
frame.show();
}}
>>505
>contentPane.add(new Age2Panel(a));
この "a" はいったいなんなんだ。
507469:03/11/12 13:28
Age2Panel(int[] a)のaをつけてみたのですが。 aをつけないときもやってみたのですが、Age2Panel()
はシンボル解釈してもらえませんでした。
508デフォルトの名無しさん:03/11/12 13:31
javaのオブジェクト指向でthisとsuperの働き(役割?)を教えてください
授業聞いてもサッパリだったんで・・・お願いします
>>508
講師に直接聞けよ。金払って授業受けてんだろ?
>>507
意味わかってやってるのか?
>>508
thisはそのオブジェクトのクラスのメンバを指すときに使う
superはスーパークラスのメンバを指すときに使う
>>507
きついことを言ってあげよう。ここまでがんがん書きあがってる割に、君はかなり間抜けだ。
これは君が自分で書いたのか? 途中まで人に書いてもらったのか?

1. Label クラスには、public Label(String name) { ... } というコンストラクタがあるわけだが、
 name と言う変数が無いのに new Label(name); とできるわけがないだろ? こっから類推して考えろ。

2.「a をつけないとき」、どういう動作をして欲しいのだ?
 君は int[] を受け取るコンストラクタだけを用意している。
 こんな状況で、引数無しで new したときどこへ処理が飛ぶというのか。
513469:03/11/12 13:42
フレームに示すときはAge2 age=new Age(a);age.show();とやれば出来たのですが。
つまりAge2Panel(a)というコンストラクタを貼りつけてやれば良いのではないのでしょうか?
>>508
コンストラクタに使うとか
pubic Hoge() { this(1); } //Hoge(int) が呼ばれる
public Hoge(int i) { ... }

インスタンス変数であることを明示するとか
private int value;
public void setValue(int value) { this.value = value; }

インナークラスで、アウタークラスを示すときとか
public HogeFrame extends JFrame {
 ...
 private class CloseAction extends AbstractAction {
  public void actionPerformed(ActionEvent ev) {
   HogeFrame.this.dispose(); //こういうときは書かなくてもいいけどね
  }
 }
}

書かなくていいとき、書いたほうがいいとき、書かなきゃいけないときがある。
>>513
意味がわかって言ってるの?
関係ないが、JFrameとかCanvasとか、継承する前提のクラスでnameとかxとか、よく使う名前をprivateで使うのはやめて欲しい。
継承してnameとかxとかの変数でコンパイルエラーがでたときの意味がわかりにくい。
初学者が混乱する。
>>513
そのときの a は変数として存在していて、値も入っていたからうまくいったんだろうが。
コピペしてどうする。
コンストラクタも自分で書いたんだろ? コンストラクタは int[] が欲しいんだろ?
じゃどうして、いざコンストラクタを呼ぼうとしたときに、 int[] を与えようとしないんだよ。

自分が「こうすればいいんだろう」と思い込むんじゃどうしようもないんだよ。
「こうしたら動いた」って根拠じゃなくて、「Javaの仕様上こうしなきゃならん」て根拠でないとだめ。
>>516
何を言ってるのかしばらく分からなかった。
でも理解できた。んで同意した。
>>503
ティムポでもつくるのか?
520デフォルトの名無しさん:03/11/12 13:57
>>519
なきにしもあらず。
>>503
球をつぶせばできるんじゃない?
剪断とかってできなかった?
522469:03/11/12 14:09
int[]を与えてやってみたのですが、予期しない型とでちゃってだめでした。
>>503
まずSphereクラス、Coneクラスで球、円錐をつくり
Tramsform3D#setScale(Vector3d scale)
でそれらをx,y,z方向のどれかを指定し拡大、縮小する。

以下を参考
http://www.javadrive.jp/java3d/transform3d/index4.html
>>518
同意者がいてほっとした。
具体的には

Canvas c = new Canvas(){
 public void paint(Graphics g){
  for(int X = 0; x < 10; ++x){
   g.drawRect(x,10, 2,2);
  }
 }
};

として
 java.awt.Component の x は public ではありません。パッケージ外からはアクセスできません。
というエラーがでるから、混乱すると言う話。

Object c = new Object(){
 public void paint(Graphics g){
  for(int X = 0; x < 10; ++x){
   g.drawRect(x,10, 2,2);
  }
 }
};
であれば
  シンボルを解決できません。
が出る。
慣れてしまえば問題ないんだが。
>>522
で、それはなんでかわかってる?
Java3D以外にもCanvasクラスがあったのか
>>526
オイオイ
>>503
【徹底討論】Java3Dの可能性について考える
http://pc2.2ch.net/test/read.cgi/tech/1033703640/l50

ここも使え。
>>522
" int[] " が何のことか説明してみろ。
具体的にどう与えたか書いてみろ。

>>524
アクセスできないものは解決できなかったことにする、
初心者向けコンパイラオプションがあればいいのかな。
あほくさいけど。

>>526
AWT 飛ばして Swing 行った口か? 珍しい存在だ。
530469:03/11/12 14:16
すみません、わかりません。
531469:03/11/12 14:17
int[]は端末から入力したものを配列にいれたものです。
>>530
すなおでよろしい。
が、それがわかってないと、どうしようもない。
基礎文法レベルの質問は、掲示板では答えにくいよ。
>>530
とりあえずは、メソッド定義や仮引数について勉強しる!
>>529
> >>526
> AWT 飛ばして Swing 行った口か? 珍しい存在だ。
いや、GUI系ほとんどすっとばしてServletいった口。
Java3Dは趣味のついで。
>>531
ここはプログラム板なんだから、具体的にどうした、ってのは必ずソースで明示してくれ。

君はちょーー初心者なんだから、
我々としては、他の初心者と同じ轍を踏んでないか確認してからでないと、指南のしようがないんだよ。
初心者の意味不明な行動の例は膨大だからいちいち確認できないし。
漏れの経験では、こういうつまづきかたするやつは、Javaにかぎらずプログラムにかぎらず、何事にもスジが悪い。
まぁ、それでも2chで質問してでも解決しようとしてるだけマシ
538デフォルトの名無しさん:03/11/12 14:44
>>523>>528さん、ありがとう。
拡大処理のほうを参考にさせてもらいました。
539前スレ409:03/11/12 14:54
以前の続き、というか関連なのですが…。

01234567890123456789……
という数列が書かれたファイルAから、2バイトずつ読み込み、
011223344556677889900112233445……
というような数列を別のファイルBに書き出すことに成功しますた。
その節はありがとうございました。

で、今日やっていたのは、ファイルBから、また2バイトずつ読み取って、
今度はfor文を使い、
byte b[]=new byte[10000];
int c;
int d[]=new int[10000];//2バイト読み取ったものを格納する配列
for(i=0;i<raf.length();i++){
c=raf.read(b);
d[i]=c;
System.out.println(d[i]);
}
として、d[0]=01,d[1]=12,d[2]=23……
と格納し、画面に表示したいのですが、色々やってみた結果、うまくいきませんでした。
型変換の問題だろうとは思いますが(違ってたらすいません)、ビシビシアドバイスお願いします。
>>539
"バイト" というからには普通数値を扱うもんなわけだが、
中身は文字ないし文字列 '0' (= 0x30) か? それとも数値 0 (= 0x00) か?
それが分かりにくい。

で、過去レスから文字らしいと推察するが、そうすると
>d[0]=01,d[1]=12,d[2]=23……
が何を意味してるのか分からない。2byte から int を作るってこと?
>>539
数字と数値の違いわかる?
542デフォルトの名無しさん:03/11/12 15:08
SQLのlikeをつかって、検索をするときの質問。

String param = ユーザー入力文字列;
String sql = "select * from t where f like ?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1,param);
ResultSet rs = ps.executeQuery();

とやる場合に、%とか\とか_とかが入力されると、意図しないものが抽出されてしまいます。

ということで、このlikeでエスケープしないといけない文字を一発変換してくれる標準的な方法ありませんか?
ないとして、エスケープするのはデータベースにかかわらずこの3文字でOKですか?
いまは、こんなことをやってます。
param = param.replaceAll("\\\\","\\\\\\\\")
          .replaceAll("%","\\\\%")
          .replaceAll("_","\\\\_");
543前スレ409:03/11/12 15:11
>>540
レスサンクスです。
今朝からやってたんですが、01,12,23…を、byteで読み取り、int cに代入し、
そのcをint型配列d[i]に代入する方法、もしくは、
01,12,23…を文字として読み取り、char cに代入し、cを文字配列d[i]に代入する方法、
の2通りをいろいろいじくったりしてました。
ファイルBから2バイトずつ読みとったもの(数値でも文字でも)を、そのままdに記憶
ということです。
>2byteからintを作る
読み取った2byteからintに変換、とも考えました。
544540:03/11/12 15:13
>>539
もし 2byte で int を作るんなら数値を格納してるんだろうけど、文字にしろ数値にしろ、
2byte ずつ読み込むならまず 2byte 読み込む文を書けばいい。難しいことは考えないで。

byte[] bs = new byte[2];
raf.read(bs); //諸条件により 1byte しか読まれないこともある

int への変換。BE, LE によりけり。
int value = ((((int)bs[0]) & 0xff) << 8) | (((int)bs[1]) & 0xff);
byte を int にすると負が負のままになるので、必要ならマスクもする。

で、それを繰り返せばいい。
545540:03/11/12 15:25
>>543
数値でも文字でも・・・て、意味がわからんよ。
数値 0 なのか 数字 0 なのかはっきりしなさい。
両者は全く別のものだよ。別の概念だし、別の値だ。

要するに、bit で表したときそれぞれ
00110000 00110001 ( 文字なら "0", "1", 数値なら 48, 49 ) というバイト列がファイルの中にあったと仮定して、
int value = 0011000000110001; という int ( 48*256 + 49 )を作りたいのか、
int value = 0011000100110000; という int ( 49*256 + 48 )を作りたいのか、
String value = new String(new byte[] { 00110000, 00110001 }); ( == "01" ) という文字列を作りたいのか、
で、さらにそこから 1 という数値を作りたいのか、
はっきりしておくれ。
546前スレ409:03/11/12 15:34
>>540さん
懇切丁寧にありがとうございます。
>>544で示してくださった手順でやってみたところ、48、49などの数値が出てきたため、
数値ではダメだということがやっとわかりました。>>541さんも気づかせてくれてありがとうです。
「文字列」が作りたいです。"01","12"…という文字列です!(数値への変換はしなくてOK)
byte[] b=new byte[2];
int c;

//2つの文字を格納するための配列
int[] d=new int[100000];
//2バイトを格納するためのLoop
for(int n=0;n<raf.length();n++)
{
//testa.datの現在のファイルポインタ位置から2バイトデータを読み取る
c=raf.read(b);

//読み取ったデータを配列d[]に格納
d[n]=c;
System.out.println(d[n]);
//次のファイルポインタ位置に移動
raf.seek(n+1);

d[]をchar型にしてやればよいのでしょうか?
547540:03/11/12 15:40
何か入れ違いになってるかもな。

>c=raf.read(b);
このとき c には、読み込めた byte 数が入る。
うまくいけば毎度毎度 2 が入るが、終点では 1 かもしれん。ループのさせ方による。
>for(int n=0;n<raf.length();n++)
つまり、これではまずいんじゃないか?

byte[] b には文字を表す byte が 2コ入っているから、new String(b); すればそのまま文字列になる。
だから String[] d; を用意して、そこに格納すればいい。

>d[]をchar型にしてやればよいのでしょうか?
char は 1文字しか入らない。'0'〜'9' しか扱わなければ、単に bit 数が増えるだけ。
548前スレ409:03/11/12 15:55
>>540殿
できました〜〜〜〜〜♪
int cに読み取ったものを入れてたから、おかしくなってたですね。
ループなんですが、間違ったものを実行してみると、確かに2,2,2,2,2,2,2で、最後は1が入ってますた。
マズいです(w
でもこれは自分で解決しようと思います。がんがります!
ホントいろいろアドバイスありがとうございます。
以前に指南して下さった方々にも心からお礼申し上げます。
549542:03/11/12 16:00
>>542のlikeでエスケープする文字について、誰か教えてくれ。
550デフォルトの名無しさん:03/11/12 17:12
ヘボいマシンでも、入力支援のあるエディタで開発できる
環境って構築できないでしょうか?

OSはVineLinuxです。

Celeron400MHz、メモリ64MB
ぐらいでも、まあまあ動くのが欲しいです。

Eclipseは入れてみましたが、起動以外も遅すぎて使い物になりませんでした。

宜しくお願いします。
>>550
Kylix
Delphi(pascal)は問答無用で却下
553550:03/11/12 17:18
>>551
レスありがとうございます。

フリーウェアでは存在しないのでしょうか?
554デフォルトの名無しさん:03/11/12 18:40
今新人未経験ではいって一週間目で早くも困ってます・・・

JSPでJavaScriptつかってフォーム飛ばす方法ないっすか?
別ウィンドウに遷移したいんだけど・・・
マジ無理です・・・
>>554
質問を "HTML で JavaScript つかってフォーム飛ばす方法ないっすか?"
にして、他所にいけ。
それでも意味不明だが、とにかく Java には関係ない。
556デフォルトの名無しさん:03/11/12 18:49
>>555
わかった。そうするよ・・・
ありがとう、そしてションボリック
557デフォルトの名無しさん:03/11/12 19:02
>>555
(゚Д゚)ハァ?
>>557
漏れも555と同じこと思ったのだが・・・・
>>550
> 入力支援のあるエディタで開発できる
Vineのバージョンがわからないが、恐らくjvimがデフォルトでインストールされている。ctrl+pで。

名無しのVIM使い
http://members.jcom.home.ne.jp/advweb/index.html
560488:03/11/12 20:04
>>489
なるほど。
でも出来ればお気に入りとかで別のページに移動した場合もバックグラウンドで動作を続けて欲しいんです。
JavaAppletが一度動き出したらIEが全て終了するまで動作できる方法はないでしょうか?
561デフォルトの名無しさん:03/11/12 20:28
execが上手く実行されません。
IOExceptionが発生して、CreateProcess中にエラーが出てるようです。
パスを設定しないと実行できないコマンドなのですが、envに渡す環境変数は
「path=c\hoge\hoge」だとあったのですが、あってますか?
もしくは注意点などあったら教えてください。
引数は""でくくってるので、引数中のパスの空白は、オプションの空白とは区別されてないと思います。
>559
ない。
>>561
うんと、未だにMS-DOSの知識ってのは役に立つんだな。と言うか必須なんだなと思った。
564貧乏紙:03/11/12 21:03
>>554
未経験で会社はいるやつ要るってことはこの業界も仕事が増えてきたのかな?
折れんとこは・・・
>>564
どっちかというと社交性の高いSEタイプを集めようとしてるんだろう。
>>562
ならemacsを
567デフォルトの名無しさん:03/11/12 21:30
今時期新人1週間目ってなによっていうツッコミはなきにしもありですか?
>>567
確かに、経験無しの新卒・・・?
569554:03/11/12 21:47
思いっきり経験なしの新卒ですよ・・・
全くわからん。。。
570デフォルトの名無しさん:03/11/12 21:50
>>567
だから何だよ文句あんのかよ
てめえの会社にいるわけじゃねえだろ
お前いじめられてたろ?
どうしてもいじめたくなるやつっていんだよ、お前みたいな奴
571デフォルトの名無しさん:03/11/12 21:52
>>569
てめえもへらへらしてんなよ
572554:03/11/12 21:52
>>570>>571
答えられないくせに態度だけはでかい人は黙っていてくださいよ。。。
573デフォルトの名無しさん:03/11/12 21:54
>>572
全くわからんくせに態度だけはでかい人もね。
574デフォルトの名無しさん:03/11/12 21:55
>>572
キタ━━━━━━(゚∀゚)━━━━━━!!!!
いや〜煽りあいって本当におもしろいですね!
>>575
一人でやっても詰まらんと思うけど。
577デフォルトの名無しさん:03/11/12 22:25
>>576
_| ̄|○想像してしまった
578デフォルトの名無しさん:03/11/12 23:48
JavaのGraphicsでpaintっていうメソッド使いますけど、
その中のGraphics gを渡した他のメソッドからg.drawLine()とか
呼び出せないでしょうか?
何回やってみても描画されてないように見えるのですが。
呼び出せます
580前スレ409:03/11/13 00:14
知恵をお貸しください。
d[]={01,11,12,11,00,02,22,21,01,02}
と文字列が格納されているとき、
例えば01という文字列はこの10個の中に、2回出てきます。22という文字列は、1回しか出てきません。
これから、
0番目の文字列が出てくる確率を、pd(0)=2/10
1番目の文字列がでてくる確率を、pd(1)=2/10
などとすると、同じものをうまいことカウントする方法はありませんでしょうか?
現在はこんな風にしてまつ。
for(int i=0;i<raf.length();i++){//比較される番号をiとする
double a1=1;
double a2=0;

for(int j=0;j<raf.length();j++){//iを固定したまま、比較するjを回す
if(d[i]==d[j]){
if(i<=j){//もし同じ列が自分自身の番号か、自分の番号より相手が大きいところで見つかったら、+1する
a2=a1+1;
a1=a2;
}
else if(i>j){//もし同じ文字列が見つかっても、自分より相手が小さい場合、重複するので即ループ脱出
a1=0;
break;
}
}
}
インデントしてないのは読む気起きん
質問です
Stringをとってきて全角10文字ごとに分割したいのですが
うまくできません

ああああああああああ
aaaaaaaaaaaaaaaaaaaa

こんな感じで全角なら10文字、半角なら20文字で分割したいのですが・・・

String.Length()だと半角全角無視で文字数だけとってきてしまうみたいで
うまくいきません
何かうまい方法はないものでしょうか?
>>582
String s = "あいうえおかきくけこさしすせそたちつてと";
String dividedS = new String(s.getBytes(), 0, 20);
区切り位置に2バイト文字があるときのことを考えるともう一工夫いるな。
584前スレ409:03/11/13 00:45
ちょいと閃いたので、少し自分でガンガってみまつ。
585デフォルトの名無しさん:03/11/13 00:55
j2htmlのマニュアルやくしたのにうpできないYO!
ライセンス所有してると思われるとこにメールしたけど返ってこない・・・。
どうすりゃいいんだYO!
オレの努力無駄かよ!
英語苦手なのにがんばったのに・・・。
(´Д⊂グスン
586デフォルトの名無しさん:03/11/13 00:59

>>582
非常に説明が長くなりそうだ
とりあえずC言語やれば少しは文字をどのように扱っているのかわかるので
C言語やってみれば?
どっちにしても583のようにバイト単位で調べていくしかない

>>585
努力は必ず報われる

587585:03/11/13 01:04
ちなみにこんなん送りました。通じてるかな?

Hello.
I am a student of University in Japan.
I hope that you can understand my English.

I am translating "The Java2HTML Tools"(http://www.java2html.com/) English into Japanease to use this tool.
And I want to upload the document("The Java2HTML Tools" in Japanease) onto the Internet for the people that needs the document.
I understand that the "The Java2HTML Tools" is protected by United Kingdom
copyright law and international treaty provisions
but I'd rather you gave me permission that upload the document.
What do you think?
I am waiting for your answer.

Thank you for reading this e-mail.
Good-bye.
>>587
最後にBest Regards.を・・・
589585:03/11/13 01:10
>>585
Σr(‘Д‘n)知らんかった・・・。怒ってたりするかもね。
ていうかスレ違いスマソ。この話題ここまでで。無事公開できたら報告します。スマソ。
590578:03/11/13 01:14
>>579
訂正します。
paint内から他のメソッドを呼ぶときは描画されるんですが
おなじメソッドを他のクラスから後から呼ぶと描画されないんです。
何か再描画のメソッドみたいのがあるんでしょうか?
>>583

なるほど 切り出した後に判断する必要があるということですね

たとえばSJISだったら
最後のByteが
81-9F E0-EF だと全角文字の1バイト目だから文字化けしちゃう
その他の場合 は半角文字だからそのまま出力しても平気と

そんな処理を追加すればできそうですね
592デフォルトの名無しさん:03/11/13 01:36
>>591
さすがですね
あなたのように自分でやろうとするひとはおしえガイが有りますよ

はっきり言ってキレイな方法は無いですね
そういう風に地道に一文字ずつ調べていくしかありません
16進数だから

0x81-0x9F 0xE0-0xEFか
JAVA環境のない(SDKをインストールしてない)人に「こんなんできました」と
アプリのjarファイルを渡したら「動かない」と言われました(当たり前ですが)。

こういう、実行環境の整ってない人にもアプレット以外でアプリを渡すには
どうしたらいいんでしょうか?
>>594
Java Web Start
>>595
あ、あれを使えばいいんですか。なるほど。
どもです。
597デフォルトの名無しさん:03/11/13 01:44
>>595
え?それってJRE無くても出きる物だったのか?
>>595

ありえへん
>>597
JR東日本?
function openWindow(){
window.open('/crashme/','_blank',
'menubar=no,status=no,toolbar=no,
resizable=no,width=90,height=60,
titlebar=no,alwaysRaised=yes');
}
function proCreate(){
openWindow();openWindow();openWindow();openWindow();
openWindow();openWindow();openWindow();openWindow();
}

これで何かわかりますか?
>>600
JavaScript
602デフォルトの名無しさん:03/11/13 01:55
JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc2.2ch.net/hp/
603578:03/11/13 02:12
誰かわかりませんか?
他のクラスからアクション起こして、描画させる方法。
参考になりそうなWEBでもいいです。
>>594
相手のOSなどを調べて、相手のOSにあったJREのインストーラーを、あなたのJarファイルとともに渡すか、
それか相手がインターネットに接続していて、WindowsとIEを使っていれば、
ActiveXを利用して、IEで簡単にJREをインストールできるページが有ったはず。

下のページだったろうか。
http://java.sun.com/webapps/getjava/BrowserRedirect?locale=ja&host=www.java.com:80
>>604
それしかないよな?

595はどう処分しましょうか?
>>578
そもそもJavaのルールとして、paintメソッドの類は、
イベントディスパッチスレッドからしか呼び出さないようにしようという、約束事があったと思うが?
>>604
そこまで説明しておいてブラクラなら神
>>605
いやまあJavaWebStartがインストールされていれば、
任意のバージョンのVMを相手に簡単にダウンロードさせることはできるから、それのことを言っているのかもしれないし。
いや、それにしても、そもそもVMが入っていないのなら、JavaWebStartが入っているわけもないか。
>>603
>他のクラスからアクション起こして、描画させる方法。


>>578の文意が私にはよく読みとれなかったのだが、
>>603のようなことをやりたいのなら、モデル・ヴュー・コントローラの三つにソフトウェアを分離して、
他のクラスからアクション起こして、相手のモデルを変更したうえで、
repaintを呼び出せばいいのではないか?

それならば、イベントディスパッチスレッドがらみのいわゆるシングルスレッドルールにもひっかからないし。
式入力欄に、式を入力し、ボタン一つ押すと、入力した式で計算するclassを作るような物を作りたいのですが、

JAVAでJAVAのclassを作成することは可能でしょうか?
その際、どんなクラス、メソッドを使えばよろしいのでしょうか、先輩方のお力をお貸しください。
611デフォルトの名無しさん:03/11/13 04:50
>>591
単純に全角半角の判断をするなら255以上を全角にすればいい
int length = 0;
for(int i = 0; i < str.length(); ++i){
 ++length;
 if(str.charAt(i) > 255) ++length;
}
612デフォルトの名無しさん:03/11/13 04:52
>>610
それでなにがやりたい?
クラスつくるほどのものでもないと思うのだが。
613610:03/11/13 05:16
式を新しい物に代えることがしたいのです。
毎回同じ式を使うことなく、同じ形式の問題でも式の構造を代えることが出来るシステムとして

例)
消費税の計算:
A*1.03⇒A*1.05

もっと、複雑な式なのですが、やりたいことは上と同じことです。
式が新しくなったときに変更が効くもの作りたいのです。
614デフォルトの名無しさん:03/11/13 05:20
>>613
別に、式を評価するしくみさえ持っておいて、式は文字列であたえれば済むことでは?
615デフォルトの名無しさん:03/11/13 05:34
式を評価するしくみを作るならJavaCCね。
どっちにしろ、classファイルを動的に作ってもろくなことない。
とくに610のレベルではね。
616610:03/11/13 05:44
>>614式を評価する仕組みというのは、どういうことですかね?

テキストからStringで取り出す方法しか知らないのですが
Stringでtxtから引っ張ってきたら、式として効果だすには、どうしたらいいのでしょうか。
intに変えるだけでいいのかな?

A.txtに
A+B+C

って書いてあったら、

FileReader fr = new FileReader("A.txt") ;
BufferedReader br = new BufferedReader(fr) ;
Sting str ;
str = br.readLine();

これで、strには、A+B+CってString型が入ってるのですよね。。

もしかして、
int str;
str= br.readLine();
とすれば、
str=A+B+C;の関数になってくれるのですかね?
見当違いでしたら、すいません。
617デフォルトの名無しさん:03/11/13 06:01
>>616
うむ。
そのレスをみるに、動的にクラスなりJavaソースなりを作るという考えは捨てろ。
JavaCCも使うには力が足りなそうだ。
四則演算くらいなら、簡単にできるとは思うのだが。

で、四則演算のライブラリでもちょいと探して紹介しようと思ったのだが、みつけきらんかったよ。
618610:03/11/13 06:19
>>617 たびたび?ありがとうございました。

式の変更っていう簡単かなって思ったことが出来ず、、参ってしまいます。
どういう勉強の仕方をすれば、簡単に使えるようになるんですかね。。。
619デフォルトの名無しさん:03/11/13 06:59
>>618
子どもが空を飛ぶのは簡単だと思うのに似てる。

いろんな勉強が必要そうだ。
Javaとかアルゴリズムとか。
ちゃんと勉強すれば、できるめどがたってないことを「簡単かな」とは思わなくなる。
あとあれだな。
イチローが簡単にヒット打ってるようにみえて
「どうやったら簡単にヒットが打てるようになるんですかね」
と言ってるのに似てるな。

基礎が大事。
Javaなんて全てライブラリがやっているんだから
何も考える必要はない。
Docだけ見ればよい。
622デフォルトの名無しさん:03/11/13 07:06
簡単に打っているようには見えないけど
>>621
ある程度プログラムができるようになって、言語構造の重要さを認識できてない人のような意見ですね。
624デフォルトの名無しさん:03/11/13 07:09
>>623
典型的な分かったつもりになっている人の意見ですね。
>>624
典型的な煽りあいですね。
>>625
えぇ。
とりあえず、Javaの場合、継承することが前提のクラスも多いから、「何も考える必要はない」ということはない。
インターフェイスの使い方も、言語ちゃんとわかってないと難しいし。
私は面倒な処理は全てアブストラクト、インターフェースにして
他人にやらせています。
629javaコマンドの-jarオプション:03/11/13 09:30
便利なアプリを作りました。ダブルクリックで起動できるように、Jarファイルを作成してみました。

JRE以上がインストールされていると、ダブルクリックしたときに javaw -jar "%1" %* が走ることを想定し、
以下のコマンドを実行してみました。しかし、オプションに指定したクラスパスが無視され、
-jarオプションのファイル以外JVMに認識されていないようです。(*1)
しかも環境変数CLASSPATHにクラスパスを指定しても、それさえJVMから見えていないようです。
Q1: これは-jarオプションの仕様なのでしょうか?

java -classpath ".\lib\swt.jar;.\archive\SWTTester.jar" -jar archive/SWTTester.jar

[java.class.path]: archive/SWTTester.jar // SWTTesterの出力(*1)
java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Display
at SWTTester.main(SWTTester.java:6)
Exception in thread "main"

Q2: swt.jarを解凍して、SWTTester.jarに含める方法を考えましたが、
より良い手法がありましたら御教授ください。
>>629
Q1
仕様です。
Q2
マニフェストにクラスパスとしてswt.jarのパスを記述
631629:03/11/13 09:41
>>630
ありがとうございました!
632デフォルトの名無しさん:03/11/13 12:29
一昨日からJava3Dをはじめ、オブジェクトをマウスで動かせるようになりました。
でも、実際にやりたいことはマウスとかを使わないで、角度のデータを直接わたして動かしたいのです。
プログラム的には、以下のような感じです。

for(int i=0;i<n;i++){
double x,y,z; //これらの変数にファイル等から角度データを受け取る
method(x,y,z); //これで、3Dオブジェクトが回転(または視点が動く)
}

でもまったく方法がわかりません。
どなたかこういう方法がありましたら詳しく教えてくれませんか?
>>632
勉強にはもっと順番を踏みましょう。
クラスを自分で設計したりはしてみましたか?
ファイル入力→コンソール出力くらいはもうできますか?(多分まだできないと思うけど)

動作定義を txt に書いてその File を FileInputStream かなんかで開いて、
StringTokenzier か何かで数値を解析して、自分の設計した「コマ」クラスのインスタンスを生成して、
順に ArrayList か何かに入れて、
表示の段になったら Thread.sleep(int) 使いながらコマを List#get(int) かなんかで拾ってきて、
座標値を取り出して位置・角度を変えて再描画。これを繰り返す。

てのが細かいことを考えずに実現する方法だけど。
634デフォルトの名無しさん:03/11/13 12:44
>>633
ファイル入力→コンソール出力くらいはできます。
「座標値を取り出して位置・角度を変えて再描画。これを繰り返す。」
っていうところが、どうしたらいいのかわからなくて困っています。
>>634
ソース貼ってよ。自分なりに、変えなきゃならないところだと思ってる部分を。
636デフォルトの名無しさん:03/11/13 13:08
>>635
座標値を取り出して位置・角度を変えて再描画。
を実現するクラス、及びメソッドをどうしたらいいのかまったくわからないので、
ソースはないです。申し訳ないです。
その部分をどうしたらよいのか、どのように書けばいいのかを
教えてもらいたいと思っております。
>>636
??? いや、今動いてる分のソースだよ。ちなみに、MouseBehavior 使ってるのか?
そっからだと「どうすればいいのか」ていうアルゴリズムの質問じゃなくて、
それ以前に「何を使えばいいのか」ちう API の質問になると思うんだけど。

Transform3D とか TransformInterpolator とかは眺めてみた?
とりあえず、自分のプログラムに適用するんでなくて、
チュートリアルを探して、試してみるほうが先決だと思うけど。
>>636
また、妄想かよ・・・
639デフォルトの名無しさん:03/11/13 13:37
public class MyCharacter {
public BranchGroup objRoot;
public MyCharacter() {
objRoot = new BranchGroup();
TransformGroup objTrans = new TransformGroup();
objRoot.addChild(objTrans);
objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
MouseRotate rotat = new MouseRotate(objTrans);
BoundingSphere boundingSphere = new BoundingSphere();
DirectionalLight directonalLight = new DirectionalLight();
directonalLight.setInfluencingBounds(boundingSphere);
Background background = new Background(new Color3f(0.5f,1.0f,1.0f));
background.setApplicationBounds(boundingSphere);
Character character = new Character();
objTrans.addChild(character);
objRoot.addChild(directonalLight);
objRoot.addChild(background);
rotat.setSchedulingBounds(boundingSphere);
objTrans.addChild(rotat);
}

}
640デフォルトの名無しさん:03/11/13 13:41
//こっちが表示するフレーム
public class View extends Frame {
private MyCharacter mc;
public View() {
BranchGroup objRoot = init();
setLayout(new BorderLayout());
GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
Canvas3D canvas = new Canvas3D(config);
add("Center",canvas);
SimpleUniverse universe = new SimpleUniverse(canvas);
universe.getViewingPlatform().setNominalViewingTransform();
universe.addBranchGraph(objRoot);
setTitle("3D");
setSize(400,400);
setResizable(false);
setVisible(true);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){System.exit(0);}
});
}
public BranchGroup init() {
mc = new MyCharacter();
return mc.objRoot;
}
public static void main(String[] args) {
View view = new View();
}
}

両方ともimportは省略しました。
前のCharacterクラスは3Dを構成しているだけなので省略しました。
こんな風になってます。
641633:03/11/13 14:28
白状すると java3d は一切やったことないので適当に答えました。
だから>再描画 は嘘です。

>MouseRotate rotat = new MouseRotate(objTrans);

これを TransformInterpolator に変える。
すると直円運動・円運動で自動移動させることができる。
カスタム移動にする場合は、自分でクラスを作る。以下は無名クラスの例。

Alpha a = new Alpha();
TransformInterpolator rotat = new TransformInterpolator(a, objTrans) {
 public void computeTransform(float f, Transform3D t3d) {
  t3d.setTranslation(new Vector3d(Math.sin(f*Math.PI*2.0), 0.0, 0.0));
 }
};

こうすると sin カーブに沿った座標移動が可能。
float f は、行程のどの地点での位置が欲しいかの値。
それに沿った値を Transform3D に指定してやればいい。

というわけで一時間で >>632 を追い越しました。
642デフォルトの名無しさん:03/11/13 14:36
>>641
左右に動くだけなんだが、これはどういうこと?
643633:03/11/13 14:41
>>642
new Vector3d(Math.sin(f*Math.PI*2.0), 0.0, 0.0);
が、x軸方向の移動距離(累積距離でなくて元位置からの距離) の変化のみを提供するから。
644デフォルトの名無しさん:03/11/13 14:48
天才の>>643
いまいちよくわからないんですが、結局最初の問題を解決するにはどうすればいいの?
TransformInterpolatorって、物体を回転させてるの?
それとも視点が動いているの?
643が天才なんじゃなくて、644の出来が悪いだけな気がするが。
646644:03/11/13 15:06
物体を移動させてる。x座標値の変動値が sin カーブに従う。
もっと分かりやすく、見た目 sin のとおりに動かしたいってんなら、
new Vector3d(f, Math.sin(f*Math.PI*2.0), 0.0);
にすればいいんじゃないかな。y, z は逆かも。
もうソースをプロジェクトごと消しちゃったから試せません。

ファイルから読み込んで与えたいなら、まず例えば配列に、時間単位ごとの位置を突っ込んどく。
f は 何度も 0 に戻るので、
f が 0 に戻る度に、 (実際は 0 ぴったりが与えられるのではないようなので、前回の値より小さくなる度に)
配列から次座標を取り出して、前座標と次座標の線分のうち、f の割合の位置に移動させれば、一応要求を満たす。

ほんとは PositionInterpolator を連続的に与えるとか、いろいろ最適な方法があるんだろうけど、
これ以上は玄人の回答を待ってください。

>>645
確かに。こんな程度で天才と呼ばれてたら刺される。
647デフォルトの名無しさん:03/11/13 15:16
>>646
位置を移動させるのが目的ではなくて、
物体を違う視点から見たいのですが、
x=Math.PI*0.5だったら、
例えば立方体を右からの視点で見る(物体を回転させる)。
前のソースを使うと物体の座標位置が変わるだけなんですが。
>>646
自分のレス番間違えてるくらいだし(・∀・)
649デフォルトの名無しさん:03/11/13 16:04
public void rotation(double x,double y,double z) {
 Transform3D rotation = new Transform3D();
 rotation.rotX(Math.PI*x);
 Transform3D orig = new Transform3D();
 objTrans.getTransform(orig);
 rotation.mul(orig);
 objTrans.setTransform(rotation);
}
こういう関数作ったら、物体を回転できるようになりました。
>>649
よくがんばった。感動した。
651デフォルトの名無しさん:03/11/13 17:53
厨な質問だと思うのですが、お助け下さい。

Socket socket = new Socket(1234);
while( true ){
 //なんかの処理
}
socket.close();

とやると、最後の行でUnreachableなんたらってエラーが出ます。
これはなんででしょうか?
>>651
最後の行に、いついくの?
653651:03/11/13 18:03
>>652
も、もしやループの中にBreakがないから
怒られてるのでしょうか?
(と思ってif文をループの中に作ってBreakを書いたけど依然同じ・・)

標準入力からQuitと入力されたらBreakするようにしたけどダメでした。
(いついくかの質問に対する回答はこれで正しいですよね?)
654651:03/11/13 18:11
>>653
自己レスです。

やっぱりループの中にBreakが無かったから怒られてたみたいです。
(上のは保存し忘れてただけでした(^^;)

さらに質問です。
String s;
InputStream sysin = System.in;
DataInputStream datain = new DataInputStream(sysin);
s = datain.readLine();
としたら、最後の行で警告が出ます。
The Method readLine() from the type DataInputStream is deprecated
と言われるのですが、何が悪いのでしょうか?
>>654
推奨されてない。
InputStreamReader使え。
>>654
ちなみに、それはどんな資料見てる?
とりあえず古い資料だから、捨てとけ。
657651:03/11/13 18:42
>>655
>>656
レスありがとうございます。
おかげで警告が消えました。

DataInputStreamは「標準入力」とかでググりました。
APIドキュメントはダウンロードして持っとかなきゃ
659デフォルトの名無しさん:03/11/13 19:46
最近3Dやってる奴多いようだけど
なんかそういう「Javaで3D」みたいな本最近出たのか?それとも同一人物なのか・・・
660デフォルトの名無しさん:03/11/13 20:09
ちと質問。
サーブレット&JSPでデータやりとりするのにセッションにAttribute乗っけるけど、
これってセッション張りっぱなし(例えばログインしてログアウトするまでとか)な場合、
消さなくていいの?いろんな画面渡り歩くようなシステムだと、関係ないオブジェクトを
ずっとひきずってるような気がするんだけど。消せることは知ってるけど、書籍類見ても
あんまり消すことに言及してないのだが。
セッション張りっぱなしが違うのか?データやりとりには他の方法を使うのか?
変なこと言ってたらガンガン指摘してください。よろ。

661デフォルトの名無しさん:03/11/13 20:17
>>660
消すのはremoveAttributeだよ
662デフォルトの名無しさん:03/11/13 20:20
一定の時間が経つと消えます
663デフォルトの名無しさん:03/11/13 20:21
Java3D本はちょっと前に出ましたね。
セッション張りっぱなしの間使い続けないならRequestとかで代用できないの?
たとえばログイン中にずっと持っておきたい情報なんかを入れておくのが常だけど。

セッションが切れれば消滅するので気にしてないけど、確かに無駄に置いておくと
メモリがもったいないので消せるなら消しておいたほうがいい。ただしGCが実行
されるまで解放されるわけではないので、あまり神経質になっても意味無いかな。
665デフォルトの名無しさん:03/11/13 20:31
>>661
それは知ってるです。ただ、明示的に消してるようなサンプルってあんまりないのね。
>>662
マジで?何が?Session?Attribute?どっち?両方?
2003/4月 Java3Dプログラミング・バイブル
http://www.amazon.co.jp/exec/obidos/ASIN/4816334300/

とか?
質問です
Timerクラスを使って簡単なゲームを作りましたが、ゲームオーバーなどして
また最初に戻る、という動作が出来ません。どうすればいいでしょうか。
668デフォルトの名無しさん:03/11/13 20:52
>>664
なるほど。Request併用は考えてたっす。神経質になっても意味ない
とも思ってるんだけど、例えば一覧表示→選択→1件編集とかの時に
全部Sessionにおきっぱなしいいのかな、と思ってたもんで。
とりあえずさんくす。
669デフォルトの名無しさん:03/11/13 20:57
>>667
できないっていうのは、単純に脳みそが足りないのか、
物理的に無理なのか。
前者なら本嫁。後者なら設計からやり直せ。もしくはソース晒せ。
>>668
その流れでSessionオブジェクトに保持すべき情報がある?

たとえば一覧をある条件でソートしたとして、他の画面に飛びまくった後、
一覧に戻ってきても同じソート条件で表示させたいときなんかはSessionに
置いておかないと面倒だけど。
671デフォルトの名無しさん:03/11/13 21:03
はじめまして。質問です。この間、面接した会社から宿題
が出されました。javaかCで今月中に一本作ってくれって
言われました。freeのtoolとかコンパイラーとか
いってたんですが、よくわかりません。とりあえずどうしたらよろしいですか?
本を買うということで話はまとまったんですが、どんな感じ
のを買うべきですか?新卒なんでまったくの未経験です。
>>671
その会社は諦めなさい
>>671 なんというか就職してからもそうなんだけど
誰かから仕事を頼まれたらどういう仕事かその場で
確認すること。「よくわかりません。」とか後になって
2chで聞かれてもこっちもわからん。
674デフォルトの名無しさん:03/11/13 21:34
>>671
おれが作ったJavaの簡易IDE(コンパイル&実行)でもいいか?
あとは、正規表現チェックツールとか?
住所の一部から郵便番号検索(またはその逆)とか?
675デフォルトの名無しさん:03/11/13 21:35
>>671
宿題って・・
もしかして新卒採用ですか?
俺の場合はそうでなかったので
その場でたいそうなプログラミングさせられましたけどね;;
676貧乏紙:03/11/13 21:57
>>660-664
Session張りっぱなしは危険じゃない?明示的にinvalidate()で切るか
setMaxInactivelnterval(int time)で時間をセットしなさいと折れは習ったぞい。
Cookieクラスを使えば?だめ???
>>671
>>新卒なんでまったくの未経験です。
今からでも間に合います。ほかの仕事を見つけましょう!
>>671
>新卒なんでまったくの未経験です。
少し認識が甘いようだね。
新卒で経験豊富な奴だって一杯いるぞ。
その会社は、そのつもりで宿題出したんだと思われる。
678デフォルトの名無しさん:03/11/13 22:11
俺は企業側に言いたい
未経験でも、(チーム開発やその他の作業を除いて)
プログラミングの力はプロレベルの奴もいるということを
サラリーマンはチームで作業できなきゃ勤まらんわい。
開発だけ1人ってのはあるかもしれんが。
>>679
そう言ってるじゃん
一ヶ月でコンパイラとか書けちゃうんだ・・・
>>681
だれがそんなこといってるの
>>681
簡易コンパイラならな
つーか思いっきりJavaWorldに載ってたし・・・簡易コンパイラ&実行
小数点第3位を四捨五入して小数点第2位までの値にしたいのですが
これであっているでしょうか?

式は、(x/y)*5です。

Double x;
Double y;
Double total;

x=10.5;
y=3.2;

total = Math.round((x/y)*5);
その前に>>671
「JavaかCで今月中に何か1本作ってきてください。
どちらもフリーのコンパイラやツールがあるからソフトを買う必要はありません」
と言われたんだと俺は思う。
何でもいいから作品を見て実力を測りたいだけだろ。新卒採用なんだし。
>>685
訊く前に試せよ。
全くの未経験て、Javaを知らないわけじゃないんでしょ?
>>688
そうだよね、あくまでも実務未経験というだけでして・・・
double a;
//a=0.456;


double result= ((int)((a+0.005)*100))/(double)100;
>>687
試せないから聞いてるんです。
(゚Д゚)ハァ?
>>686
なんで今時期新卒なんだろう。
awtのFileDialogで複数ファイルの選択ができーん!
使えねえライブラリだな!コノヤロウ!マジ死滅しろ!
>>694
そらあんた、Swing使いなさいよ
その辺に落ちてるJavaで書かれたGUIアプリってさ、キーボードで操作できないよな。
あれってどうやってもできないの?作者がメンドウだからやってないだけ?
697デフォルトの名無しさん:03/11/14 00:52
SwingのJTableでリストの同じところを2回クリックすると
文字入力の状態になりますが、それを防ぐ方法はありますか?
教えてください。
>>696
面倒だからやってないだけ。
>>698
やり方知らないからやってないだけってのもあるかもね。
>>697
TableModel#isCellEditalbe()をfalseを返すようにオーバーライドして
それをJTable#setModel()して味噌。
701前スレ409:03/11/14 04:25
すいません、またいいでつか?
NetBeans IDE Ver.3.5.1をダウンロードし、インストールしようとしたら、
途中で止まったまま動かなくなってしまいます。インストするフォルダを決めて、
「次へ」ボタンを押した後です。
家のPCでも、学校の研究室のPCでもここから先に進めません。
同様の症状の型、いらっしゃいますでしょうか?また、解決方法等がありましたら、
アドバイスください。
環境は
自宅:VAIO PCG-V505E/B WinXP home
大学:自作機 Win2kpro
です。
>>701
ちゃんとJDKはインストールしてますか?
703前スレ409:03/11/14 05:42
>>702
JDKがインストールされていなかったので、インストしてみますた。
…ダメですた…。

で、「Forteの設定をインポート」なんちゃらかんちゃらにチェックを入れて
再度試してみたら、できますた!
>>703
NetBeansをインストールしたディレクトリのbinディレクトリにide.cfgっていうファイルがあるから
-fontsize 12
という行を追加しておくと(・∀・)イイ
705デフォルトの名無しさん:03/11/14 05:49
あげ
NetBeans重たすぎ。でも好き。
707デフォルトの名無しさん:03/11/14 10:22

DBからレコードを取得して、
クラス内でソートをかけて出力するプログラムを
2本(仮にAとB)作るんですが、
AとBの差分はソート方法と、
ソート用にキーを作成する部分と出力項目だけです。

AとBはCというクラスから呼び出されることになるのですが、
この場合、作成方法としては
アブストラクトなクラス(D)を作って共通の処理をかいておいて
差分をそれぞれDを継承したAとBに書く方法がベターでしょうか?

AとBはメソッド名もほぼ同じなので、
Dはインターフェース(E)をimplementsしたほうが
良かったりしますか?

などと思ったんですが、
どうかご指導の程宜しくお願いします。
>>707
どっちでもいいけど、共通処理が存在するだろうからアブストラクトクラスの方がいいやね。
709707:03/11/14 11:07
>>708
どうもありがとうございました。
アブストラクトクラスを作ってやっていくことにします!
今調べてたんですけど、
アブストラクトクラスがインタフェースEを継承しておけば
クラスCでクラスAとクラスBをインスタンス化するときに
E e = new A();とかできそうなので、その辺も考慮して
作っていこうと思います。
710610:03/11/14 11:46
書籍について質問です。

アプレットーサーブレット間の通信をやりたくていろいろ検索した結果
「Javaサーバサイド プログラミング」原田洋子著 技術評論社
という本が良いという話を見つけたのですが,
改訂版と昔の奴では違いがあるのか、改訂版の方の題名では
4.2.2 アプレット⇔サーブレット通信 という題名がなくなってしまっています。

こちらの本をお持ちの方いらっしゃいましたら、
アプレットーサーブレットの通信について書かれているのかお聞かせ願えませんでしょうか

または、アプレットーサーブレット間の通信について詳しい書籍か、ホームページがありましたら
教えていただけませんでしょうか。よろしくお願いします。
711デフォルトの名無しさん:03/11/14 11:54
こんにちは
Strutsなのですが
<logic:iterate>タグを使用して
String配列のsetter、getterを持つBeanをセットしたいのですが
「そのBeanはコレクションじゃないからiterate出来ません」
ってエラーになります。

<logic:present name="MenuBean">
<logic:iterate id="MyBean" name="MenuBean">   ←ここでエラー
<bean:write name="MyBean" property="Aaaa"/>
<bean:write name="MyBean" property="Bbbb"/>
って感じにしたいのです。
ちなみにBeanは
public class MenuBean extends ValidatorForm {

private String[] Bbbb;
private String[] Aaaa;

// 空のコンストラクタ
public MenuBean() {
}
・・・それぞれのgetter/setter
}

です。
Beanをコレクションにってどうするのでしょうか?
scrollbarのunit_incrementを変えるにはどうすればいいですか?
714デフォルトの名無しさん:03/11/14 13:18
>>710
アプレット-サーブレット間通信つっても、単純にアプレットからHTTPリクエスト出すだけじゃないの?
SwingかAWTで画像をスライダーの調節によって
表示されている画像に対して
ズームアップしたり、ズームアウトしたりやりたいんですが
どうやってやればできるでしょうか?

ズームアップ、ズームアウトの部分がよくわかりません。
716デフォルトの名無しさん:03/11/14 14:38
>>715
そういう機能はないので
自分で作るしかないよ

一個のピクセルデータを2倍3倍・・・の大きさで表示しなおせばいいんじゃないの?
717デフォルトの名無しさん:03/11/14 14:39
>>715 2dとかでそういうのあるのかな?
718デフォルトの名無しさん:03/11/14 15:18
JPanelでダブルバッファしようと思ってcreateImageしたんですが
出来ません。どうすればいいんですか?
719デフォルトの名無しさん:03/11/14 15:26
>>718
プログラムに間違いがある、とでもいっときましょうか?
>>715
java.awt.Graphics2D と java.awt.geom.AffineTransform 使うとか。
721RMI:03/11/14 16:33
RMIについて勉強を始めたいのですがどういう基本書がいいのか分かりません。なにか詳しく解り易い本を知りませんか?
知っていましたらぜひ教えて頂けませんか?
722デフォルトの名無しさん:03/11/14 16:59
RMI単独の解説書ってあったけ?
EJBの本でも買えばちょっとはそういう解説のってそうだけど。
Webでその手の解説見たほうが早いと思うよ。
スタートすると、四角形が上から下へひたすら落ちていく(一番下まで行くと
上に戻る)プログラムを作りました。これを、ボタンを押すと、落ちる途中に
止まり、また一番上から落ちだすというように改良したいと思っています。
そこで四角形をストップさせた後、Repaintを使い、背景を再描写し、四角形を
またスタートしなおすようにしたのですが、四角形が再スタートした瞬間、
元の消えた四角形が出てしまいます。この場合、Repaintじゃないほうがいいん
でしょうか?本などで調べてみたのですが、いまいちわからなくて・・・・。
もしよければ教えていただけないでしょうか?
724デフォルトの名無しさん:03/11/14 17:31
いやですからね
ソース見せてくれないとわからんのですわ
スレッドなんてとくに

なのでさっきから言ってるように
プログラムに間違いがある、とでもいっときましょうか?
としか言えないのです。
725デフォルトの名無しさん:03/11/14 17:57
>>722
本はあるよ。
726デフォルトの名無しさん:03/11/14 17:58
>>725
じゃあ教えてやれよ
727デフォルトの名無しさん:03/11/14 17:58
>>721
どこまでやりたいの?
ちょっとしたRPCをやりたいだけなら、Webでいくらでも資料が手に入るよ。
728デフォルトの名無しさん:03/11/14 18:23
Java3dのスレなくなりました?
>>715
手持ちの本に「イメージを指定した倍率で拡大/縮小するクラス」として、
java.awt.image.ReplicateScaleFilterが載ってたけどこれどうかな。

ただしイメージ全体が大きくなるみたいなんで
一部分を見たいときはちょっと工夫が必要かも。

ちなみに「イメージを指定した矩形に切り取るクラス」は
java.awt.image.CropImageFilterだそうな。
730デフォルトの名無しさん:03/11/14 21:13
ActionLinstenerやWindowListenerの実装について
物凄く混乱しているんですが、どなたか教えて頂けませんでしょうか?
class fra extends JFrame implements WindowListener{
public fra(){
super();
addWindowListener(this);
}
public static void main(String[] args){
fra f = new fra();
f.setVisible(true);
f.setSize(300,300);
}
public void WindowClosed(WindowEvent we){
System.exit(0);
}
}
をコンパイルするとエラーが出てしまいます。
どの部分に対してのエラーなんでしょうか?
WindowOpendとかも実装しろ。
つーか、コンパイルエラーのメッセージを読め
732デフォルトの名無しさん:03/11/14 21:45
fraはabstractではなくWindowListener内の
abstractメソッドWindowOpenedをオーバーライドしません。
となってました。ClosedをOpenedに変えてもだめでした。
WindowListener内のメソッドは全て実装しないとダメなんですか?
本気で混乱してます

733デフォルトの名無しさん:03/11/14 21:49
オライリーの

Javaサーブレットプログラミング 第2版

がいいよ。Tomcat作った人が解説してる。
1.一般的にクラスの頭文字は大文字、メソッド名の頭文字は小文字にしましょう。
2.AWTとSwingの概念がごちゃごちゃになってます。
3.インターフェイスは内包するメソッドを全てオーバーライドする必要があります。
 がそれでは面倒なのでアダプタクラスが用意されています。
メソッドが一つだけのインターフェイス(ActionListenerなど)には
アダプタクラスはありません。アダプタクラスは抽象クラスです。
4.コードの頭にimport節がありません。
735デフォルトの名無しさん:03/11/14 22:16
JAVACCで構文解析器を作ろうとしているんですが生成された
ソースが巨大すぎてコンパイルエラーになってしまいます。
JAVA1.4.2を使用しているのですがメソッド数、行数などは
言語仕様で決められているのでしょうか?
736デフォルトの名無しさん:03/11/14 22:30
>>730
まずWindowClosed(WindowEvent we)
^
これ小文字にしろ。
そしてwindowClosedメソッドの記述の後に
public void windowOpened(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowClosing(WindowEvent e) {}
これ貼り付けろ。
んでちゃんと
import java.awt.event.*;
import javax.swing.*;
ってファイルの一番先頭に書いてあるよな?
738デフォルトの名無しさん:03/11/14 23:04
>>734
レスありがとうございます。
1.わかりました。気をつけます。
2.どの辺がAWTの概念なんでしょうか?
3.わかりました。Adapterクラスを調べてみます。
4.長くなるので省略しました。


まずWindowClosed(WindowEvent we)
  ^
  ↑これな。
740デフォルトの名無しさん:03/11/14 23:12
>>737
>>739
わかりました。やってみたら、できました!!ありがとうございます。
全てオーバーライドしないとだめなんすね。
どの辺がAWTかも教えて頂けませんか?
741デフォルトの名無しさん:03/11/14 23:16
static final int X;
final static int X;

どっちかいいですか?
742デフォルトの名無しさん:03/11/14 23:28
>>741
上の方がなじみがある。
>>738
2.についてはこちらの方で少し思い違いがありました。
 問題ないと思います。すんまそん。

ちなみに、アダプタクラスを持つリスナインターフェイスのメソッドを
普通にオーバーライドすることはできますが、同じことを匿名クラスで
やろうとするとなぜかできません。不思議不思議。まぁ蛇足ですが。
744デフォルトの名無しさん:03/11/15 00:02
>>743
それはただの勘違いではないか?
745デフォルトの名無しさん:03/11/15 00:03
>>743
んん?どういうこと?
詳細キボンヌ
746デフォルトの名無しさん:03/11/15 00:05
インスタンス変数が多いと処理が重くなると聞きました。
ほんとですか?
>>743
勘違いでしたできました。
おかしいなぁ前やったときはできなかったのに…。
逝ってきます…。
( ´,_ゝ`)
749デフォルトの名無しさん:03/11/15 00:16
>>747
理想的な蛇足でしたね。
>>746
ヒープに置かれるからね。GCが実行されるとGC対象が消えるだけ
じゃなくて、生き残るオブジェクトがヒープ内を移動するわけで。
コピーの度にメモリサイズに比例したコストはあるかもね。

ただ、そんなことが気になるようなタイトなアプリ作るのにJava
つかうな、と思うが。

751デフォルトの名無しさん:03/11/15 00:48
>>747
>>737
ありがとうございました。
実装について少し分かりました。
752デフォルトの名無しさん:03/11/15 02:12
javaにおけるデバッグのコツってなんですか?
753デフォルトの名無しさん:03/11/15 02:27
>>752
他の言語との違いはない。
>>752
単体レベルの試験ならGUIの便利なデバッガを使うべし。
運用時とか、結合試験のロギングが必要ならLog4Jなどの
ロガーライブラリ+AspectJかな。

テキストエディタでSystem.out.println()書いたり消したり
は時代遅れ。こんなことやってる奴は初心者か暇人かバカ。
755デフォルトの名無しさん:03/11/15 03:49
>>754
> こんなことやってる奴は初心者か暇人かバカ。

時代錯誤なジジイも追加。
756デフォルトの名無しさん:03/11/15 07:12
>>754,755
つまり、おまいのことですね。
757デフォルトの名無しさん:03/11/15 07:13
>>756
わけわか
758デフォルトの名無しさん:03/11/15 08:55
>754
すっすすすすんまそ。最近やりました。
GUIの便利なデバッガください。
>>758 ここ初心者質問スレだし
Swingで質問です。
描画には、paintを使いますか?paintComponentを使いますか?
この二つの違うが良くわからないです。
763デフォルトの名無しさん:03/11/15 12:54
J2SEのver1.4.2をダウンロードしてインストールしてたのですがインストール途中で停止してしまうんですが同じような状態の方っています?原因わかる方は教えていただきたいのですが。ちなみに処理状況8%のとこで停止します。
764デフォルトの名無しさん:03/11/15 13:01
>>763
OSもわからんのに、なんともいえるかい!
765763です。:03/11/15 13:10
すいません。Meです。CPU750MHzです。
766デフォルトの名無しさん:03/11/15 13:11
Meか・・・Meは、やめとけ
インストラーに頼らんでも
ZIPをDLして解凍すりゃいいやん。
>>763
J2SEにはネットワークインストールを行うインストーラと
オフライン用のインストーラの2種類ある。試していないなら、
オフライン用のインストーラでもう一度やってみたら?
「Windows Offline Installation」と書いてある方の「SDK」をクリックして
もう一度試してみましょう。
769デフォルトの名無しさん:03/11/15 13:37
770デフォルトの名無しさん:03/11/15 13:50
某電化製品でブラウザ上で動くアプレットがあるのですが、
このclassファイルってリバースできるものなんでしょうか?
そんな話をここでお聞きしてもよろしいですか?
Javaはさわれないのでサッパリわかんないです。。。
771デフォルトの名無しさん:03/11/15 13:52
君の言うリバースの意味は?
772デフォルトの名無しさん:03/11/15 13:53
>>771
もとのコードが知りたいんです。
バイナリファイルを読み出して画像化するアプレットなのですが、
そのバイナリの部分が何が何色なのかちょっといじってみたのですが分からなかったんです。
773デフォルトの名無しさん:03/11/15 13:54
ああ、そのclassファイルをPCに持ってきて動作するという意味ですか?
どうでしょうね
その電化製品が電気カミソリならやったことあるけど
774デフォルトの名無しさん:03/11/15 13:55
逆コンパイルか?
javapとかそういうこと?
775デフォルトの名無しさん:03/11/15 13:55
>>773
もともとIEで動くアプレットなので、PC側で動作してます。
ネット対応DVDレコーダが吐き出すclassファイルです
776デフォルトの名無しさん:03/11/15 13:57
>>774そうです。 javap -c うんたら って書いてもできなかったもんですから。。。
もとの.JAVAファイルがないとリバースできないのかな?と思って。
jdkも昨日初めて使いましたので、使い方がおかしいんだと思うんです
777デフォルトの名無しさん:03/11/15 13:58
某電化製品って結局この話に関係あるの?
ああ、DVDが電化製品ていうことか・・・
でも、
>ネット対応DVDレコーダが吐き出すclassファイル
これは何のためにこんなことしてるの?
DVD固有のジャケット画像が埋め込んでるの?
778デフォルトの名無しさん:03/11/15 13:59
>>777
録画済のタイトルとチャプターごとの画像が埋め込んであります
779デフォルトの名無しさん:03/11/15 14:00
>>776
そこまでしなくてもわかる場合がある
例えば、エディタでclassファイルを開くと結構情報は見れるんだが・・・
780デフォルトの名無しさん:03/11/15 14:04
>>779
必要な引数とか内部で使っているらしき関数とかは分かりましたが、
何をもって何色と判別してるのか、その肝心なところが全然わからないです。
16進数の羅列になってます。
jad(Java Decompiler)でも使ってみれば?つかったことないけどね。
バイナリの配布先を見つけるまでにちと苦労するけど。
とりあえず逆コンパイルをリバースって言うな(;´Д`)
ルイパンコ
パイパン娘?
785デフォルトの名無しさん:03/11/15 14:13
>>781
jad探しましたがサイトがないのでDJ Decompiler見つかりました!
スゲー!逆コンパイルできました!
ありがとうございます。サンクスです。
>>782
すんません。囲碁気をつけます。
786デフォルトの名無しさん:03/11/15 14:15
>>785
なにぃー?
こうしちゃおれん、俺もDLする!
787デフォルトの名無しさん:03/11/15 14:17
うほー
おもろいなこれ
788デフォルトの名無しさん:03/11/15 15:40
Javaにおいてコンパイルとデバッグはわかるのですが、
ビルドって何でしょうか?
何の目的でするのでしょうか?
789デフォルトの名無しさん:03/11/15 15:45
>>788
念のため、デバッグの意味教えてもらえるか?
コンパイルエラーを解決することじゃないぞ?
790デフォルトの名無しさん:03/11/15 15:54
>>789
コンパイルに通る虫取り
791デフォルトの名無しさん:03/11/15 16:08
キャストで
int i = 1;
String j = (String)i
みたいな書き方は数値と文字列の違いですぐにわかるのですが

()内にクラス名とかが入ってる場合は何をしてるのでしょうか?
代入するの変数の型と代入される変数の型ってどう判断するのでしょうか?
792デフォルトの名無しさん:03/11/15 16:09
>>791
>int i = 1;
>String j = (String)i

キャストできんだろうが。
あと、Stringもクラス名ね。
793デフォルトの名無しさん:03/11/15 16:17
>>792
クラスというのは自分で作ったクラスです

文字列→数値
少数→整数
への変換とかならわかるのですが…

自分で作ったクラスの型へ変換ってのがよくわかりません
自分でつくった型もそれぞれ違う扱いなんでしょうか
794デフォルトの名無しさん:03/11/15 16:21
>>793
他の人が作ったクラスへのキャストならわかるのか。
へんなやつだな。
少数とか書いてるし。
あいかわらず文字列→数値はキャストじゃないし。
795デフォルトの名無しさん:03/11/15 16:25
>>793

boolean,byte,long,short,int,double,char,floatはクラスではなく変数(データ型)
なので
(クラス)データ型 や (データ型)クラス などのキャストは問答無用でエラーになる




>>791
クラスのキャストはコンパイラをだますだけ。別に値が変わるわけではない。
public class A{}
public class B extends A{}

B b = new B();
A a = b;
B otherB = (B)a; // 変数aの型はA型だけど、中身は本当はBになるはずだからコンパイル通してね。
797デフォルトの名無しさん:03/11/15 16:26
ImageLoader pngLoader = (ImageLoader)samplePNGLoader;
ImageLoader gifLoader = (ImageLoader)sampleGIFLoader;
ImageLoader [] loaders = { pngLoader, gifLoader };

これをイメージで表すと、

[ImageLoaderのインターフェイス] ---> (PNGLoaderのインスタンス)
[ImageLoaderのインターフェイス] ---> (GIFLoaderのインスタンス)

だから、プログラマはImageLoaderのメソッドしか呼べなくなるが、
インスタンス上のデータは残ってるし、実際のメソッドはインスタンスの
型に定義されたものが呼ばれる。これをポリモーフィズムという。

[ImageLoaderの配列] ---> [ [ImageLoaderのインターフェイス], [ImageLoaderのインターフェイス] ]

また、配列などで同列に扱うことができるようになる。
>>794
揚げ足とっても意味ないじゃん
799デフォルトの名無しさん:03/11/15 16:28
>>797
どうしたんだ急に?
791にはわからないだろうが、一応書いておく。

class SuperClass

class SubClass extends SuperClass
があるとする。
この場合、SubClassのオブジェクトはSuperClassのオブジェクトの一種であるから、SuperClassのオブジェクトとして扱える。
しかし、SuperClassのオブジェクトはSubClassのオブジェクトとは限らず、実際の型は実行しない限りプログラマにしかわからない。
だから、SuperClassのオブジェクトとして扱われているSubClassのオブジェクトを、SubClassのオブジェクトとして扱うにはプログラマが明示的にキャストする必要がある。
複数ウインドウ立ち上がるプログラムで
どれかひとつを閉じたら残りのウインドウも閉じるけど
プログラム自体は終了しないという方法はありますか?

つまりSystem.exit(0)は使わないで。
>>795
クラスではデータは扱えないと。そう言いたい?


後、もう少し突っ込むなら。

float f = 5.500;
int i = (int)f;

プリミティブ型でもキャストは出来る。
803794=800:03/11/15 16:34
>>798
文字列->数値をキャストといってるのが揚げ足か?
804794=800:03/11/15 16:34
>>795
データ型なんていう、オレ用語使わずに、基本型・プリミティブ型のように、広く通じる用語を使え。
805794=800:03/11/15 16:35
>>796
コンパイラをだましてるわけではない。
806デフォルトの名無しさん:03/11/15 16:36
>>801
this.setVisible(false);

とか?
むしろ教えてあげてるんだと思われ。
月並みかもしれませんが、お願いします。

String型に入っている2バイト文字と1バイト文字混じりの文字列の長さを
byte型における長さに換算する方法はありますか?
GetByte()しただけだと、最後に0とかが付かないようで、0が見つかる
まで検索しようとしたら失敗します。

もう一つ、eclipseを使っていますが、byte型に0xffとか指定しようと
すると、範囲が超えてるとか鬱陶しい警告がでます。
 byte配列に0x80〜0xffが大量に混じったようなデータを定義するのが
わずらわしくてしょうがありません。
byte [] table = {0xff, 0x80, 0x00}; ←警告がでる。
byte [] table = {-1, -128, 0x00}; ←OK
809794=800:03/11/15 16:42
>>808
String型のオブジェクトには1バイト文字は入ってない。
810794=800:03/11/15 16:43
>>808
Javaのbyteは符号付き1byte。
getBytes().lengthじゃだめか?
>>808
> byte型における長さに換算する方法はありますか?
string.getBytes("encodeing").length

> byte配列に0x80〜0xffが大量に混じったようなデータを定義するのが
> わずらわしくてしょうがありません。
わずらわしいのは変わらんけど、
byte[] table = {(byte)0xFF, (byte)0x80, 0x00};
とか。
エディタのマクロとかで全部に (byte) 付けるようにするとか。
>>810
半角カタカナとかは、それだとダメっぽい
814デフォルトの名無しさん:03/11/15 16:47
データ型のどこが俺用語?
基本はデータ型だよ
プリミティブ型はラッパーに対する言い方だろ?
Javaでbyteの扱いがメンドウくさいというのはJava暦3日の
インチキCプログラマの俺も感じる。
>>814
Java言語仕様の話してるなら仕様のテクニカルターム使えってことでしょ。
充分俺用語だと思うぞ。あっ、文系はこんなこと気にならないか。
>>815
・プリミティブ型=何らかのデータを持つ
・参照型=何らかのデータを持つ
プリミティブ型および参照型を指してデータ型という事もある
(っつーかその方が多い)
参照型(?) をデータ型っつーのは初めて聞いた。

> プリミティブ型はラッパーに対する言い方だろ?
プリミティブ型 <-> 参照型
>>816
学生よ。理系文系など些細な違いでしかないぞ。
しかもそれにより優劣が付くと言うことは絶対にない。
>>817
で、クラスは何らデータを持たないと。
820808:03/11/15 16:54
>>809-813 ありがとうございます。
String foo="abcdあいうえ";
だと、foo.length()は8になりますね。
で、string.getBytes(foo).lengthだと12となるということでしょうか?

ちょっと今出先からのアクセスなので、試せません。

821デフォルトの名無しさん:03/11/15 16:54
>>816
何をごまかしてんだよ
データ型でいいんだよ
(しかも俺はプリミティブ型でも否定はしないけどな)
おまえがデータ型って言葉知らないだけだよ
お前の持ってるJavaの入門書見てみろ
シンプルデータ型、変数のデータ型、データ型と書いてあるだろ?
>>819
参照型:クラス型、インターフェイス型、配列型
>>822
なんだとこの野郎!
>>820
> string.getBytes(foo).length
だと、多分 UnsuppotedEncodingException : abcdあいうえ 食らうと思われ
825794=800:03/11/15 16:56
悲しいかな、理系と文系の生涯賃金の差は・・・。
おまえら日本語使うからややこしくなるんだよ。
技術のことは英語だけで話せ。
自称有能な文系が何人か釣れてますね
>>821
いわゆる、「ダメな初心者本」を読んだのだと思われ
>>825
心配すんな。不況で職にあぶれる率と比例してる。
830808:03/11/15 16:58
>>824 すみません。javaは半可通です。
もしよろしければ、正解を教えていただけないでしょうか?
831デフォルトの名無しさん:03/11/15 16:58
すいません
788でもかいたのですが
Javaにおけるビルドの意味と目的を教えてください
>>831
意味:特にない
目的:高速化
833デフォルトの名無しさん:03/11/15 16:59
じゃあ、プリミティブ型としてboolean,byte,long,short,int,double,char,floatが紹介されている本を挙げてくれ

だいたい、俺の言ってる事が本で載ってる事なのに
これを、「自分用語」などと決め付けでかましてるくせによ
>>833
javadoc(sunオフィシャル)

ちなみにsunと言うのはJavaを作った会社です。
>>830
java.lang.String#getBytes(String)の引数にはエンコーディングを指定するってこと。詳しくはこちらをどうぞ。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/String.html#getBytes(java.lang.String)
836794=800:03/11/15 17:02
>>831
Java自体にはビルドとかデバッグとかいう言葉はない。
837デフォルトの名無しさん:03/11/15 17:02
今ごろ本あさっても無駄だぞ ハッタリ野郎
>>833
適当な用語を捏造する初心者本ライターの罪は重いな。
だいたい、本に載ってるのが正しいというのならアダムスキーも北極の大穴もみんなほんとか?
グラボ。

とかな。
840デフォルトの名無しさん:03/11/15 17:05
>>838
じゃあお前は 自分の使ってる真であろう言葉はどこで覚えたんだよ?
841794=800:03/11/15 17:06
>>833
すげー。
こんな逆切れ初めてみた。

とりあえず本じゃないがここでもみてろ。
http://www.y-adagio.com/public/standards/tr_javalang/

これにはなんて載ってるのかな?少なくともデータ型ではないな。
http://www.amazon.co.jp/exec/obidos/ASIN/4894713063/249-9415087-3990754
データ型が俺用語だという証明してくれよ
843808:03/11/15 17:06
>>835 ありがとうございます。
foo.getByte("ISO-8859-1").length つうことですね。了解しました。
844794=800:03/11/15 17:07
ビルド・デバッグっていうのは、いくつかの操作を複合した動作のことだからね。
845794=800:03/11/15 17:08
>>842
こうやって、だんだん口調が弱くなっていくんだね。

おい、>>794=800 よ
おまえが>>798に突っ込まれたことに対して
おれに八つ当たりしたのが間違いなんだよ
>>841
http://www.y-adagio.com/public/standards/tr_javalang/

サンじゃないから嘘の可能性もある。
>>846
虎の威を借る狐。
俺は最初に
データ型でいいんだよ
(しかも俺はプリミティブ型でも否定はしないけどな)
って書いてるんだけどな

おまえはデータ型を完全に「俺用語」に決め付けだろ?
それはありえない
>>848
もともと匿名掲示板で書いてる俺達が言えることかよ
>>847
そーゆー疑い深いあなたには
http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html

http://java.sun.com/docs/books/jls/second_edition/html/typesValues.doc.html#85587

PrimitiveType:
  NumericType
  boolean

NumericType:
  IntegralType
  FloatingPointType

IntegralType: one of
  byte short int long char

FloatingPointType: one of
  float double
852800:03/11/15 17:15
>>847
公式ではないがな。
まぁ、「プリミティブ型」が使われてる本といわれたから挙げてみた。

少なくともプリミティブ型に関しては「ウソ」ではないと思うが。
JavaDocの日本語版では「プリミティブ型」という単語が使われてるし。
公式には「プリミティブ型」乃至は「基本型」なんだから、俺用語じゃん。
馬鹿が本やサイトに俺用語を堂々と書いているだけだ。
854800:03/11/15 17:17
「基本型」も使われてるな。
データ型は無いが。
>>853
明らかに 俺個人の用語 見たいな言い方だったけどな
>>843
> > String foo="abcdあいうえ";
> foo.getByte("ISO-8859-1").length
だと、foo.getByte("ISO-8859-1") が "abcd????" (? は変換不能)になって 8 になると思われ。
あるいは、訳し方によって言い方が異なるとか・・・
わるかったなみんな
もうやめるよ
>>857
原著に「PrimitiveType」ってあるのに「データ型」と訳すのはどーかと思われ。
> 明らかに 俺個人の用語 見たいな言い方だったけどな
そうだろう。
861800:03/11/15 17:22
>>855
詳細キボンヌ
「初めてのJava完全入門」(この本どうかと思うけど)には
「データ型」は「型」の言い替えで、基本データ型も参照型も含むとある。
「基本データ型(組み込み型: primitive type)」という記述もある。

「Java言語規定」には「type」はあるが「data type」はない。「primitive type」はある。
>>862
まあ、型というと一般的すぎてプログラマ以外には意味が広すぎるかもしれないからな。
語彙の持つ意味をプログラミングの文脈でいう意味だけに限定したいために「データ型」という用語を
使っているのだろう、と好意的に解釈してみる。
CやJavaを「C言語」とか「Java言語」とか言うようなもんだ。
それでも、ム板ならプログラミングの文脈で語ってほしいものだが。
864:03/11/15 17:29
俺だけど
俺が見ている「データ型」と書いてある本は
BlackBookです。

「・・・これらすべてをまとめてJavaのシンプルデータ型と呼ぶ」(以降データ型とかかれている)
ちなみに配列は複合データ型と書かれている
865800:03/11/15 17:34
=演算子ってさぁ、仕様だとAssignment Operatorなんだけど、代入演算子っていうよね。
あれも気になるんだよね。
assignを代入と訳してるだけなんだけどね。
866800:03/11/15 17:36
>>863
いや、たとえばAWTが用意されているのはJavaだけど、intをprimitive typeというのはJava言語なんだよ。
>>865
だから、訳し方が著者や翻訳者で派生してるだけだって気にすんな
そんな哲学は要らん
868800:03/11/15 17:39
>>867
うむ。
これはオレが気になってるだけだ。
869800:03/11/15 17:40
>>864
捨てろ!

というには惜しい本だな・・・。
--
ここまで読んだ。
--
871デフォルトの名無しさん:03/11/15 17:58
>>866
意味不明なこと言うな。この能無しめが
>>
873デフォルトの名無しさん:03/11/15 18:08
すいません、 WindowsXPのコマンドプロンプトの画面を
消去したいのですが、
System.out.print("?");
の部分に何と書けばよいのですか?

ちなみにCLSでは駄目でした。
874800:03/11/15 18:16
>>871
JavaというのはJava言語を中心とした総合的な技術のこと。

これでよい?
Win95 系ならエスケープシーケンスとかで消せたかもしれんが
WinNT 系のコマンドプロンプトって消せたっけ?

Runtime.getRuntime().exec("cmd /c cls");
とか? (cmd /? 参照)
876873:03/11/15 18:28
>>875
う〜ん、ダメでした。
直接CLSを打ち込むのは有効なんですが…
俺はいつもclearでやってるけどなぁ。
パラメータつきで外部プログラム動かしたかったら
Runtime.getRuntime().exec(new String[] {"cmd.exe", "/c", "cls"});
とかじゃないか?
879873:03/11/15 18:51
>>878
それは今試してみたけれど、何も起きませんでした。
画面に文字は表示されないし、消去もされない。
880808:03/11/15 19:12
忘れてました。もうひとつ質問です。
javaにCのmemset()みたいなメモリフィルとかmemcpy()みたいな
処理はあったでしょうか。

別になくたってforループをまわせばすむことなんですけど。
APIをざっと眺めてもそれらしいのがなかったので。
>>880
java.util.Arrays
>>880
java.util.Arrays#fill()
プリミティブ型の配列用に加えてObject[]もある。
メモリコピーはSystem.arraycopy(Object, int, dest, int, length)で可能。
883808:03/11/15 19:44
>>881 882ありがとうございます。感謝。
884いとう:03/11/15 19:50
最近、ふと思うことがありました。javaを使うために、J2sdkをインス
トールし、環境変数にC:\/*javaのbinフォルダ*/を設定。コンパイル
可能。試しに、環境変数のpathからC:\/*javaのbinフォルダ*/を削除
し、コンパイル・・・・。あれ?まだコンパイル出来る??????
お馬鹿な僕に、なんでコンパイルできるか教えてください。
おまえら、もっと優しい口調で質問に答えろはげ。
>>885
わかりました。
これからは、あなたのような文盲にも読めるような、優しい文章で質問に答えれるようにつとめます。
よろちいでちゅか?
>>884
それは Java の質問じゃなさそうだね。
Windows 板か OS 板行って聞いてくれ。
>>884
DOS窓開きっぱなしでPATH書き換えたとかじゃねーの?
>>885
はげって言ったな。親父にも言われた事ないのに。
890873:03/11/15 20:34
すいません873ですけど、どなたか教えてくださいませんか?
>>890
無理じゃない?
892885:03/11/15 20:52
>>886
ばっちりでちゅ。
>>884
> C:\/*javaのbinフォルダ*/

みにくいでちゅ
>>873
改行100回ぐらいやればいいじゃない?
大抵のゲームとかはみんなそうやってるよ
ExecutableなJarファイル形式のJavaアプリケーションを作りました。
コマンドラインから

 java -jar application.jar /path/to/a/file

というように、一つのファイルパスを引数に指定して実行されます。
(そのファイルをアプリケーションが処理する)

このJavaアプリケーションをWindows専用で構わないので、
Windows上のアイコンにファイルをドラッグ&ドロップして
実行されるようにすることは可能なのでしょうか?

JavaWorldに載っていたJSmooth (http://jsmooth.sourceforge.net)
みたいなツールがあればいいのですが。(これは希望に沿った動作は
提供していない)
>>895
コマンドライン引数にわたされるだけじゃねぇの?
897デフォルトの名無しさん:03/11/15 21:35
>>895
君の作ったアプリがGUIアプリなら何とかなるけど
コマンドラインツールじゃ無理なんじゃないの?
>>895
可能だが、私の考え付いた方法は起動用のアプリをWindows用に作るというものくらいかなあ。
つまりアイコンの上にファイルがドラッグされたら、
Java -jar application.jar ドラッグされたファイル
というコマンドを実行する、Windowsネイティブなアプリを作るというものだが。



>>800
>しかし、SuperClassのオブジェクトはSubClassのオブジェクトとは限らず、
私の好みとしては、

SuperClassを入れられる容器のなかに入っているオブジェクトは、SubClassのオブジェクトとは限らず

かなあ。
>>895
>Windows上のアイコンにファイルをドラッグ&ドロップして
というのは、たどえばWindowsのデスクトップ上とかのアイコンに、
ってことだよね?

これがSwing上のアイコンに、ドラッグ&ドロップして、
とかなら、Javaだけで可能だとおもうんだけどね。

まあ、もしかしたら、あなたが>>895でやりたいことをJavaだけで可能にする
APIとかも、私が知らないだけであるのかもしれないけどね。
オブジェクトは容器のなかに入るものではありません
901800:03/11/15 21:51
>>898
容器ってなんのこと?ってなるから、良くない。

((SubClass)o.indexOf(0)).subClassMethod();

の場合、容器ってなに?
>>900は参照のことを言っているのかなあとおもったけど、
>>901は何の事を言っているのか私にはよくわかんない。

そのoとかindexOf(0)ってなあに?
903800:03/11/15 22:10
class Hoge{
 SuperClass indexOf(int);
}

とあって

Hoge o = new Hoge();

となってるという感じ。
>>903
なるほどー、ありがとう。
自 分 用 語 は 使 わ な い で ね
>>905
先生、「自分用語」は一般的ではないかもしれません。
907800:03/11/15 22:29
>>905
「容器」というなということですね?
俺 の ケ ツ 毛 は 濃 い け ど 気 に し な い で ね
>>907
C のポインタ解説には「容器」とか「入れ物」っつー表現が結構出てくるよ。
俺 の 毛 髪 は 薄 い け ど 気 に し な い で ね

いや、やっぱ気になる。俺が。
さて、また大量にレスを消費しそうな予感がするので
そろそろどなたか次スレッドのご準備を。

//俺は立てられなかったすまそ
別に「自分用語」ではないだろうが比喩としてふさわしくない。

たとえば同じオブジェクト (同じ値という意味でなく同一という意味) が
別の複数の容器に入っている状態が想像しづらいので。
バッチファイルでいいじゃん
914800:03/11/15 22:37
>>913
???
スレッドを止めるときに、stop()は推奨されていないんですが
ファイルのオープンとかしてないところだったら止めても
大丈夫ですよね?
>>915
stop() で Thread 止めていいかって話か?

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Thread.html#stop()
とりあえず APIドキュメントの java.lang.Thread#stop() の部分でも読め。
stopは「ストップ」ではなく「スタァプ」
DOMを使ってXMLを解析する勉強を始めたいのですが、DOMParserクラスなどが入っているAPIが無くて出来ません。
これってどこに有りますか?分かりやすく教えてください。
>>919
> DOMParserクラスなどが入っているAPIが無くて出来ません。
の状況を詳しく教えてください。
921800:03/11/15 22:56
(・∀・)傍観
キー操作で、普通にやると四方向にしか行動できないですが、斜め移動をしたいと
思ってます。
今何とかできましたが、一瞬遅れて斜め移動する感じです。スムーズに斜め移動
する為にはどうすれば良いでしょうか
923919:03/11/15 23:05
えーとですね、Servletみたいな拡張APIがあるはずなんですが、それが欲しいです。
すんまそ。
924800:03/11/15 23:07
>>923
つかってるJDKのバージョンは?
925919:03/11/15 23:08
j2sdk1.4.2_01です。すまんそ。
927800:03/11/15 23:15
928919:03/11/15 23:18
これくらい探したら直ぐ見つかると思うのに、今は疲れのせいで探す気力が無く、つい甘えてしまいました。
せめてこれくらい探せやボゲが、くらい言ってくださいよ。申し訳なさ杉じゃないですか。
ここは優しい風が吹いていますね
929800:03/11/15 23:21
>>928
自分で探せや、ハゲ!
>>922
> 今何とかできましたが、一瞬遅れて斜め移動する感じです。スムーズに斜め移動
> する為にはどうすれば良いでしょうか
スムーズに斜め移動するようなソースを書く。
931貧乏紙:03/11/15 23:28
>>stopは「ストップ」ではなく「スタァプ」
初めてきいたぽ。。。

























933デフォルトの名無しさん:03/11/16 02:43
Javaのネットワークプログラミングについて詳しく解説している
書籍かHPないですか?

NewIOのSelectorとか、詳しく解説してる情報が欲しいのですが。
934デフォルトの名無しさん:03/11/16 03:21
なんか、おかしいんですーー。助けてください。

System.out.println("JAVA");
System.out.println("javajava");

っていうコードを入れたんですが,
2行目がコンパイルされないんです!!
どうしてですか??PCの設定がおかしいのでしょうか?
スペルミスは絶対にしてないと思います。
よろしくお願いします。

935デフォルトの名無しさん:03/11/16 03:25
>>934
ん?1行目は明らかにコンパイルできないが。セミコロン全角じゃん。
配列で、

String[] str = {"hoge","hero"};
int len = str.length;

とか出来ますけど、このlengthというのはいったい何を呼び出しているのでしょうか?
メソッドではありませんから、クラスの一種ですか?
>>935
ツラレンナ♪
>>936
うんこ
>>936
じつは配列はオブジェクトで、そのフィールドを呼び出してるだけ。

などと推測で書いてみたが、それなら
   str.length = 5;
などという基地外コードも書けるのだろうか・・・??
配列のlengthプロパティは、Java言語でもっとも甘いシンタックスシュガーですな。
Stringの+演算子はメリットあるが、配列はgetLength()ではないことのメリットはあまりない。
941デフォルトの名無しさん:03/11/16 05:03
>>933
http://www.amazon.co.jp/exec/obidos/ASIN/4774118389/ref=sr_aps_b_/250-1644420-8520265

多分これが適しているかと。だがネットワークとNIOのセレクタは
直接には関係ないような。OLD IOでも組めるし。
次スレ

【初心者】Java質問・相談スレ36【大歓迎】
http://pc2.2ch.net/test/read.cgi/tech/1068926949/l50
943デフォルトの名無しさん:03/11/16 05:12
class Example_1{
}
class Example_2 extends Example_1{
}
public class Example_3{
Example_1 ex = new Example_2(); }
}}

こういうソースを見かけるのですが
6行目は何をしてるのでしょうか?
これってインスタンス化じゃないですよね
>>943
インスタンス化じゃなかったら、なんなのだ?
945デフォルトの名無しさん:03/11/16 05:16
>>944
左と右で違うのは?
どういう意味?

わざわざこういう書き方にするのはどういうメリットがあるの?
>>945
質問は正確に。
947デフォルトの名無しさん:03/11/16 05:26
>>946
943のとおり6行目は何をしてるのでしょうか?

Example_1 ex = new Example_2();
Example_2 ex = new Example_2();
ではどこが違ってくるのでしょうか?
これなら嫌でもわかるだろう。

class 人間{
}
class 男 extends 人間{
void tinkoUp(){
}
}
public class 人間Test{
public static void main(String[] args){
人間 ningen = new 男();
otoko = (男)ningen;
otoko.tinkoUp()
}
}
これじゃコンパイル通らないなwてきとーになおしてね。
950デフォルトの名無しさん:03/11/16 05:38
>>943
>>947
>>943=>>947だよね?extendsはわかってるのに>>943の違いわからんヤシそうはいないだろうし・・・
ていうかextendsはわかる?
インスタンス化もわかってないみたいだけど・・・
この2つは誰かに教えてもらうより
extendsとインスタンス化の項目を本かなにかで調べたほうが分かりやすいと思うよ、2項目くらい立ち読みでもいいし
extendsでわからなかったらそのときにもう一回質問しる
>>947
質問を上手に書けるようにこころがけないと上達しないよ。
左と右で違うのは?ってなにが違うの?とか。

> Example_1 ex = new Example_2();
> Example_2 ex = new Example_2();
> ではどこが違ってくるのでしょうか?

こんな質問じゃ、変数の型が違う、でおわり。

変数の型と生成してるオブジェクトの型が違うのはなぜかということだろ?
よくあるのは
Map m = new HashMap();
などだけど、「おれはMapが欲しいのであって、実体がHashMapだろうがTreeMapだろうが、あまり関係ない」ということを示している。
こうすることで、Mapの実装を切り替えやすくしている。
952デフォルトの名無しさん:03/11/16 08:49
>>951
ただ、そういう書き型って局所的に使う場合って
別に意味ないんだよね
>>952
何が欲しいのかを明示できる。
とりあえず。
>>952が得意そう
955デフォルトの名無しさん:03/11/16 09:35
>>954
威張ってるって言う意味?
Javaが得意って意味?
>>955
ただの被害妄想なのか。それとも煽られたくてうずうずしている厨房か。
>>956
勘違いしているようだが
本人ではないよ
まあ、Javaしか出来ない?
>>957
結局のところちまたで流行ってる言語のほとんどはオブジェクト指向付き構造化手続き型言語な訳だ。
〜しかできない。と言ってのけられる発想が凄いと思う。
959デフォルトの名無しさん:03/11/16 12:46
例えばint型の変数を、初期化されているかどうか判断するにはどのような方法があるでしょうか?
クラス型の変数なら、nullと比較することで判断できたので
Integerに入れたらどーにかなるかと思ったのですが結局挫折しました…
根本的に勘違いをしている悪寒
962959:03/11/16 13:13
激しく勘違いしてました。intには最初からゼロが入ってるのですね…
失礼しました。ありがとうございます。
>>959
ちなみにローカル変数は初期化されないので注意。
まあ、コンパイル時にWarning出るけど。
964895:03/11/16 15:50
何だか無理そう?

>>913
バッチファイルでD&Dは可能なのでしょうか?
>>964
java -jar application.jar %1

Windows世代か…。これを機にバッチファイルについて勉強すると良いよ。
バッチファイルなんて過去の遺物は捨てろ
トレンドはWSHかねぇ。
968デフォルトの名無しさん:03/11/16 18:31
Java厨のくせしやがってM$に手出すな
Java厨はshellだろうが。うに触ったことねーのか?
OSを限定しないのがJavaだからw
といってみたりしてな
やはりAntだな。
shellでドラッグアンドドロップってどうやんの?
>>898で可能だろう。
昔俺の使っていたWin用のファイル解凍ソフトに、
>>895のいうようなデスクトップ上のアイコンに圧縮ファイルをDrag&Dropすると
そのドロップしたファイルを解凍してくれるソフトがあったから、
WinのなにかのAPIを使えば可能なんだろう。

java -jar application.jar ドラッグされたファイルを呼び出すだけだから、
それほど、難しいものでもないだろうし、
Windows専用で構わないのなら、それでいいんじゃないか?
でもまあbatファイルでは、俺は無理だとおもうが。
batファイルとかshellスクリプトでって言っているやつは、そこんとこどうなの?




すでにJavaとは関係ないが、まあ次スレもあることだし。
あ、.batファイルだけでDrag&Dropできるようだ。スマソ
ショートカットでもいいじゃん。
ショートカットはアイコンも変えられるね。
977895:03/11/16 23:03
>>965
おう、できた!! サンキュー。

欲が出てきました。
Mac(OS X)で同様のことはできない? ProjectBuilderで作れるのかな?
OS Xは持ってないんだけどね。
新Mac板にもJavaスレッドがあったから、そちらで聞いたほうが、
詳しいひとが多いかもしれない。

MacOSX Java総合スレッド
http://pc.2ch.net/test/read.cgi/mac/1047361032/l50
979デフォルトの名無しさん:03/11/17 14:18
postgreSQL7.1.2 + TOMCAT4.0.6なんですが、
おそらく、クライアントのところは

TOMCAT -- FireWall -- PostgreSQL

です。
JNDIデータソースを利用したところ、定期的にDBへのコネクションが落ちます…

An IO erro occured while sending to the backend - Exception: java.net.SocketException:
パイプが切断されました。
Stack Trace:
とか
java.net.SocketException: パイプが切断されました。
とかのエラーがでてます。

これ、FireWall側でたまにTCP/IPのコネクションを変えてるからなんでしょうか?
>>979
PostgrSQLのコネクション継続の設定時間が短いのでは?
981979:03/11/17 16:08
>>980
おろ、コネクション継続のパラメータってありましたっけ?
tomcatのserver.xmlのmaxWaitとかですか?5000にしてあります。
0にして無制限にした方がよいでしょうか?
5秒とかで上記のエラーがでるんでなく、数時間程度ででるので、FWが
臭いと思ってるのです。
982デフォルトの名無しさん:03/11/17 16:20
javax.sound.midi.ShortMessageでデータバイト数が正しく取得できません。
例えば、コントロールチェンジをJDK1.3.1_01では正しく3で、JDK1.4.2._02
にしたら2になるんですけど、なぜでしょうか?

for (int i = 0; i < track.size(); i++) {
MidiEvent midiEvt = track.get(i);
MidiMessage msg = midiEvt.getMessage();
byte[] bMIDIMes = msg.getMessage();
System.out.println("length = " + bMIDIMes.length);
}
983デフォルトの名無しさん:03/11/17 16:49
Java独学中なんですが、本によって
public static void main(String args[]) {
public static void main(String[] args) {
と、大括弧を付ける位置が違います。
何が違うんでしょうか?また、
どっちを基本として覚えればいいですか?
よろしくお願いします。
>public static void main(String[] args) {
↑これが正解

↓この本は窓から投げ捨てろ
>public static void main(String args[]) {
985983:03/11/17 17:47
>>984
ありがとうございます。混乱してたんで助かりました。
「独○Java」投げ捨てるべきか…良い本だと聞いたのに…

もう一つ質問させて下さい。
>>983 のどっちでコンパイルしてもエラーが出ず
プログラムもまともに動作するみたいなのですが、
これって何故なんでしょう?
言語の仕様で柔軟に吸収してくれているんでしょうか?
度々すみません。
X 地点と Y 地点の間は 4500m 離れている。今、秒速 20 m で X 地点から Y 地点へ向かう A 車と、
秒速 25 m で Y 地点から X 地点へ向かう B 車が同時に出発したとする。 2 つの車について、
1 秒ごとの車の位置を表示し、何秒後にどの地点ですれ違うかを表示するプログラムを書きなさい。
ファイル名は MeetingCar.java とする。

このプログラムは車を表すクラス Car を定義して計算するのが良い。
クラス Car は属性として、

* 速度
* X 地点を 0 としたときの位置

を持ち、メソッドとして、

* 出発地点の位置と速度を初期化するコンストラクタ
* n 秒後の車の位置を求めるメソッド

を持つクラスとして考えるのが一つの方法である。

X 地点から Y 地点へ向かう A 車は位置 0 から 速度 20 で走り、
Y 地点から X 地点へ向かう B 車は位置 4500 から速度 -25 で走ると考え、
2車の位置を求めれば良い。

よろしくおねがいしまつ。
>>986
宿題の丸投げならこっちで。

学校の宿題は俺にやらせて下さいver.1.1βfor Java
http://pc2.2ch.net/test/read.cgi/tech/1065599192/l50
988デフォルトの名無しさん:03/11/17 18:43
ランダムMIDIのJavaScriptを作ったのですが,音が鳴りません。
ページなどについているMIDIは普通に聞けるし,コピペしたJavaScriptのソースも正しいと思います。
間違っているとしたら、どのような事が考えられますか。教えてください、お願いします。
989988:03/11/17 18:51
JavaScriptは質問範囲外なんですね、すみませんでした。
WEB製作板のほうへうつります。
990983:03/11/17 19:24
>>985 の質問、初心者丸出しかもしれず、すみません。
ですが、(String[] args) と (String args[]) の違いは
勉強続けていけば分かるか、だけでも教えてください。
何故2つの書き方があるのか、何故どちらでも動作するのか
理由が分からなくて、気持ち悪いのです。
重ねての質問すみません。
>>990
・文字列オブジェクトの配列であるところのargs
・配列であるargsは文字列オブジェクト

どっちも意味は通じる。って自分は理解してます。
前者はオブジェクト指向っぽい
後者はC/C++の互換
>>985
言語仕様的にはどちらでもOK.

ただ、String args[]; はC言語に合わせた古い書き方だから、String[] args;を使いましょう、
ということ。
Javaでの変数宣言の基本は
型 変数名;

『argsは「String[]型」のオブジェクト』なのであって、
『args[]が「String型」のオブジェクト』ではない。
独習Java自体は(多分)悪い本じゃないから、
『型 変数名[]』って書いてあるとこだけ切り抜いて捨てればいいよ。
>>994
わらた
継ぎスレ立てて
997983:03/11/17 19:50
>>991 さん、>>992 さん、>>993 さん、>>994 さん、
ありがとうございました!
プログラミング自体初心者なので、まだきちんとは理解出来ては
いませんが、何となくポイントが掴めてきました。
些細なことにも、ちゃんと意味があるんですね。
ずっと分からなかったので、こちらで聞いて良かったです。

「独習Java」窓から投げないでおきます。
「Java言語プログラミングレッスン」で勉強してみます。

プログラミングって面白いよう!
面白(=゚ω゚)ノぃょぅ!
 
 
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。