【初心者】Java質問・相談スレッド102【大歓迎】at TECH
【初心者】Java質問・相談スレッド102【大歓迎】 - 暇つぶし2ch1:デフォルトの名無しさん
07/05/29 15:21:29
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
URLリンク(www.wikiroom.com)

これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 URLリンク(www.wikiroom.com)
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
【初心者】Java質問・相談スレッド101【大歓迎】
スレリンク(tech板)

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。URLリンク(pc10.2ch.net)

次スレは>>980あたりで。

2:デフォルトの名無しさん
07/05/29 18:04:45
ずるしてらくしてかれいに2げっとかしらかしら~

3:デフォルトの名無しさん
07/05/29 18:55:46
チョー初心者です
SUN JAVA プログラマ って取得すればそれなりの評価はありますか?
SUNの開発ソフトを使わないと取得は難しいのでしょうか?

4:デフォルトの名無しさん
07/05/29 19:15:52
>>3
プログラマの資格は全て、あんまり評価されない。

会社によっては給料良くなる資格もあるけど、それは自分で調べてね。

5:デフォルトの名無しさん
07/05/29 20:17:26
>>3
誰も取らないから希少価値があるんじゃないかな?

少なくとも既にできる人たちは取らないと思います。
免許とかではないので。

6:デフォルトの名無しさん
07/05/29 21:12:51
char a='こんにちは';

この記述の仕方間違っていますか?
文字リテラルがとじられていませんと言わてしまいます。

7:デフォルトの名無しさん
07/05/29 21:17:24
>>3
まぁ会社によっては一時金支給、極まれに給料上乗せってところが多いんじゃないかしら
あ、ソフト開発関連の会社ね。
試験費用出してくれるような会社だったら腕試しに受けてみてもいいかも。
自腹じゃ受ける気にならんよなぁ

8:デフォルトの名無しさん
07/05/29 21:18:30
>>6
まちがってる

9:デフォルトの名無しさん
07/05/29 21:18:49
>>6
間違い過ぎ

10:デフォルトの名無しさん
07/05/29 21:23:13
>>6
まず文字と文字列の違いから調べる

11:6
07/05/29 21:26:18
>>8さん
>>9さん

文字列引数どうやってかけばいいんすかね?
教えて貰ってもいいっすか?





12:6
07/05/29 21:27:19
>>10さん

出直してきます。


13:デフォルトの名無しさん
07/05/29 21:28:45
>>11
文字列引数の定義お願い。

>>6は引数関係ないし、ぶっちゃけ釣りだとおもってるんで。

14:デフォルトの名無しさん
07/05/29 21:32:43
何か宿題のニオイがする・・・・

15:デフォルトの名無しさん
07/05/29 21:37:47
>>13さん

釣りじゃないっすよ。2ヶ月まえから勉強しはじめました。
引数って型の「=」の後の文字や数字の事じゃないんすか?

なんかintばっかりで飽きたので、いろんな型使ってみようと思って試してみたらエラーでた次第でございます。
出直してきます。




16:デフォルトの名無しさん
07/05/29 21:49:18
2ヶ月でそれか・・・。
つーか、適当な本嫁。
根本的におかしすぎて、何を言っていいやらさっぱりだ。

17:デフォルトの名無しさん
07/05/29 22:10:03
javascriptを使って、そのページを見ている人が画面でどのような操作を
したかわかるようになりますか?
文章のコピーなど・・・


18:デフォルトの名無しさん
07/05/29 22:13:38
あんたはWebアプリの仕組みから勉強しなおしだな。

19:デフォルトの名無しさん
07/05/29 22:19:03
jre1.6.0_1をインストール後、
コントロールパネルにあるJavaを起動しようとすると、
Could not find the main class
とエラーがでて、起動失敗します。

Eclipse_v3.2.1で、6.0準拠でコンパイルし、HelloWorldを実行しても、同様のエラーが出て実行できません。

以前のjre(1.5.0_11)では、問題は発生しませんでした。

解決方法がありましたら、情報ください。よろしくお願いします。

20:デフォルトの名無しさん
07/05/29 22:22:20
スレの頭から飛ばしまくってんなぁ・・・

>>19
アンインストールしてみれば?

21:デフォルトの名無しさん
07/05/29 22:28:45
よくみると1のテンプレにJavaScriptの質問はスレ違いって書いてあったな。
スマソ

22:19
07/05/29 22:39:06
>>20
1.6も1.5も一度アンインストールしてから、再インストールしてもダメでした
別のPCでは問題ないので、使ってるPCに何かしら原因があるのはわかるんですが、
それがなんなのかさっぱりです。

23:デフォルトの名無しさん
07/05/29 23:10:06
>>22
Eclipseは起動するんでしょ?
設定からJava - インストール済のJREのところを確認。
出来るのであれば一度クリアして設定しなおしてみて。

24:デフォルトの名無しさん
07/05/30 00:25:24
URLリンク(informa.sourceforge.net)
これを使ってRSSを取得しようとしているのですが、
アクセス先のURLにベーシック認証が設定されている場合
どうすればよいでしょうか。

25:デフォルトの名無しさん
07/05/30 04:06:33
すいません、質問です。

画像ファイルを作成するプログラムを作っています。
カメラを使用しており、GUIのスナップボタン押すとjpegの画像ファイルが出来上がるというものです。

そこで質問ですが、スナップボタンを押す度にtest0.jpeg、test1.jpeg、test2.jpeg・・・
というように新しい画像ファイルを作成するには、下記の変数iにどのような処理を施せば良いのでしょうか。

ImageIO.write(tmp_img, "jpeg", new File("test"+ i +".jpeg"));

ちなみにプログラミングは最近はじめたばかりの初心者です。どうかお願いします。

26:デフォルトの名無しさん
07/05/30 04:10:43
プログラム内でi++だけしても、アプリ再起動したときにファイル名ぶつかる。
ファイルかDBにiを保存するしかないんじゃない?


27:デフォルトの名無しさん
07/05/30 04:13:59
>>24
informaを使ったことないので見当外れかもしれないが、
FeedParser#parseでURLを渡す代わりに、
setRequestPropertyでAuthorizationにセット済みのURLConnectionのInputStreamを渡してやるとか?

28:19
07/05/30 08:14:20
>>23
やってみましたが、状況は変わらずです。


29:デフォルトの名無しさん
07/05/30 08:50:17
>>28
環境変数(path, classpath)あたりをいじったことある?

30:19
07/05/30 09:09:54
>>29
pathは必要に応じて、変数加えたりしています。

自分も問題が起きたとき環境変数に原因があるのかとも思いましたが、
調べたとき、Javaに関わっていた変数は以下の2つでした。

CLASSPATH
jre1.5のインストール場所\lib\ext\QTJava.zip

QTJava
jre1.5のインストール場所\lib\ext\QTJava.zip

1.6をインストール後にも、この変数には変化がなかったので、
問題の原因と思って試しに上の2つを削除したんですが、変化はなかったです。

言われて気付いたんですが、上記の環境変数について調べてなかったので、
ちょっとQTJavaについてググったら、URLリンク(blue.ap.teacup.com)
に、原因っぽいのが書いてあるので、試してみます。




31:デフォルトの名無しさん
07/05/30 09:28:03
質問よろしくお願いいたします。

Java実行のコマンドラインで
-verbose:gc -Xloggc
を指定すると、ガベージコレクションの内容がファイルに書き出されますが、同様に
-verbose:class
の結果をファイルを指定に書き出すオプションはあるんでしょうか?
ちょっと見付けられなかったので、もしあれば、教えて頂けないでしょうか。

32:デフォルトの名無しさん
07/05/30 09:30:49
>>30
環境変数周りは昔から鬼門なんだわ。
path(classpathでない方)にjava関連が残っているならば一度消す。
それで起動しなくなるならば、アンインストールしてインストールしなおす方がいいかも。
classpathの方は、存在自体がウンコの場合があるので、一度環境変数ごと消す方がいい。

リンク先見たが、勝手にclasspath書き換えるのか・・・糞林檎。

33:デフォルトの名無しさん
07/05/30 09:32:04
>>31
標準出力をファイル出力なんかにパイプするなりしたら?

34:19
07/05/30 10:35:34
>>32
ダメでした・・・

CLASSPATH、QTJavaの2つの環境変数を消して(ほかにJava関連はありませんでした)、
再起動⇒アンインストール⇒再起動⇒jre1.6インスト
したのですが、同様のエラーが以前発生します。

QuickTImeもアンイストしたんですが、意味無かったです。

そもそもCLASSPATHなくても、jre1.5は問題なく動作してたので、何が原因かますますわからなくなってしまいました。

35:デフォルトの名無しさん
07/05/30 11:59:04
>>34
コマンドプロンプトを表示して、
java -version
と打つとどうなる?

36:java.lang.Exception
07/05/30 13:45:33
>> 34
「jre1.6インスト」
そもそもEclipse環境にはJREじゃなくてJDKが必要なんだけど・・・

37:デフォルトの名無しさん
07/05/30 13:55:12
> そもそもEclipse環境にはJREじゃなくてJDKが必要なんだけど・・・
ウソはいかん。

38:19
07/05/30 14:20:18
>>35
別の作業してたので遅くなりましたが、

>java -version
java version "1.6.0_01"
Java(TM) SE Runtime Environment (build 1.6.0_01-b06)
Java HotSpot(TM) Client VM (build 1.6.0_01-b06, mixed mode, sharing)

と表示されます。

39:デフォルトの名無しさん
07/05/30 14:21:21
JOptionPaneのボタンに初期状態でフォーカスを当てて、ダイアログを開いてからエンターキーを押すとダイアログが閉じるようにしたいのですが
どのようなメソッドを利用すれば宜しいでしょうか。setFocusable(true);では上手くいきませんでした。
下記サンプルコードです。

public class MainFrame extends JWindow {
private JDesktopPane desktopPane = new JDesktopPane();
private JOptionPane optionPane = new JOptionPane();
public static void main(String[] args) {
MainFrame main = new MainFrame();
main.setSize(300, 300);
main.setVisible(true);
}
public MainFrame() {
desktopPane.setSize(100, 100);
desktopPane.setVisible(true);
this.add(desktopPane);
optionPane = new JOptionPane("TEST", JOptionPane.WARNING_MESSAGE,
JOptionPane.YES_NO_OPTION);
optionPane.setFocusable(true);
JInternalFrame iFrame = optionPane.createInternalFrame(desktopPane,
"TEST");
if (!desktopPane.isAncestorOf(iFrame)) {
desktopPane.add(iFrame, 0);
}
iFrame.setBorder(new BevelBorder(BevelBorder.RAISED));
iFrame.show();
}
}

40:デフォルトの名無しさん
07/05/30 14:34:58
>>38
アンインストールはされてないようだね。
pathなどにも入っていないということになれば、レジストリに設定されているという所だろうな。
上書きインストール、アンインストール、その他もろもろ試してダメだとすると、近くに詳しい人いないならばOS入れなおす方が早そう。


41:31
07/05/30 14:45:50
>>33
ありがとうございました。頂いた線でやってみたいと思います。

42:19
07/05/30 14:47:27
>>40
誤解をまねいてしまったようで、すいませんが、
さきほどのはjre1.6をインストしたときに実行・表示されたものです。
アンインストしたときに同上のコマンドを実行しても、認識はされませんでした。


