【初心者】Java質問・相談スレッド79【大歓迎】
javaプログラム内で他のjavaプログラムを実行したいのですが、 同じディレクトリ内にあるjavaプログラムの実行はできたけど、 他のディレクトリ内にあるjavaプログラムを実行させるにはどうしたらいいのでしょうか? 同じディレクトリ内のプログラム実行は以下の記述でできました。 Runtime r = Runtime.getRuntime(); Process proc = r.exec("java test"); 例えば「C:\java2」のディレクトリ内にあるtest.javaを実行するには上記のを どうかえればいいのか教えてください。
作業ディレクトリを設定する
4 :
2 :2006/01/11(水) 17:14:54
exec(String[] cmdarray, String[] envp, File dir) っていうのを見て色々やってたんですが、 String[] envp の部分の書き方がわからないんです。 これ環境指定しなくてもできるんですか?
まず試せば?
1.5なら ProcessBuilder#directory(File)で設定すればよい
>envp が null の場合、サブプロセスは現在のプロセスの環境設定を継承します。 とくになければNULLでええのちがうか
8 :
デフォルトの名無しさん :2006/01/11(水) 18:27:17
NULLは拙いだろう、NULLは。
9 :
デフォルトの名無しさん :2006/01/11(水) 18:56:00
テキストファイルの書き込みなのですが ログファイルのように最後に付け足すのではなく 1行目に挿入するようにするのはどうするのでしょう? 行数が少ないほど新しい、多くなるほど古くなる といった感じに書き込みをしたいのですが (Webチャットのログみたいな感じ)
10 :
デフォルトの名無しさん :2006/01/11(水) 19:24:11
サーブレット(MVCモデル)について質問です。 同じ画面内で、検索条件を入力して検索実行⇒検索結果を表示させる といった場合に、サーバー側では、ビーンに対して、検索結果、 つまり今回の処理で画面上で上書される項目のみをビーンに設定したいです。 しかし、単に空っぽのビーンに検索結果を設定しただけでは、 アクション後の画面で検索条件が空のまま表示されてしまう。 それを回避するために、以下の様な実装を行っています。 ・jspでは、検索条件をサーバーに送信する。 ・コントローラでは、検索条件をマッピングしたビーンを生成し、アクションクラスにビーンを渡す。 ・アクションクラスでは、ビーンに検索結果のみを追加する。 この仕組みでうまくいっていたのですが、新たな問題が発生しました。その内容は 1画面内で検索ボタンが2:検索結果2という画面を作成しなければいけません。 現状の仕組みだと検索ボタンAが押下された時に、 検索条件@、検索条件Aはそのまま残り、検索ボタンAも表示されるんですが、 検索結果@が消えてしまう。 検索結果@はコントローラ⇒アクションクラスに渡すビーンにマッピングをとっていない為です。 これを回避するために、検索結果もサーバに送信し、 コントローラ⇒アクションクラスにビーンを渡す際に、検索結果もマッピングをとる (つまり、コントローラー側で現状の画面全ての状態を記憶したビーンを生成する) ようにしたいと思います。 jspで検索結果(入力フォーム部品ではなく、通常のテキスト)をサーバに送信するにはどうしたらいいでしょうか? それとも他の回避方法はありますか? (ビーン丸ごとjspからサーバーに送るとかできるんですか?)
11 :
デフォルトの名無しさん :2006/01/11(水) 19:29:54
>>10 の続き
1画面内で検索ボタンが2:検索結果2という画面を作成しなければいけません。
現状の仕組みだと検索ボタンAが押下された時に、
検索条件@、検索条件Aはそのまま残り、検索ボタンAも表示されるんですが、
検索結果@が消えてしまう。
検索結果@はコントローラ⇒アクションクラスに渡すビーンにマッピングをとっていない為です。
これを回避するために、検索結果もサーバに送信し、
コントローラ⇒アクションクラスにビーンを渡す際に、検索結果もマッピングをとる
(つまり、コントローラー側で現状の画面全ての状態を記憶したビーンを生成する)
ようにしたいと思います。
jspで検索結果(入力フォーム部品ではなく、通常のテキスト)をサーバに送信するにはどうしたらいいでしょうか?
それとも他の回避方法はありますか?
(ビーン丸ごとjspからサーバーに送るとかできるんですか?)
前スレ977だろ。 もう結論出てるじゃん。
13 :
デフォルトの名無しさん :2006/01/11(水) 19:40:17
>>12 通常テキストとして表示させておいて、
裏でhiddenとして持たせてサーバーに送信する、ということでしょうか?
hidden書かないで、通常テキストをサーバーに送信することはできないんでしょうか?
セッションにデータ置けば?
15 :
デフォルトの名無しさん :2006/01/11(水) 19:48:55
>>14 セッションにデータをおいた場合、
ブラウザの戻る/進むボタンを使用された場合に、
動きがおかしくなりそうです。
アクション時の画面状態と違うデータを使用してしまう可能性が。。。
>>9 新しいファイルに一行書いて、そこに古いファイルを付け足す
>>15 仕様と実装しだい
そもそもあの長文をわかりやすく短くまとめれるかどうかがまず問題
あんなドキュメント仕事で出されたらやりなおしだよ
18 :
デフォルトの名無しさん :2006/01/11(水) 20:10:45
>>17 そんなに怒るなって。
長く書いたのかないと質問の背景を勝手に推測されて、
質問と関係のない答えが返ってきたりするもんでして。
要点をまとめるってことできんのか。
>>18 実際に
>>14 とかは答えになってないし。
できるのかできないのかYes or Noの質問なのにね。
あの文章が怒ってるように見えるのか
23 :
デフォルトの名無しさん :2006/01/11(水) 20:21:45
24 :
デフォルトの名無しさん :2006/01/11(水) 20:23:10
>>17 通常テキストとして表示させておいて、
裏でhiddenとして持たせてサーバーに送信する、ということでしょうか?
hidden書かないで、通常テキストをサーバーに送信することはできないんでしょうか?
この答えは?
分からないなら分からないって言ってくれ、それで諦めがつく。
>>24 そのままの主旨で話つづけたいなら、
Javaの話じゃないんで他所でやってね。
まぁそうだな、通常テキストと同じように見えるように
うまくCSSを書いて<input type="text">並べれば良いんじゃない?
これならhidden使わないけど、どお?
これ以上はもうホントに他所でやってね。
>それとも他の回避方法はありますか?
Javaの話で回避方法考えるなら
セッション使うのが1番に挙げられるだろうけど、
>>15 で却下されちゃってるしねぇ。
26 :
デフォルトの名無しさん :2006/01/11(水) 21:45:34
HTML知識ない奴がサーブレットやるな
釣れた
28 :
デフォルトの名無しさん :2006/01/11(水) 22:26:39
出ました 出ました 出ました 出ました 釣り宣言
Java BeansであってJava Beanでは無い
31 :
デフォルトの名無しさん :2006/01/11(水) 23:09:03
インターフェースを使うメリットって クラスをインスタンス化ではなく、実態のないインターフェースをインスタンス化させて そのインターフェースがそれぞれ自分を実装している クラスのメソッドを見に行くって感覚? つまりその事で振る舞いがクラスの自由に出来る でも、それだと どのクラスが自分(インターフェース)を実装してるのかってわかるの?
何で親が子を意識せなきゃいけないのか
33 :
デフォルトの名無しさん :2006/01/11(水) 23:59:57
>>1 にあるとは思いますが上記のWEBを見てもどうしても
分からなかったので質問です。
コンパイルしたのちプログラムを実行しても
下記のようなエラーが出て実行できません。
Exception in thread "main" java.lang.NoClassDefFoundError
ソースはまず間違いがないと思います。↓
public class SampleD1L3 {
public static void main(String args[]) {
System.out.println("はじめてのJavaアプリケーション");
}
}
環境変数の設定も間違ってないと思いますし、なぜ実行出来ないのか
どうしても分かりません。ご親切な方教えて頂けませんか?
set CLASSPATH=%CLASSPATH%;.
35 :
33 :2006/01/12(木) 00:03:30
>>34 環境変数の設定は間違いないっていってんだろ
36 :
デフォルトの名無しさん :2006/01/12(木) 00:12:09
すいません。33は私ですが。 このスレIDないんですね。
37 :
デフォルトの名無しさん :2006/01/12(木) 00:26:00
class Super{ static int d=10; static void meth(){ System.out.println(d); } } class Sub extends Super{ static double d=30.0; static void meth(){ System.out.println(d); } } class InstanceChk { public static void main(String[] args) { Super s = new Sub(); System.out.println(s.d); s.meth(); } }
38 :
デフォルトの名無しさん :2006/01/12(木) 00:27:32
class Super{ static int d=10; static void meth(){ System.out.println(d); } } class Sub extends Super{ static double d=30.0; static void meth(){ System.out.println(d); } } class InstanceChk { public static void main(String[] args) { Super s = new Sub(); System.out.println(s.d); s.meth(); } } 上のコードでは10 30.0 下のコードでは10 10が 出力されます。javaを1ヶ月やってみたのですがどうしても わからないのです。ご教授ください。
public void mouseClicked(MouseEvent e){ int x = e.getX() ; int y = e.getY() ; bd.p1.set(x , y); repaint(); } 画面上でクリックした座標を、 Interfaceで共通化したプレイヤーのp1クラスに投げsetメソッドを呼びたいのですが、 うまくいきません。一体どの辺りに問題があるのでしょうか・・ コンパイルは通りますが、クリックするとコンソールに以下のエラーが吐かれます ↓(最初の2行) 「thread "AWT-EventQueue-0" java.lang.NullPointerException at BP.mouseClicked(BP.java:460)」
40 :
38 :2006/01/12(木) 00:30:37
ちなみに上と下の違いはstaticがあるかないかの違いです。
41 :
38 :2006/01/12(木) 00:32:47
37は間違えです すいません class Super{ int d=10; void meth(){ System.out.println(d); } } class Sub extends Super{ double d=30.0; void meth(){ System.out.println(d); } } class InstanceChk { public static void main(String[] args) { Super s = new Sub(); System.out.println(s.d); s.meth(); } }
>>31 たとえば、二つの実装
Collection aCollection = new ArrayList();
aCollection.add(newElement);
-----------------------------------------------
Collection aCollection = new HashSet();
aCollection.add(newElement);
このとき、別にCollectionというインターフェースが、
ArrayListやHashSetのaddメソッドを見つけにいっているわけではない。
インターフェースはあくまで、aCollectionと言う変数が参照している
オブジェクトに特定のシグニチャのメソッドが存在することを保証する
ためのもの。(例ではadd()というメソッドが保証されている)
逆に、シグニチャが保証されているっていうことは、そのシグニチャの
メソッドを呼び出している限り、相手先がどのクラスのインスタンスで
あるかは関係なく、好きなように変えられるってのがメリット。
たとえば、集合に対する操作をインターフェースとして定義しておけば
・集合に要素を追加する
・集合から要素を取り除く
・集合の要素数を調べる
構造が異なる集合であっても、上記の操作は自由に行える
・重複を許さない集合
・重複を許す集合
インターフェースではなく、抽象クラスでも同様なことは実現不可能ではないけどね。
>>41 エスパーに対する挑戦かと思った
static はオーバライドできない
44 :
38 :2006/01/12(木) 00:35:09
41のコードでは10 30.0 38のコードでは10 10が 出力されます。javaを1ヶ月やってみたのですがどうしても わからないのです。ご教授ください。
45 :
38 :2006/01/12(木) 00:44:53
早速ありがとうございます。staticはオーバーライドできないのですか 気づきませんでした。 あと参照変数の型ですがSuperだとなんでスーパークラスの フィールドをつかうのでしょうか。Subにすると当然なのかもしれませんが 型をかえただけで30.0 30.0となります。
>>44 ちなみに
>>37 のコード
Super s = null;
System.out.println(s.d);
s.meth();
としても、NullPointerExceptionはスローされません。
staticメソッドやstaticフィールドを参照する場合、
変数の型は評価されますが、変数の中身までは評価されません。
そんなわけで、staticなメソッドはフィールドを扱うときは
クラス名.メソッドやクラス名.フィールド名
とした方がバグが少なくなります。
Super.dやSuper.meth()ってことね。
>>45 フィールドはオーバーライドできません。
従ってs.dとやると、Superクラスの変数dが参照されます
47 :
デフォルトの名無しさん :2006/01/12(木) 00:54:38
>>44 同名のインスタンス変数がある場合、intが優先されるから
48 :
38 :2006/01/12(木) 00:55:11
>46 そのコードいれてみました。staticありのほうだと 10 10とでました。理由がよくわかりません。 入門書よく読んでるつもりだったのですが。べんきょう不足のようです。
あっ Super s = new Sub(); System.out.println(s.d); はSuperクラスのdを参照して Sub s = new Sub(); System.out.println(s.d); はSubクラスのdを参照するってことね
それがコードを見た瞬間に判断できないものだから staticなメソッドやフィールドは変数でアクセスするのは禁止になってるのさ クラス名.メソッドとしてアクセスする癖をつけること
>>48 staticなメソッド・フィールドを参照している
>>38 のコード
Super s = new Sub();
System.out.println(s.d);
s.meth();
これは下のコードと同値になります
Super s = new Sub();
System.out.println(Super.d);
Super.meth();
つまり、staticなメソッドやフィールドを参照するときは
変数の中身までは評価されないってことです
→クラスメソッド、クラスメソッドと言われているとおり、
どのクラスに属しているかだけが重要になっています。
変数sがSubのインスタンスを参照していても、
>>48 で試されたとおり、null参照となっていても
変数sの型(クラス)はSuperですよね?
53 :
38 :2006/01/12(木) 01:42:33
みなさんありがとう、ここ最近この問題ばかりやってました。もやもやが
やっと取れそうです
>staticなメソッドやフィールドは変数でアクセスするのは禁止になってるのさ
禁止だったのですか、eclipseにオレンジの下線はいってましたが、あれはそういう意味なのかな。
コンパイルできてたから問題ないと思ってました。
>→クラスメソッド、クラスメソッドと言われているとおり、
どのクラスに属しているかだけが重要になっています。
変数sがSubのインスタンスを参照していても、
>>48 で試されたとおり、null参照となっていても
変数sの型(クラス)はSuperですよね?
これはすごい参考になりました。つまりクラス名.メソッド名
と参照変数でs.メソッド名は同じ意味だったんですね。
つまりSuperのs変数が参照してるってことでしょうか。
参照先ばかり気になってました。
ありがとうございましたm(__)m
54 :
38 :2006/01/12(木) 01:59:01
staticつけるとオーバーライドされた内容までひょうかされず、 Superのs.meth()が実行されて、 デフォルトだとその内容まで評価されて、サブクラスのメソッドが 使われてるようにみえるということなのでしょうか。 フィールドにはオーバーライドのようなものはないってことですよね。 まちがってたらすいません。頭を整理してるところです。
変数の型には静的な型(プログラムの文面上の型)と動的な型(実行時の実際の型)が ありまして、static を付けているものの場合は静的な型のものが使われるというだけです。 Super s = new Sub(); とした場合、s の静的な型は Super で動的な型は Sub ですから static void meth() の場合は Super のが、void meth() の場合は Sub のが使われます。
>>54 >staticつけるとオーバーライドされた内容までひょうかされず、
static やフィールドは、オーバライドされない。
同名のモノを使った場合は、裏に隠れるだけ。
だから、明示的にスーパクラスを指定すれば表に出てくる。
>staticなメソッドやフィールドは変数でアクセスするのは禁止になってるのさ
言語仕様上は禁止にはなってない(利点は全くないと思われるが)。
まあ、「便所の落書き」だし、釣りも少なくない。信用するのも own risk ということで
ちなみにオーバライドの場合は動的な型によってメソッド呼び出しが切り替わりますが オーバロードの場合は常に静的な型によってメソッド呼び出しが決まります。 public class Test { static void meth(Test t) { System.out.println("Test"); } static void meth(Object o) { System.out.println("Object"); } public static void main(String[] args) { Object o = new Test(); Test.meth(o); // Object と表示される。 } }
>>38 ちょっと、長文ですが読んでみてください。
@staticなフィールドやメソッドにアクセスすることについて
変数(sのこと)でstaticのメソッドやフィールドを参照するのは、
禁止されているわけではありません。
クラスに属するという意味は、個々のインスタンスに関連付けされていないということ。
言い換えると、全てのインスタンスで共通のフィールド(メソッド)という意味です。
なので、クラスに属しているフィールドやメソッドを、インスタンスが格納されている変数で
参照するのは考え方が違いますよ!クラス名で参照して下さい!ってeclipseに警告されているだけです。
Aスーパークラス/サブクラス間のフィールドやメソッドについて
スーパークラスと同じシグネチャ(メソッド名と引数の型と引数の順番のこと)を持つメソッドを
サブクラスで定義することをオーバーライドと呼びます。
「オーバーライド = 上書き」と思って下さい
スーパークラスと同名のフィールドをサブクラスで定義することを
オーバーライドとは呼びません。隠蔽と呼びます。
「隠蔽 = 隠しているだけ」と思って下さい。
なので、
>>41 の例で説明すると
Super s = new Sub(); <-- 型はSuperでもインスタンスはSubを参照
System.out.println(s.d); <-- 隠蔽されているSuperのインスタンス変数dを参照
s.meth(); <-- 上書きされているSubクラスのインスタンスメソッドmeth()を参照
以上です。少しでも理解につながれば幸いです。
59 :
58 :2006/01/12(木) 02:56:07
>>38 B
>>54 について
staticなメソッドはオーバーライドされません。また、
>>58 の@でも説明したとおり、
staticは個々のインスタンスには関連しません。
さらに言い換えると、staticを参照するにはインスタンスは無くても構わないということです。
つまり、以下のコードの1行目は必要無いということです。
1行目: Super s = new Sub();
2行目: System.out.println(Super.d);
3行目: Super.meth();
以上です。理解できました?
60 :
38 :2006/01/12(木) 03:15:24
もうわかったからお前ら黙ってろ。
質問です。 wikiのページを読んで、Javaでは参照渡しが 出来ないという事はわかったのですが、その場合、 引数に渡す値に参照値を入れるにはどうしたらいいでしょうか。 Object A; method( A ); void method(Object a) { Object b = new Object(); a = b; } このようなコードを書いたのですが、これでは引数として渡す値Aには bの参照値を入れられません。どのようにしたらいいでしょうか。 低レベルな質問かもしれませんが、よろしくお願いいたします。
class RefA { public Object A; } void method(RefA ref) { Object b new Object(); ref.A = b; }
配列にしとく
64 :
デフォルトの名無しさん :2006/01/12(木) 08:52:02
例えばlog.txtというテキストファイルの指定行の 内容を取ってくるメソッドを作りたいのですが どのようにやればいいのでしょう? ご教授願います
もうちょっと考えてから具体的に質問して欲しいものです
66 :
デフォルトの名無しさん :2006/01/12(木) 10:16:30
JMFを使って動画再生ソフトを作っているのですが、 動画を再生しながらその上に文字を表示するにはどうすればいいでしょうか?
>>56 事実上の禁止だろ
そんなバグ出してくださいよというコード書くところに仕事はださん
null代入並みのおろかなことだ
68 :
38 :2006/01/12(木) 11:47:31
レスおくれました。ごめんなさい。 学校があるので寝てしまいました。60は私ではありません。 ご指導ありがとうございます。家に帰ったらゆっくり見たいと思います。
69 :
デフォルトの名無しさん :2006/01/12(木) 12:45:59
>>61 Object[] A = new Object[1];
method( A );
void method(Object[] a) {
Object b = new Object();
a[0] = b;
}
で、上の関数外ではA[0]で扱うとか、ワンクッション置くようにすれば。。。
70 :
デフォルトの名無しさん :2006/01/12(木) 12:58:48
そんなバグ出してくださいよというコード書くところに仕事はださん 。ウッキー
>>71 DBごとの最適化の話はDB板へいったほうがいいかと
でも実際通常1以下のクエリ出すほうが早いね
DatabaseMetaDataからの取得でカラムの名前覚えてるやつはそうそういないし
結果セットで受け取るためにコンパイルエラーにならんし
>>72 やっぱり速度面なのですかね...
と、データベース板を見落としていました。有り難うございます。
後は目的かと DatabaseMetaDataはDB管理ツールを作る場合に使うが 実際の運用ベースではResultSetMetaData使ったほうがいいとか
>>71 そういうもんだと思えばいいんじゃ?
getColumnsだとたぶん実装はDB2のデータディクショナリ(システムテーブル)を問い合わせてカラム情報を
取得してると思うけど、それより、ダミーの問い合わせの方が早いってことでいいんじゃ??
DB2やJDBCの内部の実装をしってる人が言ってるのかわからんが、
余り悩んでもね。
DatabaseMetaDataからのカラム情報取得はフィルタ条件があるから ほとんどの実装で遅いのは普通 ま、それがネックになるような場所ってあんまりかんがえられないけどな
>>74-76 おお…ありがとうございます。その理由で納得出来そうです。
仰るとおり実際に問題やネックとして悩んでいるわけでは全くありません。
お呪い程度として捉えておきます。
たぶん、俺が思うにDB2側の問題じゃない? フィルタ条件があっても、まさか、全レコードをDBから取ってきて 「DB2側」でフィルタかけるわけじゃないでしょ? フィルタ条件に指定された条件のSQL文を組立てて最小限のデータとってきてるはずだよね? まぁ、組み立てる分もちろん遅くなるわけだが。 まぁ、ResultSetMetaDataの方が早いとは思う。 通常、クエリー発行すれば、データとともに、カラム情報も入ってくるわけだし、 ネットワークトラフィックも余りかからんと思うけど、 そこまで、差が現れるのかが謎だ。
つかさ、実際に試して時間はかってみん。それがベスト。 差がでるかわからんけど。
あ、あと
>>71 で「一つもレコードがないと…」などと宣っていましたが、
ResultSetMetaData から取ればいいので別にダミーのクエリの
結果レコードが無くても構いませんね。すみません。実際取得できました。
ダミーのクエリはどうすんのって話(↑では全部 SELECT してみましたが)はありますが。
>>78-79 あ、ありがとうございます。
非常に貧相な測定ですが、実際試したところ誤差のレベルでした。少なくとも私の用途的には。
>>80 ダミーのクエリは例えば、絶対に存在しないようにクエリーを組み立てる。
例えば、主キーの列Aがあって、絶対0以上なら、
select * from table where a = -1とか。
まぁ、工夫してくれ。
条件指定なしの検索結果リミット設定すればいいだけでは? リミット設定しなくてもたとえばFIRST_ROWSのようなヒントでも 最初の1件だけを高速に返すとかでもいいかもしれんし インデックスがあるなら1件も返されないとすぐに分かるのをかくとかいくらでもね カラム情報を積極的に利用したいのであればDatabaseMetaDataを使う とにかくSQLを発行後、カラム名を自動で取得してループで処理させたいなら ResultSetMetaDataを使う この2択でいいんでね?
う…スレ違いなのに立て続けにアドバイスが。ありがとうございます。
>>82 なるほど。セオリーはそうなのですね。
今回は対象のテーブル構成が事前に分かってないので、
>>83 さんの言うような
制限する形にしようと思っています。FETCH FIRST 1 ROWS ONLY と付けたのみですが...
>>61 Object A;
A = method();
Object method() {
Object b = new Object();
return b;
}
これじゃ、だめかい?
86 :
デフォルトの名無しさん :2006/01/12(木) 18:37:53
質問です。 eclipse3.0を使ってます。 JSPからPOST送信でサーブレットを呼び出すにはどうすればよいのでしょうか? 現在普通に<form>に記述しています。 web.xmlを書かないとだめなんでしょうか? ちなみに、プロジェクト名はkeijiban、パッケージ名もkeijiban ファイル名はbbs.jspとBbsMain.javaです。 お願いします。
web.xmlを書かないとだめだね
88 :
86 :2006/01/12(木) 18:54:12
>>87 ありがとうございます。
自分でweb.xmlを書いて一発で動いたためしがないので、
不安です。
Java 1.4.2とTomcat4.1を使ってJSPを作ってるんですが、メインのJSPに別のJSPをincludeして表示させたときに、includeしたものだけ文字化けしてしまいます。 %TOMCAT_HOME%\conf\web.xmlに <servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> … <init-param> <param-name>javaEncoding</param-name> <param-value>Windows-31J</param-value> </init-param> <load-on-startup>3</load-on-startup> </servlet> のように書いたりしたのですがなおりません。 ただ同じようにJava 1.4.2とTomcat4.1をいれている別のPCでは文字化けしていないので、 %TOMCAT_HOME%\conf\のservlet.xmlやweb.xmlをそれと同じにしたのですが、それでもなおりません。 自分のPCのJava 1.4.2かTomcat4.1かどこかの設定がおかしいのだと思うのですが、見当が付きません。 ご教授願いたします。
90 :
SWT :2006/01/12(木) 19:54:37
すみません質問したいのですが。 javaアプレットでJFrameからJFrameを実行することが出来るのですが、 JLabelで画像を載せると実行できなくなります。 JFrameから新たなJFrameをたちあげそこに画像を載せるには どうすればよろしいでしょうか?
onclickをつかって「jspでデータベースに追加入力」ということは可能ですか? 例:データをtextエリアに入力 ↓ ボタンを押す ↓ DBに追加登録される よろしければご教授お願いします m( __ __ )m
92 :
名無し募集中。。。 :2006/01/12(木) 20:24:53
>>90 実行できなくなるってどういうことか詳しく書け
93 :
SWT :2006/01/12(木) 20:34:39
>>92 説明不足で申し訳ないです。
ActionEventでJFrameが立ち上がるようにしているのですが、
JLabel img = new JLabel(new ImageIcon("ファイル名"));
の一文を加えるだけで立ち上がらなくなってしまいます。
なぜでしょうか?
95 :
SWT :2006/01/12(木) 20:39:11
>>61 です。
>>62 >>63 >>69 >>85 レスありがとうございます。
返り値で取得するのが最も自然なのでしょうが、
返り値ではこのメソッドの成否を返す必要があるのでそれはできず、
ケータイ用アプリなのでできれば新たなオブジェクトを作成せずに、
かつエレガントに取得できないものかと思ったのですが、
良い方法はないのかもしれませんね。諦めました。
いろいろとアドバイスしていただき、ありがとうございました。
なんでマルチが必要な作業なんだよ しかもあっちのスレでは返信なしだし
98 :
デフォルトの名無しさん :2006/01/12(木) 20:44:18
>>96 成否は null が返るかどうかで判定すれば?
null が返ったら失敗、それ以外は成功とか。
すいません本当に初心者的な質問なんですが set CLASSPATH=%CLASSPATH%;. でクラスパスを設定すると、コマンドプロントを開く度に再setしないといけないみたいなので、 ウィンドウズのプロパティから環境変数を開き、CLASSPATHに直接登録しようと思ったのですが、 その書き方がわかりません。 Wikiに環境変数の書き方について書かれているリンクを見つけたのですが、リンク切れでした。 ぐーぐる先生に聞いてみたのですが古いバージョンのものなのかJ2SDK1.4.2_10にはありませんでした。 C:\java\にclassファイルを置いているのですがどうすればいいでしょうか。
OSは?
101 :
99 :2006/01/12(木) 21:03:43
>>100 忘れていました。WindowsXPです。
>でクラスパスを設定すると、コマンドプロントを開く度に再setしないといけないみたいなので、 そうしておけ。面倒ならバッチファイルでも用意しておけ。 環境変数に設定するのはおすすめしない。 必要なクラスパスは、アプリケーションによって違うし、 コンパイル時と実行時でも違うこともあるから。
103 :
99 :2006/01/12(木) 21:09:22
>>102 そうなのですか・・・それではパッチファイルというものにチャレンジしてみます。
超初心者です コマンドプロントで javac と入力してコンパイルできるようにするにはどうしたらいいんでしょうか?
おまwwwwwwwテンプレくらい読めよwwwwwwwww
>105 読んでやってみたんですができませんでしたorz
Wikiにかなりわかりやすく書いてあると思うんだが・・・。 これ以上わかりやすく説明する方法がわからない。
>>106 コマンドラインの知識が要らないIDEつかってみたら?
109 :
デフォルトの名無しさん :2006/01/12(木) 22:07:09
質問です! GUIのチョイスを使いたいのですが、 チョイスのサイズは変えることは可能でしょうか?? また、可能であれば、やり方を教えていただきたいです。 よろしくお願いします;;
110 :
名無し募集中。。。 :2006/01/12(木) 22:10:16
まずはAPIを読めとゆいたいです
チョイスってなんだ?
環境変数のことで質問があります。 javacのコマンドを入れてもコマンドまたはファイル名が違います。とでます。 OSが98でWIKIのやり方どおりでautoexec.batを編集、再起動しても反映されません. どうしていいでしょうか?
プロンプトから 「 set path 」 実行どうぞ。
質問させてください。 フィールドに持ちたいオブジェクト配列を、以下のようにmethod()によって 動的にインデックスを決定して初期化しているのですが、現在のままでは method()を抜けると代入したオブジェクトが破棄されてしまいます……。 もっと賢い動的配列 or 解決案をご存知の方、よろしければご教示ください。 class test { 〜〜〜 ]; class hoge { public test[] objArr; method(){ int i=3; objArr = new test[i] ; objAr[0] = new test; ・・・・ ・・・・ }
set pathをしたら構文が違いますとでます;
嘘つくところに仕事はださん null代入以前のおろかなことだクマー
117 :
名無し募集中。。。 :2006/01/12(木) 22:43:18
98ならコマンドラインの知識なしでautoexecいじるのはちょっとやめたほうがいいぞ win自体が立ち上がらなくなったりする パス設定専用のバッチを使うべき わからなければIDE使う そういやwikiでNetBeansだけやけに古いのを乗せてるのは何でだろう
>>114 破棄されてることに、どうやって気づいたの?
>>119 method()内で初期化した後、別のメソッドから配列要素のオブジェクトにアクセスすると
nullpoで止まったので、ひょっとして消えてるんじゃないかなと思ったのです。
ただ、何となく自分のミスのような気がしてきました。
どうか話半分に聞いておいて下さい
>>117 さん
曖昧な記憶のままなんとなく質問をしてしまっているので……。
質問があります。 Java2Dで画像の背景を透過させる場合はなにを使えばいいんでしょうか?
曖昧な記憶のままなんとなく質問するようなところに仕事はださん 。 null代入並みのおろかなことだ パオーン
123 :
89 :2006/01/12(木) 23:31:15
>>121 普通はデフォで透過すると思うんだけれども、透過しないコードはどうやったの?
アルファ値がないピクセルフォーマットつかってるんじゃないの?
select * from table where 1 = 0
>>125 javacコマンドはつかえるのか?
HTMLでアプレット表示する方法も調べとけ
select * from table where 1 != 1
130 :
デフォルトの名無しさん :2006/01/13(金) 05:02:48
Eclipseを使ってアプレットを作ったのですが(Eclipseでは動作確認済み)、いざhtmlファイルにappletタグ書いてブラウザで動かそうと思うとうまくいきませんでした・・・ ファイル構成が ・Shooting htmlファイル 画像など ・Shooting/shooting Shooting.class(メインクラス) その他classファイル ・Shooting/shootingフォルダ以下にもフォルダがあり、それぞれclassファイルが入っています という感じになっています。 これで、htmlファイルには <applet code="Shooting.class" codebase="./shooting/" width=350 height=600></applet> こんな感じでタグを書いたのですがうまくいきません・・・ どこか間違っているのでしょうか?
>>130 宿題スレでぜんぶアップロードして見てもらったほうが早くないか
132 :
デフォルトの名無しさん :2006/01/13(金) 05:10:20
>>131 そんなに難しいものなんでしょうか・・・?
Eclipseでは動いているので、問題はhtmlファイルを置く位置と書き方だけだと思うのですが・・・
>>132 HTMLファイルはこんな感じか?
<html>
<head>
<title>アプレット</title>
</head>
<body>
<applet codebase="./shooting/" code="Shooting.class" width=600 height=600 >
</applet>
</body>
</html>
SWTで、UMLエディタのようなグラフィカルエディタを作ります。 ただ、操作系をトグルスイッチでなく、Squeakのようなポトペタ(ドラッグ&ドロップ)で作りたいと考えています。 EclipseのAPIをあたったところorg.eclipse.swt.dndが見つかったのですが、もしもっと便利なライブラリが既に存在していれば、ぜひご教示いただけると助かります。
学校の課題でタイピングの製作をすることになり 文字変換をしたいんですけど 参考程度に一度自分で作ってりたいとは思いましたが、 タイピングゲーム本来のシステムとかは他の方 が製作しているので、入力部分からキーワード の合致するかどうかの判定はどう組み込んだらいい でしょうか?
136 :
名無し募集中。。。 :2006/01/13(金) 12:17:36
137 :
デフォルトの名無しさん :2006/01/13(金) 14:18:03
>>133 ううむ・・・
うまくいかないです・・・
Eclipseで動いていたら、コードやフォルダ構造に間違いはないって事でいいですよね?
あ、shootingフォルダってのはshootingパッケージですが関係ありますかね?
138 :
デフォルトの名無しさん :2006/01/13(金) 15:25:37
はじめまして!PC、初心者の者ですが教えを乞いに来ました。 公開型の掲示板で、自作自演を見破るためにリモートホストを調べたいのですが… ソースを開いてもリモートホストらしき物が見つかりません? 何だか…文字化けした様な物が有ったりと… どうしたらリモートホストを調べられるのでしょうか? どうか?お教えてくださる方居ませんでしょうか?。宜しくお願いします。
ここで聞く質問じゃないな
140 :
デフォルトの名無しさん :2006/01/13(金) 15:29:18
>>139 様…何所で質問したら良いでしょうか?お教えくださいm(__)m
142 :
デフォルトの名無しさん :2006/01/13(金) 15:46:54
javabeansなんですが、org.apache.jasper.JasperException: HelloBeanってなっちゃいます。JSPからjavabeansに繋がりません。どう解決したらよろしいかご教授願います。。。
143 :
デフォルトの名無しさん :2006/01/13(金) 15:49:01
教えてください strutsを使ってwebアプリを作ってるんですが Actionクラスを継承したクラスのコンストラクタが1回しか動きません ログインボタン押下→ログインアクション(コンストラクタ動く)→ログアウト→ 再度ログインボタン押下→ログインアクション(コンストラクタ動かない) 誰か理由を教えてください。
144 :
143 :2006/01/13(金) 15:57:48
すみません、自己解決しました
145 :
142 :2006/01/13(金) 16:32:09
org.apache.jasper.JasperException: bean.StringBean at org.apache.jasper.compiler.BeanRepository.getBeanType(BeanRepository.java:135) at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:650) at org.apache.jasper.compiler.Node$GetProperty.accept(Node.java:507) at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:983) at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:1025) at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:1031) at org.apache.jasper.compiler.Node$Root.accept(Node.java:187) at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:983) at org.apache.jasper.compiler.Generator.generate(Generator.java:1891) at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:327) at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:427) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:142) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187) at javax.servlet.http.HttpServlet.service(HttpServlet.java:809) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209) at
146 :
142 :2006/01/13(金) 16:33:16
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at
147 :
142 :2006/01/13(金) 16:35:17
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:595) root cause
148 :
142 :2006/01/13(金) 16:35:53
java.lang.ClassNotFoundException: bean.StringBean at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1407) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1252) at org.apache.jasper.compiler.BeanRepository.getBeanType(BeanRepository.java:133) at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:650) at org.apache.jasper.compiler.Node$GetProperty.accept(Node.java:507) at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:983) at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:1025) at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:1031) at org.apache.jasper.compiler.Node$Root.accept(Node.java:187) at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:983) at org.apache.jasper.compiler.Generator.generate(Generator.java:1891) at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:327) at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:427) at org.apache.jasper.servlet.JspServletWrapper.service
149 :
名無し募集中。。。 :2006/01/13(金) 16:37:01
さすがにうぜぇ
150 :
142 :2006/01/13(金) 16:39:11
(JspServletWrapper.java:142) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187) at javax.servlet.http.HttpServlet.service(HttpServlet.java:809) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118) at
151 :
142 :2006/01/13(金) 16:40:43
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:595) すいません・・・
152 :
142 :2006/01/13(金) 16:43:18
<HTML> <HEAD> <TITLE>Using JavaBeans with JSP</TITLE> <LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css"> </HEAD> <BODY> <TABLE BORDER=5 ALIGN="CENTER"> <TR><TH CLASS="TITLE"> Using JavaBeans with JSP</TABLE> <jsp:useBean id="stringBean" class="bean.StringBean" /> <OL> <LI>Initial value (from jsp:getProperty): <I><jsp:getProperty name="stringBean" property="message" /></I> <LI>Initial value (from JSP expression): <I><%= stringBean.getMessage() %></I> <LI><jsp:setProperty name="stringBean" property="message" value="Best string bean: Fortex" /> Value after setting property with jsp:setProperty: <I><jsp:getProperty name="stringBean" property="message" /></I> <LI><% stringBean.setMessage("My favorite: Kentucky Wonder"); %> Value after setting property with scriptlet: <I><%= stringBean.getMessage() %></I> </OL> </BODY></HTML>
153 :
142 :2006/01/13(金) 16:47:08
154 :
142 :2006/01/13(金) 16:48:33
ご教授お願いします。それでは学校に行ってきます
うぜぇwwwww
青木さん
まるなげでどっかいくなんて宿題スレと間違えてるんだろ
>>152 みればエラーメッセージどおりだし
またただの釣りかもしれん
なにこれjavaプログラマ用に特化した荒らし? 昔スタックとレースが止まらない夢でうなされたことがある Y/N
160 :
142 :2006/01/13(金) 18:24:56
学校の環境でも実行できません。本のソースコードそのままなんですが、 間違っているのですかね?
162 :
142 :2006/01/13(金) 18:41:38
すいません。何がなんだかさっぱりです・・・すいません
163 :
142 :2006/01/13(金) 19:16:56
おまえら態度でかすぎ 教えてやろうって気ないだろ そんな奴このスレに不要だ
ワロス
165 :
名無し募集中。。。 :2006/01/13(金) 19:26:13
ワロス
166 :
142 :2006/01/13(金) 19:26:16
おさわがせしてます、142です
他の142は偽者です
実は
>>142 も偽者です
167 :
デフォルトの名無しさん :2006/01/13(金) 19:26:41
すいません、EclipseとTomcatでJSPを作ってるんですが、JSPがJAVAになったもののパッケージがどのフォルダに置いても「org.apache.jsp」になってしまい、エラーになってしまいます。 どうすればいいですか?
168 :
167 :2006/01/13(金) 21:09:20
170 :
デフォルトの名無しさん :2006/01/13(金) 23:13:49
javaで今GUIをやっており、今画像がスクロールするものを作っております キーボードの上(↑)が押されたら、その画像を消す見たいなのはどうやったらできるでしょうか?
171 :
デフォルトの名無しさん :2006/01/13(金) 23:14:50
GUIで曲を流すにはどうすればいいですか
172 :
名無し募集中。。。 :2006/01/13(金) 23:24:57
>>171 ClipかSourceDataLineを使う
APIにJavaSoundの説明が詳しく乗っているので自分で調べろ
そういやJavaSoundDemoって5.0からは動かないんだよね
142みたいな空気読めないやつは現実でもこんな感じなの?
現実では空気嫁愛用
176 :
名無し募集中。。。 :2006/01/13(金) 23:53:54
空気が読めるなんてエアマスターみたいだな
177 :
デフォルトの名無しさん :2006/01/14(土) 00:31:03
mainメソッドであらかじめ用意してたものが、愛と同じだったらloveと表示させたいんですが ☆☆☆の部分にはどう記述すればいいんでしょうか?他にも違う箇所があったら教えてください。 public class Test{ public static void main(String args[]){ toE('愛'); } static void toE( char ai ){ if (☆☆☆.equals('愛')) { System.out.println("love"); } } }
プリミティブ使うならイコールでかいていいよ
179 :
177 :2006/01/14(土) 00:55:21
Microsoft の MSJVM ってもうダウンロードできないんだっけ? ちょっと動作確認したいんだけどな。
181 :
デフォルトの名無しさん :2006/01/14(土) 01:08:55
Swingコンポーネントのキーボードバインドを変更したいのですが ActionMapとInputMapがよくわかりません。 いまは3種類のInputMapを再帰的に探して削除、追加としているのですが なんか他にもっといい方法ありませんか?
>>180 できる。
MSのページはわからない。が、Yahooチャットのヘルプのページに
置いてあることは知っている。
183 :
デフォルトの名無しさん :2006/01/14(土) 04:32:31
すれ違いかも知れませんが質問。 PCを立ち上げてから最初にアプレットを読み込もうとすると、40秒くらい PCが固まるのは、JVMを立ち上げているからだと理解しているのですが、 スタンドアロンのjavaアプリは、瞬間に立ち上がるのはなぜ? いずれもJVM なしには走らないと思いますが。 逆にいえば、なぜアプレットは、初回のローディングにあんな時間がかかるの? あれが、 あるため、Javaにたいして嫌悪感をもっている人は多いと思いますが。
クラスロードがあるとか? でもVM自体の起動はスタンドアロンと変わらないけど
アプレットはフラッシュに惨敗しました。
>>183 IEやNNとかがメモリーをいっぱい確保してるから
187 :
デフォルトの名無しさん :2006/01/14(土) 11:31:40
windowsでutf-8のjavaファイルをコンパイル/実行すると、なぜ文字化けするのですか? 内容は全く同じなのにshift-jisでは問題ありません。 Java側の問題ですか? それともwindows側の問題ですか? utf-8で書かれたファイルも問題なく動かす方法はありますか? よろしくお願いいたします。
>>187 コンパイラにutf8だとおしえてる?
デフォがプラットフォームのエンコーディング使うだけだよ
>>187 javacコマンドのドキュメント読もうぜ
最近Javadoc含めてドキュメント読まない人間増えたよね
>>188-189 コンパイラに指定すればいいのですね。
調べてみます。
ありがとうございました。
質問させて頂きます。 今学校の課題で、データファイルからデータを読み込んでグラフ表示するプログラムを作っています。 それで、JPanelで、縦に三つのPanelを作って、一番上にグラフ、二番目にデータの検索機能、 三番目にグラフを表示した時点での現在時刻を表示するようにしようとプログラムを組んでいたのですが、 Panel1にグラフを作れなくて困っています。 Panelを複数に分けて、そのうちの一つにグラフを表示したりすることはできるんでしょうか? よろしくお願いします。
できるよ。がんばれ。
193 :
デフォルトの名無しさん :2006/01/14(土) 15:20:04
Javaで式を複数行に分ける場合に何か行末に記号ってつけないとダメなんでしょうか? System.out.println(str + str2); みたいに書くと怒られるので
>>193 別に単語の途中でなければどう切ってもいいよ
何の理由で怒られてるかわかんねーんじゃねーの?
>>194 なんかできました・・ありがとうございました
すいません、質問させてください。 クライアントのJavaアプリでなのですが、 特定のURLに関連付けられてるCookieを取得する事ってできますか? クッキーのセットの仕方は分かったんですが、そのクッキーをどこから 持ってくればいいのかが分からなくて困ってます…。
198 :
197 :2006/01/14(土) 16:37:35
補足します。 ブラウザはIEのみの前提とさせてください。 というか、そもそもローカルに保存されてるクッキーのファイルを 読み込んで処理するのが当たり前なんでしょうか。。 分かってない感じですね('A`;)
クライアント側ってことは、アプレットなのかアプリケーションなのか。
200 :
デフォルトの名無しさん :2006/01/14(土) 17:30:54
キーボードから数値(int型)での入力を読み込むようにしている。 もし文字(String型)で入力されたら、再度読み込み要求をさせるには どう書けばいいんでしょうか?
System.inからは数値だろうと何だろうとStringが返ってくる訳だが
202 :
デフォルトの名無しさん :2006/01/14(土) 17:41:00
都合上、Stringで返ってきたのを、int型に変えてるんです。 str = br.readLine(); n = Integer.parseInt(str); 入力されたのが文字だったら再読み込みにしたいんですが。
while(true){ str = br.readLine(); try{ n = Integer.parseInt(str); break; } catch(NumberFormatException ex){} }
NumberFormatException 捕まえて readLine もう一回やればいいじゃん
205 :
204 :2006/01/14(土) 17:45:38
……間に合わなかった orz
ありがとうございました。
207 :
191 :2006/01/14(土) 18:34:08
先ほど質問させて頂いた者です。
>>192 さん、ありがとうございます。引き続き作ってみようと思います。
いろいろ調べてみて、Panelの中に図を書くのにpaintComponentという関数を使ってみようと思ったんですが
Panel一つなら簡単にできるんですが、複数あった場合どうやってPanelを指定すればいいんでしょうか?
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawLine( 0, 0, 100, 50);
}
Panelが一つなら、このプログラムを組み込むだけでできるようなのですが・・・・・。
>>207 先ほど回答させていただいたものです。
JPanel と Panel のどっちを使っているのか、よく分かっていないのですが、
描画処理は大抵 paint(Graphcis g) に書きますね。paintComponent でも良いんですが。
そして肝心なことが一つ。paintComponent ないし paint はどこに書こうとしていますか?
っていうか Panel もしくは JPanel のサブクラスは作ってますか?
209 :
191 :2006/01/14(土) 18:52:34
どうも理解が行き届いてないようで恐縮です。 JPanelを継承したクラスは作っています。 paintComponentはそのクラスの中に入れてあります。
ん〜。 >Panel一つなら簡単にできるんですが、複数あった場合どうやってPanelを指定すればいいんでしょうか? この文がよく分からないです。複数あると何が具合悪いのか。
211 :
211 :2006/01/14(土) 19:06:21
Mac OSXで作ってOSXのjavacではコンパイルエラーのかったファイルを Fedra core3 にj2sdk1.4.2.10をインストールして、コンパイルしようとすると、 次のようなエラーが出ます。 18: error: Class or interface `javax.imageio.ImageIO' not found in import. import javax.imageio.ImageIO; ^ 445: error: Class `MessagingException' not found in `throws'. throws IOException, UnsupportedEncodingException, MessagingException { ^ 455: error: Class `MessagingException' not found in `throws'. throws IOException, UnsupportedEncodingException, MessagingException { ^ 3 errors javax.imageio.ImageIOのエラーもよくわかりませんし、 MessagingExceptionもインポートしています。 原因がよく解らないのですがどなたかお応え頂けませんか?
212 :
191 :2006/01/14(土) 19:07:28
>>210 どうも頓珍漢なことを書いてるのかもしれません・・・・。
えと、例えばp1とp2というPanelを作った場合、p1にボタンなんかを置こうと思ったら
private JPanel p1;
private JButtun bt1; と宣言して
p1.add( bt1 = new JButton("Test"));
といった感じでボタンを置いてるんです。
最後の一文を、Panel1に「Test」という名前のボタンを作るという意味で、
Panel1に図を書く場合も同じように書くのかと思っていたんですが・・・・・・・。
>>212 図を描画するのと Component を配置するのは全く違うよ。
やるべきなのは 『paint メソッドにてグラフを描画する Panel』 クラスを作成して、それを扱うこと。
214 :
デフォルトの名無しさん :2006/01/14(土) 19:17:25
>>211 Fedra ってデフォルトで gcj 使ってたような気がする。
javac -J-version するとか、where javac するとかして、
インストールした j2sdk1.4.2 使ってるか確認してみて
215 :
211 :2006/01/14(土) 19:24:11
>>214 ありがとうございます。
# whereis javac
javac: /usr/bin/javac
こんな感じになってます。
これじゃまずいのでしょうか?
216 :
191 :2006/01/14(土) 19:31:01
すみません、どうも仰っていることが今一理解できません。 クラスの中にpaintComponentの部分を入れて、尚且つ他の部分でpaint操作をしなければいけないということでしょうか?
217 :
211 :2006/01/14(土) 19:34:39
すいません、エラーメッセージはこちらが重要なのかもしれません 毎回出るのでこれはふつうのメッセージだと思っていたのですが、 どうなんでしょうか。 # javac libgcj-javac-placeholder.sh This script is a placeholder for the /usr/bin/javac master link required by jpackage.org conventions. libgcj's rmiregistry, rmic and jar tools are now slave symlinks to these masters, and are managed by the alternatives(8) system. This change was necessary because the rmiregistry, rmic and jar tools installed by previous versions of libgcj conflicted with symlinks installed by jpackage.org JVM packages. gcj: no input files
218 :
デフォルトの名無しさん :2006/01/14(土) 19:46:07
219 :
211 :2006/01/14(土) 19:52:13
>>216 これくらいは出来てる?
public class Test {
public static void main(String[] args) {
JFrame jf = new JFrame();
jf.getContentPane().add(new JPanel() {
public void paint(Graphics g) {
// ここでグラフを描画
}
});
jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);
jf.setVisible(true);
}
}
>>219 インストールしたsun jdk のbinにPATHを通して、
rpm -qa | grep cgj
で出てきたrpmを
rpm -e gcjなんちゃらかんちゃら
ってやればいいだけとちゃうん?
222 :
221 :2006/01/14(土) 20:19:38
rpm -qa | grep cgj → rpm -qa | grep gcj
SwingではpaintではなくpaintComponentを使う癖をつけよう
224 :
191 :2006/01/14(土) 20:44:08
どうもそこのmain文とクラス部分との繋がりがわからないです・・・。 基本的なところが理解できてないってことですね。 ちょっと勉強しなおしてきたほうがよさそうですね・・・・・。
paint(〜)はイベントのタイミングで描画される ウインドウを移動したり他のウインドウを重ねたりいろんなところでよばれる ボタンクリックのイベントで描画が変わるとかやりたいのなら 描画バッファをあらかじめ用意しておいてそれをボタンクリックで変更、 paintComponentでは描画バッファをJPanelに描画する、というのが普通
226 :
デフォルトの名無しさん :2006/01/14(土) 21:00:40
<<<<<<<<<<<<<<< equals >>>>>>>>>>>>>>> == ???
228 :
211 :2006/01/14(土) 21:48:07
>>221 レスありがとうございます。
>
>>219 > インストールしたsun jdk のbinにPATHを通して、
> rpm -qa | grep cgj
> で出てきたrpmを
> rpm -e gcjなんちゃらかんちゃら
> ってやればいいだけとちゃうん?
上記コマンドを試したのですがrpmは出てきませんでした・・・
gcjの存在を初めて知ったのですが、コンパイルできない理由は、
gcjにあるのでしょうか。それともgcjとjavacが衝突した事によるものなんでしょうか?
gcjでも動くなら良いと思ってるのですが・・。
Exception in thread "main" java.lang.IllegalArgumentException: adding a window to a container at java.awt.Container.addImpl(Container.java:616) at java.awt.Container.add(Container.java:307) これってどういうエラーなんでしょうか?
230 :
221 :2006/01/14(土) 22:16:42
>>199 アプリです。
アプレットならブラウザ依存になるからCookieも取れるのかな?
test
233 :
デフォルトの名無しさん :2006/01/15(日) 00:52:02
クラスをインスタンス化させる時に、コンストラクタを利用して クラス名を表示させるにはどう記述すればいいんでしょうか?
System.out.println(this.getClass().getName());
235 :
デフォルトの名無しさん :2006/01/15(日) 01:06:13
ありがとう
236 :
デフォルトの名無しさん :2006/01/15(日) 01:38:17
>>231 アプリなら取れる
アプレットならアプレットに発行したCookieなら取れるが
アプレットが乗っかっているブラウザに発行したCookieは取れない
このアプレットとブラウザは別のクライアントとみなされる
ブラウザ2枚立ち上げた場合は取れる、なぜなら通常Cookieの保存場所は同じブラウザでは共有するから
別ファイルに作ったクラスを使いたいんだけどどうすればいいんでしょ? たとえば、main.javaとexample.javaと二つのファイルがあるときに main.javaからexample.javaに書かれたクラスの利用
>237 同じパッケージならそのままクラス名書けば使える。 違うパッケージならインポートすればいい
240 :
デフォルトの名無しさん :2006/01/15(日) 02:32:00
>>870 >インタフェースのメリット一つとして、
>実装を差し替えられることを挙げておこう。
>たとえば、以下のコードは便利だとは思わないか?
>interface Executale { public void execute(); }
>があったとして、
>Executable exec = (Executable)Class.forName("HogeExec").newInstance();
>exec.execute();
>この"HogeExec"という文字列を外部ファイル化しておけば、
>コードを再コンパイルせずに、実装を切り替えることができる。
>ファクトリーやランチャー、デバッグモジュールなど
>アイデア次第で使い道が広がるだろう?
すごいオブジェクツ思考ですな
否定はしないが、同じことが通常のクラスでも出来てしまう例だな
242 :
デフォルトの名無しさん :2006/01/15(日) 02:48:30
>>241 わからんやつだな
インターフェースの話になっていないと言うことだ
だからさ、GCが走るタイミングなんて決まっていないだろ? アレと一緒なんだよ文字列の==比較は・・・・ おまえら全くわかっていないよな 「文字列の==比較は常に答えが決まっているわけではない」と言うことだよ 「大抵の場合、trueになるが・・・」というだけ
独り言はブログで
===========================================================
243 のブログ ご来店 100000人突破記念
===========================================================
今日の訪問者 10人
次のキリ番は? 110000人目です
ごゆっくり
お茶でもどうぞ
^^)っ且
だからさ、GCが走るタイミングなんて決まっていないだろ?
アレと一緒なんだよ文字列の==比較は・・・・
おまえら全くわかっていないよな
「文字列の==比較は常に答えが決まっているわけではない」と言うことだよ
「大抵の場合、trueになるが・・・」というだけ
RSS
この記事のトラックバック
http://pc8.2ch.net/test/read.cgi/tech/1136960593/243 ===========================================================
247 :
デフォルトの名無しさん :2006/01/15(日) 08:28:47
今、swingを使って家計簿アプリケーションを造ろうとしているのですが、 まず最初にユーザIDとパスワードを入力するログイン画面を作りました。 ここからその画面にある「ログイン」というボタンを押してログイン後の画面 を描画したいのですがどのような記述をすればよいのでしょうか? アプレットのようにrepaint()のようなメソッドが用意されているのでしょうか?
ユーザ ID とパスワードの入力画面をモーダルダイアログにする。
249 :
247 :2006/01/15(日) 08:51:48
>>248 なるほど!それは使えそうです!
・・・でも、いくつか画面を遷移していくのでやっぱり画面を再描画する処理が必要なんです('A`)
CardLayout
251 :
247 :2006/01/15(日) 09:23:26
>>250 それなんかいけそうっすね!ちょっと調べてみます
252 :
247 :2006/01/15(日) 10:38:47
あぁ・・・何か JTabbedPaneっていう素敵なコンポーネントがある・・・ これ簡単だ('A`)
一人でじっくり考えてからきて欲しい 質問するレベルじゃない
254 :
デフォルトの名無しさん :2006/01/15(日) 13:40:08
まずjavadoc読め ほんと、馬鹿多いな
255 :
デフォルトの名無しさん :2006/01/15(日) 13:42:16
質問です!! 現在JAVAで、4つの数字を四則演算を使い10にするゲームを作っています。 4つの数字をランダムメソッドで生成して、その4つの数字が10になるかを確かめて、10になる数字であれば、rabelに貼り付け、四則演算+−×÷記号はチョイスで選択する形にしました。 しかし、イベント処理で答え合わせの際、チョイスで選んだ四則演算が、答え合わせの式に使えません;_; この問題で行き詰っています。 どなたか、良いアイディアをいただけないでしょうか?? また、参考になるプログラム等ありましたら、教えてください!! ご教授お願い致します。
256 :
デフォルトの名無しさん :2006/01/15(日) 13:48:22
"+"とか"x"って単に文字列だからなぁ if("+") { kotae=a+b; } else if("÷"){ kotae=a/b; } とかやるしかないんじゃないの?
以前のチョイスチョイスtってたやつか
259 :
デフォルトの名無しさん :2006/01/15(日) 13:59:07
>>255 オブジュクト指向言語使ってるんだから
それらしく考えれば答えは見つかるよ
メソッドとかメッセージってキーワード出てきたでしょ?
>>255 イベントで取得した演算子を表すオブジェクトor数値だと、そのまま計算ができない
ということだろうか?
この流れは計算スタックの生成ですか・・・
Apache + mod_perl or lighttpd + FastCGI を使えば全然速度も出ると思うんです。 (実際に1日数万PVのサイトを上記の構成で使ってます) みたいなことを思わず面接で言ったら 「うちは Javaで飯食ってるので、そういう低レベルな言語を得意げに話されても困ります」 と言われました。
263 :
255 :2006/01/15(日) 14:06:35
>>やはり、最初の10になるか判定すると同様に、答え合わせも64通りやるしかないですよね;_;
javaを独学で学びゲームを作ってみることにしたのですが、初めてで、おそらくjava経験者にとっては単純なプログラムなのでしょうが、私は頭が混乱してきました。
もう一度やってみます。
>>256 宿題ではなく独学でやっているので、こちらに書いてしまいました。
申し訳ありませんでした。
264 :
デフォルトの名無しさん :2006/01/15(日) 14:09:56
>>262 アセンブラの方が速いですよ
と言ってるのと変わらんな
とりあえず貴方は面接する会社を間違えている
265 :
デフォルトの名無しさん :2006/01/15(日) 14:13:52
>>262 JAVAで10分間に6万トランザクションっていう
システムあるよ
>>262 どっちみちレスポンスはJavaServlet/JSPの方が速いと言うのは知っているよな?
最初の10になるか判定する処理と同時に、全ての正解のパターンを保持しておけばいいんじゃね?
>>261 GUI で「チョイス」ならば、AWT の Choice かな
Swing だと JComboBox だし
>>267 数字が0〜9まであったとして(0も含むと仮定して)
単純に最大でも10000パターン
正解パターンはそんなに無いからあらかじめ他のプログラムでprintしておくのもいいかもね
そうか、AWTやSwingの場合ってHTMLの<option>タグみたいに 表示部分と値を格納できずに 選択されているそのもののオブジェクト(例えば文字列)か、選択されたインデックスしか拾えないのか
Coiceに独自に定義した演算子クラスのオブジェクトを突っ込むのが 楽な気がする。 int cal(int i1 int i2)みたいな定義をしたインタフェースを用意して…
いや、演算って左から順に計算するような仕様にしているのかどうかも考慮しないと単純にそれだけでは出来ない 全体の相関性も考慮しないといけない
今ソケットプログラミングしてるんですが、 in = new BufferedReader(new InputStreamReader(socket.getInputStream())); とすると文字列しか受け取れないのですが、 文字列以外を受け取りたい場合どうすればいいでしょうか?
InputStream is = socket.getInputStream(); でいいじゃないか?
>>273 (API から引用)
InputStreamReader はバイトストリームから文字ストリームへの橋渡しの役目を持ち、…
277 :
273 :2006/01/15(日) 15:10:45
本読みながらやっててこのやり方しか書いてなかったもので・・・ 今までは in = new BufferedReader(new InputStreamReader(socket.getInputStream())); in.readLine();で受信できたのですが、 InputStream is = socket.getInputStream(); とすると、is.readLine()で出来るはずもなく・・・ どうすればよいでしょうか?
InputStreamの場合は int data; while((data=is.read())!=-1) { System.out.println(data); } とかやる 結果として何がやりたいのか全部言った方が話が早いと思うけど?
280 :
273 :2006/01/15(日) 15:32:23
ありがとうございます ちなみにサーバとクライアントというものを作り、 クライアントが数式を送って、サーバが解析して、 答えを返すって感じなのですが、 サーバから帰ってくるのは文字列なので 一回一回doubleとかに変換してたので 変換せずにdoubleのまま受信できないかなと思いまして
281 :
デフォルトの名無しさん :2006/01/15(日) 15:43:29
アプレットを使ってキーボードの読み取りとり・保存などは出来ますか? たとえばアプレット起動中に「Ctrl」キーや「print screen」を押したことを読み取ったり、それを自サーバに送信するなど
283 :
デフォルトの名無しさん :2006/01/15(日) 16:51:43
皆さんどういった時に関数を定義しますか? どうも1つの関数が長くなりがちなのですが・・・
>>280 読み取り側でdoubleで扱いたいのなら、最初に、サーバ側でdoubleのデータとして送らないと意味が無いのだよ
OutputStreamでもいいけど、doubleって確定してるんならDataOutputStreamでwriteDouble()して
クライアント側でDataInputStreamでreadDouble()してやればらくだと思う
だから
>サーバから帰ってくるのは文字列なので
とは限らない
仮に文字列だとしてもDouble.parseDouble()っていうメソッドでdoubleに変換できる
>>283 共通に使えそうな固まり部分だけを別関数にする
コレを究極まで押しすすめると、中身1行のみの関数がズラーっといっぱい出来ちゃって逆にわかりづらくなるという
286 :
283 :2006/01/15(日) 17:03:29
>>285 確かに、1行関数が多発しそうですね。
適度に使えそうな固まりを見つけられて居ないのがやはり原因でしょうか。
私は簡単に分かるような関数以外は
処理を一通り書いた後に分けようとするのですが、
余り上手い方法だと思えないのですが・・
固まりを見つける方法って色々あると思いますが、
皆さんはどういった見つけ方・分け方をしていますか?
>固まりを見つける方法って色々あると思いますが、 ■機能で分ける場合 ・ファイル関係扱うもの ・DB関係扱うもの ・文字列の変換作業を行うもの ■オブジェクト指向設計をしていくと自然と決まっていく場合 >私は簡単に分かるような関数以外は >処理を一通り書いた後に分けようとするのですが、 >余り上手い方法だと思えないのですが・・ 開発初期の段階でクラス設計が完璧な人はいない 作っていくうちに設計上の矛盾とかがあって当然なので その方法でいいと思う リファクタリング
288 :
283 :2006/01/15(日) 17:20:59
>>287 ありがとうございます。
とりあえず動く物を作ってからってのは
割と共通なんですね。
眠い・・・
290 :
273 :2006/01/15(日) 17:58:33
>>284 クライアントの受信が
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
なので文字列しかないと思うのですが・・・
in = new DataInputStream(socket.getInputStream());
とすると、推奨されない API を使用またはオーバーライドしています
って表示されますorz
291 :
273 :2006/01/15(日) 18:01:39
自己解決しました API見たらreadLineはダメみたいらしいですね もうちょっといろいろいじってみます
292 :
130 :2006/01/15(日) 18:04:52
293 :
デフォルトの名無しさん :2006/01/15(日) 18:14:34
コードのいたるものにfinalをつけてる人がいるんだけど、 定数とか以外でもつけた方がいいのでしょうか? 例えば、 final HttpServletRequest request ・・・・。 とか。
>293 定数は付けて当然として、それ以外では。 クラス・メソッド→必要なものには付けること。必要でもないときは付けるべきでない。 メンバ変数→immutable目指すなら付けまくる。beansならあまり付けない 仮引数→付けること推奨。 一時変数→付けられるなら付けとけ。 仮引数・一時変数にfinal付けとくと後で変更されることがないので、 コードを読む時に頭の中で押さえておかなければならない要素が減らせて少し幸せになれます。 ちなみに、速度の点では変わらないと思って差し支えないです。
>>292 <applet code="shooting.Shooting" width=350 height=600></applet>
297 :
130 :2006/01/15(日) 19:12:29
>>296 お、できました、ありがとうございます!
codeのところは.classいらないんですね・・・
298 :
デフォルトの名無しさん :2006/01/15(日) 21:26:56
Tomcat 5.0のインストールでCLASSPATHを
%JAVA_HOME%\jre\lib;%JAVA_HOME%\lib;.;%CATALINA_HOME%\common\lib\servlet-api.jar
にしようとすると環境変数を置き換えることはできません。(%は1つしか使用できません)
となって設定できません。
[Monitor Tomcat]→[Start service]で
http://localhost:8080/を表示させるというものなのですが 。
299 :
デフォルトの名無しさん :2006/01/15(日) 21:29:44
ちなみにOSはMEです。
300 :
デフォルトの名無しさん :2006/01/15(日) 21:48:39
>>294 クラスの final 宣言について、
>final の使用によって、そうした決定が設計を制限する可能性がある
>複雑でステートフルなクラスを final と宣言すると、オブジェクト指向の設計を妨害し、
>より小さく、より整合性のあるクラスに簡単にリファクタリングできない
と書いてあるが、よくわからん。必要になった時点で final を外せば良いんじゃないのか?
通常は、継承はカプセル化を壊すため、
継承を前提として注意深く作ったりドキュメントを充実させたクラス以外の public なクラスは
final を宣言すべきなのではないか?
>>300 コンストラクタをprivateにしておく方がいいよ
>>300 final つけるより、クラス自体を public にしない方が良いんじゃないか?
>>302 public じゃなければ、そのパッケージを実装した人の責任において
継承すればいいからな。
仮引数に final を付けるかつけないかみたいなもの、
それを使う側にとっては、見掛けが変わらない。
304 :
298,299 :2006/01/15(日) 23:01:24
なんかTomcat 5.0はXP専用らしいので、MEや98では動かないようです。 たぶん父親はXPを持っているのでCD借りる&学校でやるしかないですかね。。
>>270 マニュアル読まないで決め付ける人は嫌いです
306 :
デフォルトの名無しさん :2006/01/16(月) 02:35:37
なんとなくJava入門本終わったので、サーブレットに手を出してみようかと思う。 JRunとかいろいろありそうなんだけど、転職にも有利になりそうな経験という 意味ではどこのを使ってたらいいの?
308 :
デフォルトの名無しさん :2006/01/16(月) 03:43:16
Timerとsleepの違いって? 数分おきにタスクを実行したい場合にThread.sleep()使って お手軽に作ってるんだけど、これとTimerの違いって一言で言うと なんなんだろ?
>>306 基本という意味ではTomcatですが、転職を考えているのなら
JRunなりWeblogicなりWebsphere Application ServerなりJOnAsなりResinなり、
幅広いサーバに慣れておいて損はないと思います。
その意味で
>>307 は正しい。
>>308 マニュアル見ればTimerのやれることがわかるとおもうんだけど
実際定期処理するならsleepでまわすほうが面倒
311 :
306 :2006/01/16(月) 12:32:25
>>307 >>309 やっぱり近道なしかぁ。。。どのみち今の実力じゃ何でも同じかも知れないけど、
とりあえず聞いたことのあるTomcat,JRun,Websphereあたりから地道にはじめてみます。
どうもありがとう。
んなこたあない サービスに頼るからそうなるんだ。 まさかWinMeなんて穴だらけなトンデモOSをサーバとして Tomcat運用するわけではあるまい。 拡張子がexeやmsiになってるの選ばないでzipやtar.gzに なってるのを選んでインストールしろ
314 :
デフォルトの名無しさん :2006/01/16(月) 13:16:34
Javaの動作環境について正しい説明を選べ。 a. OSの種類にかかわらず同じVMをインストールすれば、Javaプログラムを動作させることができる。 b. 使わなくなったメモリを自動的に開放する仕組みを「メモリリーク」と呼ぶ。 c. すべてのOSでマルチスレッドを実現する事ができる。 d. JavaとJavaScriptとは動作環境が違うだけで文法上は同じである。
315 :
デフォルトの名無しさん :2006/01/16(月) 13:18:03
314です。。 お願い誰か解いて下さい。
aが微妙だけど全部×じゃないか?
e.
運転免許の試験みたいだw
一番微妙なのは c のような気もする
320 :
デフォルトの名無しさん :2006/01/16(月) 13:21:55
ありがとうございます。 まだまだ問題あるのでどんどんいいっすか?
321 :
デフォルトの名無しさん :2006/01/16(月) 13:22:32
問45:Stringオブジェクトstr1とstr2の文字列を比較する場合、正しいものはどれか。 a. str1 == str2 b. str1.equals(str2) c. str1 = str2 d. equals(str1, str2)
322 :
デフォルトの名無しさん :2006/01/16(月) 13:24:58
問45:Stringオブジェクトstr1とstr2の文字列を比較する場合、正しいものはどれか。 a. str1 == str2 b. str1.equals(str2) c. str1 = str2 d. equals(str1, str2)
323 :
デフォルトの名無しさん :2006/01/16(月) 13:25:50
問39:以下のようなクラスFooがある。追加するとオーバーロードになるメソッドを選べ。 public class Foo public int calculate(int a, double b) { //省略 } } a. public int calculation(int a, double b) {…} b. public int calculate(int c, double d) {…} c. public abstract int calculate(int a, int b){…} d. public abstract int calculate(double a);
324 :
デフォルトの名無しさん :2006/01/16(月) 13:25:59
問45:Stringオブジェクトstr1とstr2の文字列を比較する場合、正しいものはどれか。 a. str1 == str2 b. str1.equals(str2) c. str1 = str2 d. equals(str1, str2)
325 :
デフォルトの名無しさん :2006/01/16(月) 13:27:14
問45:Stringオブジェクトstr1とstr2の文字列を比較する場合、正しいものはどれか。 a. str1 == str2 b. str1.equals(str2) c. str1 = str2 d. equals(str1, str2)
327 :
デフォルトの名無しさん :2006/01/16(月) 13:27:50
問39:以下のようなクラスFooがある。追加するとオーバーロードになるメソッドを選べ。 public class Foo public int calculate(int a, double b) { //省略 } } a. public int calculation(int a, double b) {…} b. public int calculate(int c, double d) {…} c. public abstract int calculate(int a, int b){…} d. public abstract int calculate(double a);
328 :
デフォルトの名無しさん :2006/01/16(月) 13:28:37
問39:以下のようなクラスFooがある。追加するとオーバーロードになるメソッドを選べ。 public class Foo public int calculate(int a, double b) { //省略 } } a. public int calculation(int a, double b) {…} b. public int calculate(int c, double d) {…} c. public abstract int calculate(int a, int b){…} d. public abstract int calculate(double a);
Java初心者は歓迎だがホントのアレは他で遊べ
330 :
名無し募集中。。。 :2006/01/16(月) 13:42:11
何この池沼?w
331 :
デフォルトの名無しさん :2006/01/16(月) 15:22:27
eclipse+TomcatでWebアプリ開発勉強してます。 コンパイルエラーにはなっていないのですが、 サーブレット実行時に、「クラスが見つからない」というエラーが発生します。 なお、見つからないクラスは、フリーのjarファイルで、クラスパスには追加してあるんですが、 それ以外に何か設定が必要なんでしょうか? どなたか教えてください。
>>331 WEB-INF/libの下に置かない場合は、Tomcatの設定でクラスパスに追加しないとならないが
333 :
デフォルトの名無しさん :2006/01/16(月) 15:29:48
>>332 ありがとうございます。
@WEB-INF/libの下に置く
ATomcatの設定でクラスパスに追加する。
@Aの両方とも試してみます。
Aは環境変数のclasspathに追加するのとは違うんでしょうか?
>>333 1.WEB-INF/libの下に置く
これだけで十分。
クラスパスはいじるな。
335 :
デフォルトの名無しさん :2006/01/16(月) 15:53:12
>>334 クラスパスをいじるのは、何か問題なんですか?
黒くなる
337 :
デフォルトの名無しさん :2006/01/16(月) 15:58:51
>>335 ・必要なクラスパスはビルド時と実行時で違う
・必要なクラスパスはアプリケーションによっても違う
→なので、特定のアプリでしか使わないライブラリをコンテナや環境変数のクラスパスに設定するな!
339 :
デフォルトの名無しさん :2006/01/16(月) 16:20:34
340 :
デフォルトの名無しさん :2006/01/16(月) 21:40:45
>332〜338 どうもありがとうございました。
341 :
デフォルトの名無しさん :2006/01/16(月) 21:58:04
今、大学でJavaプログラミングの勉強をしてるのですが、 将来どんな仕事に役立つんですか? 今日は文字を出力する事を学びました。
342 :
デフォルトの名無しさん :2006/01/16(月) 22:25:46
>>341 大学まで行ってるのにそんな事聞く様な奴には何の役にも立たないじゃない?
343 :
デフォルトの名無しさん :2006/01/16(月) 22:27:20
はじめまして。現在以下の環境で簡単な携帯電話用のBBSを作成しており、アプリケーション上での絵文字の取り扱いに困っています。 ・Apache2 + Tomcat5.0.28 (mod_jk2使用) ・java5 ・MySQL-4.1.16-1 このような環境で作成したBBSに、将来的にはDoCoMo、au、vodafoneからの絵文字のフォーム入力も可能にしたいと思い、現在まずはDoCoMoの絵文字入力から、作業に取り掛かっているところです。 フォームより入力されたデータが、データベースに保存されるまでの手順としては、 1.フォームよりデータの送信 2.サーブレットでリクエストの受信 3.DBコネクター 4.MySQL の流れだと理解しております。また上記のそれぞれの段階での文字列の処理は 1.HTMLのMETAタグでShift_JISを指定 2.サーブレットのフィルターで request.setCharacterEncoding("Shift_JIS"); をセット。 3.ドライバーはcom.mysql.jdbc.Driverを使用しURLは jdbc:mysql://localhost/chinaskink? useUnicode=true&characterEncoding=sjisに指定。 4.my.cnfの clientのdefault-character-setは、binary mysqldのdefault-character-setは、sjis mysqlのdefault-character-setは、binaryに指定。 と、このようになっています。また、レスポンスに関する手順は 1.DBよりデータの取得 2.レスポンスオブジェクトに res.setContentType("text/html; charset=Shift_JIS"); をセット。 3.HTMLのMETAタグでShift_JISを指定 と、なっております。このような状態で、DoCoMoの携帯電話から入力フォームより絵文字を入力した場合、WEB上で表示すると??になってしまいます。 皆様はこのような問題をどのように解決されていますでしょうか?
345 :
平井忠信 :2006/01/16(月) 22:40:46
Javascript バックアップとらず暗号化してしまいました。。。 なんとか 復元できる方法ってないものですか?
>>343 うちではちゃんと絵文字も認識できているけど
マルチには教えてやんない。
347 :
デフォルトの名無しさん :2006/01/16(月) 22:50:16
すみませんCPadとAntについて質問です(このスレでよいのかよくわかりませんが)
CPad for Java 2.31
にてAntが使えるというので、以下のページのやり方で設定してみました
ttp://javacafebreak.tripod.com/document/cpad_tips/cpad_ant.html このページには「CPadで、Antを実行するには、『F6』キーを押すか、メインメニューの『実行』→『Ant』を選択します」
とかかれているのですが、『F6』キーを押しても何も起こらないし、
「メインメニューの『実行』→『Ant』」などというメニュ項目も見当たりません
CPadで、Antを実行して、さらにエラーメッセージをCPad上のメッセージウィンドウで表示させている人たちは
どうやっているんでしょう
(DOS窓でAntの実行を単独実行するやり方はわかっているのですが、それだとCPadのメッセージウィンドウに表示できないので不便なんです)
環境はWindows2000 JDK1.5.0_06 です
350 :
デフォルトの名無しさん :2006/01/16(月) 23:13:54
>>349 レスありがとうございます。すみません・・・
うざかったですね。
でも、本当に切羽詰っていたもので・・・。以後きおつけます。
Javaアプレット上でローカルファイルを選択させて、 そのファイルの中身(またはファイルそのもの)を サーバにアップロードする方法はあるでしょうか。 JDK:1.4.2 サーバ:Windows XP、Apache2.0.54、CGIやApacheモジュールは使用可 よろしくお願いします。
352 :
平井忠信 :2006/01/16(月) 23:32:22
....(((((っ*´_⊃`)っどんまい! 僕なんて スルーされてるんだから チッチキチー
>>351 WebStartAppletならできる
ない
>>353 > CGIやApacheモジュールは使用可
357 :
平井忠信 :2006/01/16(月) 23:36:05
....(((((っ*´_⊃`)っ自分に対してどんまい! チッチキチー
358 :
デフォルトの名無しさん :2006/01/16(月) 23:40:14
java初心者です。課題で行き詰ってしまっていて困っています。 javaアプレットで、ペイントで作った画像をボタンしたいのですが どうのようにすればよいのでしょうか。 ご回答おねがいします(>_<。
359 :
デフォルトの名無しさん :2006/01/16(月) 23:41:44
import java. lang.*; import java.applet.*; import java.awt.Graphics; public class Ex1 extends Applet { public void init() { public void paint(Graphics g) { public abstract void drawString[]={"one","two","three","four","five", "six","seven","eight","nine","ten", "eleven","12","13","十四","十五"}; int n=str.length; for( int i=0; i<n; i++ ){ System.out.println(" "+str[i]); /* <applet code="Ex1" width=400 height=400> </applet> */ } } } } これが式の不正といわれる理由をおしえてくれませんか
public abstract void drawString[]={"one","two","three","four","five", "six","seven","eight","nine","ten", "eleven","12","13","十四","十五"}; ???
361 :
359 :2006/01/17(火) 00:14:30
リンク先 public abstract void drawString( String str, int x, int y ) あなた(中略) public abstract void drawString[]={"one","two","three"}; どう見ても別物です。
Private JREをアプリに付属して配布する方法について解説のあるサイトって ありませんか? もしかしてJREディレクトリ配下を単に付属して、PATH、CLASSPATHの 設定を済ませばいいだけなのかな???
364 :
359 :2006/01/17(火) 00:32:15
ああ、もとのSting[]=はこっちの教材にあったものです
>>363 binの下のjavaをつかわせるだけ
相対的にぜんぶやってくれる
配布する再の規定はreadmeみてくんなまし
>>364 Javaを一から勉強し直した方がいいみたい
>>351 AppletからSocket開いて
さばにデータを送って
サーバ側で保存すればいいよ
>>365 サンクスです。簡単そうですね。
配布ライセンスについては、翻訳かけてみましたが意味わからず・・OTL
もう少しがんばってみます。
370 :
367 :2006/01/17(火) 00:52:15
まあそれじゃああまりにもかわいそうだから。 hint: windows-31j
371 :
367 :2006/01/17(火) 00:55:59
もうひとつ mysql cp932
372 :
359 :2006/01/17(火) 01:02:38
ありがとうございます あと48時間でがんばります
>>372 Javaの宿題スレで丸投げしてみたら?
ASがTomcat5.0.28で
Servletプログラムを書いているのですが
getServletContext.getResource(path)をやったときに
http://hogehoge:9090/ 〜っていう仮想パスが欲しいのに
jndi:://hogehoge/〜っていうパスしか貰うことができませんません
なんとかhttpで始まるパスを貰うことができないのでしょうか
HttpServletRequest#getRequestedURL() とか何とか言うのがある
376 :
デフォルトの名無しさん :2006/01/17(火) 04:14:59
アプレットを閉じる命令というのがみつかりません close windowではだめみたいですし・・・ もしかして手動以外ではないんですか?
ブラウザクローズの JavaScript だけ入った HTML ファイルに AppletContext#showDocumet() で飛ばす。
378 :
デフォルトの名無しさん :2006/01/17(火) 06:13:25
ありがとうございます
ネットワーク上からクラスを動的にロードするクラスローダーを作成して、クライアント間でプラグインを共有するフレームワークを作成していて、 共有自体はできているんですが、悪用を防ぐために、ネットワークからロードしたクラスがソケットの接続やファイル操作を行うのを制限したいと考えています。 具体的には、プラグインあるいはクラスローダー単位でサンドボックスのようなものに閉じ込めて、制限を課すといった方向を想定しているんですが、このように、 同一VM上で動いているプログラムの一部分のみにセキュリティマネージャーなどを使って制限をかけることは可能ですか? 可能なら、具体的な方法あるいは、使えそうなAPIや参考になるドキュメントなどを教えていただけるとありがたいです。 開発環境はWindows2000/J2SE5.0.5、想定している動作環境は、OS不問(PureJava?最低限Mac/Windows/Linuxで動くこと)/J2SE1.4.2以上です。 但し動作環境は1.4で困難ならば5.0に妥協する余地はあります。 どうか趣味グラマーに救いの手を差し伸べて下さい。
>>368 ほう。サーバに送るデータはどうやって読み込むつもりかね?
381 :
デフォルトの名無しさん :2006/01/17(火) 08:33:13
すみません。教えてください。 自分自身のメソッドを呼び出すような処理はできる限り避けた方がよいのでしょうか? 内部では何度も同じようなSQLを読んでおり困っております。 あらかじめSQLで階層をメモリに展開しておいても差し支えなさそうなのですが 何か知ってましたら教えてください。
382 :
デフォルトの名無しさん :2006/01/17(火) 08:49:50
はぁ・・・・ なんどやっても掲示板で入力されたi-modeの絵文字が上手く表示されません。 i-modeから入力された絵文字はデータベースを含むアップリケーション側でどのような処理を すればいいのでしょうか・・・
>>381 ORマッピングとかJDOとかでぐぐると良いぞ
385 :
384 :2006/01/17(火) 10:39:18
386 :
デフォルトの名無しさん :2006/01/17(火) 11:11:24
おはようございます! 昨日からJavaの勉強を始めたんですけど、 public class Happy{ public static void main(String[] args){ 上の場合、メソッドはどれなんでしょうか? そもそもメソッドの意味が分かりません・・・。 宜しくお願いします!
>>386 勉強を始めたんなら教科書ぐらいもってんだろうな?
388 :
143 :2006/01/17(火) 11:42:42
昨日からJDK5.0にはまってます。 HttpSessionクラスにMapを突っ込んでいるんですが、 それを取り出すときに警告が出てしまうんですが、この警告が取れません。 該当箇所はこんな感じです。 Map<String, Hoge> hogeTable = (HashMap)session.getAttribute("key.hoge"); if(hogeTable == null){ hogeTable = new HashMap<String, Hoge>(); hogeTable.put("hoge1", new Hoge(1)); } (HashMap)session.getAttribute("key.hoge"); ↑の部分で「型の安全性が・・・」の警告がでています。 どうやればいいんでしょうか?よろしくお願いします。
389 :
367 :2006/01/17(火) 11:46:14
>>388 キャストのところで型パラメタ指定しないHashMap 使ってるからなのでは?
391 :
388 :2006/01/17(火) 12:00:40
Map<String, Hoge> hogeTable = (HashMap<String, Hoge>)session.getAttribute("key.hoge"); こうやってもみたんですが、別の警告がでちゃうんですよ。 こう書くと(HashMap<String, Hoge>)の<String, Hoge>の部分は無視されます みたいな警告が出ます。
>>391 これでも駄目?
Map<String, Hoge> hogeTable = (Map<String, Hoge>)session.getAttribute("key.hoge");
393 :
デフォルトの名無しさん :2006/01/17(火) 12:04:31
説明下手なのでソースとかです。 while (rs.next()) { sql = "SELECT * FROM テーブル WHERE カラム LIKE '%"+ rs.getString("WORD") +"%'" この後は(+? ;?) if(rs.size()>1) { + "OR カラム LIKE '%" + rs.getString("WORD") + "%'" } topicss.add(topic2); } mysqlのコマンド (1)SELECT * FROM テーブル WHERE カラム LIKE '%ワード%' (2)OR カラム LIKE '%ワード%' OR カラム LIKE '%ワード%' OR カラム・・・・ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ (1)の部分が絶対処理するところで、(2)の部分が条件次第で繰り返しになる部分です。 ワードの数だけORから後の部分は繰り返しになるのでwhile文を使いたいのですが、どうやればいいのかわかりません。 ワードが1個以上かどうか(繰り返すかの判断)をifの部分で判断させたいのですがこれの条件もわかりません。 "mysqlのコマンド"+ javaのコード + "mysqlのコマンド"; といった感じでjavaのコードを挟む場合「"」で一旦区切って、「+」で繋ぐと思うのですが、 ワードが一個だけなら繰り返す必要がないので、「"」の後に「;」が付き文章を終わらせれます。 しかし、ワードが2個以上の場合、一回目の「"mysqlのコマンド"」のあと、if文を入れるため「;」で区切っていいのか、 区切ったとしてどうやってORへと繋げるのかわかりません。 自分で書いててもわかりにくい説明ですが、どなたかご教授お願いします。
>>396 StringBuffer sql = new StringBuffer();
if (rs.next()) { // rsが空でないときだけ処理をする.
String str = rs.getString("WORD");
if ((str != null) && !("".equals(str))) {
sql.append("SELECT * FROM テーブル WHERE カラム LIKE '%" + str +"%'");
while (rs.next()) {
str = rs.getString("WORD");
if ((str != null) && !("".equals(str))) {
sql.append("OR カラム LIKE '%" + rs.getString("WORD") +"%'");
}
sql.append(";");
topicss.add(topic2);
}
}
398 :
391 :2006/01/17(火) 13:10:47
>Map<String, Hoge> hogeTable = (Map<String, Hoge>)session.getAttribute("key.hoge"); やってみましたがだめでした。キャストの<String, Hoge>は意味ないです、みたいな警告が出ちゃいます
>>398 じぇねりくす勉強してみるといいよ
googleにきいてごらん
400 :
398 :2006/01/17(火) 13:26:47
わかりました。勉強してきます
>>397 ありがとうございます。
ですが、すみませんが文字列StringBufferを使わずにはできませんか?
String = sqlで宣言していまして、String型の引き数にもなっていてStringBufferだと適用できないとエラーが出てしまいます。
すみません。
>>401 append を += にすればいいだけでは?
でもStringBufferのほうがいい
StringBuilderのほうがよりいい でも+=で連結でかまわんレベルのループ数に見えるが
ありがとうございますありがとうございますありがとうございます 無事動きました! StringBufferとStringBuilderはチラッとググッた感じ、パフォーマンス的な違いだけなのかな? 実は卒研のもので胃が痛い毎日でしたが、これで最低限の動作だけは確保されました。 まだ卒業できるレベルのものではないですがもし卒業できたら皆々様のおかげです。 本当にありがとうございます。 誰にも相談できず、誰に相談すればいいのかも分からず困っていたので本当に助かります。
宿題かよ。 ってか String型で使いたいところは、StringBuffer::toString()すればいいだけだと思うが。 宣言なんか、変えればいいじゃんか。
質問です。 ArrayListに格納してある文字列を、DBにVARCHARで格納したいんですが、 なんだかうまくいきません。キャストもできないしtoString()も使えないです。 どうしたらよいのでしょうか?教えてください。お願いします。
407 :
名無し募集中。。。 :2006/01/17(火) 18:47:23
どういうエラーが出て出ないのかぐらい書けば?
408 :
デフォルトの名無しさん :2006/01/17(火) 19:01:46
>>407 すいません。
キャストしようとすると、できない旨の例外発生。
toString()ではクラスの文字列表現(xxx@数字)が表示されてしまう。
って感じです。
>>402 1.5 だと文字の連結は StringBuilder を使っているので、
わざわざ StringBuffer を使うよりも速いらしいという噂
>>408 なんでListの中に文字列入ってるのに
toString するんだ?
>>406 こうやってると予想してみた。
ArrayList list = new ArrayList();
list.add("foo");
list.add("bar");
list.add("buz");
String str = list.toString();
もしそうならこうすべし。
for(Iterator iter = list.iterator(); iter.hasNext();){
String str = (String)iter.next();
// strを使ってしたい処理
}
412 :
406 :2006/01/17(火) 19:43:42
>>411 そのとおりです。実際にはlist.get(index)なのですが。
ありがとうございます。
できました!!
質問です。 デュアルコアCPUの効果を最大限に受けることが出来るようにJavaでプログラムを書くには、 プログラムをマルチスレッドに対応させるだけでいいんですかね?
たしかにそうだがシングルスレッドなアプリでもバックグラウンドコンパイルや 並列GCの恩恵受けれるからびっくりするくらいよくなるよ ライブラリやフレームワークがマルチスレッド対応していれば 意識しなくていい部分も多少はあるだろう 並列時のネックになる場所はプロファイラでチェックだな 並列時waitなスレッドができまくってたら考えてみよう まともに並列処理やろうとすると5.0以上が必須と思っていい
415 :
413 :2006/01/17(火) 23:44:02
>414 ありがとうございます。
416 :
デフォルトの名無しさん :2006/01/17(火) 23:48:36
テキストフィールドでパスワードを打って、 それが正しかったら続きのプログラムを開くようにしたいんですが どうしたらいいんですか?
どうしたら良いと思いますか?
パスワードを暗号化したものとのequalsでいんでね
419 :
デフォルトの名無しさん :2006/01/18(水) 05:36:18
String型からboolean型への変換方法を教えてください
Boolean.valueOf(str).booleanValue()
エスパー光臨か?
423 :
デフォルトの名無しさん :2006/01/18(水) 10:18:27
こんにちは。どこで質問したらわからないのでとりあえずこちらに書かせていただきました。 質問はゲームサイト「Jgame.com for TOKAI」での事なのですが、このサイトでは使用に関してJAVAの最新バージョンのインストールを推奨しているので先日私もインストールしました。 で、そのサイト内では簡単なチャットのようなものが常時使われているのですが、インストール以降私のPCはそのチャットで誰かが書き込むたびに、画面全体が点滅するようになってしまいました。 そのサイトの常連さんたちのチャットはかなりの数で、そのたび画面が点滅し、かなり目が疲れます。 雑な説明で申し訳ありませんが、どなたか原因および対処法をご存知の方いらっしゃらないでしょうか? ちなみに現在インストールされているのは「JAVA Platform Standard Edition(バージョン1.5.0」。OSはWindowsXPです。
>>414 シングルベッドなアプリでも、
メインとなる処理をスレッド化してあげれば、
並列GCの恩恵にあずかれるってこと?
>>424 シングルスレッドで作ったプログラムでも、実は裏でいろいろなスレッドが動いているから
ということだとおもはら
Webアプリで、非同期に処理を行う場合の方法について、どういった手段があるのか教えてください。 私が考えてみた方法 (1)JMS+MessageDriverBean サーブレットから、メッセージを送信して、MessageDriverBeanで非同期に処理を行う。 →やったことない。こういう実装って一般的?このためにJMSを使うのが大げさな気もする (2)Servletから子スレッド起動 サーブレットからスレッドを起動。 →コンテナ上でスレッドを起動してもよいの?(一度WebSphereのサポートに聞いてダメだと言われたことがある) (3)Javaプロセス起動 サーブレットからJavaプロセスを起動して、別プロセスで処理を行う。 →プロセス起動の負荷大。DB接続なんかをコンテナの外で実装する必要あり。 上記の問題点や、他の手段とかあったら、教えていただきたいと思います。
普通 (2) 君の会社よっぽどサポートに信用されてないみたいね。
429 :
427 :2006/01/18(水) 12:57:45
430 :
デフォルトの名無しさん :2006/01/18(水) 15:30:45
すいません質問です JPopupMenu内にJComboBoxを組み込んだらJComboBoxの項目を選択すると JPopupMenuが消えてしまいます どうやらJComboBoxの項目自体がpopupらしいので 複数のpopupを同時に表示することができれば消えないと思うのですが・・・
結構面倒だが JPopupMenu じゃなくて JWindow から自分で作る。
432 :
デフォルトの名無しさん :2006/01/18(水) 16:08:49
ということはの複数のポップアップの同時表示自体が不可能ということでしょうか
X が動いているか分からない Unix 上で AWT が使えるかどうか確認したいんだけど、 GraphicsEnvironment.getGraphicsEnvironment() や Toolkit.getDefaultToolkie() とかで 例外出してみる方法はないの?
>>433 java.awt.GraphicsEnvironment.isHeadless()
>>434 サンキュー
だが X 使えなくても isHeadless() が false を返すね。5秒くらい待った後に例外になるから
あらかじめ分かるなら処理を回避したいんだが。
headless=false
java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:134)
…
>>429 リクエストとか、セッションのオブジェクトを、生成したスレッドから使わなければ問題なし。
あとは、普通のマルチスレッド処理と同様の注意点。
EJBからのスレッド起動はNG。
>>435 何がしたいのかわからん。
Java2D/AWT/Swing使うアプリだったら X使えなければ例外吐いて落ちても差し支えないだろうし。
>>437 Java2D だけしか使わんアプリだったらヘッドレスモードで十分だけど。
439 :
デフォルトの名無しさん :2006/01/18(水) 18:38:24
質問です。 JSP→Servlet→Bean→Javaクラス と処理が進んで1つのリクエストが終了しJSPに戻った場合 Bean以下のインスタンスはいつGCの対象になるのでしょうか? 教えてくださいお願いします。
char型をint型に変換するメソッドってありますか?
441 :
名無し募集中。。。 :2006/01/18(水) 18:52:11
ある
>>439 乱暴だが
Servlet JSPに処理を渡し終えた時点
Bean、Javaクラス セッションやリクエストに格納されてなければ、処理が終わった時点
な感じ
443 :
439 :2006/01/18(水) 19:07:15
>>442 ありがとうございます。
フィールドでListのインスタンス生成したら、
どんどん要素が増えていったもので・・・・。
444 :
デフォルトの名無しさん :2006/01/18(水) 19:52:07
Javaプログラムの中で他のJavaプログラムを実行とかってできますか? もし、できるなら方法を教えてください
445 :
名無し募集中。。。 :2006/01/18(水) 19:58:44
ProcessのAPI見ろ
>>444 Runtime.exec を使って別のVMを立ち上げる
Runtime.exec("java -jar jarファイル main(String[]) を持つクラスの 完全限定名");
Runtime.exec("java main(String[]) を持つクラスの 完全限定名", null, "クラスパ階層のルート");
クラスを直接読み込んで、同じVM内で実行する
ClassLoader loader = new URLClassLoader(new URL[]{ new File( "クラスパ階層のルート or jarファイル").toURL() });
Class mainClass = loader.findClass("main(String[]) を持つクラスの 完全限定名");
mainClass.getMethod("main", new Class[]{ String[].class }).invoke(null, new String[]{ "コマンドライン引数1", "コマンドライン引数2" });
>>446 > Runtime.exec("java -jar jarファイル main(String[]) を持つクラスの 完全限定名");
ダウト
Javaでリバースエンジニアリングできないように(あるいは解析しにくいように) コンパイルするやり方ってないでしょうか? より具体的に言うとWebブラウザでJavaアプレットを動かす時の コードを解析されたくないのですが、なにか解析を難しくする方法とかありませんか?
450 :
440 :2006/01/18(水) 22:07:16
すいません、質問がまとまっていませんでした。 以下のことを教えていただけないでしょうか。 1、char型をint型に変換するメソッドまたはその方法 2、charAt(i)で持ってきた文字をString型へ変換する方法またはメソッド 3、char型をString型へ変換するメソッドまたはその方法 「すべてのクラス」のサイトでメソッドを探してはみたのですが、数が膨大で みつかりませんでした。 ご教授お願いします。 何がしたいのかというと、ファイルAから数式を読み込んで計算・処理し、ファイルB へ結果を出力したいんです。 String型で読み込んで、int型に変換して・・・という型の変換処理に頭を抱えています。
451 :
デフォルトの名無しさん :2006/01/18(水) 22:25:06
1. (int)<char_type> 2. String.valueOf(charAt(i)) 3. String.valueOf(<char_type>)
>>450 1・制度が上のプリミティブならなにを考える必要がある
2・APIくらいみろ
3・2とどうちがうのだ
まるなげかよ
2つのメソッドがお互いを呼び出してるんでループするのは当然。
456 :
440 :2006/01/18(水) 22:44:46
>>451 ,452
レスありがとうございます。
まだまだ分からないことが多くて。
参考にします、ありがとうございました。
457 :
453 :2006/01/18(水) 22:49:26
>>455 getyamafudaの部分でカードを引いてgetyamafuda2へ
getyamafuda2からgetyamafudaへ
という風になっているのは分かるのですが、
カードを引く前に引くかパスかを選んで、パスならpassmine1へ
引くならば引いてgetyamafuda2へ
という風にどうやってすればいいでしょうか?
458 :
デフォルトの名無しさん :2006/01/19(木) 00:09:11
>>453 あまりにひどいコードなので絶句したが、とりあえずヒントだけ。
イベントドリブンを理解しよう。
この場合、ボタンによって一つ処理が進むってことだ。
つまり、getyamafuda()のなかでgetyamafuda2()は呼ばなくていい。
getyamafuda2();を呼ぶのは、相手が押したボタンでしょう。
同様に、getyamafuda2()のなかでgetyamafuda()は呼ばなくていい。
まずは、ここから考えてみよう。
次に、getyamafuda()とgetyamafuda2()は何が違うのか考えてみよう。
実はたいした違いはないんじゃないか?
今どっちの順かという違いだけで、やってることは同じだから
一つにできるはず。
パスの方も同様ね。
もっといえば、クラス設計を考えてみよう。
プレイヤー、ゲームマスタ、カード、デッキをオブジェクト化すると
もっと奇麗にまとまるはず。
459 :
デフォルトの名無しさん :2006/01/19(木) 00:59:48
配置則はページングの場合には問題にならないのはなぜですか?
ひょっとすると Character.digit(ch, radix) かもしれんね。
>>440 が「変換」としか書かかず、変換前と変換後が
たったの一例もないので答えようがない。
463 :
デフォルトの名無しさん :2006/01/19(木) 02:50:42
Collections.unmodifiable*のインスタンスは同期とらなくてもいいのですか? 書き換えないんだから壊れなくて当然ですか?
>>463 複数スレッドからの同時アクセスで壊れる事はないと思うけど、
それとは関係ないところで壊れないかどーかは別問題。
reflection 使って壊そうと思えばいくらでも壊せるし、
HashMap とかに hashCode() が変更できるオブジェクトを
キーとして前もって入れておけば壊せるし。
465 :
デフォルトの名無しさん :2006/01/19(木) 10:56:37
携帯のカメラで撮影したjpg画像をjavaで読み込んだとき、元の画像とRGB値 が多少異なるんで、誤差を修正する方法を教えてください。
・携帯画面と PC のディスプレイを厳密にキャリブレーションする。
素朴な疑問だが匿名内部クラスにローカル変数を渡すとき final 宣言しなきゃならんのは何で?
>>467 匿名内部クラスは、宣言されたメソッドが終了してからも生き残る(可能性がある)わけで、
その場合にfinalでない変数にアクセスしようとして
スタックフレームの無効になった領域に触ろうとすると拙いから。
すぐに思いつかないのは技術者として相当ヤバいと思う。
最近の新人さんスタックあんまわかってねーよ 浮動小数点もよくわかってねーし
>>468 オイオイ、普通に考えりゃ暗黙的に匿名内部クラスにインスタンス変数用意して
値 (または参照) コピーすりゃ済むやんけ (実際逆アセンブルしてみれば
そう動いてる)。スタックを共有するような無茶な方法で思考停止してる方が
技術屋として相当ヤバいだろ。
というか、final 宣言されたローカル変数がスタックに乗らないと
思ってる時点でおまえは アフォ 確定
やべー理解できない
472 :
デフォルトの名無しさん :2006/01/19(木) 12:41:16
プリミティブのbyte型に入っている、asciiコードの97を String型のaに変換する方法を教えてください。
>>470 コピーで済んでるのは final 付いてるからだろ。
final 無しの場合に、匿名クラス内で外側のローカル変数を変更した場合とか
メソッド内でローカル変数変更した場合どーすんの?
>>473 そうか? なんか 468 が final ローカル変数を C/C++ の static ローカル変数
みたいなものと勘違いしてるみたいだったから (スタックが云々のあたり)。
>>474 コピーした時点で別の変数だから final が付いてるのとは関係ないだろ。
「どちらかの値が変更されたら、見た感じ相手の変数にもその値が反映されて
そうで紛らわしいから」 って理由でこうなってるならなんとなく納得。
ちなみに
class Foo{
void f(final x){
new Thread(){
public void run(){System.out.println(x);}
}.start();
}
}
は↓とほぼ等価。javap で見るか jad で逆コンパイルしてみれ。
class Foo{
void f(final x){
new Foo$1(x).start();
}
}
class Foo$1 extends Thread{
final int val$x;
A$1(int x){val$x =x;}
public void run(){System.out.println(val$x);}
}
>>472 byte b = 97;
//1バイトだけだと、まだるっこしいけど基本的なやり方
String str = new String(new byte[]{ b }, "ASCII");
//97 が ASCII でも Unicode でも 'a' である事を利用する。
str = Character.toString((char)b);
str = "" + (char)b;
>>475 > コピーした時点で別の変数だから final が付いてるのとは関係ないだろ。
普通はコピーしないし、同じ変数として扱われるんだよ。
もっと他の言語勉強しろ。
479 :
デフォルトの名無しさん :2006/01/19(木) 13:20:20
>>477 わざわざ (参照) と書いたのは見えなかった事にですかそうですか。
ここで他言語は関係ないな。とりあえずアセも C/C++ も君より使えるからご心配なく。
>>478 で結局は
>>475 みたいなバイナリになるのに final が必要な理由はなんだろかな。
大昔に JavaHouse で T 氏が「紛らわしいからじゃね?」と言ってた記憶があるけど
そうなのかな〜。
コンストラクタ名間違えてるな。誤 A$1(int x) → 正 Foo$1(int x)
481 :
デフォルトの名無しさん :2006/01/19(木) 13:39:00
質問です。 byteの配列(Shift_JIS)からマルチバイトの部分だけ取り出したい場合、 なんかいい方法ありませんか・・・。 byte[] b = body.getBytes("iso_8859_1"); for (int i=0; i< b.lenght(); i++) { if (isMultiByte(b[i]) { //ここでマルチバイトの処理。 } } public void boolean isMultiByte(byte b) { //ここの部分のいい判別方法ありませんか・・・ }
>>481 Shift_JIS のリーダーバイト (1バイト目) は 0x81〜0x9F, 0xE0〜0xEF, 0xF0〜0xFC だから
b がこの範囲かどうか判定すれば分かる。トレーラーバイト (2バイト目) は半角領域と
カブってるから単体で取り出しても判定不能。
バイト配列のある位置がリーダーバイトなら次の位置はトレーラーバイト、って判定の
仕方しかない。
>>481 boolean isSJISLeadingByte(byte b){
int c = b & 0xFF;
return (0x81 <= c && c <= 0x9F) || (0xE0 <= c && c <= 0xFC);
}
boolean isSJISTrailingByte(byte b){
int c = b & 0xFF;
return 0x40 <= c && c <= 0xFC && c != 0x7F;
}
boolean isMultiByte(byte b1, byte b2){
return isSJISLeadingByte(b1) && isSJISTrailingByte(b2);
}
485 :
デフォルトの名無しさん :2006/01/19(木) 14:06:34
>>480 コピーしてる時点で値は不変のもの
ならfinalはもっともだろうが
変数いじってるのにインナークラス側で反映されてないとか
勝手にへんな誤解受けるよりよっぽどまし
>>480 今回の場合はメソッドローカルなネストした関数(クラスじゃないけどね)が書けて、
その中で外側のローカル変数にアクセス可能で、ネストした関数内でも外側でも
その変数が変更可能で影響を与えあえるような言語って意味なんだけど。
具体的には JavaScript とか Ruby とか D言語とかだね。
>>487 JavaScript のネストされた関数は外部のローカル変数触れるな。
あれは完全に内部の 1 ブロックっていう風に見てたから、言われて
みればそういう見方もあるか。内部の関数が処理している間は
外のスタックは生きてるから可能なことであって、スタックに言及した
のはそういう意図か? (当人か知らんが) おりゃまた 「final 宣言
すればスタックに置かれないからインスタンスまたいで渡せるんじゃ」
とか意味不明な事言ってるのかと思った。
や ら な い か ?
490 :
デフォルトの名無しさん :2006/01/19(木) 17:07:07
arrayScore[m] に値が入っているときと入っていないときの分岐をしたいんですが、 phpのisset() に相当するような 変数や配列の要素の有無をbooleanで返してくれるような魔法はないでしょうか。 いろいろ検索してみたんですが1時間探しても出ませんでした。 お願いします・・・。
491 :
デフォルトの名無しさん :2006/01/19(木) 17:11:04
public class mojio { public static void main(String argv[]) { TurtleScreen screen = new TurtleScreen(); Turtle t = screen.newTurtle(); t.moveTo(-400,0); t.setAngle(0); String s; s = screen.inputString("文字列を入力してください"); t.drawString("あなたが入力した文字列は,「" + s + "」"); } } これをこんぱいるしようとすると mojio.java:8: シンボルを解決できません。 シンボル: メソッド inputString (java.lang.String) 場所 : TurtleScreen の クラス s = screen.inputString("文字列を入力してください"); ^ エラー 1 個 と出てコンパイル不能です。解決法を誰か教えてください!
>>490 無い。Javaの配列は可変長配列じゃないし連想配列でもないので isset みたいので調べる必要が殆ど無い。
配列限定で似たような事するなら m < arrayScore.length && arrayScore[m] != null みたいな感じか?
493 :
490 :2006/01/19(木) 17:50:41
>>492 「無い」とわかっただけでもありがたいです。
しかも重要なヒントまでありがとうございます。
arrayScore[m] == ""とか間抜けなことしておりました。
無事解決しました!
ありがとうございました。
>>491 TurtleScreenクラスのソースも晒して。
それからクラス名のmojioってのはいただけん。
間違いじゃないが。ひいひい祖父ちゃんの遺言でなければMojioにしとけ。
クラス名は大文字ではじめる癖をつけといたほうがいい。
質問させていただきます。 Javaアプレットって、セキュリティの問題でソケット通信できないようにしてるってどこかに書いてあったんですが どうやっても使えないものなんでしょうか?
>>495 実行環境のポリシーファイルで許可するように設定すれば使える。
つーか普通に使えるはずだが サンドボックスの制限についてもうちっと勉強したほうがよさゲ
>>467 ローカル変数はメソッドが終了するとオブジェクトがいつか破棄されてしまう。
しかし、内部で宣言されたインナークラスのインスタンスは生き残る可能性がある。
この時、インナークラス内からローカル変数を参照しようとすると、参照できない可能性があるため。
この問題を解決するため、コンパイラがfinalキーワードを使用したローカル変数がある場合に、
インナークラスのコンストラクタに引数として渡すことになった。
こんな理由だったはず。たぶんね。
>>389 こ、これは・・・?
具体的にはどうすればよいのでしょうか。
499=500
501=502
匿名な内部クラスってこんなやつ?? 言葉がわからないから話題についていけない・・・OTL public void foo(){ String s = null; new Stack(){ public Object push(Object item) { return null; } class Sub{ public void func(String s){ } } }.new Sub().func(s); }
506=506
507 :
デフォルトの名無しさん :2006/01/20(金) 01:29:30
質問があるのです。 『適当な数字をいくつか入力すると、それらの標準偏差を 計算して表示するjavaプログラムをつくれ データの個数に上限はないものとする』、、、と言う課題が出ました。 作ってみましたが、最初から最後まで一行も合っている気がしません。 山の様に出たエラーも、何が言いたいのか皆目分かりません。 もう疲れました。もう頑張れません。どなたか答えを教えて下さい(x_x) 全くの初心者です。こいつのせいで私は虫の息です。 どうかどうかどうかお助けください(;_;)
答えも何も標準偏差が何かわかればそのまま書くだけだが。 初心者だから〜とかぬかしてるやつは死んで。
509 :
デフォルトの名無しさん :2006/01/20(金) 01:45:27
標準偏差の式→ sqrt(1/nΣ[i=1〜n](Xi-X平均)二乗)
>>507 宿題スレいきなさい
何が言いたいのか皆目分かりません。
final じゃないと、こんなのがややこしいからジャマイカ public void test() { int x = 1; Runnable r = new Runnable() { public void run() { System.out.println(x); } } x = 2; r.run(); }
512 :
デフォルトの名無しさん :2006/01/20(金) 07:51:58
遅延(実行時)評価じゃないんだっけ? 本来runメソッド実行時にxを評価するのが正しいと思うんだけど メソッド定義ってただの処理手順じゃん
>>498 前半は分かる。聞きたかったのは後半の 「なんでそこで final?」 だったんだが、
なるほどね。内部クラスのコンストラクタに渡すべきパラメータがどれかをコン
パイラが知るためにか。
そのほうが内部クラス内で未宣言かつローカルで宣言されてる変数を探さなくて
済むし、そもそも内部クラスで未宣言の変数がローカル変数なのか、単にミスなのか
はっきりして良い。ついでに
>>511 みたいなややこしさも回避できるってことか。
ありがとう、すっきりした。
文章じゃ理解できずにコード示されないと理解できない馬鹿っているよね。 特にアセンブラできます、とか言ってる奴に多い。
としか言えない馬鹿よりマシ
あぁ、
>>475 のfinalなしバージョンよりはややこしくないねぇ
>>475 のどこに final なしバージョンが?
JTextFieldやJTextAreaをアクティブ(カーソルが点滅している状態)にする場合は何を使えばいいでしょうか?
>>519 hasFocus() が false なら requestFocus()
isEditable() が false なら setEditable(true)
isEnabled() で false なら setEnable(true)
実例で示せってのはどの世界でもあることだと思うけど。アセンブラ使いに多いのかね?
523 :
名無し募集中。。。 :2006/01/20(金) 10:47:24
文章で示す奴の文才がない場合に言われることが多いよね<実例で示せ 実例を示せって言われるのがコンプレックスなのかな?
>>522 実例じゃなきゃ理解できないのがダメなんじゃね?
アセンブラ使いに多いかは知らね
学校の先生の観点だと「理解できない方が馬鹿」なんだけど 塾の講師の観点だと「うまく説明できない方が馬鹿」になるんだよな いい加減な説明しといて「馬鹿」と罵倒するのは上手い釣りだとは思うが
アセンブラとJavaScriptが使えて
>>467 の理由が即座に想像できない奴は馬鹿
527 :
名無し募集中。。。 :2006/01/20(金) 11:44:14
30過ぎのPGって本当につかえねぇ
釣りならどっか他所いってやれよ
529 :
デフォルトの名無しさん :2006/01/20(金) 12:15:25
いやいや、プログラミングは実例がものを言うので、理屈だけではだめ。
530 :
名無し募集中。。。 :2006/01/20(金) 12:29:17
実践なくんば証明されず。 証明なくんば信用されず。 信用なくんば尊敬されず。
いやいやいや、理屈だけでは理解できない実例を示せ、っていうのはだめな奴だろ
すいません。 今GUIのプログラムを作成しているのですが JEditoPaneを使用していて ちょっとした疑問ができました。 JEditoPaneにいろんな結果を表示するのですが、 表示結果を直接いじれないようにするときに setEnabled(false)とするのとsetEditable(false)とするのではどう違うのでしょうか?
>>531 理屈で良いと思う香具師、テストは必ずしてるんだろうな。
534 :
デフォルトの名無しさん :2006/01/20(金) 12:57:44
いい加減スレ違いウザイ
536 :
532 :2006/01/20(金) 13:18:00
>535 あ〜なるほど。 setEnable(false)だと文字列の選択も不可能になるってことか・・・ 迅速な回答ありがとうございました┏oペコ
多言語コンプレックスな粘着がいるな。
538 :
デフォルトの名無しさん :2006/01/20(金) 16:18:25
>>536 プラットフォームやGUIによって結果が違うから注意な
539 :
デフォルトの名無しさん :2006/01/20(金) 17:18:14
jarにするとImageIconが読み取れなくて困ってます。 どうすればいいでしょうか? public class CopyAction extends AbstractAction{ public CopyAction(){ super("コピー", new ImageIcon("icon/copy_b.png")); } public void actionPerformed(ActionEvent arg0) { hoge.jTextArea.copy(); } }
>>539 別にクラスをjarにしても普通に画像ファイル読めるけど?
画像ファイルをどこに置いたの?
リソースとしておいたんじゃないの?
>>539 CopyAction が入ってる jar に画像も入ってる事が前提だけど。
> super("コピー", new ImageIcon("icon/copy_b.png"));
super("コピー", new ImageIcon(CopyAction.class.getResource("/icon/copy_b.png")));
542 :
デフォルトの名無しさん :2006/01/20(金) 17:59:15
>540 説明不足ですみません。 CopyActionと画像は別々のパッケージに入っています。 大体こんな感じです。 hage┬hige │ └CopyAction ├icon │ └copy_b.png └hoge └jTexeArea
543 :
デフォルトの名無しさん :2006/01/20(金) 18:11:52
じゃあ"/hage/icon/copy_b.png"だな
544 :
デフォルトの名無しさん :2006/01/20(金) 18:17:23
>541 すみません。 やってみましたがよく分かりませんでした。 >542をまとめて1つのjarにしているんですが… ためしにjarにしてみたら、起動すらできないようです。
545 :
デフォルトの名無しさん :2006/01/20(金) 18:27:25
Javaのレイアウトマネージャを用いて、ボタンやテキストエリアなど複数種類のGUIコンポーネントを配置し、3種類のGUIウィンドウを作成せよ。但し、次の条件に従うこと。 * SwingのGUIコンポーネントを利用すること(授業で説明したGUIコンポーネント以外を利用してもよい) * フローレイアウト、グリッドレイアウト、グリッドバッグレイアウト、ボックスレイアウトの4つはいずれも最低1回は利用すること * 一つのGUI画面を設計するのに複数のレイアウトを利用してもよい(その場合はJPanelを使うことになる) * 配置したGUIコンポーネントを操作した場合、画面上のどこかにその操作に対応したメッセージを表示すること * 作成したGUIに関する説明書きのテキストファイル(README)を作成すること...という課題が出されたんですが初心者なのでわかりません。やり方わかる人教えてください。
546 :
デフォルトの名無しさん :2006/01/20(金) 18:38:15
>543 やはり表示できません。困った。 CopyActionとcopy_b.pngを同じパッケージに 入れてみてもできないようです。 どこか根本的なところがおかしいのでしょうか? 初心者な質問ですみません。
>>546 どうしたいの?
画像が外だしなら今までのコードそのままでいい
リソースとしてjarにいれてるならリソースから取り出すように修正すべし
コンストラクタとかちゃんと見てみた?
Imageが取り出せるならそれを渡すだけだよ
正しくとJARが作成できているのか、確認してみたら? classしか入っていないとかではないか?
549 :
デフォルトの名無しさん :2006/01/20(金) 19:00:04
>547 言葉を知らないのでうまく説明できないのですが、 これはデスクトップ用アプリケーションの一部なんです。 なので、アイコン画像として表示できればいいんですが、 あれらを1つのjarとして出力・実行しても表示できません。 表示できない=Imageが取り出せていない、ということですよね? パスが間違っているから取れていないという理解でいいですか? リソースとして…の部分が理解できなかったので、 的外れな答えかもしれませんがよろしくお願いします。 >548 eclipseでやっているのですが、iconのパッケージも含めてエクスポートしています。 ただ、この作業にも理解が不足している点があります… 今ぐぐって調べています。
つまりjarにclassも画像も入れてワンパッケージにしたいってことね? ならリソースとして扱う必要がある クラスパスルートからの画像のアドレスをImageIOでロードして そのImageをImageIconにいれるのがいい ちゃんとjarに画像が入っているかどうかもチェックしてください 拡張子を変えればWinXPなら標準で中身を確認できるし
初心者が使うならEclipseよりNetBeansのほうがその辺楽だし デスクトップアプリならSwing使うだろうからなおさらだよね・・・
>>551 そもそもリソースをわかってないんだからIDEがなんだろうが
関係ないだろ。
>>552 画像等をリソースとして埋め込むのはNetBeansは分かりやすいと思うよ
エクスポートがどうのこうのということはないし
554 :
デフォルトの名無しさん :2006/01/20(金) 19:18:20
>550 >つまりjarにclassも画像も入れてワンパッケージにしたいってことね? そういうことです! jarにはちゃんと画像が入っていました。 ImageIOを調べてみます。 >511 NetBeansのほうが優しそう、というイメージはあるのですが ちょっと引き返せない状況で無理なんです。 Eclipceからすぐには移行できませんよね? 興味はあるので、次から試します。 本当に皆さんご丁寧にありがとうございます。大変助かります。
どのIDEつかおうがsrcフォルダコピーすればいけるだろ ただ、IDEに密着したもの、たとえばGUIエディタとかそのへんはつかえんが 仕事で使う場合はこの辺がネックになるのでそれらを考慮してIDEを選択すべき どのIDEも一長一短で完璧なIDEってのはないよ
556 :
デフォルトの名無しさん :2006/01/20(金) 21:14:53
スケジュール管理のプログラムを書くことになって曜日を求めるプログラム をグレゴリアンカレンダークラスを使っているのですが、思うとおり動いてくれません。 import java.util.GregorianCalendar; .......... public final static String getYoubi(int year, int month, int day){ GregorianCalendar r = new GregorianCalendar(year, month, day); System.out.println(r.get(GregorianCalendar.DAY_OF_WEEK)); // r.set(year, month, day); // System.out.println(r); return null; } こんな感じで書いているんですが、オブジェクトを作って、 2006年の1月20日(本日)を指定しても2(月曜日)と なってしまいます。オブジェクトに年月日を指定しないでやるとちゃんと6になるのですが ちなみに SystemUtility.getYoubi(2006, 1, 20); で実行してます。
>>554 リソースわかってないんでしょ?リソースから読み込んでないんじゃね?
>>547 が言ってるけど、たぶん理解してないと推測。
ImageIO.read(this.getClass().getResource(画像のパス));
で幸せになれるような気がするぞと。
559 :
デフォルトの名無しさん :2006/01/20(金) 21:22:07
>557 なるほど、ああ月0から始まるんでしたね・・・ 間違えているはずがないから年の指定がわるいのかなぁとか考えていました・・・ 本当に即レスありがとうございます。
>>ファイズ CalendarのMONTHは1月を0として表す。 1月→0 2月→1 3月→2 ... 12月→11
561 :
デフォルトの名無しさん :2006/01/20(金) 21:31:09
>557, >560 さん 本当にありがとうございました。
まずCalendarクラスのインスタンスを取得するようにしましょう。 GregorianCalendarは基本的に使わない方向で。
なぜ?
564 :
デフォルトの名無しさん :2006/01/20(金) 22:08:51
これはスレ違いになってしまうかもしれませんが、 JTextFieldで自動的にカナ変換や半角入力指定をすることなどできますか? 入力後の文字のチェックは文字コードを調べればできるのですが、入力時に変換を押す手間を省きたいです 恐らくRuntimeクラスを使ってnativeで呼ぶことになりそうですが 使用OSはWindowsです。googleで探したのですがでてこないで宜しくお願いします。
>563 Utilityだからコール度にオブジェクトを作っていたらメモリと時間がもったいない からじゃないのかな? 漏れにはそれぐらいしか分からないけど・・・ とGregorianCalendarはCalendarクラスの子供だからメソッドをコールするのに 少しばかり時間がかかるということかな。
>>564 > JTextFieldで自動的にカナ変換や半角入力指定をすることなどできますか?
「カナ変換」とか「半角入力」ってのが曖昧なので、要求と合致するかは知らんが
jtextfiled.enableInputMethods(true) すればインプットメソッドが有効、
jtextfiled.enableInputMethods(false) すればインプットメソッドが無効になる。
「カナ変換」ってのが ローマ字入力/カナ入力 を制御したい、とかだとやった事ないから分からん。
jtextfiled.getInputContext().getInputMethodControlObject()
jtextfiled.getInputContext().setCharacterSubsets()
とかで何とかなるかもしれんが????
> 恐らくRuntimeクラスを使ってnativeで呼ぶことになりそうですが
やるならRuntimeじゃなくてJNIを使う事になると思われ。
>>565 どのカレンダーを使うかはロケールで切り替えるべきものだから。
568 :
デフォルトの名無しさん :2006/01/20(金) 23:31:38
>566 どうもです。 ちょっと挑戦してみます。 InputMethodってあったんですね。1.3から実装されているんですか・・・ コマンドをcallして指定できれば、JTextFieldがフォーカスされたときに Runtimeからコマンドコールすれば出来そうな気がしたんですが無理なのかな・・・ これで無理そうならJNIやってみます。InputMethodはいじったことがないので よく分かりませんが挑戦してみたいと思います。 ありがとうございました。
569 :
デフォルトの名無しさん :2006/01/20(金) 23:42:18
>567 localeの指定はどっちでもできるし作られるときはどちらのクラスも デフォルトlocal and time zoneで作られる見たいだけど・・・ 自分には違いが分からないです (><) でも曜日だけを知りたいならCalendarクラスを使えればいいのは納得っす
日本の日付だけならカレンダーのロケール指定(もしくはなし)でインスタンスを取得
これだけでいい
>>568 なにをしたいのかまだようわからんけど
JNI使えるようなレベルには見えないけど
SwingってOSのコンポーネントとか使ってないよ
571 :
498 :2006/01/21(土) 00:28:34
>>513 さらに補足。
インナークラスに限らず、コンパイル時点で参照が割り当ててないものを使用しようとすると、
エラーが発生するでしょ?
String str1;
String str2 = str1; <--ここでエラーになるはず。
というこで、インナークラスをインスタンス化しようとした時に、
暗黙的に渡される変数はその時点で、nullでもなんでもいいから
「確実に代入(参照や値)」されていないといけないよね。
なので、ローカル変数宣言時に強制的に代入を強要するfinalが必要ってこと。
たぶんね。たぶん。
572 :
デフォルトの名無しさん :2006/01/21(土) 01:15:35
auとvodafoneについての質問です。 入力フォームで送られてきたbyte列の それぞれの絵文字の部分をauとvodafoneが提供している web表記用文字列に変換しDBにインサートしたいのですが、 byte列から絵文字部分をスマートに取り出す方法を教えてください。
573 :
デフォルトの名無しさん :2006/01/21(土) 10:27:58
>570 やりたいことを説明すると、万一かなの切り替えをコマンドラインでcall出来れば、 JNIを使うまでもないのかと思ったわけです・・・ で自分のやりたいことは JTextField1: 半角入力 JTextField2: 全角入力 例えばJTextField1 から入力チェック後リターンでJTextField2 に移動したときに いちいち切り替えをキーボードで変更する方法ではなく例えばJTextField2に移動 したときに全角入力に切り替わるということをしたいのです。通常ならAlt+半角で切り替えなきゃ いかんじゃないですか。これをキーボードをいじることなくやりたいのです。
574 :
デフォルトの名無しさん :2006/01/21(土) 11:03:11
Calendar.getInstance() がリソース節約のために用意されてると 勘違いされてる方が一人いらっしゃるようです。
576 :
デフォルトの名無しさん :2006/01/21(土) 11:25:49
>574 早速のレスdクスです 今はとりあえずWindowsで走ればいいのかなと・・・ データのやり取りをするわけでもないので コマンドラインで入力モードの切り替えができれば JNIを使うまでもないと思ったのですが・・・ 入力モードの切り替えなんてOSで用意されていると思ったので 例えば"setinputmethod KATAKANA" とか・・・ わざわざJNIを使うというのがなんか理解できなくて・・・ データのやり取りをしないのにJNIを使うメリットって何なんでしょうか? JNIで遊ぶことぐらいだとしか認識していないのですが・・・ Unix上でMotifで昔使っていてその後Javaで少し組んでいたのですが、 急遽Javaで作らなければいけなくなってしまったというわけです。
577 :
デフォルトの名無しさん :2006/01/21(土) 11:28:09
Calendar.getInstance()は通常GregorianCalendarのインスタンスを生成します。 ただし、Localeの国名がTH(タイ)のときsun.util.BuddhistCalendarのインスタンスを生成します。
578 :
デフォルトの名無しさん :2006/01/21(土) 11:38:51
>575 ソースをみれば、574が少し勘違いしているけど JavaのCalendarライブラリ開発のあの書き方は漏れは素朴に? を昔から持っているけどね。
579 :
デフォルトの名無しさん :2006/01/21(土) 11:40:58
>575, >577-578 スマソン、今改めてソース見たらry
581 :
デフォルトの名無しさん :2006/01/21(土) 11:50:25
>578 コレを見れば、カレンダークラスにこだわっている香具師もryというか 正確なんだけどそれほど目くじら建てる問題かと。 要するにタイ以外では通用するっつうことだしょ? それよりもSingletonパターンかなんかでCalendaのインスタンスを クラス変数でひとつ持っておけばResourceも無駄にしなくてすむん じゃないのかな?まぁ頻繁に使うならということだけど。newするコストは馬鹿にならん。 もっともシステムが大きければの話だけど。 まぁ世界中で使うなら話は別だがry
>>581 Singleton パターンは作成するプログラム側ですればいいこと。
>>581 いやだからライブラリ側でSingletonパターン使ってインスタンス
保持してんだからそれ使えって話でしょ。世界中とか関係ないんだよ。
それを知らずに自分で生成したらアホってこと。
>>584 どのライブラリで?
少なくても java.util.Calendar ではしてないよ?
>>574 Swingではウインドウしかネイティブ部分はもってねーよ
テキストボックスとかすべて自前で描画してる
それをトラップして使うとかまずできないのさ
IME制御だけならJavaだけでできるしね
587 :
581 :2006/01/21(土) 12:06:05
なんかカレンダーひとつでなにか盛り上がってますイイ!! >580の意見には基本的には賛成だがその本を読んでもry しかしIMEの解決方法は未だにワカラン(・O・)
588 :
581 :2006/01/21(土) 12:09:23
>584 ライブラリ側ではやってないよ。 ライブラリのソースみれば分かるよ。 >575がソースみて早速謝ってるっす。 IMEの制御は上にでてきたInputMethodを使えばできるのかしらん?
IMEは
>>573 によればInputMethodのon/offがやりたかったらしいが、それは
>>566 が提示済み。
590 :
デフォルトの名無しさん :2006/01/21(土) 12:12:56
556です。 なんか本当にありがとうございました。
Calendar を Singleton でとか言ってる アフォ よ、 mutable/immutable という言葉くらい覚えておいたほうが良いぞ。
593 :
デフォルトの名無しさん :2006/01/21(土) 12:32:26
>592 556は曜日調べるだけなんだぞw ミュータブルなんてイラネ 言葉知ってるだけでryだなwww
594 :
デフォルトの名無しさん :2006/01/21(土) 12:41:35
クラスGregorianCalendar をインスタンク化するほうが Calenda クラスのgetInstanceメソッドを使う よりもリソースの節約になる場合もある。(繰り返しテストをしてみられよ)
おまえはさっきからコアライブラリの中で Singleton 持ちしてるとか アフォ な主張してるだろ。Calendar は immutable じゃねぇから そんなことできねェって指摘してやってんだよwww
>>587 http://java-house.jp/ml/archive/j-h-b/024765.html#body を参考にしてサンプルを作成。
import java.awt.BorderLayout;
import java.awt.event.*;
import java.lang.Character.UnicodeBlock;
import javax.swing.*;
public class Q_79_587 {
public static void main(String[] args) {
JFrame frm = new JFrame();
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JTextField tf1 = new JTextField("IM off");
frm.getContentPane().add(tf1);
final JTextField tf2 = new JTextField("全角ひらがな");
frm.getContentPane().add(tf2, BorderLayout.SOUTH);
final Character.Subset[] ss1 = {UnicodeBlock.HIRAGANA};
final Character.Subset[] ss2 = {UnicodeBlock.BASIC_LATIN};
tf1.addFocusListener(new FocusAdapter() {
public void focusGained(FocusEvent e) {
tf1.getInputContext().setCharacterSubsets(ss1);
}
});
tf2.addFocusListener(new FocusAdapter() {
public void focusGained(FocusEvent e) {
tf2.getInputContext().setCharacterSubsets(ss2);
}
});
frm.pack();
frm.setVisible(true);
}
}
597 :
596 :2006/01/21(土) 12:48:27
>>584 oOO
(´ー`)yー┛
ゆとり教育ですか
599 :
581 :2006/01/21(土) 12:54:49
>596 dクス!! このスレ見ていたらIMEどうやってやんだろって気になっていまって 見ていたしだいですw >594 そうですね。getInstanceはnew GregorianCalendar(mmmm)をしていますから >595 そりゃそうだお前さんが正しいお 偉い!! そしてカワイソッス Singletonを主張しているのはユーザライブラリに 使うべきだといっていると思うんだけど・・・
>>599 ↓これのどこが?
> >565あたりの言っているのが正しいだろ?なぜわざわざ子クラスの
> GregorianCalendar使うということで。 ああやって一々リソースを無駄に
> することはないだろう。
> いやだからライブラリ側でSingletonパターン使ってインスタンス
> 保持してんだからそれ使えって話でしょ。
もう痛々しいからやめてやれ
602 :
名無し募集中。。。 :2006/01/21(土) 13:07:51
このスレは礼節というものを知らない者共が多すぎる 質問者も回答者もお互いを尊重しなさい 言葉の乱れは精神の乱れですよ^−^
>>511 遅レスだが、このコードの x に final をつけると・・・
>>596 それ、 enableInputMethods とか setCompositionEnabled が無かったJDK1.2時代のやり方だよ。
>>603 どっちにしろ、x = 2 でコンパイルエラー
>>603 だから 「こういうコードが通っちまってややこしい」 って例だろ。
607 :
581 :2006/01/21(土) 13:18:40
>600 上575の発言だけど彼は勘違いしていたんだねきっと。Calendarクラスが最初Singletonだって 速攻でソースみて謝ってたみたいなので許してチョ 後の人は自分のライブラリで作れって話で。 p.s.そういう漏れもソース見るまではシングルトンだと思ったお グローバルに考えればJava libraryのカレンダーがシングルトンではいけないっつうのは分かるけど。 日本という狭い範囲でアプリを時々書いている自分にとってはと >602 全面的に賛同しまつ
609 :
596 :2006/01/21(土) 13:51:33
>>604 確認してみた。環境は Windows XP + IME2003 + J2SE 5.0
void Component.enableInputMethods(boolean enable)
デフォルトで true 。false にするとキーボードの半角/全角キーでも日本語入力状態にならず。
void InputContext.setCompositionEnabled(boolean enable)
InputContext Component.getInputContext() でインスタンスを取得。
true で日本語入力可能状態。
setCompositionEnabled(true) の後に enableInputMethods(false) をやると
半角/全角キーでも日本語入力状態にならず。
>>609 enableInputMethods(false) だと単にInputMethodがサポートされなくなるのか。
setCompositionEnabled すれば良いってことね。
611 :
デフォルトの名無しさん :2006/01/21(土) 17:41:12
System.out.println(String s) の意味がわかりません。 println()はprintstreamクラスのインスタンスメソッドですよね? ってことは、 printstreamクラスのインスタンス.println(s) っていう使い方になるんじゃないんですか? しかもoutはフィールドだし。詳しくおしえてください。
System.outは何クラスのインスタンスですか?
613 :
617 :2006/01/21(土) 17:50:45
>>618 わかりません。でもインスタンスを作るときは
コンストラクタを呼ばなきゃいけないから
System.outはインスタンスじゃないよーな気がする・・・
614 :
611 :2006/01/21(土) 17:52:31
>>613 は私です。マカエレがバグった。
618宛ではなく612宛です。
public class System { PrintStream out = new PrintStream(................... } 簡単にあらわすとみたいな感じですが。
>>615 public static final付きな。
617 :
611 :2006/01/21(土) 18:03:17
>>615 ,616
なるほど。どうもありがとうでした。今日も一つ成長しました。
System クラスのソースより public static final out = nullPrintStream(); final なので、一生ダミーな PrintStream のままです。 あなたがコンソールで目撃する標準出力は、あなたの幻想です。 そもそも public static final なフィールドなのに、 小文字だけの名称だなんてとんでもない
昔の慣例的には定数だから大文字なのであって、public ststic final だからってわけじゃない。
620 :
デフォルトの名無しさん :2006/01/21(土) 18:43:21
finalなのにsetOutで変更できる不思議な仕様ですし。
System.out は変更できるので、 このようなむき出しのフィールドにアクセスする場合 ダブルチェックのようなスレッドセーフの問題を引き起こさないよう、 何かしらのオブジェクトを用いて同期を取らなければなりません。 したがって、System.out.println の正しい使い方はこうです。 setOut メソッドで同期をとるために用いるオブジェクトを o とすると synchronized(o) { System.out.println("kuma-"); }
/|| ̄ ̄|| 〇_〇 ∫ l ||__||((ェ)・ ) 呼んだくま? 旦 [l | ,,― とノ ⌒ヽ | ̄ ̄ ̄ ̄ ̄(____)
623 :
デフォルトの名無しさん :2006/01/21(土) 20:11:55
Sun Java Studio Creatorなんですが、インストールの途中、17%のところでSun Java Application Server Platform Edition 8をインストール中です・・・・ってなってずっと止まってしまいます。どなたか解決策をご指導願います
624 :
623 :2006/01/21(土) 20:49:59
ちなみにWindows XP HomeEditionです。Sun Java Studio CreatorはHomeEditionではインストールできないんですかね?ずっと止まったままです
privateで保護されたArrayListを、継承したクラスから全要素数を得ることは可能でしょうか? あと、ArrayListに格納された文字列を、 昇順降順に並べる方法というのはあるのでしょうか? どなたかヒントだけでも良いのでよろしくお願いします。
>>625 >privateで保護されたArrayListを、継承したクラスから全要素数を得ることは可能でしょうか?
リフレクション使えばできるかもしれないが、継承したクラスから
使いたいなら素直にprotectedにしとけ
>昇順降順に並べる方法というのはあるのでしょうか?
Collections#sort
627 :
625 :2006/01/21(土) 21:07:25
>>626 師匠と呼んでいいですか?
師匠、ありがとうございます!!!
頑張って今夜中に解決します!
628 :
デフォルトの名無しさん :2006/01/21(土) 23:00:55
今四角形を書くプログラムを作っているのですが。 書くたびに画面が白くなってしまいます。(四角が1つしかかけない) これを解決するにはどうすればいいですか?? (前半) public class Mouse6A extends Frame{ /********** グローバル変数 ***********************/ int x0 = 0;/*第1点のx座標*/ int y0 = 0;/*第1点のy座標*/ int x1 = 0;/*第2点のx座標*/ int y1 = 0;/*第2点のy座標*/ booleanflag=false;/*true:ドラッグ中 false:ドラッグ中でない*/ /******* コンストラクタ *******************************/ public Mouse6A(){ setSize(400,300); //マウスイベントを有効にする MyListener myListener = new MyListener(); addMouseListener(myListener); addMouseMotionListener(myListener); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); }
629 :
デフォルトの名無しさん :2006/01/21(土) 23:01:28
(中盤) /************** paint **********************/ public void paint(Graphics g){ Graphics2D g2 = (Graphics2D)g; Point p = new Point();//左上の座標値 Dimension d = new Dimension();//幅と高さ /*破線のストロークの定義*/ float[] dash1 = {3.0f}; BasicStroke dash = new BasicStroke(1.0f,BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER,10.0f,dash1,0.0f); /*四角の座標*/ p.x = Math.min(x0,x1);//小さい方を左上の座標とする p.y = Math.min(y0,y1); d.width = Math.abs(x0-x1);//差を幅とする d.height = Math.abs(y0-y1);//差を高とする if(flag){ /*ドラッグ中だったら*/ g2.setStroke(dash); g2.drawRect(p.x,p.y,d.width,d.height);//四角を描く(破線) } else{ /*ドラッグ中でないとき*/ g.drawRect(p.x,p.y,d.width,d.height);//四角を描く(実線) } }
630 :
デフォルトの名無しさん :2006/01/21(土) 23:05:07
(後半1) /************** main ***********************/ public static void main(String[] args) { Frame w = new Mouse6A(); w.show(); } /*********** マウスイベントを受け取るクラス ********************/ class MyListener extends MouseInputAdapter{ /************** マウスが押されたら *************************/ public void mousePressed(MouseEvent e){ /*第1点の保存*/ x0 = e.getX(); y0 = e.getY(); x1 = x0; y1 = y0; flag = true;/*ドラッグ中*/ }
631 :
デフォルトの名無しさん :2006/01/21(土) 23:07:30
(後半2) /************** マウスがドラッグされたら *************************/ public void mouseDragged(MouseEvent e) { /*現在位置を第2点とする*/ x1 = e.getX(); y1 = e.getY(); /*再描画!*/ repaint(); } /************ マウスが離されたら ***************************/ public void mouseReleased(MouseEvent e){ /*現在位置を第2点とする*/ x1 = e.getX(); y1 = e.getY(); /*再描画!*/ repaint(); flag = false;/*ドラッグ終わり*/ } }
paintのイベントはいつ呼ばれるか分からない ウインドウ動かしたりしても再描画はいるよ 描画バッファに描画するようにすべし paintの中には描画バッファを描画するだけにしてね あとは細かいことだとGraphics2D使ってるなら JFrame使ったりしたほうがよいように見える
633 :
デフォルトの名無しさん :2006/01/21(土) 23:10:47
なぜ、java.io.Fileにcopyメソッド無いのだろう? 誰か知りません? createNewFileとかdeleteがあるなら、 copyがあってもよさそうなのに。 なんでだろ?
アトミック性を保障したファイル作成もファイル削除もコアライブラリが 提供してなきゃ使えないが、copy は自作で簡単に作れるからじゃね? ファイルの大きさやパフォーマンスで最適なバッファサイズとか 変わってきそうだし。 バグパレード漁ってみたらだいたい同じ理由だった。 > Huh? Since when does the File class have a copy method? > > It doesn't, and we have no plans to add such a method because (1) You can easily > do this yourself, and (2) Its behavior would vary widely across platforms.
今日から本を読みながら勉強を始めたばかりなのですが 早速行き詰ってしまいました。 本の通りに書いたのですが「シンボルを解決できません」と表示されて コンパイル出来ません。どこが悪いんでしょうか ご教授ください! import jaba.io.*; class SampleA { public static void main(String args[]) throws IOException { System.out.println("文字列を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine( ); System.out.println(str+"が入力されました。"); } }
メール欄が悪いな。
import jabaって・・・
インデントが気に食わんな
639 :
635 :2006/01/21(土) 23:48:33
すみません、さっきのは出来心です。 これは釣りでなくホントにわかんないです、教えて頂けませんか。 import java.io.*; class SampleA { public static void main(String args[]) throws IOException { System.out.println("整数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine( ); int num = Integer.parseInt(str); System.out.println(num+"が入力されました。"); } } int num = Integer.parseInt(str); ↑の部分を付け足したくらいなのですが コンパイルできません>w<
全角空白。
641 :
635 :2006/01/21(土) 23:51:47
>>638 コピーして張り付けただけなんですけどズレちゃったのかな。
そこは勘弁してください。
見えないものが見える霊能者が居るスレはここですか?
643 :
635 :2006/01/21(土) 23:54:03
>>640 うぁ、全角でやってたのか><;
ありがとうございました。
あれ?tryとキャッチがないみたいだけどそれのエラーは出なかったの?
645 :
635 :2006/01/21(土) 23:56:54
646 :
644 :2006/01/21(土) 23:57:23
あ、ごめんthrowしてるですねはい
647 :
デフォルトの名無しさん :2006/01/22(日) 01:39:02
java.net.Socket.getInputStream ってどうやって使うんですか? 戻り値が入力ストリームってのが良く分かりません。
>>647 通信相手が送ってきたデータはその入力ストリームから取り出すことが出来る。
>>647 >戻り値が入力ストリームってのが良く分かりません。
戻り値の InputStream が良くわからないのか
戻り値が InputStream になってることが分からないのか
(・∀・)ニヤニヤ
651 :
647 :2006/01/22(日) 10:16:40
>>648 つまり、
Socketのインスタンス.getInputStream
ってやると、相手から送られて来たデータが戻り値になるってことですか?
>>649 戻り値の InputStream が良くわからないです。
冷たくって甘くてバニラとかあるアレだよ
ゲラゲラ(´∀`)
>>651 データの流れをストリームという。
デバイス同士が物理的に接続しているだけでは、ストリームにならない。
ストリームは論理的にも接続していなければならない。
いわば、「水が流れるためのパイプを用意しました」
と言っているようなものだ。つまり、getInputStreamは受け取るパイプを用意して、
「オブジェクトからのデータはここに流れるよ」とそのパイプをくれるわけだ。
655 :
647 :2006/01/22(日) 12:30:21
>>654 なるほど。
その戻り値を例えば、DataInputStreamの引数にしたりして
ゴニョゴニョするってこと?
656 :
デフォルトの名無しさん :2006/01/22(日) 12:31:50
質問です。よろしくお願いします。 プロセス稼動状況みたいなものを見ることって出来ますか? if ( ! MySQLが起動中 ) MySqlを起動する みたいなことを行いたいのです。
657 :
デフォルトの名無しさん :2006/01/22(日) 12:35:30
BufferedReader reader= new BufferedReader(new FileReader(filename)); String line; while((line = reader.readLine()) != null){.....} ってやるとコンパイルできるけど BufferedReader reader= new BufferedReader(new FileReader(filename)); while((String line = reader.readLine()) != null){ だと、コンパイルできなです。なぜですか?一緒のような気がするんですが。 エラーは")"がありませんって言われます。")"はありますが・・・
String line = reader.readLine(); ↑これは、式を返さない。 変数の宣言と初期化であって、式じゃない。
659 :
デフォルトの名無しさん :2006/01/22(日) 13:55:29
int num = (int)args[0]; だとコンパイルエラーになります。なぜでしょうか? 変換できない型って言われるorz
argsって何の配列だよ String配列とかか?
661 :
659 :2006/01/22(日) 14:05:07
>>660 引数です。
java 何チャラ 第一引数 第二引数
args[0]は第一引数です。String型かな。教え下さい。
>>661 答えは出てるだろ
int foo = (int)"1";
これ無理だろ?
663 :
デフォルトの名無しさん :2006/01/22(日) 14:13:59
int num=0; try{ num = Integer.parseInt(args[0]); }catch(NumberFormatException nfe){nfe.printStackTrace(); }
>>659 int num = String.parseInt(args[0]);
とかやりたいんじゃないのか
666 :
664 :2006/01/22(日) 14:17:43
667 :
659 :2006/01/22(日) 14:22:02
>>662 それは無理なんですか。
(int)はlongとかを変換するときに使うということですか?
>>663 どうもです。
668 :
デフォルトの名無しさん :2006/01/22(日) 14:33:49
int foo = (int)'1'; はOK。String と char のタイプの違い。
669 :
659 :2006/01/22(日) 14:38:14
オブジェクトでないもの同士はOK
String タイプはプリミティブタイプではない事に注意。
public class rei8 extends Applet implements MouseMotionListener,MouseListener { // 解説(1) Image imgs; int px,py; boolean flag=false; public void init( ) { imgs = getImage(getDocumentBase(),"img1.jpg"); addMouseMotionListener(this); addMouseListener(this); public void paint( Graphics g ) { g.drawImage( imgs, px, py, this ); } public void mousePressed(MouseEvent e) { if (px<=e.getX() && e.getX()<=px+64 && py<=e.getY() && e.getY()<=py+64) flag=true; repaint(); } public void mouseReleased(MouseEvent e) { flag=false; } public void mouseClicked(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseDragged(MouseEvent e) { if (flag){ px=e.getX(); py=e.getY(); repaint(); } } public void mouseMoved(MouseEvent e) { } } img1.jpgがゴミ箱の画像に重なって、放すと画像1img.jpgが消えるにはどう すればいいですか?消えるところだけでいいんです。
674 :
デフォルトの名無しさん :2006/01/22(日) 18:34:47
>>673 public void mouseReleased(MouseEvent e) {
flag=false;
repaint();
}
public void paint( Graphics g ) {
if (flag) {
g.drawImage( imgs, px, py, this );
}
}
>>577 遅レスだが、J2SE6から和暦カレンダが追加されるらしいぞ。
ロケールが ja_JP_JP だと、
JapaneseImperialCalendar のインスタンスを返すんだってさ。
クラスローダーを作成してるのですが、バイナリを Class にする defineClass のところで JDK 1.1 環境でエラーになってしまいます。 ロード対象のクラスは JDK1.1 使用できることは確認してあります。 最小セットのソース書いてみたんですが、ちょっと見てもらえませんか? protected Class loadClass(String className, boolean resolve) throws ClassNotFoundException { Class clazz = findLoadedClass(className); if(clazz == null && this.getClass().getClassLoader() != null){ try{ clazz = this.getClass().getClassLoader().loadClass(className); } catch(ClassNotFoundException ex){/* */} } if(clazz == null){ byte[] binary = loadBinary(className); System.out.println("BINARY SIZE[" + className + "]: " + binary.length + "B"); clazz = defineClass(className, binary, 0, binary.length); // ←ここで例外 System.out.println("SUCCESS: " + className); } if(resolve){ resolveClass(clazz); } return clazz; } private byte[] loadBinary(){ // ... クラスファイルのバイナリをロード }
(続き) 実行結果 C:\a>java b java version: 1.1.8 BINARY SIZE[a]: 539B java.lang.NoClassDefFoundError C:\a>java b java version: 1.5.0_05 BINARY SIZE[a]: 539B SUCCESS: a hello, world JDK 1.1 の頃に作られたクラスローダーってどこかにないですか?
>>676-677 それjava.lang.NoClassDefFoundError投げてるの誰ですか?
スタックトレース晒してよ。
はじめまして、最近JAVA3Dを使い始めたばかりの初心者です。 本を見ながら、アプレットをつくりました。 オブジェクトが左から、右に移動するアプレットなのですが、実行したら勝手に アプレットが開始されるのですが、ボタンか何かをつけて、スタートをさせるよ うにするにはどうすればいいでしょうか? 自分の持っているJAVA3Dの本には視点変更などをする方法としてボタンの追加の 方法がのっているのですが、よくわかりませんでした。 ボタンの追加と、それをクリックしたら開始する方法を教えてください。 よろしくおねがいします。
その本の通りにやれば?
>>678 それがスタックトレース出ないんですよ。OutOfMemoryError と同じようなタイプだと思います。
System.out.println で definelClass 内だということまでは分かるんですけどね。
本にはスタートの方法は書いてなかったので。 ボタンもいっぺんに4つくらい出るプログラムで、どのボタンのプログラムが どのプログラムに対応しているか、よくわからなかったのです。 すいません、もしよかったらおねがいします。
>>681 思いつくとこ適当に書いてみる。
ああAPIのソース見たとこdefineClassのなかでdefineClass(name, b, off, len, null);をさらに
呼んでいるから、そこでjava.lang.NoClassDefFoundErrorが投げられてるのか。
で、例外投げる条件は`If name is not equal to the name of the class
specified by b'だけどそこはだいじょうぶ?
あとaはちゃんと-target 1.1してるの?
つーかaが小文字なの気持悪い。デバッガ使おう。
質問です。
今RMIについて勉強しようとしているのですが、
ttp://www.hellohiro.com/rmi.htm の通りにrmicを実行させようとすると
error: クラス HelloWorldObj が見つかりません。
エラー 1 個
とでます、どのようにしたらコンパイルが通るでしょうか。
どうかご教授お願いします。
環境はwindows j2se 5.0です。
>>676 うちでやってみたら、ロードしたクラスの親クラスである
java.lang.Object も自作クラスローダで解決しようとしてた。
で、それ解決してやったら動いたんで、大筋はそのコードでいいと思う。
たぶん 1.1 の場合は this.getClass().getClassLoader() が null になってて
システム側のクラスが解決できないんだと思う。
以下みたいに直せば動くんじゃないかと思われ。
> if(clazz == null && this.getClass().getClassLoader() != null){
> try{
> clazz = this.getClass().getClassLoader().loadClass(className);
> } catch(ClassNotFoundException ex){/* */}
> }
if(clazz == null){
try{
if(this.getClass().getClassLoader() != null){
clazz = this.getClass().getClassLoader().loadClass(className);
}else{
clazz = findSystemClass(className);//1.1 には getSystemClassLoader() が無い?
}
}catch(ClassNotFoundException e){} //Ignore
}
>>683 JDK 1.1 の ClassLoader のソースだと native メソッド呼んでるだけみたいです。
protected final Class defineClass(String name, byte data[], int offset, int length) {
check();
Class result = defineClass0(name, data, offset, length);
if (result != null) classes.put(result.getName(), result);
return result;
}
private void check() {
if (initialized == true) return;
throw new SecurityException("ClassLoader object not initialized.");
}
private native Class defineClass0(String name, byte data[], int offset, int length);
対象のクラスは 1.1 の javac でコンパイルして 1.1 の java コマンドで main が
実行できます。クラス名はすみません、確認用に適当に作ったソースなんで。
C:\a\classes>java -version
java version "1.1.8"
C:\a\classes>java a
hello, world
C:\a\classes>type a.java
public class a{
public String toString(){return "hello, world";}
public static void main(String[] args){System.out.println(new a());}
}
name と b が等しいのは 1.5 でロードできてるので大丈夫だと思うんですが。
ネットで 1.1 っぽいクラスローダー作るサンプルとか見てもこんな感じなんですけど、
どこがおかしいのか orz
>>685 できた!!
おっしゃる通り java.lang.Object のロードでも呼び出されるみたいだったんで、システム
クラスローダーからロードされるクラス (this) のクラスローダーの loadClass べば良いか
と思ってたんですが、それでもまだ不足だったみたいですね。
どうもありがとうございました。
>>684 rmic の前に javac *.java とかやっとく必要あるんじゃないの?
>>688 それをやっても駄目でした。
色々試したり、調べてはいるのですがわかりません。
690 :
688 :2006/01/22(日) 22:25:24
>>689 いや、そのページ見て真似して試してみたけどできたぞ
まじですか、ということは自分がおかしい。 もう少し試してきます。駄目だったら戻ってきます。
質問です。 ここに10個の数字があります。 33 35 36 37 38 39 48 52 75 79 7桁の重複しない組み合わせをすべて出力しなさい。 例)33 35 36 37 38 39 48 33 35 36 37 38 39 52 33 35 36 37 38 39 75 33 35 36 37 38 39 79 33 35 36 37 38 48 52 ・ ・ ・ ・ ってどうやってプログラム組めばいいですか? 俺の頭の中では、むりぽ。
宿題は自分で。
>>692 宿題スレいった方がいいかもね。
ところで問題文が曖昧じゃね?
・同じ数字を2回使ってもいいの?
例: 33 33 33 33 33 33 33 は却下?
・7桁?(80進法?)って事は、単に順番並べ替えただけで
別の数字って解釈もできるけど、重複になるの?
例: 33 35 36 37 38 39 48 と 48 39 38 37 36 35 33 は重複?
695 :
デフォルトの名無しさん :2006/01/22(日) 23:46:13
case 32://戦闘0-2 switch(e1.getKeyCode()) { case KeyEvent.VK_SPACE: try { Thread.sleep(100); } catch(Exception e) {} iba11 = 600; iba12 = 0; repaint(); s += 1; break; default: break; } break; case 33://戦闘0-3 try { Thread.sleep(100); } catch(Exception e) {} iba12 = 600; iba13 = 0; repaint(); s += 1; break; case 34://戦闘0-4 iba13 = 600; iba14 = 0; try { Thread.sleep(100); } catch(Exception e) {} repaint();・・・・・・・・・・・・・・・・・・・・・・ アニメーションの一部なんですがうまく動きません。なんでですか?
「うまく動きません」とだけ言われてもねぇ。
697 :
デフォルトの名無しさん :2006/01/22(日) 23:50:53
>>696 2〜3コマ動くと止まり、キーを押すとまた2〜3コマ動きます
>>697 そういう動きになるように作ってるんでしょ?
どこがおかしいとか仕様とかがわからんとなんとも
700 :
695 :2006/01/23(月) 00:30:07
0.1秒ずつ連続に表示したいのですがなぜか止まります。 画像をスムーズに流す方法を教えてもらえませんか?
そもそもこれでは全体の流れがわからんし
702 :
695 :2006/01/23(月) 00:35:59
ええと、CASE文でアニメーションが動けば何でもかまいません! 何でも良いので方法を教えていただけませんか?
メインループとかどうかいてるの?
704 :
695 :2006/01/23(月) 00:52:29
while ( (line = in.readLine()) != null ) { System.out.println(line); } サーバから送られてきた文字列をこれで出力すると 出力が完了した後、固まって動かなくなります(´・ω・`) 何故でしょう?
>>704 あまりにも長すぎて驚いたが、キーイベント中に処理を書くのをやめなされ
イベントの処理は簡潔であれ、というのをおぼえておいたほうがいい
それにこれはすでに言語に関係なくて、ゲームのループ処理勉強したほうがいい
サーバにリクエストを送信して返ってきた文字列を出力してるので 鯖側のストリームがどうなってるかは・・
>>708 DOS 窓開いて netstat と打て。
切れてないなら ESTABLISH と出るだろ。
切れてなかったです
ならそのまま待機状態で正しい
よくわかんないお(´・ω・`) もうちょっとヒントくださいお
while を if に変えれば済む悪寒
while を if にしたら1行しか出力されないです もう少し調べてみます
715 :
デフォルトの名無しさん :2006/01/23(月) 01:43:37
i-modeのプログラミングなど初めてみたいと思っているのですが、 i-modeのjavaからシステムの時刻を変更できますか?
>>705 受信自体は問題ない。
一般的にはどうだか知らないが、
終わりがいつになるかわからない処理を行っている時に、
他の作業もしたい場合は別スレッド (java.lang.Thread) を使う。
受信を終了するための条件を決めてあるなら、別の方法で解決できるかもしれない
717 :
695 :2006/01/23(月) 02:07:36
>>707 そうですよね・・・そっちのほうが絶対良いんですよ。
時間なくてループを勉強しなかった僕が悪いんです。
で、やっぱり
アニメーション処理は今の状態じゃ無理ってことでしょうか?
無理と思っていたほうがいい repaint使ってる以上な あれもイベントで処理するから
イベントの処理は原則変数操作のみだろ Thread.sleepなんてもってのほか
720 :
デフォルトの名無しさん :2006/01/23(月) 06:14:12
インターフェースの便利さが良く分かりません。 わざわざインターフェースを実装しなくくても 元々、実装したかった2つのクラスで同じ名前の メソッドを書けば無問題ですか? どうせ書かなきゃいけないわけだし。
>>720 インターフェイスはメリットが感じられるようになったら使えばいいのです。
俺もそう思す ある程度でかいコードかけるようにならなきゃ必要なもんでもない
むしろ無理して使うと変なクセがつく
インターフェースにはデータだけを(静的変数として)保存しておくという使い方もある。
↑ 言うまでもないけど、保存するのは公開可能なデータだけね。
本来の使い方は誰も教えてやらないのかよ。
>>721-722 の言うこともわかるけど、興味や疑問をもったときに、
きちんと理解して覚えておくと言うのはいいことだと思うけどなぁ。
>>720 > わざわざインターフェースを実装しなくくても
> 元々、実装したかった2つのクラスで同じ名前の
> メソッドを書けば無問題ですか?
インターフェースを実装する事で、実体は別々のクラスのオブジェクトであっても、実装したインターフェースの型で
同じように扱えるから、ひとつの呼び出し方法で複数の実装(クラス)を扱いたいのならインターフェースを実装すべし。
同じ名前のメソッドでも、呼び出す場所や呼び出し方が異なる場合はインターフェースは必要ない。
ただしそれならメソッドを同じ名前にするのは混乱を招くので好ましくないと思う。
詳しくはインターフェイス、多態性、ポリモーフィズム、継承などでググると良いかと。
継承や抽象クラスとインターフェイスの使いどころ違いを理解しておくと後々楽。
あと、覚えたからと言って必要のない所にまで使いまくるのは、害悪にしかならないので注意してな。
>>723 変なクセ?どんなクセ?参考までに教えてほしぃ。
727 :
723 :2006/01/23(月) 13:11:58
なんでもかんでもインターフェイスをつけたがって、半日無駄にした奴がいた。 とりあえず2ヵ月放っておいたらそのクセは勝手に直った。 というわけで、OOPをし続ける以上、勝手に身についていくものかと。 OOの概念も、無理に教えてもちんぷんかんぷんだけど、そのうち勝手に覚えるのと同じで。 # 教えるのが下手な香具師の言い訳ですハイ
728 :
720 :2006/01/23(月) 14:37:37
>>726 詳しい説明どうもです。
つまり、インターフェースはメソッドのテンプレを
用意するようなものですかね。
みなさんもありがとです。
SWTでウェブブラウザを作成していて、 ボタンを押した時に、キーボードのCtrl+Fを押した時と同じ動作を させたいんですがどうしたら良いでしょうか?
SWTはSWTスレ行くが吉 標準ライブラリじゃないからな
>>730 ありがとうございます。
SWTスレで聞いてみます。
733 :
デフォルトの名無しさん :2006/01/24(火) 01:21:29
携帯電話用のアプリを作りたいんですけど ぶっちゃけ、開発環境ってどれが良いですか?
MIDP用ならご自由に
735 :
以下、名無しにかわりましてVIPがお送りします :2006/01/24(火) 01:59:11
1000番目の素数を求めるにはどのような アルゴリズムを取ればいいですか?
736 :
735 :2006/01/24(火) 01:59:48
間違えました 取り下げます
>>735 数一つ一つについて既に求めた素数全て割れるかどうかを調べ、
割れなかったら新たに発見した素数とする。
但し全ての数を調べる必要はなくて、わかりきっている 2, 3 は
最初から素数として扱い、偶数の値は調べない。
738 :
名無し募集中。。。 :2006/01/24(火) 10:26:25
何とかのふるい使えばええやん
エラトステネスのふるいだな
sunのjava5.0をダウンロードしてインストールしようとしたら使用許諾書みたいなのがでてきました 90日以内に領収書がどうたらこうたらと書いてありました 気にせずインストールしたのですがお金を払わなければいけないのでしょうか??
ちゃんと使用許諾を読め
人ととおり読んだんですがそのときはなんか急いでたんで・・ やっぱり払わないといけないんでしょうか?
読み返したけどなんかよくわからない・・ すいません頭悪くて
まあ、普通売ってる場合(商品)は90日試用とかで自動的に機能しなくなるし、 どうせ寄付金とかのウインドウだろ。
無償でって書いてるので無料なんですか??
じしょぐらいひこうね むしょう むりょう
すみません。 Javaアプリケーションをwebで動作するアプレットへと移植しようとしているのですが、 外部の設定ファイルがうまく読み込めずエラーとなります。 で、元のアプリでは private static final String TP = "/設定ファイル名"; となって、ローカルからの読み込みになっているのですが、 これをURL指定して読み込むようにするにはどうすればいいのでしょうか?
ファイル読み込んでるところをHTTPで読み込む様にすればいいんじゃね?
URL って、設定ファイルをネットワーク越しに読み込ませる気か? ファイルをサーバのローカルに置きゃ良いだろ。
753 :
750 :2006/01/24(火) 17:50:26
失礼、「webで動作する」 と来たから「サーブレット」と自動補完してた。 アプレットと同じ JAR ファイルに入れて ResourceBundle クラス使え。
肝心の読み込む部分のコード公開してないがな
756 :
750 :2006/01/24(火) 18:22:56
>>754 JARファイルに入れるやつですか。ちょっとやってみます。
>>755 おそらく読み込んでいるコードはここだと思います。
Properties p = new Properties();
p.load(new FileInputStream(TP));
map.put(TP, p);
よろしくお願いいたします。
>>756 なんでファイルのストリーム使ってるのさ
HTTPのストリーム使いなさい
質問させていただきます。 Javaでフレームを使ってウィンドウアプリケーションを作成しようといるのですが、 文字列を配置して、その文字列を右から左にスクロールさせたいのですが、やり方がわかりません。 よろしければご教授ください。
>>758 まずJPanel配置までは出来てる?
できているならそのコンポーネントに描画するだけ
あとはタイマーで動かす処理をかく
JavaアプレットからローカルPCのファイルに書込みたいのですが、 そういうことはムリなのでしょうか。
無理です Java Web Start 使ってください。
762 :
デフォルトの名無しさん :2006/01/24(火) 19:31:12
ポリシーファイルでもいじれば?
質問です。 RedHat で、java 1.4.2_05 使っています。 MD5を使った練習コードを書いたのですがですが、エラーが出ます。 どうやらライブラリに問題がありそうなのですが… マシンは大学のサーバーで、他ソフトの兼ね合いもあり、 JAVAのバージョンを上げることはできません。 何とかこのバージョンでMD5を使いたいのです。 よろしくお願いします。 コードは以下の通りです。 import java.security.MessageDigest; class Digest { public static void main (String[] args) { MessageDigest digest = MessageDigest.getInstance("MD5"); byte[] hash = digest.digest("hoge".getBytes()); System.out.println(hash); } } 結果は、以下の通りです。 md5.java: In class `Digest': md5.java: In method `Digest.main(java.lang.String[])': md5.java:5: Exception `java.security.NoSuchAlgorithmException' must be caught, or it must be declared in the `throws' clause of `main'. MessageDigest digest = MessageDigest.getInstance("MD5"); ^ 1 error
>763 問題があるのはライブラリでなくお前の頭。 味噌汁で顔あらって出直してこい
ライブラリって別にコアライブラリのことじゃなくてプロバイダが入ってる Sun の奴のことだろ。
>>763 MD2、SHA-1、SHA-256、SHA-384、SHA-51 なんかはどうよ?
>765 てめぇも同類の能無しか?エラーメッセージ読め
ああ、コンパイルエラーか。失礼
>>764 ,765
スンマセン、マジで分からんです(その程度のレベルです)。
WEBで拾ったサンプルコードを使ってるんですが。
>>763 Exception `java.security.NoSuchAlgorithmException' MUST BE CAUGHT!
763です。ご迷惑おかけしました。ありがとうございます。
771 :
デフォルトの名無しさん :2006/01/24(火) 20:46:34
J2EEで、 JSP - Servlet - Stateless SessionBean っていうふうに呼び出したいんだけど、 処理ごとにServletは分けるべき? SessionBeanは分けるべき?
>>771 今の流行の流れでは・・・
・Servletは一つでいいだろう
・アプリの規模にもよるが、SessionBeanはユースケース単位で分けるぐらいがちょうどいいだろう
・ビジネスロジックの呼び出しはCommand Patternで隠蔽するのがいいだろう
774 :
デフォルトの名無しさん :2006/01/24(火) 23:47:22
アプレットからjspを呼び出したい。 今、アプレットでゲームを作っています。アプレットにマウスリスナーを実装しておいて、 ゲームをクリアするとクリックイベントで他のページにジャンプしたいのですが、 どうすればアプレットからjspを呼び出せるのですか? jspには response.sendRedirect("遷移先のページ"); とか言うのがあるのは知っているのですが、、 誰か助けてください。
getAppletContext().show("JSPのURL");
間違えた。showDocument だ
777 :
デフォルトの名無しさん :2006/01/24(火) 23:57:44
>>775 今から試してみます。
どうもありがとうございました。
778 :
749 :2006/01/25(水) 00:11:22
結局無料なの??
JEditorPaneにHTMLを表示させています。 このときCSSをいじりたいんですが、うまくスタイルが変更してくれません。 原因などわかるかたいたら教えて下さい。
import java.awt.*;
import java.io.IOException;
import javax.swing.*;
import javax.swing.text.html.*;
public class StyleSheetTest extends JFrame{
JEditorPane editorPane;
public static void main(String[] args){
StyleSheetTest f=new StyleSheetTest();
f.setBounds(0,0,400,400);
f.setVisible(true);
}
public StyleSheetTest(){
editorPane=new JEditorPane();
editorPane.setEditable(false);
editorPane.setContentType("text/html");
StyleSheet ss=new StyleSheet();
ss.setBaseFontSize(5);//ベースフォントサイズを設定しているつもり。
HTMLDocument doc = new HTMLDocument(ss);
editorPane.setDocument(doc);
try {
editorPane.setPage("
http://www.yahoo.co.jp ");
}catch(IOException e){
editorPane.setContentType("text/html");
editorPane.setText("指定したページは見つかりませんでした");
}
getContentPane().add(new JScrollPane(editorPane),BorderLayout.CENTER);
}
}
782 :
デフォルトの名無しさん :2006/01/25(水) 05:09:29
この期に及んで(ワラ ライブドアってPerl.PHP信者しかいないところだろ。おまけに*BSD信者の巣窟だし。 Java嫌いな奴がかなり集まってるはず。 長期戦略的にものを見ず、短期戦術的にしかものを見ることができず、 即座に金にならないものは拒否するという 堀江貴文の性格がそのまま会社に現れてしまった結果だな。
783 :
デフォルトの名無しさん :2006/01/25(水) 07:11:33
質問です。BufferedInputStreamなんかで読み込んだ画像ファイルを 文字列で出力できるようにしたあと その文字列をまた画像ファイルに変換するような(もしくは元に戻す)クラスって存在しますでしょうか?
785 :
デフォルトの名無しさん :2006/01/25(水) 08:08:03
ArrayListでつくったリストからから配列を作りたいです リストのサイズから配列を作り、をIteratorで値を代入するしか方法はないのでしょうか?
786 :
デフォルトの名無しさん :2006/01/25(水) 09:06:17
ノートパソコンでEclipseかNetbeensを使ってJavaをしたいと思ってるんですが どのくらいのスペックが必要でしょうか? 当方、マカーなので良く分かりません。 うちのMacじゃお話にならなかったので・・・ 一応、Thinkpad X21(2662-65J)の中古を狙ってるんですが。 Solarisもインストールできるみたいなんで。 それとメモリはどのくらい積めば快適でしょうか?
EclipseスレかNetBeansスレの方がいいんでないかね
>>785 ArrayList(List) から配列へ変換するのは以下の二つ
Object[] toArray()
<T> T[] toArray(T[] a)
#1.4までは Object[] toArray(Object[])
型指定が必要な後者は、size()で長さを取得し、必要な長さの配列を作成してから使うこと。
# 長さが足りないと、内部で戻り値の配列を生成することになる(通常より重たい実行時処理で)
# 長すぎても for 文で null チェックをする必要がある
# private で保持している配列を arraycopy してるから、考えられる中では最速では?
789 :
デフォルトの名無しさん :2006/01/25(水) 11:45:29
>>788 なるほど。ありがとうございます。
早速やってみます
790 :
デフォルトの名無しさん :2006/01/25(水) 14:12:15
>784 いや、そういうわけではないのですが どうしてもやる必要になりでもなかなか出来ないものでして・・
>>790 バイナリを ASCII 化したいだけなら符号化くらい簡単に出来るだろ。
単純に 16 進数で出力するとか Base64 でも作れば?
792 :
デフォルトの名無しさん :2006/01/25(水) 17:14:44
SunのJVMならBase64のエンコ・デコードは簡単だな
URLConnection を使って通信してるのって、読み込みブロックに入ってるスレッドを 割り込んだり出来る? Socket の setSoTimeout() みたいなのでも良いんだけど。
URLConnection#setReadTimeout ってのがあるけど、これじゃダメなんか?
795 :
デフォルトの名無しさん :2006/01/25(水) 17:57:18
>>794 Since1.5だな
1.1の頃これが無くて悲しい思いをした思い出がある
796 :
デフォルトの名無しさん :2006/01/25(水) 18:02:42
java3dでファイル操作をしたいのですが、いまいちわかりません。 座標(x,y,z)を入力したメモ帳を用意して、その座標に球を置くという ものです。で最終的には、座標を1万と作り、その座標に球(1万個) を置きたいのですが…。誰か教えてください。
>>794 さんくす。でも 1.5 か…
リフレクション使ってそのメソッドあったら呼ぶようにしておくか。
コマンドラインでパスワードを入力させたいんですが エコーバックなしか、せめて * で表示することって出来ませんか?
>>798 Mustangのjava.io.Console#readPassword()使えばできる
むう、1.4 じゃ無理か。
801 :
デフォルトの名無しさん :2006/01/25(水) 23:24:52
PureJavaで画像のリサイズ(画像のファイルサイズを小さく)を行いたいのですが、 いい方法もしくはどこかサンプルになるページを教えていただけますでしょうか?
>>801 それどこで躓くんだ
まずどういう動作をしたくてどこが分からないのか順を追って考えてごらん
803 :
デフォルトの名無しさん :2006/01/25(水) 23:34:23
来年就職なので、JAVAについて少しお聞きたいのですが 皆さんはJAVAが好きですか??
それともHSPやC++ですか?
>>762 ポリシーファイルということは、クライアントPCのファイルを
あらかじめいじっておく必要がある、ということなんですよね。
>>761 Java Web Start(全然分かっていないのですが)を使えば
クライアントPC側で特に設定なしでローカルファイルを
読めますか?
806 :
デフォルトの名無しさん :2006/01/25(水) 23:36:05
>>803 さあね。今時Javaなんてほとんど使われてないから。
仕事で使うのは95%MFCだよ。
>>807 じゃぁ、ATL覚えてクライアントアプリの名人になります
じゃぁWTL (つ_゜)゜。涙
813 :
803 :2006/01/25(水) 23:45:20
就職するころにはMFCが終わってなければいいのですが。。
>>805 JNLPAPIではユーザーが選択して保存や読み込みが可能です。
>>809 あの文章ではどの部分が分からないのかがわからない。
画像のロードや保存が出来ないのかJava2Dのほうの問題なのかといったところが。
815 :
デフォルトの名無しさん :2006/01/25(水) 23:47:45
>>802 早速のレスありがとうございます。
機能としては、とあるフォルダ内の画像をサムネイル表示したいと考えています。
ただ、1つの画像が数十MBで、フォルダ内には画像が100枚くらいあるのです。
それをMacで表示するとメモリ不足になるため、どうしたらいいものかと悩んでいます。
Macのメモリは512MBで、開発はWinXP SP2 JavaSDK1.4.1でしています。
些細な事でも構いませんのでアドバイスお願いできますでしょうか?
>>813 職業プログラマになりたいのならOJTの名の下に
その場で言語をすぐに覚えて作るのが普通になります。
もちろん、そんな状況でのコードはすごいことに。
プロジェクトが終わるころに技術力がついてくるといった無駄さがポイントです。
マイナーで表に出てこない環境を使わされることももちろんあります。
プログラマに夢を持ったらいかんよ。死人も普通に出る業界だし。
>>808 つーか署名しろよ。署名すればアプレットでもJWSでも大丈夫。
あとJWSの場合、JNLP API使えば、限定的にだけど
アクセスできたはず。
>>814 >あの文章ではどの部分が分からないのかがわからない。
聞いてない。
>>815 サムネイルをしたいってことね
まず画像は一つ一つロードする
そこまではOKね?
ならそれを新しく作ったImageにリサイズして描画するだけ
BufferedImageってのですきなピクセルフォーマットで作成が可能です
たとえば元画像がフルカラーだとしても16bitカラーあたりにしておけば
サイズが変わらなくても小さくなります
これで任意のサイズ/カラーのバッファを用意してあとはそこへdrawImageするだけ
ロードした描画元の画像は破棄します
>>816 の書き込みに、真実は1つもありません。
ここまでウソを並べられるのは逆にすごい。
え!(つ_゜)゜。涙
ちゃちゃいれしかできない
>>809 ,818,820は消えてください。
JNLP APIってJDK1.4でも使えますか?
>>823 ちゃちゃいれ以外に何かしてほしいことでもあるのですか?
>>824 WebStart自体は1.3時代からある
オプショナルパッケージだから>JNLP
ただ1.3.1あたりから標準装備だったっけ
アプレットに署名したらなんでもありになるの?
>>819 >BufferedImageってのですきなピクセルフォーマットで作成が可能です
>たとえば元画像がフルカラーだとしても16bitカラーあたりにしておけば
>サイズが変わらなくても小さくなります
ここで言うサイズは画像の大きさ(縦、横の幅)で、
小さくなるのはファイルサイズですよね。
フルカラーから16bitカラーにすれば、
色情報が減るので画像容量が減るという事ですね。
早速試してみます。
ありがとうございました。
さらに補足するとサムネイル画像が128*128未満なら256色にするのもあり
>>829 それも一緒に試してみます。
ありがとうございます。
Eclipse関連の質問ってOK? VisualEditor使ってたら突然ぬるぽエラーが発生するようになって ビューが見れなくなってしまいました。Eclipseを再起動しても直りません。 どなたか原因をご存じないでしょうか・・(´・ω・`)
>(´・ω・`) そんな顔をしても駄目だ。 涼しい顔をして平気で人を殺す、、、、、。俺はそんなやつをゴマンと見てきた
具体的に、Javaにはどんなメリットがありますか? 一般的なこと以外にも、みなさんが使ってみて思ったことを教えてください。
JavaにCで言うところのsystem関数のようなメソッドはありますか? もしあったら教えてください
exec関数みたいの(Runtime.exec())はあるけど、system関数みたいのは無い。 って回答でいいか?
838 :
836 :2006/01/26(木) 12:56:58
>>835 APIが豊富に用意されている、開発環境に(Eclipse,NetBeansなど)お金かからない
資料が多い、ガベコレ
>>827 なんでもありなのかはわからないけど、少なくともローカルファイルへの
アクセスはできるようになる。
758です・・ Jpanel貼り付けはできるんですが、Timerを使っても描画方法がわかりません; 明日が課題の締め切りなのでやり方を教えてもらえないでしょうかorz
842 :
デフォルトの名無しさん :2006/01/26(木) 19:04:50
宿題スレ池禿
パスワードを含めたユーザー情報をiniファイルに保存しといて、 初回以降は自動でログインできるようにしたいんだけど、 平文のまま保存するとやばいじゃん? 何かいい方法ない?(´・ω・`)
844 :
デフォルトの名無しさん :2006/01/26(木) 19:54:30
暗号化しかないだろ禿
禿とか言うな
846 :
デフォルトの名無しさん :2006/01/26(木) 20:01:21
じゃあ,パゲ
やめろよマジで気にしてるんだから。
848 :
デフォルトの名無しさん :2006/01/26(木) 20:11:43
じゃあフッサフッサ(仮)
>>843 java.security.MessageDigest
DAOってどういう単位で作るとやりやすい? 例えば一般的な掲示板というものを作る場合、 DAOとして「掲示板DAO」のみでOKなのか、「記事DAO」も必要なのか・・・? どうなんだぼけ?
掲示板だお 記事だぉ
>>849 MessageDigestしたら、戻せないよ
853 :
デフォルトの名無しさん :2006/01/26(木) 21:03:34
戻す必要ないだろ
>>850 テーブルまたはビュー1つにつき1つだろ。
どういう認証かも分からないのに不可逆ハッシュなんか薦めんな。
856 :
デフォルトの名無しさん :2006/01/26(木) 21:23:21
では、 「記事を編集して保存する」 という動きを考えた時、記事オブジェクトの属性をコネコネして、 記事.保存() とするわな。 そうした時にDBへ更新者と更新時間を保存したいということになったら 記事.保存(更新者,更新時間) となるのか?
おまけ 「記事を非公開にする」 という動きもふまえてDAOとサービスクラスの位置付けをどう考えるか教えてくれ
DAOほど曖昧な言葉もないよね
記事 +非公開にする +公開する *保存する(protected) 記事DAO +保存する +削除する -更新する -追加する 掲示板 +記事を書き込む 掲示板DAO +記事を検索する でどーよ。
>>840 じゃあローカルファイルに対してはなんでもありになるのかな。
その辺のことが記述してあるサイトとかってありますか?
1つのパッケージにmainメソッドって普通は1つなの?
1つのクラスに main メソッドが複数あっても問題ないよ。
ArrayListからカンマ区切りの文字列を作りたいです。 [0]aaa [1]bbb [2]ccc これを aaa,bbb,cccというふうに。
ArrayList list = new ArrayList(); list.add("aaa"); list.add("bbb"); list.add("ccc"); String text = list.toString(); text = list.substring(1, list.length() -1);
>>864-865 toString() メソッドの戻り値を利用するのは、あまりお奨めしません。
# 期待する出力だと楽でいいけどね
ArrayList<String> list = new ArrayList<String>(Arrays.asList(new String[]{"aaa", "bbb", "ccc"})); StringBuilder sb = new StringBuilder(); for (int i = 0; i < list.size(); i++) { if (i != 0) { sb.append(','); } sb.append(list.get(i)); } String result = sb.toString(); System.out.println(result);
ArrayList<String> list = new ArrayList<String>(Arrays.asList(new String[]{"aaa", "bbb", "ccc"})); StringBuilder sb = new StringBuilder(); for (String s : list) sb.append(sb.length() == 0 ? "" : ",").append(s); String result = sb.toString(); System.out.println(result);
ArrayList<String> list = new ArrayList<String>(Arrays.asList(new String[]{"aaa", "bbb", "ccc"})); String result = ""; for (String s : list) result += (result.length() == 0 ? "" : ",") + s; System.out.println(result);
ArrayList list = new ArrayList(); list.add("aaa"); list.add("bbb"); list.add("ccc"); String result = StringUtils.join(list.iterator(), ","); System.out.println(result); 要 Jakarta commons の Lang
872 :
862 :2006/01/27(金) 01:46:19
文法的にじゃなくて普通はどうすんのかって事を聞きたいんだ僕は
>>872 パッケージといういいかたがおかしくないか?
慣例的にはどうでもいい
875 :
デフォルトの名無しさん :2006/01/27(金) 02:01:31
禿とか言うな
877 :
デフォルトの名無しさん :2006/01/27(金) 03:52:22
class Signal{ static final int GREEN=1; static final int YELLOW=2; static final int RED=3; String getMessage(int n){ String str; swich(n){ case 1: str="進め"; break; case 2: str="止まれ"; break; default: str="絶対止まれ"; break; } return str; } } これで8行目に";"がありませんってなっちゃうんですが・・・・間違ってる?
うん
879 :
デフォルトの名無しさん :2006/01/27(金) 04:39:32
switchね・・・・すんません〜
>>877 > static final int GREEN=1;
> static final int YELLOW=2;
> static final int RED=3;
せっかく宣言してるんだから、switch 文で使えばいいのに?
883 :
デフォルトの名無しさん :2006/01/27(金) 08:16:28
昨日までコマンドプロンプトで実行できたのに、今出来なくて Exception in thread "main" java.lang.NoClassDefFoundError というエラーがでます。 クラス生成できるけど、実行ができません。 助けてください!
>>883 自動でpath設定しちゃうようなアプリでもインストールしたとか
>>884 環境変数が変ってました。何故だろう・・・
クイックTIMEをインストールしたのが原因かな?
パス設定し直したのでもう大丈夫です!
それにしても何故だ・・・
886 :
367 :2006/01/27(金) 09:30:03
QuickTimeは最悪だよ。 PATHはやられる。 CLASSPATHは大丈夫のような気がしたけど。 あとhttp経由のMP3のファイルの関連付けも承諾なしに変えるし
TextFieldに文字を入力してもらい エンターを押された時点でイベントを感知して処理できるようにするにはどうしたらいいのですか?
888 :
デフォルトの名無しさん :2006/01/27(金) 13:12:54
最低限APIぐらい読んでから書いてください禿
読んでもわかんねーよあの糞ページ
>>887 javax.swing.JTextFieldの場合だけど。
JTextFieldのオブジェクトを指してる変数名をtextFieldとすると
textField.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
// イベントの処理
}
});
こんな感じでActionListnerを登録すればできるんじゃ?
891 :
デフォルトの名無しさん :2006/01/27(金) 13:18:11
甘やかすなよ(笑)
>>890 どうもありがとうございます
適当にイベント受け取ったら出来ました
jmfでビデオチャットを作っているのですが、 1台目のカメラでは問題なく通信できたんですが、2台目に買ってきたものでは無理でした。 どうもProcessorが正しく動作してないようです。 medialocator = new MediaLocator("rtp://" + mainpanel.ipadress.getText() + ":" + mainpanel.port.getText() + "/video"); datasource = Manager.createDataSource(devicelocator); Processor = Manager.createRealizedProcessor(new ProcessorModel(datasource,format,descriptor)); datasink = Manager.createDataSink(Processor.getDataOutput(),medialocator); 上記の手順でやったところ2台目のみエラーを吐きます。 NoRealizedException です。 そこでCreateRealizedProcessorではなくCreateProcessorでProcessorを作成し、その後設定をしていきバグの原因を探そうとしたのですが CreateRealizedProcessorを使わない場合formatの設定の方法が分かりません。 どのようにすればよいでしょうか?
なるほど。クイックTIME最悪なのか! そっこくアンインス致します。
1.4.2とTigerの性能比較のデータを探しているのですが、 どなたかご存知でしたらお願いします。
何の性能比較だ 物によってピンキリなので機能での比較が分かりやすい 1.4.2とだと速度はさほどかわってないよ 1%も変わってないと思う GCはそれなりに早くなってるのが分かる
897 :
デフォルトの名無しさん :2006/01/27(金) 16:32:40
あるクラスから、子クラス、さらに孫クラスをつくったのですが、 孫クラスから一番親のスーパークラスのクラス変数を参照しようとしたときに 解決できないと怒られてしまいます。 ひとつ上の親クラスは参照可能なのですが…。 2つ上の親クラスには何か特別なことをしなければならないのでしょうか。 もちろんprotectedで宣言しています。 どうぞご教授ください。
GCは速くなってるんですかー ダイナミックGCとかできないかなー GC情報を取得してどんどん最適にしてくれるやつとか
ダイナミックGCってなんだ?
>>901 どのへんが動的なGCなのかようわからんが
GCとメインのタスクとの比率とかそういうのはちゃんとSunので設定できるよ
それと細かい制御が必要になるならそんな単純な設定だけに頼らないのが普通
そもそも5.0かどうかの問題というよりはSunの実装が、とかBEAの実装がとかいう話だ
>>902 このドキュメント見るとまるで動的にMaxNewSizeとかNewRatioとかパーマネント領域とかを設定して、
最適化した値を考えてくれるように見えるけど、
http://www.nminoru.jp/~nminoru/diary/2003/12.html この人の日記の12月19日を見ると、どうやらそうじゃなくて、
起動時に最適なものを探すらしい。
あと、コンカレントとかパラレルとかのGCアルゴリズムの変更もしてくれないらしい。
これらを動的に最適にするようなVMあれば素敵じゃない?
まあ今実際JRockit使わずに何度も何度もデータとって、
sunの静的なもの使ってるんだけどね
904 :
デフォルトの名無しさん :2006/01/27(金) 17:25:20
z[0] = new Random().nextGaussian(); z[1] = new Random().nextGaussian(); って書くと同じ数値になっちゃうんだけどなんでですか?
擬似乱数の精子が一緒だから
>>903 それダイナミックというのか・・・詐欺だな
でも、アプリレベルでGCってのはきまることはなくて、ゲームだと初期化ルーチンや
場面切り替えでスループットが欲しい、ゲーム中はフレームレート維持したいから
レスポンス重視で、とか欲しいからアノテーションかなんかでヒントを与えれるようにしたいよね
ゲームだとは0.5msのいつ動くか分からないGCよりは毎フレーム指定した場所でGCがおきるのなら
5msかかってもいいという場合がほとんどだということをsunはしってるのだろうかと心配になるが
908 :
897 :2006/01/27(金) 18:09:20
>>900 Eclipseの挙動が変だったようで…ご迷惑おかけしました。
910 :
デフォルトの名無しさん :2006/01/27(金) 19:06:03
JTableでセルの編集を確定すると次のセルに自動的にフォーカスが 移りますが、このフォーカスの移動順をカスタマイズするには どうすれば良いでしょうか?
>>910 自動でカーソルが移動するのをまずなくす
そのあと自前で処理を追加
InputMapを調べてみてごらん
あらゆるコンポーネントのデフォルト動作はちゃんと一つ一つ作られているわけだ
ゲームプログラムでよくある「1リフレッシュに一度バックバッファを書き換え、 垂直帰線期間中にバッファをスワップする」相当のことをJavaでしたいんですが、 専用のクラスやメソッドはありますか? 単純にJPanelのダブルバッファリングをONにして1000/60ミリ秒に一度 書き換えてもいいような気がするのですが、何か広く知られたテクニックが 他にあれば教えて欲しいです。
>>912 この程度ネットで検索すればいくらでも出てくると思うが
BufferStrategyを調べてみなされ
914 :
デフォルトの名無しさん :2006/01/27(金) 22:41:32
ArrayListに入ってる要素を forループ内でget( i )で取り出すのと、 Iteratorに変換してwhile内でnext( )で取り出すのとで 何か違いはあるのでしょうか? 都合によりJDK5.0は使えない環境です。
Iterator は順繰りに参照するしか出来ないが、List の for ループは前後の要素や 長さなどが参照できる。そうする必要が無く純粋にコレクションとしての抽象度を 高めた操作がしたければ Iterator 使えばヨロシ
916 :
914 :2006/01/27(金) 23:30:08
>915 どうもありがとうございます。 >915さんの発言を読む限りだとIteratorのメリットがあまりないような気がするのですが どんなときが「純粋にコレクションとしての抽象度を高めた操作をしたいとき」なんでしょうか? 具体的廚でスイマセン。。
917 :
デフォルトの名無しさん :2006/01/27(金) 23:42:55
で、貴様らの一番戸得意な言語はJavaなわけ?
昔からのプログラマでカウンタにiとか変数使ってまわすのに慣れてると かえって見にくかったりするんだよな これは順次処理、複雑なことは何もしてませんよ、というアピールだと思っておいてください つまり、一度限りの作成というよりは保守が入ったときそのコードを見てすぐに分かるか ということだと思われ 速度的にもイテレータ使わないほうが早いしねぇ 順序不問でまわしていいような場合があれば、今後並列用のコレクションとして イテレータと違うのが出てくると予想
919 :
914 :2006/01/27(金) 23:49:27
>918 どうもありがとうございます。納得できました。
920 :
912 :2006/01/27(金) 23:55:57
>>913 書き方がよくなかったですが、私が聞きたいのは“どうやればフリッピングできるか”では
ないです(そもそもJComponentは裏でBufferStrategyを使用していて、特にJPanelは
デフォルトでダブルバッファリングをやってるはずです)。
例えば600枚の画像を毎リフレッシュ切り替えつつ10秒間のアニメを表示しようとしたときに、
“リフレッシュごとに適切なタイミングで”表示している画像を書き換える、
その“タイミングを取る”方法です(例えばあるクラスイベントリスナを登録すると
1秒間にリフレッシュの回数だけイベントを受信できる、とか)。
リフレッシュレート自体はDisplayModeで取得できるようですが。
×あるクラスイベントリスナを登録 ○あるクラスにイベントリスナを登録
922 :
デフォルトの名無しさん :2006/01/28(土) 00:32:59
過去ログにあったらすいません、アプレットでブロック崩しに挑戦してるんですが、 オフスクリーンつかっても画面がちらつくんですが、なぜかわかりますか?
>>920 BufferStrategyをかってにはやってくれないよ
ダブルバッファリングはしてくれるけど
勘違いしてるとしか
BufferStrategyはフルスクリーンモード時はちゃんと垂直同期取るし
WindowsはDirectX使って処理されてますよ
924 :
デフォルトの名無しさん :2006/01/28(土) 01:41:16
サーブレットで、ゲーム等の得点をランキング表示させるプログラム どこかに落ちてないですか???
925 :
デフォルトの名無しさん :2006/01/28(土) 02:54:11
みなさんはWindowsでjavaを書くときは何を使ってるんですか? 私はマックでXcode使ってるんですが、スイッチしようかなと思って。 Eclipseは重いし・・・・ 他にどんな環境があるんでしょうか? メモ帳以外で教えてくださいm(__)m
926 :
デフォルトの名無しさん :2006/01/28(土) 04:19:15
tera pad
メモ帳暦 10年 Tera Pad暦 8年 ですが、何か?
秀丸
>>923 >BufferStrategyはフルスクリーンモード時はちゃんと垂直同期取るし
>WindowsはDirectX使って処理されてますよ
どうもやはり私の最初の質問文を読み返すと舌足らずで、フリッピングの仕方を
聞いてるように読めてしまいますね。これはこちらの手落ちです。
でもくどいようですが「バックバッファとフロントバッファの切り替えをリフレッシュ毎に行う
(=フリッピング)」の方法を聞いてるんじゃないです。“そこ”は全くあなたの言うように
BufferStrategyのしくみをそのまま使えばいいでしょう。でも“そこ”じゃないんです。
「バックバッファへの描画そのもの(例えばdrawImage()を呼び出す)をリフレッシュごとに
行う」ことがしたいんです。例えば「0」〜「59」と書いてあるだけのビットマップがあって、
それをちょうど1リフレッシュごとにバックバッファに書き込みたいと。
実際ネット上で
while(...) {
g = strategy.getDrawGraphics(); // バックバッファのコンテキストを取得
(gを用いて毎ループ違う内容を描画)
srategy.show(); // フリッピングはここにお任せ
try { sleep(...); } catch (...) {} // ここで再描画のタイミングを指定しているんだけど…
}
といったサンプルをいくつか見ました。
sleep()にリフレッシュレートを指定すれば一応はこちらの用件は満たしているのですが、
sleep()自体正確さに欠けるようですし、“ループの中でsleep()して待機”という原始的な
記述法よりもっとスマートな同期法が提供されていないのかを探しているのです。
VC&DirectXのPresent()メソッドみたいにフリッピングしたあと次のリフレッシュを
自動的に待機してくれる関数とか、先述のように毎リフレッシュ、フレームワーク側から
イベントコールバックが来るなどのしくみが最初からあればそうしたものを
使いたいわけです(どうもなさそうな気がしていますが…)。
java.util.Timerかjavax.swing.Timerじゃだめ?
931 :
695 :2006/01/28(土) 10:32:02
あの、自分のパソコンでは起動するのに他人のパソコンで起動しない理由ってなんでしょうか? JAVAのヴァージョンも同じでメモリも他人の方がおおいのに・・・?
>>931 考えられることが多すぎる
シェルか、プロンプトで起動後のログを見ないと無理
必要なライブラリが実行時のクラスパスに含まれてないとか。
>>931 まずコマンドラインで起動してコンソールに出るメッセージ見てみたら
935 :
695 :2006/01/28(土) 11:21:36
精神的ブラクラ[超糞コード] とでました。
>>932 > プロンプトで起動後のログを見ないと無理
$マークから何が分かるというのか・・
938 :
695 :2006/01/28(土) 11:44:30
何か10行くらいの文字が出てバーーーーーーっと流れていきます。 なぜ?
起動しない方のメッセージみろよ
941 :
695 :2006/01/28(土) 12:13:04
>>929 >「バックバッファへの描画そのもの(例えばdrawImage()を呼び出す)をリフレッシュごとに
>行う」ことがしたいんです。例えば「0」〜「59」と書いてあるだけのビットマップがあって、
>それをちょうど1リフレッシュごとにバックバッファに書き込みたいと。
普通にメインループで処理すればいいだけだろ
何を悩むのか理解に苦しむんだが
垂直同期を取っていれば定期処理は可能なわけで
sleepとページフリッピングをあわせることなど不要
垂直同期とってフリップしてくれるのに BufferStrategyカワイソス DirectXさわってたのなら原理理解してると思うんだけどなぁ
お前ら初心者を全然歓迎してないよな
鴨呼び込むための常套句じゃまいか
>944 初心者は歓迎かもしれないが、バカは歓迎しない。それだけだ。
947 :
695 :2006/01/28(土) 16:15:54
すいません、 誰も、わからないんですか?
>947 はい、わかりません。
>>947 おまえさんは何を解決したいんだ?
動かない方のマシンで動かしたいなら、そっちのメッセージが分からないと…
650がバカだと言うことは、みんなわかります
695だOrz...
953 :
695 :2006/01/28(土) 17:52:49
>953 関係ないプログラムの動作結果持ってこられても分かるわけねぇだろクズ。 バカはいいかげん氏んだら?
955 :
デフォルトの名無しさん :2006/01/28(土) 17:59:58
GTM9.javaの2330行目で使っている変数がnullだよ チェックせい
動いているほうのスナップショットでもエラーでてるしな
957 :
695 :2006/01/28(土) 18:10:42
public void paint(Graphics g) { Graphics gbg; if(backGrp == null) backGrp = createImage(CANVAS_SIZE, CANVAS_SIZE); gbg = backGrp.getGraphics(); gbg.drawImage(img, z, aa, this); ・ ・ ・ ・ gbg.dispose(); g.drawImage(backGrp, getInsets().left, getInsets().top, this); } public void update(Graphics g) { paint(g); } } NULLをどうすれば良いのですか?
958 :
デフォルトの名無しさん :2006/01/28(土) 18:12:35
ああそうなんだ
でもぬるぽは潰しておいた方がいいよ
しかし
>>695 のコードを見るにwhileループの中でswitch文で回している伊予柑
すなおにTimerとかなんで使わんのだ?
959 :
695 :2006/01/28(土) 18:15:13
>>958 なにぶん始めてのプログラミングでゲーム作ろうとした阿呆ですから
メインループを勉強する前に作り始めて明日までに発表しないとならないのです。
身勝手で悪いが俺の成績がかかってるので頼む。
わからねぇっつってんだろ!引っ込め。
961 :
デフォルトの名無しさん :2006/01/28(土) 18:23:21
じゃあ諦めろ
962 :
デフォルトの名無しさん :2006/01/28(土) 18:24:41
コード長そうなんで片手間じゃ無理だが少し話を聞いてみるか
まずなにがどう動かないのか現象を説明してくれないか
そして
>>695 のコードをここに投げた理由を説明してくれ
どうしてそこが原因だと思った?
963 :
695 :2006/01/28(土) 18:26:20
>>960 わかんねぇっつうんならなんでこのスレ居るの?
NULLをどうするの?
助けてお兄ちゃん
964 :
695 :2006/01/28(土) 18:30:41
965 :
デフォルトの名無しさん :2006/01/28(土) 18:31:39
頭の悪い専門学校生相手する奴居るのか? 宿題スレにでも誘導しろよ
さすがに専門でも高校でも中学でもこんなコード書くやつはいない 小学生だろ
>965 宿題スレでもこんなバカ要らないのでごみ箱にでも捨てといてください
あのさぁ友人に画像ファイルの方は渡してあるの?
969 :
デフォルトの名無しさん :2006/01/28(土) 18:41:33
>>664 なるほど
俺は君のソースも見てないけどおそらく原因はイメージロード関係かな
かなりでかいのを読み込んでないか?
イメージはゲーム始まる前に読み込んで
ゲーム中の処理ではそれを使い回すようにした方がいい
あと読み込む時にはMediaTrackerを使って完全にロードが完了するまで
待つようにすること
まずはこの辺りを見直してごらん
そろそろ泣きながら695が釣り宣言↓
だから GTM9.java の 2330 行目の drawImage() に渡してる第一パラメータ (多分) が null になってるんだってば。後の原因は自分で考えろ。
しかしとんでもなく長い行数だな
俺は 7000 行オーバーのソースを見たことがあるぞ。 あとメソッド 3 つなのに 5000 行オーバーしてるクラスとか。
業務系だとVBあがりのコードがそうなってることが多い 変数使いまわしてるしそのせいで意味のないnull代入してるし スコープ狭めればいらんだろ使いまわすな、というのが分からないらしい Java開発でnull代入規約作ってるところはVBあがりを大量に雇ってると予想
>>935 a0 = 0;
a1 = 0;
a2 = 0;
......
a100 = 0;
CでもJavaでもPerlでもVBでも色んな所で見ることのできるこれを、
「オレオレ配列」と呼びます
976 :
デフォルトの名無しさん :2006/01/28(土) 21:40:05
JDBCなんですが、、、 import java.sql.*; class DbTest{ public static void main(String[] args){ try{ Class.forName("com.mysql.jdbc.Driver"); String strConn="jdbc:mysql://localhost/jamyto" +"?user=Mulder&password=TrustNo1" +"&useUnicode=true&characterEncoding=sjis"; Connection conn=DriverManager.getConnection(strConn); Statement stmt=conn.createStatement(); String strSql="SELECT*from person"; ResultSet rs=stmt.executeQuery(strSql);
>>695 ,969
MediaTracker の使い方の一つ。
JPanel なのはキニスルナ
import java.awt.*;
public class LoadImageTest extends javax.swing.JPanel {
Image bgimage;
public LoadImageTest() {
MediaTracker tracker = new MediaTracker(this);
bgimage = Toolkit.getDefaultToolkit().getImage("image_test.jpg");
tracker.addImage(bgimage, 0);
try {
tracker.waitForAll();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(bgimage, 0, 0, Color.BLACK, this);
}
}
978 :
デフォルトの名無しさん :2006/01/28(土) 21:45:13
while(rs.next()){
System.out.println(rs.getInt("id")+":"+rs.getString("name"));
}
rs.close();
stmt.close();
conn.close();
}
catch(SQLException e){
System.out.println("データベースのエラーです。");
System.out.println("エラーメッセージ:"+e.getMessage());
}
catch(Exception e){
e.printStackTrace();
}
}
}
これでAccess denied for user:'
[email protected] 'ってなっちゃいます。助けて
979 :
976、978です :2006/01/28(土) 21:48:44
MySQL4.0.13 Jdk5 です。助けて〜〜
>>979 SQLException かねぇ。
mysql ってDBアクセスツールは全く無いんだっけ?
あるなら、ちゃんとDBにつなげられるか試してみてください
981 :
デフォルトの名無しさん :2006/01/28(土) 21:54:54
Access deniedってことは、Javaの問題じゃなくて MySQLの設定の問題だろう ユーザの権限調べてみたか
982 :
976、978です :2006/01/28(土) 22:05:37
はい。一番上になってますroot。
983 :
デフォルトの名無しさん :2006/01/28(土) 22:11:38
おい(爆)
>>982 コードでは接続ユーザMulderパスワードTrustNo1になってるぞ
rootでつなげるなら、rootとrootのパスワードでためしてみ
つながるようなら単にMulder@localhostの権限が割り振られてないんだろう
984 :
976、978です :2006/01/28(土) 22:16:04
>>983 ??rootとrootのパスワードですか・・長いやつね。
>>983 どちらかというと、Mulder@localhost でつながるように設定を調整したほうが・・・
# root なんて怖い病
もはやJavaと何の関係もないわけだが
987 :
デフォルトの名無しさん :2006/01/28(土) 22:26:02
>>983 rootっていってもOSアカウントじゃなく
MySQLの最初のシステムアカウントのことね
でもいわれることはその通り
もうJavaの話じゃないな
988 :
デフォルトの名無しさん :2006/01/28(土) 22:28:02
989 :
980 :2006/01/28(土) 22:42:27
990 :
デフォルトの名無しさん :2006/01/28(土) 22:46:27
991 :
976、978です :2006/01/28(土) 22:50:50
できた!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!やった!1!!
992 :
デフォルトの名無しさん :2006/01/28(土) 23:05:17
\_____________ | ||\_____/|| | || | / ̄ ̄ ̄ ̄ ̄ ̄\ | ||∧=∧ < 上へ参りま〜す。 | | ||(*゚ー゚) ∧_∧ / ̄ ̄\ | || U |:っ (・∀・ )< 埋めage ! | | || /_/_|_ ( ) \__/ | || UU | | | / ̄ ̄ ̄ ̄ ̄ ̄(__)_) ̄ ̄ ̄
993 :
デフォルトの名無しさん :2006/01/29(日) 00:17:17
ume
994 :
デフォルトの名無しさん :2006/01/29(日) 00:17:48
ume
995 :
デフォルトの名無しさん :2006/01/29(日) 00:18:19
ume
996 :
デフォルトの名無しさん :2006/01/29(日) 00:18:50
ume
997 :
デフォルトの名無しさん :2006/01/29(日) 00:19:21
ume
998 :
デフォルトの名無しさん :2006/01/29(日) 00:33:41
3
999 :
デフォルトの名無しさん :2006/01/29(日) 00:35:16
2
1000 :
デフォルトの名無しさん :2006/01/29(日) 00:36:00
1・・・・・・・・・・・・・・・・・・・ どかーーーん!!!パッ( ゚Д゚)イッテヨシ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。