トップページ⇒tech
1001コメント325KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2010/11/19(金) 03:05:30
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    http://pc11.2ch.net/hp/ [板をp2で開く]
Webプログラミング http://pc11.2ch.net/php/ [板をp2で開く]
をご利用下さい。

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

前スレッド
★★Java質問・相談スレッド141★★
(p)http://hibari.2ch.net/test/read.cgi/tech/1286354820/

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

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
(p)http://www.wikiroom.com/java/
0002デフォルトの名無しさん2010/11/19(金) 03:07:37
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 9
(p)http://pc12.2ch.net/test/read.cgi/tech/1261232019/
■ SWT は --
Java 高速GUI SWT 3
(p)http://pc12.2ch.net/test/read.cgi/tech/1164877399/

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) ?Part21
(p)http://pc12.2ch.net/test/read.cgi/tech/1276164970/
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 9
(p)ttp://pc12.2ch.net/test/read.cgi/tech/1249357352/
■ Androidアプリの作成は --
【Google】Androidアプリ作成part6
(p)http://pc12.2ch.net/test/read.cgi/tech/1286555951/

■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 69 ★★
(p)http://pc12.2ch.net/test/read.cgi/tech/1267796762/
0003デフォルトの名無しさん2010/11/19(金) 03:08:30
■ NetBeansに関する雑談は --
NetBeans Part6
(p)http://pc12.2ch.net/test/read.cgi/tech/1273665879/
■ Eclipseに関する雑談は --
Eclipse統合M29【Java/C++/Ruby/Python/Perl】
※dat落ちしてるのでとりあえずここでどうぞ
統合開発環境Eclipseプラグイン開発QA
(p)http://pc12.2ch.net/test/read.cgi/tech/1081517094/


**** 開発環境が必要の場合は ****
■ J2SE 5.0 (1.5.0)
(p)ttp://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
(p)ttp://java.sun.com/javase/ja/6/

**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
(p)ttp://www.java.com/ja
0004デフォルトの名無しさん2010/11/19(金) 09:36:51
いままで実効環境のみで
Java(TM)6update22ってのがインスコされてるんですけど
JavaやるにはJDKをいれないといけないみたいなんです
jdkいれた場合ってもともとのjava(TM)は消したほうがいいんですか?
0005デフォルトの名無しさん2010/11/19(金) 12:21:58
>>4
消さなくてもいいよ
おれなんかふるーいのも合わせて8つ入ってるよ
0006デフォルトの名無しさん2010/11/19(金) 17:15:41
下記のように書いていますが、ココ1の、list.set(i, inArray7);を、書いても書かなくても、ココ2で、ココ3のwkセットが反映されています。
list.set(i, inArray7);を書いてないのに、どうして反映されるんでしょうか?たぶん私が、何か大きな間違いをしていると思うのですけど。
String inStr;
list = new ArrayList<String[]>();
Reader in = new BufferedReader(new FileReader("c:\\wk01.txt"));
while ((inStr = in.readLine()) != null) {
String[] inArray = inStr.split("\\s+");
String[] outArray = new String[15];
for (int i = 0; i < inArray.length; i++) {
ループでinArrayからoutArrayへ編集してセット
}
list.add(outArray);
}
setInfo1(list);
for (String[] chk : list){
for (int i = 0; i < chk.length; i++){
System.out.print("[" + chk[i] + "]" + " "); // ココ2
}
System.out.println("");
}}
private void setInfo1(List<String[]> list) {
String[] inArray7 = null;
int wk = 0;
inArray7 = list.get(0);
...
for (int i = 0; i < list.size(); i++) {
inArray7 = list.get(i);
if (inArray7[8].equals("m")) {
inArray7[11] = Integer.toString(wk); //ココ3
//list.set(i, inArray7); // ココ1
}}}}
0007デフォルトの名無しさん2010/11/19(金) 17:30:53
setInfo1 を呼び出した時点で新たな配列がつくられるわけではないし、
lisr#get しても新たな配列は作られない。

String[] array = new String[1];
set(array);
System.out.println(array[0]); //くそ と表示される