43:デフォルトの名無しさん
07/05/30 15:20:16
同フォルダ内にtest.txtがあれば「ふぁいる:test.txtは、そんざいします。」と
その下に「OK:なんとかかんとか」という表示され、
txtがない場合はそんざいしません。という文章が表示されるプログラムを組んだのですが、
二つほど問題が発生しました。
1:OK:の隣りのなんとかかんとかの部分が表示されない。(なんとかかんとか、という文章ではなく違うなにかが表示される予定)
2:test.txtがフォルダ内にない場合には、コンパイルでエラーが出てしまう。

プログラムはこれです→URLリンク(ccfa.info)のup3656
どこが間違ってるか教えてくれないでしょうか。

44:39
07/05/30 15:24:11
追記
JInternalFrame.setSelected(true)で見た目上は選択済みの色になったのですが
エンターキーを押すとバックグラウンドのツールで改行が・・・。

45:19
07/05/30 15:42:38
結果として解決できませんでしたが、色々とご意見ありがとうございました。
レジストリもわかる範囲でいじってみましたが、うまくいきませんでした。

時間に余裕ができたら、OS入れなおしてみます。それまでは1.5で、やってみます。



46:デフォルトの名無しさん
07/05/30 19:35:29
firefoxで連続した半角文字を折り返す処理について
下記で紹介されているスクリプトを使ってみたのですが
なぜかまともに動いてくれません・・・。原因がわからない。
このスクリプトを使うとき何か注意しないといけない点とかありますか?

URLリンク(www.koikikukan.com)

47:デフォルトの名無しさん
07/05/30 21:03:21
>>46
質問する場所を注意しないといけませんね

48:デフォルトの名無しさん
07/05/30 21:07:07
>>46

+ JavaScript の質問用スレッド vol.56 +
スレリンク(hp板)

49:デフォルトの名無しさん
07/05/30 22:04:22
あるクラスCLASS1で求めた整数型の値kを別のクラスCLASS2で呼び出したいんですけどどうすればいいんですか?

50:24
07/05/30 23:36:39
>>27
ご説明いただいた方法でできました。
ありがとうございます。

51:デフォルトの名無しさん
07/05/31 05:22:26
>>49
アルファベットぐらい自分で勉強してから来い

52:デフォルトの名無しさん
07/05/31 07:16:45
Javaの参考書を買おうと思うのですが、プログラミングに使ってるソフトがエクリプスならばやはり参考書もエクリプスで解説してるものがいいんでしょうか?

53:デフォルトの名無しさん
07/05/31 09:11:59
>>52
その方がいいとは思う。
だけど、Eclipseを使っていて、かつ入門に適した本ってのがない。

個人的にはEclipseの本1冊と、独習Javaあたりを併用するのがいいと思う。
独習Eclipseとか出ないかね。

54:デフォルトの名無しさん
07/05/31 11:07:51
コードスタイルについて質問なんですけど、
public class hoge{
public void hage(){
}
}
てやるのが一般的らしいのですが、
public class hoge
{
public void hage()
{
}
}
て書くのは邪道?

55:デフォルトの名無しさん
07/05/31 11:26:09
>>54
そんなのはプロジェクトのコーディング規約なわけで、自分だけでやるなら
なんだっていいだろ。
まあ、ECMAぐらいは知っておけ

56:54
07/05/31 12:29:25
レスありがとうございます。
そうですか・・・目を慣らさせとくために、コードスタイルを前者に変えて
やって見ようかと思います。

57:デフォルトの名無しさん
07/05/31 12:54:15
コードフォーマットはこだわらない。
んなもん、Eclipseで設定して一発変換でしょう。

58:デフォルトの名無しさん
07/05/31 15:47:46
>>53
ありがとうございます
とりあえず、知り合いに薦められた「やさしいJava」を買って、そのあとエクリプスの方も買うことにします

59:デフォルトの名無しさん
07/05/31 16:59:22
Oracle9.2 JDBCを利用して更新可能カーソルを宣言、日付列の更新を行うと例外が発生します。
java.sql.SQLException: 内部エラー: Unable to construct a Datum from the specified input
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:1130)
at oracle.sql.SQLUtil.makeDatum(SQLUtil.java:1100)
at oracle.sql.SQLUtil.makeOracleDatum(SQLUtil.java:1583)
at oracle.jdbc.driver.UpdatableResultSet.updateObject(UpdatableResultSet.java:1615)
at oracle.jdbc.driver.UpdatableResultSet.updateDate(UpdatableResultSet.java:1481)
at oracle.jdbc.driver.OracleResultSet.updateDate(OracleResultSet.java:2852)
対処法などありましたら教えていただけないでしょうか。

60:デフォルトの名無しさん
07/05/31 17:06:43
>>59
なんかぐぐるとこういうのがあったりするけど、DB板で聞いたほうがいいかもね。
URLリンク(eai.ittoolbox.com)
聞きなおすときにはOracleとJDBCの正確な版数(たとえば9.2.0.5とかそういうマイナー版数まで含めたもの)も
示したほうが教えてもらえるかも。

61:デフォルトの名無しさん
07/05/31 21:44:44
テスト用と割り切った GUI を提供するような仕組みなりプログラムってないものでしょうか。

単に、開発中に動くようになった部分をメンバーに見せるとき、CUI だとあんまりだってだけなのですが。

極論すれば

public static String executeA();
public static String executeB(String);
public static String executeC(String String);

こんなのを用意したら(引数も戻り値も String で結構)、
パラメータの数分のテキストエリアと、実行ボタンが並ぶ。
戻り値はメッセージボックスでフォーマット無視で表示してくれれば構わないのですが。

62:デフォルトの名無しさん
07/05/31 22:18:44
>>61
引数を配列で渡してGridLayoutかなんかにfor文でグリグリ貼り付ければできそうな気も
するけど…あとはコンポーネント毎にリスナを登録して…actionPerformedの中がちょっと
面倒かな?そうでもないかな?よくわからないや
単なる思い付きです。

63:デフォルトの名無しさん
07/05/31 22:37:50
>>61
javax.swing.JOptionPane 使えば、いくらか似たような事ができそうな気もする。

64:デフォルトの名無しさん
07/05/31 23:01:53
>>61
ある程度の制限をかければ可能ジャマイカ?
というか、JUnitのTestRunnerみたいなのでいけそうだけど。

個人的にはCUIでいいと思うけどなぁ
Eclipseのプラグインでリッチなコンソールを作るのはどうだ?w

65:デフォルトの名無しさん
07/06/01 00:00:13
日本語が含まれているjavaファイルがコンパイル時にエラーになってしまいます・・・。

66:デフォルトの名無しさん
07/06/01 00:13:27
エラーも貼らないで相談ですか

67:デフォルトの名無しさん
07/06/01 00:21:05
>>62-64
やっぱりそんな所と言うか、地道に一つ作ってあとはコピペ
がよさそうですかね。ありがとうございます。

EclipseのRCPは少し考えたのですが、意外と手ごろと言う感じでなかったので。
スタンドアロンでもいけるあたりはいい感じだったのですけど。

68:ニュースナビゲーター
07/06/01 00:31:44

人気の高いニュースをすぐ見よう。
「祭」に、のりおくれるな。

2ちゃんねるニュース速報+ナビ
URLリンク(newsnavi.2ch.net)

WWWブラウザの「お気に入り」や「ブックマーク」に登録しよう。

69:デフォルトの名無しさん
07/06/01 01:36:57
公開鍵と秘密鍵を使用して暗号化、複合化をするメソッドなのですが
いったい何をしているのかよくわからないのでどなたか丁寧なコメントの
書き込みや解説などしてください。お願いします。

public int extMod(int a, int b, int n) {
long ret = a % n;
for(int i=1; i<b; ++i) {
ret = (a * ret) % n;
}
return (int)ret;
}

public int[] encrypt(int e, int n, int[] from) {
int[] to = new int[from.length];
for(int i=0; i<from.length; ++i) {
to[i] = extMod(from[i],e,n);
System.out.println("" + from[i]+" => "+to[i]);
}
return to;
}


70:デフォルトの名無しさん
07/06/01 01:53:46
この程度のプログラムで丁寧に解説するって、見たまんまじゃん。
よくわからないじゃなくてホントはまったくわからないんだろ?

71:デフォルトの名無しさん
07/06/01 02:08:14
まったくといっても過言ではないですね。
すいません。
どうか僕が理解できるように解説してください。お願いします

72:デフォルトの名無しさん
07/06/01 03:19:51
コードが何をするのかがわからないのか、
なんでこのコードで目的を達成できるのかがわからないのか。


73:デフォルトの名無しさん
07/06/01 03:48:23
javaで2つのDVI-Dに画像を表示というかDVI-Dにデータを
送りたいのですがどうすればいいでしょうか?

74:デフォルトの名無しさん
07/06/01 08:50:55
JVM間のメモリ共有って技術的に可能ですか?

親JVM
├──┬──┬─ …
子JVM 子JVM 子JVM …

みたいな構成で。

75:デフォルトの名無しさん
07/06/01 09:30:26
アプレットのテキストエリアに.txtなどのファイルを読み込んで表示させるにはどうすればよいのでしょうか?

76:デフォルトの名無しさん
07/06/01 09:47:34
なんかボタンがあって、
それを押すと、忠告が出るやつの
タグってどういうのですか?
インプット何とかってやつw

77:54
07/06/01 10:29:01
JOptionPane.show~Dialog("-------");色々あるから~は自分で調べてね。

78:デフォルトの名無しさん
07/06/01 10:46:10
>>76
お前のソレはjavaScriptの事じゃね?

79:デフォルトの名無しさん
07/06/01 12:45:23
いままでの中で一番レベルの低いスレになりそうです

80:デフォルトの名無しさん
07/06/01 18:26:13
アプレットのテキストエリアに.txtなどのファイルを読み込んで表示させるにはどうすればよいのでしょうか?
どうしても出来ません
教えてください

81:デフォルトの名無しさん
07/06/01 18:51:29
アプレットが出来ないのか、テキストエリアが出来ないのか、ファイルの読み込みができないのか、権限を与えるのができないのか、まずは状況を説明汁


82:デフォルトの名無しさん
07/06/01 21:03:00
テキストファイルはサーバーにあるの?クライアントにあるの?

83:デフォルトの名無しさん
07/06/01 22:00:52
finally節の使い所教えてください

84:デフォルトの名無しさん
07/06/01 22:03:25
>>83
java.io.Closeable 実装クラスのインスタンスを必ず close() するのに使ったり

85:デフォルトの名無しさん
07/06/01 22:29:22
ファイル入力(1000件) → 処理 → ファイル出力(1000件)

1GBくらいある大容量ファイル(改行無しの固定長)を上記の流れを繰り返すことで処理したいのですが、
skipなどを使用しても、入力ファイルから同じ箇所を何回か読んだりしてうまく処理できません。
ファイル分割入力の方法を教えていただけないでしょうか?

86:デフォルトの名無しさん
07/06/01 22:54:10
String line="";
if(bt==button1){

try{
BufferedReader fin = new BufferedReader(new FileReader("File.txt"));
//String line;
while((line = fin.readLine())!=null){

textArea.setText(line);
// System.out.println(line);
}
fin.close();

}
catch(Exception ee){

System.out.println("読み込みエラー");
System.exit(1);

}
}


