1 :
デフォルトの名無しさん :
03/11/05 11:39
乙
数字を書き込んだ文字列 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));
でしょ
>>3 myInt[i] = myStr.charAt(i) - '0';
おまいらのは本当に
>>3 より単純かと問い詰めたい。
>>9 文字コード使うのは一般人には意味不明だろうな
素人にはお勧めできない
コードの意味がわかりやすいのは
>>3 かな
Javaで二重ハッシュってできるのでしょうか? perlからJavaに乗り換えようと思い勉強中なのですが なかなか乗っていなくて・・・。 よろしく尾長居しますs。
端末(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の値を入力しなさい"); }
>>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());
}}
>>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はイベント駆動だから すでに処理終わってるコンソールから受けとろうとしても無理なんじゃないの? ソースは読んでないけどね
とすると、新しくクラスを作ってShikaku11クラスで作ったメソッドを 作成しなければならないのですか?
18 :
デフォルトの名無しさん :03/11/05 20:27
いや、その前に 入力もフレームから受け取る設計した方が自然だろ? Shikaku11パネルに テキストフィールドとボタン追加して テキストフィールドに実数入力 ボタン押すと表示するようにすればいいのではないか?
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まで表示されますが ファイルには文字化けして出力します どうしてですか?
22 :
デフォルトの名無しさん :03/11/05 20:54
charで書き込まれるからじゃないか?
>>18 では、Shikaku11Panelクラス内にShikaku11()メソッドを作り
その中にテキストフィールドやボタンを作っていけば良いのですね。
ありがとうございます。取りあえずその方法でやってみます。
良く分からなかったらまた質問したいと思います。よろしくお願いします。
>>14 ええと、大林ヨネさんだっけ?
>>14 のが上手く動かないのは
paintComponent(Graphics g) 内で入力待ち(S11.getDouble() の br.readLine() とこね)してるのが原因。
まぁ
>>18 が言うようにテキストフィールドとか使った方が良いだろね。
26 :
デフォルトの名無しさん :03/11/05 23:31
メモ帳で書こうと思っているんですが Helloworld.java.txt のように拡張子がtxtになってしまいます、どうしたら良いですか?
メモ帳を捨てる
遅レスだが、どうもありがとう。 かなり参考になったス。
Javaとして正しいコードだが、あるコンパイラではコンパイルできない みたいな現象は存在するものなのかい? バージョンとかは別にして。
30 :
デフォルトの名無しさん :03/11/05 23:48
コンパイルは通ってもLinuxとWindowsで微妙に動作違うのはあったなSwing関係の話だけど
下のプログラムなのですが、エラーが出てしまいます。最初はフレームだけで表示していたのですが、下のようなプログラムにするとエラーがでて困っています。 どなたかアドバイス頂けませんか? 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()); }}
正しくないけどコンパイルは通るってのはいくつかあったね。
>>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" みたいな。
>>31 そういう風にソースだけべたべた貼っても、誰も試しません。
教える側は自分の役には立たないし、お人よしばかりじゃないですから。
どんな「エラー」が出るのかもきちんと書いて下さい。
そうでないと、自己解決させる勉強もしてもらいたいけど、しにくいし。
まぁ一見して
Fooyobi fooyobi = new FooyobiPanel;
これが意味不明だけど。
>>36 JDK 1.3以前 での
int method(){ return 0; ; }
とか。
メモ帳を捨てるという解は不採用か? 最も妥当に思えるが・・・
>>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
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を使用したのが原因でしょうかね?
自己解決。 顔洗ったらすぐ解けました。 失礼。
>>55 同時に複数接続を許す ServerSocket は
new ServerSocket(ポート番号, 最大接続数);
ってやるんでは?
>>47 >
>>46 > 汎用性を意識すれば大規模になるしメンテも大変になる。
おいおい、Compositeパターンはそんなに大規模でもなければメンテナンスも大変でないぞ。
>>58 誰が Compositeパターン==大規模 なんて書いたんだ?
60 :
デフォルトの名無しさん :03/11/06 16:49
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
63 :
デフォルトの名無しさん :03/11/06 18:48
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)新しくできたファイルを元のファイル名にリネームする
po
76 :
デフォルトの名無しさん :03/11/06 22:59
質問です。 仮引数にobject型を取るメソッド (例:public void addElement(Object obj) )は 実引数に何を入れてもいいのですか?
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());
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 とちょうど同じメソッド?使ってるので便乗です。
ファイルに書き込みログを書きたいのですが、
ファイルに書き込むと全部上書きされてしまいます。
ログファイルみたいに、全部書き込みが残るようにするにはどうしたらいいのでしょうか。
>68 できたよ。ありがとう。
すいません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
>>113 このプログラムをどのような引数で実行したら、
何が起こると期待していたのに、
実際には何も起こってしまったのか、
日本語で書いてください。
>>113 args[0], args[1]の意味をわかっていっているのか?
>>109 >line.indexOf("0")!=1だったりしてー。
line.indexOf("0") != -1 でないか
>>115 引数はabc.txt xyz.txtで実行して
abc.txtの内容をxyz.txtに書き出そうとしたのですが
xyz.txtには何もおこりません(空白が上書き?)
>>118 最後にfw.close()してみたら?
>>119 とりあえず書き出しはできました
何故か改行は無視されますが
ありがとうございます
>>120 readLine()で読んでwrite()で書いてるんだから当然。
println()で書け。
>>121 writeとprintってどう違うのですか?
JavaDoc見ても
write(String s)
print(String s)
では同じようなことが書いてて
どっちもファイルに書き込みできるし
printではなくprintlnだ、よく見ろ。 lnはlineであり改行を意味する。
>>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の サブクラスでもあるので両方持っている。 これでわかるかな?
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
コマンドプロンプトで半角英数以外の文字(カタカナや平仮名)を 打つにはどうすればいいのでしょうか? つまらん質問ですいません。
動かない方のプログラムの概要書くのを忘れてますた。 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
ていうか入門書くらい買えや。
>>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"}; という書き方が出来なくて困っています。
Java質問スレっていうより、日本語による正しい質問内容の伝え方と 正しい解答内容の読み方伝授スレって感じですね。
142 :
デフォルトの名無しさん :03/11/07 10:25
日本語としてまともに質問になってないのに 「わからないなら書くな」「ちゃんと答えろ」 とか言って逆ギレするパターンが最近増えてまつね。
ううむ、{の位置は直したんですが、描画されない…。 なんでぇ〜〜〜え?
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++から継承した書き方が形骸化っていうか 必然性のない書き方になってるところが結構あるきがする。
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 てな感じなんですが
>>155 exception.printStackTrace(); してるか、
System.out.println(exception); してるかの違いかな…
自分が手を入れられる箇所なら後者を前者に書き換えりゃ良いだけ。
>>154 > 例外をどうにかしないとコンパイルが通らないという仕様自体に議論があるくらいだから、
あったっけか?
C# の delegate みたいのがあるんならともかく、
現在の Java の仕様ので Exception を明示的に処理しなければいけないってのは合理的だと思うけど。
>>159 クラスが競合したりとか(これはなさそうですが)、
リソースを無駄に消化したりとかです。
163 :
デフォルトの名無しさん :03/11/08 01:57
宿題乙
167 :
デフォルトの名無しさん :03/11/08 03:13
例外処理を効率よくプログラミングできる方法が載っているサイトまたは良い書籍はないっすか? しかも例外処理をデザインパターンでうまく管理する技がのっているほんとか?
168 :
デフォルトの名無しさん :03/11/08 08:08
例外のioExceptionで使う printStacktraceって何ですか? どういうときに使うのでしょうか? JavaDOCなどを見てもいまいちわかりません
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
176 :
デフォルトの名無しさん :03/11/08 11:15
>>175 >それならばここからGetHTMLWやIrvineで引っこ抜け。
なんですか、それ
179 :
デフォルトの名無しさん :03/11/08 11:36
ファイルの中から そのファイル中にある文字列の左から4文字目から5文字目だけを読み込みたいときに 書き出したい時どうするのでしょうか? stringtokenizerメソッドを使うのはわかりますが 位置の指定とかよくわかりません
java.lang.String.substring(int, int)じゃないのか?
>>180 aaa.txtがあって中味が
\23456
3456あ8
675634
あ45634
そのファイルを読み込んで、各行の左から4文字目から5文字目までを抜き出して
45
6あ
63
63
として、これを表示するにはどうすればいいのでしょうか?
こんにちわ、もしよろしかったらどうかご教授ください。 ちなみに、私は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
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
実は私は学生でして、チームメイトの水野亜美ちゃんといっしょにシステム開発を しております。あと、レイちゃんとまこちゃんと美奈子ちゃんもいます。美奈子ちゃんは ちょっと気に食わないかな。 んで、学校の共用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 本題に悩むのより、
カマ口調のレス本文を推敲するほうに手間かけてる気がするが、どうだろうか。
>>182 「自分には何ができて何ができないのか」を把握する前に質問スレに駆け込む、
クソ初心者におきまりの行動ですね。
それをきちんと把握して、ここで説明してください。
何にも分からないならもすこし入門書で勉強してからこい。
そんときにはもう
>>181 が答えになってるから。
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のパーセンテイジ指定が機能していないように 思うのですが、何か対策ありますか?
206 :
デフォルトの名無しさん :03/11/08 17:18
>>202 Swingの入門書は持ってませんが、Javaの基本は押さえてるつもりです。
で、何か助言はありますか?
>>206 他人に助言を求めるヒマがあったら
一行でもソース書くとか 他人のソースを読むとかすれば?
208 :
デフォルトの名無しさん :03/11/08 17:24
stackoverflowerrorが出たのですが、 これは再起構造を持つメソッドの使用において 再起回数が多すぎる場合なんでしょうか?
210 :
デフォルトの名無しさん :03/11/08 17:25
>>207 わかりました。1行くらい書いてみます。
import java.lang.*
次は何をやったらいいでしょうか?
>>206 >>202 が入門書を読めといってるのは
入門書を読めばわかるようなことを調べもせず、
丸投げのように訊いてくる馬鹿がいるから。
あなたもその一人の可能性が大ってことさ。
>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);
1. × new java.lang.2chAddictedException ○ new java.lang.2chAddictedException() 2. クラス名の先頭には 2 は使えない。 3. java.lang パッケージにユーザがクラスを作るべきでない。 他にもある?
>>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 ボタン押すたびにコンポーネントインスタンス差し替えるって、
あんたあほですか。
月のお尻プリンセス…なんてね。
>>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 自分がつかっているマシンの環境も理解していないのに、何ボケたこと
ぬかしてますか。
だってうさぎちゃんはおバカさんなんだもの
宿題乙
Java質問・相談スレの31のURLをご存知の方教えてください。
java アプリで、jarに格納した,save.datにデータを書き込んで保存すること出来ますか? java web startでjarに全てのファイルを格納しなさいって書いてあります。 クライアント側で、データを書き込む場合、データファイルをjarに格納しなきゃならないですか? 試してみたら、OSごと落ちました。
ごめん、1行目の文章が解読できない
端末(コマンドプロンプトなど)に「指定の番号」 「1番目の値」 「2番目の値」を入力して表示させるというプログラムで、 「指定の番号」を入力するとどこの位置に表示するかを決め、「1番目の値」と「2番目の値」を入力すると表示されるというものです。 入力は以下の通りで「指定の番号」は1〜3の3つあって、同時に3つとも表示されるようにしたいのですがやり方がわかりません。 誰かアドバイスいただけませんか。 指定の番号 1番目の値 2番目の値を入力してください 「指定の番号」 「1番目の値」 「2番目の値」 指定の番号 1番目の値 2番目の値を入力してください 「指定の番号」 「1番目の値」 「2番目の値」 ・ ・ ・ (以下繰り返し)
>>237 どうもありがとうございます。
自分で過去ログ探せばよかったんですね。申し訳ありません。
>>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++;
}
}}
>>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();
}}
jarの中に入れたあるファイル(たとえば,save.datファイル)に、たとえばゲームのセーブデータを 保存すること出来ますか?jarがzipファイルだから、無理っぽいのだけれど、 出来るだけ、jarファイル、一つにまとめたくて。
>>243 大林 ヨネ よねなが さん、フレームから入力する話はどーなりましたか?
>>245 この方法でないといけないみたいなので・・・
とりあえず1個のときはできるようになったのですが・・・
調べてあれこれやっているうちに解決できました。 お騒がせしました。
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' がありません。 とでます。どなたか対策を教えてください。
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
失礼しました。。
インデントですね。勉強します。
ジャヴァの将来が暗い・・・??
入門者のやる気を損なう話ですね。。
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; とやっている
>>267 半角スペースの連続やタブは投稿後に除かれる仕様
273 :
デフォルトの名無しさん :03/11/10 01:06
>>272 誰に説明してんだよ。技術者に説明するときはそうじゃないだろ。
Javaプログラマは低レベルですね
275 :
デフォルトの名無しさん :03/11/10 01:15
>>274 Javaプログラマは低レベルなことも網羅している天才なのだよ。
抽象化のプロでありながら、機械語のプロでもある。天才そのものだ。
俺はいろいろ知ってるが貴様だけには何も教えない。
4億積まれても無理。この知識は金に換算できない。
もし換算できるとしたら、今俺がもらってる年収10億。これだね。
>>273 技術者への説明は簡潔に無駄なく漏れなく
君はどう説明するの?
279 :
デフォルトの名無しさん :03/11/10 01:27
今晩は2匹しか釣れなかった。これじゃ朝食にもなんねぇよ。
素人はアフォな事書けば釣れると思ってるんだろうな 本物の釣り師は天才なのに
>>277 273ではないが
行頭の連続した半角スペースやタブは0個のスペースとして
それ以外の連続した半角スペースやタブは1個のスペースとして
表示される (表示されるだけでソース上は取り除かれていない)。
>>277 「Htmlの仕様も知らんのかヴォケが!」かな?
>>282 一般人にも技術者にも説明になってないよ
>>281 はあ…
専用ブラウザを使ってる限りhtmlの仕様は意識しないよ
まあAAがずれないようにhtmlの表示に合わせてるんだろうが
>>281 行の途中の空白はともかく
行頭の空白はソースでも取り除かれているようだが?
>>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(); } }
288 :
287です :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 文は使えません。
インスタンスじゃなくてコンストラクタだ…
295 :
デフォルトの名無しさん :03/11/10 04:02
JDialogで右上の×ボタンを選択不可にしたいのですが それはできないのでしょうか?
>>289 どのレイアウトを使ったのか(ボーダーとかグリッドバッグとか)
各コンポーネントをどこに配置したのか
こういった情報がまったく書いてないので誰が読んでも
さっぱりだと思うぞ。情報は最初からすべて出せ。
>>295 setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
でいけそうな気がする。
>>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;
とかでいいの?
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
321 :
デフォルトの名無しさん :03/11/10 21:57
Tomcatのバージョンの違いってなんですか? 特に3点台と4点台
それくらい調べろ。ぐーぐるってしってっか?
>>319-320 そんなにムキになんなヨ。こちとら酒が入って適当に遊んでんだからさ。
酒も飲めないぼっちゃんよ。ふぁいと。wwww
ある特定の絶対パスを基準にして、そこからの 相対パスを取得するようなメソッドはありませんか? 1.4.2のAPIを探してみたんですが、抽象パスから 絶対パスを返すようなのしか見つけられませんでした。
327 :
デフォルトの名無しさん :03/11/10 22:17
ソケットが相手側から切断されていることをノンブロッキングで調べたいんだけど、 isClosed()だと反対側からcloseしてもいつもfalseが返ってくる。 setSOTimeOut()セットして戻り値調べるとかも考えたんだけど、 コネクション数が多くなるかもしれないんで、 タイムアウトを1msにしてもレスポンスタイムが遅くなりそうで気になる。 検出する方法ってほかに何がある?
329 :
デフォルトの名無しさん :03/11/10 22:23
public KeiyakuTourokuInsideDB(Connection con){ this.con = con } こういうthisのある変数に代入しているソースをよく見かけるのですが これって何をしてるのでしょうか? これをすることで何ができるのでしょうか?
>>329 それは哲学だな。何かが出来るかもしれないし、何も出来ないかもしれない。
>>329 > this.con = con
仮引数 con を インスタンス変数 con に代入する。
> これをすることで何ができるのでしょうか?
これは Java を使うと何ができるのでしょうか? ってのと同じ質問だね。
一般的な回答をすると、自分で考えろって感じですか。
>>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でなければ自分のクラス内ののメソッドを参照するにも 自分自身をインスタンス化しなければならないのでしょうか?
そうでーす。
>>336 メソッドは参照するものじゃないが。
で、インスタンスメソッドのコールには必ずインスタンス参照が必要。
339 :
デフォルトの名無しさん :03/11/10 22:49
>>336 はい。いいえ、それは違います。
>>336 。
私はそのクラスがインスタンス化されてから初めてメソッドが呼ばれると考えます。
自分のインスタンスはthisで参照でき、また、それは省略可能です。
従って、自分のクラス内のメソッドは、メソッド名だけで参照できると考えます。
こういう記述はよく見かける。おいらもその目的でそうしてるなぁ。 Java勉強したての頃、こうじゃなきゃ hoge() から static節を外せない という結論に至ってるです。 public class test{ public test(){ hoge(); } public static void main(String[] args){ test app=new test(); // コレのことだよね? } private void hoge(){ } }
>>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 FlashやPHP、JavaAppletその他を利用したリッチクライアント。
351 :
デフォルトの名無しさん :03/11/10 23:09
キャッシュというのがよくわかりません (int)や(String)ならわかりやすいのですが スーパークラスとか他のクラスでキャッシュするのは どういう目的でしょうか? 教えてください
>>343 java.CommAPI でシリアルコントロールする時に1つのCOMポートを
操作するクラスで複数のCOMポートをいじりたかったから。
複数のDBにアクセスする時とかもこういう風にしない?折れだけ??
スーパークラスでキャスト??? どこでそんな学習したんだ?
355 :
デフォルトの名無しさん :03/11/10 23:19
>>354 抽象クラスにキャストすることは稀にある。
ClassLoaderでロードしたクラスの抽象クラスにキャストするとかね。
>>334 >これはSO_TIMEOUTを設定したソケットから定期的にread()して長さが0かどうか調べるのね。
反対側から切られてるときって-1(EOF)じゃない?
>・コネクションの数だけスレッドを立てて、それぞれがread()で待つ
最初はこれやってたんだけど、これやるとコネクション数が増えたときに
スレッドがもう作れないっていうExceptionが吐かれたの。
>・JDK1.4以降なら、java.nio.channels.Selectorが使えるかも
初めて聞きました。ちょっと見てみます。
ありがとうございました。
<%@ page isThreadSafe="false"%> <%!boolean kakunin(int i,String){ <%--第二引数で指定した言葉を 第一引数で指定した年の流行語が真か偽かを調べるSFチックなメソッドです。 --%> } %> <% whlie(true){%> <%= "今年の流行語は" %> <%out.println("JSPでつよ・。・。"); Thread.sleep(1000); if(kakunin(2003,"JSP")){ break; } %>
初心者です。 今日、JAVAの本を購入して早速勉強してるのですが コマンドプロンプトの画面で、わざとエラーをだそうとした所で躓きました。 エラーメッセージは出るのですが、どの部分が間違ってるのか表示され なくて困っています。 先輩方教えてくださいませ。
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"); } }
>>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
>>350 PHPのリッチクライアントってなんだ?
>>350 そもそもJSPはサーバーアプリなのに
何でリッチクライアントが出てくるのか・・・
>>316 遅レスですがサンクス!
んで今英語なんで訳してるんですが、こういうのって訳したのをネット上で公開しちゃまずいですよね?
承認もらわなきゃダメなんですかね。
スレ違いですいません。
あと「Colourized」ってのはカラフルくらいの訳でいいんすか?
>>315 [a-zA-Z0-9:_.-]を省略しましたが、やはり日本語が含まれているとヒットしません。
<img alt="aaa">
のような日本語の含まれないタグだと、元の表現でもヒットします。
正規表現の書き方ではなく、日本語も含めて判定するのかどうかの設定がどこかにあるような気がするのですが・・・
そりゃ[]内に英数字しか書いてないんだから日本語がヒットするわけなかろう
374 :
デフォルトの名無しさん :03/11/11 01:40
>>371 調べることは大切だけど、無理して正規表現でやらなくても、
他に実現方法いくらでもあるでしょ。
>>371 \p とか \P とか使ってみたらどうだろ?
中途半端に身に付けた正規表現は厨房生成器ですからね
Javaで書かれたクラスプラットフォームなキーロガーが 完成したら俺にも教えてくれ(笑)
>>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で動かすには、何かほかにライブラリとか必要になるのでしょうか?
ちなみにSwingと javax.sound.midiを使ってます。
>>383 "# Component Manager: attempting to find symbols in a component alias of type (regR/carP/x!bt)" でググってみれば?
特に Java と関係ありそうなのが見つからんかったので自力でがんがってくれ。
すいません、また質問させてください。 12345678901234567890… と書かれているファイルがあります。 このファイルから、ランダムアクセスファイルクラスを使って、2バイトのデータを読み込みたいのですが、 参考書には1バイトの読み込みしか書かれてなく、 Sunの仕様を読んでもどのようにしたらよいかわかりませんでした。 このような場合、read()のメソッドはどれをどんな感じで使用したらよいのでしょうか?
>>386 readShort() もしくは readUnsignedShort()
>>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]; }
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に四角がついたものになってしまいます。 恐らく型の変換が上手くいっていないんだと思っておりますが、 アドバイスお願いいたします。
>>390 c=raf.read(b); の行で、実際にファイルから読み込まれたデータが格納されるのは
配列bの方。cには読み込まれたバイト数が格納される。
よって、次の fos.write() にはbを指定しなければいけないことになる。
ということだ。せっかくだから fos.write(b, 0, c) にしとけ。
>>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 >普通の人が普通に自分のために役立つプログラムを書くのに適して ない
じゃぁ自分が「適してる」と思う言語で作ればいいだろ。
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入門とうたいつつクラスの説明が書いてない本は、問題外。
>>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にないかい?
420 :
デフォルトの名無しさん :03/11/11 13:40
>>420 君に教えておいてあげるけど、
「ここのやつダウンロードできない!!」「この URL、見れない!」という訴えのほとんどは、
本人の環境によるものであって、万人に共通のことではないんだよ。
現に今俺、落とせてるし。
ブラウザかプロバイダを変えて試してみてね。
>>419 車輪の再発明と再開発を混同してるやつハケーン
Jakarta Commonsは実装だから発明してるわけではない。
423 :
デフォルトの名無しさん :03/11/11 13:56
>>421 ちなみにブラウザは何?
私はIE6.0なんだけど。
>>422 物の例えじゃん。
なんでもかんでも噛みつけばいいってもんじゃないよ?
CommonsはJAVA PRESSやらWEB+DB PRESS、JAVA DEVELOPERで最近よく取り上げられてるね。
>>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
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()); か何か使いなさい。
↑それぞれのメソッドの意味と返るオブジェクトのクラスについても勉強すること。
2’ ファイルオープン失敗で IOExcepiton が出て、 label が不定 (null) のままなので、add(null) して怒られていると予想できる。 Javaコンソールには catch されなかった NullPointerException がエラー出力されている。 発生箇所は Component 実装の深部。
>>440 べつに、その程度でオブジェクト指向がどうのこうのいう必要はない。
数字と数字の間にタブ(やコンマ等)を書き込みたいのですが、 fos.write("\t"); ではダメなのでしょうか?
自己解決いたしました。 スレ汚し、すいませんでした。
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(){ } … などです
>>454 クラス外からのインスタンスの生成を防ぐ
>>450 どーゆーつもりで聞いてるか非常に気になるな・・・
好意的に考えて・・・「翻訳API があるか」ってことか?
多分無いと思う。
「API って何ですか」とか言わないように。
>>456 APIとかじゃなしに
自分で作るにしても技術的にjavaでそういうことが可能かって事?
459 :
デフォルトの名無しさん :03/11/11 20:56
>>455 書かなくても自動的に引数なし処理なしコンストラクタが作成されるから
結果的に同じじゃないのでしょうか?
質問です。アプレットを実行しようと思ったのですが、appletviewer・ブラウザともに 実行できません。コマンドプロンプトには、下のようなエラーが出てます。↓ access denied(java.io.FilePermission ..) アプレットのソースもHTMLも参考書を見て作成したので環境の設定に問題 があるのでしょうか?
>>457 激しく可能だね。
>>459 private の場合は違うんだよ。
new const(); できなくなる。
っていうか 1文字目は大文字にしなさい。
>>459 public class A{ privateA(){} }
と
public class A{}
で引数なしのコンストラクタを外部から読んでみればわかるよね。
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);
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;
>>464 Webに載っているとおり、java.plocyの中身を書き変えましたが、解決しません。
しかも、アプレット自体はボタンとラベルを表示するだけでファイル書き込みを
しているとは思えないのですが、、、。
エラー内容は↓です。
java.security.AccessControlException: access denied (java.io.FilePermission \cla
sses\Sample.class read)
} 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)); }}・・・
470 :
469です :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:なんかバグってますよ。
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 かどうかは無関係。
>>486 たぶんこいつは「Macに送る」と化けるんじゃなくて、WinのOutlookで受け取れば化けないだけなんだよ。
Winでも他のメーラーでは化けてる可能性大。
Outlookで受け取れることは、メールが送れてることの指針にはならないけど。
Javaで組んだプログラムがバグってるという点ではJavaに関係あるけど、原因は482。
488 :
デフォルトの名無しさん :03/11/12 03:57
JavaAppletでページ移動後も動作を続けられる方法はないでしょうか?
プロパティにインデックスを持つ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 おいおい勝手に決め付けてんじゃねーよ。このヒキヲタ
>>492 そんなん、Beanの実装によるだろ。
「CompareToメソッド」がどのくらいの重さか、とか。
499 :
デフォルトの名無しさん :03/11/12 12:29
javaでオブジェクトのメソッドを標準出力にdumpするようなのあります?
>>499 そんな至れり尽せりなのはない。
getClass() して getMethods() したらどう?
503 :
デフォルトの名無しさん :03/11/12 12:48
Java3Dで、楕円ってできる? 楕円錐でもいいんだけど。 誰か、教えてくださいというかソースあったらください。
504 :
469です :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"; }}
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" はいったいなんなんだ。
Age2Panel(int[] a)のaをつけてみたのですが。 aをつけないときもやってみたのですが、Age2Panel() はシンボル解釈してもらえませんでした。
508 :
デフォルトの名無しさん :03/11/12 13:31
javaのオブジェクト指向でthisとsuperの働き(役割?)を教えてください 授業聞いてもサッパリだったんで・・・お願いします
>>508 講師に直接聞けよ。金払って授業受けてんだろ?
>>508 thisはそのオブジェクトのクラスのメンバを指すときに使う
superはスーパークラスのメンバを指すときに使う
>>507 きついことを言ってあげよう。ここまでがんがん書きあがってる割に、君はかなり間抜けだ。
これは君が自分で書いたのか? 途中まで人に書いてもらったのか?
1. Label クラスには、public Label(String name) { ... } というコンストラクタがあるわけだが、
name と言う変数が無いのに new Label(name); とできるわけがないだろ? こっから類推して考えろ。
2.「a をつけないとき」、どういう動作をして欲しいのだ?
君は int[] を受け取るコンストラクタだけを用意している。
こんな状況で、引数無しで new したときどこへ処理が飛ぶというのか。
フレームに示すときは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(); //こういうときは書かなくてもいいけどね
}
}
}
書かなくていいとき、書いたほうがいいとき、書かなきゃいけないときがある。
関係ないが、JFrameとかCanvasとか、継承する前提のクラスでnameとかxとか、よく使う名前をprivateで使うのはやめて欲しい。 継承してnameとかxとかの変数でコンパイルエラーがでたときの意味がわかりにくい。 初学者が混乱する。
>>513 そのときの a は変数として存在していて、値も入っていたからうまくいったんだろうが。
コピペしてどうする。
コンストラクタも自分で書いたんだろ? コンストラクタは int[] が欲しいんだろ?
じゃどうして、いざコンストラクタを呼ぼうとしたときに、 int[] を与えようとしないんだよ。
自分が「こうすればいいんだろう」と思い込むんじゃどうしようもないんだよ。
「こうしたら動いた」って根拠じゃなくて、「Javaの仕様上こうしなきゃならん」て根拠でないとだめ。
>>516 何を言ってるのかしばらく分からなかった。
でも理解できた。んで同意した。
520 :
デフォルトの名無しさん :03/11/12 13:57
>>503 球をつぶせばできるんじゃない?
剪断とかってできなかった?
int[]を与えてやってみたのですが、予期しない型とでちゃってだめでした。
>>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);
}
}
};
であれば
シンボルを解決できません。
が出る。
慣れてしまえば問題ないんだが。
Java3D以外にもCanvasクラスがあったのか
>>522 " int[] " が何のことか説明してみろ。
具体的にどう与えたか書いてみろ。
>>524 アクセスできないものは解決できなかったことにする、
初心者向けコンパイラオプションがあればいいのかな。
あほくさいけど。
>>526 AWT 飛ばして Swing 行った口か? 珍しい存在だ。
すみません、わかりません。
int[]は端末から入力したものを配列にいれたものです。
>>530 すなおでよろしい。
が、それがわかってないと、どうしようもない。
基礎文法レベルの質問は、掲示板では答えにくいよ。
>>530 とりあえずは、メソッド定義や仮引数について勉強しる!
>>529 >
>>526 > AWT 飛ばして Swing 行った口か? 珍しい存在だ。
いや、GUI系ほとんどすっとばしてServletいった口。
Java3Dは趣味のついで。
>>531 ここはプログラム板なんだから、具体的にどうした、ってのは必ずソースで明示してくれ。
君はちょーー初心者なんだから、
我々としては、他の初心者と同じ轍を踏んでないか確認してからでないと、指南のしようがないんだよ。
初心者の意味不明な行動の例は膨大だからいちいち確認できないし。
漏れの経験では、こういうつまづきかたするやつは、Javaにかぎらずプログラムにかぎらず、何事にもスジが悪い。
まぁ、それでも2chで質問してでも解決しようとしてるだけマシ
538 :
デフォルトの名無しさん :03/11/12 14:44
以前の続き、というか関連なのですが…。 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 を作るってこと?
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("_","\\\\_");
>>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に変換、とも考えました。
>>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 にすると負が負のままになるので、必要ならマスクもする。
で、それを繰り返せばいい。
>>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 という数値を作りたいのか、
はっきりしておくれ。
>>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型にしてやればよいのでしょうか?
何か入れ違いになってるかもな。 >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 数が増えるだけ。
>>540 殿
できました〜〜〜〜〜♪
int cに読み取ったものを入れてたから、おかしくなってたですね。
ループなんですが、間違ったものを実行してみると、確かに2,2,2,2,2,2,2で、最後は1が入ってますた。
マズいです(w
でもこれは自分で解決しようと思います。がんがります!
ホントいろいろアドバイスありがとうございます。
以前に指南して下さった方々にも心からお礼申し上げます。
>>542 のlikeでエスケープする文字について、誰か教えてくれ。
550 :
デフォルトの名無しさん :03/11/12 17:12
ヘボいマシンでも、入力支援のあるエディタで開発できる 環境って構築できないでしょうか? OSはVineLinuxです。 Celeron400MHz、メモリ64MB ぐらいでも、まあまあ動くのが欲しいです。 Eclipseは入れてみましたが、起動以外も遅すぎて使い物になりませんでした。 宜しくお願いします。
Delphi(pascal)は問答無用で却下
>>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
>>557 漏れも555と同じこと思ったのだが・・・・
>>489 なるほど。
でも出来ればお気に入りとかで別のページに移動した場合もバックグラウンドで動作を続けて欲しいんです。
JavaAppletが一度動き出したらIEが全て終了するまで動作できる方法はないでしょうか?
561 :
デフォルトの名無しさん :03/11/12 20:28
execが上手く実行されません。 IOExceptionが発生して、CreateProcess中にエラーが出てるようです。 パスを設定しないと実行できないコマンドなのですが、envに渡す環境変数は 「path=c\hoge\hoge」だとあったのですが、あってますか? もしくは注意点などあったら教えてください。 引数は""でくくってるので、引数中のパスの空白は、オプションの空白とは区別されてないと思います。
>559 ない。
>>561 うんと、未だにMS-DOSの知識ってのは役に立つんだな。と言うか必須なんだなと思った。
>>554 未経験で会社はいるやつ要るってことはこの業界も仕事が増えてきたのかな?
折れんとこは・・・
>>564 どっちかというと社交性の高いSEタイプを集めようとしてるんだろう。
567 :
デフォルトの名無しさん :03/11/12 21:30
今時期新人1週間目ってなによっていうツッコミはなきにしもありですか?
思いっきり経験なしの新卒ですよ・・・ 全くわからん。。。
570 :
デフォルトの名無しさん :03/11/12 21:50
>>567 だから何だよ文句あんのかよ
てめえの会社にいるわけじゃねえだろ
お前いじめられてたろ?
どうしてもいじめたくなるやつっていんだよ、お前みたいな奴
571 :
デフォルトの名無しさん :03/11/12 21:52
573 :
デフォルトの名無しさん :03/11/12 21:54
>>572 全くわからんくせに態度だけはでかい人もね。
574 :
デフォルトの名無しさん :03/11/12 21:55
>>572 キタ━━━━━━(゚∀゚)━━━━━━!!!!
いや〜煽りあいって本当におもしろいですね!
577 :
デフォルトの名無しさん :03/11/12 22:25
578 :
デフォルトの名無しさん :03/11/12 23:48
JavaのGraphicsでpaintっていうメソッド使いますけど、 その中のGraphics gを渡した他のメソッドからg.drawLine()とか 呼び出せないでしょうか? 何回やってみても描画されてないように見えるのですが。
呼び出せます
知恵をお貸しください。 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バイト文字があるときのことを考えるともう一工夫いるな。
ちょいと閃いたので、少し自分でガンガってみまつ。
585 :
デフォルトの名無しさん :03/11/13 00:55
j2htmlのマニュアルやくしたのにうpできないYO! ライセンス所有してると思われるとこにメールしたけど返ってこない・・・。 どうすりゃいいんだYO! オレの努力無駄かよ! 英語苦手なのにがんばったのに・・・。 (´Д⊂グスン
586 :
デフォルトの名無しさん :03/11/13 00:59
>>582 非常に説明が長くなりそうだ
とりあえずC言語やれば少しは文字をどのように扱っているのかわかるので
C言語やってみれば?
どっちにしても583のようにバイト単位で調べていくしかない
>>585 努力は必ず報われる
ちなみにこんなん送りました。通じてるかな?
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.を・・・
>>585 Σr(‘Д‘n)知らんかった・・・。怒ってたりするかもね。
ていうかスレ違いスマソ。この話題ここまでで。無事公開できたら報告します。スマソ。
>>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ファイルを渡したら「動かない」と言われました(当たり前ですが)。 こういう、実行環境の整ってない人にもアプレット以外でアプリを渡すには どうしたらいいんでしょうか?
>>595 あ、あれを使えばいいんですか。なるほど。
どもです。
597 :
デフォルトの名無しさん :03/11/13 01:44
>>595 え?それってJRE無くても出きる物だったのか?
>>595 ありえへん
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(); } これで何かわかりますか?
602 :
デフォルトの名無しさん :03/11/13 01:55
誰かわかりませんか? 他のクラスからアクション起こして、描画させる方法。 参考になりそうなWEBでもいいです。
>>604 それしかないよな?
595はどう処分しましょうか?
>>578 そもそもJavaのルールとして、paintメソッドの類は、
イベントディスパッチスレッドからしか呼び出さないようにしようという、約束事があったと思うが?
>>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 それでなにがやりたい?
クラスつくるほどのものでもないと思うのだが。
式を新しい物に代えることがしたいのです。 毎回同じ式を使うことなく、同じ形式の問題でも式の構造を代えることが出来るシステムとして 例) 消費税の計算: A*1.03⇒A*1.05 もっと、複雑な式なのですが、やりたいことは上と同じことです。 式が新しくなったときに変更が効くもの作りたいのです。
614 :
デフォルトの名無しさん :03/11/13 05:20
>>613 別に、式を評価するしくみさえ持っておいて、式は文字列であたえれば済むことでは?
615 :
デフォルトの名無しさん :03/11/13 05:34
式を評価するしくみを作るならJavaCCね。 どっちにしろ、classファイルを動的に作ってもろくなことない。 とくに610のレベルではね。
>>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も使うには力が足りなそうだ。
四則演算くらいなら、簡単にできるとは思うのだが。
で、四則演算のライブラリでもちょいと探して紹介しようと思ったのだが、みつけきらんかったよ。
>>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 典型的な分かったつもりになっている人の意見ですね。
とりあえず、Javaの場合、継承することが前提のクラスも多いから、「何も考える必要はない」ということはない。 インターフェイスの使い方も、言語ちゃんとわかってないと難しいし。
私は面倒な処理は全てアブストラクト、インターフェースにして 他人にやらせています。
629 :
javaコマンドの-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のパスを記述
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 とかは眺めてみた?
とりあえず、自分のプログラムに適用するんでなくて、
チュートリアルを探して、試してみるほうが先決だと思うけど。
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を構成しているだけなので省略しました。 こんな風になってます。
白状すると 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 左右に動くだけなんだが、これはどういうこと?
>>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の出来が悪いだけな気がするが。
物体を移動させてる。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); } こういう関数作ったら、物体を回転できるようになりました。
651 :
デフォルトの名無しさん :03/11/13 17:53
厨な質問だと思うのですが、お助け下さい。 Socket socket = new Socket(1234); while( true ){ //なんかの処理 } socket.close(); とやると、最後の行でUnreachableなんたらってエラーが出ます。 これはなんででしょうか?
>>652 も、もしやループの中にBreakがないから
怒られてるのでしょうか?
(と思ってif文をループの中に作ってBreakを書いたけど依然同じ・・)
標準入力からQuitと入力されたらBreakするようにしたけどダメでした。
(いついくかの質問に対する回答はこれで正しいですよね?)
>>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 ちなみに、それはどんな資料見てる?
とりあえず古い資料だから、捨てとけ。
>>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?どっち?両方?
質問です 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 なんというか就職してからもそうなんだけど
誰かから仕事を頼まれたらどういう仕事かその場で
確認すること。「よくわかりません。」とか後になって
2chで聞かれてもこっちもわからん。
674 :
デフォルトの名無しさん :03/11/13 21:34
>>671 おれが作ったJavaの簡易IDE(コンパイル&実行)でもいいか?
あとは、正規表現チェックツールとか?
住所の一部から郵便番号検索(またはその逆)とか?
675 :
デフォルトの名無しさん :03/11/13 21:35
>>671 宿題って・・
もしかして新卒採用ですか?
俺の場合はそうでなかったので
その場でたいそうなプログラミングさせられましたけどね;;
>>660-664 Session張りっぱなしは危険じゃない?明示的にinvalidate()で切るか
setMaxInactivelnterval(int time)で時間をセットしなさいと折れは習ったぞい。
Cookieクラスを使えば?だめ???
>>671 >>新卒なんでまったくの未経験です。
今からでも間に合います。ほかの仕事を見つけましょう!
>>671 >新卒なんでまったくの未経験です。
少し認識が甘いようだね。
新卒で経験豊富な奴だって一杯いるぞ。
その会社は、そのつもりで宿題出したんだと思われる。
678 :
デフォルトの名無しさん :03/11/13 22:11
俺は企業側に言いたい 未経験でも、(チーム開発やその他の作業を除いて) プログラミングの力はプロレベルの奴もいるということを
サラリーマンはチームで作業できなきゃ勤まらんわい。 開発だけ1人ってのはあるかもしれんが。
一ヶ月でコンパイラとか書けちゃうんだ・・・
つーか思いっきり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本作ってきてください。
どちらもフリーのコンパイラやツールがあるからソフトを買う必要はありません」
と言われたんだと俺は思う。
何でもいいから作品を見て実力を測りたいだけだろ。新卒採用なんだし。
全くの未経験て、Javaを知らないわけじゃないんでしょ?
>>688 そうだよね、あくまでも実務未経験というだけでして・・・
double a; //a=0.456; double result= ((int)((a+0.005)*100))/(double)100;
(゚Д゚)ハァ?
awtのFileDialogで複数ファイルの選択ができーん! 使えねえライブラリだな!コノヤロウ!マジ死滅しろ!
その辺に落ちてるJavaで書かれたGUIアプリってさ、キーボードで操作できないよな。 あれってどうやってもできないの?作者がメンドウだからやってないだけ?
697 :
デフォルトの名無しさん :03/11/14 00:52
SwingのJTableでリストの同じところを2回クリックすると 文字入力の状態になりますが、それを防ぐ方法はありますか? 教えてください。
>>698 やり方知らないからやってないだけってのもあるかもね。
>>697 TableModel#isCellEditalbe()をfalseを返すようにオーバーライドして
それをJTable#setModel()して味噌。
すいません、またいいでつか? NetBeans IDE Ver.3.5.1をダウンロードし、インストールしようとしたら、 途中で止まったまま動かなくなってしまいます。インストするフォルダを決めて、 「次へ」ボタンを押した後です。 家のPCでも、学校の研究室のPCでもここから先に進めません。 同様の症状の型、いらっしゃいますでしょうか?また、解決方法等がありましたら、 アドバイスください。 環境は 自宅:VAIO PCG-V505E/B WinXP home 大学:自作機 Win2kpro です。
>>701 ちゃんとJDKはインストールしてますか?
>>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 どっちでもいいけど、共通処理が存在するだろうからアブストラクトクラスの方がいいやね。
>>708 どうもありがとうございました。
アブストラクトクラスを作ってやっていくことにします!
今調べてたんですけど、
アブストラクトクラスがインタフェースEを継承しておけば
クラスCでクラスAとクラスBをインスタンス化するときに
E e = new A();とかできそうなので、その辺も考慮して
作っていこうと思います。
書籍について質問です。 アプレットーサーブレット間の通信をやりたくていろいろ検索した結果 「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
718 :
デフォルトの名無しさん :03/11/14 15:18
JPanelでダブルバッファしようと思ってcreateImageしたんですが 出来ません。どうすればいいんですか?
719 :
デフォルトの名無しさん :03/11/14 15:26
>>718 プログラムに間違いがある、とでもいっときましょうか?
>>715 java.awt.Graphics2D と java.awt.geom.AffineTransform 使うとか。
RMIについて勉強を始めたいのですがどういう基本書がいいのか分かりません。なにか詳しく解り易い本を知りませんか? 知っていましたらぜひ教えて頂けませんか?
722 :
デフォルトの名無しさん :03/11/14 16:59
RMI単独の解説書ってあったけ? EJBの本でも買えばちょっとはそういう解説のってそうだけど。 Webでその手の解説見たほうが早いと思うよ。
スタートすると、四角形が上から下へひたすら落ちていく(一番下まで行くと 上に戻る)プログラムを作りました。これを、ボタンを押すと、落ちる途中に 止まり、また一番上から落ちだすというように改良したいと思っています。 そこで四角形をストップさせた後、Repaintを使い、背景を再描写し、四角形を またスタートしなおすようにしたのですが、四角形が再スタートした瞬間、 元の消えた四角形が出てしまいます。この場合、Repaintじゃないほうがいいん でしょうか?本などで調べてみたのですが、いまいちわからなくて・・・・。 もしよければ教えていただけないでしょうか?
724 :
デフォルトの名無しさん :03/11/14 17:31
いやですからね ソース見せてくれないとわからんのですわ スレッドなんてとくに なのでさっきから言ってるように プログラムに間違いがある、とでもいっときましょうか? としか言えないのです。
725 :
デフォルトの名無しさん :03/11/14 17:57
726 :
デフォルトの名無しさん :03/11/14 17:58
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
>>738 2.についてはこちらの方で少し思い違いがありました。
問題ないと思います。すんまそん。
ちなみに、アダプタクラスを持つリスナインターフェイスのメソッドを
普通にオーバーライドすることはできますが、同じことを匿名クラスで
やろうとするとなぜかできません。不思議不思議。まぁ蛇足ですが。
744 :
デフォルトの名無しさん :03/11/15 00:02
745 :
デフォルトの名無しさん :03/11/15 00:03
746 :
デフォルトの名無しさん :03/11/15 00:05
インスタンス変数が多いと処理が重くなると聞きました。 ほんとですか?
>>743 勘違いでしたできました。
おかしいなぁ前やったときはできなかったのに…。
逝ってきます…。
( ´,_ゝ`)
749 :
デフォルトの名無しさん :03/11/15 00:16
>>746 ヒープに置かれるからね。GCが実行されるとGC対象が消えるだけ
じゃなくて、生き残るオブジェクトがヒープ内を移動するわけで。
コピーの度にメモリサイズに比例したコストはあるかもね。
ただ、そんなことが気になるようなタイトなアプリ作るのにJava
つかうな、と思うが。
751 :
デフォルトの名無しさん :03/11/15 00:48
752 :
デフォルトの名無しさん :03/11/15 02:12
javaにおけるデバッグのコツってなんですか?
753 :
デフォルトの名無しさん :03/11/15 02:27
>>752 単体レベルの試験ならGUIの便利なデバッガを使うべし。
運用時とか、結合試験のロギングが必要ならLog4Jなどの
ロガーライブラリ+AspectJかな。
テキストエディタでSystem.out.println()書いたり消したり
は時代遅れ。こんなことやってる奴は初心者か暇人かバカ。
755 :
デフォルトの名無しさん :03/11/15 03:49
>>754 > こんなことやってる奴は初心者か暇人かバカ。
時代錯誤なジジイも追加。
756 :
デフォルトの名無しさん :03/11/15 07:12
757 :
デフォルトの名無しさん :03/11/15 07:13
758 :
デフォルトの名無しさん :03/11/15 08:55
>754 すっすすすすんまそ。最近やりました。
GUIの便利なデバッガください。
Swingで質問です。 描画には、paintを使いますか?paintComponentを使いますか? この二つの違うが良くわからないです。
763 :
デフォルトの名無しさん :03/11/15 12:54
J2SEのver1.4.2をダウンロードしてインストールしてたのですがインストール途中で停止してしまうんですが同じような状態の方っています?原因わかる方は教えていただきたいのですが。ちなみに処理状況8%のとこで停止します。
764 :
デフォルトの名無しさん :03/11/15 13:01
>>763 OSもわからんのに、なんともいえるかい!
765 :
763です。 :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
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のインターフェイス] ] また、配列などで同列に扱うことができるようになる。
799 :
デフォルトの名無しさん :03/11/15 16:28
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;
プリミティブ型でもキャストは出来る。
>>798 文字列->数値をキャストといってるのが揚げ足か?
>>795 データ型なんていう、オレ用語使わずに、基本型・プリミティブ型のように、広く通じる用語を使え。
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
>>808 String型のオブジェクトには1バイト文字は入ってない。
>>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 学生よ。理系文系など些細な違いでしかないぞ。
しかもそれにより優劣が付くと言うことは絶対にない。
>>809-813 ありがとうございます。
String foo="abcdあいうえ";
だと、foo.length()は8になりますね。
で、string.getBytes(foo).lengthだと12となるということでしょうか?
ちょっと今出先からのアクセスなので、試せません。
821 :
デフォルトの名無しさん :03/11/15 16:54
>>816 何をごまかしてんだよ
データ型でいいんだよ
(しかも俺はプリミティブ型でも否定はしないけどな)
おまえがデータ型って言葉知らないだけだよ
お前の持ってるJavaの入門書見てみろ
シンプルデータ型、変数のデータ型、データ型と書いてあるだろ?
>>819 参照型:クラス型、インターフェイス型、配列型
>>820 > string.getBytes(foo).length
だと、多分 UnsuppotedEncodingException : abcdあいうえ 食らうと思われ
悲しいかな、理系と文系の生涯賃金の差は・・・。
おまえら日本語使うからややこしくなるんだよ。 技術のことは英語だけで話せ。
自称有能な文系が何人か釣れてますね
>>821 いわゆる、「ダメな初心者本」を読んだのだと思われ
>>825 心配すんな。不況で職にあぶれる率と比例してる。
>>824 すみません。javaは半可通です。
もしよろしければ、正解を教えていただけないでしょうか?
831 :
デフォルトの名無しさん :03/11/15 16:58
すいません 788でもかいたのですが Javaにおけるビルドの意味と目的を教えてください
833 :
デフォルトの名無しさん :03/11/15 16:59
じゃあ、プリミティブ型としてboolean,byte,long,short,int,double,char,floatが紹介されている本を挙げてくれ だいたい、俺の言ってる事が本で載ってる事なのに これを、「自分用語」などと決め付けでかましてるくせによ
>>833 javadoc(sunオフィシャル)
ちなみにsunと言うのはJavaを作った会社です。
>>831 Java自体にはビルドとかデバッグとかいう言葉はない。
837 :
デフォルトの名無しさん :03/11/15 17:02
今ごろ本あさっても無駄だぞ ハッタリ野郎
>>833 適当な用語を捏造する初心者本ライターの罪は重いな。
だいたい、本に載ってるのが正しいというのならアダムスキーも北極の大穴もみんなほんとか?
グラボ。 とかな。
840 :
デフォルトの名無しさん :03/11/15 17:05
>>838 じゃあお前は 自分の使ってる真であろう言葉はどこで覚えたんだよ?
データ型が俺用語だという証明してくれよ
>>835 ありがとうございます。
foo.getByte("ISO-8859-1").length つうことですね。了解しました。
ビルド・デバッグっていうのは、いくつかの操作を複合した動作のことだからね。
>>842 こうやって、だんだん口調が弱くなっていくんだね。
おい、
>>794 =800 よ
おまえが
>>798 に突っ込まれたことに対して
おれに八つ当たりしたのが間違いなんだよ
俺は最初に データ型でいいんだよ (しかも俺はプリミティブ型でも否定はしないけどな) って書いてるんだけどな おまえはデータ型を完全に「俺用語」に決め付けだろ? それはありえない
>>848 もともと匿名掲示板で書いてる俺達が言えることかよ
>>847 公式ではないがな。
まぁ、「プリミティブ型」が使われてる本といわれたから挙げてみた。
少なくともプリミティブ型に関しては「ウソ」ではないと思うが。
JavaDocの日本語版では「プリミティブ型」という単語が使われてるし。
公式には「プリミティブ型」乃至は「基本型」なんだから、俺用語じゃん。 馬鹿が本やサイトに俺用語を堂々と書いているだけだ。
「基本型」も使われてるな。 データ型は無いが。
>>853 明らかに 俺個人の用語 見たいな言い方だったけどな
>>843 > > String foo="abcdあいうえ";
> foo.getByte("ISO-8859-1").length
だと、foo.getByte("ISO-8859-1") が "abcd????" (? は変換不能)になって 8 になると思われ。
あるいは、訳し方によって言い方が異なるとか・・・
わるかったなみんな もうやめるよ
>>857 原著に「PrimitiveType」ってあるのに「データ型」と訳すのはどーかと思われ。
> 明らかに 俺個人の用語 見たいな言い方だったけどな そうだろう。
「初めてのJava完全入門」(この本どうかと思うけど)には 「データ型」は「型」の言い替えで、基本データ型も参照型も含むとある。 「基本データ型(組み込み型: primitive type)」という記述もある。 「Java言語規定」には「type」はあるが「data type」はない。「primitive type」はある。
>>862 まあ、型というと一般的すぎてプログラマ以外には意味が広すぎるかもしれないからな。
語彙の持つ意味をプログラミングの文脈でいう意味だけに限定したいために「データ型」という用語を
使っているのだろう、と好意的に解釈してみる。
CやJavaを「C言語」とか「Java言語」とか言うようなもんだ。
それでも、ム板ならプログラミングの文脈で語ってほしいものだが。
俺だけど 俺が見ている「データ型」と書いてある本は BlackBookです。 「・・・これらすべてをまとめてJavaのシンプルデータ型と呼ぶ」(以降データ型とかかれている) ちなみに配列は複合データ型と書かれている
=演算子ってさぁ、仕様だとAssignment Operatorなんだけど、代入演算子っていうよね。 あれも気になるんだよね。 assignを代入と訳してるだけなんだけどね。
>>863 いや、たとえばAWTが用意されているのはJavaだけど、intをprimitive typeというのはJava言語なんだよ。
>>865 だから、訳し方が著者や翻訳者で派生してるだけだって気にすんな
そんな哲学は要らん
>>867 うむ。
これはオレが気になってるだけだ。
>>864 捨てろ!
というには惜しい本だな・・・。
-- ここまで読んだ。 --
871 :
デフォルトの名無しさん :03/11/15 17:58
>>
873 :
デフォルトの名無しさん :03/11/15 18:08
すいません、 WindowsXPのコマンドプロンプトの画面を 消去したいのですが、 System.out.print("?"); の部分に何と書けばよいのですか? ちなみにCLSでは駄目でした。
>>871 JavaというのはJava言語を中心とした総合的な技術のこと。
これでよい?
Win95 系ならエスケープシーケンスとかで消せたかもしれんが WinNT 系のコマンドプロンプトって消せたっけ? Runtime.getRuntime().exec("cmd /c cls"); とか? (cmd /? 参照)
>>875 う〜ん、ダメでした。
直接CLSを打ち込むのは有効なんですが…
俺はいつもclearでやってるけどなぁ。
パラメータつきで外部プログラム動かしたかったら Runtime.getRuntime().exec(new String[] {"cmd.exe", "/c", "cls"}); とかじゃないか?
>>878 それは今試してみたけれど、何も起きませんでした。
画面に文字は表示されないし、消去もされない。
忘れてました。もうひとつ質問です。 javaにCのmemset()みたいなメモリフィルとかmemcpy()みたいな 処理はあったでしょうか。 別になくたってforループをまわせばすむことなんですけど。 APIをざっと眺めてもそれらしいのがなかったので。
>>880 java.util.Arrays#fill()
プリミティブ型の配列用に加えてObject[]もある。
メモリコピーはSystem.arraycopy(Object, int, dest, int, length)で可能。
最近、ふと思うことがありました。javaを使うために、J2sdkをインス トールし、環境変数にC:\/*javaのbinフォルダ*/を設定。コンパイル 可能。試しに、環境変数のpathからC:\/*javaのbinフォルダ*/を削除 し、コンパイル・・・・。あれ?まだコンパイル出来る?????? お馬鹿な僕に、なんでコンパイルできるか教えてください。
おまえら、もっと優しい口調で質問に答えろはげ。
>>885 わかりました。
これからは、あなたのような文盲にも読めるような、優しい文章で質問に答えれるようにつとめます。
よろちいでちゅか?
>>884 それは Java の質問じゃなさそうだね。
Windows 板か OS 板行って聞いてくれ。
>>884 DOS窓開きっぱなしでPATH書き換えたとかじゃねーの?
>>885 はげって言ったな。親父にも言われた事ないのに。
すいません873ですけど、どなたか教えてくださいませんか?
>>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とかも、私が知らないだけであるのかもしれないけどね。
オブジェクトは容器のなかに入るものではありません
>>898 容器ってなんのこと?ってなるから、良くない。
((SubClass)o.indexOf(0)).subClassMethod();
の場合、容器ってなに?
>>900 は参照のことを言っているのかなあとおもったけど、
>>901 は何の事を言っているのか私にはよくわかんない。
そのoとかindexOf(0)ってなあに?
class Hoge{ SuperClass indexOf(int); } とあって Hoge o = new Hoge(); となってるという感じ。
自 分 用 語 は 使 わ な い で ね
>>905 先生、「自分用語」は一般的ではないかもしれません。
俺 の ケ ツ 毛 は 濃 い け ど 気 に し な い で ね
>>907 C のポインタ解説には「容器」とか「入れ物」っつー表現が結構出てくるよ。
俺 の 毛 髪 は 薄 い け ど 気 に し な い で ね いや、やっぱ気になる。俺が。
さて、また大量にレスを消費しそうな予感がするので そろそろどなたか次スレッドのご準備を。 //俺は立てられなかったすまそ
別に「自分用語」ではないだろうが比喩としてふさわしくない。 たとえば同じオブジェクト (同じ値という意味でなく同一という意味) が 別の複数の容器に入っている状態が想像しづらいので。
バッチファイルでいいじゃん
スレッドを止めるときに、stop()は推奨されていないんですが ファイルのオープンとかしてないところだったら止めても 大丈夫ですよね?
stopは「ストップ」ではなく「スタァプ」
DOMを使ってXMLを解析する勉強を始めたいのですが、DOMParserクラスなどが入っているAPIが無くて出来ません。 これってどこに有りますか?分かりやすく教えてください。
>>919 > DOMParserクラスなどが入っているAPIが無くて出来ません。
の状況を詳しく教えてください。
(・∀・)傍観
キー操作で、普通にやると四方向にしか行動できないですが、斜め移動をしたいと 思ってます。 今何とかできましたが、一瞬遅れて斜め移動する感じです。スムーズに斜め移動 する為にはどうすれば良いでしょうか
えーとですね、Servletみたいな拡張APIがあるはずなんですが、それが欲しいです。 すんまそ。
j2sdk1.4.2_01です。すまんそ。
これくらい探したら直ぐ見つかると思うのに、今は疲れのせいで探す気力が無く、つい甘えてしまいました。 せめてこれくらい探せやボゲが、くらい言ってくださいよ。申し訳なさ杉じゃないですか。 ここは優しい風が吹いていますね
>>922 > 今何とかできましたが、一瞬遅れて斜め移動する感じです。スムーズに斜め移動
> する為にはどうすれば良いでしょうか
スムーズに斜め移動するようなソースを書く。
>>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というのはいったい何を呼び出しているのでしょうか? メソッドではありませんから、クラスの一種ですか?
>>936 じつは配列はオブジェクトで、そのフィールドを呼び出してるだけ。
などと推測で書いてみたが、それなら
str.length = 5;
などという基地外コードも書けるのだろうか・・・??
配列のlengthプロパティは、Java言語でもっとも甘いシンタックスシュガーですな。 Stringの+演算子はメリットあるが、配列はgetLength()ではないことのメリットはあまりない。
941 :
デフォルトの名無しさん :03/11/16 05:03
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 左と右で違うのは?
どういう意味?
わざわざこういう書き方にするのはどういうメリットがあるの?
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 何が欲しいのかを明示できる。
とりあえず。
955 :
デフォルトの名無しさん :03/11/16 09:35
>>954 威張ってるって言う意味?
Javaが得意って意味?
>>955 ただの被害妄想なのか。それとも煽られたくてうずうずしている厨房か。
>>956 勘違いしているようだが
本人ではないよ
まあ、Javaしか出来ない?
>>957 結局のところちまたで流行ってる言語のほとんどはオブジェクト指向付き構造化手続き型言語な訳だ。
〜しかできない。と言ってのけられる発想が凄いと思う。
959 :
デフォルトの名無しさん :03/11/16 12:46
例えばint型の変数を、初期化されているかどうか判断するにはどのような方法があるでしょうか? クラス型の変数なら、nullと比較することで判断できたので Integerに入れたらどーにかなるかと思ったのですが結局挫折しました…
根本的に勘違いをしている悪寒
激しく勘違いしてました。intには最初からゼロが入ってるのですね… 失礼しました。ありがとうございます。
>>959 ちなみにローカル変数は初期化されないので注意。
まあ、コンパイル時にWarning出るけど。
何だか無理そう?
>>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できるようだ。スマソ
ショートカットでもいいじゃん。
ショートカットはアイコンも変えられるね。
>>965 おう、できた!! サンキュー。
欲が出てきました。
Mac(OS X)で同様のことはできない? ProjectBuilderで作れるのかな?
OS Xは持ってないんだけどね。
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のコネクション継続の設定時間が短いのでは?
>>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[]) {
>>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車の位置を求めれば良い。 よろしくおねがいしまつ。
988 :
デフォルトの名無しさん :03/11/17 18:43
ランダムMIDIのJavaScriptを作ったのですが,音が鳴りません。 ページなどについているMIDIは普通に聞けるし,コピペしたJavaScriptのソースも正しいと思います。 間違っているとしたら、どのような事が考えられますか。教えてください、お願いします。
JavaScriptは質問範囲外なんですね、すみませんでした。 WEB製作板のほうへうつります。
>>985 の質問、初心者丸出しかもしれず、すみません。
ですが、(String[] args) と (String args[]) の違いは
勉強続けていけば分かるか、だけでも教えてください。
何故2つの書き方があるのか、何故どちらでも動作するのか
理由が分からなくて、気持ち悪いのです。
重ねての質問すみません。
>>990 ・文字列オブジェクトの配列であるところのargs
・配列であるargsは文字列オブジェクト
どっちも意味は通じる。って自分は理解してます。
前者はオブジェクト指向っぽい 後者はC/C++の互換
>>985 言語仕様的にはどちらでもOK.
ただ、String args[]; はC言語に合わせた古い書き方だから、String[] args;を使いましょう、
ということ。
Javaでの変数宣言の基本は
型 変数名;
『argsは「String[]型」のオブジェクト』なのであって、
『args[]が「String型」のオブジェクト』ではない。
独習Java自体は(多分)悪い本じゃないから、 『型 変数名[]』って書いてあるとこだけ切り抜いて捨てればいいよ。
継ぎスレ立てて
>>991 さん、
>>992 さん、
>>993 さん、
>>994 さん、
ありがとうございました!
プログラミング自体初心者なので、まだきちんとは理解出来ては
いませんが、何となくポイントが掴めてきました。
些細なことにも、ちゃんと意味があるんですね。
ずっと分からなかったので、こちらで聞いて良かったです。
「独習Java」窓から投げないでおきます。
「Java言語プログラミングレッスン」で勉強してみます。
プログラミングって面白いよう!
面白(=゚ω゚)ノぃょぅ!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。