【初心者】Java質問・相談スレッド132【専用】 at TECH
【初心者】Java質問・相談スレッド132【専用】 - 暇つぶし2ch2:デフォルトの名無しさん
09/09/01 14:24:23
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 8
スレリンク(tech板)
■ SWT は --
Java 高速GUI SWT 3
スレリンク(tech板)

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part19
スレリンク(tech板)
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 8
スレリンク(tech板)

■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 68 ★★
スレリンク(tech板)

■ NetBeansに関する雑談は --
NetBeans Part5【Java/C++/Ruby/Python/PHP】
スレリンク(tech板)
■ Eclipseに関する雑談は --
Eclipse統合M28【Java/C++/Ruby/Python/Perl】
スレリンク(tech板)

3:デフォルトの名無しさん
09/09/01 14:27:46
**** 開発環境が必要の場合は ****
■ J2SE 5.0 (1.5.0)
URLリンク(java.sun.com)
■ Java SE 6
URLリンク(java.sun.com)

**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
URLリンク(www.java.com)

4:デフォルトの名無しさん
09/09/01 14:30:49
っと言うことで初心者用も作ってみたよ。
なにか有ったら、よろしく。

5:デフォルトの名無しさん
09/09/08 16:25:22
質問です。
swingでJPanelを用意しましたが、JFrameに貼り付けることができません。
レイアウトマネージャーは他の部分との兼ね合いでnullに設定しております。

ググッてもレイアウトマネージャーを使ったものばかりで見付かりません。
例)getContentPane().add(JPanel, BorderLayout.CENTER);
レイアウトマネージャーをnullにしてもJPanelを貼り付けられる方法を教えてください

6:デフォルトの名無しさん
09/09/08 16:26:24
>>5
お前は調べが足りない

7:デフォルトの名無しさん
09/09/08 16:38:19
>>6
すみません。一応javaDriveとかも見て回ったのですがなかなか見付からず・・・
検索ワードだけでもいいので教えてください

8:デフォルトの名無しさん
09/09/08 16:44:45
>>5
レイアウトマネージャを設定しないということは
そのコンテナのレイアウトに関してお前自身が責任を持つということを宣言したということだ
お前はレイアウトマネージャに頼らずレイアウトを行う責任を果たさなければならない
要点はコンテナ内の各コンポーネントの大きさと位置だ

9:デフォルトの名無しさん
09/09/08 16:49:26
なんで二つも立ってんだよ。
どうせ初心者スレと銘打って立てるんなら、
紛らわしいことせずにくだスレを復活させろよ。

10:デフォルトの名無しさん
09/09/08 17:02:56
>>8
となるとBorderLayout.CENTERの部分を自己責任でやる必要があるわけですよね?
代わりに適当な座標を入力したのですが表示されません。

11:デフォルトの名無しさん
09/09/08 17:08:50
>>10
これでちゃんと表示されたぞ
お前が何か間違ってるんだ
import java.awt.*;
import javax.swing.*;
public class Test {
public static void main(String[] args) {
JPanel panel = new JPanel();
panel.setBackground(Color.red);
panel.setSize(100, 100);
JFrame frame = new JFrame();
frame.setLayout(null);
frame.add(panel);
frame.setSize(200, 200);
frame.setVisible(true);
}
}

12:デフォルトの名無しさん
09/09/08 17:43:32
すいません。panelのサイズ設定を忘れていました。
ほんとにわかりやすい話と、具体例をありがとうございます。

13:デフォルトの名無しさん
09/09/10 14:04:02
初心者からの質問です。
JAVAを今日から勉強しようと思い立ち開発環境を準備しようとVectorを覘いたのですが
種類が多すぎて分からないのでどれが使いやすそうだとかアドバイスをしてもらえませんか。

Sun MicrosystemsのDLページ
URLリンク(developers.sun.com)
VectorのDLページ
URLリンク(www.vector.co.jp)

プログラマーになって将来作りたいものは
1.Webサイトでログインとログアウトができるものを作る。

2.MacとWindowsで動くアプリケーションゲームを作る。
Windowsに同梱されているゲームのハーツのようなものです。

3.MacとWindowsで動くインターネット接続型のアプリケーションゲームを作る。
Windowsに同梱されているゲームのインターネット ハーツのようなものです。

よろしくお願いします

14:デフォルトの名無しさん
09/09/10 14:24:20
とりあえず何をするにしても Java SE の JDK は必要なので Sun のサイトからダウンロードしておく
開発環境は NetBeans と Eclipse が人気だけど、
普通のテキストエディタとコマンドプロンプトだけでも特に問題はない

15:13
09/09/10 14:42:00
回答ありがとうございます。
SunのサイトからJDK 6 Update 16 with Java EEをDLしてきました。

16:デフォルトの名無しさん
09/09/10 16:53:21
OpenGLってやってみる価値ある?
つーかこれどうすればいいんだろ・・・

17:デフォルトの名無しさん
09/09/10 17:09:40
価値っていわれても
3Dに興味があるならやってみてもいいんじゃない
興味も必要もないなら手を出すことはないかと

18:デフォルトの名無しさん
09/09/10 17:23:42
あるんじゃないの?
でもいきなりは大変だろ

19:13
09/09/10 22:51:35
今、PATHを通してやっとプログラミングの環境が整いました。
そこで質問なのですが、JAVA言語を習得する上でここまでできて初心者卒業、
ここまでできたら中級者などだいたいの目安は何かあるでしょうか。
何時間でこのくらいまでいけた、などの体験談でも構いませんのでアドバイスお願いします。
また、参考になるサイトは何かないでしょうか?


20:デフォルトの名無しさん
09/09/10 23:05:46
文法覚えて初心者。
処理クラスにコンポーネントを順に呼び出すビジネスロジックを記述できて新人
大量データ処理・再帰処理をまともなパフォーマンスで実装できて普通のマ
プロジェクトの基本設計やらコンポーネントの設計まかされるようになって中級者
人の話が全て頭のなかでJavaのコードに自動変換されるようになって上級者

やさしいJavaみたいな本かって一通り勉強してみれば?
クイックソートを実装できるようになれば大体のプログラムは書けるようになってる。

21:デフォルトの名無しさん
09/09/11 02:30:01
>>19
とりあえず初歩の勉強ならエディタでもいいが、アプリ作る気まんまんならeclipseいれとけ。
URLリンク(www.eclipse.org) のEclipse IDE for Java Developers な。

初心者サイトはたくさんあるけど、やりたいことの幅がひろいようなので「JavaでHelloWorld」でコードを片っ端から試すとかいんじゃないか。
目安として、仕事でJava使ってる奴なら↑のサイトにあることの半分以上は知識とフィーリングでなんとでもなるかな。
まあ俺の場合は設定ファイルの書き方とかは知ってても本やネットで調べるが・・w

22:デフォルトの名無しさん
09/09/11 07:57:57
Javadocがあれば一通りできて初心者卒業

23:13
09/09/11 14:49:21
分かりやすい説明ありがとうございました。
文法やdocも眺めてみることにします。
いろいろなプログラムコードを片っ端から試して書いて頑張ってみます。

eclipseについての質問です。
JDKとjreをCドライブにインストールしたのですが、
SUN>JDKのフォルダの中のjdkのフォルダにもjreが入っていました。
こして、Eclipseのウィンドウ>設定>Java>インストール済みのJRE
にロケーションがC:\jreのjreが設定されていますが、このままでいいですか。
それともC:\Sun\SDK\jdk\jreのjreに設定するのがいいですか。
違いが分からないのでアドバイスお願いします。



24:デフォルトの名無しさん
09/09/11 19:31:35
どこかに良い HTML パーサってないですかね?

25:デフォルトの名無しさん
09/09/11 22:49:06
>>24
URLリンク(www.koiroha.org)
HTML の読み込みなら↑が強力。SAX も DOM 化にも対応してるので
XML とほとんど同じ様に扱える。


26:13
09/09/11 23:49:58
コマンドプロンプトについての質問です。
package test;

public class HelloWorld {
public static void main(String args[]) {
System.out.println("Hell Java World !");
}
}
というソースをコンパイルしてC:\java\step001\bin\test内にHelloWorld.classを作りました。
Eclipse上ではコンソール欄にHello Jvava World !と表示されたのですが
次にコマンドプロンプトでcdを繰り返し
C:\java\step001\src\test>javac HelloWorld.java
として実行し
C:\java\step001\src\test内にHelloWorld.classを作りました。
そこでコマンドプロンプトで
C:\java\step001\src\test>java HelloWorld
として実行すると
Exception in thread "main"java.lang.NoClassDefFoundError: HelloWorld (wrong name: test/HelloWorld)
と出てしまいます。
何が悪いのかアドバイスお願いします

27:デフォルトの名無しさん
09/09/11 23:56:49
パッケージが見える階層から実行しれ


28:デフォルトの名無しさん
09/09/11 23:59:49
それから、コマンドプロンプト必要ないから。それよりもエクリプスの機能や拡張を覚える方が先


29:デフォルトの名無しさん
09/09/12 00:12:28
Javaのパッケージはファイルシステム上ディレクトリとして表現されているから、
初心者はパッケージとカレントディレクトリの関係に戸惑うのかもしれないね。

c:
cd C:\java\step001\src
javac sample\HelloWorld.java
java sample.HelloWorld

として実行しましょう。
HelloWorldとsample.HelloWorldは別物だし、
C:\java\step001\srcでsample.HelloWorldを実行するのと
C:\java\step001\src\sampleでHelloWorldを実行するのも当然別物。


30:29
09/09/12 00:14:41
ごめん。なぜかtestがsampleになってた。
以下訂正

c:
cd C:\java\step001\src
javac test\HelloWorld.java
java test.HelloWorld

31:13
09/09/12 00:34:16
ありがとうございます。
コマンドプロンプトで
C:\java\step001\src>java test.HelloWorld
と実行して無事にHello Java World !と表示できました。

23での質問の内容は自分なりに答えを出してみました。
非公開jreと公開jreがあり、自分のソースコードを実行する場合はSDKを使っているので
PathはC:\Sun\SDK\jdk\jreにする。
だと思いました。
現在はPathはC:\Sun\SDK\jdk\jreにしています。

そこでまた質問です。
javac test\HelloWorld.java
の意味は、test内のHellWorld.javaをコンパイルしなさい。
java test.HelloWorld
の意味は、パッケージがtestのクラスがHelloWorldを実行しなさい。
で合っていますか。
(パッケージとクラスが何なのか今調べている途中です)

32:デフォルトの名無しさん
09/09/12 00:58:37
23は読んでなかった。
開発環境から本番稼動の別サーバにデプロイ(クラスファイルを配置)
するような状況がなければ特に気にしなくてよい。
SDKをインストールして、そっちのjavaコマンドから実行することもあるのであれば、
SunのSDKを指定しておけばいい。

javaコマンドの意味は
「カレントディレクトリをクラスパスとして、testパッケージのHelloWorldクラスを実行せよ」

javacの場合は
「カレントディレクトリをソースパス&クラスパスとして、testディレクトリのHelloWorld.javaファイルをコンパイルせよ」

クラスパスは実行時やコンパイル時に、自分が作ったクラスや、それ以外のクラス
たとえばApacheのcommonsライブラリを使うソースを書いた場合は、
そのライブラリがどこにおいてあるかなどを指定するために使う。
実行するプログラムが使用する(依存している)全てのクラスはクラスパス配下から探せなくてはならない。

ソースパスはjavacがコンパイルするときに、
コンパイルするソースやソース自身が依存する別のソースを探すための場所として使われる。



33:13
09/09/12 01:17:09
ありがとうございます。
調べてみるとパッケージとクラスは苗字と名前の関係のようでした。
クラス名が同じものがあると混同してしまうのでパッケージ名も付けて区別するようです。
そのためパッケージ名まで同じにならないように自分の所属する企業名やドメインを逆さにするようです。
これからは特色のあるパッケージ名にしてみます。

