トップページ⇒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/
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
適当に国旗ででも試してみりゃ分かるでしょうに
0102デフォルトの名無しさん2010/11/30(火) 09:17:57
C/S型ではなく1:1で通信するテキストチャットを作りたいと考えています
ルータに繋がれている3台のPCでそれぞれ起動しているクライアントA・B・CのうちAにだけメッセージを送りたい場合は
どのような処理手順・通信手順を行う必要があるのでしょうか?
NAT越えというものを実装しなければいけないのですか?
0103デフォルトの名無しさん2010/11/30(火) 12:46:19
ルータに繋がれている3台って、どういう構成?
クライアント間の通信がルータを経由するかしないかが問題なんだが
ルータにケーブル指して3台繋いでますってんなら単なるHub
0104デフォルトの名無しさん2010/11/30(火) 13:27:59
>>102
Aにサーバを立ててメッセージを受け取る
0105デフォルトの名無しさん2010/11/30(火) 14:32:25
マウスの座標取得で
public void mouseMoved()
のような割り込み以外の取得方法ないですか?
割り込みだと負担が大きくなるので。
それかこの割り込みを一時的に無効にする方法ありますか?
0106デフォルトの名無しさん2010/11/30(火) 14:35:11
>>102
A・B・Cがそれぞれサーバを立て同時にクライアントでもある構成
メッセージの中にあて先情報も組み込んで UDP でばらまくのもよし
0107デフォルトの名無しさん2010/11/30(火) 14:42:12
>>105
前者
public void mouseMoved(MouseEvent ev) {
 log.setLastPoint(ev.getPoint());
}

private class Log implements Runnable {
 private Point lastPoint;
 public void setLastPoint(Point p) {
  lastPoint = p;
 }
 public void run() {
  while (true) {
   //1秒間に最大10回しか処理しないったらしない
   //もしくは Timer 使う
   Thread.sleep(100);
  }
}
}

後者
public void mouseMoved(MouseEvent ev) {
 if (disabled) return;
}
0108デフォルトの名無しさん2010/11/30(火) 14:47:36
>>105
リスナーを remove すればもう飛んでこなくなるよ
0109デフォルトの名無しさん2010/11/30(火) 14:55:00
>>107-108
removeですね やってみますありがとう。
0110デフォルトの名無しさん2010/11/30(火) 18:07:49
Servlet本でオススメ教えろ
0111デフォルトの名無しさん2010/11/30(火) 18:09:32
サーブレットだけか、おまけも込みか
0112デフォルトの名無しさん2010/11/30(火) 18:11:15
だけでもJSPやらTomcatが付いててもどっちでもいい
0113デフォルトの名無しさん2010/11/30(火) 18:21:23
もうちょっとしぼれハゲ
0114デフォルトの名無しさん2010/11/30(火) 19:12:27
Tomcatに対応している以下のデータベースのシェアってどうなってますか?

* Apache Derby
* Oracle
* Sybase
* DB2
* SQLServer
* Postgresql
* MySQL
* Axion
* HSQL

0115デフォルトの名無しさん2010/11/30(火) 19:33:58
不明です。
0116デフォルトの名無しさん2010/11/30(火) 23:52:45
>>114
何を持ってシェアとするの?
Android流行ればSQL系じゃね?
0117デフォルトの名無しさん2010/12/02(木) 16:00:06
public class ゲーセン{
public static void main(String[] args){
int i;
for(i=1; i<11; i++){
System.out.println(i+"コイン");
}
if(i % 3 ==0){
System.out.println(i+"コイン"+" "+"クリア!");
}
System.out.println("終了!");
}
}


どこが間違ってますか?
思うような結果にならないのです。。
0118デフォルトの名無しさん2010/12/02(木) 16:00:48
public class game

です。申し訳ない
0119デフォルトの名無しさん2010/12/02(木) 16:01:37
訂正の訂正・・・
public class Game

