- 1 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 18:21:51 ]
- プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 pc11.2ch.net/hp/ Webプログラミング pc11.2ch.net/php/ をご利用下さい。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド116【歓迎】 pc11.2ch.net/test/read.cgi/tech/1213347130/ 次スレは>>990あたりで。 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/
- 231 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 20:34:20 ]
- マと何か区別しなきゃいけないのか?
- 232 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 21:23:11 ]
- >>231
愚痴を書き込むスレではないだろ
- 233 名前:186 mailto:sage [2008/08/17(日) 21:28:01 ]
- なんとか解決したっぽいです。
初心者なので、UNICODEとUTF8の違いとかいまいちピンときませんが、 イメージは「UNICODEがIDとしたらUTF8はIDをUTF8という形式で表現したデータ」ということでしょうか? 間違ってましたら指摘してくださいorz で、UTF8での受け渡しを止めてUNICODEでの受け渡しをするようにしました C側↓ JNIEXPORT jlong JNICALL Java_Test(JNIEnv *env, jclass, jobject obj){ jclass cs = env->GetObjectClass(obj); jfieldID fid = env->GetFieldID(cs,"strParam" , "Ljava/lang/String;"); const char* cc = "サブキー"; int unicodeLength = MultiByteToWideChar(CP_ACP, 0, cc, strlen(cc), NULL, 0); WCHAR* unicodeBuffer = new WCHAR[unicodeLength]; MultiByteToWideChar(CP_ACP, 0, messagetmp, strlen(messagetmp), unicodeBuffer, unicodeLength); jstring strj = env->NewString((jchar *)unicodeBuffer,unicodeLength); env->SetObjectField(obj, fidsData, strj); return 0; } java側↓ HogeClass hoge = new HogeClass(); Main.Test(hoge); System.out.println( hoge.strParam ); ちゃんと表示できてるみたいです。 しばらくはまってたのですが、「sizeof」で文字サイズを取得してたのですが、 マルチバイト?では使えなくて「MultiByteToWideChar」を使用しないといけないということですね。今までjava言語しか触ったことないのでしたorz もっと簡単な方法ありましたら是非ご教授くださいm(__)m
- 234 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 21:41:51 ]
- >>233
wchar_t wcstr[] = L"サブキー"; jstring strj = env->NewString((jchar *)wcstr, sizeof(wcstr) / sizeof(wchar_t)); Windows環境っぽいので wchar_t が UTF-16 きめうち。 テストしてないので動かなかったらごめん。 あと new WCHAR[unicodeLength] したのに delete しなくていいんか?
- 235 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:02:02 ]
- >>233
いくら夏とはいえ、ちょっと見にコンパイルを通らないコードを貼るやつって、何がしたいんだろうな・・・
- 236 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:12:35 ]
- 初心者ってのはそういうもんさ
- 237 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:24:06 ]
- おい、おまいらJavaでアップロードされたファイルのヘッダ検査を行なうjarはないですか?
教えてください。お願いします。
- 238 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:27:44 ]
- 調子のんな
- 239 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:33:02 ]
- やっぱC#スレの方がいいわ
- 240 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 23:14:57 ]
- javaのvmって sun と ibm と hp の3種類?
- 241 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 00:00:16 ]
- Swingを使ってGUIを書いています。
所謂非矩形ウィンドウを作りたいと思い、検索してみたところ、 1. Mac限定の方法(背景色を透過色に設定?) 2. ウィンドウの下をキャプチャして疑似透過 の二つがあるらしい、ということを知りましたが、1番は問題外、 また、最前面に表示するような仕様のため、2番では背景と矛盾が 生じない為の頻繁な更新による負荷がやや重めになってしまいます。 もし他に方法がありましたら、参考URL等を教えてください。 #具体的には、Officeに出てくるうるさいイルカみたいな感じで、 #画像を枠無しで表示したいと考えています #SWTだとRegionとやらで実装できるようなのですが...
- 242 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 00:06:32 ]
- jdk7を待った方がいいんじゃないかな?
https://jdk6.dev.java.net/6u10ea.html 確かこれでShapeを使った非矩形ウィンドウが作れたはず・・
- 243 名前:デフォルトの名無しさん [2008/08/18(月) 00:29:07 ]
- 修飾子の読み方を教えて下さい
Gooleしても見つかりません
- 244 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 00:31:38 ]
- そりゃ見つからないわ
- 245 名前:241 mailto:sage [2008/08/18(月) 00:32:08 ]
- おぉ。どうもありがとうございます。
AWTUtilitiesとやらで非矩形や透過ウィンドウが実装出来るようになるのですね。 とりあえずはBeta使って仮実装したり、他の方法も色々工夫したりしてみながら のんびりと正式版のリリースを待つことにします。 素早いご返答、ありがとうございました。
- 246 名前:243 [2008/08/18(月) 00:38:37 ]
- Googleの間違いでした
ほんと修飾子って何て読むんですか?
- 247 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 00:51:09 ]
- おもしろい回答できないわ。
「しゅうしょくし」だよ。
- 248 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 00:51:29 ]
- jdbcのPreparedStatementなんですが、
setLongに高いインデックス(10くらい)を指定すると、 executeUpdateでエラーが発生するようです。 要は、INSERT INTO文のVALUESに指定できる?の数に制限が あるということなのですが、この問題にはどう対処したらよいでしょうか。
- 249 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 00:51:51 ]
- 「しゅうしょくし」
ってか流石にこれはガチで小学生でも分かるから、 そういう意味ではなくvolatileとかstrictfpとかの読み方を聞いてるのか?
- 250 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 01:01:29 ]
- 特殊なデザインのウインドウは、はっきり言って使いづらいからやめて欲しい
- 251 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 01:04:32 ]
- しゅうしょくしがしょくしゅにしか見えないんだが・・・
- 252 名前:243 mailto:sage [2008/08/18(月) 01:10:03 ]
- >>247
>>249 ガチで有難うございます ほんと何て読むか解らなくて… 年は40なんですが、趣味でプログラムでも始めてみようかと思い 創るJavaって本を買いまして、暇暇に読んでます もちろん仕事はプログラムとは あまり関係ありません ただ、知識は無いと 指示が出来ないんですよね…
- 253 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 02:14:27 ]
- >252
ttp://www.okapiproject.com/java/java_ref/index.html
- 254 名前:デフォルトの名無しさん [2008/08/18(月) 09:39:00 ]
- >>252
ではオジサン相手に手取り足取り教えてやろうか。
- 255 名前:デフォルトの名無しさん [2008/08/18(月) 09:41:55 ]
- むしろ中途半端な知識で指示される方が迷惑
- 256 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 09:48:07 ]
- >>252
老婆心ながら 読むだけじゃだめだぞ
- 257 名前:デフォルトの名無しさん [2008/08/18(月) 11:54:15 ]
- Javaなんかネットの勉強サイトで十分しょw
- 258 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 11:56:17 ]
- じゃう゛ぁ♪じゃう゛ぁ♪
じゃう゛ぁじゃう゛ぁジンジンジーン♪
- 259 名前:デフォルトの名無しさん [2008/08/18(月) 12:07:08 ]
- ConcurrentSkipListSetってクラスつかったら
プログラムを実行するたびに 同じ要素が何個も一つにセットに入ったり、一つだけ入ったりしたんだけど。 なぜですか? TreeSetにしても同じような症状でした。 でもCopyOnWriteArraySetにしたら同じ要素は一つしかありませんでした。 どうしてかおしえてください。
- 260 名前:デフォルトの名無しさん [2008/08/18(月) 12:50:32 ]
- 初心者の質問ですいませんが教えてください
javaにはオペレーターは無いはずですが なぜStringクラスだけ+=が使えたりするんでしょうか どなたかおしえてください
- 261 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 12:51:46 ]
- 組み込み
- 262 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 13:42:50 ]
- Instrumentを変更してMIDIを再生したいのですが、現在使用可能なSynthesizerがcom.sun.media.sound.MixerSynthだけで、そのSynthesizerでloadInstrument()してもIllegalArgumentExceptionを投げられてしまいます。
ソースを読んでみると、MixerSynthの親の抽象クラス「AbstractPlayer」にて、型のチェックでHeadspaceInstrumentの子クラスじゃないと読み込めないようにしてあるようなのです。 さらにそのHeadspaceInstrumentというのはデフォルトアクセスで、どうしようもないのです。 どのようにすればInstrumentを追加・変更できるのでしょうか?
- 263 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 14:01:48 ]
- >>259
日本語で
- 264 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 15:17:26 ]
- >>260
> javaにはオペレーターは無いはずですが Javaにはオペレータが結構あります。 Stringクラスだけでなくintでも+=が使えます。 クラス型に対するオペレータでも=や==はStringクラス以外でも使えます。
- 265 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 15:56:23 ]
- javaってcみたいにコアダンプ(メモリダンプ)できないのでしょうか。
cの場合ログから解析が難しい場合はその段階でkill -SEGVでメモリダンプしてデバッガでメモリの情報を調査するという方法があり それをjavaでもやりたいと思っているのですが。 eclipseで接続できないところなので、そこでダンプを取って持ち帰ってeclipseで確認したいと思っていますが、 cのようにいかないですかね???
- 266 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 16:19:55 ]
- java vmのコアダンプを追いかける・・・言ってみただけ
- 267 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 16:45:23 ]
- class Oya{
public void show() throws Exception{ System.out.println("oya"); } } class Ko extends Oya{ public void show(){ System.out.println("ko"); } } public class Cui{ public static void main(String args[]){ Ko a=new Ko(); Oya b=new Ko(); a.show(); b.show(); } } これでb.showでエラーが出るのが理解出来ません。 bはサブクラスでオーバーライドされた方のメソッドを呼び出しているので やっていることはa.show()と同じ気がするのですが、何ででしょう?
- 268 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 16:47:40 ]
- >>265
VisualVM とか jhat を調べてみるといいかも
- 269 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 16:52:39 ]
- >>262
www.jsresources.org/faq_midi.html#create_soundbank
- 270 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 16:56:53 ]
- >>267
Oya#show は Exception を投げると宣言しているので、 main の b.show() が投げる Exception をどうにかする必要がある (実際には投げられないのだとしても、宣言してる以上、処理しないとだめ)
- 271 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 17:09:06 ]
- >>270
これって親のメソッドが仮に例外投げないとしたらコンパイルが通って b.showの実行結果は「ko」になりますよね。 Oya#showはKo#showで消されているため例外投げる部分が無いものになる気がするんです。 素直にKo#showを使ったa.showは例外処理必要無いのに、 なんでOyaの参照で間接的にKo#showを使うと例外処理が必要になるんでしょう?
- 272 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 17:21:08 ]
- >>271
b は Oya だと宣言してるし。
- 273 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 17:24:36 ]
- javaの勉強中でEclipseを使ってプログラムを作り、JSP→クラスの遷移はできるのですが、html→クラスの遷移ができません。
内容はどちらもボタンを押すとデータの送信などは行わず遷移するだけなので、どちらも同じ記述をしているのですがhtml→クラスがうまくいきません。 JSP→クラスの設定はweb.xmlで記述しているのでhtmlだとweb.xmlが読み込まれないのが原因なのではないかと思っているのですが、web.xmlが使えないとなると解決方法がわかりません。 どうすればよいのでしょうか。
- 274 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 17:25:47 ]
- >>272
そのOyaの関数がKoの関数になってるからってことを疑問にしてるんでしょ。
- 275 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 17:28:50 ]
- >>271
b が Oya 型だから b.show は単純に Oya#show の宣言を見る Oya b = new Oya(); のときと Oya b = new Ko(); のときで b.show のエラーの有無が変わってはかなわんし (b は同じ Oya 型。単に初期値が違うだけ) もし Oya b = null; とか Oya b = hoge(); とか Oya b = x < 10 ? new Oya() : new Ko(); とかだったらどうするよ
- 276 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 17:43:48 ]
- >>272,>>275
レスありがとうございます。 宣言はスーパークラスの方を見て中身はサブクラスを見てる感じなんですね。 オーバーライドで引数とか全部一緒だからそんなことも出来るのか。
- 277 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 17:45:55 ]
- >bはサブクラスでオーバーライドされた方のメソッドを呼び出しているので
というのが分かるのは 275 が書いたように実行時なんだな。 コンパイル時は宣言した型でしか見てないんだな。
- 278 名前:デフォルトの名無しさん [2008/08/18(月) 19:39:27 ]
- >>264
> >>260 > > javaにはオペレーターは無いはずですが > Javaにはオペレータが結構あります。 > Stringクラスだけでなくintでも+=が使えます。 > クラス型に対するオペレータでも=や==はStringクラス以外でも使えます。 例えば public AnyClass{ int n; String s; public AnyClass() { n = 0; s = null; } public AnyClass(int num,String str) { n = num; s = str; } } みたいなクラスがあったとして 下記のような動作させるにはどうすれば良いのでしょう AnyClass obj1 = new AnyClass(10,"ab"); AnyClass obj2 = new AnyClass(1,"c"); AnyClass obj3 = new AnyClass(); obj3 = obj1 + obj2;
- 279 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 19:56:30 ]
- >>278
演算子の多重定義はサポートしてないから無理。
- 280 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 22:19:35 ]
- >278
public AnyClass plus(AnyClass other)
- 281 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 22:21:10 ]
- >>280
演算子のオーバーロードがしたいって言ってるんじゃないの?
- 282 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 23:04:54 ]
- >>260
× Javaにはオペレータは無い。 ○ Javaにはオペレータのオーバーロードはできない。 で、Stringには連結オペレータが予め用意されている、と。 なぜ連結オペレータが用意されているかは設計者にでも聞いてくれ。
- 283 名前:x [2008/08/18(月) 23:28:03 ]
- 初めまして。最後のdrawLineでintを使えないといわれてしまいます。
分かる方いらっしゃいますか? よろしくお願いします。 import java.applet.Applet; import java.awt.Graphics; import java.awt.Color; import java.awt.Font; import java.math.*; /** * @param args */ public class applet5no1 extends Applet { public void paint(Graphics g) { int x1,y1,sec; sec = 30; x1= 6*sec; g.drawLine (100, 100,100+70*Math.cos(60 * Math.PI/180) , 100-70* Math.sin(60 * Math.PI/180)); } }
- 284 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 23:31:43 ]
- intが使えないから適切な型に変換しろってこと
- 285 名前:x [2008/08/18(月) 23:33:27 ]
- すいません。具体的にはどうするかわかりますか?
- 286 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 23:43:49 ]
- >>283
sinとかcosの結果はdouble型 drawLineの引数はint型 なので型が合わない intに変換しる
- 287 名前:x [2008/08/18(月) 23:45:02 ]
- ありがとうございます。助かりました
- 288 名前:x [2008/08/18(月) 23:59:08 ]
- 先ほどのものです。
いろいろ試したのですが、どうしてもうまくいきません。 具体的にどうすればいいか教えてもらえませんか?
- 289 名前:x [2008/08/19(火) 00:13:44 ]
- いろいろ試したというのは嘘で、試そうにもやり方が全く分からないので、手取り足取り教えてくれませんか。
いろいろ試したのなら、どう試したけれど、どううまくいかなかったが書けるはずなのに、 それができないから嘘がばれると思ったので正直に書きました。
- 290 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 00:15:58 ]
- お前馬鹿だろ
リファレンス見るとかググるとか思いつかないのか そんなことだと永久に2chに聞きに来るつもりか?
- 291 名前:x [2008/08/19(火) 00:20:42 ]
- リファレンスってなんですか?どこにあるのか分かりませんし、見方が分かりません。
ググろうにも何をキーワードにすればいいか全然思いつきません。 ここは初心者にきびしいネットワークですね。
- 292 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 00:22:10 ]
- >>291
君がゆとり杉なのかもね。
- 293 名前:デフォルトの名無しさん [2008/08/19(火) 00:33:40 ]
- 実は趣味でプログラムしてます。今42歳でニーとですす。
- 294 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 00:35:30 ]
- >>291
java.sun.com からJava SEのリンクを辿っていけばそのうちに辿りつけますよ。 画面左上はパッケージのリスト、左下にクラスのリスト、右がメインビューワとなっております。 防御スクリーンを展開したままフェイザーと光子魚雷の準備を抜かりなきようお願いもうしあげます。
- 295 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 00:36:09 ]
- >>293
名前のxが抜けてる抜けてる
- 296 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 00:48:39 ]
- >>291
・貴方が書いている言語はきっと“Java” ・二人も“変換”しろと言っている いくら考えても無いところからキーワードを思いついたりしないだろうな、すでに書いてあるのに……
- 297 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 00:56:37 ]
-
初心者 【人々】 (1) ・「覚えよう」と言う意思の無い人。 ・こう言う人は、永遠の初心者。 (2) ・全てをチャラにできる魔法の言葉。 ・質問をする時にこの言葉さえつければ、何を聞いても良いと勘違いしている方がいらっしゃる。 ・「初心者なら、そういう難しい事は考えずにまずは基本を覚えなさい。」と、言いたくなる事がある。 でも、お客さんだしそんな事は言えないしなぁ・・・。 某辞典から いや誰とは言わないけどね
- 298 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 00:57:21 ]
- Sun SPOTの話題はどこに持ってけばいいんでしょ?
- 299 名前:デフォルトの名無しさん [2008/08/19(火) 00:59:36 ]
- 初心者なんですけど、ジャヴァってなんですか?アップレットとどう違うんですか?
- 300 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 01:04:25 ]
- >>299
じゃう゛ぁ(java)は今をときめくニューウェーブ、時代の最先端を行く今注目のプログラミング言語です。 アプレットはIEやFF上で動作するJavaプラグインを用いた実行形態の一種です(?) Applet/JAppletクラスを用いて作成します。 通常のJavaアプリはApplet/JAppletクラスを使いません。
- 301 名前:デフォルトの名無しさん [2008/08/19(火) 01:18:53 ]
- アプレットでフラッシュみたいのはやんないんですか?
何でみんなフラッシュ使うんでしょうか。 初心者なんですけど、フラッシュの方が最先端な気がします。
- 302 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 01:23:00 ]
- スレの無駄だからそろそろ初心者ごっこはやめろ
誰も本気で釣られんよ
- 303 名前:デフォルトの名無しさん [2008/08/19(火) 01:28:02 ]
- 初心者だからって馬鹿にしないで下さい!
- 304 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 09:41:23 ]
- ActionScriptも多少触ったけど、言語仕様がルーズ(型の扱いとか)なのと
根っこのトコの動作が見えにくいのとでなんかやり辛いんだよなぁ マルチスレッドが普通にできないのもめんどい グラフィックやサウンド系の扱いが手軽なのと、プラットフォームの普及度から言うと よっぽど複雑な処理やるんでもなければFlashでやるのがいいでしょうね
- 305 名前:デフォルトの名無しさん [2008/08/19(火) 10:00:45 ]
- アプレット技術はそのままで、ブラウザ埋め込みレットとしてアプレットを拡張すればいいんじゃないかと思う。
それこそアプレット・アプリケーション・フレームワークが整備されればいいのかな。スウィングと同じように。
- 306 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 10:20:26 ]
- javaのpipeってLinuxのmkfifoでできる名前付きパイプを実現するものでしょうか?
- 307 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 10:32:26 ]
- java.nio.channels.Pipe の事なら、そもそもプロセス間通信できなかったような
- 308 名前:デフォルトの名無しさん [2008/08/19(火) 16:34:14 ]
- アプレットをいろいろといじっているのですが、ボタンを付けることについて質問です。
ボタンを押されるたびに、たとえば"A"という文字を表示するxとy座標を変えて行きたいのですが、 public void actionPerformed(ActionEvent e){ if(e.getSource() == btn){; x+=20; y+=20; repaint(); } } とすれば、g.drawpaint("A",x,y)がリペイントされて、ボタンを押されるたびにx,yが20ずつずれて表示されると思っていたのですが 最初に押したときはxとyが20ずつ動いたのですが連続してボタンを押しても変わることはありませんでした。 押すたびにずれるようにするにはどうすればいいでしょうか? よろしくお願いします。
- 309 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 16:39:47 ]
- きっと何処かで毎回xとyを0にしてるんだな
- 310 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 17:03:31 ]
- 最初にボタンを押したときは動くのでx,yがリセットされていることは無いと思うのですが、
class MyFrame extends Frame implements ActionListener{ Button btn; int x = 50,y=50; public MyFrame(String title){ setTitle(title); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); } public void paint(Graphics g){ btn = new Button("ボタン"); btn.addActionListener(this); add(btn); btn.setBounds(120,200,90,30); g.drawString("A",x,y); } public void actionPerformed(ActionEvent e){ if(e.getSource() == btn){ x=x+20; y=y+20; repaint(); } } } これはフレームになっていますが、基本的にかんな感じです。
- 311 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 17:06:57 ]
- なんでpaintのたびにボタンが増えてるの・・?
- 312 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 17:32:02 ]
- すいません。ボタンが増えてました・・・paintから出したら上手く動きました。
有難うございました。
- 313 名前:デフォルトの名無しさん [2008/08/19(火) 17:59:23 ]
- Object.classって何?
- 314 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 18:13:30 ]
- >>313
Object クラスを表す Class クラスのリテラル new Object().getClass() と同値
- 315 名前:デフォルトの名無しさん [2008/08/19(火) 18:52:33 ]
- >>314
dクス
- 316 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 19:08:49 ]
- メモ帳から、改行やスペースを含む文字列を読み込んで、char型の配列に入れるというものを作りたいのですが、うまくいきません。
String型の配列に入れる事は出来たのですが、Char 型に変換することができませんでした。以下は私のソースプログラムです。 public class Main{ public static void main(String[] args){ List<String[]> list =new ArrayList<String[]>(); String cell[]=new String[1000]; try{ FileReader fr =new FileReader("test.txt"); BufferdReader bf =new BufferedReader(fr); String st =null; while((st= bf.readLine())!=null){ String[] line=st.split(""); list.add(line);} for(String[] values: list){ for(String value: values){cell[i]=value;i=i+1;}} }catch(IOException e){}}}
- 317 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 19:37:16 ]
- >316
Stringオブジェクトからcharを取り出す方法があれば良いのかな > char java.lang.String.charAt(int index) それから、BufferedReader を使うと改行が消えるのでご注意あれ。
- 318 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 19:39:19 ]
- String.toCharArray()っていうそのまんまなメソッドもあるよ!
- 319 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 21:19:33 ]
- BufferedReader#read(char[] cbuf, int off, int len)じゃイカンのか
- 320 名前:316 mailto:sage [2008/08/19(火) 21:23:12 ]
- ありがとうございます。アドバイスを踏まえ以下のように改良したのですが、
1行しか読み込むことができません。バッファを使っているせいかとも思ったのですが、バッファを消すとエラーになってしまいます。 public class Main{ public static void main(String[] args){ List<String[]> list =new ArrayList<String[]>(); Char cell[]=new Char[1000]; try{ FileReader fr =new FileReader("test.txt"); BufferdReader bf =new BufferedReader(fr); String st =bf.readLine(); for(int i=0;i<100;i++){ cell[i]=st.charAT(i); System.out.print(cell[i]);} }catch(IOException e){}}}
- 321 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 22:15:13 ]
- readLineを1回しか呼んでないような気がするが
- 322 名前:320 mailto:sage [2008/08/19(火) 22:48:51 ]
- >>321
確かに・・そうですね・・ でも、どうすればいいでしょう・・;;
- 323 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 23:23:47 ]
- ファイル全体を1個のchar配列にすればいいのか?これでどう?
BufferedReader reader = new BufferedReader(new FileReader("test.txt")); StringBuffer buffer = new StringBuffer(); int c; while ((c = reader.read()) != -1) { buffer.append((char) c); } reader.close(); char[] array = buffer.toString().toCharArray();
- 324 名前:320 mailto:sage [2008/08/19(火) 23:39:07 ]
- >>323
一文字ずつを一つ一つの配列に入れたいです。100文字あったら100個の配列に入れるようなイメージです。 ソースプログラムありがとうございます。書いてある事はある程度理解できたのですが、分からないところもありました。 System.out.print(array); と加えたのですが、何も表示されず(´・ω・`)という顔をしてしまいました。 何を出力すれば良かったのでしょうか
- 325 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 23:42:03 ]
- 配列はそのままprintlnしても中身は出ない
System.out.println(Arrays.toString(array));
- 326 名前:325 mailto:sage [2008/08/19(火) 23:48:01 ]
- って、ウソでした
試してみたら普通に出たorz test.txtの中身がないとか?
- 327 名前:320 mailto:sage [2008/08/20(水) 00:00:25 ]
- 何故かうまくいきません・・
よろしければソースを丸ごとコピペしたいので、貼り付けて貰えませんか? 一番最初の宣言からです。
- 328 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 00:15:03 ]
- >>327
どーぞ rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/403.zip
- 329 名前:320 mailto:sage [2008/08/20(水) 00:31:02 ]
- >>328
ありがとうございます。できました! とても助かりました。 宣言のところで、いつもchar array []としていたのですが、char [] arrayも同じなんですね。
- 330 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 00:34:33 ]
- >>329
というより、後者が推奨。
- 331 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 00:40:09 ]
- >main(String[] args)
その割にはmainはちゃんと後者で書いてるのね。 いちおうこれでもいけるけど main(String args[])
|

|