public void set(String[] a) {
 a[0] = "くそ"; //指定された配列につっこむ

 //a は呼び出し元の array とまったく同じ存在を指す。
 //同じ存在、というのは、同じ値を持つ、という意味ではない。
 //メソッドの中と外で、同じものに対する呼び名が変わっているだけに過ぎない。
 //この時点における a[0] = "くそ" は、
//呼び出し元で array[0] = "くそ" としたのとおなじこと。

 a = new String[1];
 //上記以降は、この a は array とはまったく別の存在を指す。
 a[0] = "みそ";
 //これは呼び出し元の array が指しているものとは違うものを指す。
 //なお、この a が指す新たな配列は、このメソッドが終わり次第、
 //プログラム上からは一切アクセス不能になる→そのうちメモリからも消える
}
0008デフォルトの名無しさん2010/11/19(金) 18:10:16
>private void setInfo1(List<String[]> list) {
listは参照渡しのつもりだったのですが、その要素のString[]も
参照渡しになるのですね?
そうして、
>inArray7[11] = Integer.toString(wk); //ココ3
>//list.set(i, inArray7); // ココ1
これはinArray7[11]に新たにオブジェクトをセットしているけど、
listと紐ついているのは、String[]の参照なので、set不要ということですか?
0009デフォルトの名無しさん2010/11/19(金) 19:28:09
そう。

「配列もインスタンスなので、new しない限りはけっして新たに作られない」
といえばわかるかな。

何らかのメソッドの引数で渡しても return で返しても、
ArrayList に突っ込んでから渡したとしても、作られないったら作られない。
0010デフォルトの名無しさん2010/11/19(金) 19:39:35
>>7 >>9 6と8です。よくわかりました。どうもありがとうございました。
0011デフォルトの名無しさん2010/11/19(金) 22:36:19
byte配列に入っているテキストを
byte配列の検索文字と比較しながら検索したいのですがどのような仕方があるでしょうか
0012デフォルトの名無しさん2010/11/19(金) 23:01:02
>>5
jdkとjreも入れないといけないんですね
これいれて元のも消さなくていいんでしょうか?
0013デフォルトの名無しさん2010/11/19(金) 23:57:23
と思ったら最新の奴はjdkとjre別々になってるんですね
0014デフォルトの名無しさん2010/11/20(土) 01:15:58
jdkのパッケージにはjreも付属する。
実行環境だけでいいときにはjreのパッケージを入れる。
jdkに付属するjreには2種類あって、
一つは公開jreでこれを入れることはjreのパッケージをインストールするのと同じ。
もう一つはjdk自身が使う実行環境でjdkをインストールしたところに入ってる。
公開jreはインストールするかしないかを選択できるがもう一つの方はjdkを入れれば必ず入ってる。
特に理由が無ければ公開jreもインストールしておいた方がよい。
jdkのインストーラもデフォルトで公開jreを入れるようになっている。
jre update22はたぶん最新のものなので上書きインストールでも問題ないと思われ
0015デフォルトの名無しさん2010/11/20(土) 17:21:44
>>11
そんなapiはない。
ダイソーに行って画用紙を買ってアルゴリズムをカンガエルとその答えが見える
100行もいらないよ
0016デフォルトの名無しさん2010/11/20(土) 17:31:47
>>11
1, どっちも完全に String になおして indexOf
2. 非検索側が大量でなおす時間を節約したいなら ByteArrayInputStream や BufferedReader
3. ちょっとずつ String にして比較

3. はさすがにばかばかしい ソース示せるとは思うけどめんどくせぇ
0017デフォルトの名無しさん2010/11/20(土) 17:44:45
やってみたけどバイトで検索するほうがはやっかったよ
string で直すより
0018デフォルトの名無しさん2010/11/20(土) 20:01:44
javaのstringって結合すると遅くなるのがダメだよな
st::stringみたいに遅くならなければいいのに
0019デフォルトの名無しさん2010/11/20(土) 20:05:05
そうだね
0020デフォルトの名無しさん2010/11/20(土) 23:42:09
if (strlen(s)==0) return;
0021デフォルトの名無しさん2010/11/21(日) 10:20:54
JFrame
→JDesktopPane
⇒�@JInternalFrame add(Canvas3D) ←最大化して最奥に表示
⇒�AJInternalFrame add(Swingコンポーネント) ←透過させたい

のような感じで�AのJInternalFrameを透過させて、その奥にある
�@のJava3Dで描画した物体を透けて表示させようとしてます

奥にあるJInternalFrameがSwingコンポーネントで構成された
JInternalFrameであれば正常に透過されるのですが、Java3Dで
描画していた場合なぜか透過されません

�AのJInternalFrameは↓の方法で透過させてます

JInternalFrame jif = new JInternalFrame();
JPanel pnl = new JPanel();
pnl.setOpaque(false);
jif.setContentPane(pnl);
jif.setOpaque(false);

どうにか正常に透過できないでしょうか?
0022デフォルトの名無しさん2010/11/21(日) 15:48:37
きないのでしょうかね
0023デフォルトの名無しさん2010/11/21(日) 20:12:52
きないでしょうね
素直にオフスクリーンにしたら?
0024デフォルトの名無しさん2010/11/21(日) 21:43:56
com.sun.awt.AWTUtilities#setComponentMixingCutoutShape()というのがあってだな
0025デフォルトの名無しさん2010/11/21(日) 23:36:44
AWTとSwing混ぜるな危険ってやつだな・・・いつのまにか実装されてたのか
0026 [―{}@{}@{}-] デフォルトの名無しさん2010/11/22(月) 13:06:16
windowsのjavacコマンドにより生成された.classファイルをlinuxやmacで実行することは出来ますか?
0027デフォルトの名無しさん2010/11/22(月) 13:07:28
26 : [―{}@{}@{}-] デフォルトの名無しさん

になるのって2chのなんかのバグだったよ?
なんだったけ?
0028デフォルトの名無しさん2010/11/22(月) 14:44:17
焼き鳥食べたくなってきた
0029デフォルトの名無しさん2010/11/22(月) 15:01:52
>>27
よーし、パパ全力で釣られちゃうぞー!
0030デフォルトの名無しさん2010/11/23(火) 02:54:18
boolean型の変数をint型の値に変換したいのですが(trueを1に/falseを0に)、何か都合の良いメソッドなどありますか?
ほんの数行のメソッド定義すればいいことですがあればそっちを使おうと思っています。
0031デフォルトの名無しさん2010/11/23(火) 03:05:03
x?1:0
じゃだめなの?
0032デフォルトの名無しさん2010/11/23(火) 03:20:18
>>31
ダメではありませんがもっとスマートに書く方法があるのではないかと思って・・・

今回、コード中でboolean→int変換が2箇所で必要となります
同じコードを書きたくないので『int func(boolean b){return b ? 1 : 0;}』とメソッド化して
使おうと思ったのですが、他にメソッドがあればそっちを使ったほうがスマートだと
思い聞きました
どうやら簡単すぎて無いみたいですね
0033デフォルトの名無しさん2010/11/23(火) 13:27:28
>>32
無いみたいですね
0034デフォルトの名無しさん2010/11/23(火) 13:49:21
false、trueに対して0、非0の値を返すというのなら
非0値が具体的に何になるかは実装次第で
0035デフォルトの名無しさん2010/11/23(火) 14:05:21
>>32
スマートかどうかは主観的なので何とも言えないが、
用意されているメソッドで何とかしろということなら、
Boolean.valueOf(b).hashCode()ならbがtrueで1231、falseで1237。
Boolean.TRUE.compareTo(b)ならbがtrueで0、falseで非零(正数)。
Boolean.FALSE.compareTo(b)ならbがtrueで非零(負数)、falseで0。
0036デフォルトの名無しさん2010/11/23(火) 14:52:39
質問です。

int numberValue;
・
・
・
public void setStat(int number)
setValue(number);

このようなソースコードがあるんですが、最後の行のsetValue(number)の部分を
→「numberValue=number」にすると実行結果が違ってくるのですが、

setValue(number)とnumberValue=number

この違いがわかりません。どうかお願いします
0037デフォルトの名無しさん2010/11/23(火) 15:32:54
>>36
>この違いがわかりません。
私にはまったく違うものにしか見えませんが・・・
違う内容に書き換えたら違う結果になるほうが自然でしょう。

そもそも、setValue と numberValue は何の関係があるの?
関係があると思ったその根拠はなに?

public void setValue(number) {
 System.out.println(number);
}
かもしれないし、
public void setValue(number) {
 System.exit(0);
}
かもしれない。

関係があるとしても
public void setValue(number) {
 numberValue = number * 2;
}
でも実行結果は変わる。
0038デフォルトの名無しさん2010/11/23(火) 17:55:13
すいません。
自己解決しました。
0039デフォルトの名無しさん2010/11/23(火) 18:33:43
tomcat 7 です。

ディレクトリ参照したくて conf の web.xml で
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value> //●
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
にしましたが、
参照できません。かなり以前は既存で参照するヴァージョンでつかってましたが、
久しぶりにさわりましたが、うまくいきません。
0040デフォルトの名無しさん2010/11/23(火) 20:54:24
すぐに
答えくるかとおもってたらこないなぁ・・・
0041デフォルトの名無しさん2010/11/23(火) 21:40:57
で、どんなコードを書いてるんだい?
debugの方は取れてるの?

・・・というような39を見れば誰でも思うようなことが、書かれていないからレスがないのでは。
0042デフォルトの名無しさん2010/11/24(水) 01:00:16
俺は tomcat あんまり知らんけどね。

うまくいってないことを自分がどのように確認したのかも書かないと。
ここにはド初心者もたくさん来るからね。
さわったことあるようだけど、それだけじゃどうもね。
ちゃんとした経験者は、
設定一個うまくいかないぐらいで、こんなとこにその程度の情報だけ持って聞きに来ないから。

web.xmlの全体はこうで、ファイル構成はこうで、起動手順はこうで、とか。

わざと XML 間違えたりすれば、
再起動してない、読み込まれてない、といった原因を否定できるだろう。
あるいは別の項目において設定が上手く反映されるなら、
listings まわりの動作だけに問題が絞られる。
その辺の確認はやったの?
あと welcome-file が存在するとそっちが優先されるようだけど、その確認はしてるの?
0043デフォルトの名無しさん2010/11/24(水) 01:38:30
ん?コード関係あるのか?
Tomcat 自体の設定と挙動というプログラミングに全く関係ない話(板違い)に見えるんだが
0044デフォルトの名無しさん2010/11/24(水) 02:29:21
画像Aが画像Bの中に含まれていたら画像B上にある画像Aの左上の(x,y)座標を返すようなメソッドで、

// imageAはファイルから読み込み済みBufferedImage型
PixelGrabber pgA = new PixelGrabber(imageA, 0, 0, -1, -1, true);
pgA.grabPixels();
int bufA[] = (int[])pgA.getPixels();

//imageBはimageAよりも大きい画像を想定。BufferedImage型 ここではデスクトップのスクショ
PixelGrabber pgB = new PixelGrabber(imageB, 0, 0, -1, -1, true);
pgB.grabPixels();
int bufB[] = (int[])pgB.getPixels();

のようにしたあと、bufAがbufBの中に含まれているかどうかの比較を行いたいんですが、
bufB[0]にはimageBの(0,0)のピクセルデータが、
bufB[x + y * imageB.getWidth()]にはimageBの(x,y)のピクセルデータが格納されているという解釈で合ってますでしょうか?
0045デフォルトの名無しさん2010/11/24(水) 04:02:57
すいません。
自己解決しました。
0046デフォルトの名無しさん2010/11/24(水) 17:45:19
Strutsの1じゃなくて2の方で、本とか勉強サイトとかブログとか参考になるのない?
0047デフォルトの名無しさん2010/11/24(水) 18:53:17
jdbcのステートメント使用してstmt.executeQuery(sql)を実行しています。
1万件取得できずにoutofmemoryになります。

Listに溜め込んでいるフレームワークを使用しいるならわかるのですが、jdbcの中で落ちてます。
jdbcのResultSet作成で溜め込んでいる模様・・・なぜ?
ResultSetって内部でカーソルを持っていて、nextしたときにバッファが空ならネットワーク越しに取りにいくと思っていたのですが違うのでしょうか?

Caused by: java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2882)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
at java.lang.StringBuilder.append(StringBuilder.java:119)
at sun.jkernel.DownloadManager.getBootClassPathEntryForClass(DownloadManager.java:928)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:293)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1270)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1309)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:192)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254)
0048デフォルトの名無しさん2010/11/24(水) 20:02:51
>>47
>ResultSet作成で溜め込んでいる模様
どこ見てそれを思ったの?

