★★Java質問・相談スレッド134★★at TECH
★★Java質問・相談スレッド134★★ - 暇つぶし2ch1:テンプレ(1/3)
09/11/21 17:58:46
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    URLリンク(pc11.2ch.net)
Webプログラミング URLリンク(pc11.2ch.net)
をご利用下さい。

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

前スレッド
★★Java質問・相談スレッド133★★
スレリンク(tech板)
次スレは>>950あたりで。

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
URLリンク(www.wikiroom.com)


2:テンプレ(2/3)
09/11/21 17:59:11
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 8
スレリンク(tech板)l50
■ SWT は --
Java 高速GUI SWT 3
スレリンク(tech板)l50

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

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

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


3:テンプレ(3/3)
09/11/21 17:59:30
**** 開発環境が必要の場合は ****
■ J2SE 5.0 (1.5.0)
URLリンク(java.sun.com)
■ Java SE 6
URLリンク(java.sun.com)

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


4:デフォルトの名無しさん
09/11/22 07:41:46
enumの列挙子をダイナミックに設定することは可能ですか?
例えば、databaseからselectで戻った値をセットするような。
自分で調べた範囲では、できないように思いましたが。

5:デフォルトの名無しさん
09/11/22 12:01:15
それ列挙子の意味がなくね

6:デフォルトの名無しさん
09/11/22 17:09:57
型安全がどういう意味をもってるのか勉強したほうがいい。


7:デフォルトの名無しさん
09/11/22 18:45:15
>>4
静的型言語だから無理。動的にソースコードやバイトコードを生成してロードするという手が使えなくはないが、そういうことしたいわけじゃないだろ?

8:デフォルトの名無しさん
09/11/22 19:51:29
でもそれってenumが導入された1.5じゃできないだろ。

9:デフォルトの名無しさん
09/11/22 20:10:35
7が言ってるのはプログラム中で.classファイルを生成して
クラスローダにその.classを読み込ませるってことでしょ。

enumをバイトコードなりソース生成してコンパイルすれば、
動的に生成できなくもないって話。(そんなプロジェクトあったら抜けたいけどw)

10:デフォルトの名無しさん
09/11/22 21:35:32
だからjreにjavacがないから無理。

11:デフォルトの名無しさん
09/11/22 21:42:34
なんでJREインプロセスでjavacしなきゃいけないって話になるんだよ。w
シェル呼び出しからjavacして.classを作ってもいいわけだろ。
要はクラスローダがロードできればなんでもいいわけだから。

12:デフォルトの名無しさん
09/11/22 22:07:43
JDK必須にしろとwww

13:デフォルトの名無しさん
09/11/22 22:11:43
サーバサイドには普通JDK入ってるからね。
まあそんなコード組んできた奴がいたらクビにするけど。

14:デフォルトの名無しさん
09/11/22 22:12:33
jdkって再配付していいの?

15:デフォルトの名無しさん
09/11/22 22:21:41
できるよ。Linuxではディストリ独自の配布パッケージ作ったりしてるし。

16:デフォルトの名無しさん
09/11/22 22:35:33
いや2次配布のこと。それもsun jdkを勝手に再配付していいの?

17:デフォルトの名無しさん
09/11/22 22:43:41
URLリンク(java.sun.com)

この文書のセクション
Java SE Runtime Environment の再配布
の2行目あたり(JDK)にあるかな。


18:デフォルトの名無しさん
09/11/22 23:01:39
たしかにjdkもjreもアプリと別とした再配付は同じ条件みたいだね。
ただパッケージ化(アプリに内蔵)はjreのみのようだけど。

19:デフォルトの名無しさん
09/11/23 00:07:29
schedule メソッドで起動したタイマーをこのように書いたのですが、停止ができません
どこが間違ってるのでしょうか?
public void actionPerformed (ActionEvent e) {
 Object obj = e.getSource();
 Timer timer = new Timer();
 Task task = new Task();
 // タイマー起動
 if ( obj == mi1) {
  timer.schedule(task, 0, 1 * 60 * 1000);
 }
 // タイマー停止
 else if (obj == btn2 || obj == mi2)
 {
  timer.cancel();
  timer = null;
  task = null;
  System.out.println("Timer stop");
 }
}

20:デフォルトの名無しさん
09/11/23 00:09:51
>>19
> Timer timer = new Timer(); 
タイマー新しく作り続けてるやんけ


21:デフォルトの名無しさん
09/11/23 00:24:14
>>20
thx
わかった^^が、しかし、どこでタイマーこさえようか・・・

22:デフォルトの名無しさん
09/11/23 00:31:44
ヒント:変数のスコープが一つ広いところ

23:デフォルトの名無しさん
09/11/23 00:36:14
>>22
デキマスタ

24:デフォルトの名無しさん
09/11/23 00:41:04

//void cpn(_Complex double z) {printf(" [%f, %f]\n", __real__ z, __imag__ z);}

void mains(int argc, char** argv) {
char *a1;
if (argc<=1) a1="45"; else a1=argv[1];
double s=atof(a1)*3.14f/180f;
cpn(2*cexp(s));
}

int main(int argc, char** argv) {
mains(argc,argv);
return (EXIT_SUCCESS);
}


//void cpn(_Complex double z) {printf(" [%f, %f]\n", __real__ z, __imag__ z);}

void mains(int argc, char** argv) {
char *a1;
if (argc<=1) a1="45"; else a1=argv[1];
double s=atof(a1)*3.14f/180f;
cpn(2*cexp(s));
}

int main(int argc, char** argv) {
mains(argc,argv);
return (EXIT_SUCCESS);
}

25:デフォルトの名無しさん
09/11/23 00:43:56
ごめん誤爆った。

974+2 :デフォルトの名無しさん [] :2009/11/22(日) 21:16:41
シリアライズで質問です。
class clss {
int[] arry
clss(int[] a){arry=a;}}
みたいなクラスを
int[] a= {0,1};
int i=0;
while(true) {
a[0]=i++;
clss c= new clss(a)
writeObject(c);
if(i<100)break;
}
というようにループで書き出してそのファイルをデシリアライズすると
全ての取り出したインスタンスが
a={0,1}
になっているようなのですがこれは解決可能なのでしょうか?


992+1 :デフォルトの名無しさん [↓] :2009/11/22(日) 23:23:08
>>974
writeObjectに同じインスタンスを複数回与えたら、
readObjectもその回数だけ同じインスタンスを返す仕様
同じインスタンスが異なる値を持つことは出来ないから、そのような結果になる
writeObjectのそのような振る舞いを実装するために、
ObjectOutputStreamは一度書き込んだオブジェクトを全部覚えていて、
同じインスタンスは二度書き込まず前回書き込んだインスタンスの参照だけを書き込むようになっている
readObjectも最初と同じインスタンスを返すために、一度読み込んだインスタンスは全部覚えている
ObjectOutputStream#writeUnsharedとかObjectInputStream#readUnsharedを使ってみたらどうかな

26:デフォルトの名無しさん
09/11/23 00:45:39
>>23です、ついでにどなたか、雑談に付き合ってくださいませ
java 初めて3ヶ月ほどで、それまでC/C++ の組込みをやってました
java メソッドが豊富でわかり易いですね、すごく楽に実装できますね
ところで、C/C++ の組込みでは(use MFC)、ボタン押下でタイマーを起動する場合とか
ボタン押下したスレッドの一意性を担保するのに、単純なイベントドブリンだけではなく
めんどくさいけど、スレッドID の比較をチェックしてたんだけど、
java 屋さんではどんな感じですか?

27:デフォルトの名無しさん
09/11/23 00:48:46
MFCだけでdotnetすら知らないなら、まったく考え方を変えた方がいい。
イベントドリブンという概念すら(当たりまえ過ぎるから)存在しない。
チュートリアル(英語)にそってapplet,swingと普通にやるといいだろう。

28:デフォルトの名無しさん
09/11/23 00:55:58
>>27
そんな感じですか、隣の席のやつが、C# で組込みのファイルシステムなどの実装をやってて
時々コードを読んだりしてたけど、dotnet は確かにあんまり知らないね
なんてたっけ、関数名は忘れたけど、コールバックなんか簡単に実装してたような印象はある、
便利そうだった、java にもあるのかな?

29:デフォルトの名無しさん
09/11/23 01:00:03
それで、前スレのまとめ>>25はjavaがバグってたってことか?
当然finish(reset?)だったかの初期化をしている前提でもバグ。

30:デフォルトの名無しさん
09/11/23 01:04:33
その様子だと、MFCで甘えてばかりでwin32apiなんか触ったことすらないんだろうな。
下らない自尊心なんか捨てて、初心に帰って全くの一からやり直したほうがいいだろうな。

31:デフォルトの名無しさん
09/11/23 01:10:17
java,dotnetともに似た機能はあるが、(シングルスレッドでの)コールバックという概念すらない。
お前は10年以上遅れてるプログラミングをやってるってこと。

32:デフォルトの名無しさん
09/11/23 01:15:09
>>28 です
>>30
なかなか手厳しいですな、さすが2ちゃんねるといったところですね
Win32api はそれはそれは、お世話になってましたよといいますか、それで飯くってるんで
最後に、java のリバースエンジニアリングについてですが
職場では、Visual studio や、ツールを使って、ある程度ですが、実行コードを
逆アセンブルしにくくすることを義務付けられていたのですが(完璧に非可逆性を保障しなくてもよい)
java でそのようなことができる、ツールとか手法があれば教えてもらえませんか。

33:デフォルトの名無しさん
09/11/23 01:17:48
オブファスケータ (obfuscator) でぐぐる

34:デフォルトの名無しさん
09/11/23 01:24:05
>>31
java にtemplate とかあんの?boostや、loki使えば、C++ とjava ではF1とオートマの軽自動車
みたいなもんだよね、別にオートマの軽自動車が悪いと言ってるわけではないよ。


35:デフォルトの名無しさん
09/11/23 01:32:30
逆汗なんか普通にできるし、出来ないとバイトコード上のセキュリティー問題に発展する。
というか逆アセンブラはjvmプラットの一機能(javap)に過ぎない(ただjavapの生成コードはjava languageではない)。
javaやwebやオープンソースは、msみたくクローズドで相手の腹の探りあいって世界じゃないから。
それにコーディックや圧縮・特許ものたいなクローズドかつ泥臭いのはnativeと称してgccでやるものであり、難読化とかはオープンとかjvmのプログラムが担当するものではない。
msが新技術を提唱して、しかしすぐ開発者を裏切ってきた歴史を知ってるなら、そいうクローズドじゃないプロジェクトに接すればmsはいかに狭い世界だったかを知って目が覚めるだろうな。

36:デフォルトの名無しさん
09/11/23 01:40:35
msのvisual c/c++で組込?
それもMFCでしょ。
携帯ならjavaだろうし…何の分野での組み込みなの?

37:デフォルトの名無しさん
09/11/23 01:46:04
>>33>>35
thxです
コーデイックの解析は一から解析しようとすると、難しいといいますか、要領がよくないと
困難でしょうね、ffmpeg のソースコード読めばすぐにわかりますが。
どうもとりとめもない雑談に付き合ってくれてありがとう、そういえば
最新のgcc、C++0x対応してるんだろうか、明日調べまーす。

38:デフォルトの名無しさん
09/11/23 01:47:05
foumula 1って組織が分裂して、もう終わった物語なんだよね。
SUNはマクラーレン+サンのころが一番輝いてたな…

39:デフォルトの名無しさん
09/11/23 01:53:12
>>37
win32apiのスタイルでグーイを考えてるなら、gnome(linux)かopengl(jogl)がいいと思うよ。
フレームワーク自体が、コールバックとかイベントドリブンとか旧時代の産物のままだから、多分awt,swingなんかよりもすぐとっつくだろう。

40:デフォルトの名無しさん
09/11/23 02:05:45
正直コールバックやイベントドリブンの概念が時代遅れとは思わない。

41:デフォルトの名無しさん
09/11/23 02:06:11
>>7
では奈美恵を性的にダイナミックな女にすることはできますか?
性的言語で攻めればいいですか?