34:デフォルトの名無しさん
09/09/12 01:49:06
パッケージは住所、クラス名は人の名前として考えてみるといい。
東京に住む山田一郎さんと、大阪の山田一郎さんは、
同じ名前でも別人。できることも体重身長もそれぞれ違う。

Javaは常にパッケージ名・クラス名の組み合わせで.classを探している。
「どこから」クラスを探せばいいのかを(クラスパスとして)教えてやらないといけない。
教えられた場所から「パッケージ名はディレクトリ」「クラス名はファイル名」として、
実際の.classファイルを読み取ることができる。

大規模な組織でJava開発を行うと、パッケージが10階層くらいになってて笑える。
jp.co.グループ名.会社名.事業所.カテゴリ名.プロジェクト名.アプリケーション名.本当のパッケージ名...


35:13
09/09/13 00:27:15
分かりやすい説明ありがとうございます。
APIやクラスライブラリがまだよく分からないので飛ばしました。
今はインスタンスの勉強中です。

メソッドや戻り値とか分からない単語が増えてきてだんだん覚えきれなくなってきたのですが、
先輩の皆さんは初心者の頃はノートやメモなどを取ったりしましたか。
覚えられないものはひとまずおいてどんどん先に進むのがいいですか。

36:デフォルトの名無しさん
09/09/13 00:33:59
>>35
ベストなのは、プログラムを自作して動作を理解する事
これが一番の近道
わからないまま進んでも、いけない事はないけど、真の理解には
つながらない

37:デフォルトの名無しさん
09/09/13 00:40:42
まて、インスタンスよりメソッドと戻り値の方が先じゃないのか

38:デフォルトの名無しさん
09/09/13 00:47:24
>>37
インスタンスがわかってないと、クラスメソッドとインスタンスメソッド
の違いが理解できなくね?

39:デフォルトの名無しさん
09/09/13 01:09:18

javaのクラスパスにはドット(.)が含まれないと読んだのですが、
java -classpath で何かを指定したときは含まれない、
-classpath を何も指定しない場合は、現在のディレクトリも
検索パスになると理解したら良いのですかね?

-classpathを何も指定しない場合は、現在のディレクトリの
クラスを読みに行けているので。





40:デフォルトの名無しさん
09/09/13 01:17:30
>>39
URLリンク(java.sun.com)

41:デフォルトの名無しさん
09/09/13 09:54:41
>>38
Javaを始めていきなりクラスとかインスタンスとか覚えれるのかな・・?
とりあえずmainメソッドで四則演算とか入出力とかで慣れるのが普通だと思ってたわ。。

42:デフォルトの名無しさん
09/09/13 15:32:32
javaで実行ファイルつくんのどうやんの?
なんかソフトいるの?

43:デフォルトの名無しさん
09/09/13 15:45:47
>>42
javaはインタプリタ言語だから、CPUネイティブなコード生成はできない
バイトコード=実行ファイルという意味なら、javacなどのコンパイラでおk

44:デフォルトの名無しさん
09/09/13 16:23:44
OprnOfficeってどうしてんだろ?あれってJAVA使ってるだけなの?

45:デフォルトの名無しさん
09/09/13 16:26:55
>>44
いまは、それぞれのプラットフォームごとにネイティブ対応してるんじゃ
なかったっけ>OpenOffice.org

46:デフォルトの名無しさん
09/09/13 17:04:07
Java使ってたのは主にOpenOffice Base(DB)の裏方。
(他にもあるようだけど)

Mac版は、以前は本家はUIにXが必要で、他の実装としてUIにJavaを
使ったNeoOfficeという派生物がある。現在は本家もX不要でAqua
になってる。


47:デフォルトの名無しさん
09/09/13 18:50:01
>>42
gcj でぐぐれ


48:デフォルトの名無しさん
09/09/13 19:00:33
>>47
jgcとjavacどっちが主流なの?

49:デフォルトの名無しさん
09/09/13 19:02:06
>>48
訂正
gcjとjavac

50:デフォルトの名無しさん
09/09/13 20:07:04
主流って何のだよwww


51:デフォルトの名無しさん
09/09/13 20:09:48
いや、javacが前のレスで紹介されてるのに、あえてgcjが紹介されてる
から、使用されてるシェアがgcjの方が多いのかなと思って

52:デフォルトの名無しさん
09/09/13 20:13:27
バイトコードを吐くコンパイラならjavacかecjしか使われてない

バイナリを吐くコンパイラならメジャーなのはgcjくらいだ

これでいいか?


53:デフォルトの名無しさん
09/09/13 20:21:31
>>52
javaで書いても、gcj使うと、バイナリで出せるんだ
知らんかった
プラットフォーム依存になるけど、JVM要らないってこと?

54:デフォルトの名無しさん
09/09/14 00:22:27
gcjでぐぐれよ


55:デフォルトの名無しさん
09/09/15 14:33:55
質問です。
javaアプリケーションで、JPanel上に2枚の画像を載せます。(A,Bとします)
Aの画像はJPanel全体に表示させ、Bの画像はその上に置くようにして載せたいと思っています。
画像のサイズはAが700*700で、Bの画像は10*10ほどです。
どちらか片方だけ載せるのはできるのですが、その上にもう一つ載せようとすると、
先に載せたほうが潰れてしまいます。
どうすればうまく載せれるのでしょうか

よろしくおねがいします

56:デフォルトの名無しさん
09/09/15 15:43:28
潰れるってどういう意味で使ってる?

57:デフォルトの名無しさん
09/09/15 15:48:31
>>56
表示されなくなります。後に載せたほうだけが表示されます

58:デフォルトの名無しさん
09/09/15 15:54:20
レイアウトマネージャは何を?

59:デフォルトの名無しさん
09/09/15 15:59:14
レイアウトマネージャーは質問とは別の理由でnullに設定してます。
それと、Bは画像を使わないで直接描写でも良くなりました。
なのでJPanelに載せた画像の上から絵を描ければ大丈夫です

60:デフォルトの名無しさん
09/09/15 16:26:34
画像AはJLabelかなんか?
レイアウトマネージャがnullなら、自分で位置とサイズを指定しないといけないけれど、そのへんは大丈夫?

61:デフォルトの名無しさん
09/09/15 16:29:55
>>60
JLabel使ってます。
大丈夫です。

62:デフォルトの名無しさん
09/09/15 16:36:26
あるクラスから、他のクラスのメンバ変数を参照したいんだけど
その参照したいクラスが多数あった場合、どうやったらスマートだろう?
そのクラスのインスタンスを引数で渡すにも、参照したいクラスが10個以上あるし
インスタンスを引数で渡す方法が良いとは思えない

もうちょっと状況を詳しく書くと
main.javaというクラスがあるとして、このクラスは他の全てのクラスのインスタンスを保有
クラスAから、他のクラスB~Zのprivateのメンバ変数を参照したい
クラスB~Zは、public のゲッタ/セッタを保有

この場合、クラスAからクラスB~Zのメンバ変数を参照するにはどうすれば
うまいやり方でできる?

63:デフォルトの名無しさん
09/09/15 16:38:12
>>62
クラスAにクラスmainを持たせて、main経由で参照すればいいかと

64:デフォルトの名無しさん
09/09/15 16:53:56
>>61
AとBのaddする順番を逆にしてみるとか

65:デフォルトの名無しさん
09/09/15 16:56:21
>>63
すいません、説明がちょっと抜けてた
クラスmainが保有する各クラスのインスタンスはprivateなんです
なので、mainのインスタンスをクラスAに渡してもそのまま参照できず
それぞれにゲッタが必要で、その数もまた膨大なので
何か良い方法が無いかなと

そもそもクラスのインスタンスをprivateで保有するという考え方が
おかしいのかなぁ

66:デフォルトの名無しさん
09/09/15 17:08:04
>>64
やってみましたが、結局後に書いた方だけが表示されます

67:デフォルトの名無しさん
09/09/15 17:08:54
ゲッタくらいeclipseに自動生成してもらえ
他の開発環境は知らんが・・・

68:デフォルトの名無しさん
09/09/15 18:35:24
質問失礼します。

private static final Map<String,String> tmpMap = new java.util.concurrent.ConcurrentHashMap<String,String>();

public void run() {
String uniqueKey = "hogehoge";

while(true) {
if(!tmpMap.containsKey(uniqueKey)) {
String data = getData();
tmpMap.put(data,uniqueKey);
String tmpLocalKey = tmpMap.get(data);
if(uniqueKey.equals(tmpLocalKey ) {
somethingDoTask();
}
}
}
}


簡単に言うと上記のようなソースがあり4スレッドくらいを並列で動かしてます
マップはロックのような形で使用し、あるデータ名をキーにし4つのスレッドの内
1つだけが処理を行うような仕組みです。

ですが、実際は重複して実行しているようです。
このマップを使う事が間違いでしょうか?


69:デフォルトの名無しさん
09/09/15 18:36:40
訂正
こっちです

private static final Map<String,String> tmpMap = new java.util.concurrent.ConcurrentHashMap<String,String>();

public void run() {
String uniqueKey = "hogehoge";

while(true) {
String data = getData();
if(!tmpMap.containsKey(data)) {
tmpMap.put(data,uniqueKey);
String tmpLocalKey = tmpMap.get(data);
if(uniqueKey.equals(tmpLocalKey ) {
somethingDoTask();
}
}
}
}





70:デフォルトの名無しさん
09/09/15 18:48:02
>>68
使い方が正しくない
containsKeyとputの間に他のスレッドが割り込む可能性がある
その操作はアトミックにやらないとだめ

if (tmpMap.putIfAbsent(data, uniqueKey) == null) {
somethingDoTask();
}
こんな感じで

71:デフォルトの名無しさん
09/09/15 19:06:58
>>70

ありがとうございます。
そんなメソッドあったんですね 笑

割り込みは許容してます。
で、4スレッドでユニークに振り分けたキーでputし最終取得者を
String tmpLocalKey = tmpMap.get(data);
if(uniqueKey.equals(tmpLocalKey ) { }
で割り出しているつもりだったんですが、間違いですか?


72:デフォルトの名無しさん
09/09/15 19:10:42
まあ、現実に最終のif分の行で全スレッドで
実行対象になってしまったりしてるんで確実に間違いだとは思います。

CuncurrentHashMapの使い方の認識違いなのかな?


73:デフォルトの名無しさん
09/09/15 19:16:02
>>71
間違いです。
2つ以上のスレッドが同時にcontainsKeyとputの間に来た状況を想像してください。
まず、1つめのスレッドが自分のuniqueKeyをtmpMapにputしgetすると、自分のuniqueKeyが取得できるのでequalsはtrueを返します。
次に、2つめのスレッドが自分のuniqueKeyをtmpMapにputしgetすると、自分のuniqueKeyが取得できるのでまたもやequalsはtrueを返します。

74:デフォルトの名無しさん
09/09/15 19:31:50
>>73
ありがとうございます。
理解できました

synchronizedあたり使わないとまずいですね

75:デフォルトの名無しさん
09/09/15 19:40:54
synchronizedするんならConcurrentの価値ナッシング
なんのためにputIfAbsentが追加されたと思って・・・

76:デフォルトの名無しさん
09/09/15 20:30:11
>>75
ありがとうございます。
もういいです

77:デフォルトの名無しさん
09/09/15 20:38:44
>>65
背景塗りつぶしで表示するメソッドrepaint()(だっけ?w)が
呼ばれてて、後に絵を表示すると、panelの背景がまっさらになってる
だけとかだったりしない?単に。

78:デフォルトの名無しさん
09/09/15 20:48:04
>>55
超適当

public class Hoge {
Hoge() {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
JLabel a = new JLabel(new ImageIcon(Hoge.class.getResource("a.jpg")));
JLabel b = new JLabel(new ImageIcon(Hoge.class.getResource("b.jpg")));
a.setBounds(0, 0, 700, 700);
b.setBounds(345, 345, 10, 10);
panel.setPreferredSize(new Dimension(700, 700));
panel.setLayout(null);
panel.add(b);
panel.add(a);
frame.add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Hoge();
}});}}

79:デフォルトの名無しさん
09/09/15 21:02:33
>>77
repaintなしで作ったプログラムでもやっぱりなってしまいます
なんかすいません