このようにしてテキストエリアに"File.txt"の中身を書き込みたいんですが
1行1行上書きされているようで上手くいきません

どなたかいい方法を教えてください

87:デフォルトの名無しさん
07/06/01 23:13:45
>>86
TextArea#appendとかではいけない?

88:デフォルトの名無しさん
07/06/02 01:15:36
>>87
ありがとうございます
出来ました。

89:デフォルトの名無しさん
07/06/02 12:51:25
公開鍵と秘密鍵を使用して暗号化、複合化をするメソッドなのですが
いったい何をしているのかよくわからないのでどなたか丁寧なコメントの
書き込みや解説などしてください。お願いします。

public int extMod(int a, int b, int n) {
long ret = a % n;
for(int i=1; i<b; ++i) {
ret = (a * ret) % n;
}
return (int)ret;
}

public int[] encrypt(int e, int n, int[] from) {
int[] to = new int[from.length];
for(int i=0; i<from.length; ++i) {
to[i] = extMod(from[i],e,n);
System.out.println("" + from[i]+" => "+to[i]);
}
return to;
}


90:デフォルトの名無しさん
07/06/02 13:09:42
>>89
丁寧にいうと、お前には無理。

91:デフォルトの名無しさん
07/06/02 17:11:04
指定した範囲の乱数を取得したいのですが、どのようにしたらよいでしょうか?
例えば2以上6以下の範囲でといった感じです。
お願いします。

92:デフォルトの名無しさん
07/06/02 17:42:28
>>89-90
>>69-72

あと複合化じゃなくて復号な。二重に間違ってる。

93:デフォルトの名無しさん
07/06/02 18:23:23
>>91
えーと「6以下」ってことは6も含むのな?
整数で2, 3, 4, 5, 6のどれかをランダムに取得するなら
int rand = (int)(Math.random() * 5) + 2;
でどうぞ。

実数値で [2, 6) の範囲というのなら、
double rand = Math.random() * 4 + 2;
でいいと思う。


94:デフォルトの名無しさん
07/06/02 23:16:34
(x,y)座標の集団を管理したいのですが、

int[] pos = {x,y} の形で座標を表して、
これをVectorに格納するという形にすると、

vec.addElement(pos);で座標{x,y}を格納した後、
それをを消そうとして、
int[] pos2 = {x,y};
vec.removeElement(pos2);としても
posとpos2が同じと見なされないみたいで、
消えてくれません。

いい方法はないでしょうか?

95:デフォルトの名無しさん
07/06/03 00:03:45
Pointクラスというものがある。

96:デフォルトの名無しさん
07/06/03 00:08:21
配列の代わりにListを使う

97:94
07/06/03 00:39:57
>>95
J2MEなのでありませんでした orz
>>96
String専用Vectorみたいなもの?

結局座標をStringにしてしまいました。

98:デフォルトの名無しさん
07/06/03 00:56:55
専用クラスつくってequalsメソッドをオーバーライド、これだね

99:デフォルトの名無しさん
07/06/03 01:57:19
hashCodeのオーバライドも忘れずに

100:デフォルトの名無しさん
07/06/03 04:47:35
java+swingでsocketを使ってネットワーク認証を行うプログラムを作っているのですが、IP更新をJAVAから行うことはできますか??
認証をとった後、IPを自動的に更新したいのですが検索しても見つけられなかったもので・・・


101:デフォルトの名無しさん
07/06/03 08:21:49
Javaを勉強していく上でJavascriptが必要になるときってありますか?

102:デフォルトの名無しさん
07/06/03 08:25:40
別に

103:デフォルトの名無しさん
07/06/03 08:49:33
Web系が多いから必然的にやることになるわな。
だけど、難しい処理なんてほとんどないから、必要になった時に文法とか関数調べられればそれだけでOKだと思う。

104:デフォルトの名無しさん
07/06/03 10:14:55

 【プログラマーの方々へ】

ageで失礼します。Threadを使う並列処理プログラミングを上手に行う方法を
ご教示ください。

javaのサンプルファイルを見て勉強しますと、「あ、こんなところで
wait();」、「ここでsynchronizedを使うのはなぜ」、「notify();を
わざわざメソッドの最後に書き込むのはどうして」、などの疑問が
噴出します。

C.A.R.ホアの並列処理の教科書を読んで勉強をしたことがあるのですが、
理論と実践は随分違うなと感じます。

実際に現場で並列処理のプログラミングをされていらっしゃる方々、
どうかご教示ください。お願い申し上げます。

105:デフォルトの名無しさん
07/06/03 11:14:53
>>104
Threadでの処理が必要だなと感じたらThreadで処理する。
synchronizedでもwaitでも何でも必要なかったらしない
使わざるを得ない、又は使った方が良いパフォーマンスが得られたからから使うって感じかな。
Threadを使ったものと使わないものを二つ用意してパフォーマンスを比べるってのが理解しやすい思うよ。

106:デフォルトの名無しさん
07/06/03 11:44:21
>>105
レスどうもありがとうございます。

そこの判断に利用できるTOOLは何かありますでしょうか。
スレッドの振る舞いを可視化できるようなモノがあったら使ってみたいの
ですが。

107:デフォルトの名無しさん
07/06/03 14:01:04
Javaでマルチスレッドなプログラミングをやりたいなら
ダグリー共著の少し前に出た本を読むといいよ

108:デフォルトの名無しさん
07/06/03 17:11:48
すみません。初心者なのですが、どうしても分らないので質問させてください。
swingを使っています。

まず、下記のように画像を表示するメソッドを作り、一旦画像を表示させました。

public void imagehyouji(String image){
   label01 = new JLabel(new ImageIcon(image));
   panel02.add(label01);
}

しかし、その後で別の画像の引数を渡してメソッドを呼び出しても、画像が変わらないのです。
このメソッドをどのように改良すれば、メソッドを呼び出すたびに画像を変えられますか?

お手数ですが、どうか教えてください。お願いいたします。

109:デフォルトの名無しさん
07/06/03 17:41:51
>>108
画像をセットするメソッド
JLabel#setIcon(Icon icon)

セットしたらコンテナのvalidate()を呼んで描画を更新する

110:デフォルトの名無しさん
07/06/03 18:12:38
>>109
できたぁあああああああ
ありがとうございました!( TДT)

111:デフォルトの名無しさん
07/06/03 20:41:49
org.apache.commons.httpclient について教えてください。
あるサイトにログインし、トップページを表示するようなプログラムを作ろうとしたのですが、
org.apache.commons.httpclient.HttpMethodDirector isRedirectNeeded
情報: Redirect requested but followRedirects is disabled
と、出てしまいログインすることが出来ませんでした。

処理の流れとしましては
URLリンク(login.hogehoge.xxx) を post送信
↓(ログイン画面を解析して、setParameterにリクエストパラメータをセットし)
URLリンク(login.hogehoge.xxx) を post送信
↓(ここでorg.apache.commons.httpclient.HttpMethodDirector isRedirectNeededと出てしまいます)

PostMethodではsetFollowRedirects(true)にするとエラーになったので、GetMethodに変えて
送信してみましたが、GETリクエストは処理されないのか「パスワード」が違います。のHTMLが返ってきました。


正常な流れだと
URLリンク(login.hogehoge.xxx) を post送信
↓(ログイン画面を解析して、setParameterにリクエストパラメータをセットし)
URLリンク(login.hogehoge.xxx) を post送信
↓(ここで URLリンク(hogehoge.xxx) にリダイレクトするHTMLが返ってくるはずです)
URLリンク(hogehoge.xxx) に リダイレクト送信

になると思うのです。 ヘッダー情報を細かく開示しないと判断できないでしょうか?^^;
Redirect処理の方法が分からなく躓いていると思うのですが、どなたかご教示願います。

112:デフォルトの名無しさん
07/06/03 20:43:22
あぁ、すみません、アンカー付いちゃった><

113:デフォルトの名無しさん
07/06/03 21:50:53
誰か…>>74について…

114:デフォルトの名無しさん
07/06/03 22:14:09
>>113
必要性があると思えない。
プロセス(JVM)を分けたいならば、シリアライズなり方法は幾らでもあるだろ?
マルチスレッドじゃダメなのか?
どうしてVMを分けて同じメモリを共有したいんだ?
で、だれ(どのVM)がGCするんだ?

質問の意図が解らないから誰も答えないんだよ。

115:111
07/06/03 22:14:35
org.apache.commons.httpclient についてですが、
違う方法(HttpURLConnection)を使ったらできました。

先ほどエラーになった個所では、 ●●へジャンプします。って リダイレクトする
htmlが取得できました。
その後トップページにリダイレクトしたら ログイン後の画面になってました。

116:デフォルトの名無しさん
07/06/03 22:51:50
>>114
何を興奮してるんです?
可能かどうか聞いただけなんですが

117:デフォルトの名無しさん
07/06/03 23:03:20
>>116
随分と偉そうだな

118:デフォルトの名無しさん
07/06/03 23:20:08
>>113
おまえには無理

119:デフォルトの名無しさん
07/06/03 23:24:57
>>118
的確な答え、サンクス

120:webmaster@気まぐれアナスイ
07/06/03 23:30:07
!(Φ_Φ+)
確かに構成図だけでは何をしようとしているか理解する事は難しいです。
構成図のみで理解し使用目的が分かればprogram.上bug.は起こらないと思います。


121:デフォルトの名無しさん
07/06/03 23:34:30
>>113
Cなりなんなりでメモリを共有する親子プロセスを作って、
それぞれのプロセスでJNIを経由してJVM起動すれば
共有できるんじゃないかな。

122:デフォルトの名無しさん
07/06/03 23:37:41
116ですが
>>114さん失礼しました

そうですね。
普通ならマルチスレッドでやるような事を
無理矢理わざわざJVMのマルチプロセスで実現することは可能なのかなと
そういう事でした。

重ねて、失敬しました

123:デフォルトの名無しさん
07/06/03 23:41:01
>>121
やはり、JNI絡みになりますかね。
なんとなく理解しました。
ありがとうございます

124:デフォルトの名無しさん
07/06/04 01:58:38
>>74
Java共有クラス
URLリンク(www-06.ibm.com)
アプリケーションで実装したという話は聞いたことがない。

125:デフォルトの名無しさん
07/06/04 02:36:01
どなたか100もよろしくお願いします。

126:デフォルトの名無しさん
07/06/04 07:38:29
>>125
IP更新の意味が誰も解らないと思われ

127:デフォルトの名無しさん
07/06/04 07:40:51
Hibernateで値を変えていないのに更新されてしまうことがあります。
なぜですかね?

128:デフォルトの名無しさん
07/06/04 08:02:06
>>127
なんの値が更新されてしまうんだ?w

129:デフォルトの名無しさん
07/06/04 11:06:20
質問です

Java Runtime Environment Version 6 Update 1(最新版?)をインストールしようとすると

「インストールパッケージを開くことができませんでした。パッケージが
存在し、アクセスできることを確認してください。または、アプリケーションベンダに
問い合わせ、このパッケージが有効なWindowsイントーラパッケージであること
確認してください。」


と言う説明がでました。板違いかもしれませんが誰か詳しい方、初心者に教えて下さい。
宜しくお願いします。



