2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

★★Java質問・相談スレッド134★★

1 :テンプレ(1/3):2009/11/21(土) 17:58:46
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    ttp://pc11.2ch.net/hp/
Webプログラミング ttp://pc11.2ch.net/php/
をご利用下さい。

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

前スレッド
★★Java質問・相談スレッド133★★
http://pc12.2ch.net/test/read.cgi/tech/1253376151/
次スレは>>950あたりで。

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


2 :テンプレ(2/3):2009/11/21(土) 17:59:11
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 8
ttp://pc11.2ch.net/test/read.cgi/tech/1227234261/l50
■ SWT は --
Java 高速GUI SWT 3
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part19
http://pc11.2ch.net/test/read.cgi/tech/1233822965/l50
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 9
ttp://pc12.2ch.net/test/read.cgi/tech/1249357352/

■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 68 ★★
http://pc12.2ch.net/test/read.cgi/tech/1248012902/

■ NetBeansに関する雑談は --
NetBeans Part5【Java/C++/Ruby/Python/PHP】
ttp://pc12.2ch.net/test/read.cgi/tech/1247926906/
■ Eclipseに関する雑談は --
Eclipse統合M28【Java/C++/Ruby/Python/Perl】
ttp://pc12.2ch.net/test/read.cgi/tech/1247051216/


3 :テンプレ(3/3):2009/11/21(土) 17:59:30
**** 開発環境が必要の場合は ****
■ J2SE 5.0 (1.5.0)
ttp://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
ttp://java.sun.com/javase/ja/6/

**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
ttp://www.java.com/ja


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

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

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


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

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

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

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

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

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

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

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

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

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

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

17 :デフォルトの名無しさん:2009/11/22(日) 22:43:41
http://java.sun.com/javase/ja/6/webnotes/runtime.html#redistribution

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


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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

49 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/11/23(月) 12:36:48
>>48
>>45はきっとタダの燃料だから・・・

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

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

53 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/11/23(月) 18:42:18
なんでそこで改行するんだ
例にある通り
C:\myjava>java WriteFile1 a.txt < b.txt
ってやれ

56 :デフォルトの名無しさん:2009/11/23(月) 21:23:01


http://www.searchman.info/java_eclipse/1090.html

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

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

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

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

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=46110&forum=12


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

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

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

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

64 :デフォルトの名無しさん:2009/11/23(月) 23:46:53
別もんだよ。
http://www.atmarkit.co.jp/fjava/rensai4/troublehacks02/troublehacks02_2.html
ここ見れ。

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

82 :デフォルトの名無しさん:2009/11/24(火) 22:11:42
ttp://www.nintendo.co.jp/ds/atrj/rule/index.html

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

84 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/11/25(水) 19:12:39
実行時の段階では元の型パラメータを取り出すことはできません。
instanceofのような動的型チェックには、型パラメータを含めることはできません。

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

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

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

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

90 :デフォルトの名無しさん:2009/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で見ることができました。』
上記の意味が理解できずに解決できないでいます
なにとぞご指示・ご指導のほどよろしくお願いします
参考にしたサイト
ttp://hpcgi2.nifty.com/a-yama/wiki.cgi?Eclipse%2FPlugin
ttp://www.atmarkit.co.jp/fjava/javatips/073eclipse025.html


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

107 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/11/27(金) 20:47:10
>>107
これは初心者ってか素人のレベルだな

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

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

110 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/11/27(金) 23:26:31
>>110
お前、態度でかいぞ
トーシロの無能が何言ってんだ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

123 :デフォルトの名無しさん:2009/11/28(土) 11:46:51
>>117
このあたりが参考になるのでは
ttp://java.sun.com/docs/books/tutorial/uiswing/components/passwordfield.html

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

148 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/11/29(日) 20:25:55
>>148
解説ありがとうございます。
理解できました。

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

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


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

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

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


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

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


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

156 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/11/30(月) 01:55:11
でも、それじゃクラス全体がメモリにロードされちゃいませんか?
確かクラスは自動でアンロードされなかったし問題ですよ。

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

159 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/11/30(月) 06:56:58
>>159
パス区切り記号は :(コロン)ではなく、;(セミコロン)です。

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

162 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/11/30(月) 11:24:00
すみません、激しく自己解決しました
calendar.add(Calendar.DAY_OF_WEEK, columnIndex);
ですね

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

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

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

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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

193 :184:2009/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:2009/12/01(火) 22:09:11
>>192
行数はNで決まってます
なにかやり方あったら教えてくれませんか?
ArrayList<int[]>使う方法でもいいので

195 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/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:2009/12/01(火) 22:45:27
>>195
すごい!できました!
こういうふうにnewすればよかったんですね
ありがとうございまうす

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

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

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

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

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

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

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

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

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

超適当に書いた。例外処理と終了処理してないんでよろしく。
http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/852.java

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

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

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

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

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

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

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


210 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/12/02(水) 16:42:06
合ってない
2つめのifは
if(C[i][j]>C[i-1][j-1])
としなければいけない

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

213 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/12/02(水) 17:53:15
>>213
intはそんなに大きい数を表現できない。
longでもダメかも。


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

216 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/12/02(水) 18:57:27
× y=Math.sin(x/i);
○ y=Math.sin(x*i/180);
◎ y=Math.sin(Math.toRadians(x));

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


220 :デフォルトの名無しさん:2009/12/02(水) 19:00:36
http://www.procreo.jp/tutorial03.html

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

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

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

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

http://yutori7.2ch.net/test/read.cgi/news4vip/1259519941/537+539

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

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

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

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

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

229 :デフォルトの名無しさん:2009/12/03(木) 01:20:10
http://msdn.microsoft.com/ja-jp/ie/dd218483.aspx
ファイルのアップロード制御

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

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

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

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

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

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

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

233 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/12/03(木) 01:33:46
最近のブラウザはそうゆう動作をするように変更されてるとどこかで聞いた

235 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/12/03(木) 01:51:00
>>234,>>235さん

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

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

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

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

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

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

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

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

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

241 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/12/03(木) 07:19:41
シングルトンってインスタンスがひとつしかつくれませんが
三つしかつくれないクラスってどうやって作ればいいでしょうか?

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

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

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

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

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

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



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

250 :デフォルトの名無しさん:2009/12/03(木) 15:11:08
>>249
http://chie.mobile.yahoo.co.jp/p/chie/qa/view?qid=1433673199
すみません。

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

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


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

ttp://www.rupan.net/uploader/download/1259855059.zip

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


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

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

257 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/12/04(金) 11:32:40
>>257
おまえじゃ無理
もう諦めろ

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

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

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

262 :デフォルトの名無しさん:2009/12/04(金) 17:34:17
次の方どうぞ〜

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

という認識

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

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

283 :デフォルトの名無しさん:2009/12/06(日) 07:54:08
>>281
うっひょ〜

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


285 :デフォルトの名無しさん:2009/12/06(日) 20:46:39
>>284
http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/jni/spec/functions.html#wp17382
で変換。jcharArrayだとワイド文字、cで言うcharならjbyteArrayになる。

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

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

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

287 :286:2009/12/07(月) 10:11:07

自己解決しました。

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

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

290 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/12/07(月) 18:30:24
スレ違い

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

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

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

http://terai.xrea.jp/Swing/DragSource.html
ここを参考に組んではみましたが、うまくいかないときがあります。

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

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

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

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

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

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

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

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

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

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

>>299
お金ないんです

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

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

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

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

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

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

配列 添え字 領域の外 例外 

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

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

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


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

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


310 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/12/09(水) 01:17:14

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

}




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

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

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

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


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

321 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/12/09(水) 06:01:10
winは2000以降無理

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

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

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

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


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

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


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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

364 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/12/10(木) 16:08:04
>>363
ソケット通信で送ればいいんじゃない?

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

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

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

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

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

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



372 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/12/10(木) 16:58:03
ベクマスツカウヨロシアルヨ

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

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

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

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

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

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

泣けるね

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

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

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

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

384 :デフォルトの名無しさん:2009/12/11(金) 12:13:27
低能がいるな

385 :デフォルトの名無しさん:2009/12/11(金) 12:31:49
>>383
ダサス

386 :デフォルトの名無しさん:2009/12/11(金) 15:40:54
ペイントツール作成していて書いたものをDATファイルとして保存、読込していたものを
jpgファイルとして保存、読込がしたい。JPEGImageEncoder使うのはわかったけど使い方が
わからないんだ。アドバイス頼む。

387 :デフォルトの名無しさん:2009/12/11(金) 15:58:35
>>386
javax.imageio.ImageIOのread,writeで読み書きした方が楽だと思う

388 :デフォルトの名無しさん:2009/12/11(金) 16:05:44
>>387はjpgを含むサポートされている画像形式と画像のオブジェクトやストリームとの間のやり取りなので
DATファイルと内部形式との相互変換は別途必要だけど

389 :デフォルトの名無しさん:2009/12/11(金) 16:06:16
>>387
だよな

390 :デフォルトの名無しさん:2009/12/11(金) 16:22:59
bxbf

391 :デフォルトの名無しさん:2009/12/11(金) 23:18:20
>>382
Swing のボタンとかラベルは HTML を表示できるので
JRadioButton に表示させるテキストを HTML にしてみては


392 :デフォルトの名無しさん:2009/12/11(金) 23:57:05
最近、C++の勉強を開始したけど、javaよりも参考になるサイトが多い気がする
しかし、javaよりも情報の品質が低い気がする

393 :デフォルトの名無しさん:2009/12/12(土) 00:00:13
オブジェクトプールって使わないほうがいいんでしょうか?
シューティングゲームで大量の敵弾オブジェクトを生成するのにプールを使おうと思ったんですが
使うと逆にパフォーマンスが低下するという記述も見たので。

http://www.nilab.info/zurazure2/000035.html
[Java]手軽にオブジェクト・プーリング
http://www.ibm.com/developerworks/jp/java/library/j-jtp01274/
Javaの理論と実践: ガベージコレクションとパフォーマンス

タスクマネージャーを見ると
メモリ使用量がどんどん増えていくのですが、これは自動的にメモリが開放されていないからなんでしょうか・・?

394 :デフォルトの名無しさん:2009/12/12(土) 00:01:01
世界は広いぞ

395 :デフォルトの名無しさん:2009/12/12(土) 00:13:17
0〜最大値の間で重複なしにランダムに整数を取り出したいです。
加えて、時間が経っても処理が重くならない。最大値が大きくてもメモリ消費が変わらない。
というふうにしたいんですが、どうすればいいでしょうか。

396 :デフォルトの名無しさん:2009/12/12(土) 00:16:21
重複しないって事は過去に出たものを知っていなきゃいけないんだから
情報論的に言って貴方の言う条件は満たせないと思いますハイ

できるならマクスウェルの悪魔が出るぞ

397 :デフォルトの名無しさん:2009/12/12(土) 00:16:35
String s = "FFFFFFFF";
int i = Integer.parseInt(s, 16);
でエラーが出ました。
APIを見ると符号付きで計算すると書いてあるのに何故?
int i = Integer.parseInt(s.substring(0, 2), 16) * 0x1000000 + Integer.parseInt(s.substring(2, 8), 16);
なら大丈夫でした。
もっとスマートなやり方ないでしょうか?


398 :デフォルトの名無しさん:2009/12/12(土) 00:17:57
>>395
>最大値が大きくてもメモリ消費が変わらない
は無理だが、配列確保して順に値を入れてからシャッフル(ここで乱数は使う)したら?
要するにトランプのシャッフルと同じ。

399 :デフォルトの名無しさん:2009/12/12(土) 00:29:16
文脈からするに以下のふたつは試したのか?
・Set<Integer>にランダム値を保存してcontainsがtrueなら再抽選
・0〜最大値までのIntegerが詰まったリストをCollections.shuffle

これでダメなら元々ランダムじゃなくてアトランダムなんだから、
ジェネレータでランダム関数を使わずに自作するしかないんじゃね?

400 :デフォルトの名無しさん:2009/12/12(土) 00:58:03
>>396
過去に出たものを知ってなくてもいい方法が、きっとあると思ってます。

>>398
>>399
リストやセットを使う方法は、メモリ消費が激しいのと、
状態をファイルに保存、ファイルから読込みするのに時間がかかるので避けたいです。
最大値2000万でファイルから読み込んだら、2分もかかってしまいました。

>ジェネレータでランダム関数を使わずに自作するしかないんじゃね?
何かいい方法があれば、教えて欲しいです。
Intのビットを固定パターンで入れ替えるくらいしか思いつきません。

401 :デフォルトの名無しさん:2009/12/12(土) 00:58:46
>>397
Javadoc のサンプルを見ると分かりますが、「"符号付き整数の文字列"を構文解析する」のであって、
オーバーフローしたのを丸めるという意味ではないです。

サンプル(Javadoc より):
parseInt("-FF", 16) returns -255
parseInt("2147483648", 10) throws a NumberFormatException

2 番目の例と同じく、"FFFFFFFF" は Integer の MAX_VALUE を超えているため、エラーに
なっています。
"FFFFFFFF" を int の -1 にしたかったら、

int i = (int)Long.parseLong("FFFFFFFF", 16);

が近道だと思います。

402 :デフォルトの名無しさん:2009/12/12(土) 01:01:26
例えば、1〜10、11〜20、21〜30、31〜40、41〜50と、範囲に収まる数字の件数をカウントしたい場合、
iを対象となる数字、配列xを件数とすると、

var i = 27;
var x = [];

if(i>0 && i<=10) x[0]++;
elseif(i>10 && i<=20) x[1]++;
elseif(i>20 && i<=30) x[2]++; // ここでカウント
elseif(i>30 && i<=40) x[3]++;
elseif(i>40 && i<=50) x[4]++;


と書くのはダメダメ。センス無い。
(forやwhile使って回しても大差無し。)


var i = 27;
var x = [];

x[Math.floor(i/10)]++; // 配列x[2]でカウント

と書けばスッキリ。

なんてな。


403 :デフォルトの名無しさん:2009/12/12(土) 01:26:24
>>400
論文とか読めない人何で適切なアルゴリズムは提示できないが、
ビットシフトというか範囲値内でのローテートになるのかな。

ローテート量の他にループカウンタを導入してエントリ位置、カウンタ参照方向(++か--か)、
カウンタ参照方法(偶数→奇数走査)など思いつく限りの走査法をランダマイズするのがいいかと。

404 :デフォルトの名無しさん:2009/12/12(土) 01:40:16
>>400が理解できるならもうやってるだろ

405 :397:2009/12/12(土) 02:15:21
助かりました、どうもです。


406 :デフォルトの名無しさん:2009/12/12(土) 07:50:14
387-388
色々試してみる。しかし基本しか知らないのにペイントツール作って
描いた絵に動きを付けるってものを仕上げなきゃいけなかった。
ありがとうございます

407 :デフォルトの名無しさん:2009/12/12(土) 08:08:43
>過去に出たものを知ってなくてもいい方法が、きっとあると思ってます。

言っても無駄なんだなってことは理解したよ
もう止めないわ

408 :デフォルトの名無しさん:2009/12/12(土) 08:18:34
>>393
自動的に開放されないようにプールしてるんだろ
使い終わったオブジェクトは再利用してるのか?

409 :デフォルトの名無しさん:2009/12/12(土) 11:15:03
テンプレのサイト見ても解決できなかったのでお願いします

buildするのにantを使おうとしているのですが
>ant run
Buildfile: build.xml
init:
compile:
run:
[exec] java.lang.NoClassDefFoundError: Files\Java\jre6\lib\ext\QTJava/zip
[exec] Exception in thread "main"
[exec] Result: 1
BUILD SUCCESSFUL
Total time: 1 second
という結果で一応ビルドできてる?みたいなのですがバッチファイルを起動しようとすると
同じエラーが出てしまいます。

関係ありそうな以下のパスを調べたりいじったりしてもダメでした。
ANT_HOME=C:\apache-ant-1.7.1
CLASSPATH=.;\C:\Program Files\Java\jre6\lib\ext\QTJava.zip
JAVA_HOME=c:\program files\java\jdk1.5.0_08
Path=c:\program files\java\jdk1.5.0_08;C:\Program Files\QuickTime\QTSystem\;C:\apache-ant-1.7.1\bin(一部抜粋)

よろしくお願いします。

410 :デフォルトの名無しさん:2009/12/12(土) 12:00:16
>>400
Set<Integer> よりは BitSet の方が軽いので試してみそ
2000万もあると、どのみち無理かもしれないが

411 :デフォルトの名無しさん:2009/12/12(土) 12:06:39
みそ、って久しぶりに見た
青春時代を思い出した
泣けてきた

412 :デフォルトの名無しさん:2009/12/12(土) 13:31:22
>>402
それバグってね?

413 :デフォルトの名無しさん:2009/12/12(土) 15:51:43
まさか2000万件をオンメモリでやるきなのか?
それともHDD上でやってみたら2分かかったからもっといいのないって話?
まあ要求からして無理なんだが。それこそマクスウェルの悪魔レスまで戻る。

414 :デフォルトの名無しさん:2009/12/12(土) 15:58:16
クイズの問題をランダムで出したいだけだろ?
ジェネレータを自作しろって結論がでてるからもういいよ。

415 :デフォルトの名無しさん:2009/12/12(土) 16:02:02
ジェネレータって何?

416 :デフォルトの名無しさん:2009/12/12(土) 16:24:05
特定のオブジェクトを作る関数。生成機とも呼ばれる。乱数生成機、ID生成機とかね。

417 :デフォルトの名無しさん:2009/12/12(土) 16:24:55
あと機じゃなくて器のほうで置換しといて

418 :デフォルトの名無しさん:2009/12/12(土) 16:43:53
マクスウェルの悪魔(笑)

419 :デフォルトの名無しさん:2009/12/12(土) 16:45:00
なるほど。勉強になります


420 :デフォルトの名無しさん:2009/12/12(土) 16:58:14
C言語で作られたライブラリ「〜.so」(Solaris)をJavaから呼ぶ方法を知りたいのですが、
どうすればよいのでしょうか?
Javaからはdlopenを使って呼んでくださいとライブラリの説明書には書いているのですが、
Javaでdlopenメソッドが見当たらず困っています・・・。


421 :デフォルトの名無しさん:2009/12/12(土) 17:05:40
JRadioButtonのActionListenerに、
一方のボタンが押されたらテキストフィールドをenableに、他方であればdisableにする、という実装を行っています。

人が画面でラジオボタンを押した場合にはうまく動くのですが、
コード上でJRadioButton#setSelected(true)した場合にはイベントが発生しません。


setSelectedの場合も同様の動作をさせたい場合、一般的にはどういう実装を行えばよいでしょうか。

ChangeListenerだとsetSelectedでもイベントを受け取れますが、必要ない状態の変化でもイベントが
発生するので無駄な動作が多くなるな、と考えています。


422 :デフォルトの名無しさん:2009/12/12(土) 17:16:07
>>420
JNIじゃない?

423 :デフォルトの名無しさん:2009/12/12(土) 17:16:40
>>420
JNIを使え

>>421
そのActionListenerを自分で呼ぶとか、setSelectedの場合にも同様の動作(disable/enable)を書けばいいと思うが・・・
doClickはどう

424 :421:2009/12/12(土) 17:28:42
>>423
ありがとうございます。
現在はsetSelectedの後ActionListenerを直接呼んでいたのですが、
不恰好だと考えていました。
doClickを試してみまたところ、同じように動作させることができました。

425 :デフォルトの名無しさん:2009/12/12(土) 17:34:20
>>420
そのライブラリをロードするようなライブラリをJNI使って自前で作れ、ということなのでは。

426 :デフォルトの名無しさん:2009/12/12(土) 18:41:54
>>420
JNI

427 :デフォルトの名無しさん:2009/12/12(土) 18:43:04
>>420
JNIを使えば?

428 :デフォルトの名無しさん:2009/12/12(土) 18:54:58
>>420
つJNI

429 :デフォルトの名無しさん:2009/12/12(土) 18:55:07
ネイティブを使うって、かなり抵抗あるよね〜
swtくらいなら、妥協してもいいけどさ

430 :デフォルトの名無しさん:2009/12/12(土) 18:59:21
>>420
JNI知ってる?

431 :デフォルトの名無しさん:2009/12/12(土) 19:22:31
420が大漁すぎてワロタ

432 :デフォルトの名無しさん:2009/12/12(土) 19:24:05
同じ答えなら何人も安価してまで答えることじゃなくね?

433 :デフォルトの名無しさん:2009/12/12(土) 20:00:42
さすが自称中級者の巣窟だな

434 :デフォルトの名無しさん:2009/12/12(土) 20:18:50
swingのアプリをVBのようにグラフィカルに簡単に
作成できるような開発環境ってありますか?
代表的なものをおしえてください。

435 :デフォルトの名無しさん:2009/12/12(土) 20:32:10
>>434
NetBeansはどうでしょうか?

436 :デフォルトの名無しさん:2009/12/12(土) 20:42:04
>>434
swingといえばNetBeansです!

437 :デフォルトの名無しさん:2009/12/12(土) 21:00:42
>>433
そりゃJNIしかないでしょう

438 :デフォルトの名無しさん:2009/12/12(土) 21:56:40
Swingで作る意味がわからん
Webで良いよ

439 :デフォルトの名無しさん:2009/12/12(土) 23:17:58
↓と似たような処理がJava標準ライブラリかcommonsにありませんか?
public static String[] breakString(String str) {
  ArrayList<String> list = new ArrayList<String>();
  BufferedReader reader = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(str.getBytes())));
  String line = null;
  try {
    while ((line = reader.readLine()) != null) {
      list.add(line);
    }
  } catch (IOException ignored) {}
  return list.toArray(new String[list.size()]);
}
\nと\r\nでStringを分割したいだけなんです。

440 :デフォルトの名無しさん:2009/12/12(土) 23:23:26
public static String[] breakString(String str) {
return str.splilt("\n|\r\n");
}

441 :デフォルトの名無しさん:2009/12/12(土) 23:24:42
ごめんスペルミスった
× splilt
○ split

442 :デフォルトの名無しさん:2009/12/12(土) 23:25:37
JavaでHTTPのリクエストをうまく処理できる方法はないでしょうか。
(リクエストから指定のヘッダ値を取り出したりしたいと思っています)

java.net.URLみたいなラップ化クラスがあれば便利なんですが。

443 :デフォルトの名無しさん:2009/12/12(土) 23:27:46
サーブレットにしてサーブレットコンテナ上で動かす

444 :デフォルトの名無しさん:2009/12/12(土) 23:28:08
J2EE・APIにアクセスできなくなったんだけど、なくなったの?

445 :デフォルトの名無しさん:2009/12/12(土) 23:31:51
>>443
どうもありがとう。
不勉強ゆえ、サーブレット方面はしっかりと探してなかったです。

446 :デフォルトの名無しさん:2009/12/12(土) 23:56:13
>>>444
どうなんだろうね

447 :439:2009/12/12(土) 23:58:23
>>440
どうもありがとうございます。
splitは試したんですが、正規表現を間違えてました。

448 :デフォルトの名無しさん:2009/12/12(土) 23:59:20
>>431
なのにJNA使え、が一つも無い件について。
https://jna.dev.java.net/
まぁ、>>420のスキルだとおすすめできないかもしれんが。

449 :デフォルトの名無しさん:2009/12/13(日) 03:26:00
keyPress(KeyEvent.VK_SHIFT);
delay(KEY_WAIT);
keyPress(KeyEvent.VK_RIGHT);
delay(KEY_WAIT);
keyRelease(KeyEvent.VK_RIGHT);
delay(KEY_WAIT);
keyRelease(KeyEvent.VK_SHIFT);
delay(KEY_WAIT);

Shift+矢印キーを押す、という処理を上のように記述しているのですが、環境によって挙動が異なってしまい困っています
いくつかのPCで試してみた所、ノートPCでは正常に動作するのですが、デスクトップではShiftキーが押されていないのと同じ挙動となってしまうようです
Shift+EnterやShift+変換キーなどはどの環境でも正常に動作しているのですが・・・
テンキーの有無が関係しているような気がするのですが、分かる方はいますでしょうか?
また多くの環境で実行可能となる記述方法はあるのでしょうか?

450 :デフォルトの名無しさん:2009/12/13(日) 11:02:58
>>400
> 過去に出たものを知ってなくてもいい方法が、きっとあると思ってます。

それ、「記憶してはいけません。ただし、記憶しなさい」が実現可能だと言ってるのに等しいってわかってる?

451 :デフォルトの名無しさん:2009/12/13(日) 12:24:58
>>450
乱数でなければ、例えば1、2、3、と小さい順に送り出せば、既出の数の記憶無しに重複しない。
彼は、かなりでたらめに見える順序で、全部の数を送り出すアルゴリズムが欲しいのではないだろうか。
いつも同じ順に出てくると思われないくらいに出方のオプションの通り数が必要だし、
もはやこれは擬似としても乱数ではないけれど。



452 :デフォルトの名無しさん:2009/12/13(日) 12:42:25
だからアトランダムとランダムは違うって指摘も出てるわけで
アルゴリズムの方向性も質問者は理解してる。
>>450より質問者のが若干レベルが上だから、滑稽な絵になってるな。

453 :デフォルトの名無しさん:2009/12/13(日) 13:05:08
ってことは板違いになるかな。
数学板の範疇だな。

454 :デフォルトの名無しさん:2009/12/13(日) 13:30:02
理解してりゃ求めてるのが無理だってわかるよ
理解してねーよ

455 :デフォルトの名無しさん:2009/12/13(日) 13:45:46
アトランダム(笑)

456 :デフォルトの名無しさん:2009/12/13(日) 13:52:43
ipodでシャッフルして聴いてるとしょっちゅう同じ曲になるよな
何千曲も入ってるのにどうにかならんのか

457 :デフォルトの名無しさん:2009/12/13(日) 14:00:13
int u = 母数;
int r = 毎回違う数、ただしuと互いに素;

for(int n = 0; n < u; n++){
System.out.println( (r*n) % u );
}

とかこんな感じのが欲しいんじゃないの?
まあコレだと r%u ずつ動いていくだけだし
互いに素とか求めるのすごく面倒くさいから実用的じゃないけど

458 :デフォルトの名無しさん:2009/12/13(日) 14:07:51
さすが自称中級者スレだな

459 :デフォルトの名無しさん:2009/12/13(日) 14:10:31
普通はNetBeansですけどね。

460 :デフォルトの名無しさん:2009/12/13(日) 16:54:42
レベルが上とみるのはさすがに買いかぶりすぎだろw
どんなエスパーだよ。

461 :デフォルトの名無しさん:2009/12/13(日) 17:04:36
ランダムとアトランダムの違いってなに?

462 :デフォルトの名無しさん:2009/12/13(日) 17:18:13
>>460
日本語でおけー

463 :デフォルトの名無しさん:2009/12/13(日) 17:21:14
日本語だと思うぞ。
買い被る。

464 :デフォルトの名無しさん:2009/12/13(日) 17:29:11
>>460-463
http://www.m-nomura.com/st/images/spock.jpg

465 :デフォルトの名無しさん:2009/12/13(日) 17:49:18
ランダムな数字(乱数)
アトランダムに生成された数字(乱数)
どっちも同じです。

形容詞と形容動詞(副詞)の違いであって、文法的な使われ方の違いしかない。

466 :デフォルトの名無しさん:2009/12/13(日) 18:06:40
>>434
NetBeansのMatisse。
有償EclipseにもMatisseついてるやつあるけど。


467 :デフォルトの名無しさん:2009/12/13(日) 18:09:25
>>461
俺も気になった。

468 :デフォルトの名無しさん:2009/12/13(日) 18:44:25
アホの俺様用語なんてどうでもいいんだよ
ひっぱりたいなら本題についてひっぱれ

469 :デフォルトの名無しさん:2009/12/13(日) 19:06:33
Javaは何故死んだのか

470 :デフォルトの名無しさん:2009/12/13(日) 19:14:26
安物メモリか電源不良だろ。

471 :デフォルトの名無しさん:2009/12/13(日) 19:18:04
Javaの人気は何故地に堕ちたのか

472 :デフォルトの名無しさん:2009/12/13(日) 19:24:20
アプレットはフレッシュちゃんのせいだね

473 :デフォルトの名無しさん:2009/12/13(日) 19:25:02
フラッシュだ
フレッシュって誰だよww

474 :451:2009/12/13(日) 19:43:11
ビットを交換するだけで、結構入れ替わるから、それと >>457 さんの方法を
組み合わせれば、なかなか規則性は見つけづらくなるのでは。
例えば ビット0〜2の3ビットから成る数の列 0, 1, 2, 3, 4, 5, 6, 7 の
ビット0と2を入れ替えると、0, 4, 2, 6, 1, 5, 3, 7 となるが、これに
対してさらに、8と互いに素な5を使って >>457 さんの方法を使うと、
0, 5, 2, 7, 1, 4, 3, 6 になる。2000万なら、それ以下の素数は山ほどあるし、
交換するビットも 24〜25ビットもあるので、出し方のパターンの数はたっぷりだ。


475 :デフォルトの名無しさん:2009/12/13(日) 19:56:55
>>473
当然NetBeansですよね?

476 :デフォルトの名無しさん:2009/12/13(日) 20:30:04
プログラムが苦手なのでここで質問させてください。
黒い円周上を回転する赤い円の周りを、青い円を回転させたいというプログラミングです。
下記のプログラムを訂正すれば出来るようですがどうすれば良いかわかりません。
どなたが教えてください。改行が多いと投稿エラーが出てしまうので、改行を省いてあるので見にくいかもしれまんせんがよろしくお願いします。
/*<APPLET CODE="cir1.class"WIDTH=200 HEIGHT=200>
</APPLET>*/
import java.applet.Applet;
import java.awt.*;
public class cir1 extends Applet implements Runnable{
int d=20; double dt=0.01; double t=0.0; double a=90.0,T=2.0,x,y,o,p; double omega=2.0*Math.PI/T; double z=3.0*Math.PI/T;
Thread th; public void start(){ th = new Thread(this); th.start();}
public void run()} while(th !=null){
x=a*Math.cos(omega*t); y=a*Math.sin(omega*t); o=a*Math.cos(z*t); p=a*Math.sin(z*t);
repaint(); t=t+dt; try{
Thread.sleep((int)(dt*2000.0));}
catch(InterruptedException e)}}} public void paint(Graphics g){
g.setColor(Color.RED);
g.fillOval((int)(100+(x-d*0.5)),(int)(100+(y-d*0.5)),d,d);
g.setColor(Color.BLUE);
g.fillOval((int)(120+(x-d*0.5)),(int)(120+(y-d*0.5)),d,d);
g.setColor(Color.BLACK);
g.drawOval(10,10,2*(int)a,2*(int)a);}}

477 :デフォルトの名無しさん:2009/12/13(日) 21:16:47
宿題スレは別にあるだろ。そっちで聞け。

478 :デフォルトの名無しさん:2009/12/13(日) 21:18:56
自称中級者スレはすぐに迷走するな
ドカタ仕事ばっかりやってるからそうなる

479 :デフォルトの名無しさん:2009/12/13(日) 21:19:43
いやOSSに参加してるからだろう

480 :デフォルトの名無しさん:2009/12/13(日) 21:21:59
>>464

481 :デフォルトの名無しさん:2009/12/13(日) 22:08:41
Javaは何故こんなに落ちぶれたのか

482 :デフォルトの名無しさん:2009/12/13(日) 22:14:12
先が見えないから

483 :デフォルトの名無しさん:2009/12/13(日) 23:01:39
別スレッドでバックグラウンドでデータの読み込み処理を行いながら、メインスレッドで
アニメーションを表示するローディング画面を作ろうとしたのですが、

ロード処理開始→描画処理が止まり、画面がしばらく固まる→ロード終了

という風になって、描画処理のほうが完全に止まってしまいます。
そうではなく、描画処理とロード処理が並行して実行されるようにしたいのですが、
どう直せばいいでしょうか?ただ単にスレッドを使うだけではだめなようですが。

484 :デフォルトの名無しさん:2009/12/13(日) 23:08:39
>474
初めが必ず0になる欠点があるから、やるなら適当に数足したほうがいいね

485 :デフォルトの名無しさん:2009/12/13(日) 23:12:36
>>483
・描画処理はちゃんとEDT上でやってる?
・EDT上でループしてないよな?



486 :483:2009/12/13(日) 23:36:47
あ、Thread.startを呼び出すべきなのに
Thread.run()を呼び出していただけでした・・。失礼しました。

487 :デフォルトの名無しさん:2009/12/14(月) 01:00:10
Javaにもネイティブコンパイラがあるみたいだけど、あまり使われていないの?
使われていないとしたら、何かデメリットがあるのかな。

488 :デフォルトの名無しさん:2009/12/14(月) 01:32:37
べつにネイティブ化しても大してメリットないからでしょ。
ごく一部の用途では使われてると思うけど。

489 :デフォルトの名無しさん:2009/12/14(月) 02:34:23
Javaってどうしてこんなに糞言語になっちゃったの

490 :デフォルトの名無しさん:2009/12/14(月) 02:56:11
あなたが腐っただけですよ

491 :488:2009/12/14(月) 03:21:55
>>488
ありがとう。
Javaは起動が遅い(&動作速度も遅いと誤認されている)から、
ネイティブ化するメリットは多少あると思うんだけどなぁ。
ま、そうしたい人がすればいいっていう話かな。

492 :デフォルトの名無しさん:2009/12/14(月) 03:22:38
>>491>>487でした。。

493 :デフォルトの名無しさん:2009/12/14(月) 06:53:34

BufferedReader[] in=new BufferedReader[3];
PrintWriter[] out=new PrintWriter[3];
ServerSocket[] s=new ServerSocket[3];
Socket[] socket=new Socket[3];

try{
for(int i=0;i<3;i++){
s[i]=new ServerSocket(8080+i);
socket[i]=s[i].accept();
System.out.println("finish1");
in[i] = new BufferedReader(new InputStreamReader(socket[i].getInputStream()));
out[i] =new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket[i].getOutputStream())), true);
System.out.println("finish2");
}
String[] str=new String[4];
int[] receive=new int[4];
for(int i=0;i<4;i++){
System.out.println("receiving");
str[i]=in[0].readLine();
receive[i]=Integer.parseInt(str[i]);
System.out.println(receive[i]);
out[0].println(receive[i]);
}

494 :デフォルトの名無しさん:2009/12/14(月) 06:59:35
こんな感じでソケット、リーダー、ライターをいくつか配列で作って通信を
させようと思っているんですが、実行できても通信ができません。
デバグプリントしたところ"finish1"までは表示されました。
また、おんなじプログラムで、配列でなくただの変数で宣言するとちゃんと通信できました。
どこがおかしいのでしょうか。

495 :デフォルトの名無しさん:2009/12/14(月) 08:07:36
>>493
str[i]=in[0].readLine();
out[0].println(receive[i]);
ここはなんで i[0] とか out[0] みたいに 0 を指定してるわけ?
あと具体的にどういう動作を望んでるんだ?

496 :デフォルトの名無しさん:2009/12/14(月) 08:43:45
>>493
ttp://journal.mycom.co.jp/column/java/049/index.html

497 :デフォルトの名無しさん:2009/12/14(月) 11:10:21
質問です。
SwingのJFrameの上に、別のJDialogを表示する仕様なのですが、
JDialogがフォーカスを失っても、ずっと最前面に維持しておくためにはどうすればよいのでしょうか。

498 :デフォルトの名無しさん:2009/12/14(月) 12:03:56
JDialog#setAlwaysOnTop

聞く前にjavadoc見るんだ!

499 :497:2009/12/14(月) 13:00:02
>>498
ありがとうございます。
1.5から、文字通りのAPIが使えるようになってたんですね。勉強になりました。

500 :デフォルトの名無しさん:2009/12/14(月) 14:58:26
J2EE の話題(ロードマップ、使い方など)は、現在あるスレでは、
どのスレでするのが、最も適切でしょうか?

501 :デフォルトの名無しさん:2009/12/14(月) 15:42:42
まだプログラム途中なのですが以下のプログラムが
現段階でif文の中のresultをfountに出力できないのですがどこが悪いのかわかりません。
if文の中でresultを標準出力するとちゃんと出力されます。
public class asig2{
public static void main(String args[])throws IOException{
int i=0,j=0,length2=0,byteValue,a=0;
String result;

BufferedReader fin1 = new BufferedReader(new FileReader("BlackList"));
PrintWriter fount = new PrintWriter(new BufferedWriter(new FileWriter("BlackList2",true)));
HashMap<String, ArrayList>list = new HashMap<String, ArrayList>();
ArrayList p=new ArrayList();
ArrayList n =new ArrayList();
while(null!=(result=fin1.readLine())){
if(list.get(result)==null){
fount.println(result);
n.add(j);
list.put(result,n);
a++;
}

else

}
}
}



502 :デフォルトの名無しさん:2009/12/14(月) 15:47:56
>>501
fountをちゃんとclose()してみたらどーでしょ。


503 :デフォルトの名無しさん:2009/12/14(月) 16:02:28
いわゆる波ダッシュ問題なんですが、原因と対処法がいまいちわかっていません。

環境はWindowsXPです。
"?"("\u301c")を含むStringを引数にFileインスタンスを生成しstreamに書き込むと、
想定したとおりのファイルがエクスプローラで見えるのですが、
そのStringをそのままprintlnすると、波ダッシュが?になってしまいます。

やりたいことは、このファイル名を引数にしてRuntime#execを実行したいのですが、
文字化けしているせいで実行先のプログラムでファイルが認識できません。

1.なぜこのようなことが起こるのでしょうか?(ファイル名はOKなのに引数ではNG)
2.一般的に、波ダッシュや全角ハイフンなどはどう対応すればよいのでしょうか?

現在はたまたまファイル名を変更することができるので、取り敢えず"〜"などに
置換していますが、ファイル名がこちらで指定できない(修正できない)ような場合は
どうすれば良いのか...

504 :デフォルトの名無しさん:2009/12/14(月) 16:02:48
>>502
サンクス
ぼんミススマソ

505 :デフォルトの名無しさん:2009/12/14(月) 17:32:40
>>503
出力したエンコードはなんなのさ?

506 :デフォルトの名無しさん:2009/12/14(月) 17:43:51
Debian lennyでsun-java6(non-free)+tomcat6.0.20(testing)を入れて
JSF2.0を使ったアプリを設置してtomcatを起動するとアプリの起動に
失敗してしまう。

JSP+strutsだと問題ないけど。
何がいけないんだろうか。

507 :デフォルトの名無しさん:2009/12/14(月) 18:10:18
相変わらずだなあ、まったく

508 :506:2009/12/14(月) 18:22:47
JSF1.2でも駄目だった。

・WindowsXPのnetbeans6.8で新規プロジェクト
・サーバにtomcat6.0.20を選択
・Java EE バージョンにJava EE5.0を選択
・フレームワークにJavaServer Facesを選択
・登録されているライブラリJSF 1.22を選択

で新規作成したプロジェクトで作ったwarをそのままDebianの
CATALINA_HOME\webappsにコピーしてtomcat6を再起動か
けてるだけなのにな。

509 :デフォルトの名無しさん:2009/12/14(月) 18:31:53
>アプリの起動に失敗してしまう。
だけではわからない。
ログを晒しなされ

510 :506:2009/12/14(月) 18:53:38
Testというアプリです。

2009/12/14 18:37:17 org.apache.coyote.http11.Http11Protocol init
情報: Coyote HTTP/1.1を http-8080 で初期化します
2009/12/14 18:37:17 org.apache.catalina.startup.Catalina load
情報: Initialization processed in 1454 ms
2009/12/14 18:37:17 org.apache.catalina.core.StandardService start
情報: サービス Catalina を起動します
2009/12/14 18:37:17 org.apache.catalina.core.StandardEngine start
情報: Starting Servlet Engine: Apache Tomcat/6.0.20
2009/12/14 18:37:17 org.apache.catalina.core.StandardContext resourcesStart
2009/12/14 18:37:19 com.sun.faces.config.ConfigureListener contextInitialized
情報: Initializing Sun's JavaServer Faces implementation (1.2_04-b20-p03) for context '/Test'
2009/12/14 18:37:20 org.apache.catalina.core.StandardContext start
致命的: Error listenerStart
2009/12/14 18:37:20 org.apache.catalina.core.StandardContext start
致命的: 以前のエラーのためにコンテキストの起動が失敗しました [/Test]
2009/12/14 18:37:20 org.apache.coyote.http11.Http11Protocol start
情報: Coyote HTTP/1.1を http-8080 で起動します
2009/12/14 18:37:20 org.apache.jk.common.ChannelSocket init
情報: JK: ajp13 listening on /0.0.0.0:8009
2009/12/14 18:37:20 org.apache.jk.server.JkMain start
情報: Jk running ID=0 time=0/93 config=null
2009/12/14 18:37:20 org.apache.catalina.startup.Catalina start
情報: Server startup in 3580 ms

511 :デフォルトの名無しさん:2009/12/14(月) 20:03:24
自分でなんとかしなされ

512 :506:2009/12/14(月) 20:07:43
なんだそれw。

513 :503:2009/12/14(月) 20:15:41
>>505
WindowsXPなのでMS932だと思うのですが...
ファイル名に使うエンコードと、JPanelに表示するのに使うエンコードが
それぞれどうなっているのかもわからなくて。

514 :デフォルトの名無しさん:2009/12/14(月) 20:15:49
>>509
最低だな

515 :デフォルトの名無しさん:2009/12/14(月) 20:25:22
>>510
つうか、
>>511
は、私じゃない。

いちどコンテキストパスをクリアしてから tomcat を起動してみなされ。

516 :506:2009/12/14(月) 21:13:07
コンテキストパスをクリアするとはどういうことですか?

517 :デフォルトの名無しさん:2009/12/14(月) 21:53:32
>516
server.xmlに残ってるか確認

518 :506:2009/12/14(月) 21:58:37
$CATALINA_HOME/conf/server.xmlには/Testというコンテキストパスは
見あたりません。

519 :デフォルトの名無しさん:2009/12/14(月) 23:07:32
System.out.println((char) 126);

520 :デフォルトの名無しさん:2009/12/15(火) 01:47:29
Java1.4のAPIリファレンスがほしいのですが、
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/
ここがどうも反応がないんです。

どこかほかにないでしょうか?

521 :デフォルトの名無しさん:2009/12/15(火) 03:18:04
ttp://java.sun.com/products/archive/j2se/1.4.1_07/ja/index.html
ここからダウンロードするとか?

522 :デフォルトの名無しさん:2009/12/15(火) 11:56:34
コンパイルは通るんですが、実行するとたまにエラーが出ます。
エラーの内容はnullPointとかなんですが、エラーの場所が「Unknown Source」になります。
この「Unknown Source」になるということを解決するにはどうすれば良いのでしょうか?

523 :デフォルトの名無しさん:2009/12/15(火) 12:56:18
スタックトレースがずらーっと下の方まで出ないか?
それを順に辿っていくんだ
ずっと下の呼び出し元から渡された引数が正しくないために起きることもある

524 :520:2009/12/15(火) 13:17:13
>>521
ありがとうございます。API入手できました

>>522
行数とかだしたいなら、コンパイル時に-gオプションつければ良いと思われる。


525 :デフォルトの名無しさん:2009/12/15(火) 13:48:15
2ちゃんねるブラウザは、お気に入り/スレッド一覧/スレビューの3つにwindowを別けています
現在はJSplitPaneを2つ使って↑を実現しています
どうにかして、JSplitPaneを1つにする方向はありませんか?

526 :デフォルトの名無しさん:2009/12/15(火) 13:54:26
どれでも好きな答えを選びなさい
(1) JSplitPaneのような動作をする自前のコンポーネントを作る
(2) そもそも1つにまとめる必要があるのか考え直す
(3) 解決方法はない。現実は非情である

527 :522:2009/12/15(火) 14:30:55
>>524
ありがとうございます。行数はプログラム全部合わせて1000行ほどですが、
「Unknown Source」になってしまいます。OSはXPです。
「javac ファイル名.java -g」でおkですよね?

528 :デフォルトの名無しさん:2009/12/15(火) 16:09:50
私は銀の斧を選びました

529 :デフォルトの名無しさん:2009/12/15(火) 17:03:17
「Unknown Source」になるのは、
例外の発生元が標準ライブラリ内だからじゃないか?


530 :デフォルトの名無しさん:2009/12/15(火) 17:39:46
>>522
例外トレースここに貼ってみて。

531 :デフォルトの名無しさん:2009/12/15(火) 17:55:14
「新これならわかるJava」という本を読み終えて、その範囲は身についたと思っていますが、
このスレに書かれていることはあまり理解できません。
ステップアップするために適した本は何かないでしょうか。
オススメのものがあれば、どうぞ教えてください!

532 :デフォルトの名無しさん:2009/12/15(火) 19:08:54
独習JAVA・・・は敷居が高いかもしれん

他はピアソンの本は俺はcでお世話になって以来好き

533 :522:2009/12/15(火) 19:09:46
>>530
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.JComponent._paintImmediately(Unknown Source)
at javax.swing.JComponent.paintImmediately(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

これです。

534 :デフォルトの名無しさん:2009/12/15(火) 19:48:05
>>533
ごめん。俺にはわからない。

535 :デフォルトの名無しさん:2009/12/15(火) 19:52:13
>>532
ありがとうございます。
Amazonのレビューにあまり良いことが書かれていませんが
「基礎の基礎を一冊終えたあたりに」とも書いてあってちょうど良さそうなので
一度立ち読みしてみます!

536 :デフォルトの名無しさん:2009/12/15(火) 20:38:09
>>533
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
でググったら一発で解答が得られた。

やっぱ、質問は小出しにしないと楽しめないね。

537 :デフォルトの名無しさん:2009/12/15(火) 20:44:06
javaは基礎本1冊読んだら、あとは実践で何か作った方がいいよ。
文法をコツコツ暗記してる奴って何か作らせても全く作れない。
多少難しいと思っても挑戦するのが大事。
挫折したとしても、その経験を持ってもう一度基礎本を読み直すと理解が全然違う。
とにかく経験

538 :デフォルトの名無しさん:2009/12/15(火) 20:51:19
>>533
コンポーネントの再描画でエラーが発生してるんじゃないか、
くらいしかわからんね

539 :522:2009/12/15(火) 22:05:41
>>536
ttp://q.hatena.ne.jp/1101906592
このページに書いてあることが近い気がするんですが、ここでしょうか?

>>538
コンポーネントの再描写って既存のクラスを拡張したりすることでしたっけ?
心当たりが出てきましたorz


540 :デフォルトの名無しさん:2009/12/15(火) 22:18:23
>>539
多分別スレッドでSwingコンポーネント触ってるだろ。

541 :デフォルトの名無しさん:2009/12/15(火) 22:20:30
調べて出てこなかったので質問します。

配列で
int [] atai = { 1, 1, 1, 1, 1, 1, 1, };
int [] x = { 5, 5, 5, 5, 5, 5, 5, };
と初期設定をするのですがこの連続する1と5を省略できる方法はありますか?

あと出力するときに↓のようにずれてしまうのですがどうすればいいでしょうか?
System.out.printfが使えなくてほかの方法を探しています
atai 1 50 2 13
x 82 11 12 5 5

偉い人教えてくださいお願いします

542 :デフォルトの名無しさん:2009/12/15(火) 22:25:55
>>541
java.util.Arrays.fill()
java.lang.String.format()

543 :デフォルトの名無しさん:2009/12/15(火) 23:12:10
>>537
そうですね。
ネット上のゲーム講座を見つけたので、それを読みながら実際に作ってみようと思います。
ありがとうございました。

544 :522:2009/12/16(水) 00:06:01
>>540
TimerTaskを使ってて、そこのせいかもしれないです。
TimerTaskと同じ動きのSwingのものを使ってみます

545 :デフォルトの名無しさん:2009/12/16(水) 00:26:15
まあそれが原因だな。
描画に関係する処理をEventキュー以外から呼んだら駄目だ。

546 :デフォルトの名無しさん:2009/12/16(水) 02:27:43
なんのためにSwing Timerがあるとおもってるんだー。
わざわざ汎用のTimerつかわんでも。

547 :デフォルトの名無しさん:2009/12/16(水) 02:51:53
でもなー
タイマーが描画に引っ張られるのはなー
いや別に1秒間隔で0.5秒とか10秒遅れるのはまあいいですよ



548 :デフォルトの名無しさん:2009/12/16(水) 03:41:13
>>547
色んな意味で何を言ってるのか分からない。

549 :デフォルトの名無しさん:2009/12/16(水) 04:15:24
Java7はいつ?
クロージャは?

550 :522:2009/12/16(水) 10:09:09
>>546
import java.util.*;
今見たらこのインポートでTimerTask使ってるんですけど、これSwingのものじゃないですか?

551 :デフォルトの名無しさん:2009/12/16(水) 10:37:38
Swing のタイマーといったら javax.swing.Timer

552 :デフォルトの名無しさん:2009/12/16(水) 11:03:59
>>548
swingのタイマーってイベントディスパッチで呼ばれるじゃん?
遅延が大きいんでないか

553 :522:2009/12/16(水) 11:22:04
できました!>>550のがSwingではない方ですね。
Swingつかったらエラーなくなってスムーズにうごくようになりました。
ありがとうございます!

554 :デフォルトの名無しさん:2009/12/16(水) 11:57:38
>>552
どのみちイベントディスパッチスレッドからしかSwingコンポーネント触れないんだから一緒じゃない?

555 :デフォルトの名無しさん:2009/12/16(水) 13:18:00
>>552
java.util.Timerでも大きい遅延はするぞ。
問題はタスクで何を実行するか。

アニメ付けたいならSwingWorkerかtimingframeworkの方がいい。

556 :デフォルトの名無しさん:2009/12/16(水) 13:40:16
BufferedReaderで開いたファイルにをread()で読み込んだ場合、12345が4950515253とASCII変換
されてしまうのですが、これをそのまま12345と読み込みたい場合どのようにすればいいですか?
ファイルの中身は数字だけとは限りません。

557 :デフォルトの名無しさん:2009/12/16(水) 13:42:23
>>555
態度デカイぞ。
何様だ。

558 :デフォルトの名無しさん:2009/12/16(水) 13:45:49
>>556
char型にキャストしなさい
(char)49 == '1'
(char)50 == '2'
(char)51 == '3'
(char)52 == '4'
(char)53 == '5'

559 :デフォルトの名無しさん:2009/12/16(水) 13:58:47
>>558
なるほど。助かりました。ありがとです

560 :デフォルトの名無しさん:2009/12/16(水) 14:40:24
bufferedReaderで
while(null !=(line2=fin2.readLine())){
while(null!=(line1=fin1.readLine())){
   -----------------------------------------
   } 
  }
上記のような2重ループをつくると、1回目の内側のループまでおわり、2回目のループに入る時に
fin1.readLine()のポインタがnullにきてしまってるので、2回目の内側のループに入らないのですが
readLine()のポインタをリセットするにはどうすればいいでしょうか?
今はBufferedReader fin1 = new BufferedReader(new FileReader("NVlist"));
  fin1.mark(10000);
で、内側のループの外でfin1.reset(100)してたんですが何回かループするとjava.io.IOException: Mark invalid
というエラーが返ってきます。。。

561 :デフォルトの名無しさん:2009/12/16(水) 14:42:39

fin1.reset(100)→fin1.rest()の間違いです

562 :デフォルトの名無しさん:2009/12/16(水) 15:08:04
もう一度開き直せばいいじゃん

563 :デフォルトの名無しさん:2009/12/16(水) 15:23:43
俺も開きなおす方が簡単だと思うが
mark(10000)は、10000文字ぶんまで記憶するだけで、10001文字め読み込むと、もうmarkは失われてresetできなくなる

564 :デフォルトの名無しさん:2009/12/16(水) 15:55:36
>>562.563
たしかに開き直せば楽ですね

あと>>556を質問したのも自分なんですが、(char)でキャストしたものを標準出力すると文字化け
(MZ? ? ? ¡­)していて正しい値になっていないようなのですが、なんでですかね?
ちなみに読み込むファイルはバイナリでかかれています。

565 :デフォルトの名無しさん:2009/12/16(水) 16:05:04
暇つぶしに自分でアプリを作って居るのですが
26事中4個のクラスにsingletonパターンを使っています
多すぎですかね?

566 :デフォルトの名無しさん:2009/12/16(水) 16:54:47
>>565
暇つぶしに全部に使ってみれば?

567 :デフォルトの名無しさん:2009/12/16(水) 16:56:43
Singleton パターン - Wikipedia
ttp://ja.wikipedia.org/wiki/Singleton_パターン


568 :デフォルトの名無しさん:2009/12/16(水) 16:59:41
jtreeでノードが展開されているのか、閉じられているか調べたのですが
教えてエロイ人!!

569 :デフォルトの名無しさん:2009/12/16(水) 17:18:33
普通に質問しろよ

570 :デフォルトの名無しさん:2009/12/16(水) 17:41:50
>>564
バイナリファイルをテキスト表示できるわけないでしょ
テキストファイルじゃないからバイナリファイルって言うのです

571 :デフォルトの名無しさん:2009/12/16(水) 17:46:01
>>568
javadoc調べた? isExpandedって見つからなかった?

572 :568:2009/12/16(水) 18:59:53
>>571
javadocでgetXXXばかりを調べていました
ありがとうございます

573 :デフォルトの名無しさん:2009/12/16(水) 19:24:34
>>560
マジレスするとwhileのネストしなくても済むように考え直すべき

574 :デフォルトの名無しさん:2009/12/16(水) 22:53:24
>>569

575 :デフォルトの名無しさん:2009/12/16(水) 23:54:05
Javaでジョイスティックを扱えるライブラリにはいろいろあるみたいだけど
どれ使ったらいいの?ffjoystickというのにしてみようかと思っているけど

576 :デフォルトの名無しさん:2009/12/17(木) 03:40:38
>>575
じゃあそれで

577 :デフォルトの名無しさん:2009/12/17(木) 03:41:50
>>575
各ライブラリごとの違いは分かる?

578 :デフォルトの名無しさん:2009/12/17(木) 03:50:06
>>575
分かる?ん?

579 :デフォルトの名無しさん:2009/12/17(木) 15:11:57
お世話になります。

class A {
 int a;
 A(int _a){
  a = _a;
 }
 int x = new Z(a); //<- 0ではなく_aを渡したい
}

上記のように書くと、xはnew Z(0)で初期化されてしまいます。
それより先にaを_aで初期化したいのですが、記述方法はあるのでしょうか?



580 :579:2009/12/17(木) 15:14:52
よろしくお願いしますage

581 :デフォルトの名無しさん:2009/12/17(木) 15:16:35
class A { 
 int a; 
 int x;
 A(int _a){ 
  a = _a;
    x = new Z(a);
 } 



582 :579:2009/12/17(木) 15:26:38
まじでそれしかない?
パラメータ初期化子みたいなのないのでしょうか

583 :デフォルトの名無しさん:2009/12/17(木) 15:33:39
動けばいいんだよ動けば

584 :デフォルトの名無しさん:2009/12/17(木) 15:33:48
わけわかんね

585 :デフォルトの名無しさん:2009/12/17(木) 15:34:30
int x = new Z(a);



586 :579:2009/12/17(木) 15:42:01
ごめんなさい
Z x = new Zだとでも思ってくださ

587 :デフォルトの名無しさん:2009/12/17(木) 15:45:10
JTreeではnodeをダブルクリックしないと展開してくれません
この動作をダブルからシングルクリックにしたいと考えいます、何方か教えてください


588 :デフォルトの名無しさん:2009/12/17(木) 15:45:50
コンストラクタの中に書けばいいだけじゃねーの?
意味ワカンネーよw

589 :デフォルトの名無しさん:2009/12/17(木) 15:48:39
Javaはこの順番だからあきらめよう。
スーパークラスの初期化付きフィールド
スーパークラスのインスタンスイニシャライザ
スーパークラスのコンストラクタ
サブクラスの初期化付きフィールド
サブクラスのインスタンスイニシャライザ
サブクラスのコンストラクタ
この順番だからスーパークラスのコンストラクタで仮想関数を呼び出すとややこしくなるね。

590 :デフォルトの名無しさん:2009/12/17(木) 15:50:41
仮想関数だったんかw


591 :579:2009/12/17(木) 15:51:45
まああきらめですね。
手動リファクタリング中で、記述の変更を抑えたかっただけなので。

皆さんどもでした

592 :579:2009/12/17(木) 15:52:43
>コンストラクタで仮想関数
いやそこまでややこしい問題じゃないっす

593 :デフォルトの名無しさん:2009/12/17(木) 15:54:21
移植でもしてたんか

594 :デフォルトの名無しさん:2009/12/17(木) 15:55:08
リファクタリング (refactoring) とはコンピュータプログラミングにおいて、プログラムの外部から見た動作を変えずにソースコードの内部構造を整理すること。
いくつかのリファクタリング手法の総称としても使われる。

Wikipediaより引用

595 :575:2009/12/17(木) 16:52:12
各ライブラリの違い・・?
「Java ジョイスティック」でググって一番最初に出てきたWikiを見たら
JSR-80はWindows用の実装が進んでいない、libusb32はVistaでは使えないとかは書いてあった。
jUSBはよく分からないけど、2003年からずっと更新されて名一歩意。
FFJoyStickにしたのは一番新しそうで、しかもフォースフィードバックをサポートしてたからってだけだけど
これで良かった?

596 :デフォルトの名無しさん:2009/12/17(木) 17:14:46
ok

597 :デフォルトの名無しさん:2009/12/17(木) 18:46:50
うん

598 :デフォルトの名無しさん:2009/12/17(木) 19:32:56
web pg厨房の相手なんかするな。javaの品格が超下がるだろ。

599 :デフォルトの名無しさん:2009/12/17(木) 20:00:59
web pg厨房って誰のこと?

600 :デフォルトの名無しさん:2009/12/17(木) 20:08:32
うゆじゃね?

601 :デフォルトの名無しさん:2009/12/17(木) 21:31:36
大容量ファイルの、先頭数バイトを削ったり、先頭に数バイト足したりしたいのですが、
数バイトデータを削った新しいファイルを作成すると、書き出しに時間がかかってしまいます。
元のファイルを利用して、もっと効率的にやる方法はないでしょうか?

602 :デフォルトの名無しさん:2009/12/17(木) 21:33:37
ないかもしれません。

603 :デフォルトの名無しさん:2009/12/17(木) 21:35:53
プラットフォームAPIの中にもそんな機能は見かけないからないんじゃね?

604 :601:2009/12/17(木) 21:49:42
絶望しました。

605 :デフォルトの名無しさん:2009/12/17(木) 21:58:04
まあそれできないのはJavaのせいじゃないけどな。

606 :デフォルトの名無しさん:2009/12/17(木) 22:21:03
仕事中に眠くてしょうがないんですが、みなさんはどうですか?

607 :デフォルトの名無しさん:2009/12/17(木) 22:24:38
以下2点。について勉強したいのですが、勉強するに当たってお勧めのサイトや本をお教えください。

1.Tomcatによって?JSPから変換されたサーブレットの記述。initやその他のメソッドの意味

2.TomcatやEclipseの構造。起動ファイルの内容や各クラス間の係わり合い

よろしくお願いします。

608 :デフォルトの名無しさん:2009/12/17(木) 22:24:52
a) コーヒーを飲む。
b) 今すぐ布団に潜る。