です
0120デフォルトの名無しさん2010/12/02(木) 16:06:49
専門学校ってJAVAやるとこがほとんどだと思うけど、2年次って具体的に何やってんの?
0121デフォルトの名無しさん2010/12/02(木) 16:17:33
>どこが間違ってますか?
質問の仕方
0122デフォルトの名無しさん2010/12/02(木) 16:26:29
専門ってC#はやんないの?
0123デフォルトの名無しさん2010/12/02(木) 16:32:31
>>117
for文 の { 〜 } の範囲を見直してみるといいかもね
0124デフォルトの名無しさん2010/12/02(木) 16:59:24
>>123
解けました。ありがとうございます
0125デフォルトの名無しさん2010/12/02(木) 17:51:59
>>122
わざわざやんなくても、JavaやってC#できないんだったら
それはJavaもできてないってこと
0126デフォルトの名無しさん2010/12/02(木) 18:26:54
>>125
あっそ
0127デフォルトの名無しさん2010/12/02(木) 20:42:35
具体的にJavaで何を開発しているか教えてくれ
Webアプリですか?
アンドロイドアプリ?
その他?(何々をか書いてくれ)
集計したい
0128デフォルトの名無しさん2010/12/02(木) 21:33:48
javaでブラウザの閲覧履歴を取得するにはどうすればいいですか?
osはlinuxでブラウザはfirefoxを使用してます。
具体的なサンプルソースなどがあればありがたいんですが。。。
0129デフォルトの名無しさん2010/12/02(木) 22:34:37
おまんこ
0130デフォルトの名無しさん2010/12/02(木) 22:35:05
Javaアプレットには履歴を取得するようなAPIはないぜ
0131デフォルトの名無しさん2010/12/03(金) 02:02:09
Java2対応していない入門書を使った場合、どういう部分が問題になりますか?
ttp://yshibata.blog.so-net.ne.jp/2009-08-15-1
をざっと読んだ限りだと、入門レベルなら知らなくても問題ない箇所が拡張されてるような機がするんですが・・・
0132デフォルトの名無しさん2010/12/03(金) 04:59:58
Java5以降を使うとJava1.4にはもう戻る気になれない。
ジェネリクス、Enum、ボクシングなしでコーディングとか、もはやマゾいとかいうレベルを超えてる。

「入門レベル」が「プログラミング自体の初心者」と言う意味ならそれほど意識しなくてもいいかもしれんが。

それとJava2 ってバージョン1.2からだろ。
0133デフォルトの名無しさん2010/12/03(金) 16:24:38
>>132
Java2って、Java1.5以降のことを言うのだと思っていました。
入門レベルというのは、プログラミング未経験者という意味です。
0134デフォルトの名無しさん2010/12/03(金) 16:28:03
だからどうした?
死ねよ糞ゴミ
0135デフォルトの名無しさん2010/12/03(金) 16:35:15
1.5以降って1.5もはいるだろ?
0136デフォルトの名無しさん2010/12/03(金) 17:51:53
java 1.0 と1.1 があって、
java1.2以降をjava2と言うんだけど、
>>131 の本ではjava 1.5 のことを Java2 Standard Edition 5.0 と呼んでいる。
ところが、1.5で大きく文法が変わったため、ここからは普通はJava5と呼ぶ。
で、java5でのさまざまな不具合を取ったのがJava6なので、常識で考えたらJava6を勉強すべき。
ただ、Java5とJava6の違いは入門書レベルだとあまり変わらないので、Java5以降の入門書を遣うべし。
0137デフォルトの名無しさん2010/12/03(金) 19:46:00
JAVAのコードに対応してる多機能メモ帳みたいなエディタを教えてくれ
フリーので頼む
0138デフォルトの名無しさん2010/12/03(金) 20:08:25
俺はTeraPadが大好き
0139デフォルトの名無しさん2010/12/03(金) 21:29:14
サクラエディタでええがな
0140デフォルトの名無しさん2010/12/03(金) 21:35:17
あっそ
0141デフォルトの名無しさん2010/12/04(土) 02:50:38
>>136
わかりました。いろいろ誤解していたようです。
どうもありがとうございました。
0142デフォルトの名無しさん2010/12/04(土) 17:08:34
カレンダーが作りたいんですが
msflexgridみたいなコントロールってあったりしますか?
Javaだと、GridLayoutとかで頑張るのでしょうか
0143デフォルトの名無しさん2010/12/04(土) 17:20:05
WHiNNYオススメ
軽いし、キーマクロ使えるし。
http://www.altech-ads.com/product/10002451.htm
0144デフォルトの名無しさん2010/12/04(土) 17:26:31
>>142
JTableはどうだろうか
0145デフォルトの名無しさん2010/12/04(土) 17:32:16
JTable良さそうですね、調べてみます、ありがとう
0146デフォルトの名無しさん2010/12/04(土) 18:50:44
T arにたいしてar.lengthやar[i][j]みたいに出来ると嬉しいのですが
二次元配列の型制約を与えることって出来ますか?
01471462010/12/04(土) 20:31:51
継承が無意味で配列でもないけど自己解決
class C<U,T extends ArrayList<ArrayList<U> > >
0148デフォルトの名無しさん2010/12/04(土) 21:29:28
今日からjavaを勉強しようと思い、独習を買い、さっそく取り組もうとしたのですが
プログラムをコンパイルしたら「Example1の書き込み中にエラーが発生しました。Example1.class(アクセスが拒否されました。)」
というエラーが出ました。
これはどうしたら解決できるのでしょうか?おねがいします
0149デフォルトの名無しさん2010/12/04(土) 22:50:36
単に書き込み禁止でコンパイル結果を出力できないだけなんじゃないか
CD-ROMの上で実行してるとか
0150デフォルトの名無しさん2010/12/04(土) 23:54:04
実行してるとかですね
0151デフォルトの名無しさん2010/12/05(日) 00:42:21
まあ実行してるとかですね
0152デフォルトの名無しさん2010/12/06(月) 12:52:06
やはり実行してるとかですか
0153デフォルトの名無しさん2010/12/06(月) 14:38:00
お前ら楽しそうだな
0154デフォルトの名無しさん2010/12/06(月) 17:39:43
Sample.java
public class Sample<E> {
E i;
Sample(E i){
this.i=i;
}
@Override
public String toString() {
return i;
}
}
SampleTester.java
public class SampleTester {
public static void main(String[] args) {
int i=5;
Sample t=new Sample(i);
System.out.println(t);
String s="2ch";
Sample t2=new Sample(s);
System.out.println(t2);
}
}
上記のプログラムのようにSampleの方でtoStringをオーバーライドして出力しようとしているのですが
エラーが出ます。どうすればいいのでしょうか
0155デフォルトの名無しさん2010/12/06(月) 17:46:27
E が String かどうかはわからないから、わからない i をそのまま String として返すことはできないので、
return i.toString();
または
return String.valueOf(i);
もしくはダサイけど
return "" + i;
0156デフォルトの名無しさん2010/12/06(月) 18:43:17
javaで以下のライセンスのライブラリを使用しています。
 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1

↓で調べてみました。
http://sourceforge.jp/projects/opensource/wiki/licenses%2FGNU_Library_or_Lesser_General_Public_License

その義務は以下の通りと読み取ったのですが、曖昧な表現が多く合っているかわかりませんでした。
・配布時にライセンスの本文を含める
・ソースコードがLGPL下であればソースコードを含めて配布する
・該当部分(ソースコードまたはバイナリ)がLGPL下にあることを明示する
・著作権表示機能を持つ場合、LGPLのライブラリの著作権表示を含める
・バイナリのリバースエンジニアリングと改変を許可する
・スタティックリンクの場合、再リンクに必要なファイルを添付する


このLGPLライセンスを商用製品で使用する場合、商用製品のソースをオープンにしなければいけないのでしょうか?
マニュアルにLGPLライセンスのライブラリを使用してますと明記するくらいでは駄目なのでしょうか?
0157デフォルトの名無しさん2010/12/06(月) 18:53:07
ライセンスを理解できないならgpl,lgplは使ってはいけない。
どうしても必要なら怠けないで自分で再実装するしかない。
0158デフォルトの名無しさん2010/12/06(月) 18:57:05
>>155
ありがとうございました。
""+iとする方法はおもいついていたのですが、
さすがにスマートじゃなく別な方法ないかなーと思い聞いた次第です。
ありがとうございました
0159デフォルトの名無しさん2010/12/06(月) 19:03:18
いえいえ
0160デフォルトの名無しさん2010/12/06(月) 19:14:04
jdkアップデートしようと思ったら
javacが存在しないコマンドうんたらでコンパイルできなくなった

\(^o^)/
0161デフォルトの名無しさん2010/12/06(月) 19:50:07
URLをgetContentTypeするとtext/html; charset=utf-8のように取れるとおもうのですが、
サイトによってはtext/htmlまでしかとれないのですが、どうすれば全部取れますか?
0162デフォルトの名無しさん2010/12/06(月) 20:10:41
それで全部です
サイト側の好みで charset を付けたり付けなかったりできますので、そのサイト管理者が charset を付けないのが好みだったら、付きません
0163デフォルトの名無しさん2010/12/06(月) 21:00:24
Stackとvectorの違いって何?
0164デフォルトの名無しさん2010/12/06(月) 21:28:29
Stack は push とか pop とかできる
Vector はできない
0165デフォルトの名無しさん2010/12/07(火) 12:57:31
add/removeじゃなくてpush/popと書きたいから継承して別名のメソッドを追加してるだけ
実質的な違いはない
0166デフォルトの名無しさん2010/12/07(火) 15:46:33
Dateクラスではタイムゾーンの情報がないのでカレンダーを使えということらしいのですが
Date/Timeに相当するクラスを自作するならば
それぞれが内部にカレンダーを持つ必要があるわけですよね
なんかメモリが勿体ないように思うんですが他にやりようはありますか
0167デフォルトの名無しさん2010/12/07(火) 15:49:30
何を言っているのかわからん。
暦の変換が必要でないなら、好きに作れるだろ。
0168デフォルトの名無しさん2010/12/07(火) 16:04:55
Jakarta Commons NETを使用して、
FTPサーバからファイルを受信してストリームに
書き出しているんですが、ダウンロードせずに
直接ファイルを開くことはできますか?
0169デフォルトの名無しさん2010/12/07(火) 17:41:25
初歩的な質問なんですがpanelを貼ってマウスの座標を取得しようとしたのですが
タイトルバーや周りの枠の部分だけずれてるようでグラフィックの座標を直接取れませんでした。
上左からどれだけずれているか取得したいのですがどのような関数を使えばいいですか?
0170デフォルトの名無しさん2010/12/07(火) 17:50:02
HashMapとHashSetの違いってなに?
0171デフォルトの名無しさん2010/12/07(火) 17:50:53
MapとSetのちがい。
宣言見ればすぐ気づくだろ。
0172デフォルトの名無しさん2010/12/07(火) 17:56:01
MapとSetってputかaddの違い以外に何かあるの?
ArrayListとLinkedListの違いみたいに内部構造からくる各処理速度の問題?
0173デフォルトの名無しさん2010/12/07(火) 18:00:17
Set
重複要素のないコレクションです。

Map
キーを値にマッピングするオブジェクトです。
0174デフォルトの名無しさん2010/12/07(火) 18:09:19
ひどい勘違いをしてた
■ このスレッドは過去ログ倉庫に格納されています