42:デフォルトの名無しさん
09/11/23 02:09:48
>>41
伺か?w

43:デフォルトの名無しさん
09/11/23 02:12:19
>>40
マルチスレッドならそうとも言えるけど・・・多分シングルスレッドなんだろうし・・・

44:デフォルトの名無しさん
09/11/23 02:36:41
javaとかC++のようなスレッドを言語でサポートしていない言語ではスレッド越しは苦痛ですな

45:デフォルトの名無しさん
09/11/23 02:51:36
>>44
windows環境しか知らないとそうかもね。w

46:デフォルトの名無しさん
09/11/23 02:54:29
ですよねー!
やっぱり知識がある人は違うなー!!

47:デフォルトの名無しさん
09/11/23 02:56:25
erlangとか言い出す奴は不能

48:デフォルトの名無しさん
09/11/23 03:07:45
というか、java/jvmプラットならそもそもwindows第一って言う発想はおかしいんだが。
webとかapplet(javafx,flash)さらにはdbアクセスとかじゃない、windows native(ms officeとか)だけなら素直にdotnet/directx使えよ。

49:デフォルトの名無しさん
09/11/23 08:53:56
swing のJOptionPane.showInputDialog を使って、こんな感じで、一個のテキストボックスを表示して
文字列を取得しているのですが、二個のテキストボックスを表示させて、文字列を取得することはできませんでしょうか。
private String inputDialog(String str) {
String result = JOptionPane.showInputDialog( this, str, "インフォメーション", JOptionPane.INFORMATION_MESSAGE);
return result;
}

50:デフォルトの名無しさん
09/11/23 12:36:48
>>48
>>45はきっとタダの燃料だから・・・

51:デフォルトの名無しさん
09/11/23 12:37:34
>>49
JOptionPane調べてもなさそう?
なら自分でダイアログつくればいいじゃない

52:デフォルトの名無しさん
09/11/23 13:44:05
>>51
なさそうですね

53:デフォルトの名無しさん
09/11/23 16:14:59
たとえば、
final JPanel pn = new JPanel();
final JTextField tf1 = new JTextField();
final JTextField tf2 = new JTextField();
pn.add(tf1);
pn.add(tf2);
int res = JOptionPane.show...Dialog(null,pn,...);
if(res == JOptionPane....){
final String text1 = tf1.getText();
final String text2 = tf2.getText();
}

こんな感じでメッセージにコンポーネントを指定することで複数取得することはできるよ。

54:デフォルトの名無しさん
09/11/23 18:28:31
ファイルの入出力について質問です。
a.txtの内容を b.txtにコピーしたいのですが、
以下サンプルコードの実行の仕方がわかりません。

コマンドプロンプトで
C:\myjava>java WriteFile1
C:\myjava>a.txt < b.txt
と記述してもエラーになります。

困っております。お願いします。