609 :デフォルトの名無しさん:2009/12/17(木) 22:28:20
>>606
仕事中にうちに帰った後の自分のためのタスクを作る(スイーツ)

610 :デフォルトの名無しさん:2009/12/17(木) 23:36:06
例えば例えば!?

611 :デフォルトの名無しさん:2009/12/17(木) 23:52:57
教えて下さい

612 :デフォルトの名無しさん:2009/12/17(木) 23:56:57
>>606
覚醒剤もしくはリタリン。

613 :デフォルトの名無しさん:2009/12/17(木) 23:59:58
夜見かけて読みたいと思った技術系の文書(日本語じゃない論文とか特に)を
会社で熟読してたりはする。業務している態を装いながら。ごめんなさい。

眠いときは社内を散歩するといいぞ。

614 :デフォルトの名無しさん:2009/12/18(金) 00:00:48
お塩先生キター

615 :デフォルトの名無しさん:2009/12/18(金) 00:20:25
一日中テストな時期があって超眠くて、
コーヒー、眠眠打破、顔洗う、眠気覚ましツボ、体操、手を針で刺すとか色々試したけど、
効いたのはリタリンだけだった。

やっぱ動物自力で眠気に勝つのは無理なんだよ。ヤバイ薬が嫌なら仮眠とるしかない。

616 :デフォルトの名無しさん:2009/12/18(金) 00:22:32
ジャバコーヒーって美味いの?
やっぱりアメリカンだからスタバみたいなうすい味?

617 :デフォルトの名無しさん:2009/12/18(金) 00:36:11
Javaコード上でMozillaJavaHTMLParserが上手く動かないんですが
質問して良いですか

618 :デフォルトの名無しさん:2009/12/18(金) 00:40:00
まあ聞いてみようか。

619 :デフォルトの名無しさん:2009/12/18(金) 00:55:56
良いよ!

620 :デフォルトの名無しさん:2009/12/18(金) 01:29:12
構わん、続けたまえ。

621 :デフォルトの名無しさん:2009/12/18(金) 01:45:48
そうだ!そうだ!

622 :デフォルトの名無しさん:2009/12/18(金) 01:52:33
【ネット】ニコ生で性器を公開する女子中学生たち [画像付き]
http://2ch.freefronthost.com/newsplus/1328115421/

623 :デフォルトの名無しさん:2009/12/18(金) 02:00:47
あやしいアドレスじゃ

624 :デフォルトの名無しさん:2009/12/18(金) 02:02:23
リンク踏んじゃったお・・・・大丈夫かお?

625 :デフォルトの名無しさん:2009/12/18(金) 05:01:40
Java Communication APIのSerialPortEventListenerについての質問なのですが
SerialPortEventListenerに記述したコードがすべて処理し終わる前にまた
データ通信が行われ、SerialPortEventListenerの最初から処理されてしまいます。
SerialPortEventListenerに記述したコードをすべて処理し終えてから再度データ通信を
行い、SerialPortEventListenerに記述したコードを処理する方法はあるのでしょうか?

626 :デフォルトの名無しさん:2009/12/18(金) 07:10:48
synchronized

627 :デフォルトの名無しさん:2009/12/18(金) 07:17:34
オープンソースで決定木を構築するためのパッケージとかありませんか?


628 :デフォルトの名無しさん:2009/12/18(金) 10:07:39
あったら幸せですね

629 :デフォルトの名無しさん:2009/12/18(金) 14:21:00
JFrameを最大化したいのですが、setsizeとsetlocationを使ってもできません
何方か教えてください

630 :デフォルトの名無しさん:2009/12/18(金) 14:40:44
>629
JFrame#setExtendedState ではダメかな?

631 :629:2009/12/18(金) 15:22:43
>>630
最大化できました。ありがとうございます

実はソフトを起動した時にウィンドウのサイズを復元しようとしているのですが
f.setExtendedState(JFrame.MAXIMIZED_BOTH)をするとウィンドウが強制的に最大化するので
if(Toolkit#getScreenSize() = 前回のウィンドサイズ)として、最大化するか判断しています

しかし、ウィンドウを最大化して終了したのにToolkit#getScreenSize()とズレが発生してしまいます
ウィンドウのサイズはJFrame#getSize()で取得しています
すいませんが、教えてください

632 :デフォルトの名無しさん:2009/12/18(金) 15:44:36
>>630
はやく教えてあげてください

633 :デフォルトの名無しさん:2009/12/18(金) 15:54:53
>>631
最大化したかは (f.getExtendedState() & Frame.MAXIMIZED_BOTH) != 0 で判定する。

634 :629:2009/12/18(金) 15:55:40
f.getGraphisConfiguration().getBounds()
をしたら同じ値になりました
すいませんでした

635 :デフォルトの名無しさん:2009/12/18(金) 16:21:16
>631 参考までに
ttp://imodegwin19.blog114.fc2.com/blog-entry-6.html

636 :デフォルトの名無しさん:2009/12/18(金) 18:50:45
>>627
Weka とか

637 :デフォルトの名無しさん:2009/12/18(金) 18:53:04
617ですが
外部ライブラリの加え忘れでした
自己解決しましたので質問もなしでお願いします
お騒がせしました

638 :デフォルトの名無しさん:2009/12/18(金) 23:45:18
質問です。

キャンバス上に直線を引き
それに「やり直す/元に戻す」機能をつけようと思っています。
しかし、マウスをドラッグしたときの履歴の処理が上手くいきません。

以下が現在のプロジェクトとなっていますので
お気づきの点がありましたら
どうぞご指南のほどよろしくお願いします。

http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/862.zip

639 :デフォルトの名無しさん:2009/12/18(金) 23:59:28
Vector#cloneってディープコピーだっけ?

640 :639:2009/12/19(土) 00:01:41
ごめんPointの配列か
関係ないねorz

641 :デフォルトの名無しさん:2009/12/19(土) 00:17:07
>>640
レスの無駄使いになりますから少し考えてから行動するようにしましょう

642 :デフォルトの名無しさん:2009/12/19(土) 00:59:48
javaクラスライブラリー#clone()した時に
clone()がディープコピーなのかシャドーコピーなのか
調べる方法を教えてください


643 :デフォルトの名無しさん:2009/12/19(土) 01:04:17
>>601
java.io.SequnceInputStreamとかjava.io.FilterInputStreamは調べた?

644 :639:2009/12/19(土) 01:06:30
何度も本当に申し訳ない
>638
まず、startとstartPoint endとendPointがダブってるのでどっちかに統一

それから、CanvasLabelのfigureBoxに追加してる場所がない。
でも大前提としてVectorで持つのではなく、BufferedImage canvasを保持しておくべきなんじゃないのか?
figureBoxを使って一回一回描画してないんだから、canvasを保存しておけばいいとおもう。
もしそうならmouseDraggedのところを
((CanvasLabel) figureBox.lastElement()).setEnd(end); → setEnd(endPoint);
mouseReleasedを
this.canvas.createGraphics();

BufferedImage image = new BufferedImage(this.getWidth(), this.getHeight(), BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D g2 = image.createGraphics();
g2.drawImage(canvas, 0, 0, null);
canvas = image;

history.add(figureBox.clone()); → history.add(canvas);
にして、historyとかundo、redoをVectorからBuffredImage仕様に書き換える

それから、paintComponentがおかしい。
switch文はwhileから出して、Iterator ・・・の行とwhile文は削除→canvasを使って描画すればいいから。

あとはCanvasLabelのコンストラクタなりでhistory.add(null)をしておかないと何もない初めの状態が記録されない。

これでたぶんうまくいくはず。疲れたおやすみ

645 :368:2009/12/19(土) 02:16:13
どうもありがとうございます
早速やってみます

646 :デフォルトの名無しさん:2009/12/19(土) 15:22:21
winでの開発環境はどのようなものが一般的でしょうか

647 :デフォルトの名無しさん:2009/12/19(土) 15:25:34
eclipse

648 :デフォルトの名無しさん:2009/12/19(土) 15:32:24
エクリプスは便利すぎてぬるま湯に浸かってるみたいだ…

649 :デフォルトの名無しさん:2009/12/19(土) 15:34:41
職業マならテキストエディタで書けよって定番レス↓

650 :デフォルトの名無しさん:2009/12/19(土) 15:36:17
職業マなら開発環境くらい自作しろよ

651 :デフォルトの名無しさん:2009/12/19(土) 15:37:39
>>646
NetBeansですね
今やこれ以外の選択肢は無いでしょう

652 :デフォルトの名無しさん:2009/12/19(土) 16:48:15
>>651
NetBeans の検索結果 約 5,540,000 件中 1 - 100 件目 (0.66 秒)
Eclipse Java の検索結果 約 17,000,000 件中 1 - 100 件目 (0.63 秒)

検索件数が倍になったら教えてね。

653 :デフォルトの名無しさん:2009/12/19(土) 16:51:41
NetBeans +開発 +Java -JavaScript -C -PHP -Ruby -SVN -CVS の検索結果 約 122,000 件中 1 - 10 件目 (0.28 秒) 
Eclipse +開発 +Java -JavaScript -C -PHP -Ruby -SVN -CVS の検索結果 約 903,000 件中 1 - 10 件目 (0.29 秒) 

ああ

654 :デフォルトの名無しさん:2009/12/19(土) 16:59:48
NetBeansって名前がダメだよね
豆だもん、豆。

655 :デフォルトの名無しさん:2009/12/19(土) 17:04:53
JavaBeansさんをdisってんの?

disられてもしょうがないと思うけど

656 :デフォルトの名無しさん:2009/12/19(土) 17:05:24
>>654
Javaェ...

657 :デフォルトの名無しさん:2009/12/19(土) 17:08:39
......

658 :デフォルトの名無しさん:2009/12/19(土) 20:38:23
日曜プログラマーはふつうにC#やれよ。
なんでこのスレに来るんだ?

659 :デフォルトの名無しさん:2009/12/19(土) 21:21:55
クラスローダを明示的に呼び出している操作の事を、リフレクションと読んでいるのですか?
リフレクションする時は、*.getClass();ってやっているじゃないですか

660 :デフォルトの名無しさん:2009/12/19(土) 21:46:45
>>659
違います。getClasはクラスローダの呼び出しでもありません。


661 :デフォルトの名無しさん:2009/12/19(土) 22:47:40
>>660
わかりました
ありがとうございます

662 :デフォルトの名無しさん:2009/12/19(土) 23:03:16
SwingUtilities#paintComponent(Graphics g, Component c, Container p, int x, int y, int w, int h)
p - 中間 Container

javadocを見てもパラメータpの意味がわかりません
どなたか教えてください

663 :デフォルトの名無しさん:2009/12/20(日) 05:24:26
>>662
教える人を呼んできますね。

664 :デフォルトの名無しさん:2009/12/20(日) 10:03:33
pっていうのは、最終的なcの描画対象コンポーネントだと思っていいみたい。
pがCellRendererPaneならばそれがそのまま使われるし、そうじゃなかったら、CellRendererPaneを新たに作成して、それにpを乗せる感じ。

665 :デフォルトの名無しさん:2009/12/20(日) 11:00:43
>>664
thx

666 :デフォルトの名無しさん:2009/12/20(日) 11:47:08
JNIを多用し、システムに負荷をかけると性能があまり出なくなりました。
先輩にJNIでC言語のプログラムをよんだとき、C言語のプログラムが確保したメモリって
Full GCでしか開放されないからだといわれたのですが、Full GCはあまりはしっていません。
JNIを使用すると、Full GCを意図的に誘発するようにしなければならないのでしょうか?

667 :デフォルトの名無しさん:2009/12/20(日) 11:53:58
いや、単にJNIが遅いだけ
最近はJITコンパイルの性能も高いから、Javaだけで書ける処理ならJavaだけで書いた方が大抵の場合速い
JNIは、どうしてもCでしか出来ない場合 (OSのAPI呼び出し等) や、
JNIのオーバーヘッドを無視できるような場合 (1回の呼び出しで大量のデータを処理する等) でないと、無意味
あと、Cで確保したメモリはGCは面倒見てくれないから自分で解放しなければならない

668 :デフォルトの名無しさん:2009/12/20(日) 12:24:54
>>664
呼んでからどれだけ待たせるんだw

669 :デフォルトの名無しさん:2009/12/20(日) 12:49:08
「15歳からはじめるJavaオンラインゲームプログラミング教室」という本を書店で見つけて、
ステップアップのための本として読みやすそうだと思いましたが、その本について調べてみると
子ども向けということで一歩踏み込んだ説明が省かれてしまっているとのことでした。

ゲームプログラミングのようなとっつき易い内容で、もう少し詳しい説明が書かれた良書は
何かないでしょうか?ご存知の方、どうぞご教示ください。

670 :デフォルトの名無しさん:2009/12/20(日) 12:53:58
>>667
出番だよ
さっさと回答してやれ

671 :667:2009/12/20(日) 12:57:53
本の善し悪しはわからん
誰か回答してやってくれ

672 :デフォルトの名無しさん:2009/12/20(日) 13:00:23
本読まないで始めた奴の方が多いだろうしな

673 :デフォルトの名無しさん:2009/12/20(日) 13:26:51
スレチしてしまったのでここで改めて質問します。

Canvas3Dをフレームの領域指定して貼り付けたいのですがどうすればいいでしょうか?
例えばフレームサイズが(500,400)として,Rect(10, 10, 390, 390)くらいの領域だけで3D描画を行わせたり等がしたいです。

674 :デフォルトの名無しさん:2009/12/20(日) 13:33:42
オフスクリーンに描画して切り取ったのをコピーすればいいんじゃね?

675 :デフォルトの名無しさん:2009/12/20(日) 13:39:29
>669
細かい説明なんて2冊目で読めばいいから、
1冊目は立ち読みしてみてわかりやすい本でいいと思う

まさか1冊で終わるわけないし。

676 :デフォルトの名無しさん:2009/12/20(日) 13:44:56
Java3Dやらんから的外れかもしれないけど、普通にコンポーネント化して
フレームに貼り付けるんじゃね?

677 :デフォルトの名無しさん:2009/12/20(日) 14:03:03
Javaの入門書について質問です。

多言語で実務経験があるものがJavaを学習するのにオススメの入門書ってありますか?

今のところ独習Javaの購入を検討しています。

実務経験はC:4年、VB5.0:1.5年、VB2005:1年、VC6.0:0.5年といったところです。


678 :673:2009/12/20(日) 14:07:10
>>674
>>676
ありがとうございます。これから本・ネットで調べてその方法で出来るか試してみます。
ただ出来れば具体的な解決策を例示してくれるとありがたいです。

679 :669:2009/12/20(日) 14:19:34
>>672
本を読まずに覚えた人は代わりにどうやって勉強したんでしょうか・・・?

>>675
1冊目はもうすぐ読み終わりそうです。
実用的なスキルが身についていないので、ゲーム等を実際に作って覚えるための
2冊目の本を探してます。

680 :デフォルトの名無しさん:2009/12/20(日) 14:23:05
>>678
おいおい、ヒントだけじゃ出来ませんってか?
例えば http://www7.plala.or.jp/keny01/java3d/java3d_pg_introduction.html とか。
これにしたって、AppletはPanelなんだからFrameとかに貼り付けられる立派なコンポーネントだぜ。

681 :デフォルトの名無しさん:2009/12/20(日) 14:32:08
>>679
>本を読まずに覚えた人
JDKを読む。
sunのチュートリアルを読む。
samplesを読む。
src.zipを読む。
Jakartaなどオープンソースのコードを読む。

682 :デフォルトの名無しさん:2009/12/20(日) 14:55:57
>JDKを読む。

| % od -h java_xx_sdk-x_xx-jdk-xuxx-xxxl.bin
|
| フムフム、なるほど・・・・

   ̄ ̄ ̄|/ ̄ ̄ ̄ ̄
          /つ_∧!
    ∧_∧ 〈(゚д゚ )
   ( ・∀・) ヽ ⊂ニ)
   (つ/ ̄ ̄ ̄/  |
   ̄\/___/ ̄ ̄ ̄


683 :デフォルトの名無しさん:2009/12/20(日) 15:37:11
Javaはサンプルソースがてんこ盛りだから本なんかいらない

684 :デフォルトの名無しさん:2009/12/20(日) 15:50:49
Java 本 に一致する日本語のページ 約 2,610,000 件中 1 - 10 件目 (0.20 秒)
C++ 本 に一致する日本語のページ 約 1,490,000 件中 1 - 10 件目 (0.26 秒)
JavaScript 本 に一致する日本語のページ 約 12,600,000 件中 1 - 10 件目 (0.09 秒)
PHP 本 に一致する日本語のページ 約 15,200,000 件中 1 - 10 件目 (0.37 秒)
C 本 に一致する日本語のページ 約 35,100,000 件中 1 - 10 件目 (0.15 秒)

685 :デフォルトの名無しさん:2009/12/20(日) 15:57:58
サンプルは基本がわかった上で参考にするものだろ

686 :デフォルトの名無しさん:2009/12/20(日) 16:05:44
>>684
本だけとか、Cだけとか、JavaよりC!、みたいな検索結果も混じってるんでない?

687 :デフォルトの名無しさん:2009/12/20(日) 16:11:47
>>683
てことは、このスレもいらないわけだね。

688 :デフォルトの名無しさん:2009/12/20(日) 16:18:13
>>685
sunのサイトにあるSwingのチュートリアル読んで来い。
それにしかかいてない大事なことがいくつかある。

689 :デフォルトの名無しさん:2009/12/20(日) 16:20:20
チュートリアル ≠ サンプル

690 :デフォルトの名無しさん:2009/12/20(日) 16:31:12
>>688
これ?
http://java.sun.com/docs/books/tutorial/uiswing/index.html

691 :デフォルトの名無しさん:2009/12/20(日) 16:33:26
まあ、プログラミングの基本がある程度しっかりできてれば、
ソースだけみてもかなりのことがわかるだろう。
プログラミングの基本を知らない人間は、本かなんかで勉強しないと、
いきなりソースコードだけみてもわからんかもしれない。

692 :デフォルトの名無しさん:2009/12/20(日) 16:41:35
Cヒープとは何をする領域なのでしょうか?
こちらは開発上、意識する領域なのですか?

693 :デフォルトの名無しさん:2009/12/20(日) 16:46:20
誤爆やスレ違いでなかったら、javaのヒープと同じものと言えば分かるかな?
newは無いからmallocなどで確保する。

694 :デフォルトの名無しさん:2009/12/20(日) 17:05:56
ん?

695 :デフォルトの名無しさん:2009/12/20(日) 17:34:35
Class.forNameでロードしたクラスはシステムクラスローダにロードされるのでしょうか?
それともVM次第なのでしょうか?

696 :デフォルトの名無しさん:2009/12/20(日) 17:36:43
javadocに書いてあるけど

> Class.forName("Foo")
> これは、次と同じです
> Class.forName("Foo", true, this.getClass().getClassLoader())

697 :デフォルトの名無しさん:2009/12/20(日) 17:37:43
>>695
http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/Class.html#forName(java.lang.String)
> 指定された文字列名を持つクラスまたはインタフェースに関連付けられた、
> Class オブジェクトを返します。このメソッドを呼び出すことは、次の記述に相当します。
>
>   Class.forName(className, true, currentLoader)
>
> ここで、currentLoader は、現在のクラスを定義するクラスローダを示します。

698 :669:2009/12/20(日) 17:50:03
>>681
なるほど、他人のソースを読むということですね。

でも私はまだそのレベルに達してないと思いますし、
移動中に読みたいので、やはり本がいいと思っています。
どうぞよろしくお願いします。

699 :デフォルトの名無しさん:2009/12/20(日) 18:08:13
オブジェクトをインスタンス化すると確保されるメモリ領域には変数以外何があるんですか?
メソッドについては参照が保持されるのですか?

700 :デフォルトの名無しさん:2009/12/20(日) 18:48:43
>>698
http://www.amazon.co.jp/gp/product/4797344512
ぶっちゃけ、Java(やC#)でゲーム作ってるひとって、C/C++でのゲーム作成経験者が大半じゃない?


701 :デフォルトの名無しさん:2009/12/20(日) 19:10:24
ワタシイングリッシュヨメマセーン

702 :デフォルトの名無しさん:2009/12/20(日) 19:47:45
>>699
まずは人に聞く前に質問できるくらいの勉強はしてこようね

703 :デフォルトの名無しさん:2009/12/20(日) 20:25:29
現在自作のクラスのclone()を実装しようと思って色々やっているのですが、
フィールドにjava.awt.Shape型の変数があり、これのclone()を呼び出したいのですが、
if( shape instanceof RectangularShape ){
  ((RectangularShape)shape).clone();
}else
if( shape instanceof 〜 ){
  〜
}
て感じでif-elseをつなげていくしかないんでしょうか?リフレクション辺りで色々やってみたんですが
コンパイルすら通りません。ちょっとお手上げです・・・

704 :デフォルトの名無しさん:2009/12/20(日) 20:48:30
HashMapや自作のBeanを簡単にディープコピーする方法はあるのでしょうか?
新たにnewして、値を入れないとダメなのですか?

705 :デフォルトの名無しさん:2009/12/20(日) 20:49:32
>>703
Cloneable だけテストすれば済むんじゃないの?

706 :デフォルトの名無しさん:2009/12/20(日) 21:05:45
shape = new GeneralPath(shape); とか

707 :デフォルトの名無しさん:2009/12/20(日) 21:09:42
>>703
いろいろあるけど直列化と逆直列化をしてコピーするとか?

708 :デフォルトの名無しさん:2009/12/20(日) 21:17:29
>>700
ゲームが作りたいのではなくて、Javaが使えるようになるために
とっつき易いゲームを選ぼうとしているだけです。

アマゾンでは
>javaの本ではなくゲームプログラミングの本なのでこの本でjavaを勉強したいという人にはオススメできません
とコメントされているようです・・・。
一度立ち読みでもしてみます。

ありがとうございました。

709 :デフォルトの名無しさん:2009/12/20(日) 22:11:25
Javaのシステムってスレッドを多重化することでパフォーマンスがあがるといいますが、
CPUは数個しかないと思うので、100スレッド多重としてもあまり意味がないと思います。
何多重にすればよいのかは、どういう計算で求めるとよいのですか?

710 :デフォルトの名無しさん:2009/12/20(日) 22:11:31
>>677
それは他言語で実務経験があるとはいわない。
VB.netに手が馴染まなかったのなら、java,c#ともやっても馴染まないだろう。
どの実務があるか知らないけど、最新PCを買ってlinux(virtualpcとかでも)のcでopenglやgtk+をやるといいと思うよ。
javaなら英語のチュートリアルだけど、もし読めないなら5年以上この業界にいるのに英語も読めないのだからもうあきらめた方がいい。

711 :デフォルトの名無しさん:2009/12/20(日) 22:16:46
ベンチマークして求めればいい

712 :デフォルトの名無しさん:2009/12/20(日) 22:25:17
>>709
何かの本にはCPUの数+1くらいと書いてあった

713 :デフォルトの名無しさん:2009/12/20(日) 22:29:36
javaでゲームとか言い出しても実際はjoglだしね。
c#だとdirectxでこれも使う言語に関係ないし。

714 :デフォルトの名無しさん:2009/12/20(日) 22:48:00
>>710は何で偉そうなの?

715 :デフォルトの名無しさん:2009/12/20(日) 22:59:27
>>703
JavaのCloneableは失敗作
コピーコンストラクタでおk
詳しくはEffective Javaを参照

716 :デフォルトの名無しさん:2009/12/20(日) 23:04:06
英語すら読めないならjavaなんぞ無理だな

717 :デフォルトの名無しさん:2009/12/20(日) 23:07:57
海外で暮らしてた俺ならJavaは余裕ってことか?

718 :デフォルトの名無しさん:2009/12/20(日) 23:11:16
アフリカ辺りですか?

719 :デフォルトの名無しさん:2009/12/20(日) 23:12:40
いや。韓国ですOrz

720 :デフォルトの名無しさん:2009/12/20(日) 23:36:39
・・・

721 :デフォルトの名無しさん:2009/12/20(日) 23:59:27
英語できるような賢い子がなんで底辺プログラマなんてやってんの?

722 :デフォルトの名無しさん:2009/12/21(月) 00:02:59
でも辞書引きながらでも英語よまないと情報全然足りないじゃん

723 :デフォルトの名無しさん:2009/12/21(月) 00:04:10
アメリカ行けば英語できるのに底辺の仕事やってる奴が掃いて捨てるほどいるぞ。

724 :デフォルトの名無しさん:2009/12/21(月) 00:05:09
今時、英語も読めないんなら底辺プログラマーすらやってられないのよ。

725 :デフォルトの名無しさん:2009/12/21(月) 00:06:12
その前に日本語勉強して下さい^^;

726 :デフォルトの名無しさん:2009/12/21(月) 00:07:10
>>718
イギリスです

727 :デフォルトの名無しさん:2009/12/21(月) 00:14:26
>>724
で、英語も出来て月給はいくらもらえるんですか?

728 :デフォルトの名無しさん:2009/12/21(月) 00:25:53
>>699
メソッドはクラスがロードされる時だろうね。


729 :デフォルトの名無しさん:2009/12/21(月) 00:46:37
>>708
ゲームって(もちろんものによるけど)結構特殊なので、Javaを学ぶ目的には
あまり適してないと思うんだけどね。

例えばゲームループって呼ばれる手法、WindowsSDKを生で使う場合には
普通にGUIのアプリを作るにも似たようなことするんだけど、
Javaで同じことする場合にはライブラリが隠蔽してくれてるので気にする必要なかったりとか。

で、入門書にはそういうゲームに特化したテクニックはあまり書いてないだろうし、
普通のJavaの使い方はそれとは別に覚える必要があると思うし。

730 :デフォルトの名無しさん:2009/12/21(月) 00:54:40
>>704
CommonsのLangにそういうのあるみたいね。使った事ないけど。
http://commons.apache.org/lang/api-release/org/apache/commons/lang/SerializationUtils.html#clone(java.io.Serializable)

731 :デフォルトの名無しさん:2009/12/21(月) 00:56:49
ゲームってのは、言語+英語+数学がある程度できないと無理。
javaとかc#とかライブラリ的なところはあまり重要でない。

732 :デフォルトの名無しさん:2009/12/21(月) 00:58:29
何故英語?

733 :デフォルトの名無しさん:2009/12/21(月) 01:02:53
英語英語言う奴とコミュ力コミュ力という奴の中身はだいたい同じ

734 :デフォルトの名無しさん:2009/12/21(月) 01:02:56
ゲームのテクはほとんど英語で書いてある。
実際は、業務アプリの数十倍の努力が必要。

735 :デフォルトの名無しさん:2009/12/21(月) 01:10:22
まあ、英語に比べれば Java なんて 1000倍易しいな。
で、Java に馴れるには、まずは List や Map をごちゃごちゃとこねくり回すような題材がいいな。


736 :デフォルトの名無しさん:2009/12/21(月) 01:14:14
で、数十倍の努力してお幾ら稼いでるんですかね。

737 :デフォルトの名無しさん:2009/12/21(月) 01:15:09
海外のサイトから情報が汲み取れないバカのためにここがある

738 :デフォルトの名無しさん:2009/12/21(月) 01:15:15
Javaはチュートリアル(英語)で挫折するかどうかだろ。
それで挫折するようなら見込みないし素直にC#(かVB)にしろ。

739 :デフォルトの名無しさん:2009/12/21(月) 01:18:08
英語英語言ってる奴が日本語読めない事はわかった

740 :デフォルトの名無しさん:2009/12/21(月) 01:19:18
オブジェクト指向の本はJAVAの方が揃っているから
JAVAのほうがいいと思う

741 :デフォルトの名無しさん:2009/12/21(月) 01:20:58
低学歴+底辺無能+日本人は、C#(マイクロソフト)を使ってIT土方として一生汗を流してればよろし。

742 :デフォルトの名無しさん:2009/12/21(月) 01:22:36
僻みっぽいスレだな

743 :デフォルトの名無しさん:2009/12/21(月) 01:30:13
>>741
在日乙

744 :デフォルトの名無しさん:2009/12/21(月) 01:37:11
>>741みたいな奴って、どの板にもいるね
ゴキブリみたいにいっぱい繁殖してるの?

745 :デフォルトの名無しさん:2009/12/21(月) 02:08:16
>>705
すみません。よくわかりません。
Object型にキャストしたところでObject#cloneはprotectedだし、なんらかのcloneを呼べる型にしないとダメなのでは
>>707
それも同等の問題でできあませんね
>>706
Shapeならそれで済みますね。new Area(Shape型)で
>>715
失敗作ですか・・・今回のディープコピーでの手こずりでJavaをちょっと嫌いになりました。好きだったのに・・・

皆さんありがとうございました。
結局今回は、インスタンスの型がある程度絞られていたのでめんどかったけど、>>703の方法で実装しました。


746 :デフォルトの名無しさん:2009/12/21(月) 02:11:09
>>744
ゴキブリにはコンバットがよく効く
コンバット置いてから俺の部屋でゴキブリを見たことがない

747 :デフォルトの名無しさん:2009/12/21(月) 02:58:46
>>715見てEffectiveJava読み直したんだけど、コンパイル時に型が決まってないと駄目だとか
protectedだからリフレクションで云々とか、正に>>703が直面してる問題がそのものだね。

ちなみにリフレクション使うんだったらやりたいことはこうかな?

Method method = Object.class.getDeclaredMethod("clone", new Class[] {});
method.setAccessible(true);
Shape cloned = (Shape) method.invoke(shape, new Object[]{});

748 :デフォルトの名無しさん:2009/12/21(月) 03:45:21
PHPでは
$className = "Foo";
$obj = new $className();

とするとFooインスタンスを作成することができるのですが
Javaで同じようなことをしたい場合どうしたらいいのでしょう?

String className = "Foo";
Foo obj = new className(); //これでは当然無理です

749 :デフォルトの名無しさん:2009/12/21(月) 04:26:42
String className = "Foo";
でString型の"Foo"という文字列を持ったインスタンスが生成される

んだけどPHP知らないからすごい別次元臭がする

750 :デフォルトの名無しさん:2009/12/21(月) 05:38:41
>>748
Class.forName("Foo").newInstance();

751 :デフォルトの名無しさん:2009/12/21(月) 06:14:37
http://www.klab.ai.kyutech.ac.jp/~yatti/sunspot/index.php?%E5%8A%A0%E9%80%9F%E5%BA%A6%E3%82%BB%E3%83%B3%E3%82%B5%E3%82%92%E4%BD%BF%E3%81%86
こっちのSunSpotの加速度センサのプログラムを少し変えたのですが、うまく動きません。
Stateクラス、
public class State {
int state = 5;

public void setState(int state){
this.state = state;
}

public void callState(){
//このstateが1と0になり続ける状態を作りたい…
System.out.println("come :"+state);
}
}

を作って、LEDが点灯している、していない状態を管理したいのです。

↑のWikiのLEDFlash.javaの
public void thresholdExceeded(IAccelerometer3D accel, int axis, double val, boolean relative) {
//閾値より高い値ならばLEDを青色に点滅させる
以降のif文の前者がLEDを点灯させる、else以降がLEDを消灯させるプログラムです。
これは閾値を超えた時だけ呼び出されます。

このifの点灯させる所にst.setState(1);消灯させる所にst.setState(0);を書いても、超えてる時はちゃんと1と0になってるんですが、
放置したら(閾値を超えてない状態)デフォルトの数値のままになってしまいます。(つまり5)
確認はAccelerometerTest.javaクラスの加速度の測定をしているスレッドでst.callState();をして確認をしています。
AccelerometerTest.java、LEDFlash.java、どちらのクラスでもState st = new State();
と書いてるのがマズいんでしょうか…だとしたらどうしたら良いんでしょうか?

752 :デフォルトの名無しさん:2009/12/21(月) 07:04:47
2000年頃から英語やれって云う人はいた。
ttp://piza.2ch.net/test/read.cgi/tech/971960169/132

今は入門書もあり出版や校正する人以外はどうでもいいかな。 >>751 のような制御は知らん。

753 :デフォルトの名無しさん:2009/12/21(月) 07:24:46
>>750
すげー

754 :デフォルトの名無しさん:2009/12/21(月) 09:13:30
基本の演算処理ですけど
int a =5; int b =12が宣言されているのですが
(a<=b),(a<b)&(a>b),(b%a),(a!=b),(++a)*bの実行結果を求めたいのです。

755 :デフォルトの名無しさん:2009/12/21(月) 09:50:29
勝手に求めてくださいよそのの程度

756 :デフォルトの名無しさん:2009/12/21(月) 12:36:14
>>751
> 放置したら(閾値を超えてない状態)デフォルトの数値のままになってしまいます。(つまり5)
つまり放置しなければいい
もしくは放置したことを感知できればいい
やりかたはしらない

757 :デフォルトの名無しさん:2009/12/21(月) 12:45:10
>>751
わかったかな?


758 :デフォルトの名無しさん:2009/12/21(月) 13:21:14
>>751
wikiじゃなくて発売元に聞いてサポート受けたら?

759 :デフォルトの名無しさん:2009/12/21(月) 13:55:00
>>751
コンストラクタで現在の状態(0か1)を初期値として与える必要があるんじゃないの?
言葉通りしきい値超えないとコールバックされないんでしょ

760 :デフォルトの名無しさん:2009/12/21(月) 14:02:55
>>751
もしも〜し

761 :デフォルトの名無しさん:2009/12/21(月) 14:05:21
> thresholdExceededメソッド
> 加速度センサが閾値を超えたときに呼ばれるメソッド.
ってあるからStateの初期値は閾値を超えてない状態を与える必要があるのでは。
てか5って何か意味あるの?

762 :デフォルトの名無しさん:2009/12/21(月) 18:43:44
>>751
どうなの?

763 :デフォルトの名無しさん:2009/12/21(月) 18:56:53
ここってサーブレットの話題とかでもおkですか?

764 :デフォルトの名無しさん:2009/12/21(月) 19:01:57
ばっちこーい

765 :デフォルトの名無しさん:2009/12/21(月) 19:03:59
ぬふぅ

766 :デフォルトの名無しさん:2009/12/21(月) 19:06:44
>>679
ほとんど英語のドキュメントとチュートリアルで覚えましたね

767 :デフォルトの名無しさん:2009/12/21(月) 19:07:46
>>763
OK
専門分野にしてる人多いです

768 :デフォルトの名無しさん:2009/12/21(月) 19:09:29
EE6のCDIについて草案ではなく、リリース状態の仕様でチュートリアルを書いてるサイトはないですか?

769 :デフォルトの名無しさん:2009/12/22(火) 00:15:43
引数に「Hoge.class」とClassを渡す事がありますが
何に使っているんですかね?
型の比較?

770 :デフォルトの名無しさん:2009/12/22(火) 00:32:00
>>769
・インスタンス化を遅延。(newInstance/getConstructor)
・リフレクションで動的にメソッドを呼び出し/フィールドアクセス。(getMethod/getField)
・クラスオブジェクトをキーにしてファクトリを選択。(Mapで対応付け)
・クラス名やパッケージ名を文字列でげっと。
とかかな。割と頻繁に使ってる。

771 :デフォルトの名無しさん:2009/12/22(火) 01:58:09
>>746

772 :769:2009/12/22(火) 09:59:47
>>770
thx

773 :デフォルトの名無しさん:2009/12/22(火) 10:21:29
javax.accessibilityって何をやるクラスなんですかね?
javadocを読んでもパッと来ないんですが

774 :デフォルトの名無しさん:2009/12/22(火) 11:17:19
目が見えない人用のスクリーンリ−ダーとか点字ディスプレイとか音声入力とかなんかそういう類の
詳しくは知らん

775 :172:2009/12/22(火) 11:35:57

>>773
私も初めて見たのですが。
普通アクセシビリティっていうと、障害者の操作補助とかそういうイメージ。
目の見えない人のための音声読み上げ機能とか。
普段画面で行う入出力(テキストを読む、リンクをクリックする、みたいな)を
別の手段で提供するための標準化インタフェースだったりヘルパクラスだったりする、のかな?


http://mediacast.sun.com/users/akihito/media/Java_Accessibility.pdf
に日本語の資料ありますね。

776 :773:2009/12/22(火) 12:04:26
AccessibleContextってクラスがあるんですが、このクラスが属しているパッケージなので気になりました
JLabel#setText()を読んでいたらAccessibleContextが出てきたのですが、さっぱりわかりませんでした
このインスタンスはJComponentのフィールドにprotectedで宣言されています

777 :デフォルトの名無しさん:2009/12/22(火) 14:18:10
障害者用の補助装置をjavaから制御する場合の話だからそういう開発者以外関係ない。
AWTに口だけ公開しときますよって話だと思えばいい。

778 :デフォルトの名無しさん:2009/12/22(火) 15:37:36
>>746

779 :デフォルトの名無しさん:2009/12/23(水) 00:46:54
java.awt.DesktopでDesktop.getDesktop().browse(homePageUrl);を使いたいのですが、
java.netURIにおいて、String型のテキストをURL型もしくはURI型に
追加するには何を使えばいいのでしょうか?

http://homepage.jp/
というURI型のものに、
abcd
というString型の文字列を変換したものをくっつけて、
http://homepage.jp/abcd
という表示をbrowse(homePageUrl)で行いたいのです。

そのString型→URI型の変換でつまづいています…。
よろしくお願いします。

780 :デフォルトの名無しさん:2009/12/23(水) 00:58:26
普通に new URL(filename+"abcd"); でムリ?

781 :デフォルトの名無しさん:2009/12/23(水) 02:39:06
URI クラスの resolve(String) を使うのかな?多分

782 :デフォルトの名無しさん:2009/12/23(水) 09:36:34
http://terai.xrea.jp/Swing/MidiSystem.html
同じPCでこれが鳴る場合と鳴らない場合があるんですが...

783 :デフォルトの名無しさん:2009/12/23(水) 10:05:50
>>780
ムリみたいです…。

>>781


784 :デフォルトの名無しさん:2009/12/23(水) 10:56:57
>>779
URI a = new URI("http://www.google.co.jp/");
URI b = new URI(a + "search?q=java");
Desktop.getDesktop().browse(b);

ふつうにいけないか?

785 :デフォルトの名無しさん:2009/12/23(水) 11:11:14
>>779
URI uri = new URI("http://homepage.jp/");
URI newuri = new URI(uri.getScheme(),uri.getHost(),"/abcd",uri.getFragment());
System.out.println(newuri.toString());
という意味?

786 :デフォルトの名無しさん:2009/12/23(水) 12:12:14
( ^ω^)大量

787 :デフォルトの名無しさん:2009/12/23(水) 16:38:55
>>779ですが、
お答えくださってありがとうございました。
>>781さんのヒントから色々探してみました。
URL型でURL取得するのでURL取得→.toURI→.resolve(string)で解決できました!
resolveだけに…w
どうもありがとうございました^^

788 :デフォルトの名無しさん:2009/12/23(水) 23:20:55
いくつかの重い処理をするにあたって、割り込みするコードについて質問です。
現在では、Threadのrunメソッドで、
try{
 重い処理1
  if(interrupted())throw new InterruptedException();
 重い処理2
  if(interrupted())throw new InterruptedException();
 重い処理3
} catch (InterruptedException e){ }
という感じにしているんですが、結局ジャンプ処理なので汚いコードだと感じています。
こういう場合にはどうするべきでしょうか? よろしくお願いします。

789 :デフォルトの名無しさん:2009/12/23(水) 23:59:05
JComponent#setOpaque()のソース
public void setOpaque(boolean isOpaque) {
 boolean oldValue = getFlag(IS_OPAQUE);
 setFlag(IS_OPAQUE, isOpaque);
 setFlag(OPAQUE_SET, true);
 firePropertyChange("opaque", oldValue, isOpaque);
}

なんで、firePropertyChange("opaque", oldValue, isOpaque);と書く必要があるのですか?
firePropetyChange()でイベントを発生させなくても、普通にメソッドを呼び出した方が楽じゃないですか

790 :デフォルトの名無しさん:2009/12/24(木) 00:14:04
うん?
addPropertyChangeListenerで登録されたリスナ全員にプロパティの変化を伝えなきゃいけないからでは?
普通にって、何のメソッドを呼ぶの?

791 :デフォルトの名無しさん:2009/12/24(木) 01:30:41

>>782
ローカルにjar保存してコマンドプロンプトから実行してみれば?
例外とか出てるの見れば理由わかるのでは。


>>788
自分だったらコマンドパターン適用するかも。
重い処理Xをそれぞれ別クラスにして、それらの共通スーパクラスで重い処理メソッド呼んでその後中断判定する。

792 :デフォルトの名無しさん:2009/12/24(木) 02:27:31
アクセス修飾詞なんですけど、どういう状況で使い分けたらいいかわかりません
教えてください

793 :デフォルトの名無しさん:2009/12/24(木) 02:43:40
アプレットのプログラムについて質問です。
内容はボールを反射させて動かす(ピンボールのような)プログラムです。

g.setColor(Color.red);
g.fillOval((int)(this.x2-3),(int)(this.y2-3),6,6);

このようなプログラムが組まれており意味してるものは動かすボールの色と大きさを指定しているのは理解できるのですがこれでなぜ色と大きさが指定できているのか細かい部分がよくわかりません。
なぜこれで色と大きさを指定できるのでしょうか?

794 :デフォルトの名無しさん:2009/12/24(木) 02:57:21

まさにそういう用途のメソッドだと思うのだけれど。
http://java.sun.com/javase/ja/6/docs/ja/api/java/awt/Graphics.html#setColor(java.awt.Color)
http://java.sun.com/javase/ja/6/docs/ja/api/java/awt/Graphics.html#fillOval(int, int, int, int)



795 :デフォルトの名無しさん:2009/12/24(木) 03:08:15
このサイトに書いてあるアルゴリズムを教えていただけないでしょうか…?
お願いします

796 :デフォルトの名無しさん:2009/12/24(木) 03:31:33
すいません、サイトを貼るの忘れてました
http://oraclesqlpuzzle.hp.infoseek.co.jp/java/java-3-6.html
お願いしますm(_ _)m

797 :デフォルトの名無しさん:2009/12/24(木) 03:48:41
>>793
gの色をセットします(赤色に)
ってのは理解できるべ?
g.fillOval(〜,〜,〜,〜)
ってのは
http://www.tohwa-u.ac.jp/~kodama/java/3_oval.html
みてみよ。

というか、そういうものだ、ってここは思わないと進めないレベルだぞ。
とりあえず、.setColorで色決めて、.fillOvalで塗りつぶされた円を描くコマンドだと思いなさい。

798 :デフォルトの名無しさん:2009/12/24(木) 04:30:27
>>795
ただの総当たりにみえますが。
2回目以降は前回の手数を
越えるものは総当たり条件から外してるみたいだけど
これで最適手順が見つかる保証は
無いでしょうね。

799 :デフォルトの名無しさん:2009/12/24(木) 04:35:20
あ、最適解云々は勘違いしてたので忘れて

800 :デフォルトの名無しさん:2009/12/24(木) 06:09:34
>>788
ジャンプするためだけに例外を投げるのが邪道ってこと?
try-catch の中身をメソッドとして独立させてみては

/**
* @return 中断されずに処理を終えたかどうか
*/
void process() {
  重い処理1
  if (interrupted()) return false;
  重い処理2
  if (interrupted()) return false;
  重い処理3
  return true;
}


801 :800:2009/12/24(木) 06:13:33
>>788 を読み返してみたら
質問の意図と違ってたかもしれん
すまん


802 :782:2009/12/24(木) 08:47:31
>>791
jarファイルをコマンドプロンプトから実行しても特に例外などは出ませんでした。
ちょっと>>782の説明が足りませんでしたので補足しますと
JREのインストールフォルダ内にある\lib\audioフォルダにsoundbank.gmがあると
音は鳴るんですが変な音質なんです。
逆にsoundbank.gmが無い場合は、正常な音質で鳴る場合と全く鳴らない場合がありますが、
確実に正常に鳴らす方法はありますでしょうか。

803 :デフォルトの名無しさん:2009/12/24(木) 10:11:02
ありますとよいですね。

804 :デフォルトの名無しさん:2009/12/24(木) 10:37:46
>>802
とりあえず MidiSystem#getMidiDeviceInfo() で取得できる
全 MidiDevice の名前を書いてくれ。

lib/sound.propertiesのコメントでない行も書いてくれ。

WindowsのJREなら少なくともシンセ2つが繋がっているはず。
(Java独自のシンセサイザとWindows内蔵のシンセサイザ)
どっちが使われてるかは把握してる?

何度読んでもMIDI関係のAPIは納得いかんとこが多いな…

805 :782:2009/12/24(木) 10:51:48
>>804
MidiDeviceの一覧は下記の通りです
Microsoft MIDI ?}?b
Windows MIDI_MAPPER
false
Microsoft GS Wavetable SW Synth
Internal software synthesizer
false
Real Time Sequencer
Software sequencer
false
Java Sound Synthesizer
Software wavetable synthesizer and receiver
true

それぞれの3行目のtrue/falseは
System.out.println(MidiSystem.getMidiDevice(i) instanceof Synthesizer)
の実行結果で、一番最後の「Java Sound Synthesizer」がデフォルトと思います

また、lib/sound.propertiesは全てコメント「#」で始まっています

806 :デフォルトの名無しさん:2009/12/24(木) 11:21:42
>>792
可能な限り狭いものを使っていれば問題ない。
まずprivateで済ませること。どうしてもダメならprotectedに拡張、そ
れでも足りないなら無指定、publicはfinal以外では使わない。


807 :デフォルトの名無しさん:2009/12/24(木) 11:29:31
>>792
隠したいなら private
公開したいなら public
設計ミスの継ぎはぎには protected
サンプルプログラム用に字数減らしたい場合は無指定で package private

808 :デフォルトの名無しさん:2009/12/24(木) 11:32:05
>>806
デフォルトアクセスとprotectedだとデフォルトアクセスの方が制限きつい。

809 :804:2009/12/24(木) 12:05:04
>>805
あー…、MicrosoftGS音源のSynthesizerって出てこないんだ…
それどころか本物のMIDI音源実機(Roland)も出てこないよー。
Sequencer使わずに自前でReceiverにMIDI信号投げてたんで気づかなかった。すまん。

Sequencerの音色がSynthesizerに依存している以上、JavaSoundしか選べそうにないね。

soundbank.gmってのはJavaSoundのデフォルト音源だと思う。
消しちゃダメー。書き換えるのもたぶんダメー。
Synthesizer.loadAllInstruments()で別の音源と差し替えることは可能と思う。

810 :デフォルトの名無しさん:2009/12/24(木) 12:23:31
javaで画像処理って定番は何になるのでしょうか?
CだとOpenCVやImageMagicがありますが

811 :デフォルトの名無しさん:2009/12/24(木) 12:48:52
>>809
あまり関係ないとおもうけど、確か公式で高音質盤のサウンドバンクが提供されてたよ
デフォルトで含まれているの最低音質で、3段階くらいあったとおもう。

812 :デフォルトの名無しさん:2009/12/24(木) 13:19:22
>>805
MidiSystem.getSequencer()で得られるシーケンサはデフォルトシーケンサだからデバイスの取得から自分でやってみれば?
プラットフォーム側で無効化されてるデバイスも叩き起こせる仕様だから自分でデバイス拾って開けばいい。

813 :デフォルトの名無しさん:2009/12/24(木) 14:19:45
>>810
普通ならそれをjni,jna

814 :782:2009/12/24(木) 14:58:33
>>812
「Real Time Sequencer」にしましたが
soundbank.gmがあっても音が全く鳴らなくなりました。
「Microsoft MIDI ?}?b」は認識されず
「Microsoft GS Wavetable SW Synth」
はClassCastExceptionが発生しました。

815 :デフォルトの名無しさん:2009/12/24(木) 15:41:08
>>806
>publicはfinal以外では使わない

そういうものなんですか?
これって割と常識として知られてること?


816 :デフォルトの名無しさん:2009/12/24(木) 15:42:22
メソッドの話?

817 :782:2009/12/24(木) 15:52:15
別バージョンのJREを何回か再インストールしているうちに
いつの間にか正常に音が鳴るようになりました。
音が鳴らなかった真の原因は未だに分かりません...。

818 :デフォルトの名無しさん:2009/12/24(木) 15:54:51
>>815
>>806 はでたらめなので心配御無用

819 :デフォルトの名無しさん:2009/12/24(木) 16:22:17
java.util.prefs.Preferencesで、userNodeには問題なくキーとデータを登録できるのに、
systemNodeには登録できず警告が出る。OSはWin。

という症状が、特定マシン上だけで起きるのだけど、どんな原因が考えられますかね?
自分や知り合いのマシンでは問題無いのに、知らない人のマシンでは起きているのです。
それからJREを再インストールしてもこの問題は解決しない。

820 :デフォルトの名無しさん:2009/12/24(木) 16:25:11
アクセス指定子はクラスの場合、メソッドの場合、フィールドの場合で
ずいぶん事情が違う。
>>806 はフィールドの場合に見える。


821 :デフォルトの名無しさん:2009/12/24(木) 16:54:40
public fieldが許されるのは小学生までだよねー(AA略

822 :デフォルトの名無しさん:2009/12/24(木) 16:59:27
>>810
JREにもれなく付いてくるJava2Dでは不足?

823 :デフォルトの名無しさん:2009/12/24(木) 17:06:04
>>819
その方、レジストリの管理権限はあるのかしら。
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs
に読み書き可能なのか、レジストリエディタかなんかで確認した方が

824 :デフォルトの名無しさん:2009/12/24(木) 18:23:37
>>823
嫌です

825 :デフォルトの名無しさん:2009/12/24(木) 18:36:28
>>817
シーケンサに命令溜めた後ちゃんとシンセサイザに送ってる?

826 :デフォルトの名無しさん:2009/12/24(木) 19:30:07
>>823
アカウントの権限を確認してもらったけど、Adminとのことでした。

827 :782:2009/12/24(木) 19:40:09
>>825
Javaのmidiに関しては殆ど詳しくないので
ソースを挙げて頂ければ有り難いです

828 :デフォルトの名無しさん:2009/12/24(木) 19:50:38
>802
そもそも「変な音質」とか「正常な音質」ってどういう話なんだ。
たとえば拾い物のYAMAHA用MIDIファイルを別音源で聞いて、それが変か正常かは主観レベルの話なんだが。

829 :782:2009/12/24(木) 20:50:05
>>828
「変な音質」というのは誤解を招く書き方でしたね、訂正いたします
他のプレイヤーで聞いた場合と同じかどうかということです

830 :デフォルトの名無しさん:2009/12/24(木) 21:14:10
情報小出しウザイ
そろそろ失せろ

831 :デフォルトの名無しさん:2009/12/24(木) 22:52:35
>>830
イブで女の子と一緒に過ごせないからってカッカすんなよwww

832 :デフォルトの名無しさん:2009/12/25(金) 00:04:14
イブで女の子と一緒?
外国の宗教とはいえ神様に失礼すぎw

833 :デフォルトの名無しさん:2009/12/25(金) 01:38:21
今年のクリスマスは中止になったって聞いてたけど

MIDIってのは環境とかプレイヤーによって音が変わるものじゃないのか。


834 :デフォルトの名無しさん:2009/12/25(金) 01:39:53
変わるよ

835 :デフォルトの名無しさん:2009/12/25(金) 01:50:19
昔のwin95の音源はひどかった
なつかしい

836 :デフォルトの名無しさん:2009/12/25(金) 02:01:38
むしろFM音源のほうが好きだった

837 :デフォルトの名無しさん:2009/12/25(金) 11:05:40
だな

838 :デフォルトの名無しさん:2009/12/25(金) 13:34:19
MIDIはWindows98あたりから
Windows標準でサポートされたが
Windowsのがあまりに低音質だったので
避けられるようになったのは有名
それ以前からあったWinGrooveとかのほうがマシだった

839 :デフォルトの名無しさん:2009/12/25(金) 14:03:48
打楽器やベースは結構使える音だと思うけどなー

840 :デフォルトの名無しさん:2009/12/25(金) 14:28:42
あの楽器?

841 :デフォルトの名無しさん:2009/12/25(金) 15:44:12
FM音源が好きなんだが

842 :デフォルトの名無しさん:2009/12/25(金) 17:10:01
YAMAHA万歳

843 :デフォルトの名無しさん:2009/12/25(金) 17:13:14
FM音源とかファミコン音源とかが好きなんだが

844 :デフォルトの名無しさん:2009/12/25(金) 17:19:21
スーパーファンファジーゾーンは神

845 :デフォルトの名無しさん:2009/12/25(金) 17:21:18
FM音源の楽器音声の再現度はほぼ無いから、再現という使い方は出来ないんだろうけど
FM音源の音が俺は好きだ

846 :デフォルトの名無しさん:2009/12/25(金) 20:00:39
FM音源は確かに好きだけど、FM音源を流用したおざなりなMIDI再生はいただけない。
PC9801-86とSoundBlaster16の両方ともドライバの出来は良くなかったな。
ドライバでどうこうなる話でもないのかも知れないが。

847 :デフォルトの名無しさん:2009/12/25(金) 20:05:01
javadocの特殊な文字化けについての質問です。
マルチバイト文字を値に持つ定数のjavadocに{@value}を使用したところ、
作成したjavadocのvalue部分がutfのコード表記に化けてしまいます。
-encoding -charsetの指定は効果なしでした。
解決策を御存じの方がいらっしゃいましたらご教示ください。


[ソース]
/** 定数 {@value} */
public static final String HOGE = "ほげ";

[javadocの表示例]
定数 ("/uaafd/u7ca2/u42ce")

[期待する出力]
定数 ("ほげ")

848 :デフォルトの名無しさん:2009/12/26(土) 00:51:25
OpenTypeFontを読みたいのですが、うまくいかないので教えていただければ幸いです。
OpenTypeはTrueTypeの一部ということで次のようにしましたが例外がでます。
Font.createFont(Font.TRUETYPE_FONT, new File("***.otf"));
当然といえば当然なんですが。どうやって読み込めばいいんでしょう。

849 :デフォルトの名無しさん:2009/12/26(土) 05:06:51
JAR内の /a/b/SapmleClass.class から
同じJAR内の /resources/image.gif にアクセスしたいのですが、
SapmleClass.class.getResource("../../resources/image.gif") だとnullが返ってきます。

取り方が間違っているでしょうか?

850 :デフォルトの名無しさん:2009/12/26(土) 06:00:41
java soundもあるしアクセスは用意されてるよね。
それならOSSでプロジェクト組んで新音源を開発してもいいんじゃない?
いくらソフト音源だとしても、実装はsse,gpuとか使うからJavaにはあまり関係ないけど。
コーディック開発とはまた違った意味で面白いんじゃないか。

851 :デフォルトの名無しさん:2009/12/26(土) 10:14:17
JARのルートからのパスでアクセスできました。
SapmleClass.class.getResource("/resources/image.gif")

852 :デフォルトの名無しさん:2009/12/26(土) 12:32:11
いくつかのWindowsアプリケーションに、「右クリックメニュー」というものが
実装されていますが、あれはSwingでは(JMenuなどと違い)サポートされていないのでしょうか。

853 :デフォルトの名無しさん:2009/12/26(土) 12:35:27
JComponent#setComponentPopupMenu

854 :デフォルトの名無しさん:2009/12/26(土) 12:45:49
Adobeの次はJava。GENOウイルスの第二波が来るぞー(^o^)ノ
http://tsushima.2ch.net/test/read.cgi/news/1261786925/

855 :デフォルトの名無しさん:2009/12/26(土) 13:03:38
>>853
ありがとうございます。

856 :デフォルトの名無しさん:2009/12/26(土) 13:05:17
>>855
俺へのお礼レスはいらない

857 :デフォルトの名無しさん:2009/12/26(土) 13:14:49
>>842

858 :デフォルトの名無しさん:2009/12/26(土) 13:30:09
>>851
よそ様のパッケージも使うつもりがあるなら/resourcesは使わない方がいいぞー。
/a/b/resourcesじゃだめ?

859 :デフォルトの名無しさん:2009/12/26(土) 14:49:22
struts2のconventionプラグインって
import com.opensymphony.xwork2.ActionSupport;
ってやらなくても命名規約さえ○○Actionになって○○actionsっていうパッケージにはいってれば
見つけてくれるんだと認識してたけど実際はしてくれない
xwork2.ActionSupportをインポートしないと認識してくれない

conventionプラグインは結局これインポートしないといけないの?

860 :デフォルトの名無しさん:2009/12/26(土) 15:18:26
>>859
△△もっとStruts2の良さを教えてくださいSsssion6
http://pc12.2ch.net/test/read.cgi/tech/1217536023/


861 :849:2009/12/26(土) 20:55:35
>>858
アドバイスありがとうございます。
使ってる他のJARにも/resourcesがあると、どっちか特定できないということでしょうか?
/a/resourcesに変えることにします。

862 :デフォルトの名無しさん:2009/12/27(日) 11:34:32
同名のリソースが複数あると最初に見つかったURLが返ってくるので、かぶりらないような名称にした方がいいよ

863 :デフォルトの名無しさん:2009/12/27(日) 12:48:45
>>856
ケッ

864 :デフォルトの名無しさん:2009/12/27(日) 14:39:01
以上、暇人でしたっ

865 :デフォルトの名無しさん:2009/12/27(日) 15:17:50
まじなんかすごい時代だよな

色々と

天才達の手によってここまできたが
すごい話だぜ

866 :デフォルトの名無しさん:2009/12/27(日) 16:14:17
>>865
まあ僕たち天才が行うべき使命ですので凄いとかはあまり意識していないのですが

867 :デフォルトの名無しさん:2009/12/27(日) 16:15:46
何が凄くて何が時代の?
で、何の天才で例えば誰のこと?

868 :デフォルトの名無しさん:2009/12/27(日) 16:30:28
そういう疲れる話し方やめてくれる?

869 :デフォルトの名無しさん:2009/12/27(日) 16:33:07
>>865-868
年末だしとりあえず金くれ

870 :デフォルトの名無しさん:2009/12/27(日) 16:34:43
俺にもおくれ

871 :デフォルトの名無しさん:2009/12/27(日) 23:41:16
質問させてください。

JavaSE6のjavax.xml.bind.SchemaOutputResolverクラスの
Javadoc(下記URL参照)を読んでいたら、こんな記述を見つけました。
「互換性を損なうことなく将来のバージョンを発展させることができるようにするため、
これはインタフェースではなくクラスになっています。」

http://java.sun.com/javase/ja/6/docs/ja/api/javax/xml/bind/SchemaOutputResolver.html

「互換性を(〜中略〜)にするため」とありますが、インターフェースを定義し、
将来のバージョンでも同インターフェースを必ず実装することにより
互換性が維持できると個人的に思い込んでいるため、納得できません。

クラスでなければならなかった理由をご教授ください。
よろしくお願いします。


872 :デフォルトの名無しさん:2009/12/27(日) 23:43:42
将来的なバージョンでインターフェースにメソッドが増えた場合の事じゃない?
インターフェースだったら、自分で実装してるクラス全部書き換えるけど、
継承元がクラスだったら、自分で実装してるクラスは書き換えなくてもすむかもしれない。

873 :デフォルトの名無しさん:2009/12/27(日) 23:45:58
最初のバージョンで次のようなインタフェースを定義しました
interface A {
void foo();
}
そこでとあるアプリケーションがこのインタフェースを実装して使うことにしました
class B implements A {
public void foo() { ほにゃらら }
}
新しいバージョンでインタフェースが拡張されメソッドが増えました
interface A {
void foo();
void bar();
}
先ほどのアプリケーションを新しいバージョンで実行すると bar() が定義されていないので NoSuchMethodError

874 :デフォルトの名無しさん:2009/12/28(月) 00:11:56
wait と Thread.sleep ってどう違うの?

875 :871:2009/12/28(月) 00:14:34
>>872-873
回答ありがとうございます。

将来のバージョンで新しい(非抽象)メソッドが追加された場合は、
追加実装が不要なため、インターフェースよりクラスの方がたしかに有利ですね。


以下、チラ裏

ただ、多重実装ができなくなるなど、
クラスで設計したことによるデメリットと比較すると微妙な気がします。

となると、どちらを選択するかはケースバイケースになるのでしょうか?
そうなると、今回の「ケース」は何と表現(説明)すればいいのでしょうか?


876 :デフォルトの名無しさん:2009/12/28(月) 00:20:52
まだ完成度が低いなと思ったらクラス
既存のクラスに付け加える可能性が高いなと思ったらインターフェース

どっちもと思ったら、天秤にかけるしかないんじゃないかなあ

877 :デフォルトの名無しさん:2009/12/28(月) 00:25:05
いや、使うときに、

TypeABC hoge;

この左側を、Interfaceで使う場合がおおいか、
実装クラス名で使う場合がおおいか、

じゃねーか?

878 :デフォルトの名無しさん:2009/12/28(月) 00:25:42
本当は実装したいことがあるのでinterfaceじゃないんだけど、
時間がなくて実装できてません。
今の姿を見ればinterfaceで良いように見えるんだけど、真の姿はこんなんじゃないんです。

ということが言いたいんじゃ。

879 :デフォルトの名無しさん:2009/12/28(月) 00:26:35

interface A { }

class A001 implements A { }

class B { }

class B001 extends B { }


A MyA として使うなら、Interface
B001 MyB として使うなら、クラス

じゃん

880 :デフォルトの名無しさん:2009/12/28(月) 00:27:38
>>878

おお、それだ!
だから、本質はクラスなんだよって事だね。

881 :デフォルトの名無しさん:2009/12/28(月) 00:28:11
リファクタリングしていって interface になる、ってことは結構あるけど、
リファクタリングしていくと interface がなくなるなんてことはあるんかしらん。

882 :デフォルトの名無しさん:2009/12/28(月) 00:29:29
>>874
waitはnotifyで起こせる
sleepはnotifyで起こせない
interruptを使えばどちらも起こせるが、起こしたい対象のwait/sleep以外でも
ところ構わず起こしてしまうので使い方が難しい
ところ構わず起こしたい場合には便利
あとwaitはspurious wakeup してしまうことがある

883 :デフォルトの名無しさん:2009/12/28(月) 00:44:15
>>874
Thread.sleepは、目覚まし時計を用意して、自分で寝て、自分で起きる。
基本的に自スレッドが時刻と同期するために使用する。

waitは、モーニングコールを依頼して、自分が寝て、他人(別スレッド)に起こしてもらう
(誰にも起こしてもらえなかった場合に、タイマーで自力で起きることも可能)。
基本的に自スレッドが別スレッドと同期するために使用する。


884 :デフォルトの名無しさん:2009/12/28(月) 00:56:12
>>883
モーニングコールって、普通は時刻を指定して依頼するから、
目覚ましをセットするのと変わらないんじゃ。
「そっちの仕事が終わったら起こしてね」と伝えてから寝る、
といったたとえのほうが正確かも。
重箱の隅みたいですまんね。


885 :デフォルトの名無しさん:2009/12/28(月) 01:32:28
>882-884
なるほど。
notifyを使う場合はwait Timerみたいな場合はThread.sleepって感じなんだな
ありがとう

886 :デフォルトの名無しさん:2009/12/28(月) 01:58:58
>>885
俺へのお礼レスはいらないって…

887 :デフォルトの名無しさん:2009/12/28(月) 02:05:38


888 :デフォルトの名無しさん:2009/12/28(月) 03:38:25
使われ方を想定せずにインタフェースの粒度なんて決められるわけない。
ライブラリのインタフェースはエスパーと妥協の産物

889 :デフォルトの名無しさん:2009/12/28(月) 07:55:07
>>873
というよりも、abstract class とか使ったことないでしょ。

890 :デフォルトの名無しさん:2009/12/28(月) 08:01:30
>>883
You should wake up from your deely sleeping.

891 :デフォルトの名無しさん:2009/12/28(月) 14:35:34


892 :デフォルトの名無しさん:2009/12/28(月) 16:09:46
You have to shave up you are sheep or theaf

893 :デフォルトの名無しさん:2009/12/28(月) 22:34:22
何語だ?米語?deely? theaf?
deeplyかなぁ?

894 :デフォルトの名無しさん:2009/12/29(火) 07:39:51
>>893
それ、指摘するまでまったく気にしてないで読んでたw

895 :デフォルトの名無しさん:2009/12/29(火) 08:33:31
$ appletveiwereer HalloJava &

そんなコマンドはありませんorz

896 :デフォルトの名無しさん:2009/12/29(火) 08:55:35
なにそのイェェェェァァァ系コマンドw

897 :デフォルトの名無しさん:2009/12/29(火) 09:00:00
根っからの江戸人ならやりそうw

898 :デフォルトの名無しさん:2009/12/29(火) 10:11:23
explorereとかkonquaroroとかbashだとコマンドしにくいよね。

899 :デフォルトの名無しさん:2009/12/29(火) 12:48:05
しにくいですね。

900 :デフォルトの名無しさん:2009/12/29(火) 13:33:06
最近Javaの
Domain Driven Designってどのフレームワークが流行りなの?

901 :デフォルトの名無しさん:2009/12/29(火) 15:02:45
.................

どのフレームワークが流行りなの!?

902 :デフォルトの名無しさん:2009/12/29(火) 15:27:09
俺はドメインモデル懐疑論者だからシラネ

903 :デフォルトの名無しさん:2009/12/29(火) 15:29:03
ドメインモデル VS トランザクションスクリプト
http://pc11.2ch.net/test/read.cgi/php/1241341332/
こっちへどうぞ。

904 :デフォルトの名無しさん:2009/12/29(火) 16:30:21
【言語比較】2chではCとC++>>JAVAって人が多い。しかし本当にそうか?ちなみに2chはperlが使われてる
http://tsushima.2ch.net/test/read.cgi/news/1262071701/

ニュース速報に立った

905 :デフォルトの名無しさん:2009/12/29(火) 17:09:45
ん?昔はread.cだったと思ったが?

906 :デフォルトの名無しさん:2009/12/29(火) 17:38:16
CとC++を別にしてデータとったらどうなんだろうな

907 :デフォルトの名無しさん:2009/12/29(火) 21:11:30
>>746

908 :デフォルトの名無しさん:2009/12/30(水) 00:11:17
【言語比較】2chではCとC++>>JAVAって人が多い。しかし本当にそうか?ちなみに2chはperlが使われてる
http://tsushima.2ch.net/test/read.cgi/news/1262071701/

ニュース速報板です

909 :デフォルトの名無しさん:2009/12/30(水) 01:00:00
アイちゃんは大丈夫か!?

【生物】ニホンザル謎の死、京大霊長研で相次ぎ15頭
http://gimpo.2ch.net/test/read.cgi/scienceplus/1262001115/

910 :デフォルトの名無しさん:2009/12/30(水) 01:36:23
      ┌─┐   ┌─┐
      │●│   │●│
      └─┤   └─┤
     ∧∧ ∩   ∧∧ ∩ Java!
    ( =゚-゚)彡  ( =゚-゚)彡  Java!
 ┌─┬⊂彡┌─┬⊂彡
 |●|    |●|
 └─┘    └─┘

911 :デフォルトの名無しさん:2009/12/30(水) 13:26:22
整数値を読み込んで5で割れるか判定するコードなんですが
いろいろグダグダなんですが
bの代入のところでエラーになる理由がわからないです。
後半のifが変なのは無視してください。

// 整数値を読み込み5で割り切れるか判定する。正以外の数値にはコメントをだす。

import java.util.Scanner;

class En35 {

public static void main(String[] args) {

Scanner stdin = new Scanner(System.in);

System.out.print("正の整数値:");
int a = stdin.nextInt();

        int b = a % 5;

if (b == 0)
System.out.println("その値は5で割り切れます");

else if(b != 0)
System.out.println("その値は5で割り切れません");

else
System.out.println("正でない値が入力されました");

}
}
  

912 :デフォルトの名無しさん:2009/12/30(水) 13:32:18
>>911
事故解決しました。
>>1にある全角スペース〜 でした。

913 :デフォルトの名無しさん:2009/12/30(水) 16:22:03
結局、JDK7ではクロージャーが導入されるみたいですが
クロージャーとラムダ式って何が違うんですかね?

914 :デフォルトの名無しさん:2009/12/30(水) 18:01:55
>>913
俺も理解が乏しいんで一応書いてみたが、間違ってたら訂正してください

クロージャもラムダも関数を変数の値にできることを前提とした機能だけど

クロージャーは関数内で定義、生成するもので、定義、生成された関数内のローカル変数を参照できるって機能が強調されるイメージ
この参照できるっていうのは関数から抜けた後にもローカル変数のメモリが開放されないまま残り、実行時に参照できるってこと

ラムダ式は関数を値のように扱えて、例えば
関数の引数に関数を渡す
関数の引数を決めたものを変数の値にする
関数を合成したものを変数の値にする(関数a.bを合成すると実行時b(a())と実行したことになる)
みたいな機能があることが強調される

915 :デフォルトの名無しさん:2009/12/30(水) 18:08:50
きもい

916 :デフォルトの名無しさん:2009/12/30(水) 18:17:22
わからないからですね^^;
わかります^^;

917 :デフォルトの名無しさん:2009/12/30(水) 18:22:51
違いは知っていましたが、面白そうだから質問してみました。
それでは皆様、また逢いましょう

918 :デフォルトの名無しさん:2009/12/30(水) 20:21:11
もう来なくていいよ^^

919 :デフォルトの名無しさん:2009/12/30(水) 20:22:14
>>910

>>909

920 :デフォルトの名無しさん:2009/12/30(水) 22:38:51
クロージャはエンクロージングな関数で
ラムダは変数置換と関数定義をそれぞれ一つのみ持つ関数。ただし自分を含む関数を定義できない。

つまり両方あればY(F) = F(Y(F))が表現できる。
が、不完全性定理があるのでequals(lamda, lamda)は表せない。

921 :デフォルトの名無しさん:2009/12/30(水) 22:40:21
CでできることはJAVAでもできるのですか。
友人が言うには、「劣化Cだからやんないほうがいい。ジャバでできる特徴的なことは風呂釜掃除くらい」
というのですが。

ポインタが参照になってる
メモリの開放と確保は言語レベルでよろしゅうやってくれる
Cに比べて実行速度が遅い

というのは
ググッて分かりました


しかしメモリいじりをしなければならないので、最低でもCのようにメモリをいじる必要があります

922 :デフォルトの名無しさん:2009/12/30(水) 22:47:20
すなおにdotnet(C#)やれ

923 :デフォルトの名無しさん:2009/12/30(水) 22:59:58
>>921
> しかしメモリいじりをしなければならないので、最低でもCのようにメモリをいじる必要があります
それなら C をやるしかない。

924 :デフォルトの名無しさん:2009/12/30(水) 23:01:55
前半部分が大昔にあった改変コピペだぞ

925 :デフォルトの名無しさん:2009/12/30(水) 23:04:22
アセンブラコードを別に用意してJavaから呼び出すことできなかったっけ?

926 :デフォルトの名無しさん:2009/12/30(水) 23:07:28
Javaは情報工学やってた人へのプレゼントだな
こんなに手っ取り早く完璧な実装のライブラリを呼び出せる言語はない

927 :デフォルトの名無しさん:2009/12/30(水) 23:17:07
>>925
JNIですね。C言語とJava に精通していないと使いこなすのは難しいです。
Microsoft の JavaVM はその点は簡単ですけどね。

928 :デフォルトの名無しさん:2009/12/30(水) 23:18:33
>>927
JNA使えばいいじゃんPosix遵守だから
大抵動くぞ


929 :デフォルトの名無しさん:2009/12/30(水) 23:19:18
JNAもJNIもよくわからんが一緒だろ

930 :デフォルトの名無しさん:2009/12/30(水) 23:43:09
JNAはJNI使ってるっていうだけで一緒じゃないよ。
JNAだととてつもなく簡単にネイティブライブラリにアクセスできる。
型の変換もある程度してくれるし、結構事足りるよ

931 :デフォルトの名無しさん:2009/12/30(水) 23:45:53
安全なスレッディング
メモリ操作

これが好きな奴が使う

932 :デフォルトの名無しさん:2009/12/30(水) 23:50:08
ほとんどは、OSのAPI呼びたいとき使うんじゃないの?

933 :デフォルトの名無しさん:2009/12/31(木) 00:36:04
え?

934 :デフォルトの名無しさん:2009/12/31(木) 10:53:29
システムコール?

935 :デフォルトの名無しさん:2009/12/31(木) 12:49:17
Java本体から呼んでないやつはJavaのスレッド管理外、メモリ管理外なので
自分でケアしないと痛い目を見る

ので、そういうことが好きな奴でないと扱えないと

936 :デフォルトの名無しさん:2009/12/31(木) 13:00:31
禁忌事項も多いもんなぁ。
http://www.ibm.com/developerworks/jp/java/library/j-jni/index.html

937 :デフォルトの名無しさん:2009/12/31(木) 13:08:54
>>935
そうでもないんじゃね??

938 :デフォルトの名無しさん:2009/12/31(木) 13:20:11
>>935
そうでもないそうですよ

939 :デフォルトの名無しさん:2009/12/31(木) 13:32:56
>>937-938
嘘つきはよくないなぁ

940 :デフォルトの名無しさん:2009/12/31(木) 13:34:12
俺は全然ケアなんて考えずに使ってるぜ
裏でどうなってるか知らんが

941 :デフォルトの名無しさん:2009/12/31(木) 14:00:35
jni,jnaを使うならjavaじゃなくてdotnet(VB)にしろ。
そもそもそのアプリは、PCしか考えてないんだろうからdotnetで十分。

942 :デフォルトの名無しさん:2009/12/31(木) 14:29:34
なんで、javaはC++を敵視してるんだろ?
しかも、速度的な面で

943 :デフォルトの名無しさん:2009/12/31(木) 14:36:02
それはお前の脳内設定。

944 :デフォルトの名無しさん:2009/12/31(木) 15:11:26
linux使ってると分かるけど、monoがある程度実用的になってきたからdotnetでもある程度はいける。
MSとノベルはそれで提携したし。
ただPCだけじゃなくて携帯(グーグル)もいれるならjavaやっとくのをお奨めするが。

945 :デフォルトの名無しさん:2009/12/31(木) 15:44:16
MSのOS依存の形態じゃやっぱ使い物になりませんよね

946 :デフォルトの名無しさん:2009/12/31(木) 16:03:35
GoogleはGoogle依存の形態で全てやろうとしているからなあ。
オープンで囲い込みですが何か?って感じ。

947 :デフォルトの名無しさん:2009/12/31(木) 17:29:34
>>946
gglは共産主義者だし
今EUとアメリカでほぼ黒確定の
独禁法違反になるから無視しておけ

948 :デフォルトの名無しさん:2009/12/31(木) 17:58:30
Google 依存が強いところは、気をつけておいたほうがいいだろうな。

949 :デフォルトの名無しさん:2009/12/31(木) 18:23:34
ニュースサイトにロボット埋め込んで、街は許可なく勝手に撮影、本は勝手にスキャン、コードは盗み放題。
それもただの商業利用でしょ。
国民から徴収してアンテナ立てたりコンテンツ作ってるのに、それを2次販売して商業的な利益を上げてるNTTやNHKみたいなもんじゃないの?

950 :デフォルトの名無しさん:2009/12/31(木) 18:27:42
googleは検索以外だとgmail(hotmail)ぐらいしか思い浮かばないし依存になることもないと思うんだが、googleは依存になりそうなサービスを提供してたか?

951 :デフォルトの名無しさん:2009/12/31(木) 18:32:18
アンドロイドは思ったほどでもないですしね

952 :デフォルトの名無しさん:2009/12/31(木) 18:39:18
グーグルの、サンタクロース追跡に便乗した商売にはかなり引いた。
日本、中国(アジア)としてはそういう宗教的(伝説的)なところは理解できない。

953 :デフォルトの名無しさん:2009/12/31(木) 20:37:46
enumってなんでfinalないの?設計ミスじゃね?

954 :デフォルトの名無しさん:2009/12/31(木) 20:45:13
ミスかもね

955 :デフォルトの名無しさん:2009/12/31(木) 20:45:53
>>953
enum のどの部分の事言ってるのかわからんが暗黙で final 扱いになってね?

956 :デフォルトの名無しさん:2009/12/31(木) 20:57:04
ほんとだ・・・extendsって書いたときのコンパイルエラーが変だから継承できるかと思ってたすまぬ

957 :デフォルトの名無しさん:2009/12/31(木) 21:25:41
謝ったから許してやる

958 :デフォルトの名無しさん:2009/12/31(木) 21:27:10
ああもう年末だ・・・
いいから金くれ

959 :デフォルトの名無しさん:2009/12/31(木) 23:26:41
enum enum 人間って enum

960 :デフォルトの名無しさん:2010/01/01(金) 00:10:53
おっイーナムってよんでんのかー

961 :デフォルトの名無しさん:2010/01/01(金) 00:12:20
なぜJDKドキュメントにはEnum#values()が載っていないのだ?

962 :デフォルトの名無しさん:2010/01/01(金) 00:26:01
おっ新年だ
お年玉くれ
てかおみくじどうやるんだっけ?

963 :デフォルトの名無しさん:2010/01/01(金) 00:28:16
>>961
ソース読んでご覧。valuesってメソッドないから。
自動生成されるんかねぇ

964 : 【898円】 【大吉】 :2010/01/01(金) 00:34:32
ナムナム
金くれ

965 :デフォルトの名無しさん:2010/01/02(土) 19:05:37
高校の宿題で、サーバー役とクライアント役に分けて、プログラム作って、簡易チャットを作っているのですが、分からない点があります。

client1 とclient2が接続されてるとして、server側でclient1が発言したのを、client2側の画面に反映する方法がわからない。(client2の出力ストリームに流し込む方法が・・・分かりません)

よろしけれあ、ご教授願えないでしょうか?


966 :デフォルトの名無しさん:2010/01/02(土) 19:13:18
何処の高校?

967 :デフォルトの名無しさん:2010/01/02(土) 19:47:03
サーバプッシュでぐぐりなさい
最悪client2からのポーリングでもできるが

968 :デフォルトの名無しさん:2010/01/02(土) 20:20:52
>>966
勘弁してくださいorz

>>967
軽く調べてみましたが、どちらも難しそうですね。。。
しかし、ポーリングのほうがそれでも簡単な気がするので、掘り進めてみます。

969 :デフォルトの名無しさん:2010/01/02(土) 20:38:45
PHPの、PEAR::Net_UserAgent_Mobileに相当するライブラリなどはありますでしょうか?
まぁ、「大体振り分けられればOK」ならそれほど難しくもなくできるとは解っているのですが、もしメジャーなライブラリなどがあるのならそちらを使った方がいいかと思いまして・・・。
何かご存知の方がいらっしゃれば、情報をいただければ幸いです。よろしくお願いします。

970 :965:2010/01/03(日) 10:24:24
なにやら、宿題関係の質問はスレ違だったことに気付いたので、java宿題スレに移動します。申し訳ありません。

971 :デフォルトの名無しさん:2010/01/03(日) 15:27:15
hello,worldの次に何作れば良いですか?
ステップアップ式にお題出してるサイトとか無い?

972 :デフォルトの名無しさん:2010/01/03(日) 15:37:45
1.とりあえず一冊買う
2.とほほのjava
3.javaの道

973 :デフォルトの名無しさん:2010/01/03(日) 16:03:02
画像について質問です。
巨大なBufferedImageに図形などを描画してそれをImageIOでファイルに書き出したいんですが
画像サイズがデスクトップサイズを超え始めたぐらいからOutOfMemoryが出て生成に失敗してしまいます。
大きい画像を使いたい場合何か方法はありますか?
jdkは1.6です。

//そういえばImageIOでjpgを保存すると色にセピアみたいになる変換掛かりますよね?どうすれば治るんでしょうか・・・

974 :デフォルトの名無しさん:2010/01/03(日) 16:14:43
>>973
VM引数に -Xmx512m とかつけて最大ヒープサイズを大きく取るとか。

975 :デフォルトの名無しさん:2010/01/03(日) 16:36:56
デスクトップサイズって巨大かなぁ?
1920x1200x3[byte]として6,912,000[byte]。7MB弱だし。
どっかメモリリークしてないか?

976 :デフォルトの名無しさん:2010/01/03(日) 17:01:27
public static void main(String[] args) throws Exception {
BufferedImage im = new BufferedImage(1920*2,1200*2,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = im.createGraphics();
for (int x=0; x<im.getWidth(); x+=10) {
for (int y=0; y<im.getHeight(); y+=10) {
Color c = new Color((int)(Math.random()*256)
,(int)(Math.random()*256)
,(int)(Math.random()*256));
g.setColor(c);
g.drawLine(0, 0, x, y);
}
}
g.dispose();
OutputStream out = new FileOutputStream("test.jpg");
ImageOutputStream ios =
ImageIO.createImageOutputStream(out);
ImageWriter iw = (ImageWriter)ImageIO
.getImageWritersByFormatName("jpeg").next();
iw.setOutput(ios);
iw.write(im);
out.close();
}

これとか問題出る?

977 :デフォルトの名無しさん:2010/01/03(日) 17:20:08
>>976
大丈夫でした!
どうやら、画像以外にもいろいろやってるからそれらがメモリを圧迫しているようです。
ちなみに出力部分のところはImageIO.write(im,"jpeg","test.jpeg");と何か違うんでしょうか?

978 :デフォルトの名無しさん:2010/01/03(日) 20:17:28
>>977
ImageIO.java見ると分かるけど、実はほぼ同じ。
ImageIO.getImageWritersByFormatName("jpeg") がサービスプロバイダの
イテレータなので複数の実装があったときに使い分けられる程度。

979 : ◆QZaw55cn4c :2010/01/03(日) 21:42:10
java.text.SimpleDateFormat の質問です。
http://codepad.org/n24uZLFz
のようなエラーが発生するのですが、何が悪いのでしょうか?

980 :デフォルトの名無しさん:2010/01/03(日) 21:52:15
そのエラーメッセージが理解できないという事は、
Javaの言語仕様をきちんと読んでいないだろ。

981 : ◆QZaw55cn4c :2010/01/03(日) 21:56:33
>>980
なにぶん初学者で、テキストの範囲をちょっと逸脱するとこうなってしまいます。
もうちょっと我慢して教科書を読んでいきます。

982 :デフォルトの名無しさん:2010/01/03(日) 22:12:21
「スローするにはキャッチまたは、スロー宣言をしなければなりません。」
と丁寧に教えてくれてるもんな。頑張ってこの意味を理解しようね。




俺は面倒がってExceptionでスロー宣言しまくりだけどなー。(小言は聞こえない)

983 :デフォルトの名無しさん:2010/01/03(日) 22:20:58
>俺は面倒がってExceptionでスロー宣言しまくりだけどなー。(小言は聞こえない)

catch して捨てるよりはまし。

>>979
みたいな、サンプルプログラムでは、 throw Exception しちゃうのが
結局、一番合理的な解じゃないかな。
catch しても printStackTrac()ぐらいしかできることないっしょ。
コードが読みにくくなるだけで、実用上のメリットがさしてない、

ただ、初心者が、「どこでも throw Exception すればいい」 と思い込んだらちょっとまずいってだけで、


984 :デフォルトの名無しさん:2010/01/03(日) 22:30:44
一番正しいのは契約プログラミング的な考え方で、前提条件は全て事前チェック
しておいて、それに引っかからないモノはそれこそ例外として扱うことじゃないかと
思ってるんだがどうかな?

985 :デフォルトの名無しさん:2010/01/03(日) 22:35:06
最初は、throw Exceptionされているメソッドを呼び出すときは、呼び出し元もthrow Exception定義しましょうでもかまわないと思う
だんだん勉強して、例外についての理解も進めば、throwかcatchかどっちがいいか分かるようになるでしょ

ところでそろそろ次スレたてるね

986 :デフォルトの名無しさん:2010/01/03(日) 22:38:55

★★Java質問・相談スレッド135★★
http://pc12.2ch.net/test/read.cgi/tech/1262525781/

987 :デフォルトの名無しさん:2010/01/03(日) 22:47:54
でも例外に関するエラーメッセージは解りづらい気がする
例外って常用的な日本語だから、慣れないうちはスペルミスでもあるのかと思ってしまう。
さらにExceptionがソースをいくら検索してもみつからないって混乱したり

988 :デフォルトの名無しさん:2010/01/03(日) 23:03:13
JAVAをはじめてまだ1週間程の初心者なんですが、
http://kitten.ace.nitech.ac.jp/ichilab/mech/software/gate/
ここで公開されているアプリと似たものを作りたいと思っています。
それでこのアプリのソースコードが見てみたいんですが、
ソースコードが公開されていないアプリのソースコードを見る方法ってありますか?

馬鹿な質問かもしれませんが教えていただきたいです。
よろしくお願いします。

989 :デフォルトの名無しさん:2010/01/03(日) 23:19:06
>>988
>>91
これで一応見ることができる

990 :デフォルトの名無しさん:2010/01/03(日) 23:36:33
>>989
ありがとうございます!
やってみます。

991 :デフォルトの名無しさん:2010/01/04(月) 10:31:42
C/C++での「配列のある要素のポインタを関数に渡す」みたいな処理はどうやるのでしょうか?

void func(int n, int a[]);

int main(void){
  int a[] = {1,2,3,4,5};
  func(3, a+2); //これの「a+2」
}


992 :デフォルトの名無しさん:2010/01/04(月) 11:48:18
>>991
配列と添え字を渡す。
static void func (int n, int[] a, int index) { }
static void main(String[] args) {
 int[] array = { 1, 2, 3, 4, 5 };
 func(3, a, 2);
}

もしくは位置情報持ってるオブジェクトを渡す。
static void func (int n, IntBuffer b) { }
static void main(String[] args) {
 int[] array = { 1, 2, 3, 4, 5 };
 func(3, IntBuffer.wrap(array, 2, 3));
}

993 :デフォルトの名無しさん:2010/01/04(月) 11:52:33
ポインタ概念を排除するという意図のもと、出来ないように設計されている。
プリミティブ型には参照も無いし。
近いやりかたとしては配列自身とインデックスを渡す。
例、ByteArrayOutputStream#write(byte[] b, int off, int len)

994 :デフォルトの名無しさん:2010/01/04(月) 12:12:03
呼び出し元の処理における添え字( >>991 では 2 )が
マジックナンバーになっちゃうからな。
C で書く場合も、I/O をアクセスするとか、バイナリデータを操作するとか、
特殊な理由が無い限り >>991 のようなことはしないでしょ。

995 :991:2010/01/04(月) 12:26:12
調べても見当たらなかったので、もしかしたらと思ってましたが
やはり別途添え字を渡さないとだめなんですね。
ありがとうございました。

240 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)