JDBC の中じゃない。ClassLoaderの中で落ちてるじゃん。
デバッガ使って ClassLoader.java:320 で何が起きてるか見れないかい。
(ソースが無くても変数の値は分かるからね。でも、標準APIのソースくらいは入手しておくこと)
データがあふれてるようにはみえないな。
データがパンパンに膨れ上がった段階で、ClassLoader がとどめさしたのかもしれないけど、
起動時のヒープサイズ設定を変えても起こるようなら JDBC関係ないと思う。

ドライバ内のクラスをロードする作業?
あるいは例えばDB側の列定義からJava側の型に変換する作業?
そういうところで失敗してるように見える。
0049デフォルトの名無しさん2010/11/24(水) 20:45:37
>>48
メモリエラーの場合は落ちている場所とか関係ないです。
実行毎に落ちるところが違うから。

明らかにprocessResultsの問題でしょ。
一目瞭然。
0050デフォルトの名無しさん2010/11/24(水) 21:03:09
すいません。
自己解決しました。
0051デフォルトの名無しさん2010/11/24(水) 21:54:26
>落ちている場所とか関係ないです
じゃぁprocessResultsも関係ないじゃん
0052デフォルトの名無しさん2010/11/24(水) 22:16:19
>>47
>ResultSet作成で溜め込んでいる模様
どこ見てそれを思ったの?