130:デフォルトの名無しさん
07/06/04 11:22:46
>>129
教えて下さいって書いてあるけど、何を教えて欲しいの?

131:デフォルトの名無しさん
07/06/04 11:31:03
>>130

すいません。レスありがとうございます。

インストールしようとするとあのようなメッセージがでて
うまくインストールできません。何か解決方法があれば教えて頂きたいです。

132: ◆uzjW2GOr6w
07/06/04 11:48:04
なんかスレ違い気味な気もしますが、半分Javaの話なので
ここで質問させてください。

JavaのWebサービスとVB.NETのクライアント間で
SOAPを使った通信について知りたいのですが、
参考になるサイトや書籍を教えていただけますか?
ここでレクチャーして頂けるならそれでもOKです。

Javaでシリアライズした物と.NETでシリアライズした物では
書式が変わってきますよね。
(Javaはstrinとかintとかも全部書き出すけれど、
 .NETの場合は変数名だけが残って型の情報が失われる)
このあたりをどう吸収すればよいか知りたいのです。
よろしくお願いします。


133:デフォルトの名無しさん
07/06/04 12:41:12
>>132
その差異を吸収するのがSOAP。
自分で決めたフォーマットでやりとりすればいいだけ。
片寄せするのが手っ取り早いけどね。
当然ながら、全ての変換が上手くいくわけない。

134:デフォルトの名無しさん
07/06/04 12:44:03
>>131
インストールしたJREと自身のOSはマッチしているか確認

135:デフォルトの名無しさん
07/06/04 12:46:08
通信内容は言語に依存しない。
吸収も何もXMLの定義が十分なら問題ないはず。

136: ◆uzjW2GOr6w
07/06/04 16:17:03
レスありがとうございます。
実はSOAPについてもあまり理解できておらず、
Webを見ても求めている情報が出てこないのですが、
XMLEncoder.writeObjectと同じような感じで
SOAPを吐けるのでしょうか?

それともまずWSDLありきなのでしょうか?
よろしくお願いします。

137:デフォルトの名無しさん
07/06/04 17:01:58
>>136
定義からオブジェクト、オブジェクトから定義どちらでも可能。

138:デフォルトの名無しさん
07/06/04 17:31:21
昔、生SOAPを直接使わずAxis使って、
Javaクライアントから⇔VB.NETのWebサービスの呼び出しをやったことがある。
AxisのJSDL2Javaが自動生成したコードで何とかなったよ。

と思ったら、この場合は逆なのか…
Webサービス呼び出しのコードは
.NETも、WSDLから自動生成できたんじゃないかったっけ?

139:デフォルトの名無しさん
07/06/04 17:43:07
Java1.4.2で、デリゲートや関数ポインタって使えないですよね?


140:デフォルトの名無しさん
07/06/04 17:57:51
ない

141:デフォルトの名無しさん
07/06/04 19:14:38
>>140
ども。

142:デフォルトの名無しさん
07/06/04 21:42:49
すいませんアプレット初心者なのですが
”全て選択”や”コピー”といったボタンを作成して
テキストエリアなどに書き込まれた文章をコピーするには
どうやって作ればいいのでしょうか?




143:デフォルトの名無しさん
07/06/04 21:49:41
>>142
new JButton("全て選択");
new JButton("コピー");

144:100
07/06/04 21:57:28
>>126
わかりにくくてすみません
Windowsでいうところのipconfig /renewのことです


145:デフォルトの名無しさん
07/06/04 22:04:46
>>142
getText()

146:デフォルトの名無しさん
07/06/04 22:10:20
>>144
標準APIでは無理。

147:デフォルトの名無しさん
07/06/04 22:22:34
>>143
ボタンを作ってそのボタンが押されたときというif文の
中に何をするかの処理を書かなくてはいけない問い事は
わかります。その何をするかの処理のところで「全て選択」や
「コピー」という処理をさせるにはどのように書けばよいのでしょうか?

148:デフォルトの名無しさん
07/06/04 23:31:59
>>147
全て選択:
TextComponent#selectAll()
JTextComponent#selectAll()

コピー:
StringSelection ss = new StringSelection(TextComponent#getSelectedText())
ClipboardOwner onwer = ...;//必要に応じて適当に。
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, owner);

みたいな感じでできると思うけど。

149:奏
07/06/05 04:08:25
穴埋めのプリントなのですが、自分なりに考えてもどうしてもわからないところがあるので、ご指導よろしくお願いします。

問題はコマンドから暗号化する文字列と暗号化鍵値key(8進数)を指定し、その文字列を暗号化鍵値で暗号化する。
暗号化の方法は文字列の各文字に暗号鍵値を加算し、暗号文字列にする。また暗号文字列を数値化して暗号値の配列に格納し、その暗号値を再び元の文字列に復号するという問題です。
自分で埋めた場所以外は【】で表示しているので、どなたがアドバイスよろしくお願いします。



150:奏
07/06/05 04:10:37

public class Angou{
public static void main(String []arg){
int key=Integer.parseInt(arg[1],8);
int []angti=new int[arg[0].length()];
String angou=toAngou(arg[0],key,angti);
String fukugo=toFukugo(angti,key);
}
public static String toAngou(String str,int kye,int 【】){
char []angmoji=【】;
for(int i=0;i<angmoji.length;i++){
angti[i]=【】+key;
angmoji[i]=(char)angti[i];
}
return new 【】;
}
public static String toFukugou(int 【】,int key){
char []fukumoji=【】;
for(int i=0;i<fukumoji.length;i++){
fukumoji[i]=(char)【】-key);
}
return new 【】;
}
}


151:デフォルトの名無しさん
07/06/05 05:10:06
自分に代わって穴埋めを押し付けているのではなくアドバイスが欲しいってこと?

授業をよく思い出し参考書や配布物をしっかりと読み直しましょう
友達と相談し合ったり先生に質問するのもいいでしょう
int kye,のような打ち間違いにも気をつけて全てを埋めたら
念のためコンパイルして正しく実行されるか確認しましょう

152:デフォルトの名無しさん
07/06/05 05:13:21
>>149
宿題は宿題スレへ

★★ Java の宿題ここで答えます Part 61 ★★
スレリンク(tech板)

153:デフォルトの名無しさん
07/06/05 12:14:51
staticっていう修飾子は何のためにあるのですか?。
無くてもいいように思うのですが。

154:デフォルトの名無しさん
07/06/05 12:20:13
オブジェクト指向を勉強すればわかる

155:デフォルトの名無しさん
07/06/05 12:30:03
Math とか static 無かったらウザいことに

156:デフォルトの名無しさん
07/06/05 12:40:11
無くてもいいけどあると便利。
便利だからどんどん使うと大変なことになるけど。

157:デフォルトの名無しさん
07/06/05 13:08:12
>>153 悪魔で俺の見解だ、他の人は知らん。例えばDBのConnectionを拾得する
メソッドがある。DBManager#getPoolableConnectionとしよう。
他のクラスでDBManagerを通じてDBにアクセスしたい時getPoolableConnectionを
staticメソッドにしておけば、わざわざインスタンスを作る必要がないわけだ。
後は分かるな。

158:デフォルトの名無しさん
07/06/05 13:49:47
そんなもんシングルトンパターンでいいじゃん。

159:デフォルトの名無しさん
07/06/05 14:09:30
シングルトンなら結局static使ってんじゃん

160:デフォルトの名無しさん
07/06/05 14:09:35
static使わずに、どうやってシングルトンするつもりなんだろ……

161:デフォルトの名無しさん
07/06/05 15:48:50
下記サイトではビーンクラスのインスタンスをバイナリでファイルに書き出して
それを読み込んでいますが、このファイルの中に書かれているバイナリを
そのままreturnすることは可能ですか?
可能であれば方法を教えていただきたいです。
URLリンク(www.geocities.co.jp)
FileOutputStreamやObjectOutputStreamをreturnしてみましたが
バイナリが返っている様子はありませんでした。


162:デフォルトの名無しさん
07/06/05 17:29:42
>>161
returnする側のメソッドからファイルデータを返すなら、
ストリームからreadしたものを返せばいいんじゃね?
ストリームそのものをreturnして、
そのストリームを使って呼び出し側でreadするなら、
returnする側のメソッド内で既にreadしてるとかcloseしてしまってるかに注意。

163:デフォルトの名無しさん
07/06/05 17:45:06
nestedタグの属性の指定について質問させて下さい。

■質問内容
以下のようなクラスの値をJSPで表示する場合
nestedのproperty指定はどのようにすればよいのでしょうか?

■test.java
private Vector vec;
public Vector getVec() { return vec; }
public void setVec(Vector vec) { this.vec = vec; }

■test.java内の値vecの中身
vec
+--Vector[0]--自作Formクラス[0]--プロパティ1
| +-プロパティ2
|
+--Vector[1]--自作Formクラス[0]--プロパティ1
| +-プロパティ2
|
+--自作Formクラス[1]--プロパティ1
+-プロパティ2

■jsp
<nested:iterate property="vec">   ←一番最初のnestedのプロパティは「test.javaのvec」で良いが
<nested:iterate property="???"> ←次のnestedのプロパティはVectorであり、明示的なプロパティ名を持たない
<tr>
<td><nested:text property="プロパティ1" /></td>
<td><nested:text property="プロパティ2" /></td>
</tr>
</nested:iterate>
</nested:iterate>

164:デフォルトの名無しさん
07/06/05 18:50:29
スレ違いじゃねぇか?

165:163
07/06/05 18:57:05
>>164
wikiで関連スレは確認したつもりですが、他に適当なスレはありますでしょうか?
宿題スレとかでしょうか?

166:デフォルトの名無しさん
07/06/05 19:28:29
URLリンク(www2.2ch.net)
ここが良いんでない?

167:デフォルトの名無しさん
07/06/05 19:58:58
JSP内に
<INPUT TYPE='text' NAME='text1' VALUE='テキスト'>
があります。

doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException

のrequestとresponseは具体的に、何から値をもらっているのでしょうか?


168:デフォルトの名無しさん
07/06/05 20:28:07
あら、リンク張ったつもりが2chのトップに出る。悪い。

169:デフォルトの名無しさん
07/06/05 20:37:35
プログラム板にframe知らないやつがいるのか・・・

170:デフォルトの名無しさん
07/06/05 20:55:13
>>167
サーブレットエンジンから。
さらにいえば、HTTPリクエストから。
HTTPリクエストはあなたのブラウザから値をもらう。

入門書でも買ってこいや

171:デフォルトの名無しさん
07/06/05 22:48:04
staticな変数は何となくわかってきたのですが、staticなメソッドやクラスが
どうして必要なのかわかりません。
例えばMathクラスのメソッドがどうしてstaticなのか?。
もしstaticでなければどううざいのか?。
インスタンスを生成するのってそんなに手間がかかるものなんでしょうか?。


172:デフォルトの名無しさん
07/06/05 22:59:56
>>171
それはインスタンスというものを理解する必要があるね。
インスタンスは、それぞれ独立して個別の値を保持する実体だ。
つまり、いつ何時呼び出しても同じ動作をするものは、
わざわざインスタンスにする意味がないってこった。

173:デフォルトの名無しさん
07/06/05 23:02:56
・インスタンスがメモリを消費
・インスタンスを作らないと使えない

以上に問題を感じなければ普通のメソッドでもいいんじゃね?
ログ出力クラスとかも毎回インスタンス作るのか?