public class WriteFile1 {
public static void main(String[] args){

if(args.length != 1) {
System.out.println("使用法: java WriteFile1 作成ファイル");
System.out.println("例:java WriteFile1 output.txt < input.txt");
以下略

55:デフォルトの名無しさん
09/11/23 18:42:18
なんでそこで改行するんだ
例にある通り
C:\myjava>java WriteFile1 a.txt < b.txt
ってやれ

56:デフォルトの名無しさん
09/11/23 21:23:01


URLリンク(www.searchman.info)

>>tomcatPluginV321.zip を
解凍すると、com.sysdeo.eclipse.tomcat_3.2.1というディレクトリができます。
これを、eclipse のpluginsディレクトリに保存します。
私の場合ですと、C:\eclipse\plugins に保存します。たったそれだけです。

この設定で行ってもeclipseの設定にtomcatが表示されないのですが何故でしょうか…。

57:デフォルトの名無しさん
09/11/23 21:50:08
Eclipseはバージョンなに使ってんの?
つーかWTPでいいじゃねーか。

58:デフォルトの名無しさん
09/11/23 23:01:40
下記を実行したら81E0となります。
なぜ、こうなるのでしょうか?
SunのVMで5を使っています。

byte[] b = new byte[2];
b[0] = (byte)0x87;
b[1] = (byte)0x90;

HexDumpEncoder dump = new HexDumpEncoder();
System.out.println(dump.encode(new String(b,"Windows-31J").getBytes("Windows-31J")));



59:デフォルトの名無しさん
09/11/23 23:12:09
>>58
Windows-31Jのうちいくつかの文字はUnicodeから変換するときに複数の
コードポイントがあるため、そういうことが起きる。

URLリンク(www.atmarkit.co.jp)


60:デフォルトの名無しさん
09/11/23 23:20:43
>>59
そういうことなんですか。文字コードはややこしいですね・・。
ありがとうございました。

61:デフォルトの名無しさん
09/11/23 23:22:49
スレがカオスってるな

62:デフォルトの名無しさん
09/11/23 23:24:48
パラレルGCとコンカレントGCは同じものなのでしょうか?
今、GCの時間を短くしようとしているのですが、どういうチューニングをすればよいのでしょうか。
FullGCを起こさないように、ヒープを大きくして、
ヒープ拡張時のオーバーヘッドをなくすため初期ヒープサイズと最大ヒープサイズは同じにしました。
それでも1回あたりのGCの時間が100ms位かかっており、システムのスループットに影響してます。。。

63:デフォルトの名無しさん
09/11/23 23:27:51
前スレでシャローコピーとディープコピーについて質問した者です。
参考になりました。分からない事柄を調べまたひとつ勉強させていただきました。
感謝です。ありがとうございました!

64:デフォルトの名無しさん
09/11/23 23:46:53
別もんだよ。
URLリンク(www.atmarkit.co.jp)
ここ見れ。

平均スループットは悪化してる点に注意ね。

65:デフォルトの名無しさん
09/11/24 16:28:31
1桁の数字を入力したらEnterを押さなくてもすぐ次の処理を行うようにしたいのですが
どのようにすれば良いでしょうか?



66:デフォルトの名無しさん
09/11/24 16:57:09
289 :デフォルトの名無しさん :2005/06/01(水) 15:27:21
javaだけではフッキングは無理だな。 JNIでAPI呼ばないと。
TextFieldなんかで定型入力させるのか?
だったらリスナで十分だ。

67:デフォルトの名無しさん
09/11/24 17:33:01
classにpartialを付けてもエラーになるんですけど、
どうやってファイルを分けるんですか?

68:デフォルトの名無しさん
09/11/24 17:50:27
そんな機能ねーよ

69:デフォルトの名無しさん
09/11/24 17:57:07
C#じゃないんですから・・・

70:デフォルトの名無しさん
09/11/24 18:26:34
不便ですね・・・

71:デフォルトの名無しさん
09/11/24 18:27:59
一向に進歩のない言語だというのは実に正しい

72:デフォルトの名無しさん
09/11/24 19:57:08
わかりやすいからいいじゃん。

73:デフォルトの名無しさん
09/11/24 20:41:05
partialは良い機能だと思うが、C#のは拘束が弱くて嫌い。
ファイル名規則をClassName$Layout.javaみたいに限定して欲しい。
まあそんなのよりヒアドキュメントを用意してくれ。ラムダ式とか後でいいだろ。

74:デフォルトの名無しさん
09/11/24 20:41:12
C#はむしろ変えすぎ。2.0とそれ以降は、CとC++くらい違う。
LINQなんて追加するんならC##とでもしろと。

75:デフォルトの名無しさん
09/11/24 20:43:46
JavaユーザーとC#ユーザーって仲悪いの?

76:デフォルトの名無しさん
09/11/24 20:48:26
半端なく

77:デフォルトの名無しさん
09/11/24 20:52:42
俺は概ね認めているが、Nullableという不毛なクラスのせいでイマイチな評価になっている。
半端なところのパフォーマンスに拘った言語仕様だから、エスケープ解析みたいな試みにならない。

78:デフォルトの名無しさん
09/11/24 20:54:17
C#(win)とJava(win以外)を比べる時点で間違ってる。

79:デフォルトの名無しさん
09/11/24 21:01:39
C#のGUIが使いやすいのは、レイアウトマネージャを用意する必要がないからって部分が大きいしな。

80:デフォルトの名無しさん
09/11/24 22:04:38
JAVAでテトリスを作りたいのですが、参考になりそうなHPを知ってたら教えて下さい

81:デフォルトの名無しさん
09/11/24 22:10:13
Javaでゲーム作りますが何か?

82:デフォルトの名無しさん
09/11/24 22:11:42
URLリンク(www.nintendo.co.jp)

83:デフォルトの名無しさん
09/11/25 05:11:20
>>79
かくいう.NETも、WPFでレイアウトマネージャ取り入れてるけどな。

84:デフォルトの名無しさん
09/11/25 15:26:04
コレクションのinstanceofについて質問です。

Map<String, String> map;

Object obj = map;

if (obj instanceof Map)

↑このifは通ると思いますが、mapの型(String,String)としてinstanceofするにはどうすればいいのでしょうか?

instanceof通った後に型付きでキャストすれば動きそうですが、
型チェック不足でwarningが出てしまいます。



85:デフォルトの名無しさん
09/11/25 19:12:39
実行時の段階では元の型パラメータを取り出すことはできません。
instanceofのような動的型チェックには、型パラメータを含めることはできません。

86:デフォルトの名無しさん
09/11/25 19:35:44
リフレクションで取ってifじゃだめ?

87:デフォルトの名無しさん
09/11/25 20:02:49
swing のボタンをグレイアウトし操作無効にするメソッドを教えてください

88:デフォルトの名無しさん
09/11/25 20:05:29
>>87
setEnabled

89:デフォルトの名無しさん
09/11/25 20:44:52
>>88thx

90:デフォルトの名無しさん
09/11/25 22:16:24
JAVA、プログラミング初心者のものです
分け合ってclassファイルの逆コンパイルし中身を見たいのですが
ぐぐっても解決策を見出すことができません
そこで質問させてください
ぐぐると


eclipseとjadclipseをインストールして、jadのパスをeclipseに通して、
File>OpenFileで、開こうとしたらエラーメッセージが出たので、
根本的に間違ってたのかなと。
jadの使いかた調べてみます。
Could not open the editor: The Class File Viewer cannot handle the given input ('org.eclipse.ui.ide.FileStoreEditorInput').

>jad -s xxxx.class output.jadで見ることができました。


上記のようなことが検索されました

私も 上記のように
『Could not open the editor: The Class File Viewer cannot handle the given input ('org.eclipse.ui.ide.FileStoreEditorInput'). 』
というエラーが出ます
しかし

『>jad -s xxxx.class output.jadで見ることができました。』
上記の意味が理解できずに解決できないでいます
なにとぞご指示・ご指導のほどよろしくお願いします
参考にしたサイト
URLリンク(hpcgi2.nifty.com)
URLリンク(www.atmarkit.co.jp)


91:デフォルトの名無しさん
09/11/25 22:21:00
URLリンク(java.decompiler.free.fr)
このデコンパイラがおすすめ。
eclipseプラグインもあるよ。

92:デフォルトの名無しさん
09/11/25 22:44:05
>>91 
ありがとうごさいます
あんなに苦労したことがこんな簡単にできるとは思いませんでした
ほんとに助かりました。

93:デフォルトの名無しさん
09/11/26 03:11:57
与えられた文字列がディレクトリを指すかどうかをテストしようとして
new File(s).isDirectory() を使ってたんですが、 Windows 上で s が
\\server\share の形になっていると数秒の待ち時間が発生してしまうことがわかりました。
ネットワークにサーバー名とか(?)の問い合わせをしているようです。
また、一時的にサーバーが利用できないときに false になってしまうのも望ましく
ありません。

これを回避するため、任意の文字列がファイルやディレクトリを指しうるものかどうか、
文字列の解析だけで(ファイルシステムやネットワークへのアクセス無しで)判別する
方法を探しているのですが、標準のクラス内に使えるものはないでしょうか?

例えば Windows ならパス文字列に含まれない文字がいくつかあるので、それが
含まれているかどうかだけをテストする、とかいうやつです。はじめは File のメソッドに
isValid() とかあるだろうと思ったのですが、見当たりませんでした。

94:デフォルトの名無しさん
09/11/26 05:45:13
JavaってJITコンパイルという方式のようですが、逆に言うとソースコードを見られてしまうという事ですか?


95:デフォルトの名無しさん
09/11/26 06:17:09
yes
>>91

96:デフォルトの名無しさん
09/11/26 07:03:41
なるほど、ありがとうございます

97:デフォルトの名無しさん
09/11/26 09:48:32
>>93
> 標準のクラス内に使えるものはないでしょうか?
ない。

98:デフォルトの名無しさん
09/11/26 10:22:21
Jadはtry-catch-finallyがあって,なおかつ内部でモニタの開放とかしてると全く逆コンパイルに失敗して涙目

99:デフォルトの名無しさん
09/11/26 19:46:41
J2SE 1.6で、java.lang.management.OperatingSystemMXBeanからいくつかのメソッドが削除されたのはどうしてでしょう?
また、他のオブジェクトで代替/回避する方法はありますか?

getTotalPhysicalMemorySizeやgetFreePhysicalMemorySizeが使えなくなっていたのは少々困りました。
現在、リフレクションを使って無理やり取得していますが、1.5で実装されたモノが1.6で削除(非推奨ではなく)されたのは、何か大きな不具合があった為でしょうか?

100:デフォルトの名無しさん
09/11/26 20:31:44
>>99
java.lang.management.OperatingSystemMXBean にはそんなメソッドないぞ。
com.sun.management.OperatingSystemMXBean と混同しとるんじゃないか?

101:99
09/11/26 22:49:43
>>100
・・・申し訳ありませんでした、大当たりです。
com.sun.management.OperatingSystemMXBeanは(Eclipseでは)ビルド・パスの設定で明示的に許可してやらないと見れないので、取り違えてしまったようです・・・。

バカな質問にすばやくお答えいただき、ありがとうございました。

102:デフォルトの名無しさん
09/11/27 00:18:06
今からjavaやろうと思ったら
普通に1.6でいいんですよね?
これはいい。これはやめとけみたいなのありますか?

103:デフォルトの名無しさん
09/11/27 00:35:04
GUIについて質問です
マウスイベントを用いて何度か図形(drawLineやOval)を描画する
プログラムを作ってるんですが、新たに図形を描画させると
以前描画した図形が消えてしまいます。

super.paint(g)をソースから消すと以前描画した図形も残るんですが
処理速度がものすごく遅くなります・・・
ちなみに引数(g)ってのは
public void paint(Graphics g)
のgです

処理速度が遅くならずに以前描画した図形を残せる方法はありませんか?

104:デフォルトの名無しさん
09/11/27 13:05:38
>>103
再描画してんじゃないの?
ソースがないからなんともいえんが

105:デフォルトの名無しさん
09/11/27 13:31:18
>>102
6.0とも言う

106:103
09/11/27 13:32:09
すみません解決しました・・・
>>104さんのおっしゃる通り再描画していました
なのでpaintメソッドと別にupdateメソッドを作り
public void update(Graphics g) {
paint(g);
}
というふうに直接paintメソッドを呼び出したら上手くいきまいした

107:デフォルトの名無しさん
09/11/27 20:30:30
質問です。以下のホニャララの部分を、"点aは(x,y)"および"点bは(x,y)"と、
インスタンス名と同じ名前になるように表示させたいのです。
初心者の質問で申し訳ないのですが、何か良い案を教えてください。

class Point2D{
double x;
double y;

Point2D(double x,double y){
System.out.println("点ホニャララは(" + x + "," + y + ")" );
}
}

class Test{
public static void main(String[]args){
Point2D a = new Point2D(Double.parseDouble(args[0]),Double.parseDouble(args[1]));
Point2D b = new Point2D(Double.parseDouble(args[2]),Double.parseDouble(args[3]));
}
}

108:デフォルトの名無しさん
09/11/27 20:47:10
>>107
これは初心者ってか素人のレベルだな

109:デフォルトの名無しさん
09/11/27 22:19:59
>>107
そもそもインスタンスに名前なんてないよ
ソースコード上の「a」とか「b」ってのはインスタンスの名前じゃないよ

名前を教えなきゃいけない

110:デフォルトの名無しさん
09/11/27 23:18:13
>>108
残念なコを見るような目で見ながら教えていただけると助かります。

>>109
書き方が悪かったようです。それは理解しています。


僕の頭では、("点" + k + "は(" + x + "," + y + ")" );/*kはString型*/
として、条件文を用いてaとbを区別するか、引数を用いるかしか考え付きませんでした。

書き忘れましたが、課題の一部(質問した部分が課題なわけではない)です。
メッソドの形が指定されているので、引数は利用できません。

となると、条件文にしようと考えたわけです。
例えばif(){k="a";}if(){k="b";}とするわけですが、()の中身が思いつきません。

int n=0;n++;としてn==1 or n==2で判別しようとしたり、条件にメソッドを使用しようとしたり、
色々考えましたが、できませんでした。
素人の為知識量が不足しています。
条件文を用いる他に、スマートな方法がありそうですし。
何か、ご助言くださればありがたいです。

111:デフォルトの名無しさん
09/11/27 23:26:31
>>110
お前、態度でかいぞ
トーシロの無能が何言ってんだ

112:デフォルトの名無しさん
09/11/27 23:40:04
フィールド(メンバ変数)は名前を持つが、
パラメータ(引数)やローカル変数は名前を持たない。

113:デフォルトの名無しさん
09/11/27 23:51:22
「点ホニャララは」の部分はmain側で表示してから
Point2Dのコンストラクタを呼び出す。

114:デフォルトの名無しさん
09/11/28 00:04:34
>>110
後出しこわい
> メッソドの形が指定されているので、引数は利用できません。 
なんで?
どうしてもシグネチャを変更できないのなら,そもそもコンストラクタで名前を表示しようなんて考えてはいけない.

ソースいじくれるようだし,コンストラクタ増やしたら?

115:デフォルトの名無しさん
09/11/28 00:06:20
>>111
丁寧に書こうとしたら、こんなんになってしまいました。
不快にさせてごめんなさい。

>>112
助言ありがとうございます。

>>113
!?。それだ・・・!!!
正直、目から鱗です。

素人な質問に答えていただきありがとうございました!
助かりました。

116:107
09/11/28 00:12:29
>>114
>どうしてもシグネチャを変更できないのなら,そもそもコンストラクタで名前を表示しようなんて考えてはいけない.
なるほど。参考になります。

>>113とともに、コンストラクタを増やすことでも解決できますね。
自分の馬鹿さ加減がイヤになります。
お答えいただきありがとうございました。

117:デフォルトの名無しさん
09/11/28 00:32:44
showInputDialog でパスワード入力時に、入力文字を*****となるテキストフィールドを使いたいのですが
どのようにしたらできますか?

118:デフォルトの名無しさん
09/11/28 01:23:23
というか大抵のケースでコンストラクタにパラメータ付ける場合は
パラメータなしでnewされたくない
=パラメータは意味のあるものだから必須
=メンバ変数に格納
とかじゃねーの

そうでないならコンストラクタなんてパラメータ付けずに
setterで外からはめさせりゃいいじゃん

119:デフォルトの名無しさん
09/11/28 01:39:33
マスをクリックした時に一回、勝敗が決まった時に3回
対戦者のテーマ音を鳴らす三目並べゲームを作ってるんですが
Xが勝った時にテーマ音が鳴りません
以下は自分で作ったプログラムです
URLリンク(www.dotup.org)
どうしてXのときだけ鳴らないか気付いた方はご教授おねがいします

120:デフォルトの名無しさん
09/11/28 01:49:32
まずクラス化したらどうだい?
Playerクラスに纏めてしまえば変なswitch文にまどわされる事はない。

121:119
09/11/28 03:25:54
すみません、再生する音楽ファイルを変更したら解決しました
おそらく、再生時間が極端に短いとloop再生できないようです・・・

122:デフォルトの名無しさん
09/11/28 10:31:27
>>117ですが
お願いします。

123:デフォルトの名無しさん
09/11/28 11:46:51
>>117
このあたりが参考になるのでは
URLリンク(java.sun.com)

124:デフォルトの名無しさん
09/11/28 11:59:12
JAVAで関数ポピンタみたいなことをやるには
どうすりゃいいの。

125:デフォルトの名無しさん
09/11/28 12:01:10
関数ポピンタってなんですか?

126:デフォルトの名無しさん
09/11/28 12:12:33
アイアムザパニーズなんですけどもザバで風呂釜を綺麗にするには?

127:デフォルトの名無しさん
09/11/28 12:13:41
いわゆるショッピング症候群です

128:デフォルトの名無しさん
09/11/28 12:14:34
ヌルポピンタ

129:デフォルトの名無しさん
09/11/28 14:53:57
>>123
Thx

130:デフォルトの名無しさん
09/11/28 16:36:21
>>124
動的にいろいろな関数のボピンタを渡す代わりに、動的にいろいろなオブジェクトを渡して、
それらのオブジェクトが共通に実装しているメソッドを呼ばせる。

131:デフォルトの名無しさん
09/11/28 18:47:21
ポピンタが使えるようになったら初心者卒業だね!

132:デフォルトの名無しさん
09/11/29 05:59:57
java seが普通のjavaで
java eeがjspやサーブレットまで含めたjavaということでしょうか?

133:デフォルトの名無しさん
09/11/29 12:18:39
そんなところ

134:デフォルトの名無しさん
09/11/29 14:06:18
ポピンタがなんだかわからなかったから、ググってみたらgoogle先生が教えてくれたww

135:デフォルトの名無しさん
09/11/29 14:47:45
クラス、継承、オーバーライドまでは使えそうですが、
ポリモーフィズム、抽象クラス、インタフェースとかになってくると
もう使いこなせる気がしません。

どういうものか理解はできていますが、自分でいつ使えばいいのか
判断が難しそうです。

皆さんはどうやって使えるようになりましたか?
使わなくても問題ないでしょうか?

136:デフォルトの名無しさん
09/11/29 14:52:58
俺は最近
インターフェイス=コールバック用
抽象クラス=計算戦略の概略の形を作る用
になってきた

137:デフォルトの名無しさん
09/11/29 15:20:15
使っているうちにわかってくると思えばいいんでしょうかね。
前にC++をしばらくいじってみたとき、結局最初から最後までOOPらしいものはできませんでした。。

138:デフォルトの名無しさん
09/11/29 16:00:36
>>135
インターフェース⇒使う側は「×××という機能(メソッド)が使える」ということだけわかっていればいい。中身は気にしない。
継承関係からは独立しているので、インターフェースを実装したクラスは中で何をやっていてもいい。
ファイルに書き込む代わりにネットワーク越しでサーバにアップロードするとか。

抽象クラス⇒処理の流れの大枠は決まっているが、一部の処理だけ使う側にまかせたい。その部分は使う側が決めなければならないので、抽象クラス自身は単独では完結していない。

ポリモフィズム⇒使う側は一律、writer.write(data)みたいに書くが、このとき実際に書き込む先はファイルだったりメモリだったりDBだったりどっかのサーバだったり。
要は、呼び出し側がif~else if~elseやswitch~caseで切り替えるんじゃなくて、呼び出される側が同じシグネチャのメソッドを実装した中身の違うクラスを用意する。
なるべくをif文やswitch文を書きたくないので、無いと生きて行けない。

139:デフォルトの名無しさん
09/11/29 16:05:14
>>135
インタフェース=ポリモルフィズムのための規格
抽象クラス=雛形

140:デフォルトの名無しさん
09/11/29 16:10:15
>>138-139
うーん、難しいですね…。
違う本も読んでもっと勉強してみます。

抽象クラス、インタフェースの意味・目的はさておき、どのように身に付けましたか?

141:デフォルトの名無しさん
09/11/29 17:05:12
標準のコレクションクラスをひととおり眺める
それらを具象クラス (ArrayList, LinkedList) ではなくインタフェース (List) で使ってみる

142:デフォルトの名無しさん
09/11/29 18:17:37
同じ内容のオブジェクトのハッシュコードは等しいが
異なる内容のオブジェクトのハッシュコードは必ずしも違う値になるわけでは
ないと聞いたのですが、ハッシュコードってどのような場面で使用されるのですか?

143:デフォルトの名無しさん
09/11/29 18:21:19
>>142
例えばjava.util.HashMapの内部で使用されてる

144:デフォルトの名無しさん
09/11/29 18:22:58
Hashtableとか

ハッシュ値はクラスの設計者がどんな値使うか決めていい
必要であれば全部同じ値を返してもいい

145:デフォルトの名無しさん
09/11/29 19:10:26
よく指摘される事項ではあるけど、
equalsをオーバーライドしたクラスは必ずhashcodeもオーバーライド必須ね。
これ忘れて潜在的なバグが放置されてる業務プロジェクトは星の数ほど存在する。

146:デフォルトの名無しさん
09/11/29 19:14:27
仕様です。

147:デフォルトの名無しさん
09/11/29 19:22:07
>>143-145
ありがとうございます。

HashMapの実装の仕方を見たことは無いのですが
getしたとき内部では高速化のためhashcode毎に分けられており
最終的にkey紐づくものを返すというイメージなのですか?

148:デフォルトの名無しさん
09/11/29 19:42:49
そうだね。

ハッシュマップは↓のようなデータ構造のイメージ
hash1 : {key1:val1, key4:val4, key6:val6}
hash2 : {key2:val2, key3:val3, key5:val5}
hash3 : {key7:val7}

key3でgetした場合、まずkey3のhashcodeであるhash2でgetして、
取得されたサイズ3のコレクションに対して、key3とのequalsが実行される。

最悪7回equalsが必要(size7のMapだから)なところ、
HashMapの実装であれば3回のequalsですんでいる。

実際には値がより均等に分散するアルゴリズムでhashcodeが計算されるため、
よほどHashMapのサイズが大きくならない限り
同じhashcodeにぶら下がるオブジェクトは多くて1個で収まる。→ 超速い

149:デフォルトの名無しさん
09/11/29 20:25:55
>>148
解説ありがとうございます。
理解できました。

150:デフォルトの名無しさん
09/11/29 21:50:57
javaでファイル出力処理時に、ファイル名「現在の日付+.txt」としたいのですが、
その設定をjavaのpropertiesファイルに書いておいてそこから呼び出すためには
propertiesファイルに記載したら良いのでしょうか?

たまに固定文字列でファイル出力を行いたいため、
プロパティファイルを編集するだけで、日付つきファイルか固定かを変えられるようにしたいのです。


151:デフォルトの名無しさん
09/11/29 22:15:23
予め決めておいたパターンが(プロパティファイルの値のなかに)出現したら
現在時刻に置き換えるようにしておけば?

152:デフォルトの名無しさん
09/11/29 22:17:56
レスありがとうございます
その方法もいいかもしれませんが、プロパティファイル内の設定だけで対応したいです

153:デフォルトの名無しさん
09/11/29 22:20:21
プロパティファイル読み込む処理は自分で書いたんでしょ?
そこで置き換えればいいんじゃないの?


154:デフォルトの名無しさん
09/11/29 23:44:19
実行可能なjarファイルを作成したのですが、
これを別のディレクトリに移動してから実行すると動きません。

jarファイル内部のpropertiesファイルが読み込めない(見つからない?)ようなのですが、
プログラム中にpropertiesファイルの相対パスを指定しただけではダメなのでしょうか?


155:デフォルトの名無しさん
09/11/29 23:52:13
一体どんな指定をしてるんだ?

156:デフォルトの名無しさん
09/11/29 23:57:01
>>154
jarファイル内部のはClassLoader使ってURL取得するといいよ。

hoge/
Hoge.class
hoge.properties
となってたら
url = Hoge.class.getResource("hoge.properties");
もしくは絶対パス
url = Hoge.class.getResource("/hoge/hoge.propertis");

157:デフォルトの名無しさん
09/11/30 01:55:11
でも、それじゃクラス全体がメモリにロードされちゃいませんか?
確かクラスは自動でアンロードされなかったし問題ですよ。

158:デフォルトの名無しさん
09/11/30 02:08:31
でっかい釣り針が...

159:デフォルトの名無しさん
09/11/30 06:44:15
java -cp abcde.jar:lib/opencsv-2.1.jar jp.aaaaa.Guiframe
と実行を試みると、
NoClassDefFoundErrorがjp/aaaaa/Guiframeで出ます。
java -cp abcde.jar jp.aaaaa.Guiframe
と入力すると正常に動作しますが、この場合はlibにPathが通ってないため
不十分な動作になります。
自分では原因が検討もつかず、悩んでいます。
よろしくお願いします。

160:デフォルトの名無しさん
09/11/30 06:56:58
>>159
パス区切り記号は :(コロン)ではなく、;(セミコロン)です。

161:デフォルトの名無しさん
09/11/30 10:40:32
Winではね

162:デフォルトの名無しさん
09/11/30 10:44:07
カラムヘッダに、日付と曜日を順々に2週間分入れてテーブルを作成したいのですがうまくいきません
どこがいけないのでしょうか?

public class CalendarModel extends AbstractTableModel {
.........
public String getColumnName(int columnIndex) {

calendar = Calendar.getInstance();
String[] columns = new String[14];
String dow = null;

calendar.add(calendar.get(Calendar.DAY_OF_WEEK), columnIndex);
dow = getDOW(calendar.get(Calendar.DAY_OF_WEEK));

columns[columnIndex] = dow + " " + calendar.get(Calendar.DATE);

return columns[columnIndex];
}}

163:デフォルトの名無しさん
09/11/30 11:24:00
すみません、激しく自己解決しました
calendar.add(Calendar.DAY_OF_WEEK, columnIndex);
ですね

164:159
09/11/30 12:03:26
>>160
ありがとうございました。
助かりました。

165:デフォルトの名無しさん
09/11/30 12:15:26
HashMapで現在
キー     値 
あいうえお →1
かきくけこ →2,3
さしすせそ →4
とセットされているとして値の個数を返すメソッドってありますか?
たとえば「かきくけこ」を引数とした場合に2が返ってきてほしいのですが。

166:デフォルトの名無しさん
09/11/30 12:25:43
値の型って何さ

167:デフォルトの名無しさん
09/11/30 12:30:17
>>165
HashMapに同じキーの新しい値を入れると古い値は消えるので、値が2個以上になることはありません

168:166
09/11/30 12:38:38
ArrayListでも突っ込んでるのかと思った

169:デフォルトの名無しさん
09/11/30 19:27:58
HashMapのかわりに何を使えばいいのですか?
>>166以外の人に答えてほしいです。

170:デフォルトの名無しさん
09/11/30 19:56:49
HashMapには値としてArrayListを入れて、そのArrayListの中に本当の値を入れるのが定番

171:デフォルトの名無しさん
09/11/30 22:06:45
>>166 も間違ったことは言ってないのに…

172:デフォルトの名無しさん
09/11/30 23:28:00
@see、@param、@override、@throwsみたいなアノーテーションをよく使うけど、
結局アノーテーションって何に使うの?

173:デフォルトの名無しさん
09/11/30 23:32:34
その @see、@param、@override、@throws を、何のために入れているのか、
分からないで使ってるのかw

174:デフォルトの名無しさん
09/12/01 00:11:19
>>172
JavadocのタグとJava5のアノテーションを混同してないかい?
そこに挙げているのはぜんぶJavadocのタグ。


175:デフォルトの名無しさん
09/12/01 00:59:17
アノテーションの言葉どおりに、注釈つけたい場合に利用されてる。
DIコンテナとかEJB界隈を扱うと嫌でも利用例に触れることになる。

このメソッドの前後で新規トランザクション作れよ、とか
このフィールドはDI対象なんだぜ。とかね。
フレームワーク側がそういった注釈を処理してなんらかの処理を追加してくれたりする。

逆に小さなツールとかゲーム作ってるだけならあんまり出てこないと思う。


176:デフォルトの名無しさん
09/12/01 02:53:22
しかし全部javadoc

177:デフォルトの名無しさん
09/12/01 03:47:15
最近まったくjavadoc見てないな。
自動で更新されてるけどまったく見ない。
どうせコード確認しないとあかんし。

178:デフォルトの名無しさん
09/12/01 12:29:27
>>171
勘違いが明らかなときは、それを一言で表現できないなら、レスしない方がいいね。
新人教育のときのような応答をするとバカを見ることになりそうだ。

179:デフォルトの名無しさん
09/12/01 12:33:18
でもふつう>>168のように考えると思うんだが

180:デフォルトの名無しさん
09/12/01 12:44:45
いやバカは無知をさらけ出さない質問者
小出しするやつはしぬ

181:デフォルトの名無しさん
09/12/01 12:54:56
ええよええよ
目下に馬鹿にされるのは慣れてるから

182:デフォルトの名無しさん
09/12/01 15:04:11
BufferedReaderで開いたファイル(bin)に
akljflkgjadb
jdnfkgjnd;fkj
fjng;alkjndf;gk
と書かれている場合に、bin.read()で一文字ずつ配列にいれていきたいのですが、改行がきたらループを抜けたい場合
while(□ !=bin.read())
の□には何を書けばいいですか?\nでいいんですかね?

183:デフォルトの名無しさん
09/12/01 16:36:34
EOFて定数なかったっけ?

184:デフォルトの名無しさん
09/12/01 16:51:48
1 3 8 9
5 2 4
1 4
8 12 3 10
7 9 8
5 3 11 3 9 4 2
4 5 2

↑のような内容のテキストファイルがあります。
各行にはいくつかの数字が羅列されてるんですが
その個数は各行ごとに完全にランダムで
かつ最大何個とかも決まっていません。
このようなファイルを読み込んで
int[][]、もしくはint[][]でできないとしたら別の何らかの形で持ちたいのですが
どうするのがよいでしょうか?

185:デフォルトの名無しさん
09/12/01 18:19:51
>>182
ためしてないけど、たぶんファイルに記録されている改行コードがその
まま返るんじゃないかなあ。Windows で作ったテキストファイルだと
\r と \n の2文字。

せっかくBufferedReaderなんだから、readLine() で一気に1行読んでか
ら処理するのがお勧め。こっちなら改行コードが何か考える必要がない。



186:デフォルトの名無しさん
09/12/01 20:10:07
>>184
別にint[][]でいいんじゃねーの。
そのデータをどう使いたいのかわからんから何とも言えないが。

187:デフォルトの名無しさん
09/12/01 20:24:53
ファイルの内容をint[][]型の変数にどうやって格納するか
ってのを聞きたいんじゃないの?

188:デフォルトの名無しさん
09/12/01 20:26:11
>>187
そうです、まさにそれが知りたいです
えすぱー!

189:デフォルトの名無しさん
09/12/01 20:32:54
>>185にほとんど答えが書いてあるけど…
ストリームオブジェクトを作ってreadLineで読み出すしかない。
readLineで読み込んだ1行はさらに区切り(ここでは空白?)を元に文字列を分解して数字を取り出す。
汚いコードになるだろうけど、ベタにテキストファイルに数字が羅列されてるなら仕方ない。

190:デフォルトの名無しさん
09/12/01 21:15:34
スレッドを利用してバイトデータを送受信(例:mainで送信、スレッドを拡張したクラスで受信)したいのですが、それぞれ別にSocketオブジェクトを作成する必要ありますか?
ググってみて必要ないと判断して打ったのですが、どうやってスレッドを拡張したクラスでSocketオブジェクトを利用するのか分かりません。
ちなみにmainでポートと接続先を指定してSocketオブジェクトを作っています。
ご教示お願いします。

191:デフォルトの名無しさん
09/12/01 21:43:37
>>190
こんな感じか?
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class a190 {
public static void main(String[] args) throws Exception {
new a190Receive().start();
Socket socket = new Socket("localhost", 6666);
OutputStream os = socket.getOutputStream();
os.write(111);
os.write(222);
os.close();
socket.close();
}
public static class a190Receive extends Thread {
@Override
public void run() {
try {
ServerSocket receive = new ServerSocket(6666);
Socket socket = receive.accept();
InputStream is = socket.getInputStream();
System.out.println("receive : " + is.read());
System.out.println("receive : " + is.read());
is.close();
socket.close();
} catch(Exception e) {throw new RuntimeException(e);}
}
}
}


192:デフォルトの名無しさん
09/12/01 21:59:25
>>184
行数も特に固定じゃないんだとしたら、ArrayList<int[]>とか使った方が楽な気もするけどなぁ
読み込みはまぁ、>>189

193:184
09/12/01 22:07:25
先に
int[][] data = new int[N][];
としておいて

FileReader fr = new FileReader(output);
BufferedReader br = new BufferedReader(fr);

String s=null;
String[] ss = new String[99];
for (i = 0; i < N; i++) {
s=br.readLine();
ss = s.split(" ");
int j = 0;
while (ss[j]!=null) {
data[i][j] = Integer.parseInt(ss[j]);
j++;
}
}
こんな感じでやろうとおもったらdata[0][0] = の時点でぬるぽ
横のサイズも指定しておかないとだめなんですかね?

194:184
09/12/01 22:09:11
>>192
行数はNで決まってます
なにかやり方あったら教えてくれませんか?
ArrayList<int[]>使う方法でもいいので

195:デフォルトの名無しさん
09/12/01 22:15:54
BufferedReaderの行の下から↓に変えてみ

for (int i = 0; i < N; i++) {
String ss[] = br.readLine().split(" ");
data[i] = new int[ss.length];
for (int j = 0, n = ss.length; j < n; j++) {
data[i][j] = Integer.parseInt(ss[j]);
}
}

196:デフォルトの名無しさん
09/12/01 22:42:33
>>194
あぁ行数は固定だったんだ。勝手に行数も可変なんだと思ってた。
ならint[][]でもArrayList<int[]>どっちでもいいや。というか、int[][]の方がわかりやすいかも

横の配列分もnewしておかないとぬるぽになるよ。
一応ArrayList使うとしたら

ArrayList<int[]> al = new ArrayList<int[]>();
String[] ss;
int[] data;
for(int i = 0 ; i < N ; i++){
ss = br.readLine().split(" ");
data = new int[ss.length];
for(int j = 0 ; j < ss.length ; j++){
data[j] = Integer.parseInt(ss[j]);
}
al.add(data);
}

こんな感じかな

197:184
09/12/01 22:45:27
>>195
すごい!できました!
こういうふうにnewすればよかったんですね
ありがとうございまうす

198:184
09/12/01 22:47:26
>>196
なるほど、ありがとうございます!
大変勉強になりました

199:デフォルトの名無しさん
09/12/01 22:54:40
>>191
ご回答ありがとうございます。
このような主旨のプログラムを異なるホスト同士で送受信できるようにするにはどうすればよいでしょうか?

200:デフォルトの名無しさん
09/12/01 22:59:46
普通に送信受信それぞれのクラスを異なるホスト上で実行して、
送信側Socketのコンストラクタでlocalhostとしているのを、相手ホスト名に変えるだけ。

ちなみにサーバソケットは、accpetしたソケットを受け取って
受信処理を専用で行う別スレッドをあげるのが一般的なやり方。

201:デフォルトの名無しさん
09/12/01 23:16:37
Socket socket;
....
// Thread A
while(true){
 socket.getOutputStream().write(...);
}
...
// Thread B
while(true){
 ... socket.getInputStream().read();
}

ってOKだっけ?
未だに慣れない

202:デフォルトの名無しさん
09/12/01 23:24:11
むしろ1.3時代では普通なんじゃないの。
今はノンブロッキングIOだろうね。

203:190
09/12/01 23:24:28
>>200
言葉足らずでした。
申し訳ありません。
>>191のようなプログラムを雛形として両ホスト共送信も受信も行いたいのですが、接続の際の処理をどのように記述するか思い浮かばないのです。
レスありがとうございました。

204:デフォルトの名無しさん
09/12/02 00:14:59
>>203

超適当に書いた。例外処理と終了処理してないんでよろしく。
URLリンク(rg550.hp.infoseek.co.jp)

サーバを
>java a203 -s 5555
で実行してから

クライアントを
>java a203 -c localhost 5555
で実行してくれ。
あとはByte(-127から127)をサーバかクライアントのコンソールに入力してエンター押せば
相手のコンソール画面に入力値が表示されるはず。
終了はCtrl+C押して抜けてくれ。

205:190
09/12/02 01:47:56
>>204
ありがとうございました。
参考にさせていただきます。

206:デフォルトの名無しさん
09/12/02 11:21:02
>>185>>189
レスありがとうございます。
最初はreadlineでやってたんですが、類似文字列マッチングするのに一文字ずつ配列にいれたいんですが、
readlineしたあとに文字列を配列にいれることは可能ですかね?

207:デフォルトの名無しさん
09/12/02 12:16:02
メインメソッドのmain(String[] args)ってのはどこからString形式を引数として持ってくるのでしょうか
又、Stringクラスのargsに代入された引数を利用することはよくあるのでしょうか?

208:デフォルトの名無しさん
09/12/02 12:46:21
プログラムの起動元(親プロセス)から渡される
よくある

209:デフォルトの名無しさん
09/12/02 14:54:06
>>206
そりゃ可能さー。
String line = reader.readLine();
char[] chars = line.toCharArray();


210:デフォルトの名無しさん
09/12/02 16:34:21
C[i][j]にC[i-1][j],C[i][j-1],C[i-1][j-1]の最小値を代入したい場合って

 C[i][j]=C[i-1][j];
if(C[i-1][j]>C[i][j-1])
C[i][j]=C[i][j-1];
if(C[i][j-1]>C[i-1][j-1])
C[i][j]=C[i-1][j-1];
であってますよね?なんか結果が変なんですが。。。

211:デフォルトの名無しさん
09/12/02 16:42:06
合ってない
2つめのifは
if(C[i][j]>C[i-1][j-1])
としなければいけない

212:デフォルトの名無しさん
09/12/02 17:04:58
>>211
即レスサンクスです。
その通りですね。助かりました

213:デフォルトの名無しさん
09/12/02 17:45:07
1*2*3*4*5*・・・・*21をfor文を使って書きたいのですが、よくわかりません。教えてください。
自分で書いたコード
class A
{
public static void main (String args[])
{
int sum = 1;

for(int num = 1; 21>=num; num++)
{
sum *= num;
}
System.out.println(sum);

}
}

214:デフォルトの名無しさん
09/12/02 17:53:15
>>213
intはそんなに大きい数を表現できない。
longでもダメかも。


215:デフォルトの名無しさん
09/12/02 17:59:07
>>214
longに変えると1307674368000で正解でした。
ありがとうございます。

216:デフォルトの名無しさん
09/12/02 18:35:21
sinの値を-180度から180度までの間で30度毎に求めるプログラムを作っていますが、出来ません。
間違いを教えてください。
class A
{
public static void main (String args[])
{
double x,y;
double i = 3.1415;
for(x = -180; x<=180; x += 30)
{
y=Math.sin(x/i);
System.out.println(x+"\t"+y);
}
}
}

217:デフォルトの名無しさん
09/12/02 18:36:32
上の結果
-180.0 -0.6807614127357615
-150.0 0.584287097545724
-120.0 -0.4787242540439776
-90.0 0.3657149018743784
-60.0 -0.24701689039044697
-30.0 0.12447655548158028
0.0 0.0
30.0 -0.12447655548158028
60.0 0.24701689039044697
90.0 -0.3657149018743784
120.0 0.4787242540439776
150.0 -0.584287097545724
180.0 0.6807614127357615

218:デフォルトの名無しさん
09/12/02 18:57:27
× y=Math.sin(x/i);
○ y=Math.sin(x*i/180);
◎ y=Math.sin(Math.toRadians(x));

219:デフォルトの名無しさん
09/12/02 18:58:22
y=Math.sin(i/180*x);


220:デフォルトの名無しさん
09/12/02 19:00:36
URLリンク(www.procreo.jp)

221:デフォルトの名無しさん
09/12/02 19:01:40
>>218
>>219
あーなんで気づかんかったんやろ
ありがとうございます。

222:デフォルトの名無しさん
09/12/02 19:02:21
>>220
参考になります。

223:デフォルトの名無しさん
09/12/02 19:41:34
Cっぽいところが泣ける

224:デフォルトの名無しさん
09/12/02 20:46:05
2ちゃんねるを荒らすプログラムを作りました!! 皆よろしくね!

スレリンク(news4vip板:537番)+539

225:デフォルトの名無しさん
09/12/02 22:10:18
StrutsでBeanの中に、Beanを格納したArrayListを入れたいのですが、
JSP側のタグライブラリでの取得の方法が分かりません。
色々サイトでも調べてみましたが、どうしてもJSP側でエラーが発生します。
「 Bean Action のプロパティ bbsNaiyouValueList に対するゲッターメソッドがありません」というエラーです

大まかな内容です
「java beans」
private List bbsNaiyouValueList;
public void setBBSNaiyouList(List bbsNaiyouValueList) {this.bbsNaiyouValueList = bbsNaiyouValueList;}
public List getBBSNaiyouList() {return bbsNaiyouValueList;}

「Actionクラス」
List labelNaiyouValueList = new ArrayList();
labelNaiyouValueList.add("リストにどんどん内容を入れる");
setBBSNaiyouList(labelNaiyouValueList);

「struts-config」
<form-beans>
<form-bean
name="Action"
type="struts.TestActionForm" />
</form-beans>

「JSP」
<logic:iterate id="Action" property="bbsNaiyouValueList">
<bean:write name="Action" property="bbsNaiyouValueList" />
</logic:iterate>

おそらくJSPの記述方法に問題があると思います。大変お手数ですが
どなたか分かる方がいらっしゃればご教授願います。

226:デフォルトの名無しさん
09/12/03 00:22:27
普通はTestActionForm(ここではActionという名前のFormBean)に
getBbsNaiyouValueListを作って(getBBSNaiyouListではない!)、以下のようなJSPを作成する。

<logic:iterate id="bbsNaiyouValue" name="Action" property="bbsNaiyouValueList">
<html:text name="bbsNaiyouValue" property="foo"/>
<html:write name="bbsNaiyouValue" property="bar"/>
</logic:iterate>

んでめんどくさいからnestedタグを使うと
<nested:iterate property="bbsNaiyouValueList">
<nested:text property="foo"/>
<nested:write property="bar" />
</nested:iterate>

*とうぜんstruts-config.xmlのaction-mappingで、
"Action"フォームを使っているという前提で。

*foo/barはbbsNaiyouValueListの要素Beanに
プロパティ(getFoo()/getBar())が存在すると仮定した場合

*大文字小文字のルールはJavaBeans仕様に準拠しなければならない。
属性が"bbs"NaiyouValueListなのに、ゲッターセッターで勝手にBBSとかBBsとかつけてはいけない。

227:デフォルトの名無しさん
09/12/03 01:02:54
現在seasar2(SAStruts)にて作成されたWEBシステムを
改修しているのですが、どうしても解決しないことがあるので
ご存知の方がいればご教授お願いできないでしょうか。

ファイルアップロード部分を改修しているのですが
チュートリアル(sa-struts-tutorial)に従って
作成されているようなのですが、該当のjspの
<input type="file" name="formFile" />
部分を開くと
テキスト部分が灰色でテキストをクリックすると
ファイル参照ダイアログがでてきてしまいます。
(参照ボタン押下時のポップアップダイアログ)

試しに、チュートリアルのプロジェクトも
セッティングし、同様環境でうごかしましたが
テキスト部分は白色でクリックしても反応がなく
参照ボタンによるダイアログ内指定のファイルが
書き込まれました。

チュートリアルと同様の動作をさせたいのですが
何か影響を与えている設定ファイルなりに心当たりの
ある方はいらっしゃらないでしょうか。
足りない情報等あれば追記いたします。宜しくお願いします。

228:デフォルトの名無しさん
09/12/03 01:13:04
Javascriptが何かしら動いているんではないの?

229:デフォルトの名無しさん
09/12/03 01:20:10
URLリンク(msdn.microsoft.com)
ファイルのアップロード制御

こんなのあった。IE8つかってるんでないの?

230:デフォルトの名無しさん
09/12/03 01:21:28
レスありがとうございます。

問題切り分けとして、一度Action,Form,jspファイルそれぞれを
改修システム側のプロジェクトにベタ張りして呼び出したところ
同様の現象(テキスト灰色にて、クリックイベントでダイアログ表示)
が起きたので、ソース内でscriptを呼び出しているのが原因で
起こってはない感じです。

231:デフォルトの名無しさん
09/12/03 01:25:25
最終的にブラウザで表示されるソースはどうなってんの?(ブラウザのソース表示)
むしろそれ見るほうが早いような。
SAStrutsが(設定によって)特別なスクリプトコードを吐くってのは考えにくいけど。

232:デフォルトの名無しさん
09/12/03 01:26:43
>>229さん

情報が小出しになり、申し訳ないです。
顧客要件としてはFirefox3.5なのですが
現象として確認したのは
チュートリアル:IE6.0○/FireFox3.5○
改修システム:IE6.0○/FireFox3.5×
(×が灰色ダイアログポップアップ)

現状改修システムをFireFoxで動かしたときのみ
現象が発生します。

233:デフォルトの名無しさん
09/12/03 01:30:42
>>231さん

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

チュートリアルのソースでも同様現象がでているため
そちらのソースを張らしていただきます。
<html>
<head>
<title>Tutorial: Upload</title>
<link rel="stylesheet" type="text/css" href="/patent/css/sa.css" />
</head>
<body>
<h1>Tutorial: Upload</h1>
<form name="getCsvActionForm" method="post" action="/patent/getCsv/" enctype="multipart/form-data">
<input type="file" name="formFile" /><br />
<input type="file" name="formFiles[0]" /><br />
<input type="file" name="formFiles[1]" /><br />
<input type="submit" name="upload" value="アップロード"/>
</form>
</body>
</html>
ただ、同様ソースで改修システム側のプロジェクトでのみ
起こっているためjspからの解析は厳しいのではないかと
思っています。

234:デフォルトの名無しさん
09/12/03 01:33:46
最近のブラウザはそうゆう動作をするように変更されてるとどこかで聞いた

235:デフォルトの名無しさん
09/12/03 01:41:02
そもそもFireFox3.5で灰色なのはデフォルトじゃね?
↓みたいなピュアなhtmlべた書きで表示させても、
同じように灰色でテキストフィールド(っぽいとこ)クリックするとダイアログでちゃうよ。

<html>
<head>
<title>test</title>
</head>
<body>
<form method="post" action="/dummy" >
<input type="file" name="formFile" /><br />
</form>
</body>
</html>

むしろチュートリアルが普通(?)に表示できてるってほうを
調べたほうがよさげ。

236:デフォルトの名無しさん
09/12/03 01:51:00
>>234,>>235さん

レスありがとうございます。
デフォルトなのですね・・・普段IEでしか開発していなかったので
その切りわけの発想がありませんでした。指摘ありがとうございます。

xmlやプロパティファイルの差分はすでに見ていっているのですが
該当する設定を見つけきれないのが現状です。

237:デフォルトの名無しさん
09/12/03 02:08:46
気になったのでSAStrutsのチュートリアルをローカルで実行してみた。
Eclipse3.5のWTPでTomcat5.5使用。

FireFox3.5でuploadアクション表示すると
やはりテキストフィールド灰色でクリックするとダイアログ表示になる。

238:デフォルトの名無しさん
09/12/03 02:10:05
そもそも
>チュートリアル:IE6.0○/FireFox3.5○
このFireFox3.5が○っていうのが何かの勘違いでは?

239:デフォルトの名無しさん
09/12/03 02:16:01
>>237,>>238さん

レスありがとうございます。
指摘どおりでした・・・どこで勘違いしたのか。
納期直前でテンパっていたのか・・・本当申し訳ないです。
勘違いしている部分が分かったので、一先ず進展しました。
お手数とって頂きありがとうございました。

(となると、顧客要件実装が厳しい感じがしてきました・・・)

240:デフォルトの名無しさん
09/12/03 02:18:47
う、うん。大変そうだががんばってくれ。

241:デフォルトの名無しさん
09/12/03 04:07:06
>>226さん

どうもありがとうございます。

<logic:iterate id="bbsNaiyouValue" name="Action" property="bbsNaiyouValueList">
<html:text name="bbsNaiyouValue" property="foo"/>
<html:write name="bbsNaiyouValue" property="bar"/>
</logic:iterate>

をJSPで作成した所
「プレフィックス htmlでインポートされたタグライブラリには、タグ write は存在しません」
というエラーが発生しました。

nestedタグだとエラーは発生しません(何も表示されませんでした)

>foo/barはbbsNaiyouValueListの要素Beanに
>プロパティ(getFoo()/getBar())が存在すると仮定した場合

1つ質問なのですが、bbsNaiyouValueListの要素Beanに
プロパティ(getFoo()/getBar()) を存在させるにはどうすれば良いのでしょうか?
TestActionForm内に

public List getBbsNaiyouValueList() { return bbsNaiyouValueList; }
public List getFoo() { return foo; }
public List getBar() { return bar; }

と作成すれば良いのでしょうか?


242:デフォルトの名無しさん
09/12/03 07:19:41
シングルトンってインスタンスがひとつしかつくれませんが
三つしかつくれないクラスってどうやって作ればいいでしょうか?

243:デフォルトの名無しさん
09/12/03 07:36:15
すまん。html:writeはbean:writeだわね。
foobarはbbsNaiyouValueListにaddされたオブジェクトが持っているプロパティ。
なにも表示されないのは、そもそもbbsNaiyouValueListが空なんだと思う。

244:デフォルトの名無しさん
09/12/03 09:07:05
>>242
シングルトンのインスタンスいれる変数を配列にして
getInstanceメソッドで頭から埋めていくとか

245:デフォルトの名無しさん
09/12/03 09:53:37
>>244
サンプルでくれ

246:デフォルトの名無しさん
09/12/03 10:23:03
getInstance1、getInstance2、getInstance3 でおk

247:デフォルトの名無しさん
09/12/03 11:52:49
>>246
かっけー

248:デフォルトの名無しさん
09/12/03 13:31:58
Javaの台形則をもちいた数値積分の質問です。 三次関数f(x)=x^3-7x^2+14x-8と直線f(x)=0とy軸で囲まれた部分の面積を求めたいのですができません。
積分区間は1~4です。
グラフを書くと負の値がでてしまうので三次関数の値の絶対値を定積分するようですが、どういうif文を書けばいいんですか?



249:デフォルトの名無しさん
09/12/03 14:19:15
自分で分かるところまでのソースを示すぐらいの努力はしたら?

250:デフォルトの名無しさん
09/12/03 15:11:08
>>249
URLリンク(chie.mobile.yahoo.co.jp)
すみません。

251:デフォルトの名無しさん
09/12/03 16:58:37
>>248 自己解決しました。

252:デフォルトの名無しさん
09/12/03 22:17:12
Windows+Java1.3.1の環境でswingを使ったGUIのプログラムを修正しているのですが、
どうにも妙な動きをしていて困っています。

画面上にJLabelとJButtonがいくつか並んでいて、
JLabelをクリックするとアクションリスナ内でモーダルのJDialogを二つ続けて表示し、
そのダイアログ上での入力に応じて画面上のJButtonを
setEnabled(false)とする、という処理があるのですが、
画面上のボタンにフォーカスが当たっている(ボタンの縁に点線がある)状態でラベルをクリックすると
一回目のJDialogが開いている時はそのフォーカスは消えているのですが、
それを閉じて二回目のJDialogを開いた時に、フォーカス線が表示されてしまいます。

そのままフォーカス線が表示されたボタンがsetEnabled(false)となってしまうと、
ボタンはグレイアウトされていながらフォーカス線がある、という変な状態になってしまいます。
さらにその後他の操作でそのボタンがEnabledとなっても、ずっとフォーカス線が表示されっぱなしです。
ボタンとしてはクリックすると普通に動作するのですが、Tabでのフォーカス移動をすると
その変になったボタンの前のボタンで詰まってしまいます。

上記のような現象について、何か情報をお持ちの方がおりましたら
ちょっとした事でも構いませんので教えて下さい。
walk-aroundでもバッドノウハウでも構いません。
よろしくお願いします。

253:デフォルトの名無しさん
09/12/03 22:34:59
ダイアログを表示する前に、
強制的にボタンのフォーカスを取り上げてみては?
ボタンの transferFocus() を呼ぶとか、
他のコンポーネントの requestFocus() を呼ぶとか
(requestFocusInWindow() は 1.4 以降なので)。


254:デフォルトの名無しさん
09/12/04 00:52:15
Eclipceを使い五目並べのプログラムを作成してたのですが、
マウスをクリックした時碁石を置くのがうまく動きません。
とりあえず黒石を置きたいのですが、何か間違い、おかしな所等あればご指摘お願いします。

URLリンク(www.rupan.net)

255:252
09/12/04 08:05:29
>>253
ありがとうございます。
そうですね、手動でフォーカスを外す方向で考えてみます。
ダイアログでキャンセルの操作をした時にもフォーカスが無くなる方が
変なフォーカス線が残るよりはましだと思いますので。


256:デフォルトの名無しさん
09/12/04 09:51:19
>>254
おかしな所として
とりあえずクリックを監視してないと思う
こんな感じの↓
panel1.addMouseListener(new SquareMouseAdapter());

黒塗りに関するソースは色々と試そうとしてるのか
どういう方向で解決したいのか分からなかったから触らないでおく

257:デフォルトの名無しさん
09/12/04 11:09:14
Windows 7 x64でjvmが調子悪い。32bit版jvm使ってるんだが、
EclipseやAptana Studioが起動後しばらくすると
JVMが EXCEPTION_ACCESS_VIOLATION (0xc0000005) を吐いて落ちる。
同じファイルをWindows XP x86で実行してもエラーは起こらない。
jvmはEclipse All in oneパッケージについてたやつ使ってるし。

何か解決策思いつくやつおらん?
メモリ8GB詰んでたら動かないとか?

258:デフォルトの名無しさん
09/12/04 11:32:40
>>257
おまえじゃ無理
もう諦めろ

259:デフォルトの名無しさん
09/12/04 11:49:52
はいはい、XPモードで使えばいいんだろ

260:デフォルトの名無しさん
09/12/04 16:26:52
頭悪いのは仕方ないとして
質問する時の態度ぐらいは考えた方がいいかも

261:デフォルトの名無しさん
09/12/04 17:02:13
答える気がないなら黙ってればいいのに

262:デフォルトの名無しさん
09/12/04 17:34:17
次の方どうぞ~

263:デフォルトの名無しさん
09/12/04 19:19:24
>>257
Subversionインストールしてね?

264:デフォルトの名無しさん
09/12/04 21:25:25
>>257
相当頭の痛い子のようですね。

265:デフォルトの名無しさん
09/12/04 21:27:18
>>257
ni-to otu

266:デフォルトの名無しさん
09/12/05 03:37:14
実行可能なjarファイルを作成して、
コマンドプロントからjava -jar JarFile.jarとすると起動できるのですが、
jarファイルを直接ダブルクリックしても実行できません。
どうすればダブルクリックで実行できるようになりますか?


267:デフォルトの名無しさん
09/12/05 03:46:01
>>266
ファイルタイプ関連付け
でぐぐれ

268:デフォルトの名無しさん
09/12/05 04:06:26
>>267
javax.exeに関連付けてダブルクリックしたら
could not find the main class と表示されて実行できません。

ちなみにXPだとダブルクリックで問題なく実行できるのですが、
現在使用しているWindows7では上記のような表示が出て実行できません。


269:268
09/12/05 04:07:49
↑javax.exe じゃなくて javaw.exe です

270:デフォルトの名無しさん
09/12/05 05:03:57
パスの問題か?

271:デフォルトの名無しさん
09/12/05 06:37:23
>>268
-jarが足らない

272:デフォルトの名無しさん
09/12/05 07:50:03
batファイルでいいじゃない

273:デフォルトの名無しさん
09/12/05 08:21:58
shellexecuteするexe作ればいいじゃない

274:デフォルトの名無しさん
09/12/05 11:20:58
このスレの過疎りぐあいのようにJAVAもやばそうだ

275:デフォルトの名無しさん
09/12/05 18:37:52
今からJavaを1から勉強するのって手遅れなのかな。
周辺技術がたくさんありすぎてわけわからんのです。

276:デフォルトの名無しさん
09/12/05 18:40:02
>>275
必要な所だけ覚えればいいと思うんだけど
俺も1年くらい前からJavaを勉強しているけど、自分に必要な所しか知らない

277:デフォルトの名無しさん
09/12/05 18:40:09
早く7出せよ馬鹿

278:デフォルトの名無しさん
09/12/05 18:52:57
java 7は来年の9月にリリースを延期したしね

279:デフォルトの名無しさん
09/12/05 18:54:08
>>276
どうもです。
必要なところだけなら何とかなるかも知れないです。
とりあえずAndroidとGoogle App Engineのドキュメントを読み進めます。

周辺技術がたくさんあるってことはそれだけ色んな問題にJavaが適用できるってことですよね。
その問題の最適解がJavaの使用かどうかはわかりませんが、頑張ってみます。

280:デフォルトの名無しさん
09/12/05 19:10:31
マルチプラットフォームで
googleに引っかかりやすくサポート受けやすくて
鯖から家庭用PCまでサポートしてるのが
java

という認識

281:デフォルトの名無しさん
09/12/05 21:53:09
>>257
Windows x64でも32bit版Eclipseは動くぞ。7はしらん。

282:デフォルトの名無しさん
09/12/05 22:37:28
javaは業務系の仕事してる人にとっては重要なんだろうだけど
Webサービス系だと、もうマンモスサイトでもPHPやRoRで十分なんだよね。
自分の場合、食べログがRailsで作られてるってのを知ってから完全にスクリプト言語に移行してしまったな。
フリーだとJavaじゃ稼げない

283:デフォルトの名無しさん
09/12/06 07:54:08
>>281
うっひょ~

284:デフォルトの名無しさん
09/12/06 19:16:37
JNIでC言語の関数を呼ぶとき、C側の引数がcharもポインタの場合のサンプルってありますでしょうか?
色々ネットを探しても見つけることができませんでした。


285:デフォルトの名無しさん
09/12/06 20:46:39
>>284
URLリンク(java.sun.com)
で変換。jcharArrayだとワイド文字、cで言うcharならjbyteArrayになる。

286:デフォルトの名無しさん
09/12/07 02:06:27
JavaのJListで、自動で項目選択させています。

setSelectedValueメソッドで値指定して項目選択なら、項目が見える位置までスクロールさせる機能がついてるのですが
setSelectedIndexメソッドにはついていません。

Indexで項目選択位置を指定して、その選択項目が見えるまでスクロールさせるにはどうすればいいのでしょうか?

287:286
09/12/07 10:11:07

自己解決しました。

288:デフォルトの名無しさん
09/12/07 14:09:58
javaで、クラスを使って花を作りたいのですが、どうすればいいですか?orz
ミ●キーを作ったので、そこから変形させたいのですが。

289:デフォルトの名無しさん
09/12/07 15:01:16
質問が全く意味不明。まずはソースを晒せ

290:デフォルトの名無しさん
09/12/07 15:35:11
javascriptのshowModalDialogでjspを直接呼んだ(※1)場合の
呼び元の値の取得(※2)方法は分かったのですが
showModalDialogでservletで処理してからjspを呼ぶ(※3)場合の
servletでの呼び元の値を取得する方法を教えてください。

※1
xxx=1;
window.showModalDialog('aaa.jsp',xxx,);

※2
alret(window.xxx);

※3
xxx=1;
window.showModalDialog('bbb',xxx,);

291:デフォルトの名無しさん
09/12/07 18:30:24
スレ違い

292:デフォルトの名無しさん
09/12/07 23:11:02
そして過疎へ・・・

293:デフォルトの名無しさん
09/12/07 23:12:40
FileListFlavorでドラッグアンドドロップを実装しようとしています。

メッセンジャーなどのソフトウェアで
explorerからのドラッグアンドドロップで操作が出来るものについて
Javaから直接ドラッグアンドドロップして操作したいです。

URLリンク(terai.xrea.jp)
ここを参考に組んではみましたが、うまくいかないときがあります。

具体的にはSkypeです。
explorerからSkypeのチャットウィンドウにDnDすると
ファイル送信できるはずなのですが、なぜか送信できず・・・

何か見落としてる場所あるんでしょうか

294:デフォルトの名無しさん
09/12/07 23:21:49
>>293
根本的に能力が低い
ただそれだけ

295:デフォルトの名無しさん
09/12/07 23:48:04
spy++で覗け。

296:デフォルトの名無しさん
09/12/08 00:47:28
まともにDnDの対象に出来るのってURL LISTくらいで次にごく一部の画像のみだよ。
定石としてはURLで受け取って自前で全部処理。

297:デフォルトの名無しさん
09/12/08 01:05:39
マルチスレッド環境で
各スレッドからstaticなBufferedWriterを利用してファイル書き込みした場合
競合って発生しますか?

また発生した場合どうなりますか?

298:デフォルトの名無しさん
09/12/08 01:22:05
Writerはスレッドセーフどす。

299:デフォルトの名無しさん
09/12/08 01:36:23
>>297
なんで実験してみないの?

300:デフォルトの名無しさん
09/12/08 02:41:00
>>298
サンクス

>>299
お金ないんです

301:デフォルトの名無しさん
09/12/08 11:30:33
>>300
いやいや、開発に必要な環境はPC以外すべて無償でしょ。

まあそれはおいといて、
今EJB3の勉強しているんですが、実案件としてEJBってどのくらい使われているんでしょうか。

リモートのwebサービスを組み合わせて利用するというのがクラウドの考えにあっていると思ったのですが、
とりあえず動かしてみるってレベルでもかなり面倒な印象です。
javaでwebAPIを公開しているようなサービスってどんな技術を採用するんだろう。

302:デフォルトの名無しさん
09/12/08 15:51:56
実行時の
java.lang.ArrayIndexOutOfBoundsException: 5 ってどんなエラーですかね?

303:デフォルトの名無しさん
09/12/08 15:52:37
webサービス系でEJBなんて使ったこと無い。金融系とかならあるのかもしれないけど。

304:デフォルトの名無しさん
09/12/08 15:54:10
>>302
その言葉の通りだろうがボケがァァァァ

配列 添え字 領域の外 例外 

305:293
09/12/08 19:28:18
SWTだとうまくいく・・・のでAWTがダメな予感
諦めました・・・

306:デフォルトの名無しさん
09/12/08 21:03:05
SWT使うくらいならC#使えば?と思うくらいSWTはプラットフォーム寄り。
だからかな?

307:デフォルトの名無しさん
09/12/09 00:55:43
だれかいますか?


308:デフォルトの名無しさん
09/12/09 00:59:44
いません

309:デフォルトの名無しさん
09/12/09 01:05:36
いたw
ちょっと質問させてください!


310:デフォルトの名無しさん
09/12/09 01:11:21


public class Itest3  extends JFrame{

public final static int WIDTH=50;
public final static int HEIGHT=70;
public final static int FRAME_W=800;
public final static int FRAME_H=700;

static Card[] card = new Card[52];
public static void main(String args[]){
JFrame jf = new JFrame();
jf.setSize( FRAME_W,FRAME_H );
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
int pos=100;
String[] filen=new String[52];
String a;
String o;
for(int i=0;i<10;i++){

a=Integer.toString(i+1);
filen[i]="./obj/"+a+".png";//ファイル名作成: objディレクトリの中にファイル1.png~52.pngが入ってます。
o=filen[i];
card[i]=new Card(o,pos);//Card instance 生成
pos+=WIDTH;
}
//System.out.println("インスタンス作成されました");


311:デフォルトの名無しさん
09/12/09 01:12:56
for(int i=0;i<10;i++){
card[i].setBounds(card[i].posX,card[i].posY,50,70);
jf.getContentPane().setLayout(null);
jf.getContentPane().add(card[i]);

}
//System.out.println("フレームに追加されました");

jf.setVisible(true);
}
}


312:デフォルトの名無しさん
09/12/09 01:14:27





class Card extends JComponent implements MouseListener{

public final static int FIELD_X =350 ;
public final static int FIELD_Y =300 ;
boolean select=true;//カードの選択記憶
Image pic;
int posX;
int posY=500;

public Card(String s,int posx){
posX=posx;
pic= Toolkit.getDefaultToolkit().getImage(s);
addMouseListener(this);

}



313:デフォルトの名無しさん
09/12/09 01:17:14

public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(pic,0,0,this);

}




314:デフォルトの名無しさん
09/12/09 01:18:23
public void hand(Card c){
c.posX=FIELD_X;
c.posY=FIELD_Y;
c.setBounds(posX,posY,50,70);
c.repaint();
}


315:デフォルトの名無しさん
09/12/09 01:20:34
public void mouseClicked(MouseEvent e){
Card fc;
int mx=e.getX();
int my=e.getY();
Card c=(Card)e.getComponent();
fieldCard=c;
hand(c);
fc.posX=0;
fc.posY=0;
fc.setBounds(posX,posY);
}

316:デフォルトの名無しさん
09/12/09 01:27:44
WEBアプリを作っているのですが、プロパティファイルを更新した際に、サーバを再起動せずに更新した値を使うことは不可能なのでしょうか?

317:デフォルトの名無しさん
09/12/09 01:27:45
大体こんな感じのプログラムです。
Frame上にトランプカードの絵を表示させてクリックされたカードを上に
表示し直すというものです。
一応動いたのですが、paintComponentメソッドで表示させる順番が
恐らくカードの数字の大きいものから小さいものへ(getContentPane().add()
であとに追加されたものから順に?)という風になっているらしく、
一度選択したカードよりも大きな数字のカードを選んでも画面がなにも
変わりません。どうしたらいいでしょうか?

318:デフォルトの名無しさん
09/12/09 02:17:51
>>316
環境次第

319:デフォルトの名無しさん
09/12/09 02:59:22
サイコロゲームのヨットのプログラム教えてください。


320:デフォルトの名無しさん
09/12/09 03:48:49
CUIで改行なしに表示を書き換えるにはどうしたらよいでしょうか?
CUI版のプログレスバーを作りたいです、右端に数字%、左からだんだん*が詰まっていくような形式。
*****-----50% が
******----60% に書きかわるように。

321:デフォルトの名無しさん
09/12/09 04:08:28
>>320
System.out.print("\r*****----- 50%"); System.out.flush();
:
System.out.print("\r******---- 60%"); System.out.flush();

windowsのコマンドプロンプトって\r使えるのかな
ダメならエスケープシーケンス

322:デフォルトの名無しさん
09/12/09 06:01:10
winは2000以降無理

323:デフォルトの名無しさん
09/12/09 09:32:24
>>321
win7はそのコード使えるね。

324:デフォルトの名無しさん
09/12/09 10:44:49
>>317
何やらよくわからんが、いったんremoveしてaddし直すとか、setComponentZOrderとか、そのあたりみてみれば

325:デフォルトの名無しさん
09/12/09 11:42:57
ArrayList<String> objAry = new <String>ArrayList();
の部分に対して。

「型 ArrayList は総称ではありません。引数 <String> でパラメーター化できません。」
というエラーが発生します。


java version "1.6.0_15"です。
Eclipseのコンパイラ準拠レベルも変更してみたのですが、解決できません。

大変お手数ですが、解決策をご教授いただけないでしょうか。


326:デフォルトの名無しさん
09/12/09 11:46:38
>new <String>ArrayList();
new ArrayList<String>();

327:デフォルトの名無しさん
09/12/09 11:47:45
コンストラクタをArrayList<String>に変えろ

328:デフォルトの名無しさん
09/12/09 12:21:55
BeanReaderとbetwixtを使ってXMLを読み込む時の質問はここでしても良いですか?

329:デフォルトの名無しさん
09/12/09 13:45:24
エクセルでマクロをちょっといじる程度の者です。
Javaを勉強しようと思いました。
そんな入門者にベストなサイト、本を教えてください。
このサイトだけ、この本だけでとりあえずは大丈夫!的な。

330:デフォルトの名無しさん
09/12/09 13:48:53
>>329
ここ見ればマスターしたも同然
URLリンク(www.hellohiro.com)


331:デフォルトの名無しさん
09/12/09 14:19:41
JEditorPaneを使っていて気になった事があります
どうやって、スクロールバーの大きさを計算しているのですか?
教えてエロい人!!

332:デフォルトの名無しさん
09/12/09 14:53:58
>>330
あなたもエロくな~れ

333:デフォルトの名無しさん
09/12/09 16:41:40
javaのクラスライブラリにリフレクションをして、privateなメソッドにアクセスするのは止めた方がいいんですかね?


334:デフォルトの名無しさん
09/12/09 16:44:33
>>333
止めた方がいいが、それしか手段がなければ仕方ない。

335:デフォルトの名無しさん
09/12/09 18:27:23
>>330
ありがとー

336:デフォルトの名無しさん
09/12/09 19:10:59
過疎が酷いな…

337:デフォルトの名無しさん
09/12/09 19:13:50
そりゃ仕方ない
現実世界でもJava離れが進んでるんだもの

338:デフォルトの名無しさん
09/12/09 19:42:32
Javaがダメになったのはフレームワークの乱立とEJBのせいだと思う

339:デフォルトの名無しさん
09/12/09 19:57:00
フルスクリーンモードに移行すると初期化が終わるまで
FrameでpackしたCanvasのサイズが狂うんだけど、
初期化終了まで同期する方法って有る?

340:デフォルトの名無しさん
09/12/09 20:58:03
.NETのせいだと思う

341:デフォルトの名無しさん
09/12/09 21:32:59
Windows以外でもそうなら、Rubyのせいだな。

342:デフォルトの名無しさん
09/12/09 22:12:19
>>338が正解だろう。他言語のせいではないと思う。
プロジェクトごとに大した目的意識も無く好き勝手で色んなフレームワークを継ぎ接ぎしてるから
自分の場合は勉強する意識が失せてしまった。
いくら経験積んでも本質とは違う場所で苦労するだけでエンジニアとして成長してる気がしないんだよね。

343:デフォルトの名無しさん
09/12/09 22:18:44
まぁEJBがクソすぎたっつーことだな。

344:デフォルトの名無しさん
09/12/09 22:32:31
EJBを批判するとバカ扱いされるからEJBを批判したくないけど
使いたくない人はJavaそのものを避けるようになった。

345:デフォルトの名無しさん
09/12/09 22:58:00
PHPとか馬鹿が使う言語だろ~とか思ってたあの頃が懐かしい。

346:デフォルトの名無しさん
09/12/09 23:03:12
Javaで大成しても時代遅れ感が否めないもんな
seasarプロジェクトの人達とかすごい技術持ってるのに知名度も将来性もイマイチだし。
スピード感のあるweb屋が成功する時代

347:デフォルトの名無しさん
09/12/09 23:27:55
web屋はアクセサビリティ覚えてから仕事してくれ。
あと書類に仕様の名称くらい正しく使ってくれ。
昔みたいにURN,URI,URLを区別してた時代とは違うんだからそれくらい出来てくれ。

348:デフォルトの名無しさん
09/12/09 23:43:50
あるJPanelを別のJPanelに入れ替えたいのですが
どうすればいいのでしょうか?


349:デフォルトの名無しさん
09/12/09 23:49:04
古いJPanelをremoveして新しいJPanelをaddする

350:デフォルトの名無しさん
09/12/10 00:37:20
webの仕事したいなーと思ってjava勉強しようと思ったけど間違い?
相変わらずjava案件いっぱいある気がするんだが・・・
先が無いってこと?
先を考えたら何がいいわけ?

351:デフォルトの名無しさん
09/12/10 00:49:01
全部

352:デフォルトの名無しさん
09/12/10 01:22:57
今後も(オープン系での)エンタープライズなシステムはJava一択だと思うけど。
ただそーいった新規案件自体は、レガシー環境からのリプレースをメインとした需要だったわけで、
一時期ほどの活況はないだろうな。保守運用はいっぱいあると思うが。

単純なWebアプリ(簡単なデータ登録といろんな検索)とかのシーンでは
Javaの出番はないだろ。もはや。RoRあたりでがんばれ。


353:デフォルトの名無しさん
09/12/10 01:28:04
つ マ板

354:デフォルトの名無しさん
09/12/10 01:46:34
案件の数自体はJava案件は全然減ってないよ。
PHPやRoRが急激に増えただけ。
個人的な考えだけど、PHPやRoRの大きな利点として仕事以外でもスキルを生かせるところだと思う。
個人で作るサイトにJavaを使う理由はほとんど無いし。

355:デフォルトの名無しさん
09/12/10 10:21:16
そこでGAE/Jですよ。タダはでかい。

356:デフォルトの名無しさん
09/12/10 12:09:46
アルファ成分が事前に乗算されずに色成分と別で持ってる一つの画像をアルファ成分が乗算された新しい画像を生成するにはどうすればいい?
アルファ付きの8bit PNGが事前にアルファ成分を乗算してなくて透過指定したピクセルが透過せずに描画されてしまうんだけど。
元からアルファ成分を乗算した状態の画像を用意するってのはナシでお願い。

357:デフォルトの名無しさん
09/12/10 12:32:13
二点の座標で結ばれた線分の中点から垂直に30ピクセル上の点の座標を求めるにはどうすればいいでしょうか

358:デフォルトの名無しさん
09/12/10 12:35:15
sin.cos.tan

359:デフォルトの名無しさん
09/12/10 12:57:45
「上」がy座標の減少方向として((x1+x2)/2,(y1+y2)/2-30)

360:デフォルトの名無しさん
09/12/10 13:06:38
Java3Dのアプレットをブラウザで見れるようにするには
Java 3D Runtime for JREが必要らしいということは分かったのですが、
どこでダウンロードできるのでしょうか。

361:デフォルトの名無しさん
09/12/10 13:22:35
>>360
Java3DでぐぐってJava3Dのプロジェクトページへ行き、
バイナリのダウンロードページから動作させたい環境に合ったものを落としてくる。
インストールの仕方が分からないならインストーラ付きのやつを落とせ。

362:デフォルトの名無しさん
09/12/10 15:02:24
>>359
解答ありがとうございます
中点から真っ直ぐ上にではなく線分に対して垂直な座標が欲しいのですが…

363:デフォルトの名無しさん
09/12/10 16:02:14
C#のプログラムで取得したデータを
javaのプログラムで即座に読み込んで処理させたいのですが、
どうすればよいのでしょうか?

C#のデータ自体は1行程度の文字列で大体1秒ごとに
外部デバイスから取得されます。
C#側のソースも自由に変更することができます。

364:デフォルトの名無しさん
09/12/10 16:03:09
スレチだけど、暇つぶしに解いてみる

2点(x1, y1), (x2, y2)を結ぶ線分の垂直二等分線の方程式は、

a*X + b*Y + c = 0
a = x2 - x1
b = y2 - y1
c = (x1^2 - x2^2 + y1^2 - y2^2)/2

Y座標は2点の中点から-30なので求める座標は、

(-(b*d + c)/a, d)  ― ※
d = (y1 + y2)/2 - 30

とりあえず解は※だけど、a=0のときは「解なし」となるので注意

365:デフォルトの名無しさん
09/12/10 16:08:04
>>363
ソケット通信で送ればいいんじゃない?

366:デフォルトの名無しさん
09/12/10 16:09:33
>>364
数学苦手だけどsin,cosなしでできるもの?角度が必要じゃないの?

367:デフォルトの名無しさん
09/12/10 16:14:26
直角なので概念的にはベクトルや複素数などのテクニックが使われてます

368:デフォルトの名無しさん
09/12/10 16:15:35
>>366
中学レベル三角関数いらない

369:デフォルトの名無しさん
09/12/10 16:17:41
一次関数の傾きひっくり返すだけでしょ

370:デフォルトの名無しさん
09/12/10 16:23:13
>>365
なるほど。それでやってみます。
ありがとうございます。

371:デフォルトの名無しさん
09/12/10 16:26:42
ネタにマジレス



372:デフォルトの名無しさん
09/12/10 16:34:04
2点(x1, y1), (x2, y2)を結ぶ線分の方程式
y-y2=((y1-y2)/(x1-x2))*(x-x2)
2点(x1, y1), (x2, y2)の中点の座標(x3,y3)は
(x3,x3)=((x1+x2)/2,(y1+y2)/2) ...A
2点(x1, y1), (x2, y2)の中点を通る2点(x1, y1), (x2, y2)を結ぶ線分に垂直な直線の方程式
y-y3=-((x1-x2)/(y1-y2))*(x-x3) ...B
中点からのその直線に従って距離30ピクセルの位置の座標を(x4,y4)とすると
(x3-x4)*(x3-x4)+(y3-y4)*(y3-y4)=30*30 ...C
の方程式が成り立つ
以上のA,B,Cを連立してx4とy4を求めれば2つの座標が求まるはず
>垂直に30ピクセル上
これが示す「上」という概念が不明だが
Y軸にしたがって上下を決めるなら
求まった2つの座標のY座標を比較すればいい
上下を決める直線が別に存在するなら
ベクトルの概念がないと求まらないけど

373:デフォルトの名無しさん
09/12/10 16:58:03
ベクマスツカウヨロシアルヨ

374:デフォルトの名無しさん
09/12/10 17:35:16
>>372
そのまま連立しちゃダメだろ
Bの式のxとyにx4,y4を代入しなくちゃダメだろ

375:デフォルトの名無しさん
09/12/10 19:37:34
>>372
ここはプログラム板だ
数学の話なんかするな!

376:デフォルトの名無しさん
09/12/10 21:55:41
数学板?

377:デフォルトの名無しさん
09/12/10 22:04:28
自分が理解できないからって……

378:デフォルトの名無しさん
09/12/10 22:39:08
確かに板違いではあるが、プログラマなら数学に無縁ということもないだろ
何十レスと続くわけでも他に話題があるわけでもないし、高校数学までなら別にいいと思うがね

379:デフォルトの名無しさん
09/12/10 22:45:53
>他に話題があるわけでもない

泣けるね

380:デフォルトの名無しさん
09/12/10 23:02:19
すれちがい

381:デフォルトの名無しさん
09/12/10 23:32:59
>>378
禿げ!しく同意

382:デフォルトの名無しさん
09/12/11 06:03:53
SwingのJRadio buttonを改行込みできちんと表示させたいです.
◎~~~~~~
~~
◎~~~~~~
といった感じで,右側が端についたら折り返して欲しいのです.
今のところ
radio_panel.setLayout(new BoxLayout(radio_panel,BoxLayout.Y_AXIS));
と書いているのですが,これだと隠れてしまいます.
よろしくお願いします.

383:デフォルトの名無しさん
09/12/11 12:10:59
>>363
俺は似たような要件あったとき、
C#で一旦ファイルに落としてたなー
Javaでそいつtailするようにして。


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