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

初心者歓迎! Java相談室 その5

■ このスレッドは過去ログ倉庫に格納されています
00011NGNG
                        
 || ̄ ̄|   ∧_∧
 ||Java|  (     )   ∧∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ||__|  ( ○  )  (   ) < 俺達の旅はここから始まる。
   ||    │ |  │   /  |    \___________
((二二)) .(_(__)〜(___ノ

( ゚Д゚) < カキコする前に>>2-10をチェックしとけゴルァ!!
>>2 過去スレの一覧
>>3 Javaの基礎と よくある質問 (初心者はここをチェック!)
>>4 Java関連スレいろいろ
>>5 Javaを撲滅させたい方、死滅を心配してる方、Cとの違いを知りたい方はこちらへ
* 諸般の事情により、リンクがずれる事もあります。
0232デフォルトの名無しさんNGNG
>>231
はい。

# public な inner クラスは例外。
0233デフォルトの名無しさんNGNG
初心者の質問ですみません。

プログラムによく//と {}が出てくるんですが
これらの意味を教えて下さい。
0234デフォルトの名無しさんNGNG
質問する前に最低限の入門書くらい読んでくれよ… (;´д`)
0235デフォルトの名無しさんNGNG
「//」 はコメントだと思われる。
0236デフォルトの名無しさんNGNG
>>233
ワロタ
0237デフォルトの名無しさんNGNG
>>234
そのまま意味も知らずに受け入れて書いてました・・・。
>>235
これから自分が書くコメントって事ですよね。

ありがとうございました。
0238デフォルトの名無しさんNGNG
>>237
微妙な表現にワロタ
0239225NGNG
>>226
レスどうもです。
イベントの記述とかが楽なので、
このままJビルダーでがんばってみます。
ちょっと重いのが難ですけど。
軽いソフトも良いですね。
0240  NGNG
インスタンスのコピーを行いたいのですが、clone()メソッドを実装して
いないクラスの場合、自分でクラスを拡張して、clone()を実行する。
でよいのでしょうか?

0241デフォルトの名無しさんNGNG
>239
JBuilderになれすぎると
0からコードかくとき
???ってならない?
0242デフォルトの名無しさんNGNG
>>240
それでいいんだけど、細かく言えば、Cloneableをインプリメントして
必要ならclone()メソッドを実装する。
clone()メソッドを実装する場合は、その内で、まずsuper.clone()を
呼び出すことを忘れずに。
super.clone()は、たいていの場合、Objectのclone()を呼び出すから、
プリミティブやStringなどはこれでOKだが(ていうか、それらだけなら
clone()を実装する必要はなく、Cloneableをインプリメントするだけ
でよい)、オブジェクトの参照は、参照がコピーされるだけなので、その
ままでは元のオブジェクトとクローンされたオブジェクトで、同じ参照
をもってしまう。これはまずいので、clone()メソッドを実装して、そこで
これらの参照が別のコピーされたオブジェクトを指すようにする。
ま、頑張って。
0243drawString途中で色変更可能?NGNG
drawStringでAppletに文字列を描写しているのだけれど、

「2月12日(火曜日)」

の「(火曜日)」を別の色にしたいのですが、
別のdrawStringに書くと、始まりのx座標がわかりません。
そこで

・drawString途中で色変更可能ですか?(多分無理?)
・「(火曜日)」の始まりのx座標はどうやって求めれば良いのですか?
 それか、どこかに変数として保持できますか?

とにかく、普通のAPI仕様で行きたいのですが(Swing等不可)
何か良い手はないですか?
0244烏龍茶NGNG
>>243
たしかこんなん

FontMetrics fm = g.getFontMetrics();
int w = fm.charWidth("2月12日");
int h = fm.getHeight();
g.drawString(0, h, "2月12日");
g.setColor(Color.red);
g.drawString(w, h, "(火曜日)");
0245243NGNG
>>烏龍茶さん

いつもありがとうございます。
なるほどFontMetricsですか!

PS 調べてみたんですが、
int w = fm.charWidth("2月12日");ではなくて
int w = fm.stringWidth("2月12日");のようです。

・public int charWidth(char ch)
・public int stringWidth(String str)
ちなみに文字配列(JAVAで使うことあんのか?)の場合は
・public int charsWidth(char[] data,
            int off,
            int len)
0246デフォルトの名無しさんNGNG
こんにちは。
APIはだいたい分かるんですけど、COMもちょっとわかるんですけど、
ジャバアプレットのエディットコントロールのウィンドウハンドル
を取ってテキスト取ったりそこに書き込んだりするところで
躓きました。
MSAWT_Comp_Classあたりから教えてくれませんか?

0247デフォルトの名無しさんNGNG
はああああああああ?????
0248デフォルトの名無しさんNGNG
>>246
それなに?
0249デフォルトの名無しさんNGNG
未だにstaticの意味が分からない...。
よく、staticで無い〜をstaticコンテキストから参照することはできません、
て言われるんだけど、どういう意味ですか?
0250デフォルトの名無しさんNGNG
読んで字のごとく
0251デフォルトの名無しさんNGNG
>>249
コンテキスト:文脈
staticでないメンバ変数やメソッドを
staticなメソッドからは参照できないといういみ。
0252デフォルトの名無しさんNGNG
いつも思うんだけどさ、Java で Context って言った時に「文脈」って
表現するの変じゃない? AppletContext とか ServletContext って
「文脈」というより「環境」のほうが意味的にしっくり来るんだけど。
「文脈」すげーキモイ
0253デフォルトの名無しさんNGNG
この場合のコンテキストは文脈でいいのでは?
ServletContextなら環境でいいと思う。
0254デフォルトの名無しさんNGNG
SwingのGUIを手軽に作れる「重たくない」フリーのツールなぞこの世にありますか?
あれば教えてください。

 環境はセレロンマシンの64MB、winマシンです。
0255デフォルトの名無しさんNGNG
入力された文字列に2バイトが含まれているかを解析する一番簡単な方法って何ですか?
0256256 GETNGNG
>>255
超適当

if(ch < 0x100) System.out.println("半角");
else       System.out.println("全角");

半角カナは自分で調べれ。
0257デフォルトの名無しさんNGNG
Dialogについて質問。
Dialogが出てる間は親フレームは止まるってどこかに書いてあったけど、
これってどういうこと?

・Dialogを表示する
・Dialogでどっちかのボタンを押す
・押されたボタンによってその後の処理の流れを変える

みたいなことをメソッド1個の中に書けるってことですか?
0258デフォルトの名無しさんNGNG
>255
文字列のバイト数とStringのlength()を比べるというのはどうだろう
0259デフォルトの名無しさんNGNG
全く同じ設定のレイアウトをいくつもの画面で使用したい場合は、
1個だけレイアウトマネージャのインスタンスを用意して、複数の
パネルで使い回した方がいいですか?
0260デフォルトの名無しさんNGNG
>>259
GUI関係のクラスインスタンスの使いまわしは、予測できない間抜けな事態に
なることが多いので、やめたほうがいいよ。
0261256NGNG
>>258
あ、質問聞き違えてた。こうか:

if(str.length() < str.getBytes()){
  System.out.println("全角はいってまっせ");
}
0262デフォルトの名無しさんNGNG
Forte for Javaのこと初心者向けに書いてある
webご存知ありませんか?
0263デフォルトの名無しさんNGNG
str.getBytes().length
0264デフォルトの名無しさんNGNG
JDKでAppletのDebugはどうやりますか?
0265デフォルトの名無しさんNGNG
JTabbedPaneとJListを入れたJPanelに
setSize(w,h)やってもサイズが変わらないんだけど、バグ?
0266デフォルトの名無しさんNGNG
>>249

まじめに答えよう!?
普通、クラスのフィールド(メンバ変数)の値を取り出すには、
newして、インスタンスをつくりそのインスタンスのフィールド
の値を取ってこなければならない。(instance.field)
それに対してstaticは、newするまでもなく、クラスのフィールドを
直接参照できる(class.field)

たとえば
public class Daigakusei{
public boolean isAfo;
public static boolean isKichigai;
public Daigakusei(boolean Afo_or_not){
if(!Afo_or_not){
this.isAfo = false;
}
else{this.isAfo =true;}
}
}

というクラスがあり、どこかで
if( Daigakusei.isKichigai){
g.drawString("でめぇは、キティガイだ。");
}
は、コンパイルは通るが、
if( Daigakusei.isAfo){
g.drawString("でめぇは、アフォだ。");
}
は、staticでないものを、クラスで参照しているから
コンパイラに怒られる。

しっかりDaigakusei No249 = new Daigakusei(true); //isAfo = truel;
しなくちゃね。

そのうえで、
if( No249.isAfo){
g.drawString("でめぇは、アフォだ。");
}
できます。
0267266NGNG
ごめん
public static boolean isKichigai= true;ね
0268デフォルトの名無しさんNGNG
246
つかえねースレだな
0269249NGNG
>266
サンクス(´∀`)
027001NGNG
マニフェストファイルを追加したら次のエラーが出てしまいます。
C:|>jar cvm App.jar aaa.mft
java.io.IOException: invalid header field
at java.util.jar.Attributes.read(Attributes.java:358)
at java.util.jar.Manifest.read(Manifest.java:161)
at java.util.jar.Manifest.<init>(Manifest.java:56)
at sun.tools.jar.Main.run(Main.java:125)
at sun.tools.jar.Main.main(Main.java:904)
マニフェストは
Main-Class: App
(空行)
です。エラーの理由を対処法を教えてもらえませんか?
0271デフォルトの名無しさんNGNG
LinuxのJavaで音を出したいんだけど、Soundがうまく鳴らない。
で、面倒くさいんでデバイスファイルにwavつっこもうと考えてるんだけど
これって邪道かな?
0272烏龍茶NGNG
>>270
Manifest-Version がいるんじゃないのかな? 違ってたらごめん。

http://java.sun.com/j2se/1.3/ja/docs/ja/guide/jar/jar.html
0273デフォルトの名無しさんNGNG
Java歴1ヶ月の厨房です。
以下のような関数findを作ろうとしています。
次のようなファイル"meibo.txt"を参照します。
番号,名前
011,モナー
012,ギコ
カンマ区切りで1行でレコード項目は2つのみです。
Stringで(番号、ファイル名)を与え返り値で(名前)を返します。
例)find "011" "meibo.txt" →モナー
トークンを使おうとしていますが、入出力法がよくわかりません。
単純な処理だと思いますが、いい方法あればお願いします。
0274ほげほげNGNG
>>273
java.util.StringTokenizerを使えばいいですよ。

BufferedReaderで1行づつよみこんで、
StringTokenizerでトークンに分ければ良いと思います。

もしくはmeibo.txtの中を
001=ギコ
002=モナー
とかにして、java.util.Propertiesで読み込むとかはどうでしょう?
0275デフォルトの名無しさんNGNG
Streamじゃなしに?
0276ほげほげNGNG
StreamTokenizerでも良いかもしれませんね。
でもPropertiesの方が簡単かも。
0277デフォルトの名無しさんNGNG
文字列に改行コードを入れて勝手に改行させたいんですが
無視されます
st="aaaa\n\rbbb\n\rccc\n\rdddd";
これじゃダメですか?
0278デフォルトの名無しさんNGNG
>>277
その文字列を処理するデバイスやモジュールによって改行コードの扱いは変わる。
コンソール出力させるなら多分それでいいはず。


0279デフォルトの名無しさんNGNG
>>278
ありがとうございます。
ケータイなんですけど
改行されないってことは、ダメってコトですね?
はぁ
コード量が・・
0280デフォルトの名無しさんNGNG
>>279
ケータイならさー、スペースで埋めちゃえよ。
パッケト代払うのは顔も見たことも無い客なんだしさ・・・

どうよ?
0281デフォルトの名無しさんNGNG
携帯やったことないけど改行コードないの?
俺の H" はありそうな感じだけど。
0282270NGNG
>>272
前まではOKだったんだけど、ソースいじったらこうなった。
なんでだろ…。コンパイルはできるのに。IOの例外が無効です。らしい。
0283デフォルトの名無しさんNGNG
>>278
Dialogでは改行できないよ。
スペースで埋めてもDialogの幅が一定じゃないんでずれる。カコワル
俺はダイアログ自作したよ
0284デフォルトの名無しさんNGNG
>>281
printもprintlnもないみたい
0285デフォルトの名無しさんNGNG
>>283
やはり?
漏れも作り中
すぐできるっちゃできるけど・・・
0286デフォルトの名無しさんNGNG
>>270
JARのヘルプくらい読め。
0287239NGNG
>>241
意味が今になってわかりました。
ウインドウの絵って全てソースから作成してるんですね。
なるほど、一から作れといわれたらちょっと今の自分では無理ですね。
便利な分、書き方を忘れてしまいますね。
初心者は覚える為にJDKからのほうが良さそうな気もしてきました。
0288デフォルトの名無しさんNGNG
JTableで選択したセルに出る黄色い枠って消せます?
もしくは色を変える。
0289デフォルトの名無しさんNGNG
>>287
そんなのは時代についていけない老人の戯言だ。無視してよし。
便利なものは使え
0290デフォルトの名無しさんNGNG
>271
ttp://java.sun.com/products/java-media/sound/samples/JavaSoundDemo/
これ試してみた?
これが動かないなら実行環境側の問題かと
0291271NGNG
>>290
つーか、まさにそれが鳴らないんだけどさー。

実行環境の問題なら板違いっぽいなぁ
Linux板に逝ってきますか・・・
0292デフォルトの名無しさんNGNG
>271
んじゃ、これ使うとか
ttp://www.tritonus.org/
0293271NGNG
>>292
英語だ・・・読んでみます。
日本語の解説ページはなさそうだし
使い方がさっぱりわからんけど。

そもそもこれは既存のJavaSoundとは全然別物?
プラグインってなんのことだろ・・・
0294デフォルトの名無しさんNGNG
リフレクションってどういうときに必要になりますか?
0295杏里NGNG
は〜とはもう 気ままにリフレクション〜

http://home.catv.ne.jp/dd/chiba/ken/Java/JavaReflection.html
ここが参考になるかと。参考までに
0296273NGNG
StringTokenizerを使ってうまくできました。
ありがとうございます。
0297デフォルトの名無しさんNGNG
超厨房的質問で申し訳ないのですけど
僕はjavaを初心者本から初めて20h程度勉強しましたが
まだ全く理解出来ていません。
普通の知能の方だと何時間くらいで簡単なソフトを作れるくらいになるのでしょうか?
ちなみに僕はPerl厨房でして、Perlならば中級者程度の腕前のつもりです。
0298デフォルトの名無しさんNGNG
>>297
20hだと、普通はチャットソフトが組める程度。
アプレットの勉強をしてたなら3目並べが組める程度。
組めないようだとプログラマとしての適性は無いと思われ。
0299デフォルトの名無しさんNGNG
>>297
もうプログラム組むのやめたら?
0300300NGNG
get
0301デフォルトの名無しさんNGNG
>>298
マジスカ。。鬱。。
チャットなんて、パールでやれと言われればちょちょいのちょいなんですけど。。
ああああ。どうもオブジェクト指向が理解しずらいんですよね。。
perl厨房の僕には一つのファイルをjavacすると勝手に他のファイルも
コンパイルされるってのも、理解しがたい現象なわけで。。
まあがんばります。。perlだけじゃ食ってけ無いですもんねw
就職活動中の身です。
0302デフォルトの名無しさんNGNG
わかんねえならわかるまで勉強しろよ。
たかが20hやそこらでヒーヒーいってんじゃねえ
0303デフォルトの名無しさんNGNG
>>302
激励叱咤ありがとうございます!
ちょっと自分の理解力の無さ加減に不安になったもので。。
このスレに書き込んだのは初めてですが、どうしても行き詰まった時に
質問させてもらおうかと思います。JAVAマンセー!!(よくわかんないけどなー)
0304デフォルトの名無しさんNGNG
月の英語表記(January etc..)どこかにString型で保持されてないですか?

別に
if(this.month = Calendar.JANUARY){
 str = "January";
}
やってってもいいけど、なんかめんどい。
0305デフォルトの名無しさんNGNG
別ウインドウを表示させて親フレームの処理を一時止めておくのって、
どうやればいいですかね?

window.show();

while(true) {
if(inputFlag) {
inputFlag = false;
break;
}
}

とするとシステムごと止まるんですが。
Thread作って無限ループさせてsleep、かなぁ...
0306デフォルトの名無しさんNGNG
AWTのイベント処理スレッドを止めなきゃダメだよ
Dialog/JDialog使おう。
あるいはそのソースを参考にして自作しても別にいいけど
0307306NGNG
いや、AWTスレッドを止める訳ではないか。
1行目は忘れてちょ。すまそそそ
0308305NGNG
>306
速レス感謝
0309305NGNG
感謝と言っておきながらいきなり詰まった。
Dialogを生成するとき、(Frame)mainFrame.thisとしたいんだけど、
staticで無い変数だからって言われて蹴られる。
この場合はどう対処したらいいのか。
0310デフォルトの名無しさんNGNG
質問の意味が分からない。
(Frame)mainFrame.thisって何??
0311デフォルトの名無しさんNGNG
>>305 基本的に考え方はあってる。

sleepさせといてインタラプトかける手もあるけど
あまり使わない。(メンドイし)
普通wait,notifyするな。

多分画面のウィンドウイベントで無限ループすると
画面かたまるぞ。

0312270NGNG
>>286
わかんないんだけど…
教えてよ。
0313デフォルトの名無しさんNGNG
なんでマ板じゃjava超不人気なんですか?
0314デフォルトの名無しさんNGNG
仕事で使わされてる奴が多いから
0315デフォルトの名無しさんNGNG
なんでム板じゃRuby超人気なんですか?


0316305NGNG
>310
Dialog(Frame frame,boolean modal)のFrame。
この場合に限らず、staticメソッド内でthisを使いたい時って
どうすれば良いのやら。
0317デフォルトの名無しさんNGNG
>316
君はもうstatic使用禁止な
0318ほげほげNGNG
staticメソッドの中からはthisは使えないですよ。
staticの意味とthisの意味を注意深く考えれば、その矛盾に気付くはずです。
0319305NGNG
いや、矛盾とかは分かってるんですが、
thisの代わりに何を使うかが。
0320デフォルトの名無しさんNGNG
>>319
thisの代わりに自分自身を使う。
Shineクラスのaho()メソッドなら Shine.aho()
0321デフォルトの名無しさんNGNG
>>319
this 以外つかってもしゃあないと思われ。明らかにその static メソッドの
設計ミス。下手にごまかさず意味の通るコードに作り直せ。とりあえず static
はずせ。
0322デフォルトの名無しさんNGNG
1.4で大幅にかわった部分ってどこなのさ
0323デフォルトの名無しさんNGNG
スレ違いかも知れないけど、SQLJって使ってる人いる?
Oracleのストアドで使おうか考えているんだけど、いまだにOracleのストアドってPL/SQL全盛だから、
もしかしたらSQLJには何か欠陥でもあるのかな?
0324デフォルトの名無しさんNGNG
>>323
PL/SQL の方が知っている人が多いし本もたくさんある。そういうのも
選択肢の一つだとおもわれ
0325デフォルトの名無しさんNGNG
>>322
言語仕様に手を入れたという意味ではassertじゃないの?
つーか、1.4スレあるじゃん、ここ。
0326デフォルトの名無しさんNGNG
インナクラスって意味がわかりません。なにかすごいみたいに書いてあるんですが、凡庸にみえます。同様に無名インナクラスも意味わかりません。無名のくせに名前あるし、、、

あと以下のような引数にクラスが入ってるのも釈然としません。どうか啓蒙してくでださい。
addMouseListener(new MouseAdapter(){
public void mousePressed(Mouseevent me){
}
});
}


0327デフォルトの名無しさんNGNG
>>326
スコープが極めて限定されている(OUTER以外のクラスから一切
隠蔽されている)クラスというのは、価値があると思うが。
0328デフォルトの名無しさんNGNG
>>326
outer クラスの内部状態にアクセスできるので、多重継承と同じ事
をやりたいときに使う。
0329デフォルトの名無しさんNGNG
>>326
OUTER(INNER)クラスのprivateメソッドに、INNER(OUTER)クラスは
アクセスできるんだよね。いろいろ便利だよ。
0330デフォルトの名無しさんNGNG
>>328
そうそう、別々のクラスなのに実質一体として扱えるから、
多重継承するのと同じことが出来るんだよね。
0331デフォルトの名無しさんNGNG
あの〜Javaでデスクトップアプリつくろうと思うのですが
機能が不十分だと思っている者です。

というか、理念が非常に良くできているので
もっと強力なライブラリがあれば開発効率が非常に良くなると思うのですが
フリーで強力なSwing拡張APIってどこかにないでしょうか?
JTable,JDesktop,JInternalFrame,JToolBarが弱いと思われ、
Officeくらいちょちょいのちょい!と出来上がってしまうくらい強力なライブラリ、、ないっすよね〜・・・
■ このスレッドは過去ログ倉庫に格納されています