1 :
デフォルトの名無しさん :
02/07/31 15:17
関連情報 以上
おつ
カットアンドペーストはどうやればやれますか?
>>13 さん
ファイルを作ってやりたいのですが・・・
>がばまんさん ネタは放置です。。。
>>15 サーバー移行したの忘れていたよ。
次回には直しておきます。
21 :
デフォルトの名無しさん :02/07/31 20:50
javaのソースコードを解析するのに何か便利なツールは無いでしょうか? 変なコードを解析するのにつかれまった・・・。
>>22 Win2kで使えるので何かいいのありますか?
板違いかもしれませんが、質問です。 オブジェクトの動的バインド(レイトバインド)はOO開発で必須な機能でしょうか? (1) 不要。ない方がよい。 (2) 必須である。静的バインドだけでは柔軟性に欠ける。 (3) あってもなくてもよい。たまに便利な場合もある、という程度。 VBしか使ったことがないため、今まで漠然と、他の開発言語にも当然ある機能 だと思っていましたが、つい最近、Javaではできないと知りました。 ちなみに、VBの場合のレイトバインドの利点は、参照するコンポーネントのバージョンが不明 (例えば、Excel, WSH等のバージョンが個別ユーザー毎の実行環境により異なる)な場合でも、 バージョンの違いを吸収して動作可能なプログラムを作れる点です。 (事前バインドでは、開発環境と実行環境でのバージョンの相違が原因で配布したアプリが正常 動作しない場合があります) JavaでCOMを使う試みもあるようですが、このあたりはどのようになっているのか気になります。
どっちかっつーと、インスタンスメソッドに 静的バインドはイラネーってのが Java の立場では?
Java ではバインドという言葉を使わないのよねー。 動的バインドってどういう意味かな? 1:コンパイル時にクラス名の解決はしておくが、 実行時に使用する実態のクラスは、実行時環境のモノを使う。 2:コンパイル時にはクラス名の解決をしない。 実行時にクラス名文字列からクラスとインスタンスを得る。 メソッドの場合は…、めんどうだな。
静的/動的って簡単に言えば C++ のvirtual無しが静的、 virtual有りが動的って… そういう話じゃなくて?
CYGWINでSDKをインストールする方法って、どこで聞けばいい?
別々にインストールすれ。全く問題ない
31 :
デフォルトの名無しさん :02/08/01 01:17
JTextFieldで、tabキーを押された時にイベント処理したくて、 JTextField jtf = new JTextField(10); jtf.addKeyListener(KeyListenerImple); ってやってるんですが、他のキーはフックできるんですがtabは特殊な キーらしく(フォーカス移動に使ってるから当然だけど)イベントが発生しません。 どうやったらいいっすか?
つーか、さげ侵攻なのね。スマソ
>>27 VBの動的バインドってのは2の方
たとえばObject型(すべてのクラスのインスタンスはObject型に代入できる)の変数oに
文字列(もしくはクラス)からインスタンスを作成代入してo.fooって感じで実行できる。
ちなみに静的バインドは1の方
クラスAの型の変数に同じクラスAもしくはそのクラスAをインターフェース継承した
クラスBのインスタンスを代入して使用する。
>>30 CYGWINでSDKをインストールする方法
>>34 JDK 1.4 だとその方法は使えんぞ。
Component.setFocusTraversalKeys() を使わないと。
class Leg { double [] foo; void show(){ Sytem.out.println(foo.length); } } public class Nagasa{ public static void main(String args[]) { Leg reg1 = new Leg(); //ここでLegクラスの配列fooを初期化したい。<質問 reg1.show();//初期化した配列の長さを見る。 } } どうやるんすか?
前スレの956で >Frame上に配置されているボタンやテキストエリアを重なるような形で >Canvasオブジェクトを配置するようなことをするにはどうしたら良いでしょうか? という質問をしました。 964さんにお答えいただいたのですがこちらの説明不足で真意と違うお答え他になってしまい すいませんでした。 質問を繰り返すようですが再度お願いします。 まず、現状ですがhtml上にあるアプレットのボタンからFrameオブジェクトで別のウィンドウが開き そのFrameオブジェクトの上にはボタンオブジェクトやテキストエリアオブジェクト、ラベルオブジェクトが GridBagLayoutで配置されています。 今回、やりたいことはそのボタンやテキストエリアが配置されているFrameオブジェクトの上に あたかもダイアログボックスのようにCanvasオブジェクトを配置したいということです。 このような処理をawtだけを使って出来ないでしょうか?
>>41 Frame.removeAll();
Frame.add(Canvas);
ってことか?
それとも、インナーフレームのことか?
インナーフレーム=Dialog(Frame,(modal=true)); インナーフレーム.setBounds(Frameの位置);
>>39 double [] foo;
↓
static double [] foo;
>>44 どもです。クラス変数にstaticいるんでした。忘れていますたです。
配列の初期化のほうも、一生懸命本読んでいたらわかりますた。
reg1.foo = new double[3];
reg1.fooって書くのがわかってなかったでし。
実ははじめてクラスをつくったです。
>42さん Frame上に配置されているボタン等はそのままでCanvasオブジェクトをボタン等の上に重なるように配置したいので removeAllではないです。 また、インナーフレームとありますがインナーフレームとは何でしょうか? googleで調べても違う意味(プラモ系?)がヒットしてわかりませんでした。 インナークラスのようにフレームの中にフレームがあるということでしょうか?
メソッドの途中で処理を抜ける場合、(VBならExit Sub) どのようにしたらよいでしょうか? 戻り値のあるメソッドなら 「return 戻り値」 で抜けられますが Void型のメソッドの場合、戻り値がないためどのようにしたらよいかわかりません。 どなたか宜しくお願いします。
50 :
デフォルトの名無しさん :02/08/01 17:56
>>49 ただのreturn;
public class test {
public static void main( String[] arg ) {
if ( arg.length==0 ) { return; };
System.out.println( arg[0] );
}
}
>50さん おぉ。そんな単純だったんですか・・^^; 最初、わからなかったのでreturn nullとか訳の分からない事やってました。 その時のエラーメッセージで「Voidのメソッドから値は返せない」と、でたのでreturnは使えないものだとばかり・・ とにかく、ありがとうございました。
2chで初歩を習うってか・・・ほそろしい。
>>49 > Void型のメソッドの場合、戻り値がないためどのようにしたらよいかわかりません。
Void型のメソッドの場合、戻り値がないのだから戻り値を書かなければいいのです。
「return;」
「書き込む前にリロード」 覚えて帰ってちょうだい
その程度のこと覚えんでも…
>>55 書き終わったあとに、すでに書き込みされていても、消すのもったいないから送信するな 漏れは
なんかいい感じでアレだな・・・・
>>38 使えますよ。
でも、推奨しないAPIつかうなゴルァ(゚Д゚)っていわれるけど
63 :
デフォルトの名無しさん :02/08/02 11:50
abstract class Hoge を継承したクラス hoge があります。 Hoge に、Hoge を継承したサブクラスのコンストラクタ hoge() を呼び出す メソッド reset() を実装してしたいのですが、 どのようにすればよいのでしょうか? hoge.reset(); // 同じ書き方でそれぞれのコンストラクタを hage.reset(); // 呼び出すことを目的にしています。
>>61 推奨してないAPIは、ちゃんと使えますよ。
>>63 コンストラクタじゃなく、単にHogeクラスのreset()をオーバーライドするだけで
いいのでは?
>>64 でも推奨してないよ
↑
使えますよ
↑
でも推奨してないよ
↑
...
67 :
デフォルトの名無しさん :02/08/02 13:16
>>65 そのとおりなんですけど、オーバーライドしても
本当に reset() は下のように呼ぶだけなので、
それだけだったらあらかじめ Hoge のほうで用意できたら楽かなと(^^;
public void reset(){
hoge();
}
>>67 それをやるなら
Hogeとhogeの親子関係を解くべき
クラスから、別のクラスのメソッドを動的に変えて呼び出せるので できると思ったのですが。 すみません、ちょっと見直してみます。
72 :
デフォルトの名無しさん :02/08/02 16:14
あのう、コンパイルどうやるんですか?
javac ○○○.java
JScrollPaneのスクロールバーの出現するサイズを変えたいんですが どうやればいいのでしょうか、お願いします。
>>78 レスありがとうございます。
…というかすいません、言葉足らずでした。
setLayout( null ) の時です。
フレームを縮めた時にコンポーネントが消えてから
スクロールバーが出てきてしまうのですが…。
80 :
デフォルトの名無しさん :02/08/02 18:00
これは何のエラーなんですか?コンパイルできたのに実行できない。・゚・(ノД`)・゚・。 Exception in thread "main" java.lang.NoClassDefFoundError: kouza1 (wrong ouza1) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:509) at java.security.SecureClassLoader.defineClass(SecureClassLoader 3) at java.net.URLClassLoader.defineClass(URLClassLoader.java:246) at java.net.URLClassLoader.access$100(URLClassLoader.java:54) at java.net.URLClassLoader$1.run(URLClassLoader.java:193) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:186) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265) at java.lang.ClassLoader.loadClass(ClassLoader.java:262) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
java -classpath %CLASSPATH%;. kouza1 google で NoClassDefFoundError くらい調べろ。ってかこのスレの ちょっと前にも話出てなかったか?
82 :
デフォルトの名無しさん :02/08/02 18:16
JAVAをインストールした後のPATHの設定ってどうやるんですか?
Windows NT/2k/XP 系: [スタート]-[設定]-[コントロールパネル]-[システム]-[詳細]-[環境変数] Windows 95/98/Me 系: [スタート]-[プログラム]-[アクセサリ]-[メモ帳] で C:\autoexec.bat を開いて SET PATH=... 行を追加 Unix 系: .profile とか .cshrc とかに書いとく
Cで言うところの参照渡しをJAVAでやるにはどうしたらよいのでしょうか... ↓C void RefTest( int * a ) { *a = 1000; // aの値は1000になる } ↓JAVA void RefTest( int a ) { a = 1000; // aの値は1000になるがこのメソッドの中でのみ マズー }
>>84 いわゆるリターンバッファを使った方法は後で後悔することになるからやめとけ。
一つの機能は一つの結果を返すのが基本。返す項目が複数ある場合には Bean でも
作れ。
どうしてもやりたいなら配列かコレクションで渡せ。
void RefTest(int[] a){
a[0] = 1000;
}
>>83 ありがとうございます。私がとち狂っておりました。逝ってきます・・・
>>85 ....そ、そうなんか、そういう時代なんだな....
89 :
デフォルトの名無しさん :02/08/02 19:15
JDK 1.2.2で背景と文字色を指定して文字列を表示させるアプレットで、 アプレットビューワでみるとチラつくのは仕様ですか?
>>88 IPO と基本データ型だけで設計すんのは COBOL でやってくれ。
教えてください。 1、コンストラクタって何ですか?クラスのオブジェクトを初期化するためのものなんですか? 2、class FooのオブジェクトFoo hogeを初期化するときは Foo hoge=new Foo();とかくことはわかったんすけど、hogeを何個もいっぺんに 初期化したいときはどう書けばいいんですか? Foo hoge1=new Foo(); Foo hoge2=new Foo(); はしんどいっす。Foo型の配列とかつくれるんですか?
>>93 1.コンストラクタって何ですか?
クラスのオブジェクトを初期化するためのものと考えていて良いです。
インスタンスが生成された後、インスタンス変数の初期化前に動く手続きです。
スーパークラスのコンストラクタは呼び出さなくても暗黙に呼び出されます。
2.hogeを何個もいっぺんに初期化
Foo hoge[100];
for ( int i=0 ; i<hoge.length ; i++ ) hoge[i] = new Foo();
とでもしてください。
なんか他に一気に生成する方法あるのかな?
あまり大量のオブジェクトつくるアプリ書かないから実はよく分からない。
大量に作るときはArrayList使って保持してるし。
あり?インスタンス変数初期化されてからコンストラクタ動くわ。スマソ。
更にスマソ。 Foo hoge[] = new Foo[100]; としてくださいな。
93です、
>>96 さんありがとです。一応あれから考えに考えて
こんなんしたどうなんだろと思ったんですけど、やっぱり自分的にも
おかしいっす。
class Foo{
static double [] hoge;
}
public class Aso{
public static void main(String args[]){
Foo [] foo = new Foo [2];//Fooクラスの変数fooを2個作ったつもり
for(int i=0;i<2;i++){
foo[i]=new Foo();//2個を初期化したつもり
}
for(int i=0;i<2;i++){
foo[i].hoge = new double[3];//foo[i]のhogeを3の配列として初期化したつもり
}
}
}
つもりなんですけど、foo[i].hoge = new double[3];って変だと思うんですけど、正しい
書き方わからないんです。教えてくださいまし。
>大量に作るときはArrayList使って保持してるし。
ってなんすか?興味しんしん。
>>100 言ってることわからん。答えないなら書くなよ。
102 :
デフォルトの名無しさん :02/08/03 02:07
foo[i].hoge = new double[3];//foo[i]のhogeを3の配列として初期化したつもり を外から配列サイズ(3)を指定しなくていいのであれば、 public class Foo { double[] hoge = new double[3]; } または public class Foo { double[] hoge; public Foo() { hoge = new dobule[3]; } } とすればいい。
93です。
>>99 の質問ですが、最初に投げた質問
>>93 とすこし違って
しまいました。クラスFooのFoo型の変数fooのクラス変数hoge
が配列のとき、fooを配列を使ってたくさん初期化したときに、
foo[i].hogeを初期化するにはどうすればいいのですか?
です、たぶんそうです。初心者なので質問がうまくつくれません。よろしこ。
>>99 static double[] hoge;
としてしまうと、hogeがFooクラスの全インスタンスで共有されてしまうから
staticはつけてはいけない。
続けて質問するんなら番号でもいいから名前つけれや。
話がわかりにくい。
>>102 さん、ありがとです。
mainでキーボードからの入力でdouble[] hoge = new double[];
のサイズを指定しています(サイズと書くのか、メモ)。ですので、
できれば、mainでサイズ3の配列として初期化する方法を知りたいです。
>>105 だから名前つけろって。
そういう時は、コンストラクタを
public Foo(int size) {
hoge = new double[size];
}
とすれば外から指定したサイズで配列を作れる。
呼び出し側(今はmain())では
int size = 3;
Foo[] foos = new Foo[100];
for (int i = 0; i < foos.length; i++) {
foos[i] = new Foo(size);
}
でええやろ。
>>104 ということは、もしFooにクラスメソッドをつくるときには
staticというのをつけておかないと、クラス内のメソッドから
hogeは呼び出せないということでしょうか?
>>99 hoge が static になってるからインスタンスいくつ作っても同じ物になります。
Foo.hoge = new double[3];
とする・・・というか、
class Foo{
static double [] hoge = new double[3]; //hogeを3の配列として初期化
}
public class Aso{
public static void main(String args[]){
Foo [] foo = new Foo [2];//Fooクラスの変数fooを2個作ったつもり
for(int i=0;i<2;i++){
foo[i]=new Foo();//2個を初期化したつもり
}
}
}
ですね。
オブジェクト単位でhogeが欲しい場合は、Fooのコンストラクタで生成します。
ただし、doubleはオブジェクトでないので上のコードからstaticを取るだけでOKです。
> ArrayList
java.util.ArrayList です。
実行中に追加できて便利です。toArray()メソッド役に立たんけど(w
なんかレス一杯ついてるけど・・・いいや、書いちゃえ。
>>108 さん 名前つけました93です。
public Foo(int size) {
hoge = new double[size];
}
つまりこういうコンストラクタをFooで定義しておけばいいんですね。
>>110 さん
>hoge が static になってるからインスタンスいくつ作っても同じ物になります。
どうもです!じつはさっきからこの問題にぶち当たっていたのです。
おなじもんがたくさんできるので困っていたのです。staticは
クラス変数にはつけると本に書いてあったのですが、難しいですね。
わからんことだらけです。
toArray()は便利だよ、案外。 動的にString配列サイズを変更したい場合とか String[] array = (String[])arraylistObj.toArray( new String[0] );
>>109 その通りです。
つか、よく分かったもんだ。一を聞いて十を知る?
>>109 >ということは、もしFooにクラスメソッドをつくるときには
>staticというのをつけておかないと、クラス内のメソッドから
>hogeは呼び出せないということでしょうか?
staticにするか否か、は「そのクラスの全インスタンスで共有すべきもの」
かどうかで決める。「staticメソッドから使いたいから」staticにする、
っていうのは特に初心者のうちはしてはいけない。
下手すると全部staticになっちゃうよ。
>>112 そ・・・そか、しまった。toArray(Object[] a)を使うんだったのか。
イテレータ使って一個づつ取り出してキャストしてました俺。
>>113 さん どもです。
全部書くと多いので省いているのですが、Fooのなかにクラスメソッド
が2個あって、そこでstatic double [] hoge をつかっているのです(泣
だからstaticとると実はやばいのではと感じたのです。
質問がだんだんとできあがってきたのですが(すいません)、
クラスFooのFoo型の変数fooのクラス変数hoge
が配列のとき、fooを配列を使ってたくさん初期化したときに、
foo[i].hogeを初期化するにはどうすればいいのですか?さらに
mainでキーボードからの入力でdouble[] hoge = new double[];
のサイズを指定しています。ですので、
できれば、mainで任意のサイズの配列として初期化する方法を知り
たいです。
java.util.ArrayList を調べる。コンストラクタを新たに
Fooのなかで定義するといのはなんとなくわかりました。
それから
>>103 でかいた
foo[i].hoge = new double[3];って書き方は文法的にはどうなんでしょうか?
>>116 文法的には正しくとも、他のクラスに初期化の責任を持たせるのは、カプセル化
の観点からお勧めできない。
>>116 とりあえず文法だけを問題にすると、static変数(static double[] hoge;)なら
Foo.hoge = new double[size];
だけでいい。
全インスタンスに対してhogeは一つだけだから一回だけ作ればよろしい。
ところが
>>111 で、
>>hoge が static になってるからインスタンスいくつ作っても同じ物になります。
>どうもです!じつはさっきからこの問題にぶち当たっていたのです。
>おなじもんがたくさんできるので困っていたのです。staticは
と書いてるから、hogeはインスタンス毎に必要なんじゃなかろうか?
>foo[i].hoge = new double[3];って書き方は文法的にはどうなんでしょうか?
文法的には正しい。が、hogeがstaticなら意味がない。
>全部書くと多いので省いているのですが、Fooのなかにクラスメソッド
>が2個あって、そこでstatic double [] hoge をつかっているのです(泣
この2つのクラスメソッド(staticメソッド)が本当にstaticであるべきかどうか考えよ。
>>117 さん、どもです。
初期化という言葉の使い方わかってないので、へんなこと書いているかも
しれません。
mainでFoo fooの中身が決まるのはおかしいということでしょうか?
fooがアドレス帳みたいなデータをもっている変数だとしたら、
その中身はユーザーが入力するまで決まらないってのは変だという
ことでしょうか?
staticとったら、コンパイルとおるんですけど、実行できなく
なりました・・・・。
120 :
Java勉強中 :02/08/03 02:56
今、クラスライブラリで、IOパッケージのところを勉強してるんですが、 全くわかりません。。。 (例えば、なんでclose()メソッドを最後にしなくちゃいけないの? ってか、close()メソッドって何???そもそもストリームって何?などなど。) とにかくお手上げです。 そこでなんですが、IOパッケージについてわかりやすく説明してある 解説本、サイトを知っていたら教えていただけませんか? あ、ちなみに今使っている参考書は主に「独習Java」です。
>>118 どもです
static double [] hoge にはいっている数値の和と平均を計算する
メソッドなんですが、それはクラスメソッドだとダメなんでしょうか?
インスタンスごとに必要というのは、foo[i]ごとに、違うhoge[]が
必要ということでしょうか?はい、そうでし。質問がまともに
かけなくて本当にすいません。
皆さん、とろい漏れにいろいろアドバイスありがとうございます。
>>121 >static double [] hoge にはいっている数値の和と平均を計算する
>メソッドなんですが、それはクラスメソッドだとダメなんでしょうか?
ということは、2つのFooインスタンス
Foo foo1, foo2;
に対して、
foo1.sum() と foo2.sum() の結果は違う値にならないといけない(インスタンス毎の
double[] hogeを元に計算するのだから当然)から、
合計(sum())と平均(avareage())はクラスメソッドではなく、インスタンスメソッドで
なくてはいけない。
だから、合計と平均を求めるメソッドがstaticというのが間違い。
何度も言うけど、staticなメソッド、メンバ変数は全インスタンスで共有される。
変数なら一つだし、メソッドなら、どのインスタンスから呼び出しても同じ値を返す。
staticメソッドにするのなら、そのメソッドに引数に配列を渡すようにしたほうがいいのでは? class Foo { static double val; static double sum() { //valの和を返す } } ↓ class Foo { static double sum( double[] val ) { //valの和を返す } } それとも、Fooのオブジェクトの状態としてval(double配列)を持つのであれば class Foo { double val; Foo( double[] val ) { this.val = val; } double sum() { //valの和を返す } }
staticメソッドにすべきかの検討材料として、大雑把なものとして ・オブジェクトの状態を変更するか ・オブジェクトの状態により結果が異なるか というのがあるのではないでしょうか。
//合計を求める double sum = Foo.sum(foo.hoge); より //合計を求める double sum = foo.sum(); の方がカコイイなぁ
staticメソッドってめったに使わないものだけどね・・・
>>122 さん どもです
>合計(sum())と平均(avareage())はクラスメソッドではなく、インスタンスメソッドで
>なくてはいけない。
インスタンスメソッドというのはどういうものなんでしょうか?
JAVAではクラスではなくて、関数というのはMAINの外で定義できない
んでしょうか?
>だから、合計と平均を求めるメソッドがstaticというのが間違い。
>何度も言うけど、staticなメソッド、メンバ変数は全インスタンスで共有される。
>変数なら一つだし、メソッドなら、どのインスタンスから呼び出しても同じ値を返す。
そうなんでしか。クラスをつくるのって難しいですね。いろいろ細かく
教えてくれて感謝です。
>>123 さんのコメントも含めて、いったん出直した
方がよいことがわかってきました。
まずクラスを作ってから、もう一度で直してきますです。
>>123 さん これちょっとお借りしますです。
class Foo {
double val;
Foo( double[] val ) {
this.val = val;
}
double sum() {
//valの和を返す
}
}
みなさんいろいろありがとうございました。
夏休み期間は夜に大盛況だな。
>>125 さん、どもです。どうも書いているうちにカキコが増えてしまう
ようです。
>//合計を求める
>double sum = foo.sum();
MAIN内部で
fooが一個だったときは、これでうまくいっていたのでした。
foo[i]としだしたあたりから、すべてうまくいかなくなって、
ループで数を増やせばいいという見通しが甘いことに気づいたのでした。
ここで、それはstaticというのをhoge[]につけているからだと指摘され
いったん解決するのかと思ったのですが、もっと根本的な問題と
いうことがわかり、Fooのクラスの設計から出直してきます。
Fooのなかのクラスメソッドのほうにはstaticという冠詞はつけて
いないのですが、クラスでメソッドを定義するとデフォルトで
staticということになるんでしょうか?
あと漏れの持っている本はしょぼいのでstaticという言葉の
定義がきっちりかいてありません。もしよろしければ
誰か教えてください。
>>119 >mainでFoo fooの中身が決まるのはおかしい
この場合を例に取ると、Fooクラスを利用するためにはfoo[i].hoge = new double[3]
という操作をしないとfooは利用できないですよね。
つまり new Foo() が初期化処理として不完全であるということです。
不完全な状態が存在するのは、後日改造や流用することになったときなどに、
new double[3]するのを忘れているかもしれないという事態が予想できるわけです。
それを防ぐためには、Fooはnewしたら既に完全であることが望ましいわけです。
>>131 さん どもです。
なんとなくわかりました。だからコンストラクタをまた別に
用意しておく必要があるんですね。Fooに起こると予想される
事態はFooのなかで準備しておけということですね。
ますますクラスがぼろぼろなのがわかってきますた。
>>129 「クラスメソッド」って「staticメソッド」の意味で使ってるのかと思ってたよ・・・
staticメソッド=クラスメソッド=クラスに属する=全インスタンスで共有される
インスタンスメソッド=クラスのインスタンスに属する
でわかるかな。デフォルトはインスタンスメソッドです。
単に「メソッド」と言うときもインスタンスメソッドの事を指すことが多い。
変数は、何度も書いているけど、例えば100個のインスタンスを作ったときに、
すべてのインスタンスで共有したいのなら、static変数にするし、
そうでなく、別々に持ちたいのならインスタンス変数にする。
簡単に言って、最初のうちはstatic変数もstaticメソッドも使わなくていい。
134 :
デフォルトの名無しさん :02/08/03 03:39
次に買う図書のことで悩んでます。 Java初体験っていう本を読み終えて プログラミング言語Java第3版を買ったんだけど、内容が少し難しいです。 次に読むんだったら、これがオススメっていう本はありますか? それともこのままプログラミング言語Java第3版をがんばって 読んでいったほうがいいんですかね? ちなみにJava初体験が初めて読んだプログラミング書なので プログラミングの基本的な知識はあんまりありません。 アドバイスよろしくお願いします!
>>133 さん どうもです。やはり漏れも
>>134 さんのように
まともな本を買う必要があるようです。(言葉の使い方がおかしい。)
というか辞書みたいな本ないっすか?厚くても英語でもいいので、
字引みたいに引ける本がほしいです。
>staticメソッド=クラスメソッド=クラスに属する=全インスタンスで共有される
>インスタンスメソッド=クラスのインスタンスに属する
まだ、なんとなくしかわかりませんが、staticはしばらく書かないことにします。
136 :
デフォルトの名無しさん :02/08/03 03:58
Java言語プログラミングレッスン(上下)かな
137 :
デフォルトの名無しさん :02/08/03 04:02
その次はJavaプログラミングマスターコース(上下)
JavaWorldにもJava入門の連載があるな。 あれで初心者がわかるとは思えんが(藁
>>134 Java初体験のレベルの本を買え
# Java初体験なんて本知らない
145 :
デフォルトの名無しさん :02/08/03 15:59
2chではもうJAVA終わりぽなのに、大学では率先してJAVA技術者を養成しようとしています。 いったいどちらが正しいのでしょう。2chが間違っていたことは過去に数回もないので大学の教授陣が一部の雑誌に流されてるだけでないことを祈りマフ。
そう思うんならそんな大学さっさと辞めちまえよ
147 :
デフォルトの名無しさん :02/08/03 16:03
そこが素人と俺の違いです。
俺は自分の意思でJAVA以外に違う言語を数種ヤっているので辞めなくても大丈夫なのです。
ぷぷっ
>>146
必死だな(藁
ぷぷっはおまえだよ
「違う言語を数種ヤっている」なら「大学の教授陣が一部の雑誌に流されてるだけでない」ことがわかるだろう。 それがわからないのならはお前にはセンスも能力も無いということ。 >そこが素人と俺の違いです。 笑えるな。
151 :
デフォルトの名無しさん :02/08/03 16:24
>150 そうですか!流されてませんか!わかりました。いやー、馬鹿のふりをしてみるものですね。 こうも簡単に答えが引き出せました。どうもありがとうございました。
必死だな(藁藁
153 :
デフォルトの名無しさん :02/08/03 16:29
>>150 >「違う言語を数種ヤっている」なら「大学の教授陣が一部の雑誌に流されてるだけでない」ことがわかるだろう。
なぜそうなるの?
オレにはどうしてそういう結論が出てくるのかよくわからん。
>>151 > いやー、馬鹿のふりをしてみるものですね。
おまえは本当に馬鹿だから「ふり」をしなくても大丈夫だよ。
155 :
デフォルトの名無しさん :02/08/03 16:31
>153 おれもそうおもった。
2ch見て顔真っ青にしてカリキュラム書き換える大学・・・行きたくねぇ
大学生に釣られてる奴らって…
今回の大学生は軟弱だったな
サーブレットなんですが、コンパイルエラーで import文で パッケージ javax.servlet は存在しません。 パッケージ javax.servlet.http は存在しません。 とコンパイルエラーが発生します。 どうすれば正常にimportできるようになるか教えてください。
>>160 CLASSPATHが通っていないだけでは?
手もとに入門書やドキュメントがおありでしたら, そちらをお読みください.
EE入れてないとか
EE なんて言うか? EE 言いたかっただけとちがうか
ふつうはEEなんて書かずに E2って書くね。 E2-PROMのことだろ?
>>164 言わないと思う. 小一時間問い詰めちゃってくださいw
>>163 あくまで私の個人的意見だけど, 自分で調べてみましたか?
ここは初心者用のスレではあるけれど, だからって何でも答えて
くれるワケではないよ? どれだけ悩んで, 調べて, 自分で考えて
きたのかが伝わって来ないと, みんなキチンと答えてくれないと
思う. とりあえず, googleでCLASSPATHとservletで調べて
ごらん? もう腐るほどHITするはずだから.
Rinaタン(;´Д`)はぁはぁ
EE-JUMP
どうでもいい がみんないい 感じで改行し ようぜ
それは約 一名を指してない かw
175 :
デフォルトの名無しさん :02/08/04 01:42
質問します。 閏年かどうかを判定するプログラムを作りたいのですが、 数字が割り切れるかどうか(除算の余りが0となるかどうか)を 判定させるには、どんな方法があるのでしょうか?
1.4.1 になっても文字列の扱いには StringBuffer 使ったほうがいいのかなぁ。
sage進行でしたね、 ごめんなさい。
>>176 JDC Tipsによると場合によるみたいね
>>176 Stringの足し算くらいならそのままでいいんじゃなかったっけ、たしか
>>178 なるほど、助かります。頑張ってみます。
>>all
今度こそ、sageです。ごめんなさい、逝ってきます。
>>175 java.util.GregorianCalendar#isLeapYear(int year)
みんなどうもありがとう! さっそく本屋にでも行ってみます。
Stringの+演算子の使用は、 リテラル+リテラル→どうせコンパイル時に最適化されますので、見た目のよいように好きに書いてください。 リテラル+変数、変数+変数→コストはStringBuffer使うのと変わりませんので、好きに書いてください。 リテラル+変数+何か、変数+何か+何か→StringBuffer#append()使うほうが,コストが低くなります。 ただし、このたぐいのことをやるときは分離されたリテラルの管理が面倒になるでしょうから、性能に問題 なければいっそのことjava.text.MessageFormat#format()使ったほうがいいですよ。 めったにでないエラーのメッセージ組み立てなんかには、是非MessageFormatを。 ループ内で繰り返し+する→そんな貴方に是非StringBufferを。 バイトアレイストリームにライトして最後にStringするとかもあるけど、どっちが効率 いいんだろね。 という認識だったのですが、よいのでせうか?
>>184 良いんでないの?
俺的ボーダーラインはループ文内で += を使うかどうかが StringBuffer の
使いどころ。ループじゃなくても += が多発するなら StringBuffer#append() で
やる。
こんなときだけ C++ の << オペレータ使いたくなる。
きのう、Javaのチューニングの本を読みました。 そこには、「JNIコールにはコストがかかるので、注意して使いなさい」と書いてありました。 ところが、SCSLでDLしたJDKのコードを見る限り、JDKコアAPIのnativeメソッドのJNIコール には、ユーザが行うJNIコードと特に変わっているわけでもないように見えるのです。 これが重いとなると、えらいことになるとおもいますが、どうなっているんでしょうか?
>>185 > << オペレータ
StringBuffer.append("xx").append("xx").append("xx");
じゃ駄目なの?
>>187 たまに連続 append() よりも
buffer << "[" << i << "] " << msg;
みたく書きたくなる。
まぁ + 使えば append().appned()... と同じなんだけど。
>>188 コスト的には+連続はappend()連続よりはるかに重いので、一緒じゃないです。
+を一回は実行時には、「StringBuffer作ってappend()してtoString()して
います」んで・・・
スピードが気にならないならMessageFormat.format()使いましょう。
Cのsprintf()みたいなものです。こんな感じで使います。
String s = MessageFormat.format(
"{0}[{1}]{2}",
new Object[]{message1,message2,message3});
ココで作ってるObject[]インスタンスなどは、どうせ最近のJVMには 世代別GCが実装されてるので、すぐ消えてなくなってくれるでしょう から、気にしない~:)
>>189 どこの学生か知らんがそれは間違い。文字列の連続連結は最後に toString()
が行われる。以下の逆アセンブルコード (String s = s1 + s2 + s3;) を見れ
ば明白。
// 6 9:new #5 <Class StringBuffer>
// 7 12:dup
// 8 13:invokespecial #6 <Method void StringBuffer()>
// 9 16:aload_1
// 10 17:invokevirtual #7 <Method StringBuffer StringBuffer.append(String)>
// 11 20:aload_2
// 12 21:invokevirtual #7 <Method StringBuffer StringBuffer.append(String)>
// 13 24:aload_3
// 14 25:invokevirtual #7 <Method StringBuffer StringBuffer.append(String)>
// 15 28:invokevirtual #8 <Method String StringBuffer.toString()>
// 16 31:astore 4
スピードは StringBuffer どころか + 演算子に比べて、ヘヴィーなオーバーヘッド
がかかっている分 MessageFormat の方がはるかに遅い。さらに細かい文字列インス
タンス作りまくるので GC の回数を増やすことにもなる。今さらっと確認しても処理
時間 (+演算子:MessageFormat) = 421:3635 ミリ秒だったぞ。
ってか君、MessageFormat の選択基準間違ってる。これはフォーマットを外部定義
できるところに利点があって、決してパフォーマンスではない。
まぁ技術屋を目指すなら本ばかり読んでないで自分の手で実際にいろいろやって
みることだな。
テストコードは↓これ。最適化でコードが消されてないことは逆汗で確認済み。 String x = "hello, world"; long s = System.currentTimeMillis(); for(int i=0; i<100000; i++){ String y = "[" + i + "] " + x; } System.out.println(System.currentTimeMillis() - s); s = System.currentTimeMillis(); MessageFormat fmt = new MessageFormat("[{0}] {1}"); for(int i=0; i<100000; i++){ String y = fmt.format(new Object[]{new Integer(i), x}); } System.out.println(System.currentTimeMillis() - s);
あ、すまん。「スピードが気に入らない」じゃなくて「気にならない」か。 読み違えたよ。
194 :
超初心者 ◆m58/BWI. :02/08/04 11:16
独習JAVAで勉強を始めた初心者です。 その独習JAVAで質問があるんですが、 一つ目は175ページの練習問題の1なんですが このソースで、mainメソッドの中に obj.hello("Yes"); という一行を加えると、コンパイルエラーが出ます。 166ページの上のほうに「スーパークラスは、そのクラスの オブジェクトまたはそれから派生した任意のオブジェクトを 参照できます」とかいてあり、実際に A3 obj = new C3(); の部分はコンパイルが通ります。 しかし、objはC3のインスタンスであるのに、そのメソッドである void hello(String s)が呼び出せないのは、どういうことでしょうか? 何の問題もなく、 Hello from C3 Yes と表示されるものと思っていたので、 まずここの部分で悩んでいます。どなたかご教授願います。 長くなるので二つに分けます
二つ目ですが、187ページのソースなのですが、 「変数nameと変数ageには妥当な既定値がないので、 既定コンストラクタをほかのクラスから呼び出すことは できません。したがって、ほかのクラスから呼び出せないように コンストラクタをprivateで宣言する必要があります」とあるのですが、 ここで、このコンストラクタを中身を空でprivateで宣言する意味が 理解できません。これなら、このprivateのコンストラクタは 無くても同じだと思うのですが、なぜ宣言してあるのでしょうか? 他のクラスから呼び出せなくて中身が空なら、無くてもいいと 思うのですが、敢えて宣言してあるのはどんな意味があるのでしょうか? ここでもつまづいています。 以上、どなたか識者の方、ご教授お願いします。 すいません、sage進行だったんですか・・・・
>>195 あるクラスのコンストラクタが存在しないと
そのクラスのスーパークラスのコンストラクタが呼ばれます。
197 :
デフォルトの名無しさん :02/08/04 12:37
>>194 A3にhelloとやらのメソッドが無いんじゃないの?
実態がC3でも、インターフェースはA3なわけだからA3にもなくちゃダメだよ。
hello()がprivateだったりして
>>193 言ってる事は良かったが
>まぁ技術屋を目指すなら本ばかり読んでないで自分の手で実際にいろいろやって
>みることだな。
とまで書いてしまった以上,オチがついてしまったのがカコワルイ
まぁまぁ
201 :
初心者丸出し :02/08/04 16:45
JAVAを始めて1ヶ月の初心者です。 1 /** 2 * エラーメッセージを出力する 3 **/ 4 5 import java.util.*; 6 class cast{ 7 public static void main(String args[]){ 8 Vector err = new Vector(); 9 err.add("メッセージ1"); 10 err.add("メッセージ2"); 11 err.add("メッセージ3"); 12 err.add("メッセージ4"); 13 String errMsg[] = (String[]) err.toArray(); 14 for (int i=0 ; i < err.size() ; i++ ) { 15 System.out.println( errMsg[i] ); 16 } 17 } 18 } コンパイルは通るのですが、実行時に java.lang.ClassCastException: とでてしまいます。 自分で調べた結果 >13 String errMsg[] = (String[]) err.toArray(); スーパークラス(object型) → サブクラス(String型) 13行目でナローイングが発生しているために、エラーが発生しているのかと思っています。 質問の内容 ・エラーメッセージ1~4を表示させるには? ・「スーパークラス → サブクラス」はだめ(あぶない?)で、 「サブクラス → スーパークラス」は大丈夫なのはどうして? の以上2点です。どなたか、ご教授お願いします。
>13 String errMsg[] = (String[]) err.toArray(); こうしないで 15 System.out.println( errMsg[i] ); ここで(String)にキャストしながらイテレートすれば?
203 :
初心者丸出し :02/08/04 17:02
イテレート? 初めて聞いた単語です。。。 なにせ、始めて一ヶ月なもんで。まだまだ、勉強が足りませんね。 できれば、コードで教えていただけないでしょうか?
15 System.out.println((String)err[i] ); かね。実験してないけど。
205 :
初心者丸出し :02/08/04 17:10
それは、Vector型のerr配列を宣言しないとだめですか?
>>205 ごめん err.elementData()[i];か。
207 :
初心者丸出し :02/08/04 17:27
elementData()というメソッドは、Vectorクラスにはなかったです。 elementDataフィールドはありましたけど。 >15 System.out.println( (String) err.elementAt(i) ); と書いたら、なんとか表示されました^^ ありがとうございました! もう一点なのですが、 「スーパークラス → サブクラス」はだめ(あぶない変換?)で、 「サブクラス → スーパークラス」は大丈夫なのはどうしてなのでしょう?
>>207 確かにフィールドだ。申し訳ない。
StringクラスとVectorクラス、どっちもObjectから派生している。
だからといってStringクラスをObjectの変数に入れてVectorにキャストしたら・・・。
下の方はまぁ、ポリモルフィズムという話になってくるけどね。
説明できる自身はないので本でも読んでくださいな。
String errMsg[] = (String[])err.toArray(new String[0]); じゃないかな
java.util.Enumeration e = err.elements(); while (e.hasMoreElement()) System.out.println(e.nextElement());
>>207 「サブクラス ⊃ スーパークラス」だから
instanceofで確認すればいい
for(Iterator it = err.iterator(); it.hasNext(); ) System.out.println((String)it.next());
213 :
初心者丸出し :02/08/04 17:51
>209 >String errMsg[] = (String[])err.toArray(new String[0]); たしかに動きました。 toArray(Object[] a)だと、指定した配列型で返してくれるんですね。 むぅ、勉強不足でした。Javaが面白くなってきました^^
>>213 個人的には嫌いなコード。
型を渡す仕組みさえあればそんな汚いコード書くこともある撒いて。
List#toArray(java.lang.Class) みたいに書けると嬉しい、ということ?
>>215 が、筋じゃない?
型を伝えるために使いもしない変数作って渡すってスマートじゃない気がするけど。
217 :
初心者丸出し :02/08/04 18:02
>211 「サブクラス ⊃ スーパークラス」だとなぜ、いけないのでしょう? Javaの基本がわかっていないから、理解できないのかな? 勉強不足ですいません。。。 >214 そんな、汚いコードなんですか。。。 これからは、そういう判断力も身につけなければならないですね。 私は、見ただけではわかりません^^;
>Javaの基本がわかっていないから また保育園と化しているな
array = (String[])list.toArray((Object[])String[].class.newInstance());
玉砕しますた
>型を伝えるために使いもしない変数作って渡すってスマートじゃない気がするけど。
確かにね。その感覚で行くと
String errMsg[] = (String[])err.toArray(new String[err.size()]);
が多少マシかな。渡した配列が返ってくるから。
>>217 最初のうちは気にする必要は無い。
222 :
デフォルトの名無しさん :02/08/04 18:20
スミマセン質問です。 ある数値の16進表現の文字列を得たいのですが、どうやればいいでしょうか? C で言えば sprintf(res, "%x", src); みたいな処理です。 よろしくお願いします。
Integer#toHexString(int)かjava.text.DecimalFormatで逝っとけ
>>223 16進にするオーバーライドなんてありましたっけ?
×オーバーライド ○オーバーロード
>>214 型を渡す機構ならある。
java.lang.Class
渡す配列が足りないとき
a = (Object[])java.lang.reflect.Array.newInstance(
a.getClass().getComponentType(), size);
とかやってるから、無条件で
public Object[] toArray(java.lang.Class cls) {
Object[] a = (Object[])java.lang.reflect.Array.newInstance(
cls.getComponentType(), size);
System.arraycopy(elementData, 0, a, 0, size);
return a;
}
は可能だと思うんだが・・・なんか問題あるのか?
さぁ?
すまそ。214は別の人
>>228 214が言いたいのは、「問題なさそうなのにAPIとして用意されていない」のがおかしい、ということだろう。
自作でならいくらでも作れる。
>>231 いや、APIで用意されてないのはその実装では、なんか問題があるのか?
>>228 リフレクトってどうなのよ?
メタ言語って奴じゃないの?
>>232 あ、Class[]な配列を作りたいときに困るな。
あ、訂正。やっぱ問題ない
int s; int t; s-tを2乗したいときはどう書くんですか?
239 :
デフォルトの名無しさん :02/08/05 11:24
Threadもの作ったとき、コンストラクタでstart呼ぶのはどう思う? 美しいか、美しくないか?
>>239 いいんじゃない?
Mainでそのコンストラクタ読んだら先生にすごい顔されたよう・・・。
Main萎え
class Sample{ public void keisan(String args[]){ ここでいろいろやってファイルからloadの数を読込んだ double x[] =new double[load]: //こんな感じでメソッド内で宣言 ここから先でいろいろやってx[]に数値を入れてった } pubic void B(){ for(int a=0;a<load;a++){ System.out.println(x[a]); } } 適当につづく・・ ここでBのほうのメソッドにx[a]の配列を表示させたいんですがうまく引き渡しできません。 配列を別のメソッドでもそのまま使えるようにするにはどうすればいいでしょうか 初心者なのでうまくいかず困ってます。よろしくお願いします。
>>242 ごめん、コード略しすぎ。
やるなら変に略した元コードではなく、問題が発生する簡単なサンプル書けよ。
>>242 って言うかそもそも変数のスコープとか理解してない予感。
BASIC上がりか?
Swingコンポーネントプログラムを勉強しようと思って本を買ってきたのですが、サンプルプログラムがことごとく動きません。 インターネット上のSwingのサンプルプログラムもコピペしてみたのですが、こちらも動きません。 エラーメッセージはException in Thread"main" java.lang.NoClassDefFoundError となります。 助けてください!!
>246 >81
早速のレス感謝です。 昔クラスパスの設定?をしたので一応普通のJAVAのプログラムは動くのですが、Swingの本のプログラムが動きません。 これらのプログラムを動かすには別にまたクラスパス?の設定をするのですか?
>>191 > 以下の逆アセンブルコード (String s = s1 + s2 + s3;) を見れば明白。
こういうのもアセンブルコードなんだ?
>>249 かわいそうなコナンだからそんなに・・・・
>>246 javax.swing.*でなく
com.sun.swing.*になってる悪寒
自演厨
254 :
デフォルトの名無しさん :02/08/05 21:46
アプレットでのjavaについて学習・勉強できる本を買いたいと思っています。 が、大手の本屋などを探してもなかなか「丁寧に」解説してある本にめぐり合いません。 オフィスエム著の最新javaハンドブックはすごく分かりやすかったんですが、 アプレットに関して少ししか載っておらず、購入しませんでした。 アプレットに関する主にguiについてなどを細かく丁寧に解説されてる本など、 使っている方でオススメのものとかあれば教えてもらえませんでしょうか?
>>254 わがまま。1冊ですまなければ2冊買う。
それが嫌ならWebなりどっちも載っているわかりにくい本を死ぬ気で読み解け。
それができないならやめてしまえ。
>>254 JAVAパワフルテクニック大全集(既廃刊?)
257 :
デフォルトの名無しさん :02/08/05 22:12
>>257 金がないなら時間と技術でカバーしろと言っている。
>>242 >class Sample{
>public void keisan(String args[]){
これってmainって書かなくていいんでしょうか?
C++をちょっとやって挫折してからJAVAに移ったので、
mainがすべてクラスの定義の中で書けるってのが
どうもよくわかりません。全体でmainは一個だと
最初に刷り込まれたのが致命的。
mainメソッドのなかにクラスの定義を全部
書いていいのでしょうか?クラスを作成する
ときにmainが書けるのはどういうメリットが
あるんでしょうか?
>>259 >mainメソッドのなかにクラスの定義を全部
>書いていいのでしょうか?
C++でもこんな訳のわからんことできなかったと思うが・・・。
そのクラスのテストドライバが簡単に作れる。
個人的にはエントリポイントはあるクラスのコンストラクタとかの方がうれしかったけどね。
>>259 >mainメソッドのなかにクラスの定義を全部書いていいのでしょうか?
意味不明。メソッドの中で作ったクラスは外から見えんし。
もしかして、
「全部のクラス定義のなかにmainメソッドを書いていいのでしょうか?」か?
おおう、全文字使ってまともな文が(w
>メリット
テストドライバを本体に書き込めるのは・・・肥大化は上手くないな。
>「全部のクラス定義のなかにmainメソッドを書いていいのでしょうか?」か? そうそう、そうだよ、馬鹿なんだから許せよ。だから教えれ。
>mainがすべてクラスの定義の中で書けるってのが って自分で書いていたわ、だから 「全部のクラス定義のなかにmainメソッドを書いていいのでしょうか?」 これは正しい推論ではないかも。 やっぱり class hoge{ フィールド メソッド public static void main(String args[]) { ここには何をかくの?何も書かなくてもいいの? } } という質問です。これはおかしい?
>>262 問題ない
但し、実行するクラスのmainは呼ばれるけど
他のクラスのmainは明示的に呼ぶまで呼ばれない
265 :
デフォルトの名無しさん :02/08/06 02:58
public class Sample6 { public static void main(String args[]) { double root2, root3, big; // 変数を宣言する。 root2 = Math.sqrt(2); // 2の平方根を求める。 root3 = Math.sqrt(3); // 3の平方根を求める。 big = Math.max(root2, root3); // 大きい方の値を求める。 System.out.println(root2); // 2の平方根を表示する。 System.out.println(root3); // 3の平方根を表示する。 System.out.println(big); // 大きい方の値を表示する。 } } すいません、これがコンパイルエラーになってしまうんですけど、 どうしてでしょうか?ヽ(`Д´)ノウワァァン!!お願いします・・・鬱
すいません、ageてしまいました。 あと、出展は桑原信也著 JAVAではじめるプログラミングです。
>>265 三宅:「インポートしてない」
関口:「ファイル名がショボー」
どっち!?
268 :
デフォルトの名無しさん :02/08/06 03:23
Mathクラスはjava.lang.Mathだからインポートいらないよ。 ファイル名はちゃんと「Sample6」にした?
すいません、インポートって何ですか?
>>267 ファイル名は大丈夫だと思われます。
Sample6.java:16: \12288 は不正な文字です。 } ^ Sample6.java:16: ';' がありません。 } ^ Sample6.java:17: \12288 は不正な文字です。 } ^ Sample6.java:17: 'class' または 'interface' がありません。 } ^ エラー 4 個
↑こんな風になります。お願いします。
あっもしかしてどっかに全角スペース入ってない? コード内に全角スペースが入ってるとコンパイラが解釈できないんだよ。
あ、そうかもしれないです。 全角スペースが入ってるような気がしてきました。 もう一度初めからやり直します。 皆さんありがとうございました。逝ってきます。
_,,,,-―――- 、 -''" -‐ \ / _-‐  ̄;;;;;;;;; ヽ / _-''" ;;;;;;;;;;;;;;;;;;;,,,,,, l l l' :::::::::::::::::::::/ ̄ ヽ | l, ,.-''''''ヽ / } l | J / ヽl ノ ._...--、ヽ |_-‐l ノ `‐---‐'|_ /:::::::|:::} ヽ⌒ヽ| ヽ __ノ:::::::::::::::: > ノ:::::::::l ノ { ;;;;;;;;;;;;;;,. -―' ̄ |:: :: 「 ヽ- r' 'J ;;;;;;;;;;;;;;;;/ _|-'''''' ̄) ,..|-、_ ::::::::::{ r'  ̄)_,...-|`-、_ `-、_ ;;;;;;;;;;;__> |  ̄) 、_ `ー------/ |  ̄__)'''''''ヽ'''- 、___ノ`''' 、_ /\ _ノ :::::: ::::} r ヽ| ヽ / `--'''> `ー __..-' ''--''| | ヽ / / || | | ` _ /|. || | | ー、 /_,,,..| || r'''ヽ| l'、_ ''-、 _/ | ヽ ヽ-''| / ヽ_ '''- 、 | \ | { ヽ /、_ -― 、 | ヽ r-、| l '''-、 / ,..-, `ヽ | v 、__| } "''- ' ヽ、 ( `-'-′ / | | 、__ ヽ,
appletviewer AAA.htmlなら動くのですが java BBB だと例外なく、 Exception in Thread"main" java.lang.NoClassDefFoundError というエラーが出てしまいます。 意味もわからず,パスをいじっていたのが原因かとも思うのですが、そんなことってありますか?
>275 そんなことってあります
・・・打開策があればぜひ教えてください(泣) そもそもパスとクラスパスって別ものですか?
278 :
デフォルトの名無しさん :02/08/06 15:39
Javaアプレットで直接MySQLDBを検索するプログラムでエラーがでます。 Causedby: java.io.FileNotFoundException: E:\Java\org\gjt\mm\mysql\Driver.class (指定されたパスが見つかりません。) でE:\Javaはhtmlやclassのあるフォルダで、org\gjt\mm\mysql\Driver.classは、プログラムで Class.forName("org.gjt.mm.mysql.Driver");としています。 CLASSパスの設定は CLASSPATH=.;C:\MM.MySQL\mm.mysql-2.0.14\mm.mysql-2.0.14-bin.jar;C:\j2sdk1.4.0_01\lib\tools.jar となっているのですが、エラーの原因は何なんでしょう?
>>275 >昔クラスパスの設定?をしたので一応普通のJAVAのプログラムは動くのですが
と
>java BBB だと例外なく、
>Exception in Thread"main" java.lang.NoClassDefFoundError
>というエラーが出てしまいます。
は一見矛盾しているように読み取れます。
ちゃんと状況をまとめなおして書き込みする
ことをおすすめします。
#BBBはJAppletを継承してて、それをjava BBBで実行している
#ようなきもするけど、それならそう書いてください。
>そもそもパスとクラスパスって別ものですか?
別物です。
280 :
デフォルトの名無しさん :02/08/06 19:44
アプレットを作成中です。 JDK1.3.1を使っているのですが、IEのVMのバージョンは1.2という話を聞きました。 1.3.1でコンパイルしたアプレットはデフォルトの状態のIEでは 動かすことはできないのでしょうか? 試してみたのですが、表示されないのでそう思ったのですが・・・。 古ければ新しいものを自動的にダウンロードみたいなことはできるのでしょうか?
281 :
デフォルトの名無しさん :02/08/06 19:44
pdfのようなブラウザから見れるファイルをサーブレットから送って ブラウザ上に表示したいんですが下記のようなサーブレットソースでは ファイルを開くか保存するか、というダイアログが出てしまいます。 このダイアログを出さずに直接ブラウザに表示させるには どのようなレスポンスを作成すれば良いのでしょうか? とうか教えてください。 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("application/pdf"); response.setHeader("Content-Disposition", "attachment;filename=" + pdfファイル名); BufferedOutputStream writer = new BufferedOutputStream(response.getOutputStream()); // ファイル内容の書きこみ処理 }
>>280 Internet Explorer に標準で乗ってるのは 1.1.4 相当の JVM だ。
バイナリに互換性を持たせるなら javac -target 1.1 [クラス名] と
コンパイルしてやれば良い。しかし、プログラム内で 1.1 にないクラスや
メソッドを使用してるとアウト。
>>281 Content-Disposition ヘッダ付けてるところが余分。
>>282 ありがとうございます。1.1だったんですね。勘違いしてました。
1.3で追加されたようなものは使ってないのでこの方法でやってみたいと思います。
>>283 さっと目を通したんですが、ちょっとよくわかりませんでした。
暇の時にでもじっくり読んでみます。
>>282 即レスありがとうございました。
無事期待通りの動作をしました。
よかったよかった
超初心者です。 ほぼ、日本実業出版社の”ここからはじめるJAVA”どおりにやってんすけど、 コンパイルできません。 class Sample1 { public static void main(String args[]) { System.out.println("おはようございます"); } } どっかおかしいですか? どなたかお願いします。
>>287 コンパイルエラーメッセージを書くのが筋だと思うがね。
public class
多分 set CLASSPATH=%CLASSPATH%;. publicじゃなくても実行できるんだよ
>288 エラーは エラー:Sample1.javaを読み込めません。 エラー 1個 ってかんじです。 >289 えーっと、コマンドプロンプトにこうやって書けってことでしょうか? なんら状況は変わらないんですが。
質問です。 ここで聞いていいものやら・・・ JavaScriptのwindow.open()でWord文書とかを指定すると、 Word(アプリ)が起動して文書が表示されますが、それと同時に 何も表示されていない新規ブラウザも表示されてしまうんです。 この、空のブラウザを表示させない方法ってあるんでしょうか。 正直邪魔なんですけど。 よろしくお願いします・・・
>>290 パターンとしては、Sample1.javaじゃなくてsample1.javaとか
大文字小文字が間違っているとか、メモ帳使っててSample1.java.txt
にファイル名がなってたとかあるかな。dirって打ってリターンしてごらん。
>>290 ファイル名が間違ってないか、ディレクトリの指定を間違ってないか確認しる。
>>291 Javascriptはhtmlに埋め込む場合はWeb制作板へ。
>>294 そうですか、Web制作板ですね。
行ってみます。
ありがとうございました。
いや違うだろ。原因は Sample1.java.txt
>>292 dirって打ったら
Sample1.java.java ってなってました。
大文字小文字や、ディレクトリもあってるはずなんですが.....
ドライブCのボリュームラベルがありません。
ってでてることとか関係あるのかな....
ほんとシロートで申し訳ないです。
>>298 Sample1.java.javaじゃなくて、Sample1.javaね。
つーか、プログラムするならエクスプローラのフォルダ
オプションいじって拡張子表示されるようにする...
>>298 .javaは2つもいらない。つまりファイル名を間違えてたことになる。
そのまま実行したいなら
javac Sample1.java.java
と打て。
名前を変えたいなら
REN Sample1.java.java Sample1.java
って打て。
>278 E:\Javaにclassファイル置いちゃだめじゃないの? クラスパスが通っているとこの下に、パッケージの階層 つくってファイル置かないと。
効率よくメモリリークしていく様子を観察できるプログラムを書いてください。
>>302 Runtime rt = Runtime.getRuntime();
Vector v = new Vector();
while(true){
System.out.println(rt.freeMemory() + "/" + rt.totalMemory());
v.add(new byte[1024 * 1024];
}
>>303 コンパイルエラーでました
どうしてくれますか?
305 :
デフォルトの名無しさん :02/08/07 00:57
Windows2000 で Ant 1.5 を使おうと思っているのですが、 <property environment="env" /> を入れると、「16ビット MS-DOS サブシステム」というタイトルのメッセージボックス でエラーが出て、DOS 窓内では、property の行数の位置で NullPointerException になっているようです。 Ant の少し前のバージョンでは動かせたことあるのですが(全く同じものではないですが)、何かおかしいことしてますか?
ちなみに、property の行をコメントアウトすると一応通ります。
>>303 サンプルありがと。
だいたいやりたいことはこれだったので助かりました。
やっぱりVectorに溜め込むのが一番楽だね。
308 :
デフォルトの名無しさん :02/08/07 01:11
JBuilderや一太郎arkを起動したときに、Windowsだと C:\Documents and Settings\ユーザ名 の場所に、.arkや.jbuilder6といったディレクトリができて 設定ファイルが作成されています。たぶん、このディレクトリが"ホーム"といった判断をJVMが行っているんだと思うのですが、 どうやればこの"ホーム"の場所を取得することができるんでしょう? Linuxなどの場合は、どこに設定ファイルが保存されているんでしょうか?
>>308 System.getProperty("user.home")
うわぁ 環境変数を読んでいた俺はバカだった
System.getProperties().list(System.out);
>>309 getPropertiesとか使ってみたりしてたのに
すっかり見落としてました。
ありがとう。
JMSでPC間を繋ごうとしているのですがうまく行かず、エラーが出ます。 javax.naming.InvalidNameException: TopicConnectionFactory: [LDAP: error code 34 - invalid DN]; remaining name 'TopicConnectionFactory' ソースですが、JNDIのコネクションのところは下記のようになっています。 Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL,"ldap://localhost:389/dc=###.dc=jP"); InitialContext jndi =new InitialContext(env); topicConnectionFactory=(TopicConnectionFactory)jndi.lookup(JMS_FACTORY); JNDIのコネクションのところは同じ形で、属性を取得するプログラムをかいてみたところ うまくいったので、"ldap://localhost:389/dc=###.dc=jP"の部分が間違っている可能性はないと 思います。 JDK1.4.0、J2EE1.3.1、サーバーはJ2EEを使っています。エラーの原因がわかる方がいましたら宜しくお願いします。
2chの初心者スレで聞くことじゃないなぁ・・・と言ってみるテスト
316 :
デフォルトの名無しさん :02/08/07 21:17
HttpServletRequestWrapper とかって何のために存在するの? やたらとプログラマが HttpServletRequest や ~Response のラッパー作るから 標準に取り入れただけか?
やっぱり、今日もわけわからん。 はじめて1ヶ月になるが、 本なしでは、チンプンカンプン。 ああ、やっぱりアホだ。オレは。 でも、がんばるぞ。
Swing で質問です。 JMenuBar と JMenu がある Java アプリケーションで、 JMenuBar をクリックした時に現れる JMenu が、JMenuBar と離れて出て来ることがあります。 そのアプリケーションのサイズをマウスで変更すると、それ以後は JMenu と JMenuBar がくっついて表示されるようになるのですが、 これを始めからくっついて表示されるようにする方法はありますか? なお、上記の現象は JDK1.3 のみで発生し、JDK1.4 では発生しませんでした。
>>319 >JDK1.4 では発生しませんでした。
答えは出てるんじゃ?
321 :
デフォルトの名無しさん :02/08/08 03:02
JavaでMSNメッセンジャーみたいに、字と絵(絵文字?)を両方扱える テキストボックスかメモ帳みたいなアプリケーションは簡単に作成できますか?
>>321 あなたにとって簡単かどうかは誰にもわかりません。
>>321 できます、はい終わり。
次の方どうぞ~.
324 :
デフォルトの名無しさん :02/08/08 15:10
厨房な質問で誠に申し訳ないが……。 java.util.Dateからjava.sql.Dateに値をコピーするにはどーしたらいいのでしょうか? 要するに、SimpleDateFormat#parseの戻り値をjava.sql.Dateに格納したいんです。 考えて見ればキャストできなくてあたりまえなんだけど、さりとてコンバートできないと やっぱり困る。 多分、検索の仕方が悪いんだと思いますが、一言でよいのでアドバイスを(拝)
>>324 (゚∀゚) ひとつひとつ手でうつす! 丁寧にな
java.util.Date d = new java.util.Date(); java.sql.Date sqlDate = new java.sql.Date(d.getTime()); かな?
327 :
デフォルトの名無しさん :02/08/08 16:11
>>326 イケました。なるほど、getTime()ってこーゆーときに使うんですね。
アドバイスありがとうございました(拝)
328 :
デフォルトの名無しさん :02/08/08 16:32
アプレットを実行して、画像のパスを間違えてて画像のパスを直したり、 あるいはファイル名などを変えて正常に見られる状態で再コンパイルしたのに、 アプレットがそのパスが間違えてあるままだったりします。 IEで実行してるんですが、履歴とか一時ファイルを消去しても直りません。 こういう場合ってどうなされていますか?再起動ですか?
330 :
デフォルトの名無しさん :02/08/08 16:46
>>329 わわ!見れるようになりました!
ありがとうございます!^^
すいません パスの変更のほうではできたのですが パスは変更せず同じファイル名の画像を違うものと変更しアプレットを実行した場合では 変更前のアプレットと画像が同じでした。(IEを使い一時ファイルを消し履歴も消しました) IEが悪いのでしょうか?
332 :
デフォルトの名無しさん :02/08/08 17:48
ある文字を'\'に変換しようと思って s = s.replaceAll( "hoge", "\\" ); ってやったら実行時エラーなるんだけど・・・
>>332 その実行時エラー貼り付けないと誰もわからんよ。
予想1) java.lang.NullPointerException
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1 at java.lang.String.charAt(String.java:455) at java.util.regex.Matcher.appendReplacement(Matcher.java:532) at java.util.regex.Matcher.replaceAll(Matcher.java:636) at java.lang.String.replaceAll(String.java:1706) at a.main(a.java:6)
>>334 1なんて確保されてる以上の配列の要素読み書きしようとしてんじゃねぇぞごるぁ!
なんかしらんけど、落とせんぞ。ためせんぞ。
342 :
デフォルトの名無しさん :02/08/08 22:55
あ、あのですね、JAVAで作ったアプリケーションを友達のパソコンで 実行してもらおうと思ったら、JAVA2 SDKとかで環境を作成してもらわ ないとやっぱ無理なんですか?
jreをインストールさせろ
>>342 基本的にはそう。けど、ちょっと試してもらいたいとか
そういうときは、CD-Rで展開済みのJRE持っていけばインストール
作業なしであとくされなく実行できるよ。
>>342 JREを同梱して、友人にはJava環境であることを教えない。
起動はショートカットか.BAT経由。これ最強。
>>342 JAVA2SDKもインストールしてないような奴とは縁を切れ
348 :
デフォルトの名無しさん :02/08/09 00:35
最近、逆コンパイラのJadがリンク切れナンだけど。お前らミラー御存じないですか?
>>347 俺はJDKインストールを強要する友人と手を切るが。
正直な話、JDKインストールしろってのは、かなり無理があるよ。 JAVAのプログラムを実行しろって時点で、既に無理があるんだから。
素人はJREのインストールだけで十分でしょ。
JDK 1.1 で動くように作って jview.exe を使う。 業務の本番環境でちょっと Java のツールを動かしたい時、JDK の インストールなしにフロッピー入れるだけで実行させたいときは これでやる。
353 :
デフォルトの名無しさん :02/08/09 05:10
Javaの1.2で、外部ファイルの内容を(改行なども生かしたままで)Stingに落とすにはどーしたらいいのでしょう? 単にreadLineで読み取ったものを+"\n"してString(またはStringBuffer)に足してきゃいいだけ? ……っと、何がやりたいかというと、外部ファイルをテンプレートとして、定型のE-MailをサーバサイドJavaから 送信したいんです。「文字列中の特定の文字列を置換する」というメソッドはもう作ってあるので、あとは上記の 事が出来れば、そのまんまJavaMailに送ってやればOKかな、と思いまして…… 「こんな方法もあるぞゴルァ」というご意見も含めまして、アドバイスを頂ければ幸いです。よろしくお願いします(拝)
>>353 それでも良いし↓でも良い。メール送信なら改行コードを変更できるから
>>353 のやりかたの方が良いかもな。
Reader in = new FileReader("hoge.txt");
char[] buf = new char[1024];
StringBuffer buffer = new StringBuffer();
while(true){
int len = in.read(buf);
if(len < 0) break;
buffer.append(new String(buf, 0, len));
}
in.close();
String content = buffer.toString();
>>354 んと、そのやり方では、エンコードはどうなるのでしょう?
文字列置換の関係で、一回はUnicodeにしなきゃいけないんですよ。
それが心配でreadLine使うかな、と思ったのですが、何かreadLineはCR+LFの
LFだけとっぱらうとかで、単純に+"\n"ってやってくっつけて大丈夫なのかな、と思いまして……。
……もしかして、charで読んできた時点でエンコードしてるのかな? ならこちらのほうが
余計な心配しなくていいかもしれませんね。
>>355 エンコードとは文字コードのことか? ファイルの内容はシステムデフォルトの
文字コードとして Unicode に変換される。Windows なら MS932 だし
Unix なら euc-jp。
357 :
デフォルトの名無しさん :02/08/09 10:54
JBuilder 6 Personalを入れたら、JAVACで今までつかっていたSDK1.4が 使えなくなりますた。JBuilderと一緒にインストールされる1.3を使うように レジストリを書き換えられてしまつたようです。 Win厨房の漏れにはどうしようもありません。JBuilderをアンインストール したら、レジストリも元に戻るんでしょうか? 楽して生きようと考えたのが誤りでした、反省します。エディタとコマンド プロンプトに戻りたいのです。どなたか助けてください。お願いします。
ここ最近JAVAを勉強し始めて、基礎の基礎くらいは 理解したつもりでいる初心者です。 が、どうもJAVAでコーディングをしていても、 使い慣れたC言語の感覚そのままに書いていて JAVAというかオブジェクト指向の美味しさみたいなものを 全く味わえていない気がします。 どういった単位を一つのクラスとして構築すればいいとか、 継承などが絡んでくる時などは、どの変数はどのクラスに宣言すべきだとか、 そういうJAVAのオブジェクト指向言語としての美味しさのようなものが 学べるお奨めの本って何か無いでしょうか? 特にオブジェクト指向的なクラスの構築方法とかがわかりません。 一応C言語ならば中級くらいまではマスターしているつもりです。 なんか今の状態ではちっともJAVAを使っている気がしないので どうかよろしくお願いします。
>>358 Javaとオブジェクト指向の本なんて腐るほど出ているが。
書店に4時間くらい滞在してわかりやすいものを選べばいい。
>357 自分ではやってないけどJDK設定でなんとかなるんじゃないの?
>>357 JBuliderアンインストールしてだめならJDKインストールし直せば?
>>357 JBuilderPersonalはJDKを切り替える機能が使えないようなのです。
>>361 ふみゅ。そうでしね。
JBuilderをアンインストールしますた。直りました。 でもIDEって一回使うとなかなか手放すのが惜しいです。 なんとかして1.3と1.4を両方使いたかったのですが。やはり 二兎追うものはですね。 JAVAでお勧めのIDEってなんでしょうか?
>>357 環境変数Pathの*先頭*に使いたいjava.exeのディレクトリのパスを追加すればよろし。
2000/XPなら[マイコンピュータのプロパティ]-[詳細]-[環境変数]-[環境変数]-[システム環境変数]-[Path]
Win9xならautoexec.batに set PATH=C:\j2sdk1.4.1_01\bin;%PATH%
つかJBuilderなりEclipseなり他のツールなり使えば
そんな無駄な苦労はしなくていいぞ
>>364 環境変数では、C:\j2sdk1.4.1_01\binを指定していますた。
でもjavac使うと、レジストリで1.3を使うように指定されています
とかでたんです。(JBuilder6Personal導入以降)
*先頭*というのがポイントなんでせうか?Eclipse?今度はそれを
入れてみようかな。
>*先頭*というのがポイントなんでせうか? だからそう書いてるのに・・・ 一番のお勧めはJBuilderだな。他にもいろいろあるけど
>>366 金出さないのは勝手だがレス無視すんなよ・・・。
>>369 夏厨ってちょっと叩かれるとすぐ正体あらわすよな。
まぁ、それがおもしろいんだが。
371 :
デフォルトの名無しさん :02/08/09 11:41
ど初心者ですけど、[Relaxer]って、使い心地どうですか? 最近Javaソースなどを使うことになって、四苦八苦ですけど、 スキーマ・コンパイラーらしいんですけど。
レスしてもらってうれしかったんだね。よかったね。
初心者スレで初心者煽るのはヤメレ
ここって質問しているのに、反応ないです。
>>374 そうそう。Javaについてのスレでは?煽ってる場合かと。
禿同。
>>378 あ、JavaMailっての読み逃してました。ごめん、生でSMTPするのかと思った。
確かにCRLFOutputStream.write()のソース読むと、\r\nと\nは気にしなくても
いいようになってるね。
>JBuilderPersonalはJDKを切り替える機能が使えないようなのです。 切り替えは出来ないが1.4を選ぶことは出来る。同時に使えないだけ。
後にこのスレを見るであろう初心者に情報を提供しただけだ
383 :
デフォルトの名無しさん :02/08/09 19:04
ひらがなはUnicodeで\u3040~\u309fの範囲らしいですが 漢字はどうなんでしょう?
ちょっと聞きたいんですがC言語で#ifにあたる命令ってJAVAにもあるんですか?
386 :
デフォルトの名無しさん :02/08/09 19:17
>383 英語わかるません。
>>385 プリプロなんぞ邪道です。
そのためのrun anywhereですから。
388 :
デフォルトの名無しさん :02/08/09 19:18
>385 どうしても#ifが使いたいならコンパイル前にCプリプロセッサを通すとか。
390 :
デフォルトの名無しさん :02/08/09 20:45
Tomcatで使っていたサーブレットのプログラムをj2eeで使いたいのですが、 j2eeのどこに置けば良いのでしょうか? ちなみに\jakarta-tomcat-3.2.4\webapps\testにhtmlファイルを\jakarta-tomcat-3.2.4 \webapps\test\WEB-INF\classesにclassファイルを置いていました。
Jakarta Taglib から SQL タグって抜けたんけ? どこっちまった?
>>391 j2eeのexamplesがどこにあるか見たらわからんかな?
>>356 >>376 >>378 >>379 アドバイスありがとうございました。とりあえず
>>356 様の方法で実装してみましたが……化けました(T_T)
ちなみにMail出す前にout#printlnして確認したので、少なくともJavaMailのせいではありません。
つーこって、今度はreadLineで試して見ます。
>>376 様
では、readLine + "\n"でOKということですね? ではその方法で実装して見ます。
>>377 ……英語よめまっしぇん(T_T)
>>378 様
一身上の都合によりJRunなのです(^^;
ついでで申し訳ありませんが、もう一つ質問を(拝) JavaMailで、From:やTo:に日本語を含ませるのはどうすればいいのでしょう?
>>394 自己Resです。
……readLineでもダメでした(T_T) debian+JRun3.0の環境でデフォルトのエンコーディングっつーことなので、
テンプレートに使うファイルがEUCになってるかどうかは確認しました。viでちゃんと表示できてます。
……エンコーディング、明示的に指定する方法があるんでしょうか? getBytesしないとダメ?(^^;
>……エンコーディング、明示的に指定する方法があるんでしょうか? APIリファレンス嫁よ。FileReaderのところに書いてある。 もう何回書いたかわからんようなコードだな。 エンコーディングはShift_JISなりeuc-jpなりWindows-31JなりJISAutoDetect(非奨励)なり試してみれ String encoding = "euc-jp"; String filename = "template.txt"; StringBuffer body = new StringBuffer(); BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(filename), encoding)); try { String line; while ((line = in.readLine()) != null) { body.append(line); body.append("\n"); } } finally { in.close(); } System.out.println(body.toString()); しかし、Debianでeuc-jpのファイルならFileReaderでも読めるはずだから なにか別の原因かも。
>一身上の都合によりJRunなのです(^^; 競合するものじゃないだろ。Velocityは汎用のテンプレートエンジン >viでちゃんと表示できてます。 viはShift_JISも表示できるんでは? >ちなみにMail出す前にout#printlnして確認したので out#printlnってなんだ?System.out.println()か? PrintWriter out = response.getWriter()か? 読み込みは成功してても表示でばけてるってことはないか?
399 :
デフォルトの名無しさん :02/08/10 13:12
VisualAge for JavaのEntry版を使いたいのですが、 ユーザ登録ってどうやるんですか?
400getとか、きらい
でも、おめ
>>397 出来ました! ありがとうございます(拝) euc-jpでOKっす。
> APIリファレンス嫁よ。FileReaderのところに書いてある。
……メクラでごめんなさい。何故か見つからなかったんだよぉ(T_T)
>>398 >>一身上の都合によりJRunなのです(^^;
>競合するものじゃないだろ。Velocityは汎用のテンプレートエンジン
了解。ちょっと腰を落ち着けて読んでみますね。
>>viでちゃんと表示できてます。
>viはShift_JISも表示できるんでは?
viってそんなに頭よかったの? ……とか言ったら怒られそうだな(^^;
> out#printlnってなんだ?System.out.println()か?
……JSPっす(^^;
どうも、「モジバケです助けて!」と叫ぶ連中は、「対症療法」と、問題の根本理由 を結びつける作業を自前では行わない、とてもプロ向きではない(リーマンにはむ いてるかもね)性格の持ち主が多いような気がするなあ・・・ 貴方と、貴方の会社の将来が心配です。エンコーディングのはなしを理解していない 人間の集まりに、Webあぷり開発はムリですよ。
そんな ご大層なシロモノかい…
>>403 厨房でスマソ(拝) 確かに「よくわかっていない」部分はある。特にJSPは
「いつ・どこで・何が・どのエンコーディングか」を把握するのが、ちょっと
わかりずらい部分がありますよね。
……特に、半角カナとか入ってきたときとか(^^;
ファイルに書き出して、fileコマンドで調べるとか。
407 :
デフォルトの名無しさん :02/08/10 18:33
例外発生時などに、その例外が発生したソース上の行番号が表示されますが。 その、行番号のみを取得する方法ってどうすればよいのでしょう? 自分で書いたソースに System.out.println( ○○○ ); と書くと、この記述をした行番号が表示されるようにしてみたいのですが。 APIのソースを追いかけても行き詰まってしまって、
誰か漢字の範囲教えてください。日本語で。
>>407 自作するのは面倒なので、IDE使いなさい。
>>407 無理。スタックトレースから取れると思われがちだが、スタックトレース
のフォーマット規定なんてないし。
1.4 からなら StackTraceElement#getLineNumber() が使えるけど。
412 :
デフォルトの名無しさん :02/08/10 21:02
教えてください。 Canvasクラスを継承して、描画のちらつきをなくすためにダブルバッファを使用しようとして コンストラクタで Image offScreen = createImage(100,100); Graphics offGraphics = offScreen.getGraphics(); とすると、「offScreen == nullだからgetGraphics()できない」とエラーを返してきます。 これをpaint()メソッド中でやるとうまくいきます。 まさかとは思いますが Canvas.createImage()はコンストラクタでは使用できないのでしょうか?
そういうこと
>>412 ダブルバッファリング自前で実装してんの?新しいバージョンの
Swingつかえばデフォルトでダブルバッファリングなんだが・・・・
415 :
デフォルトの名無しさん :02/08/10 21:30
>>414 新しいバージョンのSwing?
JDK1.4を使ってはいますがCanvasクラスで描画させようとしています(ゲームを作っているので)
新しいSwingではCanvasではないダブルバッファリング付きクラスがあるのでしょうか?(Canvasではダブルバッファリングしないようですね)
>>413 その理由についてご存知ですか?
なぜできないのか知りたいのですが・・
416 :
デフォルトの名無しさん :02/08/10 21:39
スレ違いかもしれませんが、どなたかワケを教えて下さい。 MIDPなんですけど、↓何でDisplayオブジェクトの参照を 格納しなくていいんでしょうか?ガーベジコレクタの回収対象にならないワケは? Display.getDisplay(this).setCurrent(new DrawCanvas()) ;
そもそもDisplayのインスタンスを自前で生成したっけか?
420 :
デフォルトの名無しさん :02/08/10 21:57
421 :
デフォルトの名無しさん :02/08/10 21:58
>>418 Factoryパターンの意味が分からん初心者で恐縮です...。
↑で言いたかったのは、Display#getDisplay()で返されるDisplayオブジェクト
の参照を、変数に格納しておかないとDisplayオブジェクトが
ガーベジコレクタに回収されてしまうのではないか、って事です。
なんか、的を得ていない質問のようで...、恥ずかしいっす(笑)。
>>421 Display#getDisplay()の中で誰かがつかんでればGCされることはないかと。
Display.getDisplay(this).setCurrent(new DrawCanvas()) ;
こうした瞬間から呼び出し側は引数のオブジェクトの管理を放棄しているわけで。
423 :
デフォルトの名無しさん :02/08/10 22:04
>>419 生成してませんね。
ありがとうございます!
単に、setCurrent()を呼ぶために、参照を得ていただけですね。
手数も掛からんつまらない質問で、ゴメンなさい。
でも、気が付かせて貰えて感謝してまっす!
424 :
デフォルトの名無しさん :02/08/10 22:09
>>422 誤爆してすいません。
>>423 > Display#getDisplay()の中で誰かがつかんでればGCされることはないかと。
なるほど、そういうことか。
重ね重ね、サンキューです。
>>415 >>417 JPanel でもなんでも JComponent のサブクラスなコンポーネントで
update(Graphics g) をオーバーライドして、そこで描画すれば
すでにダブルバッファリングされてるはず。
Canvasとかは独自のGUIコンポーネントを自作するためのもの。
…と、今の今まで思っていた漏れの理解って間違ってる?
ちなみにテンプレートなイメージが欲しい場合、BufferedImage作って
描画しておいてコピーして使ってる。
あれ?こないだ作ったソース見たら、オーバーライドすんのは paint(Graphics g) ダタよ...
>>415 swingならjavax.swing.JComponentを使って
paintComponent内で描画すれ
>>427 APIソース見てみたら、そっちの方が正しそうだ・・・
先頭で super.paintComponent(g) とかやってから、好き放題すればいいのか?
ドキュメント読んだ方が早いよ
>>429 javax.swing.JComponent#paint のAPIヘルプには
"Subclasses can just override this method, as always."
「サブクラスは、通常通りにこのメソッドをオーバーライドできます。」
とかいてあるが、javax.swing.JComponent#paint のソースを見ると
実際、コンテナとしてコンポーネントが乗っかってる場合のコード(?)とか
色々色々とやらかしてるっぽいから paintComponent(g) をオーバーライド
した方が良いような気がする。
paintComponent(g) もUI変更時(らしき)のコードが書かれてるから、頭で
実行してやったほうが、なんか良さそう。
というわけで、ソースも見たほうが良いかもしれないという罠。
とはいえ初心者はそこまですると知恵熱が出てしまうからヤメトケ。
もう初心者じゃないと感じたなら、読んで損は無い。
しかしJComponentなんて一種のアダプタだと思ってたけど、なんでこんなに
色々とやってるんだ?
>>430 基底クラスに、ついでにサブクラスでしそうなことをデフォルトで実装しておく
というのは、よくやると思うが・・・
1.JPanelのサブクラスを作成し、Swingのデフォルトダブルバッファリングプロ パティをOFFにしておく。 2.BufferedImageなどのインスタンスを利用してGraphicsインスタンスを作成し インスタンスフィールドに参照もたせておいて、バックグラウンド描画領域と しておく。(JDK1.4でVolatileImageとかはどうなんだろね。使ったことねえ のでしらんが、VRAMを利用できるんだっけ?) 3.paintComponent(Graphics)をオーバーライドし、バックグラウンド描画領域 に描画して、メソッドの最後で引数Graphicsにコピーする。 普通はこうしとけばいいんじゃないかね。 高速再描画の為には、今までどおりの「再描画は再描画が必要な部分のみ 行う」作戦が有効っす。1600×1280とかでJavaで毎回全画面再描画なんか したひにゃ、えらいことになる環境がいっぱいあるだよ~。
>>431 ダテ、他から操作するメソッドではなく、Swingが呼び出すイベント処理だもの。
ならばデフォルト処理は別に用意して、そこから「通常はこちらをオーバーライド
してください」としてpaint()を用意するのがスジじゃん。
java.awt.Component#printなんかは何もしてないんだし。(当たり前だが)
自動的に入れ子に対応すべきとか思ったりする。
もしくは、スーパークラスの同メソッドを呼び出してくださいとか書いてほしい。
ちと嫌なのは、スーパークラスのデフォルトコンストラクタは自動的に呼ばれる
のに、スーパークラスのメソッドは自動的に呼ばれない事、とか言ってみるテスト。
書き込んでから変な文だと思った・・・ >ならばデフォルト処理は別に用意して、そこから「通常はこちらをオーバーライド >してください」としてpaint()を用意するのがスジじゃん。 ならばデフォルト処理は別に用意して、そこから呼ばれるpaint()を用意するのが スジじゃん。 んでpaintは「通常はこちらをオーバーライド してください」としておく。
435 :
デフォルトの名無しさん :02/08/11 01:53
これからjavaを覚えようと思うのですが JDK1.2対応の参考書でJDK1.4を勉強しても問題ありませんか?
問題ないと思われ.
でもどうせならSDK 1.4に対応した入門書がいいね. いろんな機能が
増えてるから,
>>435 のレベルが上がってくれば新規能を使いたくなると思うし.
1.4 の目玉はかねてからの懸案だったアサーションの追加だと思うがどうか?
1.4の目玉はXML関連パッケージの標準搭載だと思うけど
1.4の目玉は正規表現ライブラリ標準搭載に1票。String#replaceAll()萌え
1.4の一番の目玉はNIOだろ!どうみても! ノンブロッキングI/Oとメモリマップドファイル~! これが使えなかったせいで、実行時にバカな真似をしているサーバー サイドフレームワークとやら(実行時に数百スレッド平気で起動した り、バッファ設計がとんでもなかったり)がはいて捨てるほどある。 全部駆逐をめぜせ!
>>437 初期のJavaにはあったんだよね。何で廃止してたんだろね。
>>438-439 それはJDKにバンドルされていなかっただけで、いままででも
方法はあったでしょ。
「標準搭載」にこそ意味がある。何も考えずに使えるのはやっぱり大きい
>>441 初期のJava...Oakの仕様にあっただけじゃん。ペーパーウェア。
今までまるきし不可能だったことが可能になった。これはでかい。
444 :
すいません :02/08/11 04:52
String s = "てすと"; この s を標準出力でEUC_JPにしたいのですが(もちろん化ける)どうすればいいのでしょう? またその逆(sがEUC_JP)を標準出力でSJISにするには?
System.out.write(s.getBytes("euc-jp"));
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out, "euc-jp"))); out.println("あいうえお"); out.flush(); こっちの方がいいかな
447 :
デフォルトの名無しさん :02/08/11 05:54
>>445-446 ありがとうございます。
できました。
ところで㍼㍽㍻㍾㈱①などはSJISからEUC-JPにして
ファイルに書き込むと化けるのは仕様ですか?
機種依存文字だからだろ.
449 :
デフォルトの名無しさん :02/08/11 14:45
イベントを起こさずにマウスポインタの座標を知る方法があれば教えてください
無理
イベントで取得した座標をメンバ変数に保存すれば?
???
>>452 理解できないなら質問しに来なきゃいいのに。
454 :
デフォルトの名無しさん :02/08/11 16:11
???
455 :
デフォルトの名無しさん :02/08/11 16:12
一定時間の間隔で座標をとりたいんです。 では、イベントを一定間隔で起こす方法はありますか?
何のイベント?
457 :
デフォルトの名無しさん :02/08/11 16:16
Java厨馬鹿ばっかり
とスキルなし厨がほざいております。
MouseMove (だっけ?)発生してなければ
最後の値使えばよいだけのような…
って
>>451 が言ってるのと同じか。
質問者は説明が足りないけど アプリ上に限らずポインタの位置を追いたいんじゃないの?
Java使えねーな。
>>463 その作業にJavaを使おうとしたあなたが愚かなだけですよ。
金槌打つのにバナナを選択するくらいにな。
465 :
デフォルトの名無しさん :02/08/11 18:23
FTPでClientとセッションを作ってStatusをゲットしています。 レスポンスを見るのに dcis = new BufferedReader(new InputStreamReader(csock.getInputStream())); とリードバッファを作成しているのですが・・・・長時間使っていると ダメなんです。 markとresetを使ってみたのですが、使い方がわるいのかマーク位置まで戻るので すがBufferの中身は昔バッファされたものです。 BufferedReaderにバッファされた内容を全部クリアするにはどうしたら良いので しょうか?
>長時間使っているとダメなんです。 >Bufferの中身は昔バッファされたものです。 ??? >BufferedReaderにバッファされた内容を >全部クリアするにはどうしたら良いのでしょうか? 無理だと思うけど。 リフレクション使えば出来るかも? でもまぁ、リフレクション使うぐらいだったら バッファクリアできる BufferedReader 自作する方が… でも、BufferedReader のバッファクリアできると何が楽しいのか良くわからん。
467 :
0.5秒ごとにマウスの座標を描画 :02/08/11 19:35
import java.text.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MouseMovedDemo1 extends JFrame implements MouseMotionListener, ActionListener { private int px, py; //マウスのxy座標を保持する変数 private Timer timer; //タイマー private DateFormat df = new SimpleDateFormat("kk:mm:ss.SSS"); //時刻表示用 public static void main(String[] args) { JFrame f=new MouseMovedDemo1(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(640, 480); f.setVisible(true); } public MouseMovedDemo1() { super(); addMouseMotionListener(this); timer = new Timer(500, this); timer.start(); } public void paint(Graphics g) { g.clearRect(0, 0, getWidth(), getHeight()); g.drawString("(x,y)=(" + this.px + "," + this.py + ")", 50, 50); g.drawString("update: " + df.format(new java.util.Date()), 50, 100); g.setColor(Color.RED); g.fillArc(px, py, 20, 20, 0, 360); } public void mouseDragged(MouseEvent me){} public void mouseMoved(MouseEvent me){ px = me.getX(); py = me.getY(); } public void actionPerformed(ActionEvent e) { repaint(); } }
>>465 ストリームの扱いに何か勘違いがないか?
ストリームバッファ、クリアしてどうすんのよ。
import java.awt.*; import java.applet.*; import java.awt.event.*; public class xxx extends Applet implements ActionListener{ Button b=new Button("押してちょ"); String s; Image img; public void init(){ s=getParameter("image"); add(b); b.addActionListener(this); } public void paint(Graphics g){ img=getImage(getDocumentBase(),s); } public void actionPerformed(ActionEvent e){ if(e.getSource()==b) g.drawImage(img,40,40,this); } }
上のソースでボタンおしたら画像表示するようにactionPerformedメソッドでどーやって 画像表示のdrawImage使うの?2ちゃんがどこまで約に立つかも検証してみたいでちゅ
>約に立つ
おまいら世の中の約煮立つんでつか
>>470 とおりません!!でも理由はわかります。g.drawImageのgをpaintクラスじゃないactionPerformedから
参照してるからです。なんとかこの書式をくすさずできませんか?
っていうか473は偽者!! 俺は470と474と475だYO
>>473 ボケ!!おまいが俺を装って挑発するから誰もレスしてくれんだろ!
逝ってまえ
>>469 g.drawImage と getImage の使いどころが逆なだけ。
public void paint(Graphics g){
//img=getImage(getDocumentBase(),s);
super.paint(g);
if (img!=null) g.drawImage(img,40,40,this);
}
public void actionPerformed(ActionEvent e){
//if(e.getSource()==b) g.drawImage(img,40,40,this);
if(e.getSource()==b) {
img = getImage(getDocumentBase(),s);
repaint();
}
}
あ、Image img = null; と、初期化も念のため入れてた。 あとは super.paint(g); も、念のため。 repaint(); は再描画させないと表示されないから。
482 :
デフォルトの名無しさん :02/08/11 22:34
どうも
>>481 どこ?
部分コピーなんで張り足りないやもしれんし。
例外とかエラーとか張ってくれ。
は・・・もしや
>>479 で追加した初期化の一文を入れなくては
paintでこけるとか。
>>483 エラー無しでコンパイルできましたよ!
481は俺の偽者なんでシカトってことでお願いします。
文字列クラスにクラス名を格納しておいて、 インスタンス変数をその文字列クラスの中身にキャストするってことはできますか?
>>486 例えば ClassB extends ClassA で
ClassA a = new ClassB();
String classname = "ClassB";
ClassB b = (classname)a;
とかって やりたいとか?
俺は無理だと思うけど…
頑張れば出来るのかな?
490 :
デフォルトの名無しさん :02/08/12 00:22
A class is an object in ueeeeen and what.
491 :
デフォルトの名無しさん :02/08/12 00:25
493 :
デフォルトの名無しさん :02/08/12 00:41
なぜ方法はオブジェクトを作らずに呼ばれますか。
>>493 methodまで訳したか。さっさと出てけ、外国人。
495 :
デフォルトの名無しさん :02/08/12 00:44
>>494 あなたの考察に感謝します。知らせてください。
496 :
デフォルトの名無しさん :02/08/12 05:03
>>467 さん
遅れましたが、ありがとうございました。
>>486 無理
そういうことをする必要がある時はインタフェースを利用しよう
498 :
デフォルトの名無しさん :02/08/12 09:13
togetherをダウソしようと思ったのですがざっと ホームページみてもダウンロードの仕方の勝手が 今一つかめませんでした。 control center 6は落とせたのですがそれから どうすればいいか分りません。学生のただバージョンが あるとtogether comunity forumで検索して 分ったのですがダウンロード先が分りません… どなたかお分かりの方いらしたらよろしくお願い致します。
499 :
デフォルトの名無しさん :02/08/12 09:41
javaで#ifdefや#define使いたいんだけど、Cコンパイラのプリプロセッサなんて 使いたくないッス。 いい方法ないっすか?
Java用のプリプロセッサ使うとか。 っつーか #ifdef はともかくとして #define 使いたいか?
501 :
デフォルトの名無しさん :02/08/12 10:31
>>500 #define 使いたいね。
というかJava用のプリプロセッサってなんだ?
ひょっとして作者の宣伝?
JavaAppletでランキング付のゲームをたまに見かけますが ファイルの書き込みができないのに どうやって実装しているのでしょうか?
JavaAppletについて質問します。 Frameを拡張した「拡張Frame」クラスとButtonを拡張した「拡張Button」クラスがあります。 拡張Frameクラスのコンストラクタで拡張Buttonクラスを初期化し配置しています。 Class extFrame extends Frame{ extButton button1; extButton button2; public extFrame(){ setBackground(Color.lightGray); button1 = new extButton("label1"); button2 = new extButton("lable2"); add(button1); add(button2); } } Class extButton extends Button{ public extButton(){ setBackground(Color.black); setForeground(Color.white); } } 上記のようにしてFrameオブジェクト上に背景色・前景色を変えたボタンを配置しているのですが 動かしてみるとボタンに配色されず通常の色で表示されてしまいます。 どのようにしたら良いかアドバイスをお願いします。
Javaを使ってOutlookExpressからメール送信したいのですが、 JavaでMAPIをコントロールするにはどうすればいいのでしょうか? ご存知の方いらっしゃいませんか。
これからプログラミングを勉強しようと思ってますが VBとJava同時進行で勉強するのとJava一本に絞るのとではどちらがいいでしょうか?
>>506 extButton#extButton(String)を書けよ
>506 extButtonクラス修正 Class extButton extends Button{ public extButton(String label){ // 書き忘れです super(label); // すいません。 setBackground(Color.black); setForeground(Color.white); } }
511 :
デフォルトの名無しさん :02/08/12 14:42
ルックアンドフィールって何ですか? 何冊か本を調べてみたんですけど 知ってるものとして書かれていて わかりません。ネットでも同様でした。 おねがいします。
Appletでデジタル時計を作成中です。 Date()で時間を受け取っているのですが、 これを平成○年○月○日amXX:XX:XX等のように設定する方法を教えてください。 Formatあたりにありそうだと思って探しているのですが、よくわかりません。
― 今日はJavaお休みです。 ―
自分で考えて機能作れ。 作れないものを使うな。
質問するなと。
517 :
デフォルトの名無しさん :02/08/12 16:30
N個のPDFファイルを一つにまとめたいんですが、 何か良い方法を知りませんか? そんなライブラリを知りませんか?
>>514 ありがとうございます。そこを見ててもいまいちうまくいかなかったので・・・。
邪道かどうかはわかりませんが、SimpleDateFormatを見つけたのでこれでやります。
言語は自力で作るしかなさそうですね。
クロップ、遅いんですけど・・・
521 :
デフォルトの名無しさん :02/08/12 17:43
java.io.FileInputStreamのavailable()ですが、 「このストーリームのメソッドの次の呼び出し側からブロックされることなく、 この入力ストリームから読み込むことができる(またはスキップできる)バイト数を返します。 とありますが、これって、ファイルサイズ分って解釈でよいのでしょうか? 一応次のようなコードでファイルをすべて byteに書き込めているみたいなのですが、 上限とかでトラぶったりすることあったりしますか? BufferedInputStram stream = new BufferedInputStream(new FileInputStream("file.dat"); int capacity = stream.abailable(); Byte[] inDate = new Byte[capacity];
>>521 今その瞬間に読める分 だから
ファイルならそれでいいかもしれないけど
バカみたいにでかいファイルだと多分だめだろうね
PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(File))); writer.println(pages); としていたものを out = new BufferedWriter(new FileWriter(todayFile)); out.write(pages); に変えようと思っているのですが、後者は「シンボルを解釈処理できません。」とコンパイルエラーになってしまいます。 out = new BufferedWriter(new FileWriter(File)); out.write("pages"); とするとコンパイルエラーはなく、ファイルに pages と書かれることはわかっているので、(pages)が原因だと思って いますが、writeの場合は、StringBuffer型を与えることはできないのでしょうか?String型しかできないのでしたら、 StringBuffer型をString型に変換する方法を教えて頂けませんでしょうか?
>>521 >ファイルサイズ分って解釈
それはダメでしょ…
あんたが java.io.FileInputStream のメンテナンスしてて
FileInputSteam の available がファイルサイズを返す事を
保証できるとかならともかく。
単純に RandomAccessFile 使えば?
527 :
デフォルトの名無しさん :02/08/12 20:40
>524 結局FileInputStreamのavailableって「一度に読めるサイズ」って ことなんでしょうか? RundomAccessファイルが安全そうですね ありがとうございました
repaint()ッテ何? アプレットとアプリケーションどっちを練習すればよいの??
>アプレットとアプリケーションどっちを練習すればよいの?? お好きなほうを
530 :
デフォルトの名無しさん :02/08/12 21:41
Antの、<java>で、引数に「*.xml」のような指定をして 複数のファイルを個別に指定せずに順次処理させることってできないでしょうか。 <copy>や<javac>などはマニュアルにやり方が書いてありますが <java>の場合は書いてないような。
>>525 ドキュメント読んでいたらStringが、StringBufferを読んでくれるようだったので、
String(StringBuffer) で、 String型に変換出来ることがわかりました。
そんな無駄なことしなくても、StringBuffer#toString()
だたし鬱
String str; のあと str を解放する方法を教えてもらえますか?
>>533 大化元年も太陽暦っていーんだっけか…
でもまぁ、明治以降ならOKだし…
539 :
デフォルトの名無しさん :02/08/12 23:36
int型(4バイト)のデータをbyte型の配列[4](byteは1バイトなので4バイト) に入れたいのですが方法が見つかりません。ただのbyte型だったら型変換すれば いいだけなんですがbyte[4]っていう配列になるとわかりません。 どなたか教えていただけませんでしょうか?
>>539 in val;
byte[] buf = new byte[4];
//りとる えんであん
buf[0] = (byte)val;
buf[1] = (byte)(val >>> 8);
buf[2] = (byte)(val >>> 16);
buf[3] = (byte)(val >>> 24);
//びっぐ えんであん
buf[0] = (byte)(val >>> 24);
buf[1] = (byte)(val >>> 16);
buf[2] = (byte)(val >>> 8);
buf[3] = (byte)val;
>>537 の見解が正しいと下記はエラーになる?
String str = "aaa";
str = null;
System.out.println("str = " + str);
>>541 str = null
と表示されると思うけど。
>>539 (゚∀゚) 8ビットづつ区切ってシフトしてキャストしてポイ ×4回
>>539 こうか?
for (int i = 0 ; i < array.length ; i++) {
array[i] = (byte)intValue;
}
…すまん、ネタだ。
単純にシフト演算子使えばできると思うが.
>>539 簡単な質問だと、レスが多いかどうかのテストですか?
インディアンってなんですか?
えんであん -> インディアン ってのはちと無理あるよね。
>>537 それって解放はされないです。たとえ GC が起きても。
(´・ω・`) ショボーン (∩∩ )
どこかで誰かが捕まえてなければ勝手に開放される。気にするな。
553 :
デフォルトの名無しさん :02/08/13 00:42
メーカー以外でJbuilderとWebSphereの違いは何ですか?
int value = 5; ByteArrayOutputStream bout = new ByteArrayOutputStream(); bout.write(value); byte[] array = bout.toByteArray(); とか。 エンディアンはどっちになるんだろう?
>>553 バイナリ的には全くと言っていいほど異なるはず。
だめだった。こう↓ ByteArrayOutputStream bout = new ByteArrayOutputStream(); DataOutputStream dout = new DataOutputStream(bout); dout.writeInt(value); byte[] ba3 = bout.toByteArray(); エンディアンはプラットフォームに依存しそう。WinではLittle-Endianだった
素直にシフト演算子使った方がいいな
スマソWinでもBig-Endianだった。ってことは常にBigEndianかな
人口無能の作り方教えてください。 お願いします。
563 :
デフォルトの名無しさん :02/08/13 03:01
>557 >559 OSではなくCPUでかんがえれ
>>557 なんでJavaなのにエンディアンが表にでてくるとおもってんだ?
Javaだぞ、おい。
>>565 同意。
TCP/IPとかMIDIの様に特別に規定されてるものはともかく。。。
>>565 DataInput と DataOutput は Big Endian ですが何か?
>>567 だからCPUの差はJavaVMで吸収されるってこってしょ。
>>568 >だからCPUの差はJavaVMで吸収されるってこってしょ。
???
JavaVM は エンディアンの差を吸収してないけど…
VMでなくて 言語仕様で特定のエンディアンに依存した
書き方をさせないようにしてるだけだと思われ
nio とかだと エンディアン出てくるし…
>>552 String が null を指すと、GCが起きたときちゃんと解放されるの?
DataOutputStreamの話に限ってはライブラリレベルだよね。 実際、 public final void writeInt(int v) throws IOException { OutputStream out = this.out; out.write((v >>> 24) & 0xFF); out.write((v >>> 16) & 0xFF); out.write((v >>> 8) & 0xFF); out.write((v >>> 0) & 0xFF); incCount(4); } こうなってるし。
>>570 「Stringがnullを指すと」じゃなくて「Stringから指されていたものが、
どこからも指されなくなると」だね。
str自体の寿命はスコープで管理できるでしょ。
575 :
デフォルトの名無しさん :02/08/13 12:02
EJB呼び出しをするモジュールを作成したのですが、 テストAP(JAVA)から呼び出したときには正常に参照できるが servletから呼び出したときに以下のメッセージが発生するのですが、 これは何がいけないのでしょうか? javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
577 :
デフォルトの名無しさん :02/08/13 13:36
>>576 そのモジュールは内部で以下のように行っているだけなんですよ。
で、テストAP(JAVA)では問題なく動くんですよ。
同じことで頭を悩ませたことがある人、
解決方法を教えていただけると助かります。
try {
javax.naming.Context ctx = new javax.naming.InitialContext();
Object ref = ctx.lookup("Hoge"); //ここでエラー
} catch (Exception e) {
}
しつこいようですが、 JAVAでMAPIを扱う方法ご存知の方いらっしゃいませんか? レスが無いということは、やっぱり無理ですか。
あの、プロパティファイルの生成などについて質問です。 これをうまく機能させるにはどこら辺に入れるといいんですか? 厨房みたいな質問ですけど、プロパティファイルを制作して、 どこへ置いておくといいんでしょうか?同じディレクトリ内 だったら、機能するようになるの?
>>581 JAVA でMAPI を利用できるのか
049780: "contact" <@mb.infoweb.ne.jp>
JAVA でMAPI を利用できるのか
049781: "contact" <@mb.infoweb.ne.jp>
マルチポストで放置されてないか?
>>582 マルチじゃなくて、 HTMLメールを投げて“それを謝ることもなく"、テキストメールで投げ直したっぽいね。
>>581 ちなみにそれは私じゃないですよ。
ネット上で探してもそれくらいしか関連する話がなかったので
ここで聞いてみたのですが、本屋に逝ってJAVA関連の本で探してみることに
します。失礼いたしました。
585 :
デフォルトの名無しさん :02/08/13 16:37
>>584 本屋で本を探して解決したら、ここで教えてねー
>>586 おまえウザいな。だから放置されていたんだね。
くだらね
>>587 そのまま放置してればいいものを。アホだね。
このスレくだらね
>>584 Javaの本にMAPIが載っているとは思えないけど。
どうしてもってんなら JNI でも使えば~?
594 :
デフォルトの名無しさん :02/08/13 18:01
メソッドの外で例外処理をするため、throwsを設定していますが、 一部は内部で判定して自分でthrowしようと思います。 throwsで設定している例外をtry~catchで検出することはできる のでしょうか? foo () throws ExceptionFoo { try { } catch (ExceptionFoo e) { throw new ExceptionFoo(e.toString()); } }
>>594 できるでしょうか…って自分で試せよ.
試すべきソースコードだって自分で書いてるじゃん.
お前みたいな奴は絶対に力は付かん. 俺が保証してやる.
ヤッタネ
Servletでマルチスレッドを使いたいのですが public class aaa extends HttpServlet{ ....... public static void main(String args[]){ new aaa(bbb).start(); } } と作るとエラーが出ます。 (Input.java:84: シンボルを解釈処理できません。 シンボル: メソッド start ()) なんとかServletのプログラムから 別のプログラムを動かす方法はないでしょうか?
HttpServletクラスにstartメソッドが無いって言われてるんでわ? っていうか実際無いし.
>>598 そうするとServletのプログラムから
別のプログラムを動かす方法はないということでしょうか。
>>597 ボケがすぎる。J2EE使うのは3ヶ月早いな。
せいぜい3ヶ月だから、J2SE勉強せい。
正直, ネタかと思った.
>>600 が言うように勉強して出直してこい.
…時期的に, 次来たら冬厨だなw
int型のaをString型に変えたいです。 書き方を教えてください。 即レスしてもらえるとすごくうれしいです。
606 :
デフォルトの名無しさん :02/08/13 21:28
>>597 Servletはスタンドアロンで動くアプリケーションじゃないから、
mainメソッドがあること自体がおかしい。
>>600 禿同。507はネタか??
609 :
デフォルトの名無しさん :02/08/13 21:57
Javaの勉強を始めたいんですけど 超初心者はまずこれを読めという本があったら教えて下さい。 付属のCD-ROMでの実戦勉強ももちろんやるつもりです。
>>609 >付属のCD-ROMでの実戦勉強ももちろんやるつもりです。
無駄。JDK取り以外に価値はない。
>>609 読んでわかりやすい奴を買えばいいと思われ。
後は書きまくればわかってくる。
実はJTextFieldクラスを使ってテキストフィールドに結果を出力したいんです。 そこでsetText()メソッドを使おうと思ったんですがこれってintには対応してなかったので int型の値を出力するにはどうしたらいいのかなと思った次第です
String#valueOf(int)
>>613 Integer#toString()じゃダメですか?
615 :
名無しさん@Emacs :02/08/13 22:19
textField.setText( Integer.toString(hoge) ); textField.setText( String.valueOf(hoge) ); どっちでもいいじゃん. 俺は無意識にInteger#toString(int)を使うけど.
すまん, 下げ忘れた.
ども即レスありがとうございました。 おかげで上手くいきました。 今度は自分でもっと調べるようにします。感謝
>>609 付録のCDを使わずに自分で打ち込もうね。 コピーじゃ覚えないから
619 :
お願いです。 :02/08/13 22:26
>>619 /*
そこでより多くの人にこの事態を知ってもらえるよう、問題提起のため、
マスコミを動かすため下のページのカウンターを増やしましょう!
*/
意味わかってほざいてるのか?死ね。
アプレットを作成してます。最初のアプレットfirstapplet.htmlで
パラメータを入力し、このパラメータを次のアプレット
secondapplet.htmlに渡したい場合どのようにして渡すのでしょうか。
ちなみに、2つのアプレットはAppletクラスを継承しているとして
最初のアプレットで、
URL baseUrl = new URL("
http://***.***.ne.jp/applet/ ");
URL url = new URL(baseUrl,"secondapplet.html?"+"message="+
URLEncoder.encode(JTextField1.getText()) );
getAppletContext().showDocument(url,"right");
とすると、次のアプレットで
getCodeBase().toString() を使えば、?以降にあるパラメータを
取り出せます。しかし、2つのアプレットをJAppletを継承して作ると
?以降が省略されパラメータを取り出すことができません。JAppletを
継承したアプレット間で、簡単なパラメータ(英数字のみ)を次の
アプレットに渡すにはどうすれよいのでしょうか。他の方法でもかま
いません。ご存知方教えてください。
<動作確認環境>
Windows NT 4.0 SP6a
JDK 1.2.2
Internet Explorer 5.5
Netscape Communicator 4.7
623 :
デフォルトの名無しさん :02/08/13 23:00
javaSDKでスプライトってあるんですか? あと異型のウインドウを作りたいのですがどんなクラスがありますか?
625 :
デフォルトの名無しさん :02/08/13 23:11
うーむー JAVAMEとかなら見たことあるんですけど普通のJAVAであんのかなって DirectXは使えないの?
OSに依存するからな
>>622 試してないのですが、それって url が完成してないのでは?
だれか「622」の回答も頼むよ。 Java House Mailing Listにも乗ってないんだ。
Appletって?以降にhoge=fugaとか書いてパラメータ渡せるの? 知らんかった….
>627 次に表示するアプレットはちゃんと表示できているんだが。 urlが完成してないとはどういうことでせうか。もう少し ご説明をお願いします。
>629 Appletの場合のサンプル @FirstAppletJ.html <HTML><HEAD></HEAD><BODY> <APPLET CODE="FirstAppletJ.class" HEIGHT=100 WIDTH=300> </APPLET></BODY></HTML> @FirstAppletJ.java import java.applet.*; import java.awt.*; import java.awt.event.*; import java.net.*; public class FirstAppletJ extends Applet implements ActionListener { Button b; TextField t; public void init() { add(new Label("Message to 2nd applet :")); add(t= new TextField(20)); add(b = new Button("Load 2nd applet")); b.addActionListener(this); } public void actionPerformed(ActionEvent ae) { if (ae.getSource() == b) { try { getAppletContext().showDocument (new URL(getCodeBase(), "SecondAppletJ.html?" + "message=" + URLEncoder.encode(t.getText()))); } catch (Exception e) { e.printStackTrace(); } } } }
634 :
デフォルトの名無しさん :02/08/13 23:38
つづき・・・・・・・ @SecondAppletJ.html <HTML><HEAD></HEAD><BODY> <APPLET CODE="SecondAppletJ.class" HEIGHT=100 WIDTH=400> </APPLET></BODY></HTML> @SecondApplet.java import java.applet.*; import java.awt.*; import java.net.*; public class SecondAppletJ extends Applet { public void init() { Label l = new Label("Message from 1st Applet"); add (l); TextField tf = new TextField( 50 ); add(tf); // complete current URL String s = getDocumentBase().toString(); // extract the search (or query) section String theMessage = s.substring(s.indexOf('?') + 1); // remove message header theMessage = theMessage.substring("message=".length()); // decode the string (incomplete) theMessage = theMessage.replace('+',' '); tf.setText(theMessage); } } JAppletの場合、htmlファイルをAPPLETタグでなく、Java Plug-in タグ(OBJECT または EMBED) で書いている。なんで?以降のパラメータ が取れないんだよ!だれか教てください。
あぁ, 自分でロジック書くのね…了解.
java_sun_com の鯖㌧㌦
638 :
デフォルトの名無しさん :02/08/14 13:32
アプレットビューワーでは成功してるのに、 いざネットで公開してみると、使用する画像の読みこみが高い確率で失敗します。 何か良い解決策があるのでしょうか?
>>638 (゚∀゚)ダウンロードがッ 成功するまでッ 読むのをやめないッ!
640 :
デフォルトの名無しさん :02/08/14 13:43
>>638 っていうか、普通リソースもクラスファイルもJarに圧縮するだろ?
おれ、まちがってる?
641 :
デフォルトの名無しさん :02/08/14 15:42
642 :
名無し~3.EXE :02/08/14 15:43
基本的なことすみません。 XSL変換をして結果をStringに代入して、ふと気づいたのですが、 複数行をString型に入れたときは、\n で区切られているんですよね。 それを一行ずつアクセスする方法ってあるのでしょうか? 無ければ、先頭から読んでいって\nで分割するしかないのでしょうか。
BufferedReader br = new BufferedReader(new StringReader(str)); String line = br.readLine();
645 :
デフォルトの名無しさん :02/08/14 15:59
>>640 638じゃないのですけど、
Jarに圧縮したらHTMLのタグ的には、
<applet code=*.jar width=100 height=100>
ですよね。
んで、ソースコードの中でイメージを読み込むにはどうしたら良いのでしょうか。
×Image img=Toolkit.getDefaultToolkit().getImage("img1.gif");
×Image img=getImage(getCocumentBase(),"img1.gif");
これらでは、ダメみたいで、困ってます。教えて下さいませ。
>>645 Toolkit.getDefaultToolkit().getImage(getClass().getResource("/img1.gif"));
647 :
デフォルトの名無しさん :02/08/14 16:04
>>646 ありがとうございます。早速試してみます。
>>644 あ、BufferedReaderか!ありがとうございます。
ありがとうございました! なるほどJar圧縮を皆さん使ってられるんですね。 勉強してきます!
ところで Jar って先頭だけ大文字にするのが正式なんでせうか?
Jarと書いて「ジップ」と読みましょう。
ジャー
文字列中のタブ(\t)だけを除去する都合のいいメソッドなんてないですよね(´・ω・`
>>654 1.4なら、String.replaceAll("\t", "");
656 :
デフォルトの名無しさん :02/08/14 19:14
657 :
デフォルトの名無しさん :02/08/14 20:30
サーブレットで画像ファイル(gifかjpeg)の縦横サイズをそれぞれ取得 して、<img src="xxxx.gif" width="123" height="456">といった HTMLタグを生成したいのですが、サイズの取得はどうやったらよいの でしょうか?
初心者質問なんだけどイベント使うときに class sample extends JApplet implements ActionListener{で継承して 部品名.addActionListener(this); でpublic void actionPerformed(ActionEvent e) メソッドに飛ばすのと init(){ の中に部品名.addActionListener(new ActionListner(){ public void actionPerformed(ActionEvent e){ 処理 }});って2通りの書き方があるんだけどどっちがいいのですか? っていうか場合により使いわけるの??
>>658 どっちでも好きなほうを。
職場によっては無名クラス禁止だったりするから、
そーゆーとこだと後者は無理だけど。
661 :
デフォルトの名無しさん :02/08/14 21:15
>>658 まあどちらでも同じことだが。
リスナーを別クラスとして作って管理する方が俺は好きだが。
662 :
デフォルトの名無しさん :02/08/14 22:59
622の質問に答え下さい。
>>661 同意。レガシーな奴なんでああいう書き方は苦手っす。
666 :
デフォルトの名無しさん :02/08/15 00:47
>>662 氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
short型にbyte[2]を入れたいんですけどどうしてもshortのほうの 上位バイトに値を入れることができません。上位バイトをbyte[0]、 下位バイトを[1]に入れようとしているのですが・・・。 シフト演算子使ってもうまくいきません。 short tmp=byte[0]; short tmp2=byte[1]; ってやって、tmpをtmp<<8で下位バイトにあったものを上位にもってきて、 ビット論理和の「|」を使って short s=(tmp<<8)|tmp2; ってやってうまくいくと思ったんだけどコンパイルの時点でダメでした。 どなたか教えていただけないでしょうか?
PPC Linux用のJava1.4ってもう出ているのでしょうか? (MacじゃなくてOpenBlockSトカのほうです)
>>671 GCJは使ったことないが, GNUのJava用getoptにはお世話になってる.
>>ミナサン ありがとうございます。GCJか・・・冒険するか我慢するかみたいですね。
>>667 short tmp=byte[0] & 0xFF;
short tmp2=byte[1] & 0xFF;
です。ネタだと思うけど、一応
演算結果がintなるから代入できないって話では
しまった… 忘れてた。
677 :
デフォルトの名無しさん :02/08/15 15:17
すいません、何度やってもうまくいかないので教えてください。 簡単なソースを書いて、コマンドプロンプトを使ってコンパイルは出来たのですが、 「java」と命令して実行しようとすると "Exception in thread "main" java.lang.NoClassDefFoundError: Sample1" となってしまうのですが…。どんな原因が考えられますか?
>>677 java -classpath . Sample1
>>677 いやたぶん
java hoge.class ってやってるでしょ
java hoge
だよ
680 :
デフォルトの名無しさん :02/08/15 15:47
>>679 ちゃんと拡張子は取って書いてるのにダメなんです。
パスも通してあるし、コンパイルもできてるのにどうしてなんでしょう??
>>679 エラーメッセージみればそうじゃないことはわかる。
>>680 なんでおめーーーーーーは、 679 は見ておいて、 678 は無視してんだ? 氏ねや!!
684 :
デフォルトの名無しさん :02/08/15 16:19
クラスパスはSample1.classです。
>>684 今から数人に叩かれると思うから覚悟してね。
686 :
コギャルとHな出会い :02/08/15 16:22
http://kado7.ug.to/net/ 朝までから騒ぎ!!
小中高生
コギャル~熟女まで
メル友
i/j/PC/対応
女性の子もたくさん来てね
小中高生大歓迎です
全国デ-トスポット情報も有ります。
全国エステ&ネイル情報あります。
激安携帯情報あります。
俺も25分間ってどうやって計算したのか知りたいんだけど?
50分を2で割ったんじゃないのだろうか 50÷2 = 25 どうよ?
685~687の間か? けど27分間
発想の転換が必要だな。 5分×5回 = 25分
俺は200を8(略
で、結局このスレに張り付いてるヤシは何人なんだ?
>>697 5人くらいで、うち3人くらいが単なる煽り厨かな。
699 :
デフォルトの名無しさん :02/08/15 18:20
つまらない質問なんですが、お願いします。 軽くてフリーソフトの行番号がついてるエディタってありますか?
>>700 え?ネタじゃないんですけど……
もしかしてメモ帳で行番号を表示ってできるのでしょうか?
>>702 親切にありがとうございます。
さっそくダウンロ~ド~
708 :
デフォルトの名無しさん :02/08/15 22:14
なんでinterfaceで、privateのメソッドを宣言できないの? 必ず実装すべきprivateのメソッドも、interfaceで強制できれば便利なのに。
>>708 それはオブジェクト指向に反する考え方だから…だと思う.
少なくとも俺はそう考えてる. interfaceは
「それさえ呼び出せば処理をしてくれるメソッドの定義(なんて適当な説明…)」
だから中でどんな実装をしてようと知ったこっちゃない. したがってinterfaceで
このprivateメソッドを使え!なんて定義するのはダメなんじゃないだろうか.
…いや, 実際使いたい時がなくもないが.
>>708 >必ず実装すべきprivateのメソッド
ってのは「実装」に関する事なんで
interface みたいに「仕様」を定義
する場合には必要ない、って事では?
うまく説明できない… マダマダダネ
>>708 っつか、private って自動的に final されたのと
同じ扱いにならなかったっけ?
privateメソッドはオーバーライドできません(藁 つうか、privateメソッドをどう書こうと、そのクラスの実装 責任者の自由じゃろ。どうせどこからも呼ばれないんだから。 アホか。 インターフェイスの役割は、外からのアクセス手段を規定する ことなんだから、publicオンリーで十分。 (protectedがほしいと思うこともあるけど、そういう時は仕方 がないのでabstract classにしてましゅ)
このスレはインターフェースがなんたるものか分かっていない
>>708 を叩くスレになりますた。
すいません、以下のコードで質問があります。 int i=0; int j=5; int k; for (k=0;k<5;k++){ if( i++>3 | --j<2 ) continue; } …これでi+j+kの結果が10になるようなんですが、その経過が よく分かりません。ド素人で申し訳ないんですが、教えてください。
>>715 >if( i++>3 | --j<2 )
||じゃなくて良いのか?
>>716 はい、ショートサーキットではないです。
考えても答えが9にしかならないんですが…
>>717 iは評価後にインクリメントされてjは評価前にデクリメントされるってのは良いよね。
つぅかbool型ってビット演算できるんすか?
>>715 > その経過がよく分かりません。
そのまま自分で追ってみればいいジャン
追うよりもっと簡単な方法があった。実際に表示させるだけジャン i=0 j=5 k=0 i=0 j=5 k=0 i=1 j=4 k=1 i=2 j=3 k=2 i=3 j=2 k=3 i=4 j=1 k=3 i=4 j=1 k=4 i=5 j=0 k=4 i=5 j=0 k=5
>>719 k i j
----------------
0 1 4
1 2 3
2 3 2
3 4 1
4 5 0
----------------
4 + 5 = 9
と言う感じです。
何か勘違いしてますか、自分?
>>720 ありがとうございます。
ちょっと自分で追ってみます。
int は int k の後 for は for の直後 if- は if文の後 if+ は if文の中(continue の前) end は 最後 int i=0; int j=5; int k; // int for (k=0;k<5;k++){ //for if( i++>3 | --j<2 ) { //if+ continue; } //if- } // end int:i=0 j=5 k=0 for:i=0 j=5 k=0 if-:i=1 j=4 k=0 for:i=1 j=4 k=1 if-:i=2 j=3 k=1 for:i=2 j=3 k=2 if-:i=3 j=2 k=2 for:i=3 j=2 k=3 if+:i=4 j=1 k=3 for:i=4 j=1 k=4 if+:i=5 j=0 k=4 end:i=5 j=0 k=5
>>721 最後に for の条件文を通ると k がインクリメントされます。
>>723-724 あ、最後にkが5になってforループが終わると言うことですね!
すいません、ありがとうございました!
WinXPです。環境変数はC:\j2sdk1.4.0_01\bin;と設定してあります。 SDKとeclipseを使っていました。コマンドプロンプトでもeclipseでも javaを実行できていたのですが、 いまさっき、JBuilder6personalをインストールしたところ、 C:\>javac hoge.class C:\>java hoge Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion' has value '1.3', but '1.4' is required. Error: could not find java.dll Error: could not find Java 2 Runtime Environment. となるようになってしまい。同時にeclipseも使えなくなりました。 JBuilderのJDK設定のメニューで j2sdk1.4.0_01を使用するように指定しても直りません。 これはどうしたら直るのでしょうか? それともJBuilderだけで生きていけということなのでしょうか? 悲しいです。助けてください。
>>726 >>357 あたりに同じ質問があります。ただ、厨房に邪魔されて質問がとぎれていますけどね。
>>727 読んでみました。過去ログきちんと読んでなくてすいません。
どうもアンインストールして解決しているみたいですね。
>>364 の先頭に書くってのをやってみましたが、どうもうまくいかないようです。
JBuilderでGUIのプログラム作ってみたいと思ったのですが、JBだけってのは
ちょっとつらいのです。
>JBuilderのJDK設定のメニューで
j2sdk1.4.0_01を使用するように指定しても直りません。
これはソフトやPCを再起動したわけではないので、そうしないと反映されない
ものなのかもしれないと、ちょっと試して見ます。
結局JDKの設定をj2sdk1.4.0_01を使用するように指定しても再起動しても なにも変わりませんでした。いちおう環境変数のPATHの先頭に書いてもみた んですけど、ダメでした。アンインストールは最強でした。 もし何かほかの解決方法あったら教えてください。
730 :
デフォルトの名無しさん :02/08/16 15:13
JDK1.4を再インストールすればいいんでない? JB→JDKの順でインストールすれば問題ないと思う。
>>729 エラーを読むと
'Software\JavaSoft\Java Runtime Environment\CurrentVersion' が間違ってるって書いてあるね。
'Software\JavaSoft\Java Runtime Environment\CurrentVersion' に '1.4' と書いてあればいいんじゃない?
>>730 JDK1.4をアンインストールしました。JBuilderと共にインストールされた
JDK1.3を使うようにしたら、eclipseもコマンドプロンプトもすべてうまく
いくようになりました。JBuilderにあわせる方向にしただけですが。
わがままですね。>JBuilderクン
このあと、JDK1.4を再インストールすれば、JB,eclipse,コマンドプロンプト
でJDK1.4が使えるようになるわけですね。でもせっかくうまくいっているので、
しばらくは1.3で生きていくようにします。というか、1.3と1.4の差をあまり
理解できていないですし。
>>731 そうなんですけど、そこがわからんのです。レジストリなんていじったこと
ないので。そういうわけで、1.4は泣く泣くあぼーんされました。
>>732 自己レスですが、JDK1.4で動くようにするとマウスのホイールが使えるように
なるらしいということを知りました。疲れました。1.3は抜け出したいけど、
うまくいっているのに抜け出してうまくいかなくなるかもしれないのも鬱ですね。
734 :
デフォルトの名無しさん :02/08/16 17:42
javaアプレtトってpng形式対応してますか? なんだか表示しにくいんですけど……
>>734 > なんだか表示しにくいんですけど……
んじゃ対応しているじゃん
736 :
デフォルトの名無しさん :02/08/16 17:54
>>735 すいません。正式対応かどうかです。
不安定過ぎるのはどうも。かといってGifも腹立ちますし。
737 :
デフォルトの名無しさん :02/08/16 17:57
IIS5.0とTOMCATの連携方法を詳しく書いてある WEBサイトを教えてください IISでサーブレットを動かしたいと思っています
>>733 >>364 に書いてある方法じゃだめなのか?大方Win9xで再起動し忘れたんだろ。
どうしてもコンソールからコンパイルしたければ
set C:\j2sdk1.4.0_01\bin;%PATH%
javac Hello.java
java Hello
とでもやってみれば?
それからJBuilderはJBuilder自身を動かすJVMと開発ターゲットのJVMを別にできるから、
JBuilderでホイールスクロールしたかったら前者を1.4にしないとダメ。
方法はreadmeなりヘルプなりネットなりで探せばいくらでも見つかるはず。
>>738 >
>>364 に書いてある方法じゃだめなのか?
>>728 で、だめだった。
> 大方Win9xで再起動し忘れたんだろ。
>>729 で、とりあえず、それもした。ちなみにWin2K。
てな感じかな。
>>732 で全部うまくいくようになったので、JDK1.3で
十分かな。
>JBuilderでホイールスクロールしたかったら前者を1.4にしないとダメ。
だから、ホイールは魅力的だけど、それだけのために頑張る気に
もなれないといった感じ。
>>738 参照
まとめてくれてどうも。
>>738 おまえは自分のためにいちいちまとめているんだろ? けど、自我が強いだけでまわりが見えていない。
或いは初心者にありがちなスペルミスかと思ったが。
コンソールで
path
で意図した通りに設定されてた?Win2kなら、「ユーザー環境変数」と「システム環境変数」
があって、「ユーザー環境変数」の先頭に追加してしまうと、
システム環境変数の C:\WINNT\System32 にあるjava.exeが使われてしまうから、×
間違いなく「システム環境変数」の先頭に追加しないと動かない。
少なくとも俺の環境では間違いなく動いてる。切り替えも確実に動作する。
JBuilder4/6/7/EclipseR2/JDK1.3.0/1.3.1/1.4.0/1.4.1-beta全部
別に俺は
>>741 がどうなろうと何も困らんのだが?単なる情報提供
>>743 は、ダレに返事しているの?
なんか空気が違うんですが、単なるバカですか?
自慢厨っていうんだよ。放置ね。
748 :
デフォルトの名無しさん :02/08/16 22:55
Javaオタは内紛で自滅寸前だな ギャハハハ
Ruby Java Python Perl って戦争するとどれが勝つんでしょう?
>Javaオタは内紛で自滅寸前だな なんかトラウマでもあるんで?
(´ー`)y-~~ マターリ
753 :
デフォルトの名無しさん :02/08/17 01:30
前に画面のダブルバッファのためCanvasの継承で Image scrImage = createImage(this.getWidth(), this.getHeight()); offGraphics = this.scrImage.getGraphics(); ・・とコンストラクタで実施したらscrImageがnullになるのはなぜ? と質問したものです。 「peerが確定していないのでコンストラクタでは無理」 ・・という理由で出来ないのはわかりましたが、この「peerが確定していない」の意味がどうしてもわかりません。 一応Canvas.paint()で if (scrImage == null) { scrImage = createImage(this.getWidth(), this.getHeight()); offGraphics = this.scrImage.getGraphics(); } とする事で出来てはいるのですが、気持ち悪くてしょうがないです というかイメージを動的に生成したいだけなのにCanvasクラスを生成しないといけない・・という理由がわからない・・ ここらへんの事情をどなたか詳しく教えていただけないでしょうか??
754 :
デフォルトの名無しさん :02/08/17 01:31
finalize()が呼び出されていないようなんですが、↓のコードは 間違ってるでしょうか? public class Example { static int i = 0 ; public static void main(String[] args) { Example exa = new Example() ; exa = null ; System.out.println(String.valueOf(i)) ; } protected void finalize() { i = 99 ; System.out.println("exaオブジェクトは破棄されます") ; } } 表示:0 finalize()というものは、こんな形では呼び出されないものなんでしょうか? どなたか、よろしくお願いします。
根本的に間違ってるな。 入門書もういちど始めから読み直せ。
finalize って必ず呼び出される事が保証されてないんじゃなかったっけ?
757 :
デフォルトの名無しさん :02/08/17 01:52
>>755 >>756 どうもありがとうございます。
>入門書もういちど始めから読み直せ。
「言語仕様」には、取るに足らないfinalize()は呼ばれない、
みたいな事が書いてありました。
どうしたら、呼ばれるのか知りたかったもので。
>finalize って必ず呼び出される事が保証されてないんじゃなかったっけ?
一言でもヒントが貰えてマジ良かったです。
public class Example { static int i = 0 ; public static void main(String[] args) { Example exa = new Example() ; exa = null ; System.gc(); System.out.println(String.valueOf(i)) ; } protected void finalize() { i = 99 ; System.out.println("exaオブジェクトは破棄されます"); } }
ちなみに、ちょっと前に登場した話ですが Stringオブジェクト は破棄されません。 public class Example { static int i = 0 ; public static void main(String[] args) { //Example exa = new Example() ; String exa = new String("おはよう"); exa = null ; System.gc(); System.out.println(String.valueOf(i)) ; } protected void finalize() { i = 99 ; System.out.println("exaオブジェクトは破棄されます"); } }
>>759 そのコードじゃ new String("おはよう") が
破棄されたとしても判定できないような…
761 :
デフォルトの名無しさん :02/08/17 07:39
public boolean action(Event e, Object o) { if(e.target instanceof Button) { String t1=boxa.getText(); String t2=boxb.getText(); a = Integer.parseInt(t1); b = Integer.parseInt(t2); repaint(); return true; } else return fales; } あまり意味がわかりません。どなたかコメント文を加えてくださいませんか? 特にbooleanメソッドの意味がよくわかりません。よろしくお願いします。
>>762 「なぜ?」って…
finalize の上書きしてんの Example だけで
String の finalize は上書きしてないじゃん。
(Stringは final class だから上書きできんけど)
java.lang.ref.* とか使って地獄の果てまで追っかけるなら話は別だけど…
>>759 破棄されないってのはどういうこと?
Stringオブジェクトを作ったら最後、もう一生残るってこと?
String hoge = "hoge";
とかは確かに消えないかもしれないけど。
>>766 と、言うかあのコードでStringが破棄されたかどうかチェックするのは不可能かと。
そんなコードを堂々と書く奴を相手にしても時間の無駄だと思われ。
Stringが破棄されないってのはメモリリークが発生するってこと? であれば、延々とStringのインスタンス作成をループさせて メモリ消費量を観察してみたら?
>>769 最低でもStringを継承してfinallizeをオーバーライドしたものでないとね。
771 :
デフォルトの名無しさん :02/08/17 17:06
>>759 >>768 文字列って、システムの共有プールに格納されるので、
ユーザープログラムからは破棄できないってことなんでしょうかね?
よくわかりませんけど。
>>771 それこそあのコードを修正して自分で実験すればいいと思われ。
>>770 >Stringを継承して
デキネーヨ
よって。確かめようがございませんと。
>>771 普通のVMの実装という仮定だけど、ソースコードに埋め込まれた文字列は
Constant Poolというところに定数として格納される。それ以外の動的に
生成された文字列は、通常のオブジェクトと同様のタイミング(gc)で破棄
される。
つまりあるクラスをロードしたら、そのクラスが保持する文字列は、
クラスが残っている限りメモリ内に残ることになる。
# クラスのアンロードってできたっけ?
777 :
デフォルトの名無しさん :02/08/17 17:26
自分のクラスローダで管理するクラスに関しては、できるはずだと思う。 よくは分かりません。
780 :
デフォルトの名無しさん :02/08/17 17:35
>>779 うろおぼえで、変な事言っちゃったかも...、えへ。ゴメンなすわぁい。
>>780 まともなこと言おうと、いいかげんなこと言おうと、 age ちゃうヤツは変!
スマン!
これでいいかな? public class StringGC { public static void main(String[] args) { Runtime r = Runtime.getRuntime(); String s; System.out.println("UsedMemory:"); System.gc(); System.out.println("a " + (r.totalMemory() - r.freeMemory())); System.gc(); System.out.println("b " + (r.totalMemory() - r.freeMemory())); s = new String(); System.out.println("c " + (r.totalMemory() - r.freeMemory())); s = null; System.out.println("d " + (r.totalMemory() - r.freeMemory())); System.gc(); System.out.println("e " + (r.totalMemory() - r.freeMemory())); } } 「多分破棄されてるんだだろうなぁ」ぐらいは思えるかと。
785 :
初心者君. :02/08/18 00:28
ダブルクリックされた時の処理ってどーやってやるのですか?
787 :
初心者君. :02/08/18 00:34
>>786 クリックとダブルクリックって分けられないのですか?
788 :
コギャルとHな出会い :02/08/18 00:38
http://kado7.ug.to/net/ 朝までから騒ぎ!!
小中高生
コギャル~熟女まで
メル友
i/j/PC/対応
女性の子もたくさん来てね
小中高生大歓迎です
全国デ-トスポット情報も有ります。
全国エステ&ネイル情報あります。
激安携帯情報あります。
789 :
デフォルトの名無しさん :02/08/18 00:58
Swingです。 コーヒーカップのアイコンを、自作アイコンに変更したいのですが、 どうやったらできるのでしょうか?
コーヒーカップのアイコンを愛せない奴はJavaを使う資格無し
コーヒーカップ飽きますた
JFrame#setIconImage() Windowsでしか確認していないがサイズが16x16に自動でリサイズされちゃうんで はじめっから 16x16でアイコン作っといたほうが(自動リサイズより)きれいだよ。
>>793 どーすれば出来るんですか?小1日考えましたが解りません。
教えて下さい。
SunのJava認定の試験てさ、なんでAWTの問題とかでるんだろね? CollectionとかMapとかはどんなプログラムにも使うからわかるけどさ AWT使ったことないーよ(;´Д`)
797 :
デフォルトの名無しさん :02/08/18 16:44
昨日からjavaを勉強し始めたんですが、 参考にしてるサイトのプログラムに import java.awt.*; import java.awt.event.*; ってあるんですが、何故java.awt.event.*も書かなくてはいけないんですか?
>>797 > 何故java.awt.event.*も書かなくてはいけないんですか?
使うからじゃない?使いたくなければ書かなくてもいいです。
>>798 は現場においても問題の本質を掴めないDQNプログラマ
>>800 何故java.awt.event.*も書かなくてはいけないんですか? 質問に答えて下さい。
802 :
デフォルトの名無しさん :02/08/18 17:02
>>799 java.awt.event.* をハズしても問題ないのですが?
問題ありますが? パッケージについてちょっと勉強してくらはいな。 そしたらわかるでしょ? java.awt.event.* って書かなきゃjava.awt.event以下のクラスが使えないでしょ? 使わないんならいいけどさ。使うでしょ? ネタなのか・・・
>>802 なんでこいつは回答者を煽っているんだろう・・・?
>>805 低レベル。さっさとWinか自作に帰れ。
808 :
デフォルトの名無しさん :02/08/18 17:34
本によっていろいろ書いてあることが違うのですが、 標準パス名と相対パス名って同じですか?
すいません。 さげ忘れました。
>>810 さぁ…俺、本とSDK(つっても当時の呼名はJDKだったけど)に付いてたソースで
独学したから初心者用でお勧めのサイトってのは分からんな…。どっちかっつーと
sunsiteの方が個人的は好き。
>>811 なんとなく始めに目を付けた方からという事でastroheartの方を
やってたんですがsunsiteの方が良さげですか。
んじゃどうせ始めたばっかだし移行しちゃおかな。
んー、両方読んでみて自分で決めなよ。 俺がsunsiteの方がいいと思ったのは ・文体が読みやすい ・TOCがすっきりしてて全体が見通しやすい ・著作件・商標の表示をキチンとしてて好感が持てる とか、その程度の理由だから。あとジャヴァ…(笑)。
814 :
デフォルトの名無しさん :02/08/18 18:34
>>803 > java.awt.event.*
> って書かなきゃjava.awt.event以下のクラスが使えないでしょ?
って説明は初心者が混乱しますね。
java.awt.event.* って書くと、java.awt.event.以下のクラスが、 「java.awt.event」を省略して
使うことができようになります。(java.awt.event.Class が Class だけで)
決して、import java.awt.event.*って書かない場合は、java.awt.event.Classと省略せずフルに書く
必要があるだけで、きゃjava.awt.event以下のクラスが使えないわけではありません。
815 :
デフォルトの名無しさん :02/08/18 18:35
sage 忘れたごめん
初心者ですみません。次のアプレットをアプリにしたいんですけど、JAppletを JFrameに書き換えて class アプリ名 { public static void main(String[] argv){ xxx f=new xxx(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(400,400); f.setVisible(true); } }を付け加えればいいと思うんですがエラーになります。誰か助け舟 をお願いします。 import java.awt.*; import javax.swing.*; import java.awt.event.*; class sample extends JPanel implements MouseMotionListener{ int a,b=-20; public sample(){ addMouseMotionListener(this); } public void paint(Graphics g){ g.fillOval(a,b,20,20); } public void mouseMoved(MouseEvent e){} public void mouseDragged(MouseEvent e){ a=e.getX(); b=e.getY(); repaint(); } } public class xxx extends JApplet{ public void init(){ getContentPane().setLayout(new BorderLayout()); sample k=new sample(); getContentPane().add(k); } }
java.awt.event.Classってどこにあるの?
>>818 コンストラクタ作ってinit呼べよ
あと、エラー表示を貼って
>820 エラーはでないです。java アプリ名で実行すると灰色のウィンドウが開く だけっす。 コンストラクタってpublic void アプリ名(){}ですよね、この中に 何の処理いれるの??
>>821 ビューに張らなきゃ表示されるわけねえべ。
JPanel p=...;
JFrame f=...;
f.getContentPane().add(p);
>>822 結果的にこうなったけどどこに張る処理書くの?
JFrameを継承し, クラスsampleをオブジェクト化して張りつけたxxxってクラス
をmainの中で作成してるからこれでいいと思うんだけど
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class sample extends JPanel implements MouseMotionListener{
int a,b=-20;
public sample(){
addMouseMotionListener(this);
}
public void paint(Graphics g){
g.fillOval(a,b,20,20);
}
public void mouseMoved(MouseEvent e){}
public void mouseDragged(MouseEvent e){
a=e.getX();
b=e.getY();
repaint();
}
}
class xxx extends JFrame{
public void init(){
getContentPane().setLayout(new BorderLayout());
sample k=new sample();
getContentPane().add(k);
}
}
class apuri{
public static void main(String[] argv){
xxx f=new xxx();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(400,400);
f.setVisible(true);
}
}
824 :
デフォルトの名無しさん :02/08/18 20:55
>>824 それの意味がよくわかんない
apuriクラスのmainの中にpublic void apuri(){}ってコンストラクタかいてその中に
処理書くってこと?
>>823 >>1 なお、ソースを貼るときには、半角空白が消える仕様のため、タブ1つを全角空白2つに
>>1 置換してから投稿しましょう。
>>825 つまりだ
> public void init(){
> getContentPane().setLayout(new BorderLayout());
> sample k=new sample();
> getContentPane().add(k);
> }
は動いているのかな? って話ですね。
>>827 xxx f=new xxx()を作成したときに動くんじゃないの?
>>828 initが動く保証はあるの?コンストラクタで呼んでるるならともかく。
mainの中にpublic apuri(){}ってコンストラクタ書いたら式の開始が不正と 怒られました。どうよぶの??
しね
>>831 ******************
現在コピペ荒らし発生中のため
マルチにも優しい対応をお願いします。
******************
Applet プログラミングからJavaを始めたやつが陥りがちな罠だな。 おれの知り合いもそんな質問をしてたっけな。 コンストラクタでthis.init()を呼べばいいんじゃねーの。 Appletプログラミングでは、main()を書かないでしょ。main()を書いたコードが 別にあるんだよ。で、ブラウザとかappletviewerとかがAppletを実行するときにそれを 実行していると。実際には違うと思うが、そこではこんな風になってると思ってくれ。 public static void main(String[] args){ Applet applet = new Applet(); //ほんとはこう書きたいが、これじゃわかんねえだろうな。 //String appletClassName = getAppletClassName(...); //Applet applet = Class.forName(appletClassName); applet.init(); } これでわかったかな?
835 :
デフォルトの名無しさん :02/08/18 22:14
板違いだろうとは思うんですが、もうここの人以外には言いたくなくて…… 打ってたソースをコンパイルするために保存しようと思ったら、 パソコンがフリーズして消えちゃいました。 どなたか復元方法知ってる方いませんか:y=-( ゚д゚)・∵;; ターン
>>836 わからんぞ。win386.swpをサルベージしたらあるいは・・・。
>>836 お世話になりました。
||
Λ||Λ
( / ⌒ヽ
| | |
∪ 亅|
| | |
∪∪
:
:
‐ニ三ニ‐
840 :
デフォルトの名無しさん :02/08/18 23:39
Appletからダウン元(codebase)のサーバーへソケット貼りたい時どうしたらいいんですか? 普通にソケット張ろうとするとセキュリティエラーとかなります
>>840 あげくにマルチポストですか。いい度胸です。
>>834 うまく実行できました。ありがとうございました~。
もう一つ単純なことだと思うんですがエラー発生しました。最初はコンパイルできて
たんですが急にできなくなっちゃった。
アプレットの下のほうに[Start:アプレットが初期化されていません。]ってでます。
エラーはないと思うんですが何かの不具合ですか?
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class dentaku extends JApplet implements ActionListener{
String s[];
JButton b[];
JTextField t=new JTextField("",30);
JPanel p=new JPanel(new GridLayout(4,0,10,10));
public void init(){
s=new String[11];
b=new JButton[11];
getContentPane().setLayout(new BorderLayout());
for(int i=0;i<12;i++){
s[i]=Integer.toString(i);
b[i]=new JButton(s[i]);
p.add(b[i]);
b[i].addActionListener(this);
}
getContentPane().add(t,BorderLayout.NORTH);
getContentPane().add(p,BorderLayout.SOUTH);
}
public void actionPerformed(ActionEvent e){}
}
>アプレットの下のほうに[Start:アプレットが初期化されていません。]ってでます。 自分でぐぐれ。腐るほど出てくる。
そんなんでエラーの原因わかんないよ、教えて君でスマソ、マジお願い
>>846 >エラーはないと思うんですが何かの不具合ですか?
はっきりした。お前の頭。
>>848 見たけど具体的な改善方法がどこにも書いてないYO!!頼むで教えて、原因は
ソースにはないってことしかわからない
>しね
852 :
デフォルトの名無しさん :02/08/19 02:07
毎日、動くバッチが正しく動いているかテストするためにシステム時間を10分ごとに24時間進めるプログラムを作ろうと思っています。 システム時間を取得したり、変更したりするにはどのようにすればよいのでしょうか? また10分経過したかどうかはどのようにして認識すればよいのですか?
>>842 アプレットを起動した環境のコンソールにエラーがでているから
みてごらん。配列の個数とかのマジックナンバーをそのまま
ソースに書き込むのはbugのもとだから避けるってのは定石。
854 :
デフォルトの名無しさん :02/08/19 02:29
おまいらお疲れさん
>>837 あっあるかもね。破片が出てくるかもしれない。
組み直した方が早(略
「とにかくセーブをこまめにする」という基本ができていない点をなんとかしたほうがいいな。
>>849 >> YO!!
質問している立場で YO!! かよ。 氏ねよ さっさと
>>857 思ったことを書かなくてもいいです。じっとしていてね。
860 :
デフォルトの名無しさん :02/08/19 08:52
すみませんがどうしてもわからなかったので質問させて下さい。 ArrayListにObjectを、ループを用いてaddしたいとおもっていますが、 なぜか同じループの最後のObjectが全ての要素に入ってしまいます。 //------------------------------------------------------------// import java.util.ArrayList; public class Test { static ArrayList list = new ArrayList(); public static void main(String[] args) { Integer inte = new Integer(0); int counter = 5; for(int cnt = 0; cnt < counter; cnt++) { inte = new Integer(cnt); list.add(inte); } for(int cnt = 0; cnt < counter; cnt++) { System.out.println(cnt + " : " + inte.toString()); } } } //------------------------------------------------------------// add(Object o)は要素の最後に追加すると説明があったので、↑では 0:0, 1:1, 2:2, 3:3, 4:4となって欲しいのですが、結果は 0:4, 1:4, 2:4, 3:4, 4:4となってしまいます。 ご教授よろしくおねがいします。
861 :
デフォルトの名無しさん :02/08/19 08:54
// なぜか同じループの最後のObjectが全ての要素に入ってしまいます。 →なぜかループ最後にnewされるObjectが全ての要素にはいってしまいます。 のまちがいです(^^;
862 :
デフォルトの名無しさん :02/08/19 09:00
>>860 あたりまえだ。
listがArrayListオブジェクトなんだろ?
>>System.out.println(cnt + " : " + inte.toString());
System.out.println(cnt + " : " + list.get(cnt));
せめてコード見直してからPOSTせよ。
863 :
デフォルトの名無しさん :02/08/19 09:32
>>862 すみません、寝ぼけてました。
たしかに、ご指摘通りに書き換えると結果どおりですね。
実はIntegerオブジェクトじゃなくて、二次元配列でやっていてうまくいかず、
質問用にIntegerにしたサンプルで投稿したのですが、
二次元配列でやってみた所解消されませんでした。
public class Test {
static ArrayList list = new ArrayList();
public static void main(String[] args) {
int temp[][] = new int[1][2];
int counter = 5;
for(int cnt = 0; cnt < counter; cnt++) {
temp[0][0] = cnt;
temp[0][1] = 10;
list.add(temp);
}
for(int cnt = 0; cnt < list.size(); cnt++) {
temp = (int[][])list.get(cnt);
System.out.println(cnt + ":" + temp[0][0] + "," + temp[0][1]);
}
}
}
結果:0:4,10 1:4,10 2:4,10 3:4,10 4:4,10
また、馬鹿なことやってるでしょうか?
ご教授おねがいします。
別にコード通りの結果が出ていると思いますが。
Integerはループ内でnewしてるのに・・(以下略
>>861 // はコメントであって、引用符じゃないので、使い間違わない方が良い。
867 :
デフォルトの名無しさん :02/08/19 11:34
>> 864 0:0,10 1:1,10 2:2,10 3:3,10 4:4,10 って出したいのですが上のではダメなのでしょうか? addがおかしいのでしょうか。 >> 865 申し訳ありません、以後気をつけます。
868 :
デフォルトの名無しさん :02/08/19 11:40
ループ内でtemp[][]をnewしてやると、望み通りの結果になりました><
どうして外でnewしたものを使うと、全て同じになるのでしょうか?
# 上の私のレス、
>>865 でなくて、
>>866 ですね、すみません。
interface IA; class A implements IA; の時 IA inf = new A(); としたのですが、その後 A a = inf; の様に元に戻せないのでしょうか?
871 :
デフォルトの名無しさん :02/08/19 13:01
Java でも crypt 使えますか?
>>872 多態性とは あんまし関係ない気もする…
>>873 の自己レス。
使う方法わかりました。Applet じゃぁ駄目なようだけど。
876 :
デフォルトの名無しさん :02/08/19 15:52
3つのパネルのサイズと位置を設定したいんですが、setBoudsだと1つしか その設定にならなかったのですが何か他のものを使うのでしょうか?
>876 よくわからんが Panel p1 = new Panel(); Panel p2 = new Panel(); Panel p3 = new Panel(); p1.setBounds(20,30,10,20); p2.setBounds(40,50,10,20); p3.setBounds(60,70,10,20);
レスありがとうございます。 その方法っぽくやってるのですがたとえばこのソースだとpg2がセンター全部黄色になってしまいます。 この原因はなんでしょうか? 以下がソースの一部です class V2sampleFrame extends JFrame{ private JPanel pg1,pg2; public V2sampleFrame(){ setSize(600,400); setTitle("V2sample"); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); JPanel Pmenu=new JPanel(); JButton bt1=new JButton("ボタン1"); Pmenu.add(bt1); bt1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ pg1.setBackground(Color.blue); pg1.repaint(); } }); JButton bt2=new JButton("ボタン2"); Pmenu.add(bt2); bt2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ pg2.setBackground(Color.yellow); pg2.repaint(); } }); Container c=getContentPane(); c.add(Pmenu,"North"); c.add(pg1=new JPanel()); c.add(pg2=new JPanel()); pg1.setLayout(null); pg2.setLayout(null); pg1.setBounds(30,40,100,50); pg2.setBounds(30,40,100,50); } }
Container c=getContentPane(); cのLayoutを変えないとダメなんじゃないかな
>>880 レスありがとございます
cのLayoutを変えるとはどのようにするのがいいんでしょうか
ちなみに上のソースを実行するとボタン1を押した時にはちゃんと設定した(30,40,100,50)に塗りつぶしてくれるのですが
ボタン2はPmenuのパネル以外の部分全部が色がついて塗りつぶされてしまい設定した場所に出てくれません
どこの書き方がおかしいのかわかりません
よろしければアドバイスお願いします
882 :
ななしちゃん ◆xEQ8vQ62 :02/08/19 17:15
c.setLayout(null); Pmenu.setBounds(適当に); ただ同じ位置に同じ大きさのパネル置いてボタンによってそのパネルの色を変えたいなら パネル1個置いてボタンクリック時に色だけ設定してrepaintした方がいいと思うけど
>>883 ありがとございました!うまくいきました
Pmenuのほうもサイズ決めないといけなかったんですね、勉強になりました
あとあのソースは位置同じになってましたが実際は違う位置にしてました。書き間違えでした、すみません
みなさんありがとうございました。
887 :
デフォルトの名無しさん :02/08/19 17:56
あとひとつ、 パネルを囲んでくれるようなものってないんでしょうか たとえばこのスレの囲みとかのような・・
なにがあとひとつなんだ?
889 :
デフォルトの名無しさん :02/08/19 18:13
もうひとつ ちんちんかんでくれるような女っていないでしょうか たとえばごまきみたいな顔してて・・
890 :
デフォルトの名無しさん :02/08/19 18:14
さらにひとつ ぱいぱいただで揉ましてくれる女も欲しいです。
891 :
ななしちゃん ◆xEQ8vQ62 :02/08/19 18:21
宣伝じゃありません!私はそこのサイトの利用者なんですけど、 たまにまったく違う色で書き込みをしている人がいるんです。 そういう違う色での書き込み方法はありませんか?
892 :
デフォルトの名無しさん :02/08/19 18:35
最近 発売したJAVAの月刊誌ってなんてヤツ? バックナンバー頼めるかな。
>>894 そんなに目頭を熱くして怒る程のことじゃないだろ
896 :
デフォルトの名無しさん :02/08/19 22:19
初心者です。 初歩的な質問で申し訳ないのですが、どなたか御存知ないでしょうか。 アプレットでチャット(クライアント側)を作成しています。 TextFiledに文字を入力し、リターンでActionEvent→サーバへ送信 という形式をとっています。 このTextFieldが曲者で、日本語を入力しようと思うとチカチカ点滅してどうしょうもありません。 さらにスレッドの時間差なのか、何か文字を入力するとキーボードを叩いてから2、3秒後に TextFieldに文字が書きこまれてしまいます。 点滅はするし、入力と実際の画面のタイムラグはすごいし、どうしていいか解りません。 何とかならないのでしょうか? どなたかご存知でしたら、よろしくお願い致します。
>>896 なんか作り方から間違えているとしか言えない。
8月号の表紙にstartって書いてあるけど、8月が創刊号なの? 6月か7月から新しく発売された本だった気がするんだけど。
>>895 ネタにマジレスかもしれんが目くじらを立ててじゃないか?
まぁ、怒涙と言う言葉もあるが・・・。
質問です。 javaアプリケーションで外部プロセスを起動しようとしています。 外部プロセス自身は起動できているようです。しかし prog >>outfiles のようにリダイレクトでファイルに追加書き込みが出来ませんでした。 そこで outlog >>outfiles をシェルスクリプトにして、それを起動使用しましたがやはりダメでした。bash -c 'outlog >>outlog' を起動してもダメでした。 外部プログラムを起動して結果リダイレクトするにはどうすればいいのでしょうか? ちなみに、ProcessクラスのInputStreamを読み込むと正常に読めているようです。 外部プログラムはCやperlやシェルスクリプトです。 OSはlinux、jdk1.3
>>901 やったことないから分からんしAPIドキュメントにも書いてないけど, そういう動作が普通なのかも.
Process#getInputStream()で読み取ってファイルに書き込んだら?
>>901 > bash -c 'outlog >>outlog' を起動してもダメでした。
これは駄目だろ。
>>903 ,904 thanx
Process#getInputStreamで読み取ってファイルに書き込む方法だと正常に動作しました。
しかし、いまいち納得がいきません。
|(パイプ)や>>(リダイレクト)の文字列を解析するのって、シェルですよね?
なんで、シェル経由でリダイレクトの>>を認識をさせればいいと思ったですがダメでした。
906 :
デフォルトの名無しさん :02/08/19 23:36
今電卓作成中です。四則演算の組み合わせがうまくいきません。入力 した数値をラベルに出力してラベルからgetText()でとってきて計算させてます。 +-*/押すごとに計算結果が表示されてきます。 5+10-1など四則が2個以上になるとうまくいきません。
>>906 自分でそうなるように書いてるんだから当り前なんじゃない?
電卓、Javaとかで検索してみたらいろいろヒットすると思うぞ。
>>906 一体どういう処理をしてるんだ?
二回目の演算で左辺に来るのは直前の計算結果だぞ。その辺はOKか?
912 :
デフォルトの名無しさん :02/08/20 01:40
age
914 :
デフォルトの名無しさん :02/08/20 07:46
あげ
JFrameとFrameはどう使い分けるべきなんでしょうか? JFrame(or Frame)のメリット、デメリットとかありましたら教えて下さい。
917 :
デフォルトの名無しさん :02/08/20 12:45
swingで電卓作成,textFieldを上部に1つ作成(計算過程と結果を入力するため) JButtonを0~9+,-,=作成(とりあえず+,-だけで),そして配置,windows付属の電卓 みたいに+,-を押すごとに合計結果がtextfieldに表示されるようにする。 イベント処理がわかりません。 public void actionPerformed(ActionEvent e){ for(int i=0;i<10;i++){ //0~9までボタン作成 if(e.getSource()==b[i]){ str=Integer.toString(i); t.setText(str); //押されたボタンを表示 } if(e.getSource()==b[10]){ //+が押された時 str=t.getText(); kazu=Integer.parseInt(str); goukei=goukei+kazu; str=Integer.toString(goukei); t.setText(str); flag++; //通常は0で初期化されていて+が二回以上おされたら増加, } if(e.getSource()==b[11]){ //-の処理 str=t.getText(); kazu=Integer.parseInt(str); goukei=goukei-kazu; str=Integer.toString(goukei); t.setText(str); } if(e.getSource()==b[12]{ //イコールの処理 if(flag==0){ //+が一回押されたときだけとってくる str=t.getText(); kazu=Integer.parseInt(str)+ } str=Integer.toString(goukei); t.setText(str); flag=0; }
入力:処理 123:表示 +:今表示している数字を変数aに、+フラグオン 456:表示 -:変数aと今表示している数をフラグに従った演算子(ここでは+)で演算し、結果を変数aに。-フラグオン こんな感じでしょ。
920 :
デフォルトの名無しさん :02/08/20 13:01
もう疲れた。 しつこい。
>917 てか、これで2桁以上の数字の表示はできるのか?
>>923 それ修正しようと思ったらフルスクラッチ並みに面倒。やめとけ。
925 :
デフォルトの名無しさん :02/08/20 15:03
パネルの枠付けは出来ないものでしょうか? サイズ決めてもどのへんまで広がってるのかわからないので
>925 パネルの内側に対する枠付けなら PanelオブジェクトのpaintメソッドでdrawRectとか
J2SE v1.4の正規表現って使いにくくない?
なるほど、drawRectで長方形を引くのですか ドモサンクスです
drawRectで囲んだらパネルの中に書いていた文字などが消えてしまいました・・ 枠を先に書いてからパネルの中身を書くのでしょうか?
ソースは?
934 :
デフォルトの名無しさん :02/08/20 17:13
JTableのセルにJSliderを貼り付けるってできますかね? TableCellRendererだとJSliderの表示すらしてくれなくて。
>>928 使いにくいんで私はつかうのやめました。なんであんなに使いにくいんだろうか?
>>939 話してる程度が一緒だよ。
非常に低レベル。
しょうもない愚痴ならICQとかでやってくれ。
ここは情報を交換するための物だよ。
>>935 が情報だというのなら情報工学の基礎から勉強し直した方がいい。
どんなところがどんな風に使いづらくて、どんなだったらいいのか、と書けば有益な情報交換が出来ように。 煽りだけなら(・∀・)カエレ!! ちなみに、パフォーマンスを無視していいならString#replaceAll()/replaceFirst()っていう ユーティリティメソッドが用意されてる。
944 :
デフォルトの名無しさん :02/08/20 22:23
>934 できます。 TableCellRenderer で。
946 :
デフォルトの名無しさん :02/08/20 22:42
>>943 どこがどう使いやすいのか教えて下さい。
>>943 Perl のような使い方をしたい。できるの?
>>947 String#replaceAll()じゃ不満ということ?
JavaはPerlじゃないんだから、「Perlのような」では広すぎると思うが・・・
org.apache.oro.text.perl.Perl5Util
>>947 a ~= s/^ahoka$/nanda dadano ahoka/g;
とかやりたかったの?
もちろん出来ないよ。こんなPerlの方言。
これだけでJavaの正規表現を否定したの?
ここまでいくと中傷だよ。
952 :
デフォルトの名無しさん :02/08/21 00:26
厨房な質問ですまそ。 Javaのメソッドやライブラリが多くて全部覚えきれないけど、 みんなどの程度覚えてるの? また、これだけは覚えておけってところある?
>>952 気が付いたら必要な物は頭に入ってる。後各種IDEの補完機能。
とにかくリファレンス片手にプログラム書きなされ。
>>953 やっぱりプログラム書きまくるのが一番ですね。
どうもありが㌧
955 :
デフォルトの名無しさん :02/08/21 04:26
>>932 枠が書きたいの?
ふつうはjavax.swing.JComponent#setBorder()せんか?
へー あの正規表現を使うの面倒だと思っている人少ないんだな。ちょっとびっくり。 StringBuffer の delete , insert , append は使いやすいが、 Pattern と Matcher を作って、それを replaceAll かけたその結果が、また別の String に入る。 ってのが面倒だと思うよ。 StringObject.replaceALL(oldText, newText); と簡単に扱いたいものだ。
>>943 > ちなみに、パフォーマンスを無視していいならString#replaceAll()/replaceFirst()っていう
> ユーティリティメソッドが用意されてる。
プッ
Java マンセー野郎には、Javaの文句は禁止だな。全部使いやすいと思え!
>>956 ああ、Perlの正規表現すら使いこなせてない人か。
複数パターンが欲しい物も世の中マッチ文字列が欲しい局面もあるんだよ。
>>950 >a ~= s/^ahoka$/nanda dadano ahoka/g;
これは、
a = a.replaceAll("^ahoka$", "nanda dadano ahoka");
とは違う?普通に出来るけど。
$を行末にマッチさせたかったら、Pattern/Matcher使わないとダメのようだ。
>>956 >StringObject.replaceALL(oldText, newText); と簡単に扱いたいものだ。
StringObjectってのは何?↑が
newText = oldText.replaceAll(正規表現, 置換文字列);
に比べて大幅に使いにくい、とはどうしても思えないんだが・・・
Pattern p = Pattern.compile("^ahoka$");
a = p.matcher(a).replaceAll("nanda dadano ahoka");
これはまぁPerlに比べたら「使いにくい」という気持ちもわかるが。
それとも\\エスケープの話かな?
煽りは放置で
966 :
デフォルトの名無しさん :02/08/21 10:43
質問しといて、つっこむと放置だってさ・・・。めでたい脳みそだな。
>>961 > Pattern p = Pattern.compile("^ahoka$");
> a = p.matcher(a).replaceAll("nanda dadano ahoka");
> これはまぁPerlに比べたら「使いにくい」という気持ちもわかるが。
使いにくい。けど、自分で正規表現を組むことを考えたら、それよりはマシ。
ってところだね。
なにがなんでもreplaceAllを使う必要もなく、StringBuffer の delete , insert ,
append と、適材適所で使えばいいだろう。
ってことだね。
>>960 > ああ、Perlの正規表現すら使いこなせてない人か。
のようなつまらない妄想で人を煽るのはやめろな。
969 :
デフォルトの名無しさん :02/08/21 10:47
>>967 誰なのか聞かないと発言できないのか?(わら
>>956 が「StringObject」ってのをどういう意味で使ったのか?っていう意味
流れを見たらわかる。
Stringクラスのオブジェクトじゃ意味が通じないだろ。
956には検索文字列も置換文字列も無いのに。
理解できないなら黙っとけよ
>>971 理解できているのはあなただけな罠。
何言ってんだかw
このまま1000まで埋まりそうだね。
もう話は解決していると思うように見えるが続くのか?>973
誰か論点の違いを指摘して、この粘着を何とかしてやれよ。
>>976 >誰か論点の違いを指摘して
ここはJavaのスレッドであり揚げ足取り指摘練習場ではありません。
粘着である
>>976 は直ちに去るべきです。
次のご質問をどうぞ・・・・・・・・・・・・・・・・・
>>968 >使いにくい。けど、自分で正規表現を組むことを考えたら、それよりはマシ。
>ってところだね。
これは、自分で正規表現ライブラリを作ったら、という意味?
自分で作っても同じような構成(Pattern/Matcher + ユーティリティメソッド)
になると思うんだけど。
JakartaのPerl5Util#substitute()みたいに、「Perl文法のエミュレート」でもしない限りは
一番妥当ではない?
ちょっとした冗談だったのに・・・。
厨房な質問で申し訳ありませんが、 String は長さが長さが変更出来ない、StringBuffer は、可変長って本とかに書いてある んですけど、 replaceAll は、String で使えるのはなぜですか?(あれ?StringBufferだけですか?)
>>982 結果を別のStringオブジェクトに差し替えてるんじゃないの?
戻り値っしょ。変換結果。
>>983 Stringをいじるのではなく、別のStringに新しい文字列を入れているんですね。
ありがとうございました。あたまがすっきりしました。
>>979 >>使いにくい。けど、自分で正規表現を組むことを考えたら、それよりはマシ。
>>ってところだね。
>これは、自分で正規表現ライブラリを作ったら、という意味?
↓
「もし自分で正規表現ライブラリを作ったらもっと使いやすいものが作れる。という意味?」
に訂正。
考えたらOROのPerl5Util#substitute()もユーティリティメソッドだから結局同じ構成だった。
Jakarta RegExpも同様。
シツコイな。
>>986 自分が一番偉いと言うことを周りに証明しないと自分の価値を見いだせない方でしょう。
純粋に疑問だから聞いてるだけ。 煽りしか出来ないなら消えろよ
>>988 もう終われっていう空気になっているときに、ズルズルと話を続けるあなたにみんなが
あきれているようにみえるよ。消えるのはあなたのほうですよ。
次のご質問をどうぞ・・・・・・・・・・・・・・・・・
>>991 このスレ埋めたいのですが良いでしょうか?
要するに十分納得のいく構成、っていうことか。 何か他に画期的な手法があるのかとオモタヨ。無いならOK
998
埋め立てsage。
>>990 大丈夫、時間が解決してくれるよ…新スレになればきっといなくなってくれるから。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。