174:デフォルトの名無しさん
07/06/05 23:19:42
JavaDocを見るとき、調べる対象のメソッドがインスタンスメソッドかクラスメソッドか判るだけで
どんなことをするメソッドなのかあたりが付くようになる。
なのでインスタンスを持つ必要がないメソッドは極力staticを付けた方が良い。

175:デフォルトの名無しさん
07/06/06 00:06:35
>>174
>インスタンスを持つ必要がないメソッドは極力staticを付けた方が良い。
そして地獄を見る

176:デフォルトの名無しさん
07/06/06 00:48:57
>>175
どうして?

177:デフォルトの名無しさん
07/06/06 02:20:40
>>176
きっと、想像できなかった仕様変更があって、
内部状態に応じて動作が変わるようにしなければいけなくなるんだろう。

たとえば、テストモードかどうかをオブジェクト内部に持つような
仕様に急に変わって、テストモードだったら(本番データを使えないので)
こっちの方法で計算するようにしてね、と言われるとか。

178:デフォルトの名無しさん
07/06/06 02:32:36
それstaticぜんぜん関係ないじゃん。

179:デフォルトの名無しさん
07/06/06 05:44:39
>>174
地獄へ落ちるに同意。
本当にインスタンスが不要であることが確信できるような場合にのみstaticを付けるが正しい。

インスタンスをもつ必要がない、というガイドラインだとデータクラス以外は全部staticでいいじゃんて話になるし、実際にそういうプロジェクトの経験もある。

180:デフォルトの名無しさん
07/06/06 06:45:35
必要のない作りこみはプログラムを無駄に複雑にし、不具合を呼び込み拡張を困難にする。
将来的に使われなかったら無駄になるし、
使われるときになって実際に必要とされる機能との相違があれば、結局作り直し。
static で済むなら static で作り、必要に応じてリファクタリングする。

しかし、定数でないstaticなフィールドについては、
単体テストで弊害になるのでできるだけやめた方がいい希ガス

181:163
07/06/06 09:06:00
>>168
だよね…。厨はカエレ!的な意味かと思ったよ…。
で、正しく何スレでしょうか…?

182:デフォルトの名無しさん
07/06/06 09:31:23
>>180
staticでなくて済むならば非staticにして作り、必要に応じてリファクタリングでも良いかと・・・

183:デフォルトの名無しさん
07/06/06 09:37:33
>>181
Tomcat+jsp+struts何たらってスレでも1000行ってるから次スレで
スレリンク(tech板:1001-1100番)

184:デフォルトの名無しさん
07/06/06 09:40:40
スレ名変更してた。
java+webフレームワーク
スレリンク(tech板)

185:181
07/06/06 09:46:53
>>183
>>184
誘導ありがとうございました!次スレまで調べていただいて感謝です!

186:デフォルトの名無しさん
07/06/06 11:00:26
>>179
>インスタンスをもつ必要がない、というガイドラインだとデータクラス以外は全部staticでいいじゃんて話になる

ならないだろ。データクラス以外はインスタンス化しないのか?

187:デフォルトの名無しさん
07/06/06 11:04:56
mein(String[] args)メソッドで呼び出すときは他クラスにメソッド配置しないと
全部staticなメソッドになって地獄見た;

188:デフォルトの名無しさん
07/06/06 11:12:54
地獄見そうなメソッドだなw

189:デフォルトの名無しさん
07/06/06 11:57:59
>>186
そういうプロジェクトを少なくとも2つ見た事あるぞ。
自分は追加要因(火消し)で入ったもんだから、もはや手遅れでそのルールに従ったけど、結局はプロジェクトは両方とも破綻

190:デフォルトの名無しさん
07/06/06 12:04:28
具体例が無いからどっちが良いとは言えんな。
どっちにしたって地獄見るのは設計がダメだったって事なんだろうし。


191:デフォルトの名無しさん
07/06/06 12:26:10
Javaで、Windowsのファイル毎の
関連付けアプリケーションのパスを取得する方法ってありますか?

192:デフォルトの名無しさん
07/06/06 12:52:20
>>191
Windowsのシステムに関わる話なので当然Windows専用になってしまうが、
cmdの内部コマンドのassocとftypeをJavaから呼び出してやればいいのでは?
たとえば.txtなら、
assoc .txtで.txt=hogehogeが得られたら、
ftype hogehogeでhogehoge=関連付けアプリケーションのパスとか引数の与え方、になる。

193:192
07/06/06 12:54:42
忘れてた。
ftypeで得られるパスには環境変数名も含まれる場合も多いだろうから、
環境変数を展開する処理も必要。

194:デフォルトの名無しさん
07/06/06 14:29:58
教えていただきたいのですが、あるディレクトリにファイルを
コピーする時はどうすればいいのでしょうか?

protected void CopyFiles(IProject project){
//コペーする絶対パスが設定されてるファイル
File file = projectPage.files;
//ファイルがコペーされるディレクトリ + \
IPath newDir = project.getLocation().addTrailingSeparator();
//fileをnewDirにコペーする
}

195:デフォルトの名無しさん
07/06/06 14:44:01
>>194
FileInputStream と FileOutputStreamを使え
ファイルのコピーなんて、教科書に載ってないか?

196:デフォルトの名無しさん
07/06/06 15:33:51
>>195

アーッ!
すいません。ど忘れしてました。ありがとうございます。

197:デフォルトの名無しさん
07/06/06 15:37:32
教えていただきたいのですが、eclipse3.2.2上で
lombozを認識してくれないのですが、原因はわかりますか?

198:デフォルトの名無しさん
07/06/06 17:44:08
いまからプログラミングの勉強したいんですが初心者は何から始めるのがお奨めですか?就職に役立てるような技術が欲しい

199:デフォルトの名無しさん
07/06/06 18:12:22
>>198
医師・看護師・薬剤師・介護福祉士がちょうおすすめ。
仕事はプログラマ並みかそれ以上にキツいけど。

200:デフォルトの名無しさん
07/06/06 18:27:46
>医師・看護師・薬剤師・介護福祉士がちょうおすすめ。
この仕事の人にプログラミングの技術がいるってことですか?

201:デフォルトの名無しさん
07/06/06 18:41:13
>>200
プログラミングは趣味で。

202:デフォルトの名無しさん
07/06/06 19:41:07
>>199
その選択ができるのは進学前の高校生までだろ。
>>198は大学生くさいから諦めろ。
公務員試験の勉強をしつつ、経理の勉強でもしとけ。
プログラミングは趣味で。

203:デフォルトの名無しさん
07/06/06 19:49:20
2流以下の大学の学生がプログラム関係の資格を持っていると
旧帝大で留年してるような奴と対等になれる。

ぶっちゃけ資格は何でもいい。

204:デフォルトの名無しさん
07/06/06 20:16:31
勉強は二の次にして、これをネタに
あちこちの勉強会に出席してコネを作ってくのがいいんじゃまいか

205:デフォルトの名無しさん
07/06/06 23:21:20
エクリプス上で実行できたクラスファイルがバッチ上で実行が出来ずに困っています。
カレントディレクトリはクラスファイルの場所を指定しています。

ためしにjavacとjavaのバージョンを確認してみたところ、
C:\Program Files\eclipse\workspace\KBSYS\test>javac -J-version
java version "1.5.0_11"

C:\Program Files\eclipse\workspace\KBSYS\test>java -version
java version "1.6.0_01"

と出力されました。
どうやらコンパイラのバージョンより実行環境のバージョンが新しくなっていしまっているようなのですが、
実行環境をコンパイラのバージョンにあわせるにはどのような設定をしたらよいのでしょうか?


206:デフォルトの名無しさん
07/06/06 23:30:19
>>187
mainの中で自分自身をnewしろよ。。。

207:205
07/06/06 23:31:35
ちなみにjre1.5.0_11\bin
は持っているようです。
サンマイクロもページ分かりにくい・・・。
もう一回古いバージョンを落とそうにも場所が分からず・・・。


208:デフォルトの名無しさん
07/06/06 23:35:53
>>205
Eclipseは自前のコンパイラを使うからjavacのバージョンは関係ない。
そもそも1.6のJREは-target 1.5でコンパイルしたクラスファイルを実行できる。
まず実行できなかったときの例外を確認するのが先。

209:205
07/06/06 23:42:49
>>206
ありがとうございます!
まず、実行時のエラーですが、(クラスファイル名はtesta)以下のような出力になります。
C:\Program Files\eclipse\workspace\KBSYS\test>java testa
Exception in thread "main" java.lang.NoClassDefFoundError: testa (wrong name: test/testa)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)


ちなみに、ユーザー環境変数のPATHは、以下のようにjavac.exeのあるディレクトリを指定しています。
C:\Program Files\Java\jdk1.5.0_11\bin

210:208
07/06/06 23:45:05
>>209 >>1 死ねよ。

211:デフォルトの名無しさん
07/06/06 23:47:55
>>205
>>208
もしコンパイラの問題だとしたら、
プロジェクトを右クリックしてプロパティを開く。
Java Build Path
という項目があるからTabの
Libraries
を選択して、JRE System Libraryをダブルクリックすれば
どのコンパイラが利用されているかわかる。

212:デフォルトの名無しさん
07/06/06 23:48:20
親切な人が豹変したw

213:デフォルトの名無しさん
07/06/06 23:56:16
これで満足?てかおんなじ人が質問してるのね。。。
public class testa {
public static void main(String[] args) {
testa inst = new testa();
inst.non_static_method();
}

public testa() {
}

public void non_static_method() {
System.out.println("hahaha");
}
}


214:デフォルトの名無しさん
07/06/07 00:00:04
>>192ありがとうございます!大変助かりました。
ひどいコードだと思いますが誰かの役にたつかもなので一応かいておきます。(環境変数名の解決はまだです)

static String ExePath(String FileName){

String epath="";

try{
//Runtime runexe = Runtime.getRuntime();

Process process = Runtime.getRuntime().exec("cmd /c assoc " + FileName.substring(FileName.lastIndexOf(".")));
InputStream is = process.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line, line2;
line = br.readLine();
System.out.println(line2 = line.substring(line.indexOf("=")+1));

Process process1 = Runtime.getRuntime().exec("cmd /c ftype " + line2);
InputStream is1 = process1.getInputStream();
BufferedReader br1 = new BufferedReader(new InputStreamReader(is1));

epath = br1.readLine();
epath = epath.substring(epath.indexOf("=")+1);
System.out.println(epath = epath.substring(0, epath.lastIndexOf(" ")));

} catch (Exception es) {
es.printStackTrace();
}

return epath;
}

215:デフォルトの名無しさん
07/06/07 00:03:48
abstractクラスMonsterには、Vampire,Werewolf,Zombieの三つの有形サブクラスがあります。各種のモンスターを六体作成し、1次元配列に格納しなさい。ループを使ってそれぞれのモンスターの種類を表示しなさい。
abstract class Monster {
public String toString() {
return getClass().getName();
}
}
class Vampire extends Monster {}
class Werewolf extends Monster {}
class Zombie extends Monster {}
class MonsterTypes {
static int NUMMONSTERS = 6;
public static void main(String args[]) {
Monster monsters[] = new Monster[NUMMONSTERS];
monsters[0] = new Zombie();
monsters[1] = new Vampire();
monsters[2] = new Werewolf();
monsters[3] = new Zombie();
monsters[4] = new Werewolf();
monsters[5] = new Vampire();
for(int i = 0; i < NUMMONSTERS; i++)
System.out.println(monsters[i]);
}
}
実行結果
Zombie
Vampire
Werewolf
Zombie
Werewolf
Vampire