80:デフォルトの名無しさん
09/09/15 21:19:37
>>79
JLabelのサイズ設定とかは大丈夫なんだよね?
例えば、
label.setPreferredSize(new Dimension(size_x, size_y));
みたいな感じで。
画像A, Bが入ったそれぞれのLabelでこのサイズが同じだと
かぶった部分が消えちゃうと思うけど

81:デフォルトの名無しさん
09/09/16 01:05:01
質問です。
Randomクラスを用いて乱数を生成して、4桁のパスワードはどうやればいいのでしょうか?

現在、下記の形で書いているのですが、1桁などがでてきてしまって困っています。
初心者なもので、すみません。

Random rnd = new Random();
int ran = rnd.nextInt(10000);

82:デフォルトの名無しさん
09/09/16 01:09:47
1桁って、それは前3桁がゼロってことでは?
printlnなんかじゃ前のゼロは表示されないが (0001とか変だからな)

83:デフォルトの名無しさん
09/09/16 02:15:28
String pass = String.format("%04d", ran);

84:デフォルトの名無しさん
09/09/16 02:29:52
assert ran >= 0 && ran < 10000;
String pass = String.valueOf(ran + 10000).substring(1);

85:デフォルトの名無しさん
09/09/16 05:49:48
ありがとうございます。期待どおりの結果を得ることができました。

86:デフォルトの名無しさん
09/09/16 11:54:07
>>80
LabelのサイズのOKです。
今やりたいことはPanelに画像を貼って、
それをscrollPaneを使ってスクロールできるようにしたいわけです。

そうなるとpanelに貼るというよりはまず
labelに画像を貼って、viewPortにセットして、
そのviewPortをscrollPaneと連動させて、最後にそれをPanelに貼るという流れになるわけです。
そのあとframeにも貼り付けてますがそれは置いておいて。

今回の原因はviewPortにlabelを貼る際に、viewPort全体に張るようにしてしまっているからだと思います。
なのでviewPortに貼る際に座標指定をして張ることができれば解決できると思うのですが、そのやり方がわからない・・

87:デフォルトの名無しさん
09/09/16 12:26:18
>>86
こういう感じ?
JFrame
+- JPanel
    +- JScrollPane
        +- JViewport
             +- JPanel
                  +- JLabel (画像A)
                  +- JLabel (画像B)

88:デフォルトの名無しさん
09/09/16 12:52:11
>>87
違います。

89:86
09/09/16 14:53:57
>>87
そうです。>>88はわたしじゃないので気にしないでください。

上の方のJPanelと下のJPanelは別物と認識していいですよね。

まったく同じ方法で今行っていますが、画像の方はうまくいきました。
なぜかScrollPaneがうまく動かないですが、がんばってみます

90:デフォルトの名無しさん
09/09/17 00:10:04
MAPインターフェースの概念が理解できないのだが、何か良い例を紹介してるサイトはないかな

91:デフォルトの名無しさん
09/09/17 01:00:41
いまここで、教えてやんよ
マップとして、持っていなくてはいけないメソッドの集合のこと

92:デフォルトの名無しさん
09/09/17 01:21:33
JavaがC/C++より勝れている点を教えて下さい
無いと思いますが・・・

93:デフォルトの名無しさん
09/09/17 05:59:24
全くありません(-_-)

94:デフォルトの名無しさん
09/09/17 09:52:04
public int kazu(int da1,String st1,String st2) {
return st1.indexOf(st2, da1-1)+1;
}

public int kazu(int da1,String st1,String st2) {
int da2;
da2=st1.indexOf(st2, da1-1)+1;
return da2;
}

文字の位置を1~とだすルーチンですが
同じ値で前者は1、後者は0と違う値を返すことがありました
直接返すか、一度変数に代入するかの違いです
これを説明できる方いますか?

95:デフォルトの名無しさん
09/09/17 10:25:25
>>94
その違う数値が返ってきた引数は?

96:デフォルトの名無しさん
09/09/17 10:46:30
もう一度やってみたのですがその時おかしくなった引数は失念してしまいました、ごめんなさい
でも以前も同じようなことがあったんです
変数に代入しないと正しい値を返さなかったということが

97:デフォルトの名無しさん
09/09/17 10:48:11
>>96
勘違いだろ
素人にはよくあること

98:デフォルトの名無しさん
09/09/17 13:25:17
>>96
勘違いだろ
素人にはよくあること

99:86
09/09/17 15:58:35
>>87のことなんですが、JViewPortにJPanelを貼り付けてもJScrollPaneが動きません。
他の条件はすべて同じにして、JLabelを貼り付けてみたのですが、これだとうまくいきます。
JPanelをJViewProtに貼り付けることはできないのでしょうか?

100:デフォルトの名無しさん
09/09/17 16:17:48
>>99
JPanelのレイアウトマネージャはnullなんだっけ?
そのせいでJPanelの大きさを計算できないのかもしれない
JPanel#setPreferredSizeかJViewport#setViewSizeで大きさを指定してみたらどうかな

101:86
09/09/17 16:28:00
>>100
レイアウトマネージャーはnullにしてあります。
JPanelのサイズは1,2ともsetBounds(new Rectangle(int,int,int,int));で設定してあります。
JViewportのサイズはsetViewSize(getViewSize())で設定しましたができませんでした。

102:デフォルトの名無しさん
09/09/17 16:34:07
>>101
setBoundsはJViewportに変更されるからだめ。
setViewSizeはJPanelのスクロールサイズを知らないJViewportにスクロールサイズを教えるために使うわけだから、JViewportからgetしても0が返るだけで意味がない。
自分の希望する値を指定しる。

103:86
09/09/17 16:43:05
>>102
とりあえずsetBoundsをsetPreferredSizeにしてみました。スクロールできるようになりましたが
もっとスクロールできるはずなのに短い距離分しかスクロールしません。
わかりにくいですが、本来右に100スクロールするとしたら10くらいしかスクロールしません。数字は適当です。

setViewSizeは引数がDimensionとかで使いかたがイマイチよくわからないのですが

104:86
09/09/17 16:56:01
>>102
できました。Panelのサイズを貼る画像のサイズにしたらうまくいきました。
ありがとうございます!

105:デフォルトの名無しさん
09/09/17 17:07:17
>>104
いいってことよ

106:デフォルトの名無しさん
09/09/17 18:31:39
>92 >93
それじゃ、Javaの存在意義は?
これからJavaを独学しようかと思っているのだが・・・・・・。
最初からCを覚えた方がマシ?
テキストエディタを作りたくて、何か言語を覚えようかと思っている。
プラットホームに依存しないところがいいかなーと思った。
それと、Cに似ているとの事なので、Javaを覚えればCにもとっつきやすかなーとか、思った。
何か、大いなるカン違いしているのかな?
・・・・・・テキストエディタなんて、何で作っても大丈夫とか言われそうだが。

107:デフォルトの名無しさん
09/09/17 18:43:23
WebアプリならJAVAが一番良いよ

108:デフォルトの名無しさん
09/09/17 18:49:05
初歩的な質問で申し訳ないのですが、
"||"は「または」という意味がありますが、
"|"はどういう意味があるのでしょうか。
例などを教えていただけると嬉しいです。

109:デフォルトの名無しさん
09/09/17 19:30:09
>>108
論理和
例は検索すれば山ほど出てくるはず。

110:デフォルトの名無しさん
09/09/17 22:30:28
>>106
存在意義なんてどうでもええやん

111:デフォルトの名無しさん
09/09/18 01:00:32
こんばんは

JavaにはCのioctl関数のようなものはないのでしょうか?


112:デフォルトの名無しさん
09/09/18 01:14:57
標準APIにはないね。


113:111
09/09/18 01:20:14
標準APIには無い…ということは
標準以外のAPIに存在する、または他に実現する方法があるということでしょうか?
もしよろしければ是非教えて頂きたいです

114:デフォルトの名無しさん
09/09/18 01:54:19
JNI使えば何でもあり。



115:デフォルトの名無しさん
09/09/18 02:02:48
java勉強するには「プログラミング言語Java 第4版」ってのが良いね
最近これで復習中

116:111
09/09/18 02:03:53
なるほど…直接Cのioctlを使うのですか

JNIのwikiによると
>標準クラスライブラリからはアクセスできないオペレーティングシステムの機能
とあるのですが…やはりJava自体にioctlの代わりはないのですね、ありがとうございました

117:デフォルトの名無しさん
09/09/18 04:13:02
おはようございます

118:デフォルトの名無しさん
09/09/18 23:21:59
>>115
「プログラミング言語Java 第4版」はamazonだと酷評だけどそんなに良いですか?

他者の感想を鵜呑みにするわけではないですが、やはり他者の感想も大事なので気になります。

良ければどの辺がいい点ですか?

119:デフォルトの名無しさん
09/09/19 00:38:41
>>118
俺がいいといったらいいんだよ

120:デフォルトの名無しさん
09/09/19 01:02:37
Map#get最速にするにはMapのキーをIntegerにすればいいのかな?
Integer#hashCodeとInteger#equalsがIntegerがラップしてるint valueをそのまま返すだけみたいなんで。

121:デフォルトの名無しさん
09/09/19 01:32:28
>>119>>118
トイレットペーパーの方がまだまし

122:デフォルトの名無しさん
09/09/19 02:42:14
Integerが最速になるだろうね。
ただしIntegerをキーとして自然にマッピングできるようなケースは限定的な気がするけど。

123:デフォルトの名無しさん
09/09/19 02:44:58
>>118
他のどんな本より基本が詳しく乗ってる

124:デフォルトの名無しさん
09/09/19 04:25:28
下手な奴がコーディングすると Boxing/Unboxing 多発で
ヒープのフラグメントで遅くなりそうな悪寒。あれって
Integer.valueOf() みたいな簡易 Singleton 実装じゃないよね?

125:デフォルトの名無しさん
09/09/19 07:40:24
土曜だね

126:デフォルトの名無しさん
09/09/19 09:34:19
>>123
サンクス!

127:デフォルトの名無しさん
09/09/19 10:06:57
>>126
どういたしまして

128:デフォルトの名無しさん
09/09/19 10:43:44
String[]を、空白区切りの一つのStringにしたいのですが
どうコーディングするのが奇麗でしょうか。
尚、コーディング規約では、ループには基本的に拡張for文を使えということになっています…。

129:デフォルトの名無しさん
09/09/19 10:50:02
StringBuilder b = new StringBuilder();
for(int i=0; i<array.length; i++){
  if(i != 0) b.append(' ');
  b.append(array[i]);
}

130:デフォルトの名無しさん
09/09/19 11:43:40
>>129
ありがとうございます。ただ、配列の数が多い場合,
最初以外でカウンタが0かどうか判断するのは余計なステップになるかなと思いました。
そう思って、下記のような処理を考えました。

StringBuilder b = new StringBuilder();
b.append(array[0]);
int i=1;
while(i<array.length){
  b.append(' ');
  b.append(array[i]);
  i++;
}

コストとしては多分こっちの方が少ないと思ったのですが、
配列の中身を書き出すappend文が別の箇所に出てくるようになりました。
ループの最初もしくは最後だけ特殊な場合は、ループの中でその判断を行うのが普通なのでしょうか。
それとも、ループの範囲自体から最初もしくは最後の部分を外して処理を切り出すべきなんでしょうか。
(後者は,保守性が下がる気がしますが…。)

131:デフォルトの名無しさん
09/09/19 11:48:00
その程度で保守性なんて大してかわらんよ、好きなほうにすればいい

132:デフォルトの名無しさん
09/09/19 11:54:08
拡張for文はどこ?

133:デフォルトの名無しさん
09/09/19 12:11:14
拡張for文を使うとこうかな

StringBuffer b = new StringBuffer();
for (String s; array) {
s.append(s + " ");
}
s.deleteCharAt(s.length() - 1);

最後は↓でもいい
String v = s.substring(0, s.length() - 1);

134:デフォルトの名無しさん
09/09/19 12:12:44
いろいろ間違ってるな