JDBC の中じゃない。ClassLoaderの中で落ちてるじゃん。
デバッガ使って ClassLoader.java:320 で何が起きてるか見れないかい。
(ソースが無くても変数の値は分かるからね。でも、標準APIのソースくらいは入手しておくこと)
データがあふれてるようにはみえないな。
データがパンパンに膨れ上がった段階で、ClassLoader がとどめさしたのかもしれないけど、
起動時のヒープサイズ設定を変えても起こるようなら JDBC関係ないと思う。

ドライバ内のクラスをロードする作業?
あるいは例えばDB側の列定義からJava側の型に変換する作業?
そういうところで失敗してるように見える。

0053デフォルトの名無しさん2010/11/24(水) 22:40:01
XMLを読み込んでJavaオブジェクトにマッピングしたいのですが、どう作っていったらいいのかわかりません。

<A>
  <B />
  <B />
  <B />

  <C>
    <D>
      <E>XXX< /E>
      <E>XXX< /E>
      <E>XXX< /E>
    < /D>
    <D>
      <E>
        YYY
      < /E>
      <E>YYY< /E>
      <E>YYY< /E>
    < /D>
のようになっているXMLのうち、Dタグを1オブジェクトとしてマッピングしたいと思っています。

DocumentクラスからNodeを取得して、ノードをたどる形で実装しようと思ったのですが、ホワイトテキストノードの関係でゴチャゴチャになってしまいます。
テキストノードをスルーしようとすると、<E>タグの改行がうまく処理できないのですが、なにか手はありますでしょうか?
0054デフォルトの名無しさん2010/11/24(水) 22:52:24
あります。あなたのソースのまずいところを直せばいいのです。
0055532010/11/25(木) 00:12:06
いけると思って突き進んだ結果行き詰ったのでそもそも間違っている気がするのですが…
以下ソース抜粋です。

Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(XMLファイル);
Node A = doc.getFirstChild(); //Aノード取得
while(A != null || A.getNodeType() == Node.TEXT_NODE){
  A = A.getgetNextSibling();
}
if(A == null || "A".equals(A.getNodeName())){
  // エラー処理
}
Node B = A.getFirstChild(); //Bノード取得
while(B != null || B.getNodeType() == Node.TEXT_NODE){
  B = B.getgetNextSibling();
}
if(B == null || "B".equals(B.getNodeName())){
  // エラー処理
}
//Cノードを探索
while(B != null || B.getNodeType() == Node.TEXT_NODE && "C".equals(B.getNodeName())){
  B = B.getgetNextSibling();
}
Node C = B
Node D = C.getFirstChild(); //Dノード取得
while(D != null || D.getNodeType() == Node.TEXT_NODE){
  D = D.getgetNextSibling();
}
if(D == null || "D".equals(D.getNodeName())){
  // エラー処理
}
---以下続く---
0056532010/11/25(木) 00:16:07
---続き---
XMLElement item = new XMLElement()
Node E = D.getFirstChild(); //Eノード取得
while(E != null || E.getNodeType() == Node.TEXT_NODE){
  E = E.getgetNextSibling();
}
if(D == null || "D".equals(D.getNodeName())){
  // エラー処理
}
item.e1 = E..getFirstChild();