このプログラムに則してポリモーフィズムと動的ディスパッチについて説明してほしいです。お願いします。

216:205
07/06/07 00:20:34
親切にありがとうございます。
ここへの質問は初めてです。

>>213様のソースを実行してみたのですが、エクリプス上では想定通りの結果でしたが
コマンドラインからの結果は全く変わりませんでした・・・。
(コマンドラインは再起動しました)
staticでは無いメソッドを追加しても変わらない。う~ん・・・。

javacとjavaのパスは通っているみたいですし、set CLASSPATH=%CLASSPATH%;.
をしても変化がありませぬ。

エクリプスのコンパイラは、標準のものを設定してみました。jre1.5.0_11です。

217:デフォルトの名無しさん
07/06/07 00:24:09
だからstaticもコンパイラも関係ないって。>>210が切れるのも無理はない。

218:205
07/06/07 00:46:02
クラスパスのオプションが必要かと思って以下の通り実行しても
結果は変わりません・・・。
java -classpath "C:\Program Files\eclipse\workspace\KBSYS\test" testa

ただ、コマンド上でのコンパイルは成功します。classファイルのタイムスタンプも変化します。

>>1や各種リンクを一昨日から散々あたっているのですが、原因が・・・。
何か、根本的で単純な間違えをしていそうな気もするのですが・・・。

219:213
07/06/07 00:57:50
>>216
勘違いしているようなので
213のソースコードは>>187へのレス。

ただ213のソースコードが動かないとするとバージョンの違いではない。
今からやれることはだね、
1. ファイル名とクラス名が一致しているか確認(test.javaでclass testaとかしてないか)
2. java -cp . testaを試す
3. DOS窓じゃなくcygwinならセミコロンの代わりにコロンで区切ってみる
4. さっぱりわからんからjdkの再インストール


220:213
07/06/07 01:13:05
わかった。。。
(wrong name: test/testa) ← なんでpackage化されてるんだよ!

java test.testa

でいけない?

221:デフォルトの名無しさん
07/06/07 01:16:35
プロジェクト名がKBSYSなんでしょ。
そしたらtestはパッケージなんじゃねえの?

cd "C:\Program Files\eclipse\workspace\KBSYS"
javac test\testa.java
java test.testa

これでどうよ?


222:221
07/06/07 01:17:54
>>220
うわ、かぶった。すまん

223:213
07/06/07 01:27:30
>>221
どもです。。。
たぶんtestディレクトリの一個上の階層で
やるべき作業がわからなくて、結果が同じです、
と言われることを考えたら、全部書くべきだった orz

224:デフォルトの名無しさん
07/06/07 01:31:08
え、動いたの?動いてないの?

225:デフォルトの名無しさん
07/06/07 01:48:28
誰か223を英訳してくれ

226:デフォルトの名無しさん
07/06/07 01:52:58
JAVAアプレットでTextAreaを使うと.append(string)でテキストを追加できますが
TextComponentを使うと.setText(string)で書き込む事は出来ますが全て上書きに
なってしまいます。TextComponentで追記するにはどうすればいいのでしょうか?

227:デフォルトの名無しさん
07/06/07 02:04:36
>>225
Thanks, >>221
Maybe, the questioner will be failed again
and say the same output.
Because the execution should be in the upper directory.
I should explain everything.

228:デフォルトの名無しさん
07/06/07 02:08:23
>>226
敢えてやるならgetStringでとりだして文字列追加してsetString。
素直にTextArea使った方が早くね?

229:デフォルトの名無しさん
07/06/07 04:10:16
public class Test {
public static void main (String[] args)
{
String str = "t u"; //tの後に空白(スペース)2回
String[] token = str.split(" ");  //空白で文字列を分ける

for (int i=0; i<token.length; i++) {
if(token[i] != " ")  //文字列が空白でないとき
System.out.println(token[i]);
}
}
}


というプログラムなんですが、実行結果が
t

u
となり、if(token[i] != " ")がうまく作動してくれないのか、空白を認知してくれません。
実行結果が
t
u
となるようにしたいのですが、どうしたらいいのでしょうか?
初心者なんでよろしくお願いします。

あと、strを "u(t" として、String[] token = str.split("(");
とするとエラーが出るのですが、それはもともと"("が対応してないからでしょうか?

230:229
07/06/07 04:12:50
>>229のはインデントがうまくいってないので補足です。
str.split(" ") ←空白1個でsplitしています。
よろしくおねがいします。

231:229
07/06/07 04:25:58
すいません、自己解決しました。

まさかと思い
if(token[i].length() != 0)
とするとちゃんと
t
u
になりました。

空白は文字としてカウントされないんでしょうか?
でもそしたらsplit(" ")でスプリットされないんでは・・・。
なんか解決できたけどしっくりこないです。

232:デフォルトの名無しさん
07/06/07 04:38:13
>>229-230
>>1読め。
それから API 仕様も読め。java.lang.String#split()

とりあえず
    if(token[i] != " ")  //文字列が空白でないとき

    if(!("".equals(token[i])))  //文字列が空白でないとき

に直せば期待する動きになると思う。

> あと、strを "u(t" として、String[] token = str.split("(");

この場合は
   String[] token = str.split("\\(");
とする必要がある。


233:229
07/06/07 05:04:06
>>232
あ、stringに==使ってたんだ…。超初歩的な間違いですねorz
すいません、ご指摘ありがとうございます。