135:デフォルトの名無しさん
09/09/19 12:13:01
exception raised when array.length == 0.

136:デフォルトの名無しさん
09/09/19 12:13:39
動けば良いよ

137:デフォルトの名無しさん
09/09/19 12:36:24
これでいいじゃん。きれいだろ?
public static String join(String delim, Object... elements) {
  StringBuilder sb = new StringBuilder();
  for (Object element : elements) {
   if (sb.length() > 0)
    sb.append(delim);
   sb.append(element);
  }
  return sb.toString();
}

138:デフォルトの名無しさん
09/09/19 12:40:03
elements[0] が "" だったらどうすんだよ

139:デフォルトの名無しさん
09/09/19 12:44:29
>>138
やん(///)


140:デフォルトの名無しさん
09/09/19 19:00:17
これでどうだ?

public static String join(String delim, String... elements) {
  StringBuilder sb = new StringBuilder();

  for (String element : elements) {
   sb.append(element).append(delim);
  }

  if (sb.length() > 0)
   sb.setLength(sb.length() - delim.length());

  return sb.toString();
}

141:デフォルトの名無しさん
09/09/20 07:35:27
>>128
プロはこんなところでバグが出かねないコーディングはしない。

public static String join(String delim, String... elements) {
  return org.apache.commons.lang.StringUtils.join(array, delim);
}

142:デフォルトの名無しさん
09/09/20 07:40:53
全部一人でやってる零細システムのプロ?
この程度のコードでデプロイ管理チームに作業が降るようなやり方はしない。

143:デフォルトの名無しさん
09/09/20 08:17:07
プロの方、教えて下さい
NetBeansのプラグインでエディタを操作する方法を教えて下さい
エディタにコード補完のようなポップアップを表示したいんです

144:デフォルトの名無しさん
09/09/20 09:06:30
CommonsのLang、Beanutilsあたりは最初から入れておくだろJK

145:デフォルトの名無しさん
09/09/20 09:13:32
入れるのはかまわないが、それが前提で語るとかどこのプロ(wだよ

146:デフォルトの名無しさん
09/09/20 09:34:43
なんだ偽プロか

147:デフォルトの名無しさん
09/09/20 09:38:21
都合の悪い質問には答えられないのを隠す
それがプロの美学なり

148:デフォルトの名無しさん
09/09/20 09:40:57
ローカル事情を世界の常識と勘違いしてる奴はプロはプロでもプロ派遣。
ゆるゆる規約のサーバサイドしかやったことがありません。

149:デフォルトの名無しさん
09/09/20 09:56:56
ネタだろ。
適用条件出したりヒヤリングもせず押しつける技術屋なんていねーよ。
ていうかプロって言いだけの社会人二年目くらいじゃ。

150:デフォルトの名無しさん
09/09/20 17:19:28
いまどきcommons-langすら使わない(使わせてもらえない)なんて…


151:デフォルトの名無しさん
09/09/20 17:38:32
金融系じゃ Commons 程度のライブラリは内部で作ってて当たり前。
単体アプリや組み込み開発に至ってはバカかと言われるレベル。
君の住んでる世界が全てじゃないんだよ。

152:デフォルトの名無しさん
09/09/20 17:44:45
>>141

> プロはこんなところでバグが出かねないコーディングはしない。

と言いつつも、書いてるコードが既にバグってるわけで、とてもプロが書いたとは思えないな。


153:デフォルトの名無しさん
09/09/20 17:52:40
世間知らずと低スキルっぷりがまんまどっかの社内SEっぽくてワロタw

154:デフォルトの名無しさん
09/09/20 18:05:58
Loggingは使うけどCommonsは最近はあんまり使わなくなったなぁ。
Java1.5以降は特にそうだ。

155:デフォルトの名無しさん
09/09/20 19:10:21
Commonsなんて必要な部分だけコピペして使うもんだろw

156:デフォルトの名無しさん
09/09/20 20:15:11
だな

157:デフォルトの名無しさん
09/09/21 21:55:52
10月からSeasarをやれと言われてるのですが、
サーブレット、JSP、JavaBeansで開発したことはあるけど、
StrutsもSpringもHibernateも使ったことない。
「Seasar入門 はじめてのDI&AOP」を読んでるけどさっぱりわかりません。
何かお勧めの勉強方ありますか?

158:デフォルトの名無しさん
09/09/21 22:04:51
飯でもおごって実際にシーサー運用してる人に見せてもらう

159:デフォルトの名無しさん
09/09/21 22:14:26
>>158
まわりにいないんですよ...
ちなみにStruts、Spring、Hibernateを先にやったほうがよい?それとも時間の無駄?

160:デフォルトの名無しさん
09/09/21 22:17:00
関係するプロジェクトが多いからSeasarの何を使うのかの確認からかな。
DIやAOPから入ると逆に分かりづらいかもしれない。

161:デフォルトの名無しさん
09/09/21 22:23:09
>>160
まだ不明。というか向こうも割り振り決めてないと思う。
DI、AOPでお勧めの本とかありますか?

162:デフォルトの名無しさん
09/09/21 22:27:28
DIなんて難しく考える必要ねーんだよ。
Factory書くのめんどくさいよねー。フレームワークに登録しといていつでもObject取り出せればよくね?
ってのが出発点なんだし。あとはAOPするのに必要ってぐらいじゃん。

Seasarでスマートデプロイ(Hotデプロイ)使うと開発効率はかなりいいと思う。
推奨のパッケージ構成は、実際のプロジェクト規模に応じて適用性は考慮する余地がある。

163:デフォルトの名無しさん
09/09/21 22:34:45
>>162
うーむ。もう少し彷徨ってみます。

164:デフォルトの名無しさん
09/09/21 22:38:20
あー。MVCくらいは理解してないときついべ。
Web層が無法地帯になるとまともなレイヤー構成が維持できなくなるとおも。
画面ポンなシンプル業務ならそれでもいいけど。

エンタープライズな業務ならActionから先で業務独自フレームワークを構築したほうがいい。
そっから先で業務ロジック+ドメイン+永続層を扱わせて、Web層はActionまでですっぱり分ける。
どうせWeb+バッチ処理+Webサービスみたいにプレゼンテーションが一本でおさまらないから。



165:デフォルトの名無しさん
09/09/21 22:42:26
>>164
わかりました。

166:デフォルトの名無しさん
09/09/21 22:47:39
>>164
MVCくらいは理解してる...つもり

>>165
あなたはだーれ?w

167:デフォルトの名無しさん
09/09/21 22:52:26
>>157
具体的になにがわからないの?
実際の作業的には「Seasar2入門」のほうがわかりやすい(Ver的な意味で)

168:デフォルトの名無しさん
09/09/21 23:13:03
JTextAreaでデフォルトで付いているアクセラレータを削除したい場合はどうしたらいいんでしょう?
アクションマップを取得して削除してみてもアクセラレータは動いてしまいました。。。

169:デフォルトの名無しさん
09/09/21 23:38:05
削除するんでなく、ダミーの何もしないアクションを作って入れてみたら?

170:デフォルトの名無しさん
09/09/22 00:30:45
やっぱり質問取り消します。。。

171:デフォルトの名無しさん
09/09/22 00:49:03
どこで質問したら良いか全く分からないのですが、ここで質問をさせて下さい。

私は情報科でJavaを学んできました。
今、大学の上司(?)のような立場の人から1つ課題を貰っていてその課題の実現方法が分からず困っています。
課題は、「特定のIEブラウザを定期的に更新(F5)する仕組みを作ってみて」というものです。

検索すると、その機能を持つフリーソフトやブラウザの情報が出てくるだけで、
自分でプログラミングして何とかするような情報は出てきませんでした。

どなたか「この言語でこういうロジックで出来るんじゃない?」とか、
「そもそもプログラミングなどせずにこうすれば要求を満たせるよ」など、助言をお願いできないでしょうか。
どうやって機能実現出来るのかさっぱり分からず手が出ない状態なのです。



172:デフォルトの名無しさん
09/09/22 01:03:44
>>171
仮想キーボードを作成して定期的に対象ブラウザに対してF5の仮想キーおくりゃいいじゃん
後はタイマー組み合わせれば出来るだろう

173:デフォルトの名無しさん
09/09/22 01:23:00
>>171
Javaで直接別アプリへキー送信するのは無理

普通はWin32APIを使って
IEのHwnd取得 → PostMessageでF5キー送信だと思う。
CがわかるならBorland C++ Compilerがフリーで落とせる。
またはC#のExpressで[DllImport("user32.dll")] すればOK

174:デフォルトの名無しさん
09/09/22 01:25:06
java.awt.Robot使えっていう意味なのかな……
それで出来るかどうか知らんが。


175:デフォルトの名無しさん
09/09/22 01:28:09
ああ、Javaで作れってことか?

無理やりなJNIとのハイブリッドか、174の言うような力技になるのかな。

176:171
09/09/22 01:55:59
みなさんご意見ありがとうございます。全く道が見えてない状態なので助かります。

言語はJavaでは無くても問題無く、またF5キーにこだわる必要も無いと思われます。
多分、放っておくとタイムアウトしてしまうサイトに対して、
自動で定期的に更新をかけてタイムアウトしない機能が目的の様です。
情報が後出しですみません。

>>172
すみません、私が知識不足でよく理解できません。
言語やクラス等固有名詞があると調べやすくて助かります。

>>173
C++かC#ならIEのコントロールが出来て、定期更新が可能という事ですか?
Cはかじった程度なのですが難易度は高いのでしょうか?






177:デフォルトの名無しさん
09/09/22 01:58:04
>>176
それならjavascriptで定期的にサブミットしてやりゃええんじゃないかな
自サイトに仕掛けるもんじゃなかったらすまんが

178:デフォルトの名無しさん
09/09/22 02:04:11
>>177
すみませんl、対象サイトは一応外部のものです。
大学内部のイントラですが。



179:176
09/09/22 02:40:38
>178
URLリンク(www.pagereboot.com)
このサイトにURL入れれば勝手に更新してくれる。
同じようにブックマークレット(ショートカット埋め込みのJavaScript)
で自動更新用Frameを作って、イントラのページを更新かけてもいい。
詳しくはググッてくれ。

IEはWindowsアプリケーションなので、普通にいじろうとするなら
WindowsのAPIを利用することになる。
WindowsのAPIはC、またはVisual Studioファミリのなんらかの言語から
利用することができるので、そのような言語を使用することになる。
難易度的にはWindowsAPIの入門レベル。シンプルな実装なら30行で終わる。

180:デフォルトの名無しさん
09/09/22 06:21:15
爆釣とか

181:デフォルトの名無しさん
09/09/22 06:35:30
Java バイトコードを吐くCコンパイラを作れば、
JVMの上でCのプログラムを実行させる事が出来ますか?

182:デフォルトの名無しさん
09/09/22 07:16:55
>>157-179
自演乙

183:デフォルトの名無しさん
09/09/22 07:18:14
Cソースから、Javaのバイナリ作ってことか。
機能を全部作れば出来るだろ。
それならJavの文法に従った方が楽だがな。

184:デフォルトの名無しさん
09/09/22 07:50:39
×Jav
○Java

185:デフォルトの名無しさん
09/09/22 07:53:23
より簡単なのは、CソースをJavaソースに変換すればいい。

186:デフォルトの名無しさん
09/09/22 08:01:32
>>185
ソースをアップして下さい

187:デフォルトの名無しさん
09/09/22 08:14:06
>>185
クロックアップして下さい

188:デフォルトの名無しさん
09/09/22 09:14:45
お断りします。

189:デフォルトの名無しさん
09/09/22 11:10:58
(・)(・)

190:デフォルトの名無しさん
09/09/22 13:43:01
URLリンク(www.e-compas.net)
こういうグラフはどのようにして生成してUPしているのでしょうか?

191:デフォルトの名無しさん
09/09/22 14:44:28
>>190
Javaでそういうグラフを描きたいということ?
drawLineで線描いたりfillRectで棒描いたりすればよいのでは?

192:176
09/09/22 14:48:51
>>179
ありがとうございます。
C++でプログラミングして、教えて頂いたBorland C++ Compilerで
コンパイルするという方法でやってみようと思います。

ちなみにご案内頂いてるリンクページなのですが、
ページ下部のブックマークレットが上手く使えません。
下記の方法で正しいですよね?

①ページ下部ブックマークレットのリンクをお気に入りに追加
②自動更新させたいページに移動
③お気に入りから追加したブックマークレットを選択

193:179
09/09/22 20:26:40
>>192

スレ違いなんで簡単に。
まったく初心者がいきなり作るの大変だろうからちょっと助けてあげよう。
エラー処理やらタイマー、個別のIEウィンドウの選択は自分で実装してみてね。

#include <windows.h>
#include <stdio.h>

int main(int argc, char** argv) {

HWND foreHwnd = GetForegroundWindow();
HWND hwnd = FindWindow("IEFrame", NULL);//IEのウィンドウ(のうちどれか一個)を取得
SetForegroundWindow(hwnd);//キー送信のためのフォアグラウンドにする
hwnd = FindWindowEx(hwnd, NULL, "WorkerW", NULL);//キー送信対象になるIE内部ウィンドウを取得

char buff[256];
GetWindowText(hwnd, buff, 256);//取得したIEのウィンドウタイトルを取得してみる
printf("%s\n", buff);//タイトルを表示してみる
PostMessage(hwnd, WM_KEYDOWN, VK_F5, NULL);//F5キー押下情報をIEへ送信
PostMessage(hwnd, WM_KEYUP, VK_F5, NULL);//F5キー押上情報をIEへ送信

//ここでforeHwndをフォアグラウンドに戻してもいい
return 0;
}

ブックマークレットについてはただググって引っかかったサイト紹介しただけなのでスルーさせて。
実行の仕方は間違ってないはず。

194:179
09/09/22 20:46:20

FindWindowExの行はprintfの後に移動してくり。
コメント書いてるときにずらしてしもーた。
スマソ。

195:デフォルトの名無しさん
09/09/22 20:58:39
コメントする前にスレタイを読みましょう

196:デフォルトの名無しさん
09/09/22 21:35:41
親フレームが持っているJTextFieldの内容を
親フレームが作成したダイアログからダイアログを閉じないで変更することは可能でしょうか?


197:デフォルトの名無しさん
09/09/22 21:58:15
可能です。

198:デフォルトの名無しさん
09/09/22 22:07:22
ヒントを教えて頂けないでしょうか・・・。

199:デフォルトの名無しさん
09/09/22 22:32:09
(ヒントを教えることも)可能です。

200:デフォルトの名無しさん
09/09/22 22:43:34
いやです

201:デフォルトの名無しさん
09/09/22 23:36:20
どういう状況で不可能だったのでしょう?

202:デフォルトの名無しさん
09/09/23 08:42:35
parentから、そのテキストフィールドをとってくりゃいいんじゃないの

203:デフォルトの名無しさん
09/09/23 09:04:40
メモリ内での挙動についての質問です。
以下のプログラムでb=a;が何をしているのかよく分かりません。
package sep10;//パッケージ名
class SimpleX {//変数xをもつクラスを定義
int x;
}

public class step005 {//クラス名
public static void main( String args[] ) {
Simplex a = new SimpleX();//変数aをSimplXのインスタンスとして生成
Simplex b = new SimpleX();//変数bをSimplXのインスタンスとして生成

a.x = 100;//変数aのメンバ変数xを初期化
b.x = 200;//変数bのメンバ変数xを初期化

b =a;//変数bを変数aのメモリアドレスに変換?

System.out.println(b.x);
}
}

b=a;の考え方として、
変数bを変数aのメモリアドレスに変換していると考えるのでいいですか。
また、そうすることでメモリ内では何が起こっているのですか。
変数bをSimplXのインスタンスとして生成したさいのメモリアドレスはメモリ内に残っているのですか。
回答をよろしくお願いします。

204:デフォルトの名無しさん
09/09/23 09:12:56
これをコンパイルし実行したら例外が発生してしまったのですが、なにがいけないのでしょうか?

class Henkan{
public static void main(String args[]){
float f = (float)(-100.0);
String s = String.format("%08x", Float.floatToRawIntBits(f));
System.out.println(s);
Integer i = Integer.valueOf(s,16);
}

205:デフォルトの名無しさん
09/09/23 09:16:50
質問です。

long SessionID = (long)combo2.getSelectedItem();

の部分でObjectをlongにキャストできませんと
コンパイルエラーがおきました。

どのようにすれば解決できるのでしょうか?

206:デフォルトの名無しさん
09/09/23 09:19:18
>>203
基礎的なことが書かれた入門書よんでこい

簡単に説明すれば
Simplex a = new SimpleX();//変数aをSimplXのインスタンスとして生成
これが間違い
Simplex a = new SimpleX();//SimpleXのインスタンスを生成して、変数aで参照する
したがって、
a = b; //変数bの参照先を、変数aで参照する

207:デフォルトの名無しさん
09/09/23 09:20:40
>>205
Java1.5以上にする
または
long SessionID = ((Long) combo2.getSelectedItem()).longValue();
ただし、実行時エラーがおきるかどうかは知らん

208:デフォルトの名無しさん
09/09/23 09:21:36
ごめ、1.5にしても通らないわ。
1.5なら、
long SessionID = (Long)combo2.getSelectedItem();
でOK

209:デフォルトの名無しさん
09/09/23 09:22:30
>>204
どこでコンパイルエラーが発生したかくらい書けよ

210:デフォルトの名無しさん
09/09/23 09:23:47
>>203
「javap -c」を調べてみましょう。
>>204
発生した例外の名前とおりの理由です。発生した例外クラスの説明はJavaのAPIリファレンスに書いてあります。
>>205
combo2が定義されいません。
私はコンパイルエラーを吐きます。

211:デフォルトの名無しさん
09/09/23 09:25:56
ファイルを複数個読み込むにはどうしたらいいのでしょうか?
import java.net.*;
import java.io.*;
class Client
{
  public static void main(String[] args) throws IOException
  {
    ObjectOutputStream 出力ストリーム;
    ObjectInputStream 入力ストリーム;
    String サーバのIPアドレス = args[0];
    String ファイル名 = args[2];
    String バッファ = null;
    int サーバのポート番号 = Integer.parseInt(args[1]);
    Socket サーバのソケット = new Socket(サーバのIPアドレス, サーバのポート番号);
    System.out.println("これからサーバに接続します");
    出力ストリーム = new ObjectOutputStream(サーバのソケット.getOutputStream());
    入力ストリーム = new ObjectInputStream(サーバのソケット.getInputStream());
    出力ストリーム.writeObject(ファイル名);
    出力ストリーム.flush();
    try
    {
      バッファ = (String)入力ストリーム.readObject();
    }
    catch (ClassNotFoundException error_report)
    {
      System.out.println(error_report);
      System.exit(1);
    }
    System.out.println(バッファ);
    サーバのソケット.close();
  } }

212:デフォルトの名無しさん
09/09/23 09:29:00
>ファイルを複数個読み込むにはどうしたらいいのでしょうか?
1つ読み込んで、終わったら次を読み込めばいい

213:デフォルトの名無しさん
09/09/23 09:32:05
javap -c とは何でしょうか?

214:デフォルトの名無しさん
09/09/23 09:35:20
(゚∀゚)

215:デフォルトの名無しさん
09/09/23 13:21:30
appletは無料HPで使用できるのでしょうか?
また、なぜservletは使用できないのでしょうか?

216:デフォルトの名無しさん
09/09/23 13:23:19
アプレットは、ダウンロードしてブラウザ上で動かすので、ブラウザがアプレットを動かせるようになってれば動きます。
サーブレットはサーバ上で動かすので、サーバがサーブレットを動かせるようになってないと動きません。

217:デフォルトの名無しさん
09/09/23 13:24:07
appletを設置するのは画像を置くのと手間は変わらないし、
動作するのはブラウザの中だから鯖への負荷もない。
サーブレットは、認知度が低い・受け入れが鯖にとって面倒、
レンタル用の貧相な鯖でJava VMを動かす必要がある。

といったところか。



218:デフォルトの名無しさん
09/09/23 13:30:16
サーブレットを動かせる無料レンタルサーバーはありますか?

219:デフォルトの名無しさん
09/09/23 13:40:08
ないだろ

220:デフォルトの名無しさん
09/09/23 13:45:57
無料鯖でサーブレットも海外なら幾つかあるよ
とはいえバージョンが固定されていたり使い物にはならない

基本的にVPSでもいいからルート権限のある有償鯖でないと無理
ちなみにちょっと試すならばAmazonがベスト

221:デフォルトの名無しさん
09/09/23 13:49:27
なんで無いんだろうね

222:デフォルトの名無しさん
09/09/23 14:01:02
売る側にしたらメモリもCPUも食いまくるJava売るよりも、PHPで大量に使わせたほうがいいだろ

223:203=13
09/09/23 14:10:13
回答ありがとうございます。
何度も読み見返してみて以下のようになりました。
SimpleX a = new SimpleX();//SimpleX型の変数aをSimplXのインスタンスとして生成してそのメモリアドレスを参照する
a = b; //変数aは変数bの参照先を、参照する
でいいですか。
そのため、203のコードではインスタンスが2種類メモリに確保されるが、片方は使われないと考えていいですか。

javap -cはどうもDumpというメモリ内のデータを見れる方法みたいですが、後で調べておきます。

224:13
09/09/23 14:15:29
解釈として以下のどちらが適切ですか?
1.SimpleX a = new SimpleX();//SimpleX型の変数aをSimplXのインスタンスとして生成してそのメモリアドレスを参照する
2.SimpleX a = new SimpleX();//SimpleX型の変数aはSimplXのインスタンスを生成してそのメモリアドレスを参照する
よろしくお願いします。

225:デフォルトの名無しさん
09/09/23 14:18:45
>>224
3. SimpleXインスタンスを生成し、その参照を変数aに格納する。

226:デフォルトの名無しさん
09/09/23 15:01:10
>>204
変数とインスタンスは別だって解らないなら諦めた方がいいよ

227:13
09/09/23 15:59:02
回答ありがとうございます。
今やっと、分かりました。
224はどちらも正しくありませんでした。

40時間程勉強してやっとここまできました。
今度はメソッドと戻り値を勉強してみようと思います。

228:デフォルトの名無しさん
09/09/23 16:55:07
JScrollPaneに貼り付けた画像に、
Java2Dのアフィン変換をかける方法ってありますか?

今はImageIconをJLabelに貼ってJScrollPaneに追加という形を
取ってるんですが、この方法だとpaint()の中でg.drawImage()しないので、
アフィン変換出来ないんですよね・・・

それから、画像に範囲指定枠などを重ねて表示したいんですが、
これも、上記の方法では実現出来ないんでしょうか??

229:デフォルトの名無しさん
09/09/23 17:04:53
貼る前のイメージ自体をAffineTransformOpかなんかでアフィン変換しておくとか
範囲指定枠もイメージ上に描いてしまうとか

230:デフォルトの名無しさん
09/09/23 17:06:36
って 一回言ってみたかったんだ、てへ

231:デフォルトの名無しさん
09/09/23 17:56:04
>>228
つ JavaFX

232:13
09/09/23 18:37:48
コマンドプロンプトで
javap -c Sep10.step005
を実行しました。
するとバイトコードが出てきました。
その中で
b =a;//変数bは変数aの参照先を参照する。
System.out.println(b.x);
にあたる部分が以下のものだと思います。
29: aload_1
//ローカル変数1をスタックに入れる
30: astore_2
//スタックから値を取り出し、ローカル変数2に入れる
31: getstatic #5; //Field java/lang/System.out:Ljava/io/PrintStream;
//static変数を取り出す
34: aload_2
//ローカル変数2をスタックに入れる
35: getfield #4; //Field Sep10/SimpleX.x:Ⅰ
//変数bのメンバ変数xを取り出す
38: invokevirtual #6; ///Method java/io/Println:(Ⅰ)V
//インスタンスメソッドを呼び出し、表示する。
41: return
これでなんとなく分かりましたが、実際にメモリを見てみたくなりました。
Dumpツールでお勧めのソフトはありませんか。

233:13
09/09/23 18:45:06
いまいちよく理解できていないのが203のコード中の変数aと変数bのメモリの実態です。
b =a以前のコードでは
変数aには変数aのアドレスと100という数値が格納されていて
変数bには変数bのアドレスと200という数値が格納されているはずです。
b = a以後のコードでは以下のどちらになっていますか。
1.変数bには変数bのアドレスと100という数値が格納されている。
2.変数bには変数aのアドレスと100という数値が格納されている。
231のバイトコードを見る限りでは2のような気がします。
長文が続いてしまいましたが回答をよろしくお願いします。

234:デフォルトの名無しさん
09/09/23 18:52:39
もしかしてこいつは荒らし目的なんじゃないかと思い始めた


235:デフォルトの名無しさん
09/09/23 19:18:56
>>232-233
JITコンパイラがあるので、Javaのバイトコードがそのまま実行されるわ
けじゃない。なので、メモリをダンプしても無意味。

>>233に関しては、どっちも違う。代入前で

・変数aはインスタンスAのアドレスを格納している。
インスタンスAは.xに100を格納している
・変数bはインスタンスBのアドレスを格納している。
インスタンスBは.xに200を格納している

だとして、代入後は

・変数bはインスタンスAのアドレスを格納している。

になると考える。




236:デフォルトの名無しさん
09/09/23 19:24:27
こいつ、まじうぜえな

237:デフォルトの名無しさん
09/09/23 19:28:02
たしかに

238:デフォルトの名無しさん
09/09/23 19:28:47
>>233
ダンプツールとしてはjmapが標準搭載されています。

根本的に変数とオブジェクト(インスタンス)の関係が理解できていないのではありませんか?

> 1.変数bには変数bのアドレスと100という数値が格納されている。
> 2.変数bには変数aのアドレスと100という数値が格納されている。
aもbも参照しか保持していません。上記はどちらも間違いです。
「bの参照先オブジェクトがもつxの値は100」は正しいです。

上記は住所と家の関係で考えるとよいかもしれません。

・住所欄に記入するのは住所です。
 実際の家が住所欄に埋め込まれているわけではありません。

・あなたの住所は、引越しをする度に別の住所へ書き換えられます。
 元の住所にあった家はそのままであり、
 新しい住所の家に元の住所の家を移築するわけでは(普通)ありません。

・住所は家の位置を表していますが、家そのものではありません。
 住所自体には風呂やトイレはついていません。

・履歴書の住所欄に記入した住所と、通販ページで記入した住所、
 どちらも同じ住所であれば、同じ家をあらわしています。

・あなたがトイレに花瓶をおいたとしたら、
 履歴書でも通販ページでも、
 住所欄の住所に存在する家のトイレには花瓶が置いてあるでしょう。

*住所欄は変数、住所は参照、家はオブジェクト、花瓶は値に置き換えましょう。

239:デフォルトの名無しさん
09/09/23 19:30:11
自演乙

240:13
09/09/23 20:57:37
分かりやすい説明をありがとうございました。
おかげで変数aのメモリ領域のすぐ後ろにインスタンスがあるのだと勘違いしていたことにやっと気が付きました。
以下のコメントで正しいですか。
package Sep10;//パッケージ名
class SimpleC {//変数xをもつクラスを定義
int x;
}

public class step005 {//クラス名
public static void main( String args[] ) {
SimpleC a = new SimpleC(); //SimpleC型の変数aを宣言し、変数aのメモリ領域をメモリに確保する。
//SimpleCをインスタンス化(クラスSimpleCのためのメモリ領域を確保)しインスタンスaとする。
//変数aのメモリ領域にインスタンスaの先頭アドレスを書き込む。
SimpleC b = new SimpleC(); //SimpleC型の変数bを宣言し、変数bのメモリ領域をメモリに確保する。
//SimpleCをインスタンス化(クラスSimpleCのためのメモリ領域を確保)しインスタンスbとする。
//変数bのメモリ領域にインスタンスbの先頭アドレスを書き込む。
a.x = 110; //変数aに書き込まれたアドレス先のインスタンスaにあるメンバ変数xを初期化する。
b.x = 200; //変数bに書き込まれたアドレス先のインスタンスbにあるメンバ変数xを初期化する。

b =a;//変数bのメモリ領域に変数aに書き込まれたインスタンスaの先頭アドレスを書き込む。

System.out.println(b.x);
}
}
よろしくお願いします。

241:デフォルトの名無しさん
09/09/23 21:03:28
荒らし認定


242:デフォルトの名無しさん
09/09/23 21:04:22
確実に

243:デフォルトの名無しさん
09/09/23 21:05:35
>>240
いいと思うけど、変数とインスタンスに同じa,bを付けると紛らわしいから、
インスタンスには別の記号(A,Bとかx,yとか1,2とかア,イとか)を付ける方がいいよ
あと、実際のプログラムにそのコメント量はウザイ
理解できたら、もう書かないように

244:デフォルトの名無しさん
09/09/23 21:06:24
何度も説明されている事をてめーが無視してんじゃねえかよw

245:デフォルトの名無しさん
09/09/23 21:45:58
>>193
大変遅れましたがご意見ありがとうございました。
コードを参考にさせて頂き、Cを勉強してみます。

246:デフォルトの名無しさん
09/09/23 22:10:47
質問です。
swingを使用しています。
トップ画面に戻るボタンがあり最初の画面では無効、別のボタンを押して画面が切り替わると戻るボタンが使えるようにしたいです。
回答をよろしくお願いします。

247:デフォルトの名無しさん
09/09/23 22:38:34
現在、どの画面にいるかチェックしてトップ画面以外にいるなら有効にしろ


248:デフォルトの名無しさん
09/09/23 23:03:22
なるほど、つまり定期的に表示画面のステイタスをチェックしてボタンの
イネービリティをチェンジすれば良いわけですね。サーバを立てれば良いのでしょうか。

249:デフォルトの名無しさん
09/09/23 23:04:28
オブザーバ立てれば良いんじゃね。

250:デフォルトの名無しさん
09/09/23 23:09:21
アドバイザーだろ普通

251:デフォルトの名無しさん
09/09/23 23:19:24
じゃあ俺はバドワイザー!


252:デフォルトの名無しさん
09/09/23 23:20:25
切り替わる画面ってのが複数あるのなら
画面遷移の履歴をリストかスタックに入れといて、履歴が空なら無効、それ以外は有効にするとか。
それを判定するタイミングは画面を切り替えるボタンのアクションリスナーとか。

253:デフォルトの名無しさん
09/09/23 23:26:38
俺もバドでいいや

254:デフォルトの名無しさん
09/09/23 23:47:43
皆さんありがとうございます、がんばってみます

255:デフォルトの名無しさん
09/09/23 23:51:24
ボストンバスターとか。

256:デフォルトの名無しさん
09/09/24 08:08:32
☆☆☆★最大級の注意を★☆☆☆☆☆

☆☆☆★とくに千葉県、静岡県、東京都や関東で大震災の恐れが★☆☆☆☆☆
☆☆☆★とくに千葉県、静岡県、東京都や関東で大震災の恐れが★☆☆☆☆☆
☆☆☆★とくに千葉県、静岡県、東京都や関東で大震災の恐れが★☆☆☆☆☆

☆☆☆★世界の支配者ユダヤが地震兵器を使うのか★☆☆☆☆☆

友人、知人、親類縁者、あらゆるつながりを駆使して巨大地震がくることを教えて下さい。

四川地震より大きいのが来る可能性があります。
URLリンク(goldenta)<)
ワタスの予言では今月中に関東大地震だす3
スレリンク(eq板)
e-PISCO Part11
スレリンク(eq板)

ほんとに大震災だったら犯人は特権階級全員だってことにwwwwwwww

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

カナダの世界的科学者ロザリー・バーテルはハープが地震兵器や脳を損傷させる兵器の疑い
があるので情報を公開するように要請している
URLリンク(www.youtube.com)


257:デフォルトの名無しさん
09/09/24 10:07:58
public static void main(String[] args) {
  System.out.println("素人ばっかりだな");
}

258:デフォルトの名無しさん
09/09/24 10:49:22
public static void main(String[] args) {
  System.out.println(">>257おまえモナー");
}

259:デフォルトの名無しさん
09/09/24 11:20:06
>>258
public static void main(String[] args) {
  while(1) {
    if (>>257 == Hume.get()) {
        break;
    } else {
        System.out.println(">>257は塵");
    }
  }
}

260:デフォルトの名無しさん
09/09/24 18:27:41
休みだからJavaのこと教えるだよ
スレリンク(news4vip板)

261:デフォルトの名無しさん
09/09/24 18:35:28
>>259
> while(1) {
コンパイルエラー

262:デフォルトの名無しさん
09/09/24 18:37:34
>>261
己の無能を発揮したね
Cなら通るよ

263:デフォルトの名無しさん
09/09/24 18:38:27
>>262
ここは何のスレだ?

264:デフォルトの名無しさん
09/09/24 18:42:10
>>263
Javaしかできない汎用性もない低能か

265:デフォルトの名無しさん
09/09/24 18:45:22
>>262
>public static void main(String[] args) {
>System.out.println(">>257は塵");
Cねえ…



266:デフォルトの名無しさん
09/09/24 18:48:22
C じゃなおさら通らねぇだろw

267:デフォルトの名無しさん
09/09/24 19:00:39
ほんとだめだな
柔軟性がない

268:デフォルトの名無しさん
09/09/24 19:02:36
柔軟性のあるコンパイラを開発してくれ

269:デフォルトの名無しさん
09/09/24 19:05:20
>>268
お前じゃ能ないしな

270:デフォルトの名無しさん
09/09/24 19:06:35
うむ
俺には無理なんで、よろしく頼む
期待してるぞ

271:デフォルトの名無しさん
09/09/24 19:48:52
スペルミスを自動補正してくれるけど、コンパイルするたびに動作が変わったりするんだな

272:デフォルトの名無しさん
09/09/24 20:35:45
コンパイルするたびに賢くなるといいな

273:デフォルトの名無しさん
09/09/24 20:53:20
最終的には強い人工知能になるんですね、わかります


274:デフォルトの名無しさん
09/09/24 21:43:47
ほんとに初心者いるのここ

なんか毎日入門書読みながら抽象クラスとかインターフェースとか勉強しつつ
簡単なプログラム書いて楽しんでんだけどこんなんでいいのか不安だ

Cで計算機プログラミング?やってたときと同じことやってる気がSystem.out.println();

一通り入門書読み終わったらみんな次どんなステップ踏んでるの?
分厚いウェブブラウザをつくるみたいな買って読んでんの?

275:デフォルトの名無しさん
09/09/24 21:45:06
辞書登録しててみすった

System.out.println();

する

に変換して読んでください

276:デフォルトの名無しさん
09/09/24 21:47:47
しすだろjk

277:デフォルトの名無しさん
09/09/24 21:50:31
いや、sで出るようにしてたんだw

将来的に作りたいのは、
ウェブ上でブレインストーミングできるようなものが作りたいなとおもってるんだけど
無理なのかな

278:デフォルトの名無しさん
09/09/24 21:56:35
動くものを作ったほうが楽しいのは確実。
だがウェブで動くものを作るのは色々と前提知識が多くて実は面倒。
つまり、創るJava最強

279:デフォルトの名無しさん
09/09/24 22:00:12
>>277
たとえばこんな感じのものか?
URLリンク(www.mindmeister.com)


280:デフォルトの名無しさん
09/09/24 22:08:29
>>278
出来ればeclipseで創ってるもののほうがよかった
けど、amazonのレビューみたら結構評判良かったから
明日本屋で立ち読みしてくる

>>279
そうそう
もっと自由配置リアルタイム更新型のチャットみたいなのを
つくるイメージでいたけど、大体はこんな感じ

281:デフォルトの名無しさん
09/09/24 22:11:25
>>280
もう既に競合がたくさんいるのに、あえて後発組になって作るのか?

ビジネスじゃなくて趣味なんだったら何も言わんが。


282:デフォルトの名無しさん
09/09/24 22:20:37
>>281
あくまでも趣味というか勉強のため
というか
どのくらいのスキルで、
どのくらいのものが出来るのかまだわかってない

それ以外にもなんかの専ブラとか創りたいものはたくさんあるんだけど
1つ完成させれば色々応用聞くかなと思って

ビジネスは今の時点では考えてないから、
ソースごとxoopsのモジュールとかで無料配布して
自分のサーバーに乗せて仲間内で使ってねって感じで出そうかなとか思ってた

283:デフォルトの名無しさん
09/09/24 22:23:18
自営業の閑散期にそういう Web 系ツールいくつか作ってはみたけど、
どんなに本格的で良いツールでも営業とか広告とかマーケティング
しねぇとユーザ集まらねーぜ? 勉強目的ならいいけどそこまでする気あるかい?
運営も鯖のメンテ面倒だし。

284:デフォルトの名無しさん
09/09/24 22:27:57
いいんじゃねーの?
好きなだけやって飽きたら辞めれば
それに運用することで得られるスキルは確実にあるわけだから無駄ではない

285:デフォルトの名無しさん
09/09/24 22:33:33
>>283
現時点ではない
30人に使ってもらえたら自分としてすごくうれしいという感じだから

しかも自分はプロじゃないから
>本格的で良いツール
がすぐには実現できないと思う

もし出来たらそういうことも考えようと思ってるけど
まだまだ先の話だと考えてる

286:デフォルトの名無しさん
09/09/24 22:45:22
> もし出来たらそういうことも考えようと思ってるけど
> まだまだ先の話だと考えてる

俺も昔Webサービス系で夢を追いかけたクチから、
本気でやる時のためにアドバイスをやる。

まずビジネス側面から考えろ。
「使いたい人だけ使えばいい」
なんてものを作ってもそれはオナニーだ。

そんなものは一人も使わん。一人もだ。


287:デフォルトの名無しさん
09/09/24 22:55:26
文字化けなんですが解決策わかりますか?
WindowsXPです。

スクリーンショット

URLリンク(gazox.com)

288:デフォルトの名無しさん
09/09/24 23:01:41
>>286
そうなのか
そのことも踏まえて考えてみる
アドバイスありがとう

>>287
URLリンク(www.mapee.jp)
ここ読んでみたら

289:デフォルトの名無しさん
09/09/24 23:02:11
>>287
ほれ
URLリンク(www.eclipse.org)

290:デフォルトの名無しさん
09/09/24 23:18:15
>>283 だけど >>286 には全面的に同意しておく。
商用でなくてもオープンコミュニティで必死こいてサポートしないと
今時は一人も来ないんだよな。

そんなんよりエロ動画のダウソアプリ作った方がよっぽど利用者多い罠。

291:デフォルトの名無しさん
09/09/24 23:30:50
うわぁ…

292:デフォルトの名無しさん
09/09/25 00:10:59
>>288
ありがとうございました

293:デフォルトの名無しさん
09/09/25 03:50:32
まあ評価するのはあくまで素人プログラマーじゃなくユーザだしな
がんばれ

294:デフォルトの名無しさん
09/09/25 15:33:48
javaだとCのように単純なXOR交換はできませんか?
XOR R1, R2
XOR R2, R1
XOR R1, R2
の手順でやっても変数が0になってしまうのですが・・

295:デフォルトの名無しさん
09/09/25 16:44:18
ふつうに交換できるよ。

(R1とR2ではなく)R1とR1だと両方ゼロになる、
というXOR交換の仕様の話じゃないよね?


296:デフォルトの名無しさん
09/09/25 16:56:12
JavaでPOSTすると日本語の値が受信側のreq.getParameter()で
取得した値が???になるんですけどどこを疑えばいいでしょうか?
送信側は値をURLエンコードしています。
URLエンコードしてるのでASCII文字を送信してるので
化ける理由がわからないので困ってます。
よろしくお願いします。

297:デフォルトの名無しさん
09/09/25 17:03:39
>>294
int i = 1, j = 2;
i ^= j; j ^= i; i ^= j;
System.out.println(i + "," + j);
でできる。もしかしてXOR交換を
i ^= j ^= i ^= j;
のように記述していない?
Cならこの書き方でもできるけどJavaではCと評価順序が違うのでできない

298:デフォルトの名無しさん
09/09/25 17:06:07
req.setCharacterEncoding("Windows-31j");

299:デフォルトの名無しさん
09/09/25 17:19:21
>>298
さんくす

300:デフォルトの名無しさん
09/09/25 21:34:22
JLabelで文字列を表示しているのですが、
文字列が長くなってもJLabelのサイズを、初期のままにする事は出来ますか?

301:デフォルトの名無しさん
09/09/25 21:40:50
setPreferredSize()

302:デフォルトの名無しさん
09/09/25 21:43:33
>>301
ありがとうございます。

303:デフォルトの名無しさん
09/09/25 22:22:30
windowsでjavaを使ってみたけど、Linuxより速いのは気のせいか?

304:デフォルトの名無しさん
09/09/25 22:28:08
Windows だからという理由で何でも遅いと思ってるバカはただの厨房だから無視して良し。

305:303
09/09/25 22:33:58
>>304
>Windows だからという理由で何でも遅いと思ってるバカはただの厨房だから無視して良し。
はてなダイアリーでwindowsのswing(どのコンポーネントかは知らん)が10倍速くなったって記事を読んだから(本当なのか?)
windowsの方が早い気がするってレスしたんだけど
私のレスがあなたにとって何か問題がありますか?

306:デフォルトの名無しさん
09/09/25 22:43:06
windowsのswingはDirectXで描画しているらしい

307:デフォルトの名無しさん
09/09/25 22:47:12
ヽ|・∀・|ノ

308:デフォルトの名無しさん
09/09/25 22:50:49
φ(゚Д゚ )フムフム…

309:デフォルトの名無しさん
09/09/25 22:54:19
>>305
オメーの事じゃねぇよ。そういう話をしてる奴が居たらという話。

310:303
09/09/25 23:02:37
>>306
windowsのJREはDirectXで描写しているのか、それは知らなかった
そんじゃ、本気出せば.netと同じくらいの速さにできる可能性があるってことか
しかし、M$はそんなことを許してくれないと思うけど

311:デフォルトの名無しさん
09/09/25 23:04:32
.netってとても遅く感じてたけど
どっちが速いの?

312:デフォルトの名無しさん
09/09/25 23:04:53
実際 Linux なんて Unix 風 OS の中でも LWP の実装がかなり遅かったから
スレッド使いまくりの Java がまともに使える環境としてはかなり後出だったな。
GUI に関してもグラボのアクセラレーションは期待できないし、取り立てて
I/O が強いわけでもない。

313:デフォルトの名無しさん
09/09/25 23:05:23
>>309
紛らわしいレスしてんじゃねーよ

314:デフォルトの名無しさん
09/09/25 23:10:54
>>313
誤解が解けたなら良いじゃねぇか。落ち着けよチンカス

315:デフォルトの名無しさん
09/09/25 23:11:37
Eclipseもwindowsの方が速いらしいし、
もうちょっとwindows以外のOSにも力を入れてくれれば面白いのにな~

316:デフォルトの名無しさん
09/09/25 23:49:29
取り立てて遅いのは Linux みたいな I/A のフリー Unix 環境だけだろ。
OSX や商用 Unix あたりの、ハードに対応した専用ドライバがあって
それ向けに実装された JDK を持ってる環境で遜色を感じた事はない。
GUI なしなら変わらん、と言いたいところだが AIX なんかの商用 Unix
に比べて高負荷でアップアップ状態に陥るのも早い。
だから使えねーというレベルはないが。

317:デフォルトの名無しさん
09/09/26 01:16:15
どうやったら、ガーベジコレクションを促すことができるの?

318:デフォルトの名無しさん
09/09/26 01:20:12
>>317
促されたからといって、するとは限らない。

319:デフォルトの名無しさん
09/09/26 01:24:43
じゃあどうすればいいの?

320:317
09/09/26 01:26:55
>>319
俺が質問したいことはその通りなんだが、
俺の代わりに書き込むなよ

321:デフォルトの名無しさん
09/09/26 01:35:32
System.gc()
仕様上は確実に実行されることが保証されていないが、大抵の実装では直ちに実行される。

322:317
09/09/26 01:56:38
>>321
わかりました。ありがとうございます

323:デフォルトの名無しさん
09/09/26 23:42:26
eclipse.orgのサイトが重すぎなんですけど…
トップページ表示するだけで数十秒待たされる
昔からこんな感じなんですか?

324:デフォルトの名無しさん
09/09/27 00:13:08
んなこたーない

325:デフォルトの名無しさん
09/09/27 09:40:55
Javaのプロセスで全てのスレッドから使用できるListを作りたいのです。
どうすればよいのでしょうか?
多くのスレッドが一度に書き込み、読込みを行うので、効率よくそのListに
アクセスする方法も教えていただきたいです。
よろしくお願いします。


326:デフォルトの名無しさん
09/09/27 11:02:04
>>325
普通に変数を作れば、その変数がスコープに入る全てのスレッドからアクセスできる。
ただ、ArrayList とかを工夫無しに皆でアクセスすると、競合する(誰かがかきかえてい

327:デフォルトの名無しさん
09/09/27 11:05:28
>>326
書き換えている最中に読んでしまう)ので、
synchronized() で括ってアクセスするようにするか、Vector を使うなどする。


328:デフォルトの名無しさん
09/09/27 11:07:33
>>325
implements List
java.util.ArrayList
java.util.concurrent.locks.ReentrantReadWriteLock
で自分で作れば?

継承するか実装するのかは個人の自由だけど。
スレッドセーフだけどListに入れた物を処理途中で消す処理があるなら
Queueとか使ったほうがいいと思うけど。

329:デフォルトの名無しさん
09/09/27 11:14:59
ご回答ありがとうございます。

>>326
普通にArrayListの変数を宣言した場合、複数のクラスから
使用することができませんでした。
ArrayListの宣言したクラスを使用するとき、そのクラスをnewするため、
新しいArrayListができて、複数のクラスから使用できなかったのです。
(複数のクラスで複数スレッドを動かし、プロセス内のスレッドが
1つのListにアクセスさせたいのです)



330:デフォルトの名無しさん
09/09/27 11:18:27
クラスとインスタンスとスレッドの区別が付いてないような。


331:デフォルトの名無しさん
09/09/27 11:29:25
シングルトンすら理解できていないバカもいるのか

332:デフォルトの名無しさん
09/09/27 11:36:05
>>331
すみません、まだ勉強中です。
シングルトンで実装すれば、staticのようにJVM内で全てのスレッドにより
参照可能なのでしょうか。
staticでListを宣言するのは、あまり見たことがないので、ためらっていました。

333:デフォルトの名無しさん
09/09/27 11:48:51
プロセスリスト?だかをシングルトンで実装すれば済むでしょ
あとは適当にgetInstance().get()とかで好きなようにやればいい

334:デフォルトの名無しさん
09/09/27 11:52:33
>>332
別にstaticでも良いと思うけど。
駄目な理由なんてないでしょ。

335:デフォルトの名無しさん
09/09/27 12:00:42
>>332
static にすればアクセスし易いが、必要が無い。
アクセスする人に変数を渡すなりすればいいだけ。
これはスレッド云々の話ではない。

336:デフォルトの名無しさん
09/09/27 12:01:18
使い方によっては
static final List<Object> hoge=new ArrayList<Object>();

でも正解だったりするわけで

337:デフォルトの名無しさん
09/09/27 12:02:50
>>336
素人乙

338:デフォルトの名無しさん
09/09/27 12:05:06
finalじゃ、プロセス更新できねーよw
プロセスは常に同じと考えているのかね

339:デフォルトの名無しさん
09/09/27 12:18:20
>>338
やってごらん。

340:デフォルトの名無しさん
09/09/27 12:37:12
ArrayListじゃ同期は保障されてないよ。
頭の悪い塵がいるようだね。

341:デフォルトの名無しさん
09/09/27 12:41:22
やべぇ。超レベル低いなw

342:デフォルトの名無しさん
09/09/27 13:06:04
>>338
格納されているオブジェクトもイミュータブルですか?

343:デフォルトの名無しさん
09/09/27 13:08:20
Collections.synchronizedList(ArrayList)

344:デフォルトの名無しさん
09/09/27 13:10:04
>>337
使い方によってはと書いてるだろ?
素人君はもっと勉強したまえ

345:デフォルトの名無しさん
09/09/27 13:44:38
>>344
質問内容と関係ないでしょ。
本筋からそれてる内容で君のような低能じゃレスするまでもないよ。

346:デフォルトの名無しさん
09/09/27 14:04:05
>>344
お前みたいな奴が質を下げてるの自覚したほうがいいよ

347:デフォルトの名無しさん
09/09/27 14:43:57
どうせメソッド内の全アクセス範囲で synchronized で囲まなきゃならないのに
宣言も Collections.synchronizedList() 使ってる人はたまにに見かける。
そういうのってよくわからずどっかのコーディング規約でつけた知識なのだろう。

348:デフォルトの名無しさん
09/09/27 14:53:00
Collections.synchronizedList()で同期化をとれないのですか?
CopyOnWriteArrayListだといけるのですか?
それともaddメソッドをsynchronizedで囲めば大丈夫なのでしょうか?

349:デフォルトの名無しさん
09/09/27 15:12:28
少しは自分で調べろよ
馬鹿じゃねーの

350:デフォルトの名無しさん
09/09/27 15:39:47
>>348
Collections.synchronizedList()でも、Iteratorでまわしながら更新とかしているとダメ。
普通にaddするだけなら、大丈夫だと思うけど。

351:デフォルトの名無しさん
09/09/27 16:03:32
わかりました。ありがとうございます。

352:デフォルトの名無しさん
09/09/27 16:05:38
>>348
個々のオペレーションで同期化されていても、プログラムとして正しいとは
限らないぞ。どこからどこまで他のスレッドに割り込まれてはいけないかを
考えて実装する必要がある。
1: value = list.get(0);
2: value += 10;
3: list.set(0, value);
なんて実行しているとき、1と3との間に別スレッドでlist.add(0, hoge)とか
実行されたら明らかに不味いけど、特にエラー等が出るわけじゃない。


353:デフォルトの名無しさん
09/09/27 16:09:23
わかりました。ありがとうございます。

354:デフォルトの名無しさん
09/09/27 16:10:14
てか Collections.synchronizedList() 付けるだけで済む状況の方がまれだろ。
他のコレクションと同期取ったり、forで廻しながら特定の要素だけ抽出・削除したり。
はっきり言って Collections.synchronizedList() なんか付けるより個々の操作で
synchronized 付ける方が多い。

355:デフォルトの名無しさん
09/09/27 19:21:29
Javaから複数スレッドでファイルを読み込むとき、別スレッドが書き込み中であれば
ロックされて読み込みできないのでしょうか?
OSはLinux(RedHat)で、JavaのVersionは1.4です。

356:デフォルトの名無しさん
09/09/27 19:28:34
実装依存。
書き込み中でも読み込みしたいのなら FileChannel で共有ロックでもかける。

357:デフォルトの名無しさん
09/09/27 19:29:26
自分で試せば?

358:デフォルトの名無しさん
09/09/27 21:26:39
java.nio.bytebuffer
で任意の位置から指定された長さのByte[]データを得るにはどうすればいいのでしょうか?

例えば
オフセットが10から18のデータと
オフセットが19から30のデータを取得したいのですが


359:デフォルトの名無しさん
09/09/27 21:28:56
buffer.get(buf, 10, 9);
buffer.get(buf, 19, 12);

360:デフォルトの名無しさん
09/09/27 21:48:25
もう少し詳しくお願いします
補足が有ると助かります

361:デフォルトの名無しさん
09/09/27 21:50:43
いやです。

362:デフォルトの名無しさん
09/09/27 21:51:24
>>341
スレタイ読め

363:デフォルトの名無しさん
09/09/27 21:55:16
回答者も含めて初心者が集うスレだったのか。
理解してなかった。


364:デフォルトの名無しさん
09/09/27 22:02:10
ここはそろそろ初心者じゃなくなったかな?ってころに腕試しするところだろ。
まちがったらたまに熟練工が訂正してくれる。

365:デフォルトの名無しさん
09/09/27 22:02:40
Javaプログラマは頭が悪いと聞きましたが
先輩方もやはり頭が悪いのでしょうか?

366:デフォルトの名無しさん
09/09/27 22:15:26
このスレは色々教えてくれたり、アドバイスしてくれたり
みんな良い人ばかりだよ。
たまに荒らそうする人もいるけど。たぶん、そういう人は童貞なんだろうね。
童貞ほど悲惨なものは存在しないからね・・・。

で、Java5からsynchronizedは使わなくなったのですか?
使っていると「遅れてるぅ!」と言われたのですが・・・。

367:デフォルトの名無しさん
09/09/27 22:16:06
ワクワクしちゃうバグとか~グダグダすぎる例外と~♪
全部キャッチして~かっこで綴じちゃおう!

今日の出来事思い出して~いつも心がキュンとなって♪
もう資源がないけどリリースしなくっちゃ!

ララ☆また明日♪

368:デフォルトの名無しさん
09/09/27 22:34:44
Javaに限らず頭悪いのは多いだろ。

ほんの一握りの出来る人たち以外は
コンピュータの基本も知らん素人ばかりだよ。
勉強もしねーし。

369:デフォルトの名無しさん
09/09/27 22:39:02
おいおい、初心者が質問しやすい雰囲気をつくろうぜ!

370:デフォルトの名無しさん
09/09/27 22:56:25
いいえ、派遣が初心者叩いて喜ぶスレです。

371:デフォルトの名無しさん
09/09/27 22:57:43
>>366
んなこたねーよ。
セマフォ作ってみましたとかならともかく。

372:デフォルトの名無しさん
09/09/27 23:02:01
>>366
使わなくても、他の方法で書けるようになった。
別に使っても使わなくてもどちらでもよい。
ただ、timerとか使っているとダサいかも・・・。

373:デフォルトの名無しさん
09/09/27 23:14:18
何で?

374:デフォルトの名無しさん
09/09/28 00:19:33
SwingTimer・・・

375:デフォルトの名無しさん
09/09/28 00:23:10
何で Swing 前提なんだ

376:デフォルトの名無しさん
09/09/28 00:32:04
すまん・・・

377:デフォルトの名無しさん
09/09/28 01:15:38
>>366
ReentrantLockはtry-finallyを書くのが面倒だ。
シンタックスシュガーでいいから専用のブロック構文を用意して欲しかった。

378:デフォルトの名無しさん
09/09/28 12:37:38
>>366

> 使っていると「遅れてるぅ!」と言われたのですが・・・。

そいつはバカだから適当にスルーしておけ


379:デフォルトの名無しさん
09/09/28 19:38:21
カスタムタグ作りたいんですけど、どうしたらいいんでしょ。

380:デフォルトの名無しさん
09/09/28 19:46:36
作り方調べて作ればいいと思うよ

381:デフォルトの名無しさん
09/09/28 19:49:25
>>380
所詮はその程度か
知ってて質問してみりゃ自分がしらねーもんだから曖昧表現だしな
このスレJ2EEには弱いやつしかいねーしな

382:デフォルトの名無しさん
09/09/28 20:13:44
次の方どうぞ~

383:デフォルトの名無しさん
09/09/28 20:21:32
随分昔ならいざしらず、最近のJ2EE開発でカスタムタグ作るのってレアじゃない?
何したいのか知らんけど、Viewであまり特殊なことしないほうがいいよ。

384:デフォルトの名無しさん
09/09/28 20:22:10
触るなって

385:デフォルトの名無しさん
09/09/28 20:25:28
何で?

386:デフォルトの名無しさん
09/09/28 20:37:37
無知な>>380が釣れたってこったろ

387:デフォルトの名無しさん
09/09/28 20:38:25
eclipseのコンパイラってjavacじゃないんだな。初めて知った。

388:デフォルトの名無しさん
09/09/28 20:40:07
>>386
必死すぎワラタ

389:デフォルトの名無しさん
09/09/28 20:45:00
だから触るなw

390:デフォルトの名無しさん
09/09/28 20:46:27
何で?

391:デフォルトの名無しさん
09/09/28 20:48:12
>>387
出力されるバイトコードレベルで癖が違ったりしてるか?
javac も Java だからコンパイラエンジンとしてそのまま中で使っていると思う。
レキシカルアナライザか構文チェックあたりの癖はちょっと違っているが。

392:デフォルトの名無しさん
09/09/28 21:01:21
JavaからActiveDirectoryにアクセスするには何がお勧めですか?
JNDIというのでいいですか?

393:デフォルトの名無しさん
09/09/28 21:03:11
いいですよ

394:デフォルトの名無しさん
09/09/28 21:03:35
それでいいと思うよ

395:デフォルトの名無しさん
09/09/28 21:06:07
>>393,394
そうですか。ではこれでいきますね。

396:デフォルトの名無しさん
09/09/28 21:10:53
>>387
全く違う
選択できる

低能は困るね

397:デフォルトの名無しさん
09/09/28 21:11:10
>>391
javacにないバグ(逆も秦)があることはあるよ。

以前JDTのコンパイラのバグを見付けてjavacとの動作の違いを
レポートしたことがある。
JDTが数値かどうかをCharacter.isDigitで判定していたせいで、
全角数字でリテラルを作れたとゆーw

398:デフォルトの名無しさん
09/09/28 21:11:38
>>388
無能乙w

399:デフォルトの名無しさん
09/09/28 21:12:20
数値リテラル、ね。


400:デフォルトの名無しさん
09/09/28 21:21:54
そんな細かいコンパイラの違いに気付くほど精密なプログラミングをしてるのか君達は

401:デフォルトの名無しさん
09/09/28 21:22:39
そうですよ

402:デフォルトの名無しさん
09/09/28 21:22:43
文字コードがEUCのものってjavaで扱うと勝手にjavaで使える文字コード(UTF-16とか)に
変換されちゃうんですっけ?

DBで文字コードがEUCの文字をSELECTして、EUCの文字コードのままファイルに書き込むのは不可能?

403:デフォルトの名無しさん
09/09/28 21:28:42
>>400
素人さんは困りますね。

404:デフォルトの名無しさん
09/09/28 21:29:32
>>402
前者は全く違う
後者はやりよう

405:デフォルトの名無しさん
09/09/28 21:32:27
何でもかんでもUTF-8にしときゃいいんだよ

406:デフォルトの名無しさん
09/09/28 21:34:59
>>402
前者の変換はその DB の JDBC ドライバが勝手にやります。
後者は書き込むときにプログラマが EUC-JP を指定します。

407:デフォルトの名無しさん
09/09/28 21:39:49
>>405
これは同意

>>406
>>404で既にあるよ
2番煎じださい

408:デフォルトの名無しさん
09/09/28 21:41:31
>>404-406でいいと思うよ

409:デフォルトの名無しさん
09/09/28 21:49:26
>>402です。
JDBC ドライバが、EUC→UTF-8に変換させた時って
”㈱”とかの特殊な文字だと文字コードが死んじゃいませんか?
僕の勘違いですかね・・・

410:デフォルトの名無しさん
09/09/28 21:54:48
JavaよりJavaScriptのほうが使い前があるような気がする

411:デフォルトの名無しさん
09/09/28 21:55:52
>>409
JDBC ドライバが文字コード決めてるんじゃないよ?
Oracleで言えばインスタンス単位で文字コード決める訳よ
全く話がバカレベル

412:デフォルトの名無しさん
09/09/28 21:56:39
>>410
JavaとJavaScript(JS)hくぁ別物だよ。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch