【初心者】Java質問・相談スレッド75【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/11/13(日) 14:48:57質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals を使え。
・内部クラスから外部クラスのローカル変数は使えない。他の方法を考えろ。
前スレッド
【初心者】Java質問・相談スレッド74【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1130315416/
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。
JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/
次スレは>>980あたりでお願いしまする。
0002デフォルトの名無しさん
2005/11/13(日) 15:08:25「2ゲットズサー三三三三三⊂⌒⊃゚Д゚)⊃」
0003デフォルトの名無しさん
2005/11/13(日) 15:21:050004デフォルトの名無しさん
2005/11/13(日) 15:32:230005前スレ998
2005/11/13(日) 15:33:09Javaを独学で学ぼうとしているものです。
独学でマスターするには
■ともかくプログラミングする環境を整える。Javaならば、開発のためのソフトなどを用意しインストールして使える状態にする。
■後は、ひたすらプログラムを書く!
ということなので
初心者におすすめのソフトがあればお教えください。
0006デフォルトの名無しさん
2005/11/13(日) 15:34:43前スレ1000で回答もらってたじゃない
マルチは嫌われますよ
0007デフォルトの名無しさん
2005/11/13(日) 15:35:24これくらい低レベルな質問なら、おれでもわかる。
char c = s.charAt(n);
0008デフォルトの名無しさん
2005/11/13(日) 15:37:49ありがとう
0009デフォルトの名無しさん
2005/11/13(日) 16:01:330010デフォルトの名無しさん
2005/11/13(日) 16:04:29int i = c - '0';
String s = "10";
int j = Integer.parseInt(s);
0011デフォルトの名無しさん
2005/11/13(日) 16:26:26ありがとうございました
じゃあ逆に
数字を文字に変換することってできますか?
0012デフォルトの名無しさん
2005/11/13(日) 16:35:56APIくらいみやがれ
各種型から文字列にしたいのなら
String.valueOf( 123 )
逆に各種型からIntegerにしたいのなら
Integer.valueOf( "123" )
FloatやDouble、Longなどもこの規則で統一された
0013デフォルトの名無しさん
2005/11/13(日) 16:41:00ありがとうございました
001413
2005/11/13(日) 16:44:02n文字の文字列から先頭のn-1もじを抜き取りたいんですが
簡単にできる方法ってないですか?
自分は
1からn-1番目の文字列をひとつずつcharAtで抜き取るぐらいしか
思いつかないんですがこれだとすこしコードが汚くなって
いやなんですが・・・
0015デフォルトの名無しさん
2005/11/13(日) 16:45:58> たびたびすいませんが
> n文字の文字列から先頭のn-1もじを抜き取りたいんですが
> 簡単にできる方法ってないですか?
あります。以上。回答もらったらWiki更新しようね。
0016デフォルトの名無しさん
2005/11/13(日) 16:53:140017デフォルトの名無しさん
2005/11/13(日) 16:59:42型 Thread からの static メソッド sleep(long) には静的にアクセスしてください。
↑このエラーメッセージってどういうこと?
静的にアクセスってどうすればいいの?
0018デフォルトの名無しさん
2005/11/13(日) 17:06:510019デフォルトの名無しさん
2005/11/13(日) 17:07:360020デフォルトの名無しさん
2005/11/13(日) 17:08:20ゆっくりと静かにEnterを押下
0021デフォルトの名無しさん
2005/11/13(日) 17:18:39ご意見くださったとおりいろいろ試しましたが
まだ良い方法が見つからないです。
onejarも調べて見ましたが、私にはいまいちわかりませんでした…
やりたいことは、a.jarとb.jarをまとめてc.xxx にして
a.jarとb.jarにクラスパスを通すということです。
jarは実行形式でなく、単なるライブラリであって、アプリから参照されます。
何かご存知の方よろしくです。
0022578
2005/11/13(日) 18:31:52http://page.freett.com/kb100000/3.txt
これってどんなことをかけばいいんでしょうか?
調べたことをテキトーにかけばいいんですかね?
だいたいどのようなことをかけばよいか教えていただけませんか?
0023デフォルトの名無しさん
2005/11/13(日) 18:33:08ティンティン変数って何ですか?
0024デフォルトの名無しさん
2005/11/13(日) 18:38:02宿題は宿題スレで。
★★ Java の宿題ここで答えます Part 53 ★★
http://pc8.2ch.net/test/read.cgi/tech/1123639475/
0025デフォルトの名無しさん
2005/11/13(日) 18:56:59コンパイルしようとすると
「シンボルを解釈できません」と出てきます。
パスもクラスパスも1文字にいたるまで確かめたのですが間違っていません。
何より、一ヶ月前にはコンパイルできたものができなくなっているのですが、なにが原因なのでしょうか。
今日、別のマシンでコンパイルしてみたらできたのですが。
0026デフォルトの名無しさん
2005/11/13(日) 19:03:52>>1 参照
>>17
Thread.sleep();
>>21
「いまいち」などと曖昧な書き方ではなく何がわからないか具体的に書きなさい
>>23
Java関連の用語ではない
>>25
その情報からでは一ヶ月前から現在にいたるまでに変わった何かが原因としか言えない
0027デフォルトの名無しさん
2005/11/13(日) 20:02:48import java.awt.event.*;
import javax.swing.*;
public class HelloApp extends JFrame implements ActionListener {
public static void main(String[] args) {
new HelloApp("HelloApp").show();
}
public HelloApp(String title) {
と続くプログラムなのですが、6行目の
new HelloApp("HelloApp").show();
は具体的にどんなことをしているのですか?
0028デフォルトの名無しさん
2005/11/13(日) 20:27:00まず言語の基本から勉強したほうがよくないか?
具体的に答えたところでこの質問の答えからは得られるものはないだろうし
0029デフォルトの名無しさん
2005/11/13(日) 20:35:09いや、基本は少しやったんで、とりあえずここだけ聞きたいんです
よろしくお願いします
0030デフォルトの名無しさん
2005/11/13(日) 20:44:25下記の二行と同じ
HelloApp x = new HelloApp("HelloApp");
x.show();
0031デフォルトの名無しさん
2005/11/13(日) 20:49:58基本ができてないからそんなこともわかんないんだと思うよ
0032デフォルトの名無しさん
2005/11/13(日) 20:56:42ありがとうございます。
0033デフォルトの名無しさん
2005/11/13(日) 21:00:24show()じゃなくてsetVisible(true)でないと警告でるかもね
0034デフォルトの名無しさん
2005/11/13(日) 21:35:32注: HelloApp.java は推奨されない API を使用またはオーバーライドしています。
注: 詳細については、-Xlint:deprecation オプションを指定して再コンパイルしてくだ
さい。
という警告が消えました。ありがとうございます。
0035デフォルトの名無しさん
2005/11/13(日) 21:53:59改行できる記述ってありませんか?
JOptionPaneのshowMessageDialog()メソッドを
使っているのですが、メッセージが長くて、結果として
横長のダイアログが表示されてしまいます。
0036デフォルトの名無しさん
2005/11/13(日) 21:56:260037デフォルトの名無しさん
2005/11/13(日) 22:10:30不正な文字とエラーが出るのですが、以下の場合どうするのでしょう?
JOptionPane.showMessageDialog(null,
"改行を" + \n + "試みています"
);
0038デフォルトの名無しさん
2005/11/13(日) 22:15:10"改行を\n試みています"
0039デフォルトの名無しさん
2005/11/13(日) 22:15:49Javaの基本構文勉強したほうがいいよ
0040デフォルトの名無しさん
2005/11/13(日) 22:25:07すいません。ありがとうございました。
>>39
そうですね。基本がなってないですね。
文法書の最初から読み返す事にします。
0041デフォルトの名無しさん
2005/11/13(日) 22:56:07どの辺参照すればいいですか!
0042デフォルトの名無しさん
2005/11/13(日) 22:58:15画像全般扱うJava2D
画像のロードセーブのImageIO
0043デフォルトの名無しさん
2005/11/13(日) 23:57:11そこからどう使えばいいかわかんない・・・。
int[] date = {12,13,14,15,16,11,10};
この先どうやって使うんですか?
0044デフォルトの名無しさん
2005/11/14(月) 01:02:120045デフォルトの名無しさん
2005/11/14(月) 02:15:49例えば、平均を求めたいときとか、合計を求めたいときの使い方は
どうすればよいのでしょう?
0046デフォルトの名無しさん
2005/11/14(月) 02:37:03どなたか教えてください
0047デフォルトの名無しさん
2005/11/14(月) 02:44:46int[] date = {12,13,14,15,16,11,10};
int sum = 0;
for(int i = 0; i<date.length; i++ ){
sum += date[i];
}
System.out.println("合計:" + sum);
System.out.println("平均:" + ((float)sum / date.length));
つーか宿題スレにいったら?
0048デフォルトの名無しさん
2005/11/14(月) 02:47:27java.util.Arrays.sort(date);
0049デフォルトの名無しさん
2005/11/14(月) 03:11:470050デフォルトの名無しさん
2005/11/14(月) 08:41:35System#printf()
とか使う
0051デフォルトの名無しさん
2005/11/14(月) 08:42:06だっけか
0052デフォルトの名無しさん
2005/11/14(月) 09:50:21具体的にはMapとList(を実装したクラスのインスタンス)だけでいいのですが、RubyのObject#__id__ のように、オブジェクト固有のIDみたいなのが取得したいです。
0053デフォルトの名無しさん
2005/11/14(月) 09:53:54java.lang.System#identityHashCode(Object)
int じゃ足りなくなったらどーすんだろ? とか思ったが、まーいーや。
0054デフォルトの名無しさん
2005/11/14(月) 10:09:060055デフォルトの名無しさん
2005/11/14(月) 10:23:06例外が発生します。
fonts/fallbackにフォントへのリンクを作成してから
例外が発生するようになりました。
fonts/fallbackのリンクを消すと日本語は表示できませんが、
例外は発生しません。
環境は
SUSE Linux9.3
JDK1.5.0_04
です。
解決方法わかる方、よろしくおねがいします。
0056デフォルトの名無しさん
2005/11/14(月) 11:35:140057デフォルトの名無しさん
2005/11/14(月) 12:01:31>>1
0058デフォルトの名無しさん
2005/11/14(月) 12:24:13System.err.println("usage: java " + argv[0] + "filename");
ってやりたいよな。いちいちクラス名に合わせて書き換え?
0059デフォルトの名無しさん
2005/11/14(月) 12:33:02> System.err.println("usage: java " + argv[0] + "filename");
> ってやりたいよな。
java -jar されてる場合とか java -cp されてる場合とか考えたら、それじゃ拙いだろ。
0060デフォルトの名無しさん
2005/11/14(月) 13:33:08イベント処理で、テキストフィールドを持つクラスAと、テキストフィールドに入力された変数に合わせてグラフィックスで描画を行うクラスBとの間の変数のやり取りの仕方がわかりません。
0061デフォルトの名無しさん
2005/11/14(月) 13:36:54commit、closeについてですが、
closeすると、commitも自動で行われるのでしょうか?
それとも、別々にやらないとダメなのでしょうか?
0062デフォルトの名無しさん
2005/11/14(月) 13:47:54DBってもんはオートコミットになってなければ勝手にコミットすることはないと思うのだが
0063デフォルトの名無しさん
2005/11/14(月) 13:51:28どっかでオートコミットが設定されてる文があるのかも・・
しらべてみま〜す
ありがとうございます(・∀・)ノ
0064デフォルトの名無しさん
2005/11/14(月) 13:56:14トランザクション開始する前にはかならずオートコミットをOFFにしよう
0065デフォルトの名無しさん
2005/11/14(月) 14:06:10あれまっ!そうなんですか?!
マジでよ〜く調べたほうがよさそうだ〜〜(´д`)
0066デフォルトの名無しさん
2005/11/14(月) 14:16:15String型で数字をequalsメソッドで比較した場合、
速度的には符号(==など)が早いのでしょうか?
それとも変わらないのでしょうか?
微々たる差ではありますが気になったもので。
0067デフォルトの名無しさん
2005/11/14(月) 14:25:54すげー、こんなのあったんだ。多謝多謝。
0068デフォルトの名無しさん
2005/11/14(月) 14:27:13== のほうが断然速い。
ただし、プログラム全体からみれば微々たる差なのはそのとおり。
0069デフォルトの名無しさん
2005/11/14(月) 14:28:33まあ調べた方がよいのは確かだが、実装レベルでいえば
>>64の言うとおり「トランザクション開始する前にはかならずオートコミットをOFFにしよう」
を守っておけば問題ない、というかむしろそうすべき。
ドライバ側で仕様変更が起こるかもしれないとか、RDBを問わず動作させねばならんとかあるわけで。
0070デフォルトの名無しさん
2005/11/14(月) 14:36:27レス、ありがとうございます。
やっぱり微々たるものですか・・・
byte[]でデータ入力があり、その値によって処理分岐をさせる場合、
一度int型に変換して符号で比較するぐらいなら、
String型のまま比較してもかわらなそうですね・・・。
0071デフォルトの名無しさん
2005/11/14(月) 14:36:34ほかのクラスの変数を直接参照することはできない。
一方が他方の参照を保持しておくか、または描写するメソッドの引数として渡す。
class TextField {
private String text;
public TextField(String text) { this.text = text; }
public String getText() { return text; }
}
class Renderer {
// 方法1. TextFieldオブジェクトの参照を保持しておき、それを描写する
private TextField textfield;
public Renderer(TextField textfield) { this.textfield = textfield; }
public void render() {
String text = textfield.getText();
}
// 方法2. TextFieldオブジェクトを引数として渡す
public void render(TextField textfield) {
String text = textfield.getText();
}
}
0072デフォルトの名無しさん
2005/11/14(月) 14:43:04String str = "foobar";
String pre = str.substring(0, 3); // 先頭から3文字とりだす
String post = str.substring(4); // 4文字目以降を取り出す
String last = str.substring(str.length() - 1); // 最後の一文字だけを文字列として取り出す
0073デフォルトの名無しさん
2005/11/14(月) 14:50:16ありがとうございます〜
やっとわかってキタ━━━━(゚∀゚)━━━━ッ!!っす!
0074デフォルトの名無しさん
2005/11/14(月) 16:51:17void run(){
DatagramSocket sock = new DatagramSocket(port);
while(true){
sock.receive(datagram);
処理…
}
}
この処理中に新しいパケットが届いた時、ループが返ってきた時にそのパケットはちゃんと処理されるのでしょうか?教えて下さい、よろしくお願いします。
0075デフォルトの名無しさん
2005/11/14(月) 18:03:00このように同じ内容のthreadを2個立ち上げ、その中で同じ内容のタスクaaaを
newでコールしたとき
thread1:new aaa
thread2:new aaa
呼び出したタスクaaaはthreadのようにそれぞれマルチに動いているのでしょうか?
それとも処理が終わるまで待っているのでしょうか?
0076デフォルトの名無しさん
2005/11/14(月) 18:10:52タスクaaa の実装によるとしか言いようが無い。
あと、「threadを立ち上げ」とか「タスクaaa をnewでコール」とか
抽象的な表現は止めてコンパイル可能なプログラムで示せ。
0077デフォルトの名無しさん
2005/11/14(月) 18:23:47すいませんでした
threadの開始はこんな感じです(中身は長いので省略しました)
Runnable r = new Runnable() {
public void run() {
boolean connFlag = connectableFlag;
int res = ResultCode.SUCCEEDED;
:省略
if (cms != null) {
cms.clientConnected(clientProp);
}
};
new Thread(r).start();
そのthreadのなかでnewでコールしている部分です
MessageSender ms = null;
ms = new MessageSend(getInetAddress(), PortNum, dataSocket);
0078デフォルトの名無しさん
2005/11/14(月) 18:46:16UDPだと受け取れないパケットは取りこぼすんじゃないですかね
0079デフォルトの名無しさん
2005/11/14(月) 18:48:39左と上を削るにはどうすればよいでしょうか。
0080デフォルトの名無しさん
2005/11/14(月) 19:29:190081デフォルトの名無しさん
2005/11/14(月) 19:42:02このデータを使って最大値、最小値、合計、平均を求めるのがわかんない。
一つ一つはなんとかわかるんだけど、
全部一気にやるといっつもエラーがでる…。
なんででしょう?
0082デフォルトの名無しさん
2005/11/14(月) 19:54:53ソケットの受信バッファが十分空いてりゃ大丈夫じゃない?
0083デフォルトの名無しさん
2005/11/14(月) 20:02:18エスパー募集スンナ
0085デフォルトの名無しさん
2005/11/14(月) 21:40:37getTimeでDate型の時間を受け取り、Timestamp型に変更して登録したいのですが、
クラスキャストエクセプションが出てしまいます。どうしたらよいのでしょう?
クラス名 **** = new クラス名(); ←get,setを持っているクラス
String sql = "INSERT INTO RESERVATION VALUES(?) ";
pstmt.setTimestamp(1, (Timestamp)****.getTime());
0086デフォルトの名無しさん
2005/11/14(月) 22:11:23そのDateってjava.util.Dateだろ?
java.sql.Timestampとまったくべつのクラス渡してればエラーが出るのは当たり前
java.sql.Timestampのインスタンス作ればいいだけ
どこを迷うことがあるのさ
コンストラクタも1つしかないし
0087デフォルトの名無しさん
2005/11/14(月) 22:43:090088デフォルトの名無しさん
2005/11/14(月) 23:14:100089デフォルトの名無しさん
2005/11/14(月) 23:16:370090デフォルトの名無しさん
2005/11/14(月) 23:19:17http://pc8.2ch.net/test/read.cgi/tech/1131976988/
0091デフォルトの名無しさん
2005/11/14(月) 23:19:27Windows だと上手く動くのに、Linux だと張り付かない。
このあたりはVMの実装依存なんですか?
0092デフォルトの名無しさん
2005/11/14(月) 23:38:34int限定
int[] data = {0, -20, 100, 5, 0};
int min = data[0], max = data[0];
for (int d : data) {
if (d > max) max = d;
if (d < min) min = d;
}
for (int i = max; i >= min; i--) for (int d : data) if (d == i) System.out.println(d);
009392
2005/11/14(月) 23:40:59int[] data = {0, -20, 100, 5, 0};
int min = data[0], max = data[0];
for (int d : data) if (d > max) max = d;
for (int d : data) if (d < min) min = d;
for (int i = max; i >= min; i--) for (int d : data) if (d == i) System.out.println(d);
009492
2005/11/14(月) 23:49:040095デフォルトの名無しさん
2005/11/14(月) 23:58:03237 :デフォルトの名無しさん :2005/11/14(月) 23:38:29
さあ話をそらしにかかりました
0096デフォルトの名無しさん
2005/11/15(火) 00:04:08それだとminとmaxの差が大きいと時間が掛からんか?
// 生成
java.util.Random random = new java.util.Random();
int[] data = new int[100];
for(int i=0; i<data.length; i++) data[i] = random.nextInt();
// ソート&表示
int[] cdata = data.clone();
Arrays.sort(cdata);
for (int i = cdata.length - 1; i >= 0; i--) System.out.println(cdata[i]);
0097デフォルトの名無しさん
2005/11/15(火) 00:18:13他のスレに貼り付けると□□□□■□□□□■□□□
□■■隠された文字が■浮き出るよ□□■■■□□□□
http://pc8.2ch.net/test/read.cgi/tech/1131282679/l50
□□□■■□■■□□□□□■■□□■■□■□□
237 :デフォルトの名無しさん :2005/11/14(月) 23:38:29
さあ話をそらしにかかりました□□□□■□□□■■□
□■■□□■□□□□■■□□■□□□□□■■□
0098デフォルトの名無しさん
2005/11/15(火) 00:34:59ttp://pc8.2ch.net/test/read.cgi/tech/1131884991/l50
0099デフォルトの名無しさん
2005/11/15(火) 00:53:42なんとかなりませんか?
それとも、そういう仕様でしょうか?
0100デフォルトの名無しさん
2005/11/15(火) 02:12:54JSP→Servlet→JSP(セッションの値表示)→
Servlet(セッションの値がとれない)
いままでシュミレータを使っていてうまく動作していたのですが、
携帯で実際に操作してみると、sessionの値がnullで Server エラーになって
しまいました。。
0101デフォルトの名無しさん
2005/11/15(火) 06:17:49サーバー側に渡してないからでは?
携帯だとCookieは使えないものが多いらしいから
JSPの中で自分で渡さないとダメだよ
■ このスレッドは過去ログ倉庫に格納されています