【初心者】Java質問・相談スレ52【大歓迎】

このエントリーをはてなブックマークに追加
>>315-318
もう二人の方に教えてもらったからいいですよ。
理解できました。物事のポイントを押さえる事の何が悪いんですかねぇ?
しかし嫉妬は怖いですね。
最後にもう一度聞きましょう。私は筑波の理系です。
あ  な  た  は  ど  こ  の  大  学  で  す  か  ?
321デフォルトの名無しさん:04/08/29 22:43
>>320
高卒です・・・・
高卒の奴はこの板から出てけよ。(禿藁嘲笑)
>>320
俺は中卒だが、少なくともお前よりは人に質問するときの心得はある。
大丈夫か? 筑波大の理系は。
324デフォルトの名無しさん:04/08/29 22:47
ファイルダイアログからTransferHandlerでドラッグ&ドロップした
ファイルを、JListのある特定のセルに落としたいのですが
ドラッグ中のマウスカーソルがファイルダイアログの外に出た後の
マウスカーソルの位置の取得方法が分かりません。
どうすれば位置が取得できるのでしょうか?
>>323
中卒の嫉妬って怖いですね。
あなたは、この板に居ていいと思ってるんですか?
>>320
結局教えてもらってばっかりだなw
筑波の恥さらしめ。消えろ。
>>325
この板? どういう意味?
今はフリーSE で色々な企業まわって業務 SE や PG に業務モデリングや Java の
教育してる身だから Java 初心者が何を知りたいか、この板は勉強になるんでね。
まー、筑波大のあんたは業務系なんか関係ないか知らんけどね。
自分で動かないで他人に頼りっぱなしを「何が悪い」と開き直り、
学歴を振りかざして優越感丸出し。
本当、あんた筑波の恥さらしだよ。頼むから二度と来るなよな。
330デフォルトの名無しさん:04/08/29 23:29
>>320
筑波のパチンコ屋「大学」ですか?それとも筑波大の敷地に入りましたか?
筑波大気分味わえて、よ か っ た な 。 小 卒 ! !
>>320
小卒ですが何か。
ただの学歴煽りだろ。放置しとけ。
333デフォルトの名無しさん:04/08/29 23:51
いや〜俺マサチューセッツ工科大卒なんだ・・・

*言うだけなら誰でも*
筑波大ってそんなに良い大学なの??
あまりいろんな大学のことは良く知らないんだけど…

   彡川川川三三三ミ〜  プウゥ〜ン
   川|川/  \|〜 ポワ〜ン    ________
  ‖|‖ ◎---◎|〜        /
  川川‖    3  ヽ〜      < 筑波大だけど文句ある?
  川川   ∴)д(∴)〜       \________
  川川      〜 /〜 カタカタカタ
  川川‖    〜 /‖ _____
 川川川川___/‖  |  | ̄ ̄\ \
   /       \__|  |    | ̄ ̄|
  /  \妄想命_     |  |    |__|
  | \      |つ   |__|__/ /
  / ドキュソ氏ね | ̄ ̄ ̄ ̄|  〔 ̄ ̄〕
>>334
*言うだけなら誰でも*

筑波大は一応国立(くにたちじゃないよ)だから。
もまいら全員マ板逝け。
筑波の名を出しただけで、こんなにもレスが伸びるとは
みなさん、本当に私に嫉妬してるみたいですね。
そんなにうらやむ事じゃないですよ。どうぞあなたたちも
勉強して筑波に入ってください。一応年齢に関係なく誰でも
受験資格はありますからね。
>>338
言うだけなら誰でも。

まあ俺はマサチューセッツを首席で卒業したから君とは格が違うのだよ。格が。
筑波だか竹馬だか知らんが日本の大学で偉そうにしている愚民どもが。
俺は大学院出たよ。
俺はMITの教授だよ
俺はイェール大だ。MITにはかなわんな。。。
俺カリフォルニア大バークレー校だ。
俺は筑後川波力発電大>>338脳内校、略して筑波大だ。
俺は神大だ。
俺は神。俺こそが神。
×神戸大学
×神奈川大学
○神大学
348297:04/08/30 00:56
>>298
レスありがとうございました。
IDEの導入を考えてみようと思います。
学歴ヲタには英語をテストしてやりゃいいな。
(   )内に適当な語を(a)〜(d)より選べ。
All three are about war, though none is about combat. Perhaps representing
a new generation of war films, they (   ) not on the soliders who fought
and died but on the women and families left behind.
(a)concern (b)deal (c)discuss (d)focus
俺は高校のとき解けた。
> a new generation of war films, they (   ) not on the soliders who fought
soldier じゃなくて?
>>350
全然。theの使い方を考えろ。というより語法問題。
the soliders=All three are about warじゃねーの?
All your base are belong to us.
You is a big fool man. ha ha ha.
>>351
soliders って soldiers のスペルミスじゃないん?
You is.
You be.
You bee.
soldiersならアレだな。脳内筑波大君は消えたの?
>>355
釣りじゃry
soliders って知らんのですが、それだと別の解釈になるんすか?
He said that that that that that that that that boy referred to was supposed to indicate, was out of place in the sentence.
"Two grandmothers, with their two granddaughters; Two husbands, with their two wives;
Two fathers, with their two daughters; Two mothers, with their two sons;
Two maidens, with their two mothers; Two sisters, with their two brothers;
Yet only six in all lie buried here; All born legitimate, from incest clear."
Explain this - how is everyone related.
What is broken when you name it?
ダイソーにて
「ザ・アクセサリー」
thou
368263_1:04/08/30 02:16
>>270
ありがとう。なんとかなりました。

>>364
そんなことをここで聞いてどうするの?
いた違い。

それと、もう一つあるんですが、現在選択中のタブはどう取得すればいいですか?
下だとインデックスが0になります。

public class Test1 extends JFrame {

Container myContainer = null;

private JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.LEFT);

public Test1(String title) {

super(title);

myContainer = this.getContentPane();

myContainer.setLayout(new BorderLayout());

JLabel myLabel1 = new JLabel("ひとつ目");
JLabel myLabel2 = new JLabel("ふたつ目");
JLabel myLabel3 = new JLabel("みっつ目");
JLabel myLabel4 = new JLabel("よっつ目");

//続く
369263_1:04/08/30 02:16
//続き
tabbedPane.add("Label1", myLabel1);
tabbedPane.add("Label2", myLabel2);
tabbedPane.add("Label3", myLabel3);
tabbedPane.add("Label4", myLabel4);

getContentPane().add(tabbedPane);

JMenuBar myMenuBar;
JMenu myInfoMenu;

JMenuItem myTabCountMItem;

myMenuBar = new JMenuBar();
setJMenuBar(myMenuBar);

myInfoMenu = new JMenu("現在選択中なのは " +
Integer.toString(tabbedPane.getSelectedIndex()) + "番タブ");
myMenuBar.add(myInfoMenu);

myTabCountMItem = new JMenuItem("タブの総数は " +
Integer.toString(tabbedPane.getTabCount()));
myInfoMenu.add(myTabCountMItem);
}
スレ違い氏ねよ
371デフォルトの名無しさん:04/08/30 04:36
すいません質問なんですが、

./MyBeans/Bean1.class を JavaBeans にするとき
$jar cvfm Bean1.jar manifest MyBean/Bean1.class って指定しますよね?

この場合、マニフェストファイルって現在のディレクトリ(./)に置かなくちゃいけないんですよね?

MyBeans ディレクトリに保存してしまうと
作成はできても実際使うときにエラー出しますよね?
JavaBeansの定義が、狭いような気がするが。
「実際使うとき」がどういう環境を指してるのかわからんし、「エラー出しますよね?」などと同意求められても、どんなエラーかわからんし。
373デフォルトの名無しさん:04/08/30 06:06
>>324
JListにリスナー設定しろよ

>>369
リスナーの中でやれよ

>>371
マニフェストはべつにカレントになくても取り込むよ
>>368
一つ目のタブでいいんじゃないの。
こんにちは

JLabel jL = new JLabel("ボタン");
jL.setSize(300,20);
jL.setBackground(Color.GREEN);

上記のソースでビルド・起動しても、
JLabelのバックグラウンドカラーが変わりません。
試しに、フォアグラウンドカラーは変わりました。

jL.setForeground(Color.GREEN);

JLabelのバックグラウンドカラーを変えるためには、
何か他に手続きがいるのでしょうか?
そういう時は、setOpaque(true)だ。
Javaをはじめて3ヶ月。やと人の役に立てたような気がする。
377375:04/08/30 12:33
>>376
解決しました
ありがとうございました
378デフォルトの名無しさん:04/08/30 13:50
JPanel panel = (JPanel)getContentPane()

Container panel = getContentPane()

同じ
379デフォルトの名無しさん:04/08/30 14:01
Jakarta Projectのように、オープンソースライブラリを作成している、
なんとかHouseっていうプロジェクトがあったと思うのですが、
名前を思い出すことができません。

ご存知のかた、教えてください。
380デフォルトの名無しさん:04/08/30 14:03
>>378

同じではない。前者は場合によってエラーになる。
Containerで受ける方が行儀がいい。

そもそもJFrame#getContentPane()が実装しているRootPaneContainerインター
フェイスでは、Container getContentPane() というシグネチャになっている
ので、実体としてJPanelが返って来るという保証はない。
たとえばJFrame#getContentPane()(=JRootPaneへの委譲)みたいに、実装によっ
てはJPanelが返ってくるかもしれんというだけのこと。

JPanelが返ってくるのが分かっているならJPanelにキャストしてもいいが、
自分以外が実装したものでinstanceofでチェックもせずに無条件にキャスト
するのは行儀が悪い。そうしている場合、実装が変わっても文句は言わない
こと。
382デフォルトの名無しさん:04/08/30 14:52
>>381
サンクス。
半分分かって半分分からんorz
後者だと間違いないでよろし?
1行で書くなら、Containerにしとけ、で。

仕様上はContainer返すとしか決まってないんだから、やってみたら
実体がJPanel(Containerの間接的サブクラスだからContainerとして
扱える)だったからって暗黙の期待はするべからずということ。
384デフォルトの名無しさん:04/08/30 15:40
>>383
了解〜
jdkのsrc.jarをかち割ってjavadocかますとどえりゃー事なります。
どつく作った奴のスペックはどんなんなの!自分のマシンjava.beanでもうへこたれます。
2THzの2TBぐらいいるでしょこれ、
privateなもんまでドキュメント化されてるのどっかで見ませんでしたか?
386ケン ◆KENNYY/YXo :04/08/30 15:57
(ケン ´・∀・`)ヌルポ
387384:04/08/30 16:55
>386
ありがとうケン!その方法でもっかい試してみるよ
388ケン ◆KENNYY/YXo :04/08/30 17:00
(ケン ´・∀・`)だれだテメー
>>385
cat /dev/null > src.jar
したらスペックが貧弱でも大丈夫ですよ
390デフォルトの名無しさん:04/08/30 17:22
普通はecho -n '' > src.jar
>>373
APIドキュメント見てもいまいち分からないんですが、JListと同じように設定すればいいんですか?

>>374
タブで管理してタブごとにファイルの読み書きをしたいので、タブのインデックスをメニューバーで使用したいです。
>>385
確かに時間かかるな。
src.jar 全ソースで 4分41秒 もかかったよ。
private もつけたし。

CPU が 2THz だったら 0.3 秒くらいかな。たぶん。
393デフォルトの名無しさん:04/08/30 20:35
サーバーからファイルをクライアントへダウンロードする場合
ダウンロードダイアログを表示し、ファイル名と保存場所を指定するのが
一般的だと思いますが、
ダウンロードダイアログを出さずにプログラム上で指定した
ファイル名、保存場所に保存させることは可能でしょうか?
調べたのですが実現方法が分からないので、知っている方がいたら教えてください。
お願いします。
>>393
すばらしいセキュリティ意識ですね。
>>393
じゃ、俺はダウンロードしたらお前の PC のシステムディレクトリを
上書きするプログラムを書きたい。ダイアログ無しで。

まー、ほんとにやりたいんだったら、WindowsUpdate がやっていることを
ネットワークトレースして見れば?
org.apache.tools.zip.ZipOutputStream を使用して ZIP ファイルを作成したいのですが、
setEncoding でエンコーディングに "Windows-31J" や "Shift_JIS" にしても
ファイル名が Shift_JIS になりません。
バイナリエディタで見ても何でエンコードされたのか不明です。
(UTF-8 でも ISO-2022-JP などのほかの日本語コードでもありませんでした。)

どなたかうまく行っている方、アドバイスください。
>>396
java.net.URLEncoder
398デフォルトの名無しさん:04/08/30 21:56
>>391
JListにマウスリスナーを仕掛けて、その中で
JList#locationToIndex(Point�location) で取得したインデクスを
保存しておく。もちろんmouseExitedでクリアーも忘れずに。
ドロップ処理の中でその値を取得して、ドロップ先を特定する。