以下同様にe2,e3を取得してマッピングするつもりで作成していましたが、YYYの一番上の部分がうまく取れないなぁと思って悩んでいます。
何か根本的に間違っている気がします。
0057デフォルトの名無しさん2010/11/25(木) 00:17:41
↓みたいにファイルを新規作成したいんですけど、実行はできるのにファイルができません。
ファイルの読み取りもできませんでした。何が原因なのでしょうか??
ちなみにエクリプスでやってます
package shoshinsha;
import java.io.*;
class WriteText {
public static void main(String[] args){
try{
FileWriter out=new FileWriter("math.txt");
int a=10,b=5;
out.write("kaho:");
out.write(a + " + " + b + "=" +(a+b));
out.close();
}catch(Exception e){
System.out.println(e);
}
}
}
0058デフォルトの名無しさん2010/11/25(木) 05:09:47
>>53
XMLからやりなおせ。それと1JAXBつかえ。

>>57
ファイルが作成できないときはコンストラクタかflushがIOException投げるから握りつぶしてるんじゃないの?
0059572010/11/25(木) 08:08:58
>>58
ありがとうございます。
えと、初心者であんまりよくわからないのですが、コンストラクタがIOException投げる
ってことはファイルの入出力でなんらかのエラーがあるってことでいいんですか?

一応
catch(IOException ie){
System.out.println("no File");
っていう文を足しても何もならず、
out.close();
の前にprintlnで文字を表示してみたらそれはできました。
もしかしてエクリプスの設定とかに問題あったりしますか?
0060デフォルトの名無しさん2010/11/25(木) 08:47:15
>>59
フルパスで指定しろ
0061デフォルトの名無しさん2010/11/25(木) 10:26:25
>>52
ここで質問した俺が馬鹿だった。
クエリの結果でメモリエラーだけでよくここまで脱線するは・・・
結果セットで貯めすぎて落ちる以外に何があるってんだい?
問題解決能力0

メモリの使い方、メモリで落ちる意味を良く考えるべき。
クラスローダーってあんた、結果のBeanをnewするためのところで限界が発生ってことでしょ。

いやー久しぶりに笑った
0062デフォルトの名無しさん2010/11/25(木) 10:26:29
windowsのタスクバー上のアイコンを右クリックしたときにメニューが出なくするのってどうやるんですか?
0063572010/11/25(木) 11:00:50
>>59
何度もすいません、それはどうすればいいんですか?
0064デフォルトの名無しさん2010/11/25(木) 11:17:31
>>61
ここにはもう来ないでいいよ
0065デフォルトの名無しさん2010/11/25(木) 11:46:17
>>57
やってみたら math.txt 出来たよ
探すディレクトリ間違ってるんじゃね?
0066デフォルトの名無しさん2010/11/25(木) 11:49:32
>>61
それなら「マイクロソフト・ウインドーズ」しかないですよね?!
0067デフォルトの名無しさん2010/11/25(木) 12:34:49
>>57
Eclipse のパッケージエクスプローラで、
プロジェクトを右クリックして「更新」してみてください
0068572010/11/25(木) 15:53:50
>>65>>67
でました!F5したらシステムライブラリーとかいうとこに出来てました!
ありがとうございます!やったー!
0069デフォルトの名無しさん2010/11/25(木) 20:20:18
>>39

はiisみたく
http://localhost:8080/javabook/

と入力すると
javabookの下のファイル参照できないかということです。
そうすれば、そのファイル名をクリックして、動作確認できるからです。
0070572010/11/25(木) 21:57:38
ついでに、やっほい!
0071デフォルトの名無しさん2010/11/25(木) 23:04:00
drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
これ dx2 とかが幅じゃなくて第二の座標となってるけど
実際幅16のものを dx1+15 でなく dx1+16 としないとちゃんと表示されなかった
例えばdx1を0、dx2を0とすると1ドットは描かれるはずなのに
dx2を1にしないとそうならなかった
どうしてだろう?
0072デフォルトの名無しさん2010/11/25(木) 23:22:30
>>71
>例えばdx1を0、dx2を0とすると1ドットは描かれるはずなのに

なぜそう思うの?

> dx2 とかが幅じゃなくて第二の座標となってる

自分で答え書いてるじゃん
0073デフォルトの名無しさん2010/11/25(木) 23:31:11
幅 なら dx2が16で16ドット
座標なら(0-15)で16ドット分
じゃないの?
0074デフォルトの名無しさん2010/11/25(木) 23:48:35
質問スレの性質こんなんかなあ
誰か分かる人いらっしゃいませんかぁ
0075デフォルトの名無しさん2010/11/26(金) 00:01:58
>>74
>>71
その x,y はドット数ではなく、2次元平面上の座標だから。
ドット数だと考えるのはPCの液晶画面などをイメージしてるからこそなんだろうけど、
Java の API等においては、あくまで座標としては平面上の点を指定し、
デバイスがドットに置き換える。
(ちなみに、プリンタに draw する場合は座標幅なんかよりももっと緻密に描かれる)

つまり x方向0ドット目,y方向0ドット目の、ドットを表す四角形の、
左端上端が平面座標上の (0,0)、右端下端が平面座標上の (1,1) に相当する。
平面座標上の(16,16) に相当するのは dx+16ドット目の左端上端。
dx+15ドット目の左端では幅が足らん。

方眼紙の線のところに平面座標、線と線のちょうど真中にドット座標を書いて数えてごらん。
0076デフォルトの名無しさん2010/11/26(金) 00:02:16
あなたに答える人はいません
0077デフォルトの名無しさん2010/11/26(金) 00:08:12
>>75
詳しくありがとうございます
0078デフォルトの名無しさん2010/11/27(土) 02:49:08
液晶とプリンタで見た目変わるってのもあり得るのか。
真円描いたのに楕円に成ってたりとか。
0079デフォルトの名無しさん2010/11/27(土) 09:20:37
既存のライブラリから、必要最小限な部分だけを抜粋したいんだけど、
実行時に、使用されたクラスやメソッドのみを抽出する方法はないですか?
0080デフォルトの名無しさん2010/11/27(土) 14:30:47
-verbose:class とか
0081デフォルトの名無しさん2010/11/27(土) 18:57:23
独習Javaサーバサイド編ってどうですか?
Servlet関連でいい本ありませんか?
0082デフォルトの名無しさん2010/11/28(日) 00:47:12
勉強でJava+MySQLのDBアプリを作成しているのですが、
実際の業務でJava+MySQLの組み合わせで開発することは
あるのでしょうか?
Java+OracleやPHP+MySQLは多いと思っていますが。
0083デフォルトの名無しさん2010/11/28(日) 00:48:34
多いと思っていますね
0084デフォルトの名無しさん2010/11/28(日) 03:18:30
mysqlで運用しちゃう様な所は金がないからねえ。
vb.net+mdbとかvb.net+sqlserverで済ませちゃうかも。
0085デフォルトの名無しさん2010/11/28(日) 11:54:55
JavaってTomcatのひと通りのこと学んだ後はなに勉強すりゃいいの?
0086デフォルトの名無しさん2010/11/28(日) 13:40:40
Java(TM)6update 変な消し方したらインストールエラーが出てインストール
出来ない
0087デフォルトの名無しさん2010/11/29(月) 12:35:39
JPAのPersistence.creatEntityManager(name)で詰まった
WEB-INF/classes/META-INF/persistence.xmlがどうしても見つからない

なにか直接指定するような方法ない?
0088デフォルトの名無しさん2010/11/29(月) 16:14:22
「クリックした座標のRGB値を読み込む」
というプログラムを作成しています

なにか良い方法はありますでしょうか?
0089デフォルトの名無しさん2010/11/29(月) 17:11:34
new Runnable() { public void run() { foo; } }
インスタンス生成式にくっついているブロックは何ですか?
初期化でしょか?
だするとこれはランタイムでメソッドをオーバーライドということなのでしょうか?
0090デフォルトの名無しさん2010/11/29(月) 17:14:11
せめてコンパイルエラーにならないサンプルコード持って来い
0091デフォルトの名無しさん2010/11/29(月) 18:10:33
>>88
「クリックした座標」が自分のウィンドウ内かそうでないかによって答えが異なる

>>89
匿名内部クラス
0092デフォルトの名無しさん2010/11/29(月) 21:03:15
>>91

>>88です

自分のウインドウ内のスクリーン座標を取得し
その座標のRGB値を読み込むというものです

例えば、bmp画像を画面に表示させて、その画像をクリックするとRGB値が得られる
というものです

言葉足らずですみません
0093デフォルトの名無しさん2010/11/29(月) 21:12:08
「クリックした座標のRGB値を読み込む」なんて簡単だけど、
全部ここに書けるほど簡単ではない
0094デフォルトの名無しさん2010/11/29(月) 21:30:17
>>92
public class MyComponent extends JComponent implements MouseListener {
public static void main(String[] args) throws IOException {
JFrame frame = new JFrame("test");
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(new MyComponent(), BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
private BufferedImage img;
public MyComponent() throws IOException {
img = ImageIO.read(getClass().getResource("unagi.bmp"));
setPreferredSize(new Dimension(img.getWidth(), img.getHeight()));
addMouseListener(this);
}
public void paint(Graphics g) {
g.drawImage(img, 0, 0, this);
}
public void mousePressed(MouseEvent ev) {
int argb = img.getRGB(ev.getX(), ev.getY());
System.out.println(Integer.toHexString(argb));
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}

うなぎ画像でテスト済み
0095デフォルトの名無しさん2010/11/29(月) 21:54:04
>>94

ありがとうございます。
非常に参考になりました。

ただ、コンパイルをした際に
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(ImageIO.java:1362)
at MyComponent.<init>(MyComponent.java:38)
at MyComponent.main(MyComponent.java:28)

とのエラーが出ました。
読み取りたい画像がないという内容だとは思うのですが
これはどのようなエラーなのでしょうか?

38行目は
img = ImageIO.read(getClass().getResource("test..bmp"));を行っております

ファイルの名前は自分が表示させたい「test.bmp」に変え
test.bmp自体は、MyComponent.javaがあるファイルと同じ所
さらにMyComponent.javaがあるフォルダの1つ上にも置いてあります
0096デフォルトの名無しさん2010/11/29(月) 21:55:51
>>95

ただしくは
img = ImageIO.read(getClass().getResource("test.bmp"));
です

ドットが2つになってました
すみません
0097デフォルトの名無しさん2010/11/29(月) 22:22:42
>>96
class ファイルと同じところに入れて下さい

Eclipse 使ってる場合は java ファイルと同じ場所でいいです
にも関わらずちゃんと動かないときは設定が悪いのかも
0098デフォルトの名無しさん2010/11/29(月) 22:57:27
>>97

ありがとうございます
無事表示できました

r,g,b成分をそれぞれ表示させる方法はありますでしょうか?

r = 255
g = 255
b = 255

などです
0099デフォルトの名無しさん2010/11/29(月) 23:07:54
糞の分際で調子に乗るな
0100デフォルトの名無しさん2010/11/30(火) 00:05:05
>>98
>r,g,b成分をそれぞれ表示させる方法はありますでしょうか?

あるよ
0101デフォルトの名無しさん2010/11/30(火) 01:22:06
適当に国旗ででも試してみりゃ分かるでしょうに
■ このスレッドは過去ログ倉庫に格納されています