あと、”\\(”の件ですが、\\の意味についてググってみたら
”(”は特別な文字で\\はエスケープ文字といってそれを識別してくれる役割をもつみたいですね。

とても勉強になりました。ありがとうございます。

234:デフォルトの名無しさん
07/06/07 10:38:07
>>226
回答ありがとうございます。
僕は自分で作成したアプレットのテキストエリアの様なものに
BufferedReader fin = new BufferedReader(new FileReader("File.txt"));
while((line = fin.readLine())!=null){
みたいに.txtファイルを読み込んでそれを自分で作成したボタン
"すべて選択"、"コピー"という2つのボタンでコピーしどこにでも貼り付けれるような
状態に出来るGUIを作りたいのですがどうすればよいのでしょうか?
getString()で取り出してsetText()で追加というやりかたがうまくいかなかったのですが
getStringが使えなかったのでgetTextでやってみたのですが・・・
どうすればいいのでしょうか?よろしかったら例を挙げて教えていただけると助かります。

235:デフォルトの名無しさん
07/06/07 13:28:53
入力した数字を時間Aとして認識して、
その入力された時間Aの12600000ミリ秒後は何時何分(時間B)なのか、
更に時間Bの12600000ミリ秒後は何時何分で更にその12600000ミリ秒後は以下ループという風に作りたいのですが、
入力された数字を時間として取り扱うにはどうしたらいいのか困っています。

たとえばFormなんかで
<INPUT type="text" name="text1">時<INPUT type="text" name="text2">分で入力します。
と表記して24時間表記で時間を入力させる(例01:15)として、それを午前1時15分だという風に解釈させる方法がみつからないのですが、どうしたらいいでしょう?




236:デフォルトの名無しさん
07/06/07 13:38:59
Calendar

237:デフォルトの名無しさん
07/06/07 13:55:29
ノートパソコンにJavaをいれたいのですがどうすればいいですか?
共有ソフトが使えません。

238:デフォルトの名無しさん
07/06/07 13:57:35
開発環境一式をCDなりDVDに焼いてノートパソコンにインストールする

239:デフォルトの名無しさん
07/06/07 16:13:10
>>237
共有ソフトという謎のモノに詳しい人に聞きなさない

240:デフォルトの名無しさん
07/06/07 16:39:33
winrarとかいうヤツ

241:デフォルトの名無しさん
07/06/07 17:39:19
今日からJAVAをはじめようと思ってNetBeansをインストールしたのですが、
何をどうすればいいのか良く分かりません。とりあえずプロジェクトなるものを作って、
出来たMain.javaにネットから持ってきたHelloWorldの表示プログラムを貼り付けたのですが、
実行してみるとエラー?かなんかで実行できません。しかも文字化けしてるし・・・。
Cannot find nbproject/build-impl.xml imported from E:\a??a?-a?°a?ca??a
みたいな感じなのですが・・・。助けてください

242:デフォルトの名無しさん
07/06/07 17:51:45
>>241
スレリンク(tech板)l50

243:デフォルトの名無しさん
07/06/07 17:54:09
そっちで聞けって事ですね!
ありがとでう

244:デフォルトの名無しさん
07/06/07 19:06:17
GUIの左上のアイコン(コーヒーカップの絵)って変えられないんですか?

245:デフォルトの名無しさん
07/06/07 20:27:18
>>244
java.awt.Window, java.awt.Frame,javax.swing.JFrame,javax.swing.JWindow
あたりの
setIconImage()
setIconImages()
かな?

246:デフォルトの名無しさん
07/06/07 21:36:36
>>245
詳しくありがとうございます
変更できました

247:デフォルトの名無しさん
07/06/07 22:03:17
JTableの列にJButtonをいくつか描画して、それぞれのイベントリスナを実装しました。
まず手始めに、そのボタンをクリックするとコンソールに
そのボタンが存在するrowを表示するもので試し成功しました。
次はボタンが押されたら、そのボタンが存在する行を削除するものを試しましたが、
消せたり消せなかったりします。消せないときはボタンとしての機能が
完全に止まっていてイベントすら発生しません。
原因がさっぱりでわかりません。



248:デフォルトの名無しさん
07/06/08 07:43:48
ソースもなければエラーメッセージも無しか、ゆとりは凄いな。

249:247
07/06/08 08:14:31
すいません。携帯からだったもんで。
そして今もまた携帯からなんで出直します。


250:デフォルトの名無しさん
07/06/08 10:12:36
質問です。
テキストフィールドに入力された文字列がプログラム中で指定されている文字列と正しいかどうか判定するには、
どう記述したらいいですか?

251:デフォルトの名無しさん
07/06/08 10:16:11
>>250
>>1

252:デフォルトの名無しさん
07/06/08 10:18:22
>>250
<input type="text" name="hogehoge" value="" />

request.getParameter( "hogehoge" ).equals( "tashiro" )

253:デフォルトの名無しさん
07/06/08 10:59:45
SwingUtilities.invokeLater()を使うのが推奨されているのは
setVisible()のほかにどのような処理がありますか?

254:デフォルトの名無しさん
07/06/08 11:06:18
>>253
URLリンク(java.sun.com)(java.lang.Runnable)
>このメソッドは、アプリケーションスレッドが GUI を更新する必要があるときに使用されます。

255:デフォルトの名無しさん
07/06/08 11:17:36
>>254
具体的にはどういうときですか?

256:デフォルトの名無しさん
07/06/08 13:04:57
>>234
お願いします
誰か助けてください

257:デフォルトの名無しさん
07/06/08 13:38:24
>>256
つ やさしいJava

258:デフォルトの名無しさん
07/06/08 15:00:58
現在1つのthreadを使って、start()やsuspend()でアニメーションを作り停止・再開をしているのですが、
停止したアニメーションを初期状態の位置に戻すにはどのようにしたらよろしいでしょうか?

[停止]ボタンを押すとint a=1されます。
で、suspend()したスレッドをresume()で呼び出し、run()内部にint aで分岐させて初期状態に戻そうとしているのですが、
停止したところから続きが再開されてしまい困ってます。
stop()→resumt()、stop()→start()では駄目でした。
スレッドを1度破棄してもう1度作るとか、そんな恐ろしいことしなきゃ無理なんでしょうか?

259:デフォルトの名無しさん
07/06/08 15:08:04
fillPolygonなんかで多角形を一色に塗る方法は分かったのですが、
ゲームなんかでよくあるように画像をはめ込むことはできませんでしょうか?

260:デフォルトの名無しさん
07/06/08 15:08:54
Cとアセンブラ、VB使いですが。
Java 初めてです。

クライアントからタッチパネルから「かなorカナ」入力させ、
(銀行のATMの漢字版)

サーバー側で、日本語漢字の候補を、クライアントに送る・・・
というような、ミドルウェアや製品を知りませんか?

サーバーJava で、ゴリゴリのプログラミングはNGというのが上からの命令。

参考サイト・商品サイトだけでも、ご存じの方いらっしゃいますか???

261:デフォルトの名無しさん
07/06/08 15:39:32
>>258
アニメーションさせるならばSpliteを作成するのが基本。
ダブルバッファリングから初めてスプライトの基礎を学ぶといいよ。
簡単なシューティングゲームくらいすぐ作れる。

>>260
サーバーJavaでゴリゴリプログラミングはNGってのが意味不明。
タッチパネル(クライアント)の開発元に問い合わせれば、そのタッチパネルのアドオンとかでありそうだけど、そっちは調べたの?

262:デフォルトの名無しさん
07/06/08 15:51:46
>>261
SpliteをJava APIで探しましたけど見つかりませんでした。
JSplitPaneじゃないでしょうけど、
BasicSplitPaneDivider
BasicSplitPaneUI
らへんでしょうか?

ああ、言い忘れましたが一応ダブルバッファリングはSplitとやらを使わずに出来てます。申し訳ないです。
Spriteでぐぐっても出てきませんでした。もう少し詳しく教えていただけませんでしょうか?

263:デフォルトの名無しさん
07/06/08 16:23:08
>>262
基本APIにゃない。
自分でコンポーネントクラスを拡張して作るんだよ。

264:デフォルトの名無しさん
07/06/08 16:47:55
>>263
spliteに関しては後で調べてみようと思います。

早い話、ThreadとRunnableではループし続けるアニメーションしか作れないのかを知りたいです

というか後程ソースを出して再度書き込んでみます。お手数おかけしました

265:デフォルトの名無しさん
07/06/08 18:02:04
JAVAを始めようかと思ってるのですが、オブジェクト指向についてちょっと聞きたいことがあります。
僕はFLASHをよく作るのですが、オブジェクト指向の概念というのはFLASHもJAVAも類似しているのでしょうか?
実際、まだクラス、オブジェクト、継承など全く理解していません。
FLASHでいうところのシンボル、インスタンスと同じものとして考えてもいいのでしょうか?

266:デフォルトの名無しさん
07/06/08 19:56:17
>>265
類似とまではいかないかも知れないけど、似ているところはある。
というのもFlashというかActionScriptがオブジェクト指向っぽく書かれている。

267:デフォルトの名無しさん
07/06/08 21:10:36
ネットで検索しながらiBatisとHSQLDBで簡単なアプリ(非WEB)を作ってます。

そこで質問なのですが、HSQLDBスタンドアロンモードを終了させる時はSQLで"SHUTDOWN"と打て、
とあるようなのですが、ibatisからSHUTDOWNを流そうとするとエラーになってしまいます。
どうやったら終了させられるのでしょうか?

268:デフォルトの名無しさん
07/06/08 22:42:20
swingでタイピングソフトを作ってるのですが、キーボードの取得方法がわかりません。
KeyListenrを使って、できるのでしょうか?
ActionListenerならある程度わかるのですが。


269:デフォルトの名無しさん
07/06/08 22:50:39
今やってるプロジェクト(オープン系)で「seasar」っての使ってるんですが
なんか、そのプロジェクトのリーダーが
全てのビジネスオブジェクトとDAOをシングルトンで
管理するように設定したって言ってました。

俺としてはありえないと思ったんですが、
これって正しい方法なんでしょうか?

俺の考えが間違ってんですかね。


270:デフォルトの名無しさん
07/06/08 23:01:32
>>269
漏れもありえないと思う


271:デフォルトの名無しさん
07/06/08 23:20:47
>>258=264
> スレッドを1度破棄してもう1度作るとか、そんな恐ろしいことしなきゃ無理なんでしょうか?
スレッドをsuspendで止めるほうがよっぽど恐ろしい。
スレッドの状態管理オブジェクト作ってwait/notifyで止めたり状態変更したりしましょう。

272:デフォルトの名無しさん
07/06/08 23:34:42
getGraphicsメソッドについて質問があります。

public class Test extends Applet{ ... }
class Draw extends Canvas{ ... }

という二つのクラスが有り、Drawの中でダブルバッファを行おうとしているのですが、
Graphics gBuf , Image imgBufをメンバ、initメソッド内にて
imgBuf = createImage(300,300);
gBuf = imgBuf.getGraphics();としたのですが、imgBufがnullとなりグラフィックコンテキストが取得できません。
しかしinit()を呼び出すタイミングによってはきちんと取得できていたりでどうにも安定しません。

この辺りを詳しくご教授願えないでしょうか。宜しくお願いいたします。

273:デフォルトの名無しさん
07/06/08 23:36:45
>>270
やっぱりそう思いますか?

周りにいる同じプロジェクトの人たちに聞いても
誰も疑問を抱いて無いんですよね。
何がおかしいの?って感じで。
自分の考えが間違ってるのかって悩んでたんで、
安心しました。

ありがとうございます。

これから数ヶ月そんなプロジェクトに
関わんなきゃいけないと思うと気が重いっス。


274:デフォルトの名無しさん
07/06/08 23:58:14
>>272
paint の中で createImage するしかない。
コードが見辛くなるけど初回の gBuf == null のときとそうでないときで処理をわける。

275:デフォルトの名無しさん
07/06/09 00:28:06
>>274
回答ありがとうございます。
paintの中でしか生成出来ないんですか…わかりました。やってみます。

276:デフォルトの名無しさん
07/06/09 00:35:20
リアルタイムJAVAってどうやったら使えるの?

277:デフォルトの名無しさん
07/06/09 00:43:25
>>276
質問の意味が良くわからん。

278:デフォルトの名無しさん
07/06/09 00:55:31
普通のVMとは違う特殊なVMやリアルタイム用のAPIとかあるの?
です。

ないかな。

279:デフォルトの名無しさん
07/06/09 00:59:22
>>278
ねーよ、バカw
詩ねwww

280:デフォルトの名無しさん
07/06/09 01:00:43
>>278
URLリンク(jcp.org)
JSR1な

281:デフォルトの名無しさん
07/06/09 01:13:20
Javaなんかで文字化けしやすい文字とかってあるのでしょうか?

282:デフォルトの名無しさん
07/06/09 01:20:44
>>281
どういう状況を想定してるの?

283:デフォルトの名無しさん
07/06/09 01:34:14
いや何となく

284:デフォルトの名無しさん
07/06/09 02:08:51
窓の手で、「右クリックでコマンドプロンプトを可能」にしたのですが困っております。
これで現れるコマンドプロンプトでは、コンパイルが出来ません。

「スタート」→「アクセサリ」→「コマンドプロンプト」のものでは出来ます。
何か対処法はありますでしょうか。


285:デフォルトの名無しさん
07/06/09 03:06:36
窓の手の作者に聞け
「右クリックでコマンドプロンプトを可能」にした時に出るコマンドプロンプトに環境変数を設定する方法について

286:デフォルトの名無しさん
07/06/09 06:33:51
>>264
つーか、スレッド別に作っても、結局UIスレッドに委譲しなきゃダメじゃん

287:デフォルトの名無しさん
07/06/09 06:37:11
「アプリケーションソフトウェア」ってのを作りたいんですが、
そもそもプログラム以前に、この四角い枠を出現させる方法が分かりません。
「このデータはアプリケーションである」と宣言する方法みたいな、
そういうことを教えてください。

288:デフォルトの名無しさん
07/06/09 08:55:17
>>287
そういうことがやりたいならC#のほうがいいな。

289:デフォルトの名無しさん
07/06/09 09:00:19
>>287
JFrame JDialog
setVisible(true);

290:デフォルトの名無しさん
07/06/09 09:17:10
ヒントになりました。どうもありがとうございました。
会社がJAVAを主力にしていて、その勉強の一貫でもあるので、
ここはJAVAでやってみます。

291:デフォルトの名無しさん
07/06/09 11:38:15
こんなことをしたいんだが、方法はありますか?
/**
* @param vo ヴァリューオブジェ
* @param memberName メンバ引数名
public void (Object vo, String menberName) {
//voのmemberNameに対応するgetterを呼び出す
}

292:デフォルトの名無しさん
07/06/09 11:40:40
リフレクション

293:デフォルトの名無しさん
07/06/09 13:27:36
javaのオンラインリファレンスを見ても、
目的のソフトを作るにはどのクラスを使えばいいのか全く分からないのですが、
どうすればそういうのが分かってくる様になるんでしょうか?
オライリーのリファレンスマニュアルとかを見ればいいんですかね?



294:デフォルトの名無しさん
07/06/09 13:30:22
インターフェースを実装する事って、
そのインターフェースの中にあるメソッドが必ず使われるという担保だけで
ちゃんとメソッドが組み込まれていれば必ずしも必要ではない?

上記の場合、クラスにメソッドがあるけど、インターフェースが実装されてない場合
コーディングルール的な事をのぞけば、単純に動かすということだけであれば
わざわざあとで実装する必要性はない?

295:デフォルトの名無しさん
07/06/09 13:52:35
>>294
インターフェイスは、
メソッドが使われることを担保するのではなく、
メソッドが存在することを担保するものじゃないのか?
同じシグニチャのメソッドが存在してもインターフェイスを実装していない場合、
多態性の恩恵に預かれないんじゃないか?
複数のクラスをインターフェイスで総称できなくなる。

296:デフォルトの名無しさん
07/06/09 14:03:52
>>295
>メソッドが存在することを担保するものじゃないのか?
失礼しました
その通りです。

297:デフォルトの名無しさん
07/06/09 14:03:59
>>293
たくさんサンプルを読め
サンプルには何を実現しようとしているか目的が説明されているはずだ
いろいろ読んでるうちにそれぞれのクラスはどういう目的でどういう使い方をするのか分かってくる
あとは自分の目的に合わせて使う応用力の問題

298:デフォルトの名無しさん
07/06/09 14:27:27
質問させてください
パターンマッチで末尾にバックスラッシュ(もしくは円記号)があるかどうかを調べたいんです。
そこでサンプルを作るのですが

String buf = "\\";
String pattern = "\\\\$";
System.out.println(buf.matcdes(pattern) ? "OK" : "NG");

は"OK"になるのに

String buf = "a\\";
String pattern = "\\\\$";
System.out.println(buf.matcdes(pattern) ? "OK" : "NG");

は"NG"になってしまいます。

なにか勘違いしてるのでしょうか。
環境はWinXPで1.5.0_10-b03です。


299:デフォルトの名無しさん
07/06/09 14:35:07
すいません。matcdesをmatchesと読み替えてください。

300:デフォルトの名無しさん
07/06/09 14:36:34
String#matcdes(String pattern)は文字列全体がpatternにマッチするかどうか

301:デフォルトの名無しさん
07/06/09 14:38:35
あ、おれもまんまコピーしちまったwww
String#matchesね

302:デフォルトの名無しさん
07/06/09 14:41:53
その用途に限るなら、buf.endsWith("\\")でいいんじゃない?

303:デフォルトの名無しさん
07/06/09 14:52:41
カタコトで「マッチデース」とか言ってる検索係の外人を想像した。

304:デフォルトの名無しさん
07/06/09 15:38:54
文字列を、指定した幅内に描画する方法はありますか?
例えば、あるFontで"Sample"という文字列の幅が100だとしますと、この文字列の幅を80に縮小して、
Graphics g に描画する方法を探しています。

描画する文字列の幅は、以下のようにすることで得ることができました。
g.setFont(new Font("Serif", Font.BOLD, 30));
FontMetrics fm = g.getFontMetrics();
int size = fm.stringWidth("Sample")

実際に文字列を描画するには、Graphics#drawStringを使用すると思うのですが、
このメソッドには文字列の幅の指定ができないようです。
描画する文字列の幅を指定する方法がありましたら、ご教授お願いします。

305:デフォルトの名無しさん
07/06/09 16:03:30
byte値を0xFFの形でsysoutしたいのですが、
どうすればいいのでしょうか?
初歩的な質問ですいません。

306:デフォルトの名無しさん
07/06/09 16:06:30
>>304
int x0 = 20, y0 = 20;
double requestWidth = 100;
String text = "ABC";

Graphics2D g2 = (Graphics2D)g;
FontMetrics fm = g.getFontMetrics();
double m = requestWidth / fm.stringWidth(text);
g2.translate(x0, y0);
g2.scale(m, 1);
g2.translate(-x0, -y0);
g.drawString(text, x0, y0);


307:デフォルトの名無しさん
07/06/09 16:11:12
>>305
byte b = -1;
System.out.printf("0x%X%n", b);

308:289
07/06/09 16:12:04
>300
ありがとうございます。納得いきました。

309:デフォルトの名無しさん
07/06/09 16:16:13
>>308
末尾の文字列が\かどうかなら>>302でいいと思う。
もし、任意のパターンが文字列中に含まれるかどうかを知りたいなら、
Matcher#find()を使って判定するとかかな。

310:デフォルトの名無しさん
07/06/09 16:21:53
>>307
ありがとうございます。

311:デフォルトの名無しさん
07/06/09 16:31:13
>>306のstringWidthでは描画コンテクストを無視するからgetStringBoundsを使った方が正確かもね

312:デフォルトの名無しさん
07/06/09 16:36:29
JAVAからwindowsのバッチファイルを引数を渡して起動したいのですが、
そういった操作をするクラスは用意されているのでしょうか?
Runtimeというのを見つけたのですが、これは別物でしょうか?
ちょっとコーディング試してみたのですが、ぬるぽが帰ってきます。

文字列入出力なら分かるのですが・・・。

313:デフォルトの名無しさん
07/06/09 16:39:22
すみません。
本を参考にjavaを勉強してますが、mybeansを使うところで、
1行目でエラーが出てサーブレットをコンパイルできません。
import mybeans;でコンパイルすると '.' (ドット)がないと出ます。
ただ、本にはimport mybeans;と記入するように書いてありますが、
付録のCDに入ってる手本のソースファイルにはimport mybeans.*;
と書いてあったので、そのように記入してコンパイルすると、
今度は、パッケケージmybeansは存在しませんと出ます。
で、サーブレットをコンパイルする際の、ディレクトリの位置の問題かと思って、
mybeansパッケージと同じディレクトリでコンパイルすると、
1行目のimport mybeans;のエラーはでなくなりましたが、
2行目3行目のimport javax.servlet.*;とimport javax.servlet.http.*;
のクラスが存在しないと出てしまいます。
開発環境はJDKの1.6.0.1とtomcat 5.5です。
mybeansを使うにはnetbeansなどの他の環境が必要なんですか?

314:デフォルトの名無しさん
07/06/09 16:43:46
package mybeans;とちゃうの?

315:デフォルトの名無しさん
07/06/09 16:56:48
>>312
public static void main(String[] args) throws Exception {
Process p = new ProcessBuilder("hoge.bat", "moge").start();
java.io.Reader in = new java.io.InputStreamReader(p.getInputStream());
while (true) {
int c = in.read();
if (c == -1) break;
System.out.print((char)c);
}
in.close();
}

hoge.bat
echo %1

316:310
07/06/09 17:00:03
>>307
すいません。そのメソッドないです。
もしかして1.5じゃないとダメですか?

317:デフォルトの名無しさん
07/06/09 17:01:11
>>314
mybenasのパッケージ(ディレクトリ)に入れてある、
コンポーネントの方のjavaファイルの1行目はpackage mybeans;で、
試しに単独でコンパイルしたらコンパイルできました。
でもサーブレットの方のjavaファイルの1行目がimport mybeans;になってて、
>>313のような状況です。

318:デフォルトの名無しさん
07/06/09 17:06:31
>>316
printf は .5以降じゃないとだめ。

319:デフォルトの名無しさん
07/06/09 17:23:09
>>316
実行環境のバージョンくらい最初から書け
String s = Integer.toHexString(b).toUpperCase();
System.out.println("0x" + s.substring(Math.max(s.length() - 2, 0)));

320:デフォルトの名無しさん
07/06/09 17:34:56
>>305
final String hexdigit = "0123456789ABCDEF";
System.out.println("0x" + hexdigit.charAt((b >> 4)&0x0F) + hexdigit.charAt(b & 0x0F));

321:デフォルトの名無しさん
07/06/09 17:35:09
>>316
そう。printf()は1.5以降。

int i = (int)b;
if (i < 0) i += 256;
String s = Integer.toHexString(i).toUpperCase();
if (s.length() == 1) {
s = "0x0" + s;
} else { // s.length() == 2
s = "0x" + s;
}
System.out.println(s);

あたりをどうぞ。

322:デフォルトの名無しさん
07/06/09 17:55:03
JavaでWindowsのペイントのようなソフトを作りたいのですが、

参考になるお勧めの参考書・サイトありますか?

323:310
07/06/09 18:22:49
>>319
>>321
できました。ありがとうございます。

324:デフォルトの名無しさん
07/06/09 18:37:42
>>322
「お絵かき java」で検索

325:デフォルトの名無しさん
07/06/09 18:50:32
>>313
書のタイトルとページ数を書け。
もっているヤシがいるかもしれない。
その上でソースをあげてくれよ

326:312
07/06/09 19:00:26
>>315
ありがとうございます!
エラーが5やら2で帰ってきて(作業ディレクトリ?)作業が難航していますが
そのソースをモトに進めたいと思います!

327:デフォルトの名無しさん
07/06/09 20:06:36
たぶん FAQ だと思うのですが、
整数を16進数表記に変換するには
Integer.toHexString(i); とか
Integer.toString(i, 16); とか
があるとのことで、
byte[] b = {0x40, 0x24, 0x31, 0x08};
for(int i = 0; i < b.length; b++) System.out.print(Integer.toHexString(b[i] & 0x0FF));
とすると、
4024318
になってしまって 0 が抜けてしまいます。
CharacterEncoder ce = new HexDumpEncoder();
System.out.print(ce.encode(i));
も試してみたのですが、こちらは余計なものが付いてしまいます。
なんかすっきりした方法はあるのでしょうか?


328:デフォルトの名無しさん
07/06/09 20:13:44
for(int i = 0; i < b.length; i++)
System.out.print((b[i] < 0x10 ? "0" : "") + Integer.toHexString(b[i] & 0x0FF));


329:デフォルトの名無しさん
07/06/09 20:20:20
あ、byte か。

for(int i = 0; i < b.length; i++)
System.out.print(((b[i] & 0x0FF) < 0x10 ? "0" : "") + Integer.toHexString(b[i] & 0x0FF));


330:デフォルトの名無しさん
07/06/09 20:21:31
>>328
さっそくありがとうございます!!
でもなんか昔の BASIC のコード見てるみたいでぜんぜんすっきりしないんですけど


331:デフォルトの名無しさん
07/06/09 20:44:45
System.out.print(Integer.toHexString(b[i] & 0x0FF));

System.out.printf("%02X", b[i]);
でだめ?

332:デフォルトの名無しさん
07/06/09 21:04:34
>>331
327じゃないけど
sprintfみたいな機能ならあるとうれしい

333:デフォルトの名無しさん
07/06/09 21:18:48
>>328=329
Integer.toHexString(b[i] | 0xffffff00).substring(6) とか。

334:デフォルトの名無しさん
07/06/09 21:23:06
せっかくPrintStreamにprintfが付いたのに
PrintStreamがOutputStreamだからStringに持って来れん
これだからJavaは使えん糞だと言われるんだよなぁ


335:デフォルトの名無しさん
07/06/09 21:38:25
>>334
String.formatメソッドとかFormatterクラスをよく調べてみたことある?

336:デフォルトの名無しさん
07/06/09 21:51:55
PipedOutputStream po = new PipedOutputStream();
PipedInputStream pi = new PipedInputStream(po);
PrintStream ps = new PrintStream(po);
for(int i = 0; i < b.length; i++)
ps.printf("%02X", b[i]);
byte[] bo = new byte[100];
int len = pi.read(bo, 0, 99);
String s = new String(bo, 0, len);
System.out.println(s);


337:デフォルトの名無しさん
07/06/09 21:55:55
すみません。HelloWorldのクラス化でいきなりもうダメぽです。
↓のようなプログラムを書いたのですが、printlnの("の部分がコンパイル通りません。
なんかIDがありませんと言われてしまいます。何故でしょうか?意味が・・・

public class UserInput {
  System.out.println("Hello World");
}

public class MyJavaTest {
  public static void main(String args[]) {
    UserInput();
  }
}

338:デフォルトの名無しさん
07/06/09 22:00:36
>>336
byte[100] ってなんだよw


PipedOutputStream po = new PipedOutputStream();
PipedInputStream pi = new PipedInputStream(po);
PrintStream ps = new PrintStream(po);
for(int i = 0; i < b.length; i++)
ps.printf("%02X", b[i]);
ps.printf("\n");
BufferedReader br = new BufferedReader(new InputStreamReader(pi));
System.out.println(br.readLine());


339:327
07/06/09 22:05:07
>>335
できました!

String s = "";
for(int i = 0; i < b.length; i++)
    s += String.format("%02X", b[i]);
System.out.println(s);

激しくありがとうございました!!!


340:デフォルトの名無しさん
07/06/09 22:12:24
なんだか予想以上にメモリを食うのですが、

staticで作った変数はインスタンスを生成するごとに、
メモリ食うってことはないですよね?

インスタンスへのポインタ?みたいなものは、
何バイトくらいメモリ食うのでしょうか?


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