399デフォルトの名無しさん:04/08/30 22:19
>>398
ダメなのです。
swingドラッグサポートが開始されて、マウスカーソルがドラッグ&
ドロップ処理中に移ると(TransferHandler#getSourceActions、
#exportAsDragが呼び出されると)、イベント発生元のコンポーネント
を含む全コンポーネントのマウスリスナーの呼び出しがシャットダウン
されてしまうのです。マウスイベント発生通知がJAVAのシステム部分?で
独占されてしまってるみたいなのです。
そのシステム部分?からマウスカーソルの位置情報を知るにはどうすれば
いいのでしょうか?
>389-390
ありがとう消えてった!わっかんないてそれ向きそれでいいの??なんか裏テクなのかと決めちったぜ
危ないからほんと

>392
それ嘘でしょ?ありえないでしょ??本当なら何が違うの?jdk?もし未使用?
オプションは?失敗してはいろいろ引数かえてたら

javadoc -d ../doc -private -use -windowtitle "Java 2 Platform SE 5.0" \
-doctitle "Java 2 Platform SE 5.0" -breakiterator -splitindex \
-sourcepath ./src -nohelp -quiet -nonavbar -linksource -nonavbar \
-linksource -subpackages *

こんなんなっちゃってました、antでやったほうがいいの??あっちのほうが余計くたばりそうだけども
これって-Xmxとか入りません?
>>400 javadocのヘルプくらい読め。
402デフォルトの名無しさん:04/08/30 22:52
Frameをつかって、Panelのaddとremoveをやってパネルの切り替えをしています。
Appletをつかってaddとremoveで切り替えようとするとうまくいきません。
(removeはできるがaddが反映されない)
validateを呼び出して再配置をしてみましたがうまくいきませんでした。
appletで部品の切り返ってどうすればよいですか?
403デフォルトの名無しさん:04/08/30 22:55
>>398
JList#getDropTarget()でDropTagetを取得して、
DropTargetListenerをしかける。
DropTargetDropEvent#getLocation()
404デフォルトの名無しさん:04/08/30 22:56
カードレイアウトを使おう!
まず、日本語だな。
406デフォルトの名無しさん:04/08/30 22:59
>>403
おお、ありがとうございました!
>>400
4分は ant だよ。maxmemory
あるオブジェクトをシリアル化しようと思ってます。そのとき、
Imageのようなシリアル化できないオブジェクトがフィールドとしてある場合
そのフィールドだけシリアル化の対象外にすることはできますか?
transient
>>409
こんなキーワードあったんですね。初めて知りました&使います。
ありがとうございました。
>>410

言っておくが、transient指定するとシリアライズ対象外になるんだから、
その部分をどうやって保存/復元するかは自分で決めないといかん。

再現時に無視できるフィールドなら気にしなくてもいいけど、たとえば
Imageを

private void writeObject(ObjectOutputStream out) throws IOException
を定義してピクセル値の配列で出力、
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException
を定義して、その配列を読み取って再構成

する必要があるかもしれない。

しかし、なんかネタっぽい質問だな。
例の単発分かりきった質問厨じゃないか?
>>411
transient指定したImageは代わりにPixelGrabberでint[] pixelsにして
このint配列をシリアル化するようにしました。

復元するときはint[] pixelsからcreateImage(MemoryImageSource)で
Imageを再構成しました。

>>412
ネタじゃないです・・・オブジェクトのシリアル化機能自体最近知って感動してます。
今まではフィールドごとにテキストで出力しようとしてました。
>401その言葉かなりぐっときたどうも
-helpで表示される以外にオプションがこんなにあるんね、あとは1.4と1.5の違いにたまげた
やりたかった日本語1.4docをまーじつーるのお力拝借して1.5のsrcにねじ込む。
それで1.4|=1.5docできない、の。か?@assert?眠すぎでわかんないけど、

>407
antかなりすっごい使い勝手よすぎでした。反則気味にjavadocより早かった、気になって追っかけて見たら生で叩いてる。のかな?もーだめだ
エラーじゃばじゃば出ますがなんとかいけそうです。1.5と互換の問題で作らないほうが
ありがとうございましたおやすみなさい
415デフォルトの名無しさん:04/08/31 11:04
質問ですが、

StringBufferクラスにsubstringという部分文字列を取り出すAPIがありますが、
以下のようなデータを決められたフォーマットにしたがって取り出していくのですが、

200005141092ブロードアピール 570松永幹

このデータをsubstringで取り出すと、半角と全角を同じ「1」のオフセットとして扱うため、半角として30文字取り出したいのに、substringだと
全角30文字として取り出せれてしまい、データがずれてしまいます。

StringBuffer(String)にある文字列を半角として部分的に取り出すことは可能でしょうか?


>>415
30byte取り出したいって事か?
フォーマット決まってるなら、半角の文字数+全角の文字数指定すればいいだろ。
417デフォルトの名無しさん:04/08/31 11:29
二つ質問させてください。

 フレームの中に複数のパネルを配置して各々の場所で何らか作業する場合、
それらのパネルは一つ一つスレッドを使って作業させた方がよいのでしょうか?
 またスレッドは百個くらい起動させても同機がとれるものなのでしょうか?
>>417
スレッドに分けるかどうかは作業の内容による。
スレッドの同期は自分で取らなきゃだめ。
419デフォルトの名無しさん:04/08/31 11:37
>>400
JavadocはAntで使うのが常識だよ。
俺の中では
420デフォルトの名無しさん:04/08/31 11:39
>>414
> >407
> antかなりすっごい使い勝手よすぎでした。反則気味にjavadocより早かった、気になって追っかけて見たら生で叩いてる。のかな?もーだめだ
> エラーじゃばじゃば出ますがなんとかいけそうです。1.5と互換の問題で作らないほうが

何が何を生で叩いてるのだ?
どんなエラーが出るのか?
お主が書いたAntのjavadocタスクのコードを見せてみろ
421デフォルトの名無しさん:04/08/31 11:56
JListのデフォルトのマウス動作は、プレスするとその一つのセルだけを
選択状態にしますけど、こういう各コンポーネントのデフォルトのマウス
イベント処理を無効にするにはどうすればいいのでしょうか?
ドラッグサポートを使いたいのでremoveMouseListener()以外の方法で
お願いします。
422デフォルトの名無しさん:04/08/31 12:23
>>418
レスありがとうございます。
たとえばボタンだけ配置されているパネルとかは
スレッドに分ける必要はないのでしょうか?
>>415
結局、そのデータで馬名が日本語の場合、C言語だと2バイトになるけど、
Javaの場合UNICODE扱いだから、1バイトになって処理されるのが問題なんですよね?

ならば、その文字が英字なのか?そうでないのか?を調べればいいのではないでしょうか?
Stringクラスに正規表現をつかって文字列内の情報を調べるものがあります。

matches(String regex)
regexには正規表現を指定してください。javadocに詳細があります。

そこで、matches([0-9])みたいにその文字列が0から9の数値なら〜みたいに文字列を調べればいいのです。
424デフォルトの名無しさん:04/08/31 12:28

JavaAppletによって描いて出来た画像をサーバーに保存したいのですが、
どうすれば良いのでしょうか?

画像データとしてCGIに送るのかと思い、調べたのですが解りませんでした。

キーワードだけでも教えていただければ頑張って調べます。

あほなので出来れば解りやすくお願いします。
そのサーバーがどのプロトコルを用い、どんな受付方法を設定してるかで
千差万別だけど、最も一般的なHTTPなら、URLConnectionでつないで、
それから得たOutputStreamインスタンスで送ろう。
あとはサーバーの問題です。
>>424
CGIでバイナリを受け取るのって、実は文字を受け取るより簡単だと思う
ただサンプルは少ないかもな
427424:04/08/31 13:14
>>425
>>426
ありがとうございます。
良く解ってないのですが、頑張って調べていきたいと思います。
428デフォルトの名無しさん:04/08/31 15:46
正規表現についてお尋ねします。
String TestString = "123abc456";

このTestStringの中に、"abc"が入っているかどうかを
判断するにはどのようにしたらよいのでしょうか?
>>428
スレ違い。正規表現スレいけよ
430デフォルトの名無しさん:04/08/31 16:29
スレ違いって訳でもないよ。
TestString.matches(".*abc.*")
でOK
単に文字列が入っているか調べるだけなら
TestString.indexOf("abc")で-1が戻ってないか判定するだけでもよさそう。
432デフォルトの名無しさん:04/08/31 16:52
>>430
レス有難うございます。ご指摘の通り試したところうまく動作しました。
Perlで正規表現使ってたんですけど、Javaとの違いにまだ慣れてないみたいです。
勉強します_| ̄|○

>>431
う…、そう言われればそうでした。
433369:04/08/31 17:52
どうしてコンパイルすら通らないんでしょうか?

import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
public class Test extends JFrame implements ChangeListener {
JLabel label = new JLabel("項目を選択>インデックスを表示");
JTabbedPane tabPane = new JTabbedPane();

Test() {
JLabel myLabel0 = new JLabel("ひとつめ");
JLabel myLabel1 = new JLabel("ふたつめ");
JLabel myLabel2 = new JLabel("みっつめ");
JLabel myLabel3 = new JLabel("よっつめ");

tabPane.addchangeListener();
getContentPane().add(label, BorderLayout.NORTH);
getContentPane().add(tabPane);

//続く
434369_2:04/08/31 17:52
//続き
tabPane.add(myLabel0);
tabPane.add(myLabel1);
tabPane.add(myLabel2);
tabPane.add(myLabel3);
}

public void stateChanged(ChangeEvent e) {
label.setText(Integer.toString(tabPane.getSelectedIndex()));
}

public static void main(String s[]) {
Test myApp = new Test();
myApp.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
myApp.setBounds( 130, 130, 640, 480);
myApp.setVisible(true);
myApp.setTitle("Test");
}
}
>>433
コンパイル時にどこでどんなエラーメッセージが表示されるのかぐらい書けよ
>>433
ここが変
tabPane.addchangeListener();
java2 SDK1.5をインストールしたらアンインストールできなくなりました。
どうすればいいですか?
>>437
・あきらめる
・OSから再インストール

好きな方を選べ
コントロールパネルからアンインストールできないんですか?
>>439
はいそーなんです。
>>440
・該当のレジストリを消す。
・インストールディレクトリ(JDK)を消す。
・システムディレクトリの java.exe とか(JRE)も消す。
・窓の手とかでアプリ追加/削除のエントリを消す。

で、アプレットが動かなくなると。
442デフォルトの名無しさん:04/08/31 20:12
質問させてください。
今Javaでアプリケーションを作ってみようと思っています。
GUIに使うものとしてswingを考えていたのですが、
動作が遅いと聞いたので、AWTとどっちがいいか迷っています。
AWTとSwingってそこまで速さに違いがあるのでしょか?

ちなみに作るコードは500KB位と考えています。
どうかよろしくお願いします。
443369_2:04/08/31 20:31
>>435 >>436

すみません。
シンボル: メソッド addchangeListener ()
場所 : javax.swing.JTabbedPane の クラス
tabPane.addchangeListener();

シンボルtabPaneが解決出来ないと出ます。JDK1.4.2_5です。

ラベルにインデックスを出したいのですが・・
444デフォルトの名無しさん:04/08/31 20:45
標準に設定されたブラウザにアドレスを与えて
ブラウザを起動させたいんですけどどうしたらいいですか?
445デフォルトの名無しさん:04/08/31 20:50
>>443
もう解答は上に出てるよー。
addChangeListener()に、パラメータがないんだよー。
かっこの中にChangeListenerの実装インスタンスを入れておくれよー
446デフォルトの名無しさん:04/08/31 20:53
>>442
どっちも大して変わらないよー。
と言うか、AWTは未完成のGUIコンポーネントなので
今使う意味は全くないですよー。
何だかんだ言ってもSwingが最もポピュラーなんですよー。
速度がそんなに気になるならSWTをつかっておくれよー。
447デフォルトの名無しさん:04/08/31 20:55
>>444
JAVAの質問じゃないよー
>>443
API仕様をよく見ろ
449デフォルトの名無しさん:04/08/31 21:00
>>447
おまえ日本語読めないのか
450444:04/08/31 21:07
>447
javaプログラムでイベントを受けた際に
>444のような処理を行いたいんです。
451369_2:04/08/31 21:34
>>445 >>448

最初は
addchangeListener(this)としていたんですが、cが小文字なのを気付きませんでした。

ヒントを下さりありがとうございます。
452デフォルトの名無しさん:04/08/31 22:29
アプレットで,イベントを受け付けた際に,ブラウザ内の別フレームにHTML
を出力するプログラムがうまく動きません.
コンパイルは通るのですが,ソースの
static AppletContext appletcontext;
の部分でエラーが起こります.
この場合,どのような原因が考えられるでしょうか?

import java.applet.*;
import java.net.*;

public class applet extends Applet
{
static AppletContext appletcontext;
public applet()
{
appletcontext = getAppletContext();
try
{
URL url = new URL(getDocumentBase(),"frame.html");
appletcontext.showDocument(url,"frame");
}
catch(MalformedURLException e){}
}
}
何かアプレット系の質問多いですね。
サーブレットの質問です。

コンテントタイプをiso-8859-1で設定している入力画面から
全角文字が入力された場合エラーにしたいのですが、全角
文字の判定方法がわかりません。

コンテントタイプをシフトJISにすればできるのですが、
コンテントタイプは変えられないので困っています。
455デフォルトの名無しさん:04/09/01 08:37
おはようございます、起きぬけで恐縮ですが質問させてください。
Java Applet から CGI プログラムを呼び出して、返って来た
バイナリデータを byte b[] に収めたいと思い、以下のような
ルーチンを作りましたが、問題があります。

byte b[] = null;
InputStream in = null;
URLConnection uc = null ;

try {
URL u = new URL(getCodeBase()+"getdata.cgi");
uc = u.openConnection();
in = uc.getInputStream();
byte buf[] = new byte[16384];
int n;
System.out.println("Content-length: " + uc.getContentLength()); // ここで -1 が返る
ByteArrayOutputStream bos = new ByteArrayOutputStream();

// ここに問題がある?
while((n = in.read(buf, 0, buf.length)) != -1){//
bos.write(buf,0,n);
}

in.close() ;
b = bos.toByteArray();
(以下継続)
456デフォルトの名無しさん:04/09/01 08:37
(455続き)
この方法で処理を行うと、一見するとデータが読み込めているように
見えるのですが、実際に読み込まれたデータは、0x0a のデータが
0x0d,0x0a に置き換わってしまい元のサイズより大きくなってしまい
ます。どうやらテキストデータのCRLF置き換えが勝手に行われている
ようなのですが、この問題を回避する方法はありますでしょうか?
よろしくおねがいします。
>>452
getAppletContext()をコンストラクタじゃなくてinit()で行う かな。
コンストラクタ実行時点ではAppletStubが設定されてないから。

>>454
元々Shift_JISやWindows31Jに含まれる文字しか入ってこない
前提があるのならgetBytesして判別もありだと思うけど、まあICUみたいな
ライブラリ使うのがまともじゃないかな。

>>455
それ、元のCGIからは確実に0x0aで吐き出されているの?
他の手段で確認した?
458457:04/09/01 08:54
ほんとはcontent-type: textのコンテンツは改行
コードは<CR><LF>ってことになってるから0x0aで
送ってもらうこと自体がアレ。みんな守らないから
クライアントも0x0aも想定してコード書かないと
いけないけどね。
459454:04/09/01 09:47
>457さん

それはこんなやつでしょうか。

public boolean byte_str_check( String i_str_data)
{
int str_len1 = i_str_data.length();

//エンコード
try {
i_str_data = new String(i_str_data.getBytes("8859_1"), "Shift_JIS");
} catch(Exception e) {
return false;
}
//lengthの比較処理
}

こちらは試してみたのですが、GetBytesでうまく全角文字に変換されません。
引数に与える文字コードが間違っていますか?
460454:04/09/01 09:49
>457さん

それはこんなやつでしょうか。

public boolean byte_str_check( String i_str_data)
{
int str_len1 = i_str_data.length();

//エンコード
try {
i_str_data = new String(i_str_data.getBytes("8859_1"), "Shift_JIS");
} catch(Exception e) {
return false;
}
//lengthの比較処理
}

こちらは試してみたのですが、GetBytesでうまく全角文字に変換されません。
引数に与える文字コードが間違っていますか?
461454:04/09/01 10:01
>457さん

それはこんなやつでしょうか。

public boolean byte_str_check( String i_str_data)
{
int str_len1 = i_str_data.length();

//エンコード
try {
i_str_data = new String(i_str_data.getBytes("8859_1"), "Shift_JIS");
} catch(Exception e) {
return false;
}
//lengthの比較処理
}

こちらは試してみたのですが、GetBytesでうまく全角文字に変換されません。
引数に与える文字コードが間違っていますか?
3連続で荒らすとはやるな
463デフォルトの名無しさん:04/09/01 11:27
455 です。 > 457 氏
すまんす、ご指摘の通り、CGI(Perl)側の問題のようでした。
Win上でローカル試験してるんですが、きちんと binmode の
出力を指定しているにも関わらず、0x0d,0x0a 変換していま
した。Linux 上でリモート試験したら正常に動きました。
以後は Win & Perl の問題なのでそっち方面で解決します。
ご指摘感謝&吊ってきます。
vectorでオブジェクトを追加した場合、vectorにはオブジェクトへのポインタが入るのでしょうか?
それとも追加するオブジェクトのコピーが生成されるのでしょうか?
>>464
ポインタが入る
vectorと小文字で書かれているからSTLのスレか何かと思ってしまった。
内部では配列に代入しているだけなので、あなたのいうポインタです。

コピーを生成して代入していると仮定すると、Vectorに格納されるすべ
てのインスタンスは、Cloneableを実装しているか、Serializableを実装
しているか、といった限定が付きそうなものですが、実際にはそうでは
ありませんね。
467414:04/09/01 13:44
>420、ご報告までに、生で叩くってのは書いた本人も意味わかりません。無視してください
<target name="javadoc">
<javadoc destdir="${docs}"
author="true"version="true"
locale="ja"sourcepath="src"
charset="Shift_JIS"encoding="ms932"docencoding="ms932"
maxmemory="256m"access="private"failonerror="false"
splitindex="true"windowtitle="Java 2 Platform, Standard Edition, 1.5.0">

<packageset dir="src"><include name="**/**" /></packageset>
<doctitle><![CDATA[<EM><b>Java<sup><font size=-2>TM</font></sup> 2 Platform<br>Standard Ed. 5.0</b></EM>]]></doctitle>
</javadoc></target>

[javadoc] パッケージ javax.imageio.spi のソースファイルを読み込んでいます...
[javadoc] javadoc: java.lang.OutOfMemoryError: メモリを増やしてください。
[javadoc] たとえば、Sun の classic もしくは hotspot VM では、-J-Xmx32m のように
[javadoc] -J-Xmx オプションを使用します。
[javadoc] 61 errors
[javadoc] 224 warnings
BUILD SUCCESSFUL
Total time: 41 minute 35 seconds
お亡くなりになります。何も作られません。<include name="org/**" />でまわすと
19 errors
3808 warnings

BUILD SUCCESSFUL
Total time: 13 minutes 11 seconds
なんかエラーは出ますが、最後までいきます。
これは完全にスペックの問題ですね?指定してる256mも実際256しかないので150mぐらいしか使えないんじゃないかと、PC100のメモリー最近はもう売ってないですし、困りました。当然かなりスレ違い野郎ですね。
入れ食いエラーの内容は、"assert はキーワードなので識別子として使うことはできません。"でした。
おぉ、そっか。
だとするとArrayListなんかもポインタか
ちょいとコレクションフレームワークを復習しよう
>>465-466
ありがとうございます。

mallocが使えないんで苦労していましたがこれで何とかなりそうです。
>>468
そのまえに、Javaの参照を勉強しなおせ。
Javaでmallocとか意味わかんねぇ・・・
Cは知ってるんだぞ、というささやかな主張だ。
言語別に勉強できてないことを露呈したわけだが。
というか、Cでもムダにmallocしてそうな悪寒。
474デフォルトの名無しさん:04/09/01 20:32
文字のデータを切り取るメソッドを作りたいのですが
下のようにしているとスタート値が0で終了値が30の時には
30文字を取りに行ってしまいます

30文字ではなくて30byteで取りたいのですがどのようにすればいいのでしょうか
ご教授お願いします

返り値はStringで返したいです


String getSubData( String str, int s, int e ){
 String substr;
 substr = str.substring(s,e);
 return substr;
}
getBytesする。
"hoge".hashCode()のように文字列リテラルのハッシュ値等は定数式にはなれないのでしょうか?
static finalで宣言してもinterfaceで実装してもコンパイラに定数式じゃないと怒られてしまいます
477デフォルトの名無しさん:04/09/01 20:55
>>475
こういう人って文字コードとか文字幅とかどう考えてるんだろ?
478474:04/09/01 20:58
たとえば帰ってくるデータが

0000あいうえおかきくけこ123asdああああ

みたいな文字列で

00
00あいうえおか
きくけこ123
as
dああああ

の様に切り分けたいんです、、さっきのちょっと直してみたんですが全然ダメでした・・・

byte[] substr;
substr = str.substring(s,e).getBytes();
return substr.toString();
>>478
 長さをbyteで計算して切り出したいのに、getBytesする前に
substringしたら意味ないだろう。あとbyte[]からString
にもどすときはStringのコンストラクタ使う。
 でもさ、474のやりたいことは、多分こういうことじゃないと
思うけどね。
480デフォルトの名無しさん:04/09/01 21:13
ちょっとやりたいことが明確になってないので書いて見ます

切り分ける元の文字列はネットワークから取得してきたString

単純にsunstringすると30文字取ってきてしまうのでアレ

byteで30byte取ってくる、マルチバイト文字列が入っていても可能でなければならない

メソッドからreturnするときはString型で返したい。


ってな感じなんですけども。。。
まあおそらく日本で主に使われている環境でいわゆる半角文字を30文字
拾ってきたいってことなんだろうなあ。手抜きするならShift_JISに
変換して自前で切り分け処理だろうけど、ちゃんとするならICUかな。
482デフォルトの名無しさん:04/09/01 21:20
>>478
元のデータの文字コードは気にしなくていいのか?

byte[] sbyte = str.getBytes("エンコーディング入れる");
byte[] pbyte = new byte[(e - s)];
for (int i = s, j = 0; i < e; i++, j++) pbyte[j] = sbyte[i];
return new String(pbyte, "エンコーディング入れる");

だいたいこんな感じ。
アプレットを使っていて、JDK1.4.2_05にバージョンアップしたら
java.security.AccessControlException: access denied (java.lang.RuntimePermission charsetProvider)
とエラーが発生するようになりました。
どうしたら解消しますか?
ご教授お願いします。
484474:04/09/01 21:30
ありがとうございました!!!

>>478様のソースで完璧に問題なく動きました

ちなみにエンコーディングはサーバーで処理するんで考えなくても大丈夫です。。。

みなさまありがとうございました。
>>484 30byte目がマルチバイトの1バイト目だったらどうするとかなんも考えてないのね。
まあ474の視点で問題ないならいいや。
486474:04/09/01 21:37
サーバー処理で30バイト目にはマルチバイトの1文字目は来ない設定でやってるので大丈夫です

度々説明が足りませんでした、、、とにかくありがとうございました!
487デフォルトの名無しさん:04/09/01 22:45
なんで Swing の入力検査ってイベントじゃないんですか?
JComponent#setInputVerifier(InputVerifier iv) で入力検査を実装できますが、
なぜ JComponent#addInputVerifyListener() のようにしなかったのでしょうか?
イベントになっていないからだと思いますが、ほとんどの IDE の GUIエディタが
この入力検査のスケルトンを吐いてくれません。めんどくさいです。
>>487
バグパレードにRFEよろ。
まぁ1.3から導入と言うところからして完璧後付だし、
setなのでプロパティのところで簡単に出来るだろ
490デフォルトの名無しさん:04/09/02 02:17
iアプリですが、低レベルAPIでgifアニメの使用はできますか?
491デフォルトの名無しさん:04/09/02 06:45
おまいぐらい低レベルだと無理
492デフォルトの名無しさん:04/09/02 06:53
>>490
すれ違い

【初心者歓迎】iアプリ相談室
http://pc5.2ch.net/test/read.cgi/tech/1089530578/
byte配列 byte[] をStringに変換するには
どうすればいいのでしょうか?

初歩的な質問ですいません。
>>493
String a = new String( bytes[] );
>>494
ありがとうございました

あと一つ申し訳ございませんが
byte[]として作った配列の長さを調べるにはどうすればいいのでしょうか?
Byte[] by = strbuf.toString().getBytes();
としてbyte配列を作ったとしても、そのbyte配列の長さがわかりません。
Stringの文字列とは異なる部分が出てくるはずですから。
>>495
int len = by.length

Javaを初めから勉強し直せっていうか、勉強中?
Java関連の本とか読んでないのか?
>>496
ありがとうございました
助かりました
498デフォルトの名無しさん:04/09/02 12:35
Java関連の質問ということでここに書きます。

Java歴7年、2ch歴1年の中年オヤジです。
なぜ、2chでは Null Pointer Exception.(ぬるぽ) が流行っているのですか?
IE経由で見ても、アプレットやJSPを使っている気配はないし、
2chブラウザ?でも、Javaでできているものはなさそうだし。

それに、こんなに多くの人が集まる2chで
Javaプログラマーがそんなにいるとはとても思えません。

2chを見ていれば、いつか分かると思って一年。
結局疑問は深まるばかりでした。
調べもしないでだまーって待ってたんだ。
歴が長くなるだけで無能な人なんだろうな。
500デフォルトの名無しさん:04/09/02 12:41
ぬるぽ
>>498
マ板で聞け
>>499
無駄な知識は増えました。

プログラム系のスレの特徴は書き込みを見て、
あなたみたいに技量をプロファイリングする人が多いです。
これは、他の板には少ない大きな特徴です。
人付き合いが下手で理屈っぽい人が多いという、
プログラマーの傾向がよく出てます。
>>501

有り難うございます。
行ってきます。
>>502
プロファイリングというのは>>502のようなやつですか。
505デフォルトの名無しさん:04/09/02 13:00
ぬるぽ
なんか使ってる奴は童貞でハゲ
1年も見てて板違いな質問をするとは・・・
>>502
あなたも相手をプロファイリングしてるということで、人付き合いが下手で理屈っぽいプログラマーの傾向がよく出てるわけですね。
調べずに板違いな質問をし、自分のレスで自爆するおじさんがいるスレはここですか?
509デフォルトの名無しさん:04/09/02 14:43
いま流行りはArithmeticException
510デフォルトの名無しさん:04/09/02 16:21
eclipseの動作が重すぎて使えません。
ちなみに3.0なんですが他に軽いのはないものでしょうか?
511デフォルトの名無しさん:04/09/02 16:26
メモ帳
512デフォルトの名無しさん:04/09/02 16:26
vi
513デフォルトの名無しさん:04/09/02 16:33
>>511,512
ですよね…。
>>510
自分で作っちゃえ
>>513
マシンの増強は選択肢に無しか?
516510:04/09/02 16:58
>>514
プログラムも初心者なもので。

>>515
お金がないんです。
>>516
初心者ならエディタ+javacで頑張るのもいいんじゃないかな。
519518:04/09/02 17:16
http://java.sun.com/j2se/1.4.2/ja/download.html

これを忘れてた。NetBeans
>>519
netbeansも重いじゃん
eclipse が重い? バカ言うなって。
eclipse が重いってことは、作成したプログラムも重いってこった。
素直にパソコン買い替えとけ。
たぶんwin32ネイティブも最近のアプリならヘビーすぎてきついだろうな
もちろんIEは3までだよな
>510
DevBoosterつーのがあるぞ。なかなかいい。
524510:04/09/02 19:46
>>517

初めはそれで頑張らないと勉強にならないっていうのも見たんですけど、
やっぱりエディタでしこしこ書くのは辛いんですよね。まあそんぐらい頑張れって話なんですが。

>>518

有り難うございます。試してみます。

>>520

netbeansも重くて無理でした。


525510:04/09/02 19:47
>>523

有り難うございます。早速調べてみることにします。
メモリぐらい差せ。
NetBeansは192MBからだぞ。使えるのは。せめて128MB。
ただ、メモリ128MBあって重いといってるなら、我慢して使え。

補完もないエディタでしこしこと無駄な努力するのは、べつにJavaの勉強にはならないよ。
javacでコンパイルも、コマンドプロンプトの勉強にはなるだろうけど、あまりJavaの勉強とは関係ない。
使うライブラリをちょっと増やすとjavacはめんどくさくなるし、antは初心者が最初から使うにはどうかと思うし。

単純な入力ミスで悩むなら、補完やエラー表示のあるエディタ使って、他のことで悩む方が有意義。
527510:04/09/02 20:16
>>526

確かに…。入力ミスで何回か悩んだ事あります。

ちなみにメモリは64MBです。終わってます。
>>527
窓から投げ捨てて新しいマシン買え
もしくはエディタで我慢しろ
eclipse 3は2に比べてけっこう重いと思う。
少しの間だけど反応なしに陥るときがしばしばある。
結局2に戻した。
メモリは256MB
530デフォルトの名無しさん:04/09/02 20:37
3を今使うことないじゃん
マイナーバージョンがあがるまで待とう
>>529
NetBeansはバージョンあがるたびに軽くなるのにね。
NetBeans4も、なんとなく軽くなった気がする。
532デフォルトの名無しさん:04/09/02 22:13
>>529
Eclipseには将来IBM JDKが搭載されるらしい。
けど、3.0で何を使ったら重たいのだ?
533531:04/09/02 22:17
念のため補足しておくけど、入力のレスポンスは、NetBeansは仕組み的にEclipseには敵わないけどね。
>>532 もうIBM JDK抱き合わせのeclipse、配布始まってるよ。
NetBeansって内部で独自のイベント回しだっけ
あれなくなればかなり早くなるのになぁ
SwingのシステムLAFになった3.6はだいぶいいやね
J2SE5のネイティブLAFで動かせばどうなるか激しく気になるけど

536デフォルトの名無しさん:04/09/03 02:02
質問です。
アプレット上からディスク上にファイルを出力しようと試みたんですが、
アクセス権限エラーが発生してうまくいきませんでした。
調べた結果、ポリシーファイルをクライアント上に用意されてあるらしく、
それにアクセス権限を追加し、うまくいきました。
問題は、JavaScriptからアプレットを呼び出したときのみ、
なぜかうまくいきません。これは、仕様なのでしょうか?

537デフォルトの名無しさん:04/09/03 02:07
Apache+TomcatでWebサーバーを構築しています。
なんとかFullGCを起こしたいのですが良い方法はありませんか?
タブ区切りのテキストファイルの、例えば Matrix.txtで
ab
11001
21002
31003
... ...

を配列形式で
[a][b]
[1][1001]
... ...

と読み込むにはどうすればいいでしょうか?
最終目標は、1+1001,2+1002,...と計算させたいと思っています。
※縦長ですみません
539デフォルトの名無しさん:04/09/03 07:23
テキストを一行ずつ読み込んで
java.lang.String#split(regex);
で切ればいいんじゃね?
>>529
それは俺も強く実感した。
P3 866MHz Mem256MByte のマシンに
Eclipse 3 を入れてたとき。
お前らPC買い換えろ。IBMの最新のに。
542デフォルトの名無しさん:04/09/03 10:56
>>538

ライブラリーの StringTokenizer がお勧め。
google 検索すれば、解説サイトがいっぱいHitするから。
543510:04/09/03 10:58
>>523

DevBooster軽かったです。しばらくこれを使ってJavaの勉強をしてみようと思います。
>>535
激しく気になるなら試せと・・・
まだRCだからなんとも
java.lang.Voidってなん?なに?なぜ?java.lang.Nullはなくて?
戻り値なし(返値の型がvoid)のメソッドをリフレクションで扱うときに、
java.lang.reflect.Method#getReturnType()が返すくらいかな。
>>538,>>542
勝手に作ってみたw

import java.util.*;
public class StringToken{
public static void main(String[] args){
String[] str=new String[]{"a\tb","1\t1001","2\t1002","3\t1003"};
String[][] matrix=new String[3][2];
int i=0,j;
StringTokenizer st;
for(i=0;i<3;i++){
st=new StringTokenizer(str[i],"\t");
for(j=0;j<2;j++){
if(st.hasMoreTokens())matrix[i][j]=st.nextToken();
}
}
for(i=0;i<3;i++){
for(j=0;j<2;j++){
System.out.print("(i="+i+",j="+j+")["+matrix[i][j]+"] ");
}
System.out.print("\n");
}
}
}
549548:04/09/03 19:58
Split版作って試してみたら、自宅PCはJ2sdk_1.3だった。。。_| ̄|○
>>545
それでも、激しく気になるのなら試せ、と。
そして結果を教えてくれ。w
551デフォルトの名無しさん:04/09/03 23:25
>>538
たぶんStringTokenizerを使わなきゃもっと短くなるはず。
がんばって5行にしてくれ。健闘を祈る。(違

import java.io.*;import java.util.*;class z{static public void main(String[]a)
throws Exception{File f=new File(a[0]);byte[]b=new byte[(int)f.length()];new
FileInputStream(f).read(b,0,(int)f.length());StringTokenizer t=new
StringTokenizer(new String(b),"¥t¥n");String[][]c=new String[(t.countTokens()/2)
][2];int[]x=new int[2];for(int i=0,j;t.hasMoreTokens();i++){for(j=0;j<2;j++){
c[i][j]=t.nextToken();x[j]=Integer.parseInt(c[i][j]);}System.out.println(x[0]+
"+"+x[1]+"="+(x[0]+x[1]));}}}
>>551
win対応で StringTokenizer t=new StringTokenizer(new String(b),"\t\r\n");
553デフォルトの名無しさん:04/09/04 04:13
>>551
6行w

import java.io.*;import java.util.*;class z{static public void main(String[]a)
throws Exception{File f=new File(a[0]);int i=0,j,l=(int)f.length();byte[]b=new
byte[l];new FileInputStream(f).read(b,0,l);StringTokenizer t=new StringTokenizer
(new String(b),"¥t¥n");String[][]c=new String[(t.countTokens()/2)][2];int[]x=new
int[2];for(;t.hasMoreTokens();i++){for(j=0;j<2;j++){c[i][j]=t.nextToken();x[j]=
Integer.parseInt(c[i][j]);}System.out.println(x[0]+"+"+x[1]+"="+(x[0]+x[1]));}}}
554546:04/09/04 05:18
>547
java.lang.reflect.Method#getReturnType()なるほど
リフレクションっての理解に時間がかかりました。もう5時です。
これってすさまじくないですか?いやー聞いてみるものでした。すんばらしい情報ありがと
おもしろくて試しに色々やっちゃいましたよ。結論は多用すると地獄ですが
これ以外に利用法ないです?さらっと探すとないんだけど、もしVoidってこれだけの為にあるの?
さてもう5時です。
>>523 >>543
あの吐き気がするほどのセンスの悪さに耐えられるなら
こんにちは

AWTにCanvasがありますよね
このCanvasをJPanelにaddして、そのJPanelをJScrollPaneにsetViewportViewしたんですが、
スクロールさせると、スクロール範囲外にもCanvasの内容が描かれてしまいます。

Graphicsクラスを使い描画できるSwingのクラスのクラスはないのでしょうか?
おそらく、AWTとSwingとがかみ合わないからだと思うのですが。
557556:04/09/04 10:06
//JPanel
jP = new JPanel();
jP.setPreferredSize(new Dimension(1000,1000));
jP.setBackground(Color.BLUE);
jP.setLayout(null);

//Canvas関連の初期化
mc = new MyCanvas();
mc.setBounds(100,100,200,200);
mc.setBackground(Color.CYAN);
jP.add(mc);

//JScrollPane関連の初期化
setViewportView(jP);
558デフォルトの名無しさん:04/09/04 10:29
>>556
普通にJPanelに描画できるよ
CanvasのかわりにJPanel使えばOK
>>539
そんなやり方するんだったらStringTokenizer使った方がいいかと思われ。
ガイシュツだった
561556:04/09/04 10:54
>>558
ご返答ありがとうございます

JPanelからgetGraphicsでオブジェクトを取り出し描画したんですが、
NullPointerが発生してしまいます。
どうしてなのでしょうか?

Graphics g;
g = jP.getGraphics();
g.drawLine(10,10,100,100);
562デフォルトの名無しさん:04/09/04 11:06
>>561
Graphicsは、paintComponent()のの引数からとる。
JPanelはサブクラス化しないとダメだよ。
>>556
JComponent
564556:04/09/04 12:33
>>562
ご返答ありがとうございました

解決しました。
初歩的な質問に答えていただきまして
本当にありがとうございました。
>>546

似たようなところでは、Integer.TYPEみたいなのがある。

Class#getMethodでMethodオブジェクトを取ってくるときは
同一名で型の異なるメソッドを区別するために引数の型
を表すClassの配列をあたえてやるわけだけど、このとき、
int foo(int i)とint foo(Integer i)を区別するために、
それぞれ Integer.TYPE と Integer.class を使う。

TYPEを使うのはそれくらいかな。voidは引数になりようが
ないので、返値の型くらいでしか需要はないです。
566デフォルトの名無しさん:04/09/04 18:27
すいません、質問です。
Java Beans の PropertyEditorSupport クラスを継承する形でプロパティエディタを自作しています。
getCustomEditor() を使って GUI エディタを表示させるところまではできたのですが、
ここで変更した値というのはどうやって呼び出し元に戻せばいいのでしょうか?
firePropertyChange 使っても何故か反映されない・・・。

テスト環境は NetBeans 3.6 です。よろしくお願いします。
567デフォルトの名無しさん:04/09/04 18:54
>>566
PropertyChangeListenerを登録しる
568デフォルトの名無しさん:04/09/04 21:02
すいません、質問いいですか?
前にディスプレイデバイスが破損して修復した後から
アプレットが表示されなくなってしまいました。
sun javaを入れたり、設定はすべてあわせたのですが
全然直らないし何が原因なのかさっぱりです。

ちなみに東芝、ダイナブックの
動作環境がwinMEのIE6です。
うん、なんていうか板違いだよね。
すいません、スレ違いでしたか…。
571デフォルトの名無しさん:04/09/04 21:20
>>567
レスどうもです。

結局のところ PropertyEditorSupport クラスを継承したクラスの中に(内部クラスとして)
カスタム GUI を実装してそれを getCustomEditor() で返す、っていう手を使ったら
上手くいってしまったんですが、どうなんでしょう、、、
なんか根本的な解決になってないというか、、、。
Javaほどプログラミングしやすいものは見たことがない。
すごいよJavaは。
573デフォルトの名無しさん:04/09/04 22:09
RMIで教えてください。
codebaseをftpにて定義したいのですが、この場合ユーザ名、パスワードを指定して
URLを記述することは可能ですか?
また、クライアント〜サーバ間にて異なる物理ディスク環境の場合、http以外だと
どのような手段がよいでしょう?
574デフォルトの名無しさん:04/09/04 22:10
StackTraceの読み方がわかるサイトってありませんか?
だーっと出てくるけど、何のことかサパーリわからないので。
あれがわかるとデバッグがやりやすくなるんでしょうか?
読み方もなにも、
Exception in thred "スレッド名" 例外クラス名: 例外メッセージ
at 例外が発生したクラス名.メソッド名(それを含むファイル名)
at ↑を呼び出したクラス名.メソッド名(それを含むファイル名)
at ↑を呼び出したクラス名.メソッド名(それを含むファイル名)
...(以下繰り返し)
だけだろうに。
>>575
それはそうなんですけど、それをデバッグにどう生かしたらいいかが
よくわからんですよ
>>576
デバッグっていうか、何がどこで起こってるかわかるだけ。
578538:04/09/04 23:51
> タブ区切りのテキストファイルの、例えば Matrix.txtで
a b
1 1001
の質問でしたが、542のカキコがあった時点で StringTokenizerクラスの
nextToken()を使って書いちゃいました。
 
539,542,548,552,553,554 さん、ありがとうございました。
579一流プログラマー:04/09/04 23:54
ヴぉけども!MSの仕組みさえわかればなにもダッシュだろが!!
580デフォルトの名無しさん:04/09/05 00:28
>>572
逆に言えば、最近になってようやく使える言語ができたって事で
振り返ってみると、これはちと驚きだな。
JAVA自体もようやく使える形になったのは1.2からだし、それまでの
主流言語はなんとC++。 しかし、STLは1999年前後にようやく
正式登録されてるという始末。
大昔から星の数ほどプログラミン言語は存在してるのに、まともなのは
全然ないとは、やっぱり有志や研究所で作るのはダメで、それが即
利益に直結するような営利企業が作らないとダメって事なのか。。。
>>580
Javaがその時期にでてきたのは基礎理論の発展によるだろが。
同じような時期から、Rubyなど、個人が作った使える言語も増えている。
もちろんある程度の市場性を持って使い物になるためには営利企業主体である必要があるわけだが、それは当たり前の話だ。
会社の生死にかかわるからなぁ
>>581
オブジェクト指向言語の実用化は、1997〜8になってようやく完成されたと
いう事なのだろうか。
海外じゃsmalltalkは結構メジャーだったとはいえ、JAVA登場以前の
OOPでもっともメジャーだったのは、結局エセOOP言語のC++だった。
プログラミング言語の発達は想像以上に遅いな。
>>583
言語の前に、コンポーネント技術の壁の方が大きかったのではないかと。
>>583
自分がメジャーになってる言語しかみてないだけ
>>577
場所を確かめてくしかないってことか
ありがと
>>586
そんなことは言ってない。
デバッガ使え。
>>585
メジャーになってない言語はうんこ。自己満足でしかない。
>>588
言語をメジャーにして金儲けするのは自己満足ではないのか?
言語談義はスレ違いです(はぁと
591538 & 578 です:04/09/05 05:56
再びアドバイス願います。
 例えば次の5個のファイルと、その中身が
Txt1.txt 中身:12 34
Txt2.txt 中身:56 78
Txt3.txt 中身:90 12
Txt4.txt 中身:34 56
Txt5.txt 中身:78 90

となっていたとき、それぞれの中身の足し算を
12+34=46
56+78=134
...

となるように、ファイル単位で連続して行うにはどうすればいいでしょうか?
(ファイルの個数だけインスタンスを発生させるという考え方でいいので
しょうか?)
>>591
なんのインスタンスを発生?させるつもりだ
インスタンスは発生するもんじゃないし。
593デフォルトの名無しさん:04/09/05 07:25
>>593
そんなに揚げ足とるなよ
生成と書きたかったんだろ

>>592
それでいいけど、Javaでやる意味がないんじゃない?
なんかのスクリプト使えば?
たとえば、awkならこんな感じ

#!/usr/bin/awk
{print $1 "+" $2 "=" $1 + $2}

使い方は
awk -f add.awk Txt*.txt
594デフォルトの名無しさん:04/09/05 08:53
>>573
FTPのURIにユーザ名とパスワードを含める書式はこんな感じ。

ftp://yourname:[email protected]/pub/

でも、JavaのライブラリってFTP対応してた?
>>593
揚げ足というか・・・ケアレスミスじゃないだろ、明らかに。
どうみても、インスタンスあたりの理解不足だ。
勝手にファイル数分繰り返せっちゅうねん。
596573:04/09/05 09:47
>>594 そうなのです、その書式だとExceptionが・・。
どなたか、RMIでcodebase指定をftpでやった人いません?
やっぱanonymousでしょうか。。
597591(538&578 )です:04/09/05 11:12
正規の表現では「インスタンスの生成」ですね。失礼しました。

>>593
スクリプトて「シェル・スクリプト」のスクリプト?聞いたことはあります。
ところで「awk」って何ですか? Googleで調べる際には「スクリプト awk」
十分ですか?
僕が理解できる範囲のものであれば、awkとやらでやってみます。
598597への追加:04/09/05 11:17
でもやっぱ、Javaで収まるならそうしたい。
>>597
つうか、キーワードわかってるなら調べろよ、と。
ていうか、勝手にファイル数分繰り返せと。
600デフォルトの名無しさん:04/09/05 12:31
>>597
別にawkを使えっていってるわけじゃないよ
perlでもrubyでもすきなもんを使えばいいけど
例えばperlなら
#!/usr/bin/perl
while(<>) { ($x, $y) = split; printf "%s+%s=%s¥n", $x, $y, $x+$y; }
って感じでスクリプト系だとお手軽でしょ
決まった形式のデータを足し算したいだけならこれで十分かなという話
>>591
import java.io.*;
public class ReadAndCalc {
public static void main(String[] args) throws IOException {
for (int i = 1; i <= 5; i++) {
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("txt" + i + ".txt"), "utf-8"));
try {
String[] array = in.readLine().split("\\s+");
System.out.println(Integer.parseInt(array[0]) + Integer.parseInt(array[1]));
} finally {
in.close();
}
}
}
}
String[] array;
try {
System.out.println(Integer.parseInt((array = in.readLine().split("\\s+"))[0]) + Integer.parseInt(array[1]));
} finally {
in.close();
}
行数は変わらんな
try {
String[] array;
System.out.println(Integer.parseInt((array = in.readLine().split("\\s+"))[0]) + Integer.parseInt(array[1]));
} finally {
in.close();
}
今日暇なんだよ
604デフォルトの名無しさん:04/09/05 12:48
>>601
try節不要だからとっぱらっていいよ
>>604
try節ごととっぱらっていいのか?
>>604
イヤン
607デフォルトの名無しさん:04/09/05 15:26
>>598
> でもやっぱ、Javaで収まるならそうしたい。
Javaでawk, PerlやRubyと同じことをしたければ
Jakarta OROを使うことをおすすめしまする。
>>605
try節内で強制終了を起こすような事態もおこりえないのに
try-finallyをやっているからいらんということで。

try-catchが本当に必要かどうかはEclipseとかを
使って調べることをお勧めする。
Eclipse3.0の設定でどういうときに警告を出すかを簡単に設定できるので
それを使ってtry-catchが必要かどうかを判断できる。
必要がなければそこに黄色い波線が現れる。
到達不可能な例外、起こらない例外などを警告してくれる。
>>607
標準のじゃだめなんか?
それに、勧めるならGroovyの方が。
>>608
例外が発生しないからといって、try節ごと取り除いて処理を省いてもいいものか。
611デフォルトの名無しさん:04/09/05 15:52
>>608
そうじゃなくて元のプログラムが
throws IOExceptionを定義してるから
いらないだけ
612546:04/09/05 15:55
>>565
またもや仰られた事への理解に時間がかかりました。関心させられるばっかりで、奥が深い。
教えるのうまいね夢中で調べちゃったよ、全てをObjectとして表現でるぜjavaすげー、考え方が広くなった、ありがとう

俺java厨してる?危険?

java.langパッケージってすごい洗練されてんですね。興味がとまんねーのでここから出直してきます。
>>608
BufferedReader#readLine()でIOException起こるよ。
あとRuntimeExceptionも。
throws IOExceptionを外しましょう、と
外したら自分で例外処理かかなきゃなんねーべ
あほか、finallyは要るだろうが。
>>601のtryブロックが何のためにあるのかも理解してないな。
こういうやつが例外セーフでないコードを書くわけだな。
finallyは例外処理とはいいません。でも必須
619597への追加:04/09/05 17:38
600, 601, 602, 603, 604, 605, 606, 607, 608
609, 610, 611, 613, 615 さん有難うございました。
(人名重複の際はご容赦下さい)

無事、希望通りの計算結果が出ました。ただし、当方はJava2(SE)1.3を
使用していますので、split()は使えず、代わりにnextToken()を使いました。

なお、try-finally は付けたままにしておきました。

重ねて御礼申し上げます。
                        |
       ____.____    |
     |        |        |   |
     |        | ∧_∧ |   |
     |        |( ´∀`)つ ミ |
     |        |/ ⊃  ノ |   | 1.3
        ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄    |
                        |
Javaって例外が発生したら問題がおこるプログラム書くのが普通なのか?
throwsあるからtry自体要らないって発想が危ないと思うが。
throwsあるからcatchは要らないならまあまだ分かるが。
622デフォルトの名無しさん:04/09/05 18:11
スコープ内で開いたファイルディスクリプタは
スコープ抜けたら自動的に解放されますが?
>>621
ってか、こんな使い捨てプログラムで例外発生しても、問題なんか起こらない。
スコープ抜けるが参照がなくなるの意味ならいつかはね。
>>622
この場合のスコープとはなんですか?
この場合のファイルディスクリプタとはなんですか?
>>621
使い捨てじゃないプログラムを書いたときに改めて問題になるだけ。
こんなやつは腐るほどいる。

ここまでの流れで、使い捨てだから問題ないという理解に見えたか?
俺には使い捨てだろうが重要なプログラムだろうが関わりなく「不要だ」にみえたが…
>>626
> 使い捨てだろうが重要なプログラムだろうが関わりなく「不要だ」にみえたが…

極端なやつだ。
628601:04/09/05 18:41
誰かまとめろよ
629デフォルトの名無しさん:04/09/05 18:42
ようするに、使い捨てだろうが何だろうが全力投球のコードを書けということだな
おまえのいうことはわかったよ
俺は使い分けるけどな
>>628
例外処理は、作るものの性質によって使い分け。
以上。
ちげーよ。
使い捨てだったらそんな処理要らんて書くんなら、
ちゃんと「使い捨てだから不要なんだ」ってことが分かるようにかけよってこった。
誰が常に全てを考慮せにゃならんて書いた?

>>627
これに関しちゃ、>>621の言ってる内容についてじゃなくて、
これまでの>>604-611辺りの話について書いてるんだよ。

どう読んだって、「今回は使い捨てだから気にしなくていい」って話じゃないだろ。
どう考えても、一般的な話としてこのコードならtryは不要だって書いてるだろ。

これを読んだやつがどう理解するかといえば、
throwsで列挙してる例外はcatchしなくていいからtryは不要だってなってしまうんだよ。
同意
633デフォルトの名無しさん:04/09/05 19:07
リフレクションを使い、Class型のオブジェクトから
public static finalで宣言されているフィールドの値を
とってくることはできないでしょうか?

Class cl=getClass();
Field publicField=cl.getField(PUBLIC_STATIC_FINAL_FIELD_NAME);
String str=(String)publicField.get(cl.newInstance());

のようにnewInstanceを使えばもちろんとってこれるのですが
staticなフィールドはインスタンスを生成しなくてもとってこれる
フィールドなので、何か腑に落ちません。
newInstanceを使わないでとってくる方法はないのでしょうか?
>>631
そんなもん処理による。
>>633
null渡せばいいの。
636633:04/09/05 19:20
633ですが633の質問にちょっと関連した質問を・・。
実は、633は
ServletのFilterでリクエストされているサーブレットの
特定の名前で宣言されている
public static finalなフィールドの値を読み
その値によって動作を振り分けるというようなことをしているのですが
この、そもそもリクエストされているサーブレットのClassを特定し
Class型のオブジェクトを生成するところもちょっと苦労しています。。
現在はConstantクラスで
/** Servletマッピングパス */
public static final String SERVLET_MAPPING_PATH = "/servlet/";
と宣言しfilterクラスで
Class cl = Class.forName(request.getServletPath().replaceFirst(Constant.SERVLET_MAPPING_PATH, ""));
とし、
http://DOMAIN/CONTEXT-PATH/servlet/foo.bar.Baz
といったurlでfoo.bar.Bazをとりだす。。。といったことをしています。
これだと、マッピングが完全修飾クラス名であることが制限となってしまい
やはり腑におちません。
いろいろ調べたのですが完全修飾クラス名そのものずばりを取得する方法が見つかりません。。。
デバッグでしらべるとdoFilterでわたされるFilterChainの中の
servlet.servletClassに格納されているようですが・・・それを取り出す手段。。。ってことになるとおもうのですが。。
解決策ご存知の方ご教授ください
637633:04/09/05 19:23
>>635
あ・・・!そうか!
nullを渡したところできました。
ありがとうございます。
>>636
まずその設計をなんとかしろ
>そんなもん処理による。
んなこた分かっとるって何度言ったら…
640633:04/09/05 19:31
>>638
すいません。。(汗
こういうのはやはり外部ファイルに書き出す、、、とかでしょうか。
641デフォルトの名無しさん:04/09/05 19:36
>>639
おこりんぼさんね
ウフフ
643デフォルトの名無しさん:04/09/05 19:40
>>640
URLとサーブレットのマッピングはweb.xmlでやれるだろ?
なんでそんなことやってんの?
644633:04/09/05 19:50
>>643
>>633をやりたいからなんですね。。
もっとぶっちゃけていってしまうと
対象のサーブレットには
使用するフォームビーンクラスが宣言されていたりします。。
(ここも「その設計なんとかしろ」といわれそうだ・・・)
public static final Class FORM_CLASS = FormSearch.class;
みたいな。。で、これをとってきて
filterでフォームビーンを構成して。。みたいなことをしてます。
strutsだと既に用意されているようなことだとおもうのですが
(strutsは使ったこと無いので詳しくはしらないのですが)
strutsを使えない事情もありまして。。。
strutsだとstruts-configとかで設定するんでしたね、、
そうしろってことかなぁ。。。
645デフォルトの名無しさん:04/09/05 19:53
>>644
Strutsは違うよ
Strutsの場合は単一のServletで受けてから振り分けてる
そうした方が楽だよ
リフレクションのことは忘れて一から設計しなおせ
647633:04/09/05 20:01
>>645-646
自分もそうしたいのは山々なんですが・・。
実はこのプロジェクトには後から入りまして、、
ソースを見て「なんじゃこりゃー」と叫んでしまいました。
フレームワーク的な考えは一切なく各々のコーダーが
各々のやり方でコーディングしていてValidationなんかもしてなかったのです、、、
struts導入を提案しましたがあえなく却下され
(これは私の知識と経験不足のせいですね)
自分は今のソースになるたけ影響を与えずにフレームワーク的なものを
導入することを許されたのみでした。。。
幸運なことにFilterには手を付けていなかったようなので
そこを拠点になんとかいろいろやろうと奮闘しているという状況だったりします。
自分自身もJavaは2ヶ月程度の経験なのでどこまでやれるかわかりませんが。。
648デフォルトの名無しさん:04/09/05 20:03
>>647
サーブレットからサーブレット呼ぶのは簡単だよ
ひらめいた?
大変なのはわかったが混乱に拍車をかけようとしているように思える。
まぁ頑張れ
650633:04/09/05 20:12
>>648
RequestDispatcher経由で取れるかな・・と
言われて今調べましたが。。。
うーんそれっぽいメソッドは無いですね。。。
includeしちゃう、、とか。。?
651デフォルトの名無しさん:04/09/05 20:20
リフレクションから離れろって、、、、
652デフォルトの名無しさん:04/09/05 20:24
そもそも自分でサーブレット作ってもServletContextはどうすんの?
コンテナ管理されてるものに手を出しちゃダメだよ
>>619
2chでいちいち面倒くさそうなお礼レスを返すとは
お前も暇人やなー。
フィードバックだけしときゃええってのによ
>>621
藻前は例外の極意がまだわかってない。
例外でテクニックを検索せよ。
Javaの鉄則、格言、とかの本嫁
655デフォルトの名無しさん:04/09/05 22:07
>>631
そもそもmain()上で動かす時点で例外処理はいい加減でも構わない。
Servlet, JSPにしてもブラウザに表示する部分で
下手にcatchしてprintStackTrace()されても
お客さんに「なんだこれは!? Tomcatのログに何かエラーメッセージがでているぞ! 早急に直してくれ!」
といわれるのがオチ。下手にthrowsとかthrow new とかするとそれをどうにかしろと言われ徹夜が続く。

顧客の為にif文とかを使ってcatch節のなかでわざとreturnするとか、わざとcatch節を空にするということはよくある。
とくに、
そのクラス事態がJSPにforward/redirect転送せずその場でブラウザに出力するServletやJSPや
main()メソッドのように外部から参照され依存されることがないときは
ユーザインターフェース部分は仕方が無くそうするケースがある。

さすがに内部のロジック、依存元クラス、フレームワーク、ライブラリ、Modelの開発ではそういう酷いことはしないが。

JSPの画面遷移で、入力フォームをセッションやパラメータで渡すときはちゃんとcatch節に
エラー、例外、ログ情報をため込んでセッションに入れておくが。
656デフォルトの名無しさん:04/09/05 22:07
「独習java」の最初の例題をコマンドプロンプトを通じてしようとしたのですが、
j2sdkのbinのサブディレクトリのパスの通し方を忘れました
親切な方教えてください
657デフォルトの名無しさん:04/09/05 22:13
>>636
> 633ですが633の質問にちょっと関連した質問を・・。
> 実は、633は
> ServletのFilterでリクエストされているサーブレットの
> 特定の名前で宣言されている
> public static finalなフィールドの値を読み
> その値によって動作を振り分けるというようなことをしているのですが
> この、そもそもリクエストされているサーブレットのClassを特定し
> Class型のオブジェクトを生成するところもちょっと苦労しています。。
> 現在はConstantクラスで
> /** Servletマッピングパス */
> public static final String SERVLET_MAPPING_PATH = "/servlet/";
> と宣言しfilterクラスで
> Class cl = Class.forName(request.getServletPath().replaceFirst(Constant.SERVLET_MAPPING_PATH, ""));
ここでgetServletPath()とするところがあれだな。
URLを取り出したければ
request.getContextPath()を使うだろ普通。
getServletPath()ではサーバ上の絶対パスを拾ってしまいドメインがとれんぞ。
getContectPath()を使えばいちいちString#replaceFirst()つかう必要もなくなるぞ。

>>650
> >>648
> RequestDispatcher経由で取れるかな・・と
> 言われて今調べましたが。。。
> うーんそれっぽいメソッドは無いですね。。。
> includeしちゃう、、とか。。?

おい、forward()はどうした。
sendRedirect()でもいいが、パラメータ渡せないな。
getURL()とかなかった?
>>656
>>1のリンク先wikiを読んだか?
>>633がやりたいことは

ただのリンク張りか?

だったら
request.getContextPath() + / + web.xmlで指定したディレクトリ名とか + サーブレット名

で十分。ドメインなんていらない
あとはweb.xmlをどうするか。
662takka:04/09/05 22:21
はじめまして。質問させていただきます。

ウィンドウ操作中にエラーメッセージボックスを表示させます。
エラーメッセージボックスはモーダルダイアログとします。
エラーメッセージボックス表示中、ウィンドウにマウスカーソルを
当てると、マウスカーソルが待ち状態(砂時計)表示になるとします。
でも、Windowsの場合はマウスカーソルが待ち状態(砂時計)表示になりませんでした。
HPやSolarisといったUNIXではマウスカーソルが待ち状態(砂時計)表示になります。
なぜでしょうか。
OSの仕様なのでしょうか。
>>644
なんでgetClass()を使うんだか。getName()にすればええんでは。
あとはjava.lang.reflectを使って(ry
664デフォルトの名無しさん:04/09/05 22:21
>>662
ロギングAPIかJakarta Log4j, AspectJでログを取れ。
665633:04/09/05 22:23
>>658,661
いや、、、
最終的には単に
chain.doFilter
しちゃうのです。
そのまえにFormBeanのクラスをとってきて
FormBeanをリクエストのパラメータから自動構成して
(ここでValidationもやっちゃうValidationがNGだったら共通入力エラーjspにforwardする)
setAttributeで構成されたFormBeanオブジェクトをセットして
サーブレットではそれをとりだすだけ。。ってなことをやりたいのです。。
いまさら気づいたんだが、>>626>>631で書いてる、
>>621ってアンカーは、>>623の間違いだった…orz
>>665
> >>658,661
> いや、、、
> 最終的には単に
> chain.doFilter
> しちゃうのです。


全然pathとか関係ない話じゃないか
668デフォルトの名無しさん:04/09/05 22:32
>>654例外の極意
おしえてくれ〜
669デフォルトの名無しさん:04/09/05 22:37
Javaの例外はSleep(30000)の代わりに使える。
勉強になりますた。
JavaをWindowsの実行ファイルにする、フリーソフトありませんか
jet
gjc
jetってすげー高ぇ〜・・・
こんなの買うならJBuilder買った方が(ry
674デフォルトの名無しさん:04/09/05 23:58
>>671
run.batというファイルを用意し、
テキストエディタにこう記述する


java クラス名


はいこれでダブルクリックするだけでできあがり
675デフォルトの名無しさん:04/09/05 23:59
>>671
jarで圧縮するときマニフェストファイルを含め
ブートストラップクラスを記述し

拡張子exeで圧縮する。
これでWindows実行ファイルに早変わり。
ダブルクリックするだけで実行できます
ファイルからの読み込みで、読み込むテキストには"|"でくぎってあり数字や文字列が書いてまります。
それらを抜き出して新しいテキストファイルをつくりたいんですが
String tokenizerをつかってnextTokensでそれぞれを取り出した時、
取り出した数字や文字列に配列みたいに変数名で順番に番号をふることはできますか?
>>676
ん?なぜそんなことをする必要がある?
678デフォルトの名無しさん:04/09/06 00:52
いつもabstractがどうたらこうたらというので悩まされています。
ググったり本で調べたりすると「抽象メソッドを持つクラス」「そのクラスの中で実装していないクラス」とありますが
どういう事か意味不明です。


今、以下のようなクラスを作り、main関数がある別のクラスでインスタンス化して使おうとしたんですが
abstractとして宣言しろと言われてしまいます。
(import文省略)

public class Player{
public Player(){
Toolkit toolkit = Toolkit.getDefaultToolkit();
Image image = toolkit.getImage("char.gif");
}
}

何故これが「abstractとして宣言する必要がある」のか教えてください。
クラスファイルを完全修飾クラス名からInputStreamもしくはバイト配列で
読み出す方法はありませんか?

Class#getResourceAsStream(String)

なんでこんなにReflectionが流行ってるんだ?
681デフォルトの名無しさん:04/09/06 01:36
>>678
Playerにはimplementsで何か指定してない?
682デフォルトの名無しさん:04/09/06 01:48
>>681
Runnableを指定してました・・・・
しかし、これが絶対必要なんです。
なんとかなりませんか?
というか何故implementsがあるとダメなんですか?
implements Runnableしたということは、自分か自分のサブクラスで
Runnableで宣言してあるメソッド(public void run())を実装するよ、
と表明しているのと同義。それをしてない以上怒られて当たり前。

ここまで説明させて「なんで?」なんて聞くなよ?
685デフォルトの名無しさん:04/09/06 02:11
>>684
わかりやすい回答をありがとうございました。
runは後で作ればいいやと思ってたのが間違いだった・・・orz
JVMを開始してからの経過時間を取得したいのですが、
どうすればよいのでしょうか?

開始時のcurrentTimeを保持しておいて、取得したい時の
currentTimeとの差を求めるしかないのでしょうか。
それのなにがいやなのか・・・
>>675
拡張子exeで圧縮ってどういうことでしょう?
自己レススマソ
専用ソフトがあるようでした。
ttp://wiredstyle.net/documents/launch_java_app/
>>689
JSmoothというのもあるので、試してみると面白いかも。目に付く機能は以下のとおり。
・JVMの自動検出(Sun JVM、MSJVM、ソフト組み込みなどから選択可能)
・JVMが見つからなかった時に、ブラウザで指定したURLを開く機能
これでJava Pluginのダウンロードサイトを指定すればJVMのインストールが簡単になるはず。

ライセンスがGPLだけど、このソフトで作った実行ファイルはGPLの対象にならないのもうれしい。
691690:04/09/06 12:14
すまん、URLを忘れてました。こちらです。
ttp://jsmooth.sourceforge.net
692デフォルトの名無しさん:04/09/06 13:15
javaでファイル検索プログラムを作りたいのですが、
引数1で調べるディレクトリの指定、
引数2でファイル名やワイルドカード等の検索キーの指定をしたいのですが、
今は正規表現(Matcher&Ptternクラス)を使ってやっているため、
例えば全てのファイル検索なら.*と指定しなければなりません。

WINDOWSのエクスプローラのような検索指定、
*.*なら全てのファイル&フォルダを検索(自分のプログラムでは、*.*だとエラー)
*.javaなら拡張子がjavaの全てのファイル&フォルダを検索、
testならファイル名にtestが入っているファイル&フォルダを検索というようにしたいです。

このような引数指定をできるようにするには、どうしたらいいのでしょうか?
693デフォルトの名無しさん:04/09/06 13:39
>>689
なぜexeにする必要があるのか?
JavaWebStartを使うか、マニフェストファイルに記述してダブルクリックするだけの
起動にどんな不満があるのか?
694デフォルトの名無しさん:04/09/06 13:40
>>692
Javaでファイル検索するなら、Jakarta Luceneがおすすめ
javaでオブジェクト指向を学びたいんですが、
class設計やアクセス制御などをある使う必要がってあまり難しくない程度のw

「課題」を出してもらいたいです。
よろしくお願いします。
>>692
JakartaのOROに、glob(*.javaとかのパターン)をPerl5正規表現に変換する奴があります。
(*.*を全ファイルと解釈するって、ピリオドを含まないファイルはどうなるんだろう?)
697デフォルトの名無しさん:04/09/06 14:19
>>694
出たな!!! ジャカルタ厨!!!
ジャカルタコモンスもいいが、あればかり使うと・・・
>>693
上に挙がってたサイトに各手法の考察が載っているが、それが不満にならない?
ttp://wiredstyle.net/documents/launch_java_app/
正直ちょっと古いかおかしいとは思うけど。
Active-XとJavaPlugin使えばJREは自動的に最新になるんだし、
JWSの別途インストールなんて問題にならない。
サーバの設定云々も実は不要だったりする。

何が何でも「exeくれくれ」には正直辟易するけど、
実行可能JarやJavaWebStartが、問題のまるでない完璧な解な訳ではないので
そんなに目の敵にしなくてもいいと思う。
>>689-690で示したような個性的な機能を持ったランチャー作成ツールもあるんだし、
exeにする利点は大いにある。

まあ、理由が「Javaは遅いらしいのでWindowsネイティブアプリにしたい」とかだったら
あなた同様私もげんなりするわけですが。
antしか使ってないのにJakarta厨言われてもorz
(つーか、antはもうJakartaですらないな)
前に使ったことがあるから知ってただけだよぅ
>>694
それはファイルの内容での検索だと思われ。
701689:04/09/06 14:33
>>690
ソフト紹介ありがd。

漏れも今まで実行可能jarで配布してたんだけどなんかjarのダブルクリックって違和感がある・・・
JWSってのは使い方知らなかったけど面白そうなので今度調べてみます。

そういえばeclipseもjavaで作られてるって聞いてるけど、インストーラー付のexeもjavaプログラムでできるのかな。
エクリプスのexeって、プラグ印を全部クラスパス指定してなんか起動するだけじゃないの?
>>695
現在、クラスは設計するものではなく、存在を調べて使用法を学ぶ
ものなのです。
>>695
インベーダーゲーム作ってください。
ちょっと気になったので質問させてください。
JAVAのSwingはJAVAが持ってる独自UIですよね。
それじゃ、UNIXなどでXが入ってないPCでも、
Swing使ったJAVAアプリを立ち上げると、
それはGUIが立ち上がるんでしょうか?
ありえないと思うけどなぜだろう
>>705
グラフィックカードの管理の機能はない。
708デフォルトの名無しさん:04/09/06 16:12
guiguiたちあがるよ
>>705
KDEもGTKも独自UIだが、Xが入っていないと使えない。
誰かJavaでディグダグつくってくれませんか

自分では作れなかったので

敵が高速でよってくるスピードを少し遅くしたものを

お願いします。
KDEじゃねぇや、qtだった。
Velocity anakia で質問なんですが・・・
Windows上で XML(UTF-8) -> VSL(UTF-8) -> と処理しようとすると
文字化けして、 ???? ってなってしまうんですが、これって velocity.properties で対応するしかないんでしょうか?
713705:04/09/06 16:21
>>707
>>709
なるほど。
やっぱ無理なんですね。
ありがとうございました。

>>708
  _, ._
( ゚ Д゚) …
714デフォルトの名無しさん:04/09/06 16:42
はじめまして、JAVAプログラマーの見習いをやっています。
見習といっても、何ができるでもなく
つい1週間ほど前に会社からプログラマ転向の命令が下りました。
現在は教本を使い(スタートアップJava 技術評論社)
本の通りにプログラムを作ってみたりしていまして
一応、空のウインドウを作るところから初めて
多少本を見ながらですが、if文、for文までは使えるようになりました。
ですが、いまいちしっくり来ません。
なんというか、メモ帳にタイピングの練習をしてるような?気分なのです。
とりあえず、Javaと言うものの概念(クラスやオブジェクト指向)は
なんとなしに解ったのですが、肝心のプログラム自身を
何を作ったらいいのか、どう練習や勉強をしたらいいのか解りません。

先輩の方々はどういう勉強法をされましたか?
またどんなプログラムを作って勉強されていましたか?
馬鹿げた質問かもしれませんが
会社からは「独学で覚えろ」としか言われてませんので
本当に解らないのです;;
よろしくお願いいたします。
>>714

まずは自分では作らず、人のプログラムをいじることから始める
>>714
まず、自分がほしいと思うようなソフトを思い浮かべる。
難しいのは避けて、こういうのあったらちょっと便利〜と思える物。
それを作るために、どういう処理が必要なのか。
どういう事を覚えないといけないのか。
それらを目標に勉強してみては?

もしくは、サンプルとかで載ってる簡単なツールのソースを参考に、
そこから自分の気に入るように改良したりするのも勉強になるし。
717デフォルトの名無しさん:04/09/06 19:45
質問させてください。

JAVAから外部プログラム(UNIXのシェル)を実行して、
その外部プログラムが終了する(戻り値を得る)までJAVA側は待機する
にはどうしたらよいのでしょうか?
718717:04/09/06 19:47

言い忘れました。外部プログラムはCOBOLです。
CORBAでも使うとか。
CORBAですか!
標準のJ2EE APIだけじゃ到底無理なんですか?
>>717
java.util.Process#waitFor
java.util.Process#exitValue


722721:04/09/06 20:04
まちがえた。java.langだからなんもせんで使える。
723717:04/09/06 20:43
>>722
おお!
これならなんかできそうですね!
いや、まだ設計段階なんで、試すことはできませんが、
「できるかどうか」だけ知りたかったんです。
ありがとうございました!
724ヤンス:04/09/06 21:11
マップチップを使ったタイリング表示を上手く行きませんどこかコードの記述が間違っているのでしょうか?
二次元配列の要素数をランダムで入れたときは表示されるのですがコメントで消してある二次元配列の方を使うと、まったく表示してくれません
どの辺が間違っているのか助言の方をお願いしたいです。
img = new Image[2];
img[0] = getImage(getDocumentBase(),"map1.gif");
img[1] = getImage(getDocumentBase(),"map2.gif");
/*
int map[][] ={
{1,0,0,0,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1,1},
{0,0,0,0,0,0,0,0,0,0},
{1,1,1,1,1,1,1,1,1,1},
{0,0,0,0,0,0,0,0,0,0},
{1,1,1,1,1,1,1,1,1,1},
{0,0,0,0,0,0,0,0,0,0},
{1,1,1,1,1,1,1,1,1,1},
{0,0,0,0,0,0,0,0,0,0},
{1,1,1,1,1,1,1,1,1,1}};
*/
map = new int[10][10];
for (int y=0; y<10; y++){
for (int x=0; x<10; x++){
map[x][y] = (int) (2 * Math.random());
}}}
public void paint(Graphics g){
int no;
for(int my=0;my<10;my++){
for(int mx=0;mx<10;mx++){
no = map[my][mx];
g.drawImage(img[no], 32*mx,32*my,this);
725デフォルトの名無しさん:04/09/06 21:12
っていうか書いても10行くらいだろ
なんで試せないの?
726デフォルトの名無しさん:04/09/06 21:41
>>724
その2次元配列を同描画しようとしたの?
727712:04/09/06 21:43
>>712
結局、自分のやりたいことはVelocityのバグに阻まれているらしかったのでパッチを作った。
取り込まれるかわからんけど、VelocityのBugzillaに登録しておいた。
728デフォルトの名無しさん:04/09/06 21:43
>>724
ていうかjava.awt.image.MemoryImageSourceのjavadoc見れ
サンプルコード付きで使い方説明してあるよ
>>724
map[][] の スコープがわからんのやけど、
それはちゃんと paintメソッドで参照できる場所にある?
730ヤンス:04/09/06 22:19
スンマセン何を作っているか書いてませんでした
JAVAアプレットでミニゲームを作っているのです、そこでファミコンとかで
あったロードランナーとかブロック単位でマップを表示するってのをやりたくて・・・

>>725
何度もコンパイルして実行しているのですが・・・

>>726
ゲームで使うマップを描画しようとしてまして、0、が空間で1がブロックって感じで

>>728
ありがとうございます、早速みて見ます!

こんな質問に反応してくださってどうもです、未熟者の上爪垢も溜まっておりますので
731デフォルトの名無しさん:04/09/06 22:24
もし
A a = new B();
ならA型の変数aにB型のオブジェクトを入れるという意味でいいんですか?
継承のところでスーパークラスはサブクラスのオブジェクトを参照できる
ってところで混乱しているんですが・・・
732デフォルトの名無しさん:04/09/06 22:31
初心者の質問で失礼ですが、どうしても迷子になってしまったのでこちらに来ました

"HelloWorld" のプログラムで、コンパイルはできるのですが、実行ができません
環境変数の設定でCLASSPATHの設定がおかしいとのことですが、
「コントロールパネル」→「システム」→「システム環境変数の設定」で
パスの設定の仕方がわかりません
ピリオドを入れればいいという話ですが、、、

ちなみに現在の設定値は
C:\WINDOWS\System32\QTJava.zip
です。
既出のものかもしれませんが、よろしくお願いします
733ヤンス:04/09/06 22:34
import java.applet.*;
import java.awt.*;
public class for2 extends Applet {
Image img[]; int map[][];
public void init(){
img = new Image[2];
img[0] = getImage(getDocumentBase(),"map1.gif");
img[1] = getImage(getDocumentBase(),"map2.gif");
/* int map[][] ={{1,0,0,0,0,0,0,0,0,1},
       {1,1,1,1,1,1,1,1,1,1},
       {0,0,0,0,0,0,0,0,0,0},
       {0,0,0,0,0,0,0,0,0,0},
       {1,1,1,1,1,1,1,1,1,1}};*/
map = new int[5][5];
for (int y=0; y<5; y++){
for (int x=0; x<5; x++){
map[x][y] = (int) (2 * Math.random());
}}}
public void paint(Graphics g){
int no;
for(int my=0;my<5;my++){
for(int mx=0;mx<5;mx++){
no = map[my][mx];
g.drawImage(img[no], 32*mx,32*my,this);
}}}}
734デフォルトの名無しさん:04/09/06 22:35
>>731
何の本呼んでるか知らないけれどその本捨てた方がいいよ
735ヤンス:04/09/06 22:38
>>729
733みたいな感じでコードを書いたのですが、どこか間違えているのでしょうか?
ネットや本等で何度みてもまったく同じに模写したのですが・・・・
ランダムじゃなく、自分で二次元配列に要素数を入れた方を画面に出力させようと
すると駄目なんです
736デフォルトの名無しさん:04/09/06 22:40
>>734
この板その返しばっかりですよね
>732
・ファイル名がクラス名といっしょになっているか見る
・package指定をしていないならCLASSPATHはとりあえずいらない
・javaコマンドを実行するとき、ちゃんとそのディレクトリに移動して実行する
738729:04/09/06 22:52
>>735
配列変数のそういう初期化の仕方って、
宣言時しかできないんじゃなかったっけ?

int map[][] って宣言した場所でしないと駄目じゃない?
>>737
パッケージ指定とCLASSPATH指定は関係ないでしょう。
まぁ、>>732だけの情報で何かいうほうが難しいが。
740デフォルトの名無しさん:04/09/06 22:57
>>735
mapがインスタンス変数とローカル変数で定義されてるから、
ローカル変数が優先されてインスタンス変数は初期化されていない
741デフォルトの名無しさん:04/09/06 22:59
>>732
java -classpath . HelloWorld

または
set classpath=.
したあと
java HelloWorld
742デフォルトの名無しさん:04/09/06 23:00
プロファイリング機能がJ2SE5.0 では以前と比べて速くなったようですが、
正確な秒数で機能を比較することってどうやってやればいいのでしょうか?
お願いします
743デフォルトの名無しさん:04/09/06 23:06
>>731
A a = new B();
が可能なのは、以下の二つの場合
1.BがAのサブクラスである
2.Aはインタフェースで、BがAを実装している

このようにすることで、BのインスタンスをAとして扱うわけだが
Aから継承したメソッドは使えるが、B固有のメソッドは使えなくなる。
こんな馬鹿なことは通常しないので、こんな例を載せるのは糞本。
初心者本じゃなくてアイディア本だったらありかもな。
上手く使えば使える手だし。
745ヤンス:04/09/06 23:25
>>740
出来ました!やはり配列の宣言と代入を違う場所で行っていたのが
悪かったようです、この為にグーグルのリンクの表示文字がどれだけ紫に変わったことか・・・
ありがとうございました。
これで安心して爪垢掃除が出来ます。
>>743
初心者向けのコードとしてはたしかにそうかもしれないが
インターフェースプログラミングとか考えれば糞ってこたぁないでしょう

List list = new Vector();
とかふつーにするでしょ?
747デフォルトの名無しさん:04/09/06 23:57
>>746
俺ならまずしないね
内部で使うのにインタフェースで扱ってどうするのさ
インタフェースってのは対外部向け
たとえばファクトリとかね

X image = XFactory.createX();

public X createX() { return new XImpl(); }

あとはインスタンス変数などで、インタフェースを通して変更がかかる奴

private List list;

public setList(List list) {this.list = list; }

内部で閉じてる変数は、インタフェースで受ける意味ないよ
>>743は、例の釣り師。
先月やたら出没して、最近ようやくおとなしくなったと思ったら
また登場しだすとは。。。
夏休みはもう終わったんだぞ。2学期が始まったのなら2ちゃんで
釣ってないで勉強しる!
749デフォルトの名無しさん:04/09/07 00:04
>>748
違うよばか
インタフェース、日本語訳は界面
外界と内部を分けるための手段だよ
>>747
ああ、独りで作ってる限りはそれでもかまわないよ。
>>748
ああ、そうかそうか
つられた俺が悪かった
>>747
普通にするだろ。
753デフォルトの名無しさん:04/09/07 00:10
>>747
「実行レベル」だけを考えればそうだが、コーディングレベルってのが
あるでしょ。
754デフォルトの名無しさん:04/09/07 00:13
>>752
おまいら、何のために実装クラス作ってんの?
インタフェースで受けたら、protectedメソッドも
privateメソッドも呼べないんだぜ?
publicメソッドだけで内部処理のプログラミングしてんのか。
755デフォルトの名無しさん:04/09/07 00:14
確実に釣りだな。
問題は真面目に質問してる初心者に釣りネタを吹き込むなって事だ。
>>754
意味不明
使用するために必要十分な機能をもつインターフェイスや基底クラスなら
なんらこまらんだろうが。
だいたい、誰も常に実装クラス型を使用しないなんていってない。

>privateメソッドも呼べないんだぜ
あほか、privateメソッド呼ばにゃならん場面でするわけなかろーが。
つうか、いつの間にかprotectedとかprivateとかが絡んでくるような
「内部処理」とやらの話に変わってるな。
すんません、Servletのことで質問したいのですが
とあるサイトからのみドメインでアクセスを
規制させたいのですが、飛んできたページのドメインを取得
するにはどうすればいいのでしょうか?

一応それっぽいのではRequestクラスのgetHeaderからrefereかなんかで
URL丸ごとは取れるっぽいのですが・・・ドメインのみってのは無理でしょうか
758デフォルトの名無しさん:04/09/07 00:39
Refererからドメインを取得すればよいのでは・・・
>>757
Servlet使うならHTTPの基礎ぐらい勉強してください
>>757

URLって書式決まってんだから取れるでしょそれくらい。
java.net.URL のAPI の説明を見るとヒントがかかれている。
>>743
Iterator i = new ArrayList().iterator();
などというのもバカなことなのですね。
762597への追加:04/09/07 06:00
write()を使ったファイルへの複数行の書き込み方が分かりません。
例えばfor文で
 1+2+3+・・・+10=55(式:m=m+1)
 2*2*2*・・・*2=1024(式:n=n*2)
が得られているとき、write()でこれらをファイルに改行の形で書き込むため、
ファイルのオブジェクトをfileを用い、
 file.write(m + "\n" +n)
ではヘンテコな書き込みになってしまいます。

どないしましょう?
763デフォルトの名無しさん:04/09/07 06:38
>>762
FileOutputStream fs = new FileOutputStream("aaa.txt");
PrintStream out = new PrintStream(new BufferedOutputStream(fs));
out.println(m + "¥n" + n);
out.close();
閑話休題:日本とアメリカには借金時計のHPがあるらしい。
(核の時計をもじったもの)

TVで見たが、なんか高速のアクセスカウンターを見ているようだった。
興味がある人は勝手に検索してくれ。
まずは閑話休題の使い方をマスターしたまえ。
>>695
結城浩の「Java言語で学ぶデザインパターン入門」を嫁
767デフォルトの名無しさん:04/09/07 10:26
>>697
> >>694
> 出たな!!! ジャカルタ厨!!!
> ジャカルタコモンスもいいが、あればかり使うと・・・
あればかり使うと? 何だって?
説明よろ
768デフォルトの名無しさん:04/09/07 10:47
>>764
> 閑話休題:日本とアメリカには借金時計のHPがあるらしい。
> (核の時計をもじったもの)


JavaScriptでonLoadしているだけか。
それではリアルタイム性に欠けるではないか。
お主がJavaAppletかJavaWebStartで作り直せ
769デフォルトの名無しさん:04/09/07 11:03
>>698
> >>693
> 上に挙がってたサイトに各手法の考察が載っているが、それが不満にならない?
> ttp://wiredstyle.net/documents/launch_java_app/
> 正直ちょっと古いかおかしいとは思うけど。
ほんとにめちゃくちゃなこといってる。

  Javaで開発したアプリケーションを配布する場合、 「どのようにしてユーザーにアプリケーション
  を起動させるか」といった問題があります。 Javaで作られたプログラム(CLASSファイル)は、基
  本的にはコンソールから実行する必要があるので、 EXEファイルのようにダブルクリックで簡単
  に起動させることはできないからです。 コンソールからしか起動できないのでは、そのアプリケ
  ーションを利用できるユーザーは限られてくるでしょう。

時代の流れに取り残された香具師が書いた説明ですな。JavaWebStartに関しても嘘八百ばかりならべてますなあ。
jarでも引数設定できるし。*BSDではちょい面倒でもWindows環境なら何もしなくても勝手にやってくれるので設定は激しく容易だし。
>>769
アイコン設定できないってのが問題よ

あとwebstartはsandbox内ということで根本的につかいかたが違う

開発者の目とユーザーの目はだいぶ違うということを覚えておくといい
アプリケーションはすべて個別のアイコンがあってデスクトップやスタートメニューに
ショートカットがあるもの・・・と認識している人は多いよ

どっちにしろラッピング程度なんだから目くじら立てることはないんじゃないの?
これを我慢できれば代替も可能・・・ってレベルで満足してくれるところならかまわんけどね
>>770
JavaWebStartなら、アイコン作ってデスクトップやスタートメニューにショートカット作ってくれるし。
>>771
肝心のsandboxってところ見落としてるぞ
eclipseってショートカットが作られたけど、Javaで出来てるんでしょ?
>>773
eclipseは、JVMを起動するexeファイルがある。
まぁ、こういう工夫をすればアイコンは問題なく設定できる。
そいや、引数でVMを動かす javaコマンドも指定できるし。
見た目にこだわるなら、こういう工夫をすればよいという例。
775デフォルトの名無しさん:04/09/07 16:33
JavaプログラムからGnuPGを使用して暗号&復号を行いたいのですが、
復号時などでパスワード入力を求められる時、待ち状態になってしまい入力ができません。
具体的にはInputStreamのreadLine()メソッドで止まってしまい、
プロセスにパスワードが送れていないようなのです。
どなたかわかる方いらっしゃいますか?

OS:FedoraCore1
JDK:1.4.2
gnupg-1.2.2-3使用


Runtime run = Runtime.getRuntime();
Process pro = run.exec("gpg -o /home/hoge/hoge.txt /home/hoge/hoge.asc");

PrintWriter pw = new PrintWriter(pro.getOutputStream(), true);
pw.println("hogehoge");
pw.flush();
pw.close();

BufferedReader inBr = new BufferedReader(new InputStreamReader(in));
String line = "";
while ((line = inBr.readLine()) != null) {
System.out.println("in : " + line);
}

BufferedReader erBr = new BufferedReader(new InputStreamReader(err));
line = "";
while ((line = erBr.readLine()) != null) {
System.out.println("err : " + line);
}
inBr.close();
erBr.close();
>>775
readLineは改行が来ないと止まってしまう。
そこはreadLineを使わないようにする。
777775:04/09/07 17:21
>>776
返信ありがとうございます。
readLineは使用せずに、readを使用してみましたが、結果は同じでした。
パスワードの入力待ち状態になってしまうようで、帰ってきません。
どうしたものか…
>>777
いやいや、そうではなく。
gnupg側がなんか表示してパスワード入力待ちになると思うんだが、その表示、たとえば「password:」が来たら読み込みを中止してこっちから書き込むようにする。
だから1文字ずつ読み込みつつ、目的とする文字列が来たかどうか判定するのよ。
779775:04/09/07 17:45
>>778
残念な事にInputStreamを1文字でも読んだ時点でパスワードの入力待ちになってしまいます。
パスワードの入力部分は別プロセスなんでしょうか…
>>779
Outputのcloseが早すぎ。
flushだけにしておくがいい。
781775:04/09/07 18:36
>>780
Outputのcloseを後半にしても動作は変わらずでした… orz
762です。
 解決しました。763さん有難うございました。
 
783ゲッツ:04/09/07 18:44
質問させてください。

jdbc.odbc.JdbcOdbcDriver接続で
MDBのデータをSelect文で抽出したいのですが、
Select * form Tabale like '%'
みたいなことをしたいのですが、%でうまく検索できません。
エスケープシーケンスでやればいいんですよね?

どのようにやるのかわからないので、教えてください。
>>783
select * from テーブル where カラム like '%キーワード%'
785ゲッツ:04/09/07 19:03
あ・・・
普通にできました。。。
''←で囲ってなかったせい?
なんか3時間ぐらい潰した・・・
786ゲッツ:04/09/07 19:14
間違えた
'%'←'で囲っていなかったせいかな?

>> 784
レスありがとうございました。
>>772
jarsignerでしょめいすればsandboxを抜け出せるかと思ったけど
>>772
さんどぼくすも、アプレットのものほど厳しくないし。
駄目な質問例
 その1 ◆ 名前、本文に「初心者」が入っている。
 その2 ◆ 2度目以降の書き込みに通し番号が入っていない。
 その3 ◆ 環境がなどが書かれていない、または小出しにしている。
 その4 ◆ 質問が1行のみ。
 その5 ◆ 質問文から要旨が汲み取りにくい。
 その6 ◆ 検索という言葉を知らない。自分自身で調べる気が全く無い。

※誠意のある質問には、誠意のこもったレスが返ってきます。
 レスを頂いたら、同じ症状の方の為に結果報告、お礼のレスも忘れずに…。
 みんなで助け合い、お互いのスキルUPを目指しましょう。

「初心者です」と前振りする奴の大半は
・自分で調べたくありません。
・自分のパソコンの環境等は自分の頭が悪くさっぱりわからないので勘弁してください。
・専門用語を使われても分かりません。調べません。
・金も時間も手間もかける気は全くさらさらこれっぽっちもねーから全部教えろ屑ども。
・問題が解決しても事後報告やお礼を述べるつもりはさらさらありません。
・四の五のいわずさっさっと教えろ糞ボケ

という意味であり、実質初心者以下の糞虫である。
790デフォルトの名無しさん:04/09/08 13:08
JavaWebStartアプリはペタペタとコンポーネント貼るだけで完成しまつか?
791デフォルトの名無しさん:04/09/08 15:05
vectorって文字列しか扱えないんでしょうか?
>>791
んなこたーない
Javaにvectorなんかあったんだ。
Vectorが扱えるのはObject型

プリミティブ型は扱えない
795775:04/09/08 15:19
>>775です。解決しました。
GnuPGにバッチモードというオプションがあって、それを付けたら>>775のソースで動きました。
ありがとうございましたm(_ _)m
>>791
Vector でなく ArrayList をつかっとけ。
なんで初心者はVector使いたがるのかね
初心者ご用達のHPや本にVector使ってあるとか
ArrayListやHashMap使った改訂版出して欲しいやね
800デフォルトの名無しさん:04/09/08 18:22
>>797
名前が短くて格好いいから。
非推奨(遅いという意味で)とはいえ、メソッドが多いから。
Listインターフェースにも、せめてgetFirstElement()とgetLastElement()
は入れて欲しかった。
あとawt.Listの名前は、ListPaneにして欲しかった。
>>790 もヨロ
今なおEnumerationを返す標準APIに、
名前違ってもいいからIterator返すメソッド追加して欲しい。
803デフォルトの名無しさん:04/09/08 22:55
java house ってどーなったん?
804デフォルトの名無しさん:04/09/08 23:11
場合によってはVector使わなくてはならない時もあるべさ。
もはやない
806仕様晝無しさん:04/09/08 23:30
Javaプログラム中で他のjarファイルを起動する方法がわかりません。
下記のようにpackage bin 中に class Invoke というのをつくり、
package bin;
import java.io.*;
class Invoke {
public static void main(String[] args) throws IOException {
String[] cmd = { "Java -jar \"C:\\hoge\\piyo.jar\"" };
Process proc = Runtime.getRuntime().exec(cmd);
InputStream in = proc.getInputStream();
in.close();
}
}
そこでhogeフォルダのpiyo.jarファイルを起動するべく走らせると、
bin.Invoke.main(Invoke.java:19)
となってしまいます。
どなたか、他プロセスを起動するのと同様にjarファイルを起動する
方法を教えてください。
お願いします。
>>805
Swing等つかってないのか?

それにArrayListとは完全に同じではないぞ
「ほぼ」同じなだけだ
StringBufferとStringBuilderくらい違う
まぁ初心者向きというところからして同期処理入ってるVector勧めやすいのは確かだな
なんもしらんとマルチスレッドではまるかもしれんし
>>806
>そこでhogeフォルダのpiyo.jarファイルを起動するべく走らせると、
>bin.Invoke.main(Invoke.java:19)
>となってしまいます。
これは情報量0。ちゃんとどういう例外を出しているか前後を含めて
コピペすること。

あと、java.exeを呼ぶのではなく、URLClassLoaderの
インスタンスを生成してmainメソッドを呼ぶと
新しいVMが立ち上がらないので、状況によっては選択肢の一つとして
検討してもいいかも。
809デフォルトの名無しさん:04/09/08 23:39
>>800
Jakarta Commons Connectionsを使えば
藻前が喜びそうなコレクションクラスが沢山見つかるぞ。
>>806
>String[] cmd = { "Java -jar \"C:\\hoge\\piyo.jar\"" };
これは
String cmd = "Java -jar \"C:\\hoge\\piyo.jar\"";
にするかもしくは配列ごとにくぎるかどっちかにすること。
>>800
> >>797
> 名前が短くて格好いいから。
> 非推奨(遅いという意味で)とはいえ、メソッドが多いから。
> Listインターフェースにも、せめてgetFirstElement()とgetLastElement()
いらんだろ。いきなりlist.iterator().next()で頭からゲットだ。
ラストはlist.get(list.size() - 1)で十分

>>807
>まぁ初心者向きというところからして同期処理入ってるVector勧めやすいのは確かだな

807のような馬鹿に早く滅んで欲しいと願ってる奴は多いだろう。
813仕様晝無しさん:04/09/08 23:57
806 仕様晝無しさんです。
>>810
起動できました!
ありがとうございます。
>>808
勉強になりました。
今後は例外等はすべてコピーします。
また機会があればURLClassLoaderも
試して見たいと思います。
皆さん本当にありがとうございました。

>>812
禿同。っつか >>807 は初心者に毛がはえた程度だとおも。
>>807
あんな中途半端な同期なんぞに頼られても困る。前世紀の遺物は消えろ
816デフォルトの名無しさん:04/09/09 00:29
つーかJava3発表してAPI一新きぼん
>>815
その中途半端な同期すらしらないで
「Vectorなんて使いませんよ、ArrayListでいいじゃないですか」
といってはまってるあふぉを見たことあるからなぁ

まぁ、Swing使ってるかどうかだろう
しんくろないずど すればいいじゃない
Swingなんか使うかアホ
>>817
Vectorと一緒に消えてください。それがみんなの願いです。
821デフォルトの名無しさん:04/09/09 01:16
>>818
遅いから出来るだけ使わないようにしてる。
>>821
夜釣りですか。精が出ますね
823デフォルトの名無しさん:04/09/09 02:05
>>822
ついでに例外も出来るだけ使わないようにしている。
生成するのに30秒とかかかるとやってられない。
ディスクガリガリ言わせるのも気になる。
全然面白くないんだけど
Swing好きですが。
>>811
> ラストはlist.get(list.size() - 1)で十分
で良いなら

> いらんだろ。いきなりlist.iterator().next()で頭からゲットだ。
は list.get(0) で十分なような。
827デフォルトの名無しさん:04/09/09 06:51
ArrayListはイテレータよりインデクスアクセスが速い
>>790
JavaWebStartはアプリケーションの配布形式なので、そういう質問は適切じゃない。
ペタペタとコンポーネント貼るだけで完成したアプリケーションをJavaWebStartで配布すればいい。
ついでにいえばwebstartはアプレットもアプリケーションもできるしな
830デフォルトの名無しさん:04/09/09 10:42
>>826
お前等ぬるぽ気にしろ
>>828-829
まじでつか。
普通にJavaアプリを作ってサーバーに置くだけ?

Javaと言えば普及したけど苦労、という話しか聞かないので意外だなあ。

スクエニが語る、ドラクエ・FFの携帯移植「苦労話」
ttp://www.itmedia.co.jp/mobile/articles/0409/07/news054.html
>>831
苦労した、ってそのサイトに書いてあるのはメモリサイズとの戦いだけじゃねぇか。
JavaじゃなくてもBREWでも同じ問題あるだろ。
一見Javaの問題に見える

「アプリが止まった時に、ライブラリがバグっているのか、アプリに問題があるのか問題の切り分けができない。」
も、BREWでも同じ事が言えるしな。
それにこれは、ここの開発者が問題の切り分けがうまくないだけな気もしないでもない。
ゲーム開発者は、処理効率をあげるのはうまいが、作業効率をあげるのはうまくないからな。
>>831
つうか、ちょっとはぐぐれよ。
なんでJavaWebStartのしくみと、苦労話が結びつくのかなぞ。。。
834デフォルトの名無しさん:04/09/09 11:55
>>832
確かにその文脈は納得。

だけど、それとは別にWindows/Delphiでダイアログアプリのに比べると、Swing超苦しくない?
自分がSwing使ったのは数年前JB○ilderなんで状況変わってるかもしれないけど。
835デフォルトの名無しさん:04/09/09 13:32
非チェック例外と非キャッチ例外ってなにが違うのですか?
>>835
非チェック例外 非検査例外の方がオフィシャルだが、unchecked exceptionなのでそれも可。
非キャッチ例外 そんな用語はない。
>>834
なにが苦しいのかによる。
838デフォルトの名無しさん:04/09/09 13:51
>>836
http://www.amazon.co.jp/exec/obidos/ASIN/4797318570/ref=pd_bxgy_img_2/249-2326462-2123501#product-details
この本の例外処理をするの項で、

 Javaの例外には、「非キャッチ例外」というものがあります。
例)
int a = 1000, b = 0, c = 0;
c = a / b;

と、掲載されています。
839デフォルトの名無しさん:04/09/09 14:42
>>835
非チェック例外とは、ヌルポなどコンパイル時にエラーが出ない例外であり、
非キャッチ例外とは、プログラム記述者がその非チェック例外をキャッチ
するコードを書かない為に、ThreadGroup#uncaughtException()に
処理が行ってしまう例外。
uncaughtのメソッド名の通り。
>>838
ネタか?ネタなのか?
林 晴比古あいかわらず笑わせてくれるな。
>>838
少なくともそれはuncaught exceptionの話ではないな。
>>840
たわけ!
非キャッチ例外は、正式用語じゃ。林先生をバカにすると承知しないぞ。
>>839
ウソではないが正しくもないな。
単純にcatchされなかった例外のことをuncaught exceptionと呼ぶけど、非キャッチ例外とは言わないと思う。
普通に「キャッチされなかった例外」
>>842
バカになんかしていない。
ネタに対して笑わない方がしつれいだぞ。
芸人のネタに気づかないのもしつれいだぞ。
結局835は、またしても例の釣り氏だったと。。。
だいたい非キャッチ例外だと日本語として意味がおかしくないか?
キャッチ例外に非ずってことか。
>>846
林先生の日本語をおかしいとか言うなぁ
848835:04/09/09 15:15
なんかよくわかりませんが、「非キャッチ例外」でグーグルで検索しても1件しかヒットしないので、
メジャーじゃないことはわかりました。
>>848
しかも、非検査例外の誤用だしな。
誤用っつーか uncaught exception を直訳しただけっつーか。

他の文書と用語の統一をしようとかいう配慮が欠けてるのは確かだけど。
>>850
どうみても、unchecked exceptionを非キャッチ例外と書いてるのだが。
ちゃんと検索したのか?
byte short int long float double char boolean
これらと、Stringが区別される理由を教えてください。
>>852
その方が言語仕様上都合が良いと言語設計者が判断したからです。

っつうか、なぜその仕様になっているかという理由を考えてもしかたない。
そうなっているメリットデメリットを考えるのは意義があるが。
>>852
質問の意味がいまいちわからんが、
Stringは参照型でそこにあがってるのはプリミティブ型だけど。
違いは自分で調べれ。
理由と言われても違うから違うとしか言いようがない。
>>852の脳内ではPerlやPHPと比較されてんじゃないか?
文字列を表すプリミティブ型があってもいいじゃん!と思ったんじゃないかな
ボーランドのJBuilederX使ってます。

http://up.isp.2ch.net/up/e86d9bb7d1c6.java

のコードで

62 行で シンボルを解決できません。シンボル: 変数 jLabel1 場所 : untitled9.Test の クラス (62:5)

と出るのですが、何故でしょうか?
林晴比古。
この人の本読みやすい。
>>857
class TestにjLabel1が無いから。
>>857
jLabel1なんて物がTestクラスに無いから。
861860:04/09/09 18:47
_| ̄|○
862857:04/09/09 18:51
回答ありがとうございます。
class Test内に
Frame1 kita = new Frame1();
kita.jLabel1.setText("test!");
と書いて、エラーは消えるんですが実際実行しても何も起こりませんし、

Frame1をextendsしてもダメでした。

後、jLavel1は同じパッケージ内からだと参照できそうなんですが、私の勘違いでしょうか?(汗
863860:04/09/09 18:53
>>862
クラス指定。
864857:04/09/09 18:57
>>863さん
具体的にどう記述すればよいのでしょうか?スミマセン
865860:04/09/09 19:01
>>864
俺の記憶が確かなら・・・
this.jLabel1は存在しないだろう・・・
Frame1クラスの変数をFrame1クラス以外で操作したいのなら・・・
Frame1.* となるのではないだろうか。
>>858
ウソがあって大切なこと書かなくていいなら、だれでも読みやすい入門本書けるね。
>>866
そう?
ちゃんと大切な事も書いてるけど。
って、何が大切な事で、何が大切な事じゃないのかがいまいち分からないけど。
俺には合ってる。
868857:04/09/09 19:08
>>865
どうもです。
62 行で static でない 変数 jLabel1 を static コンテキストから参照することはできません。 (62:12)
と出ました。。
>>867
そりゃ、いろいろ書けば、大切なことも中には含まれるだろ。
その中に誰も使わない用語(造語)も含まれているわけだ。
どれが林用語で、どれが公式の用語か、公式じゃなくても通用する用語かわからないような本は、ちょっと問題だな。
ちゃんと(林用語)とでも書いててくれればいいのだが。
あと、レスにも(林擁護)とでも書いてくれれば助かる。
870860:04/09/09 19:35
>>868
ごめ〜ん・・・
俺も勉強中でよくわかんないや〜・・・
しっかし・・・
ソース読んでみたけど複雑な事してるね・・・
たぶん、このjButton1_actionPerformedメソッド内で、
わざわざインスタンス作って、
その中で別クラスの変数操作しようとしてるからおかしくなってるのかな・・・?

Testクラスは・・・
public void test(JLabel l){
  l.setText("test!");
//  Frame1.jLabel1.setText("test!");
}

と、書き換えて・・・

jButton1_actionPerformedメソッド内は、
  Test test = new Test();
  test.test(jLabel1);

と、書き換えたらコンパイルは通ったよ。
>>869
>そりゃ、いろいろ書けば、大切なことも中には含まれるだろ。
だから、大切な事って例えばどの事よ?
じゃ、大切な事で含まれてない事って何よ?

>その中に誰も使わない用語(造語)も含まれているわけだ。
その用語ってどれよ?
さっきの「キャッチ例外」か?
ただの書き間違いだろ?

別に擁護するつもりはないが、
俺が勉強してる本にケチつけられたら気分いい物じゃないだろ。
そもそも、その叩きも具体的性に欠ける。
どれを見てそんなセリフを言ってんだ。
キミは自分のレスに「林が気に入らないだけ」とだけ書いといてもらえれば、
俺もわざわざレスしてみたりしない。
こんばんは。fedora1の環境ででjdeeをputtyから使っています。
でも、C-c C-v C-. で補完リスト一覧が出てきません。
どなたか設定をご存知でしたら、教えていただけないでしょうか。
873857:04/09/09 20:56
>>870さん
その通りにしたら上手くいきました!
ありがとうございます!
Javaから話が外れるんですが、
よく変数名やクラス名やメソッド名の例で、
hogeとかhageとか使ってますが、
hogeとかhageとかっていったいどういう意味ですか?
fooとかbarと同じ意味だな
876デフォルトの名無しさん:04/09/09 22:35
>>819
遅いからそれだけで使いたくないってだけですかい?
それとも?
877デフォルトの名無しさん:04/09/09 22:38
誰か教えてください。



Vector vctr = new Vector();

(中略)

Iterator itr = vctr.iterator();



この場合に"itr"は何クラスのインスタンスになったのでしょうでしょうか?
878デフォルトの名無しさん:04/09/09 22:40
>>823
> >>822
> ついでに例外も出来るだけ使わないようにしている。
> 生成するのに30秒とかかかるとやってられない。
> ディスクガリガリ言わせるのも気になる。

まるで携帯Java開発者のようだ。

>>829
それはいわゆるアプレットケーションだろう

879デフォルトの名無しさん:04/09/09 22:40
>>877
そんなこと気にするな。
というかそういう捻くれた考え方するな
>>877
Vector の親クラスである AbstractList のインナークラス Itr という
クラスのインスタンスだよ。これで気がすんだか?
>>877
残念ながらitrはインスタンスにはなれないのだ。
882デフォルトの名無しさん:04/09/09 22:48
>>879
>>877の言うことは漏れも気になる。Iteratorインタフェースには
メソッドの中身の記述がないが、ここでいう"itr"オブジェクトは
メソッドをいくつも持っている。一体メソッドの中身はどこに書い
てあるんだろうか?
883877:04/09/09 22:54
>>880さんありがとうございます。
ところでAbstractListにインナークラスがあるっていうのは
どの本かドキュメントに載っているのでしょうか?
もし教えていただけると助かります。

ps.>>877で"でしょうか”の部分を二回繰り返してすみません。
>>882
Iterator インターフェイスはメソッドの仕様を規定する。
あと、補足説明は Vector っつーか AbstractList の iterator() メソッドに書いてあるし。

これらに規定された以上の実装依存の情報を使用すると特定バージョン依存になる危険がより高くなる。
>>882
イテレータインタフェースを実装してるクラスだろkusomamire
>>878
アプレットケーションではなくてWebStartのカプセルの仕方が2つあるということでは?
だからアプリケーションかアプレットかという次元の話とは少し違う>WebStart

WebStartはjnlpAPIを使ったもの・・・としかいえんね
>>883
気になるなら JDK のルートにある src.zip 展開しろ。
Abstract クラスのインナークラスと書いたが >884 のいうとおり
どのクラスのインスタンスかというのは意味がない。知る必要がない。

Abstract#iterator が返すのは Iterator インタフェースをもつオブジェクト
であり、それ以上以下でもない。
>>883
> ところでAbstractListにインナークラスがあるっていうのは
> どの本かドキュメントに載っているのでしょうか?

あー、言い忘れた。どこにも載ってない。
っつかわざと載せてないない。理由は・・・もう分かるだろ。
Iteratorの実装クラスが知りたい人は、

ArrayList list = new ArrayList();
Iterator it = list.iterator();
System.out.println(it.getClass().getName());
やってみるといいよ。

Vector使う奴は氏んでね
>>889
> Iteratorの実装クラスが知りたい人は、
> ArrayList list = new ArrayList();
> Iterator it = list.iterator();

あーあ、こんな書き方してる時点で、分かってないの
バレバレだな w
>>890
夜釣りご苦労さん。
別にそんなところでListなんか使わなくていいよ。
>>891
やっぱりな。突っ込んだのはそこじゃない。

> Iteratorの実装クラスが知りたい人は、
と書いて、Vector ではない別のクラスを持ち出したとこだが。
Vector と ArrayList の iterator メソッドが返す
インスタンスはたまたま同じなだけだ。

お前もまたインタフェースが分かってない
1人だということが証明された。
893釣られてやろう:04/09/09 23:39
>Vector と ArrayList の iterator メソッドが返す
>インスタンスはたまたま同じなだけだ。

やられた。ここまで馬鹿だとは思わなかったよ・・・
誰もVectorの話なんかしてないよ。つまらんところしか見えないのな。

任意のインターフェースについて getClass().getName()でクラス名が取れるってことだ。
importができねー
なんでだよ

app1.java
-----------------------
import printer;

public class app1
{
public static void main(String[] args)
{
printer printer1 = new printer();
printer1.print();
}
}
---------------------------------
printer.java
---------------------------------
class printer
{
public void print()
{
System.out.println("Hello from Java!");
}
}
----------------------------------
app1.java:1: '.' がありません。

同じディレクトリにprinter.classがあるのにどういうことだふざけんな
895デフォルトの名無しさん:04/09/09 23:43
>Vector と ArrayList の iterator メソッドが返す
>インスタンスはたまたま同じなだけだ。

ふーん、内部クラスなのに同じなの?
それはそれでなぞだねぇ
>>893
あほかお前は。スレ読み返せ。
で、Class#getName は無名クラスの場合は何を返すんだ?
今から調べるか? w
897デフォルトの名無しさん:04/09/09 23:46
>>894
importいらんよ
>>895
どういう意味だ? 書き方が悪いのか。
実装が同じインスタンスを返す。
>>897
うをっ
ほんとだ
この参考書あてにならねーな
900& ◆2F1nYDgaQo :04/09/10 00:22
>>896
>で、Class#getName は無名クラスの場合は何を返すんだ?

クラス名を返すが、それがどうかしたのか?
別に今から調べてもいいぞ。
ナンノハナシシテンノ?キミタチ?
半月前くらいに、なんとなく面白そうだったのでJavaに手を出してみた初心者です。
まずは簡単なアプリから…と、グラフィックビューアを作ろうかなと思っています。

現在、Java Advanced Imaging Image I/O Tools をインストールし
なんとかBMPの表示ができたところです。

さて、諸先輩方に質問です。
上記のアプリ(現在まだ作りかけですが)をJAR形式にまとめるとします。
この場合、アプリを使うユーザも自身の環境に、Image I/O Tool をインストールする必要があるのでしょうか?
もしくは、標準のランタイムだけで使う方法はあるのでしょうか?
なにとぞよろしくお願いします。


#ものは試しと、サブノートにjarファイルを持っていってみたんですが
#案の定、動きませんでした(笑
> この場合、アプリを使うユーザも自身の環境に、Image I/O Tool をインストールする必要があるのでしょうか?
ある。
904デフォルトの名無しさん:04/09/10 01:06
質問させてください。
ifばっかり使うのと、else ifも使うのは何か違いがあるのですか?
>>904
馬鹿は芯でも治らない
906デフォルトの名無しさん:04/09/10 01:14
エクスプローラのようなファイルツリーを作りたいんですけど、
エクスプローラライクなUIのアプリではルートがDesktopで、その下にMy Documents、My Computer、My Networkplaces
ってなってますよね。
そのDesktopのパスってどう書けばいいんでしょうか?
自分で調べてみようと思って、
File file=new File("c:\\");
String str=file.getParent();
としてみたら、strにはnullが返りました。
listRootsでドライブのリストはできますが、その上はできません。
listRootsで返るドライブのリストが最上位パスなんでしょうか?
907902:04/09/10 01:16
>>903
ありがとうございます。
となると、自前なりネットなりでBMP関連のクラスを用意した方がいいかもしれませんね・・・。

>>904
さっそくだがJava暦半年の自分が答えてみる!(一度やってみたかったんだ)

 if A 〜
 if B 〜
のとき、AとB両方が成り立つ場合、もちろん両方実行される

逆に
 if A 〜
 else if B 〜
のとき、2つ目は「Aが成立せず、かつ、Bが成立する」ときにのみ実行される
 if A 〜
 else {
  if B 〜
 }
と書くこともできる

間違って…ないよね?
>>906
javax.swing.filechooser.FileSystemView とか使ってくれ。
909907:04/09/10 01:17
Java暦半年ってなんだ、半月だよ・・・私は・・・ orz
java歴がどうこう言うレベルの問題じゃないな。
>>902
最初のifがtrueだったとき、後に続くifの括弧の中の比較をするかどうか。
>>902
JAIの.jar同梱すれ
>>905
なかなかイヤなヤツだな。
スレタイの「初心者大歓迎」っての外さないとな。

>>904
とにかく・・・
>>907とか、>>911が言ってる通りな感じです。
特別な意味がない限り、if-else ifを使うべき。
if-else ifだと、どこかで真になれば、そのifブロックから一発で抜けるけど、
ifをツラツラ書くと、その都度比較を行い、
無駄な処理をする事になる。
処理が重くなる。
>>912
ライセンスの再配布に関する条項で許可されてるなら、という但し書きを忘れちゃダメよ。
>>913
Java初心者は歓迎だけど馬鹿はお呼びでないよ。
>>910も書いてるけどJava以前の問題。
そんな必死になって責め立てるほどのもんでもなかろうに。

中級者面したVector馬鹿の方がよっぽど有害
917906:04/09/10 01:48
>>908
FileSystemView fsv=new FileSystemView();
と書いてみると、
Cannot instantiate the type FileSystemView, since it is not a concrete class
とのことで、コンパイルできません。
以下に確認用のコード貼ります。import文なんかは省きます。
public class PathGetter
{

public static void main(String[] args)
{
FileSystemView fsv=new FileSystemView();
File[] str0=fsv.getRoots();
for (int i=0;i<str0.length;i++)
{
System.out.println(str0[i]);
}
  }
}
FileSystemView fsv = FileSystemView.getFileSystemView();
>>916
お前もたいがい頭悪いな。

いいか?if〜elseとif〜elseif〜elseの違いがわからないと言う、それそのものに対して馬鹿といってるんじゃない。
これだけならまだ初心者の範疇と言われればそうかも知れない。

こんな質問すらわざわざ2chに書き込んで答えてもらうのを待つしか
解決法を知らない奴に対して馬鹿と言っているんだ。
筋金入りの教えて君じゃねーか。
elseifのことだけで書き込むような奴だぞ。次はswichか?ループ文か?

だからjava以前の話だと書いたんだ。
まー綴り間違えた事に突っ込まれるんだろうけど
>>919
最初からそう書かないからいらんやり取りが続くんだ。

さっきからこのスレ、理由を省いて叩くだけの奴のせいでくだらんことでスレが伸びてる。
922デフォルトの名無しさん:04/09/10 03:06
>>907,911,913
マジ感謝!
基本が大事だということが身にしみて分かりました・・・
923906:04/09/10 04:41
>>918
駄目です…
そのようにしても
「FileSystemView.getFileSystemView cannot be resolved or is not a type」
と怒られます。
とりあえず明日またがんばってみて駄目なら又来ます。
レスくれたお二方(一人?)ありがとうございました。
925デフォルトの名無しさん:04/09/10 10:55
PKCS12形式のクライアント証明書をJavaで使える形式にするにはどうするんですか?
926デフォルトの名無しさん:04/09/10 12:39
JPanelにJScrollPaneを付けたのですが
画面の大きさを変えたりしてもスクロールペインが活躍してくれません。
パネルの大きさが認識されてないのでしょか?
ちなみにレイアウトマネージャとしてボーダーレイアウトを使用しております。
927デフォルトの名無しさん:04/09/10 12:39
>>923

クラス名を紹介されたら、「どのパッケージのクラスか」は
自分で確認しよう。そしてAPIドキュメントも読もう。
928デフォルトの名無しさん:04/09/10 13:04
println の ln はなんのことでしょうか。
>>928
Lineの略じゃねーの?
>>927
>>908 で完全限定名を紹介されてるから、
どのパッケージのクラスかは自明のはず。
>>930
なのにダメですといってるから>>927の意見なんだろ。
オーバーライドって英語で書くとなんですか?
overwrittenだとオーバーリトゥンですが。
>>932
override
934デフォルトの名無しさん:04/09/10 14:27:09
物凄い初歩的な質問で恐縮ですが
KeyTypedイベントが起きたときに、"w"キーが押されたら"w"と出力したいのですが


keyTypedメソッド内で

if(e.getKeyChar().equals("w"){
System.out.println("w");}

とすると、
getKeyCharの後で「charは間接参照できません」
というコンパイルエラーが出てしまいます。
間接参照というものが理解できないんですが
どうしたらいいんでしょうか
935934:04/09/10 14:28:46
カッコが1つ足りませんでした
if(e.getKeyChar().equals("w")){
System.out.println("w");}
です。
他に、char型の変数keyinput1を作り
keyinput1 = e.getKeyChar();
if(keyinput1.equals("w")){
System.out.println("w");}
としても駄目でした。
equalsが駄目なのかと思い
keyinput1 = e.getKeyChar();
if(keyinput1.compareTo("w")){
System.out.println("w");}
でも駄目でした

936デフォルトの名無しさん:04/09/10 14:42:57
もしかしてthisキーワードって二通りの使い方がありますか?

・メンバ変数とローカル変数を区別するときに使う
・メソッドを呼び出したクラスオブジェクトの参照を保持する
937934:04/09/10 14:43:15
自己解決しました
if(e.getKeyCode==KeyEvent.VK_W){
System.out.println("w");}
938デフォルトの名無しさん:04/09/10 14:43:19
>>934
悪いことは言わないから入門書一冊買って読め
プリミティブ型と参照型の区別もついてないのに背伸びしようとするな
939934:04/09/10 14:52:45
>>938
よくわかりませんが、夏休みの宿題だからそれどころじゃないんです
まあ、自己解決したし入門書はいらないと。
940デフォルトの名無しさん:04/09/10 14:56:27
すげーな、どうやって解決したんだ?
941デフォルトの名無しさん:04/09/10 14:59:47
>>936
そこに挙げられたものは2通りのうちのひとつでしかないな。
両方同じ。
942934:04/09/10 15:06:22
パンがなければお菓子を食べればいい
もとい
入門書がなければAPIを読めばいい
です
943デフォルトの名無しさん:04/09/10 15:12:18
APIを読むってソース読んだのか。
944デフォルトの名無しさん:04/09/10 15:15:48
だったら初めからAPI Specification読めばいいじゃねーか。
945デフォルトの名無しさん:04/09/10 15:34:10
JavaDoc嫁。
946デフォルトの名無しさん:04/09/10 15:38:46
夏はまだ続いてる・・・と
947デフォルトの名無しさん:04/09/10 15:47:46
大学で夏休みは9月いっぱいって所もあるしな
948デフォルトの名無しさん:04/09/10 16:17:50
質問です
Javaでテキストファイルの行数を
スマートに調べる方法はないでしょうか?
BufferedReaderでreadLine()出来た回数で調べるのより
良い方法がありませんか?
949デフォルトの名無しさん:04/09/10 16:36:12
改行コードを数えれば
950デフォルトの名無しさん:04/09/10 16:45:34
>>948
その方法で十分スマートだと思います。
951デフォルトの名無しさん:04/09/10 16:48:40
>>950
わかりましたそうします
952デフォルトの名無しさん:04/09/10 16:50:55
それいけスマート
953デフォルトの名無しさん:04/09/10 16:57:14
たまーに訳わからんレスが入るよな。
どうせならさ・・・

!スマート車関機

くらい訳わからないのが良い。
954デフォルトの名無しさん:04/09/10 18:02:48
>>698
> サーバの設定云々も実は不要だったりする。

本当に不要なのか、はなはだ疑問。
MIMEタイプの設定がすでにそのサーバでなされているというのなら、
たしかに不要だろう。

サーバの設定をしなかった場合、
サーバ側がクライアントに返すMIMEタイプはどうなっていますか?
ちゃんと
"Content-Type: application/x-java-jnlp-file"になっていますか?


もしサーバの送るヘッダが上記の物ではないにもかかわらず、
>>698の環境において、JavaWebStartが起動するというのなら、
それは>>698の使っているブラウザなどのクライアント側が、気のきいたよくできたやつで、
拡張子などをたよりに、 JavaWebStartを起動してくれているだけではないだろうか。

つまり、サーバの設定を正しく行わないと、
気の聞かないトーマスな環境では正しく動かない恐れがあるのではないか。

//それいけスマートとはまた古風な。
955デフォルトの名無しさん:04/09/10 18:55:37
>>926さんへ。
私の場合ですが、JPanelに画像を書いていたときそういうようになったことあります。
JPanelをDimension 使って、表示するとできました。
参考になればよいですが。
956デフォルトの名無しさん:04/09/10 20:04:03
失礼します。いきます。

オブジェクトの受け渡しは、双方解釈できての
Serializable#writeObjectからSerializable#readObjectだけで通るものですか?
かなり不安いっぱいです。試したいのですが、まだ手元にAIXきません。見たこと触った事もありません
要塞見たいのがくるのでしょうか、要塞かどうかはいいです。
957デフォルトの名無しさん:04/09/10 20:27:21
>>956
ちゃんと日本語しゃべれ
958デフォルトの名無しさん:04/09/10 21:00:54
MSN%A5%E1%A5%C3%A5%BB%A5%F3%A5%B8%A5%E3%A1%A1
%B2%BB%C0%BC%A5%C1%A5%E3%A5%C3%A5%C8%A4%C7%A4
%AD%A4%EB%BF%CD%A4%A4%A4%EB%A4%AB%A4%CA%A1%A9

だれか、このコードを日本語化する方法知りませんか?
959デフォルトの名無しさん:04/09/10 21:08:51
>>958
>MSNメッセンジャ 音声チャットできる人いるかな?

URLエンコードされた文字列。
Javaと関係あるのか?
http://www.tagindex.com/tool/url.html
960デフォルトの名無しさん:04/09/10 21:54:33
二つほど質問です。

1.もともとAWTで作ってたものをSwingに作り変えてるのですが、
  コンパイル時に推奨されないAPIを使っていると出ます。
  (実行自体は問題なくできる)
  で、具体的にどこが推奨されてないかを特定する方法というか、
  ヒントみたいなものをいただけるとありがたいです
  (ちなみにJavaのバージョンですが、NetBeansの3.6にバンドルされてきたやつで分かるでしょうか?)

2.1と同じもので、AWTの時には、メニューが正しく表示できていたのですが、
  Swingに書き換えてから自家製のコンポーネントの下に隠れるようになってしまいました。
  (JButtonに対しては隠れていない)
  なぜでしょうか?

  ちなみに自家製のコンポーネントは、全部AWTで出来てるので、その辺が関係してるのかな?とも思いつつ
  他に聞けるところも無いので、ここで質問してみました。
  よろしくです。
961デフォルトの名無しさん:04/09/10 22:05:21
AWTとの混在は厳しいよ
Swingがなんでlight weight componentと呼ばれてるか知っているかい
Swingのコンポーネントはそこにあるように見えて実はない
実際にはデータのみを管理してウィンドウに書かれた絵だから
962デフォルトの名無しさん:04/09/10 22:16:43
レスどもです。
やっぱりAWTとの混在がやばげですか。
正直自家製のコンポーネントのほうはかなり作りこんじゃったので
Swingへ書き換えるには相当な気力が必要なんですよね。。。トホホ

メニューのとこだけでも回避する方法ないですかね?
963デフォルトの名無しさん:04/09/10 22:19:55
どういったコントロール使ってるかによる
AWTコントロールでカスタマイズってあんまりできないから
参考程度でさっさとSwingで作り直すがよろし

まぁ、考え方が違うところが多いのでSwingになれるまでがきついかもしれない
なれればSwingでカスタムコンポーネントぺたぺたNetBeansではりつけれるので便利になるけどね
964デフォルトの名無しさん:04/09/10 23:03:29
すいませんおちゃらけました、また弾けるかも知れませんが落着いて書いてみます。

都合でAIXを使う事になりそうでして。ばっさり割愛しますが、Objectの投げ合いをして吸い上げるようです。
そこでjavaの環境依存って実際本当にないのかが疑問になりまして、

とりあえず辿り付いたSerializableのAPIをちゃんと読んでみたわけですが、どうもしっくりこないと言うか
「直列化されます。」と単純に言い切られて納得できませんで、

AIX全くわかりませんが見ればIBMの提供するjdkが一般的だとか、そこでも疑問でして各ベンダで統一してる
上手く言えなさそうです


HelloWork hello = new HelloWork();
hello.writeObject(new ObjectOutputStream(socket.getOutputStream()));
 ↓
HelloWork work = (HelloWork)
(new ObjectInputStream(socket.accept().getInputStream())).readObject();

こんな感じで、helloとworkは同じになれます?環境とか関係ないものです?
説明無理でしたまた出直します。
965デフォルトの名無しさん:04/09/10 23:10:44
>>964
RMI(Remote Method Invokation)で調べてからで直してこい。
966デフォルトの名無しさん:04/09/10 23:10:50
>>960
非推奨メソッドについては、javacからなら-deprecationオプションを付けて
コンパイルすると教えてくれるのだが、NetBeansからどうやるかは知らない。
コンパイラを内蔵しているのではなく外部コマンドとしてjavacを呼ぶように
なっているのなら、与えるオプションを設定する方法はあるはず。

AWTとSwingの混在で、とりあえずメニューが隠れるのを回避するだけなら、
メニューをまだ1つも構築していない状態で、
JPopupMenu.setDefaultLightWeightPopupEnabled(false);
しとくといいかもしんない。

967960:04/09/10 23:41:40
>>963
レスありがとうございます。

 Swingへの書き換えについては、まだ微妙ですが、まとまった時間が出来たらやって見ようと思います。
 (表示する位置とか微妙な調整が面倒なんですよね。。。ちなみに作ってるのは将棋盤です)

>>966
 レスありがとうございます。

 おっしゃるようにNetBeansでは外部コンパイラを使用しています。
 で外部コンパイラのプロパティ(NetBeansで設定可能な)のところでは、
 -deprecationオプションが既に設定済みのようなのです。
 (実を言うと、この推奨されてない云々のメッセージはかなり前から意識していて、
  以前もいろいろ自分でいじくってみた事がありまして、、、
  デフォルトで設定されていたものか、自分で試しに設定したものか、
  今となっては記憶があやふやで良く分からない!)
 こちらはどちらかというとNetBeansの問題なのでしょうかね?

 それからおかげさまで、966で書かれたメソッド書いたら隠れずに表示されるようになりました。
 まだなんで表示されるようになったのか良く分かっていませんが、、、
 (この辺は963さんもご指摘のライトウェイトコンポネント云々を理解しないといけないのかな?)

 いずれは前にも書いたとおり、Swingへ書き換えをやろうと考えていますが、
 取り急ぎ気になる点が解消できました。
 改めて感謝感謝でした。
968デフォルトの名無しさん:04/09/10 23:42:31
質問です
String型は
String str="hogehoge" と文字列をセットできるのに

StringBuffer型は
StringBuffer str="hogehoge" とするとエラーになるのは何故ですか?

また
StringBuffer str1=new StringBuffer("hogehoge");
StringBuffer str2=new StringBuffer("hogehoge");
とすると
str1.equals(str2)がfalseを返すのですが、何故でしょうか?
(String型だとtrueになります。)
969デフォルトの名無しさん:04/09/10 23:54:33
>>968
> String str="hogehoge" と文字列をセットできるのに
仕様。String だけの特例。Integer i = 1 とかもだめでしょ。

> str1.equals(str2)がfalseを返すのですが、何故でしょうか?
> (String型だとtrueになります。)
APIドキュメント嫁。
String#equals
StringBuffer#equals (は実装されてないから Object#equals)
970デフォルトの名無しさん:04/09/10 23:58:39
もしかして、SWT&jfaceって人気ないの?
971デフォルトの名無しさん:04/09/11 00:14:56
>>969
なるほど。
ところでAPIドキュメントって何ですか?って聞いたら
怒られそうなのでやめときます。

String型の文字列プールの例外にはびっくりしました。
同じ文字列なら同じオブジェクトを参照するから
str1==str2がtrueを返すなんて知ってなきゃ分かるはずがない
972デフォルトの名無しさん:04/09/11 00:43:04
973デフォルトの名無しさん:04/09/11 00:50:46
>>971
> str1==str2がtrueを返すなんて知ってなきゃ分かるはずがない
これを知ってんのに API ドキュメントが分からないのか?

それはさておき、ほんとに分かってるのか。
以下の結果はどうなる?

String s1 = "a" + "b";
String s2 = "ab";
System.out.println(s1 == s2);

s1 = "a";
s1 += "b";
s2 = "ab";
System.out.println(s1 == s2);

s1 = new StringBuffer("ab").toString();
s2 = "ab";
System.out.println(s1 == s2);
974デフォルトの名無しさん:04/09/11 00:52:08
とりあえずリテラルという言葉を覚えたほうがいい。
975デフォルトの名無しさん:04/09/11 00:52:53
>>971
ああっ、馬鹿…
976デフォルトの名無しさん:04/09/11 00:53:13
>>973
全部falseのような気がします
977デフォルトの名無しさん:04/09/11 00:57:00
String型のリテラルは一度定義すると変えられないと書いてありました
ただ、単純な+操作だけはできて
別々のオブジェクトをあたかも結合して一つのオブジェクトに見せる
みたいな・・・
978デフォルトの名無しさん:04/09/11 00:57:42
>>976
残念 1 つ目は true。
同一式での文字列結合はひとつの文字とみなされ、
同じコンスタントプールが使用される。
979デフォルトの名無しさん:04/09/11 01:32:45
>>955
ありがとうございます。
解決しました!
980デフォルトの名無しさん:04/09/11 01:48:24
>>973
なんでこれが全部trueになるの?
==はオブジェクト同士の演算なんだからfalseじゃないの?

s1.equals(s2) だったら全部trueになるのは納得行くけど・・・
981906:04/09/11 01:52:12
とりあえず半分解決しました。
人様のアプリのスクリーンショットを見て、
ルート(\)
と書いてあったので、試しにパスに"\\"としてみたら、My DocumentsとRecycle binが
ツリーに現れました。
なぜかMy Computerが出ていませんが…
さらにぐぐってみます。
982デフォルトの名無しさん:04/09/11 01:56:32
>>980
な、何いってらっしゃるんでしょう?
983デフォルトの名無しさん:04/09/11 02:49:28
>>978
ふ〜ん

まぁ実際のところ、ソースん中で
 if(xx == yy){ /* */ } ;//いずれも非プリミティブ(String含む)
って記述みっけたら、書いた奴呼び出して即書き直し命じてもよろしいか?

そんとき、
「残念、同一式での文字列結合はひとつの文字とみなされ、
 同じコンスタントプールが使用されるんですよ。」
とでも言おうものなら、衝動的に殴ってしまってもよろしいか?
984デフォルトの名無しさん:04/09/11 02:51:09
あ;いらね〜か
985デフォルトの名無しさん:04/09/11 03:05:33
>>983
後半はよろしい。
しかし前半は元々そういう意図だったらどうすんだよ
986デフォルトの名無しさん:04/09/11 03:07:53
つーか言語仕様の話だろ。実際のコーディングスタイルなんか自分のところで決めろ。
987デフォルトの名無しさん:04/09/11 07:34:49
つーかよ、大概のオブジェクトは参照アドレスが違うから
特に自分がObjectを継承して作ったクラスのインスタンスは
==で判定しても問題ないよ
問題が出るのは、プリミティブラッパーとか、equals()を
オーバーライドしてるクラス
まあ、言御仕様上は、==をプリミティブ型に限定するか、
または==で,統一する方向で規定してほしかったけどね
プリミティブ型ってのが癌だったな
Javaがでてきた頃はマシンパワーが足りなかったから
こんな仕様にするしかなかったんだろ
988デフォルトの名無しさん:04/09/11 08:05:45
==演算子をシンタックスシュガー扱いにして
コンパイラがequalsで比較するようなコードを吐けばいいのにね。
if (left == right) {...}
をこんな感じで処理とかさ
boolean _b;
if ((left instanceof Object) == false) _b = (left == right);
else if (right == null) _b = (left == right);
else _b = left.equals(right);
if (_b) {...}

そうすると実質演算子のオーバロード状態になるか。
989デフォルトの名無しさん:04/09/11 08:35:34
>>987
>犬概のオブジェクトは参照アドレスが違うから
 ↑ 犬?犬って何だよ!?
www
990デフォルトの名無しさん:04/09/11 08:40:02
>>877の知りたいことは
>>877のような初心者にとって知るだけ無駄な
トリビアな知識だな
991デフォルトの名無しさん:04/09/11 08:46:52
>>954
> >>698
> > サーバの設定云々も実は不要だったりする。
>
> 本当に不要なのか、はなはだ疑問。
疑問があるなら実際にやってみろと。

> もしサーバの送るヘッダが上記の物ではないにもかかわらず、
> >>698の環境において、JavaWebStartが起動するというのなら、
> それは>>698の使っているブラウザなどのクライアント側が、気のきいたよくできたやつで、
> 拡張子などをたよりに、 JavaWebStartを起動してくれているだけではないだろうか。

最近のメーカー製PCはJavaWebStartが標準搭載されているので問題ないことばかりだが。
992デフォルトの名無しさん:04/09/11 08:47:03
>>989
おめー里見八犬伝もしらねーの?
犬概といったら、八犬士のひとり犬概現八のことにきまってるだろ
993デフォルトの名無しさん:04/09/11 08:49:58
>>989
> >>987
> >犬概のオブジェクトは参照アドレスが違うから
>  ↑ 犬?犬って何だよ!?
> www

wwwってなんだよ? ワールドワイドウェブのことか?

それとも、ワイルドワイドウェストのことか?
994デフォルトの名無しさん:04/09/11 08:53:37
>>992-993
あ!?お前ら何言ってるの??
日本語で書いてもらえませんか!?
さっぱりですよ??
995デフォルトの名無しさん:04/09/11 08:57:56
すいません、質問です。
これからJavaをはじめようと思うのですが、コンパイラーというものはどこで売ってるのですか?
デオデオで訊いてみたのですが、売っていないといわれ途方にくれています。
よろしくお願いします。
996デフォルトの名無しさん:04/09/11 08:58:35
>>994

ワイワイウェ〜〜〜〜〜〜〜〜〜〜スト!

                            by ヴィル・スミス
997デフォルトの名無しさん:04/09/11 09:01:00
>>996
あ!?だから、それはなんなんだよ!?
998デフォルトの名無しさん:04/09/11 09:02:58
>>995
> すいません、質問です。
> これからJavaをはじめようと思うのですが、コンパイラーというものはどこで売ってるのですか?
>>1を嫁。リンク先を調べればタダで手に入る。


でさ、デオデオって何?


new Thread(); を立てた
【初心者】Java質問・相談スレッド53【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1094860940/
999デフォルトの名無しさん:04/09/11 09:03:53
>>997
映画
1000デフォルトの名無しさん:04/09/11 09:04:06
Java質問・相談スレは52回を以って終了とさせていただきます。
長らくのご愛顧ありがとうございました。

1000!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。