10 :
デフォルトの名無しさん :02/11/01 18:27
スレタテ終わりました。 書きこみどうぞ。。。 つかれたよ…
11 :
デフォルトの名無しさん :02/11/01 18:28
粘着・荒らしは完全放置!でいきましょう。
12 :
デフォルトの名無しさん :02/11/01 18:52
■質問・相談に関して■ なるべく問題点をまとめてくれると助かります。 「わかりません」だけでは、こちらもわかりかねます。 Javaのバージョンと動かす環境も書いてくださると、モアベターです。
13 :
デフォルトの名無しさん :02/11/01 20:58
とあるメソッドにラベルのパラメータ?(heightとかfontとか)を渡したいのですが、 それらを増やしていくと(int ,int , , , ,)みたいに長くなっちゃいますよね。 これ見た目わけわからなくなってしまうので なんというか、オブジェクトごとすぱっと渡したいんですがどうすればよろしいですか? boke.hage(label); class boke{ void hage(object hige){ int hige.getHeight; こんな風な感じで。 jdk1.3.1で動かしたいです。
とあるサイトの配列の作り方んとこにこう書いてました。 <方法1> int[] i; //宣言 i = new int[4]; //生成 i[0] = 1; i[1] = 2;//初期化 i[2] = 3; i[3] = 4; <方法2> int[] i = new int[4]; i[0] = 1; i[1] = 2; i[2] = 3; i[3] = 4; <方法3> int[] i = {1, 2, 3, 4}; 3はなぜ1,2ともにあるnewがなにのですか?
宣言の手順の違い。 方法1,方法2 はint変数を4つ作るよ、そして、中身は・・・・ 方法3はint変数で中身は・・・・。
>>13 まんま、ずばっと。
class Foo {
...
int getHeight() {
...
}
...
}
class Bar {
Foo foo = new Foo();
...
void baz(Foo foo) {
...
int fooHeight = foo.getHeight();
...
}
...
}
>>14 宣言から初期化までいっぺんに行う書式だから。
17 :
デフォルトの名無しさん :02/11/01 21:30
WindowsのAlert(?)ダイアログは開いている間、 そのダイアログの親Windowの ユーザからの動作を受け付け不可の状態にしますが、 これをSwingのJDialogで行おうとした場合、 どうすればよろしいのでしょうか? JFrame f = new JFrame(); JDialog d = new JDialog(f); ...
>>13 方法はいくつかあります。
1.int型の値を直接渡すのではなく、あるクラスのインスタンスを生成して、
それを渡す方法。
高さ、座標なら、java.awt.Rectangle、java.awt.Pointとか、
フォントなら、java.awt.Fontにして渡す。
2.java.util.HashMapに詰め込んで、それを渡す。
hashmap.put(key, value);
ただし、型情報が失われるので、良い方法ではない。
(会社にはいって驚いたことは、これが多用されていたこと。
正直信じられんかった)
>>17 JDialogのコンストラクタで、
モーダルダイアログにしてしまうと良い。
うお!まじっすか!うわあ、ズばっとイッター。 あ、しかし、 void baz(Label foo)でも void baz(Panel フォォォ)でも、 void baz(何か ヌォォォ)で、こう、一発で全てのまかなえちゃえる方法はござりませなんだか。
ごめんなさい。自己解決しました。 そういうWindowをモーダルウィンドウって言うんですね。 JDialog#setModal(boolean flag);
>>13 大丈夫。それでいける。
その方法はオーバーロードと呼ばれている。
void baz(Label foo){ // Label型の引数だった時の処理 } void baz(Panel フォォォ){ // Panel型の引数だった時の処理 } void baz(何か ヌォォォ){ // 何か型の引数だった時の処理 } 気をつけてほしいのは、どのメソッドが呼ばれるかは、 コンパイル時に決まってしまうことです。
>>14 こんなのもあるでよ。
int[] i = new int[]{1, 2, 3, 4};
ずっと気になってたんですが
>>1 にある javaco サイトってなんですか?
えーと答えてくれた人ありがとです。 まだ勉強中なんでよくわからんのですがなんとなくはわかりました。 たぶん。
>>23 >>24 括弧内だけ変えていく、コレが噂のオーバーロードですか!
ひとつ利口になりました。なんかすごいプログラム組んでる気分に浸れそうです。
多謝多謝!
>>18 Hashって毬藻じゃないよなと思い参考書ひっくり返したんですが、
なるほど、配列のようなものみたいっすね、Hash。面白そうです。ありがとうですー。
TextArea上にHyperLinkを書くことは出来ますか? 出来る場合どのクラスを使うのですか? お願いします。
>>29 javax.swing.JEditorPane
ありがとうございます!調べてみます!
32 :
デフォルトの名無しさん :02/11/01 23:34
例外クラスからprintStackTraceしたトレース情報をStringに格納することはできますか?
>>32 ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintWriter pw = new PrintWriter(baos);
printStackTrace(pw);
baos.toString();
おぉ!すごい!ありがとうございました。
>>18 > 2.java.util.HashMapに詰め込んで、それを渡す。
> hashmap.put(key, value);
>
> ただし、型情報が失われるので、良い方法ではない。
> (会社にはいって驚いたことは、これが多用されていたこと。
> 正直信じられんかった)
値の取り出しで Object value = hashmap.get(key) とする場合
value.getClass() とすればいつでも型情報は取り出せますが。
静的な型と動的な型についてちゃんとわかってますか?
>>34 定石だと思うよ、これ。
この程度はThrowableのAPIリファレンスを見て書けるようになっておくれ。
>>35 たぶん、そういうことを言おうとしたのではないと
思われるが..
もっと勉強します。
39 :
デフォルトの名無しさん :02/11/02 02:11
JDBCのpreparedStatementってあるじゃないですか。 あれで先に?だらけのSQL文を作って、後でsetXXXで値を埋めていって、 その後にその完成されたSQLをコンソールに出力したいんですけど、 それってできるんでしょうか? なんかそういうメソッドはなかったような気がしてるんですけど。
あぁ平和だ
preparedStatementってどんな意味ですかね
日本語にすると
>>33 StringWriter の方が良いと思われ
>>39 最終的に JVM 上で完全な SQL 文字列を作るかどうかは JDBC ドライバしだい
なので、標準でそういうのはないだろう。PostgreSQL なんかの JDBC ドライバ
ソース見たら一回完全な SQL を組み立ててサーバに発行しているようだったが、
普通の商用 DB ならもっと効率の良い方法を取ってる。
>>41 準備されたステートメントってコトで、俺的に VC++ のプリコンパイル済み
ヘッダみたいな感じ。業務で使う SQL なんかはすんげー複雑になるから毎回
文字列解析すんの避けて、さらに DB に元からある機能使ってパフォーマンス
上げられるようにするって目的だが。
落ちてるなーだれかネタ振ってくれや。
48 :
デフォルトの名無しさん :02/11/02 07:27
Swingでforteのように、固定されたJInternalFrameを表示するには どうすれば良いのでしょうか?
50 :
デフォルトの名無しさん :02/11/02 07:54
Font の大きさが決定できないと自身の大きさが決定できない Canvas を作るとき どうしてますか? つまり getMinimumSize() や getPreferredSize() が呼び 出されたときにまだコンポーネントの表示フォントが決定してない場合です。 addNotify() をオーバーライドしてスーパークラスのそのメソッドを呼び出した 後に FontMetrics を保存して getPreferredSize() の中で計算しようと思い ましたがどうやら addNotify() の方が後に呼び出されているような感じです。
Fontの大きさを決定してから適当に計算してsetSizeじゃダメなん?
サーブレットを使うWebアプリケーションで、 メールを送信しているのですが、その送信された メールの中に「−」という語句が表示されていました。 (エンドユーザーから入力された住所を表す箇所で) 調べてみると−は「-」を表すコードのようです。 この症状が出たのはまだ一通だけなのですが、この他の メールでは「-(半角)」「-(全角)」もきちんと表示 されていました。 何か思い当たる原因はございますか?
53 :
デフォルトの名無しさん :02/11/02 21:43
あるファイルの途中の行から(Shift_JISで)、 書き込みしたい場合の一般的な方法を教えてください. OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(file), "SJIS"); ???
そもそも本当にShift_JISで良いのか疑問。 本当にShift_JISでいいんだな? MS932、Windows-31Jではないんだな?
55 :
デフォルトの名無しさん :02/11/02 22:01
>>54 そう言われると迷ってしまうわけですが、
はい、Shift_JISで問題ないです.
テキストエリアにHTMLの書き方を質問した者です。 大変ありがとうございました。JEditorPaneに表示は出来たのですが、 たとえばTextAreaにはappend/1メソッドがあるように追記はできない のでしょうか?今はsetText/1メソッドで表示してるのですが上書き されてしまうようです・・・お願いします。
57 :
デフォルトの名無しさん :02/11/02 22:47
>>56 /1メソッド?
appendがほしいなら、appendを自前で追加するとか、似たような機能を自分で書けばいい。
StringBufferに表示するテキストを入れておいて、それにappendすると同時にsetText(StringBuffer)とか。
/1は引数1つという意味です・・すいませんCのなごりで! Bufferに入れておいて表示ですか!難しそう・・・ 今はこんな感じなのですが・・・・ ta=new JEditorPane("text/html; charset=EUC-JP ",""); ta.setEditable(false); sp=new JScrollPane(ta); for(i=0;i<10;i++) ta.setText("html");
すいませんそうでもなさそうなので、 やってみます。勝手ですいません!
>>52 EUC の「-」「~」を 内部処理で UNICODE に変換するときに
化けるとか化けないとかいう話があったはず
61 :
デフォルトの名無しさん :02/11/02 23:34
すみません。appletでJframeを使うにはどうすればいいのでしょうか? 具体的にはappletからJFrameを表示して色々なものを表示させたいのですが。 よろしくお願いします。
62 :
デフォルトの名無しさん :02/11/02 23:38
あるアルゴリズムを作ったので性能測定したいです。 処理時間を計るにはどうすればいいのでしょうか? いいホームページ、方法等を一通り教えてください。
言い忘れたが、junitは、本来は単体テストのフレームワーク だけど、各テストメソッドの実行時間をレポートしてくれる。
>>62 System.currentTimeMillis()
で時間を取得するとかそういう話?
66 :
◆7K46Lpjrik :02/11/03 00:02
メソッドやコンストラクタの引数として「this」が指定されている場合 この「this」は何を示しているのでしょうか。 this.hogehoge()やthis()の意味は分かるのですが…
>>62 タクサン回数まわして、かかった時間測定。
System.currentTimeMillis()は、10ミリ秒単位の制度が怪しいので、
秒単位クライで測定できる程度まで回数増やして測定して、回数で割り
なされ。
ただし、CPUバウンドでない機能の測定にはイミナイケドね。
>>66 メソッドを呼び出したクラスのインスタンスかのぅ
>>66 同じです。thisがさすのは自分自身への参照。
メソッドに自分自身のインスタンス参照を渡している。
71 :
デフォルトの名無しさん :02/11/03 00:48
初心者無視スレにも間違って書いてしまいましたが・・・ 完全な初心者の質問ですみませぬ。javaアプレットでhomepageを 美しくしようと思い、Jbuilderでアプレットの開発をはじめたのですが *.javaをコンパイルすると*.class,*#1.class,*#2.classというように ひとつのソースに対して複数のクラスが作成されます。 それをOCNのサーバーにアップして実行させるのですが#の文字が邪魔を してアップロードできません。ファイル名に#は使えないようです。 自分のPCではhomepageは動作するのですが実際にはアップできないということは Jbuilderでアプレットの開発はできないと言うことでしょうか。 もしできないとしたら、よい開発ソフトはないものでしょうか。 よかったら教えてください。
インナークラスつかうと$がセパレータでつくのは知ってるが、 #ってなによ?クラスファイル大きすぎとか?
>>72 この前の馬鹿と同じ扱いはよくないよ。こっちはマトモそう。
すみません。#ではなく$でした。眠いので明日考えますわ。
>>75 だったら簡単。
インナークラス禁止。無名インナークラス禁止。
>>71 jarであげなさい。生のばらばらのクラス上げるのはイクナイ。
>>75 Jarで固めてアップロード
JBuilderフリー版はjar作成機能が削られてるから、jarコマンドを使う
>>74 どちらもマルチポスト馬鹿だろ。
そんな事書くと、71=74に思えるぞ。
80 :
わかりません ◆IV.Rbu88uk :02/11/03 03:56
ファイルシステムアイコンを取得しようと試みたのですが。 これなんですか?コンソールに延々と表示されてて、JDK1.4のバグですかね? あと、Aドライブにアクセスしない方法も教えてください。 com.sun.java.swing.plaf.windows.WindowsLookAndFeel FileSystemView.getShellFolder: f=C:\hiberfil.sys java.io.FileNotFoundException at sun.awt.shell.ShellFolder.getShellFolder(ShellFolder.java:197) at javax.swing.filechooser.FileSystemView.getShellFolder(FileSystemView. java:459) at javax.swing.filechooser.FileSystemView.getSystemIcon(FileSystemView.j ava:179) at com.sun.java.swing.plaf.windows.WindowsFileChooserUI$WindowsFileView. getIcon(WindowsFileChooserUI.java:2072) at com.nifty.vzy03312.tools.chksame.v1.directory.MyCellRenderer.getTreeC ellRendererComponent(MyCellRenderer.java:45) at javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimen sions(BasicTreeUI.java:2729) at javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayout Cache.java:478) at javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePrefer
>>80 初心者無視スレに書いてあるほうのソースを参照してよいのかな?
ソースが不完全な気がするけど…
3行目 java.io.FileNotFoundExceptionの発生
ファイルが存在することを確認しましたか?
確認するメソッドは、java.io.File.exists()です。
Aドライブにアクセスしない方法も
java.io.File.exists()で、存在を確認して、
無かったらスルーすれば良いわけです。
82 :
わかりません ◆IV.Rbu88uk :02/11/03 04:35
例外じゃないんです。 「これなんですか?コンソールに延々と表示されてて、」 という訳で、このコンソールへの出力を止めたいんです。 どうやら、アイコン取得するだけなのに、わざわざファイルのオープンをしているみたいで。
83 :
わかりません ◆IV.Rbu88uk :02/11/03 04:44
>>81 Windowsでアイコン取得する場合のロジックといえば、
レジストリの拡張子ごとのアイコンが指定してある場合、拡張子キャッシュに保存。
レジストリの拡張子ごとにアイコンがCOMになっている場合、拡張子キャッシュ使わない。
IconIndexの取得に失敗した場合、ハードディスク上の存在しないファイルに対して、ShGetFileInfo?だった気がする。を行う。
Javaの場合遅いし、16色のアイコンしか取れないし、SharedViolation起こるし、何がなんだかよくわかりません。
>>82 | java.io.FileNotFoundException
Exception = 例外
OK?
85 :
わかりません ◆IV.Rbu88uk :02/11/03 05:48
だから、コンソールに出ているんですよ。
86 :
わかりません ◆IV.Rbu88uk :02/11/03 05:53
file.exists() で囲んだところ、A:\でfalseを返す仕様みたいですね。 ドライブアイコンがなくなりました。それから、Aドライブにアクセスするから ディスクを入れろっていうOSのダイアログが3回出るようになりました。
87 :
わかりません ◆IV.Rbu88uk :02/11/03 05:58
SHBrowseForFolder(OSのファイル検索の時のダイアログを出すAPI) の場合だと、Aドライブへのシークは発生しないし、 Aドライブを開いたときにも、InsertDisk(PleaseInsertADiskIntoDriveA:) という、Cancelボタンのみのダイアログが表示され、ドライブを入れるか、Cancelするまで止まっています。 チャイムは鳴りません。 Javaの場合だと、DriveAのアイコンを取得しに行くとNoDisk(ThereIsNoDiskInTheDrive.PleaseInsertADiskIntoDriveA:.) という、(Cancel,TryAgain,Continue)というダイアログが表示され、五月蝿いアラームが鳴り響きます。 アイコンを取得するJNIを使わない方法って無いのでしょうか?
>>80 FileSystemView view = FileSystemView.getFileSystemView();
Icon icon = view.getSystemIcon( file );
jdk1.4 だったらコレでアイコン取得できるけど。
jdk1.3 以前だと システムアイコンは(JNIとか使わないと)取得できないので。
あと、A:\ にアクセスするのは 初心者無視スレのソースの部分なのか?
>>87 >Javaの場合だと、DriveAのアイコンを取得しに行くとNoDisk(ThereIsNoDiskInTheDrive.PleaseInsertADiskIntoDriveA:.)
>という、(Cancel,TryAgain,Continue)というダイアログが表示され、五月蝿いアラームが鳴り響きます。
FileSystemView view = FileSystemView.getFileSystemView();
Icon icon = view.getSystemIcon( "A:\\" );
Javaじゃなくてキミのプログラムに問題があるような。
90 :
わかりません ◆IV.Rbu88uk :02/11/03 06:05
プログラムの中で、JDKのバージョンをチェックする方法も思いつくのですが、 それで、A:\を取得しようとするとどうなりますか? 私の環境は、JDK1.3です。なぜかというと、 JDK1.3のjavacを使ったclassファイルを、JRE1.2環境で実行すると、synchronized セクションがsynchronizedされなかった(wait, notify出来ない)っていう経験がある ため、JDKのバージョンは想定されるJREのバージョンに合わせたいからです。
91 :
わかりません ◆IV.Rbu88uk :02/11/03 06:08
>>89 のプログラムは、JDK1.3で動かないですね。
とりあえず、reflection を使って、jdk1.4に対応することにしました。
92 :
わかりません ◆IV.Rbu88uk :02/11/03 06:11
>>89 きっと、JDK1.4のどこかでFixされたのでしょうね。
JFileChooserのFileView経由でも同じ事が出来ていいと思うのに。
JFileChooser chooser = new JFileChooser(); FileView view = chooser.getFileView(); if( null == view ) view = chooser.getUI().getFileView( chooser ); Icon icon = view.getIcon( new File( "A:\\" ) ); で取得しても Aドライブにはアクセスしない。 WindowsXP+jdk1.3.1_05 だけど。 FileView と FileSystemView が別の interface なのかは俺も疑問。 jdk1.3 でも jdk1.4 でも LAF が Metal だと FileView の getIcon から得られるのは MetalIconFactory から生成される Icon になってしまうようで。
94 :
わかりません ◆IV.Rbu88uk :02/11/03 06:32
>>93 >jdk1.3 でも jdk1.4 でも LAF が Metal だと
>FileView の getIcon から得られるのは
>MetalIconFactory から生成される Icon になってしまうようで。
ウワ-。
忘れてた。それは、期待したとおりの挙動です。
逆に、Metalの時にアイコンを取得されては困ります。
JDK1.3.1_04 なのに、1.3.1_05に上げて確認してみます。って確認しても意味無いな。
とりあえず、アイコン取得は却下する方向でやってみます。
95 :
わかりません ◆IV.Rbu88uk :02/11/03 06:34
うん?寝ます
>>92 あとね、JConfig とかいうライブラリ使えば
Windows のアイコン取れたはず。
無料で使えるライブラリだったかは忘れた。
あと、アイコンは取ってこれるけど、
FileSystemView.getSystemTypeDescription() に
相当するところがヘボなのでファイル種別は取ってこれない。
JDK1.1の頃のライブラリだから、探してももう無いかも…
97 :
わかりません ◆IV.Rbu88uk :02/11/03 06:43
SHGetFileInfo の場合は構造体で取ってこれるのに、
getSystemTypeDescription getSystemIcon に分れているんですね。
OOじゃなくて構造化っぽいけど。
まぁ、interface不整合は、FindFirstFile / SHGetFileInfo / GetFileAttributeEx の違いだと思えば・・・。
jconfig まだありましたが。
http://www.tolstoy.com/samizdat/jconfig.html
>>97 いやさ、
FileView の getTypeDescription() と FileSystemView の getSystemTypeDescription()
FileView の getIcon() と FileSystemView の getSystemIcon()
FileView の isTraversable() と FileSystemView の isTraversable()
ってやってること同じなんだから、
FileSystemView extends FileView でも良かったんじゃないかと思うわけ。
ついでに言えば getSystemIcon(File f, int width, int height) だったら嬉しいのに。
JConfig まだ更新してたのか… ちょっと感激。
99 :
わかりません ◆IV.Rbu88uk :02/11/03 07:07
100 :
わかりません ◆IV.Rbu88uk :02/11/03 08:05
JDK1.4使ってみた。 彼らはMicrosoftと大して変わらない気がする。 JDK1.3まで使っていたマウスホイールライブラリが使えなくなった。 java.lang.NoSuchMethodError: sun.awt.windows.WToolkit.getComponentFromNativeWindowHandle(I)Ljava/awt/Component; at org.netbeans.modules.mousewheel.MouseWheelHandler.wheelMoved(Unknown Source) at org.netbeans.modules.mousewheel.WheelNotifier.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178) [catch] at java.awt.EventQueue.dispatchEvent(EventQueue.java:448) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136) at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
>>100 >JDK1.3まで使っていたマウスホイールライブラリが使えなくなった。
その代わり標準でホイールが効くんですが・・・。
とりあえず同バージョンアップしたか位把握してからバージョンアップさせろや。
後、Toolkit名も書かずにスタックとレースですか.アホなんですか?
>>100 > 彼らはMicrosoftと大して変わらない気がする。
これは禿げしく正しい。
>>102 でも、彼の書いた理由から導かれた結論がそれならばそれは間違いであるといえる
104 :
デフォルトの名無しさん :02/11/03 08:36
mp3やwavと言ったサウンドを使用したいと考えています。 しかし私の持ってる本にはAudioClipクラスを使って、 Sunオーディオ形式(~.au)しか再生できないと書いてあります。 (かなり古い本ですが・・・・・・) mp3やwavを再生するためにはどうすればいいのでしょうか? よろしくおねがいします。
また質問厨荒らしが来てた?
>>107 タイトルからしてmidiしか再生できない予感。
>>105 Third Party Library の寿命を短くしているっていう意味。で、グレードダウン。
・通常のホイール
・Ctrlキーと同時だとページスクロール
・Shiftキーと同時だとドキュメントの移動
・Altキーと同時だと横スクロール
とか、いろんなヴァリエーションをマッピングできるようになっていたんだ。JDK1.4だとちょっと厳しい。
Listenerじゃなくて、MFCとかWin16のメッセージマップなら何とかカスタマイズできるけど。
Listenerだと、物理的に無理でしょ。MFCでも物理的に厳しいか。
まぁ、マウスホイールごときって反応もあるだろうけど。この状況だとライブラリーが集まって来ないでしょう。
というか、MS-VCで普通のアプリつくる手法を忘れさっているよ。DLL分けるのも面倒だし。Netbeans,Eclipseに比べてIDEがタコ。
コンポーネント/VBマンセー。Delphi未経験だからVB。
で、Javaに関しては、JDK1.4におとなしく以降する事にします。
ServerSideみたくJDKのバージョンが固定されているのは除いて。
JARファイルにマニフェストがあるのに、JDKのバージョンが指定できないのは鬱
JavaWebStartがローカルXML読めないのは鬱
CLASSファイルの構造に拡張ヘッダ仕様が無いのは鬱
VB,Delphiやりてー。
今日ちょっとJBuilderつかってみたんだけど 使ってみた感想は、結構使いにくい。 これ慣れれば普通のテキストエディタより使いやすくなるの? 動きはめちゃめちゃ遅いし… 使ってる人がいましたらこつとか教えてもらえます?
>>111 良くわからんが、
public void mouseWheelMoved(MouseWheelEvent event){
if(event.isControlDown()){
...
}else if(event.isShiftDown()){
...
}else if(event.isAltDown()){
...
}
}
とかじゃダメなんすか?
wavとmid問題なく再生できました。
あっでもあまり大きなwavファイルだと音が無音のままっだったり mp3だとエラーになってしまいますね。w 誰かできる人がいたら教えてください。 それではしばらく出てしまいますので
100からの流れを見たがマイクソとやってることは同じだな。
>>113 ばっちりです?
沢山沢山のComponentにaddMouseWheelListenerすれば?
逆に?MouseWheelEventを全てHookする?アプローチにしたいというのは変ですか?
Windowsでも、Windowプロシージャ毎に書くの?
メニュー・キー・アクセラレータだと、MessageLoopの中に書きます?
JavaにもActionMapとかあります?
今ねー?漠然と?IDEが担っているパートとか?継承が担っているパートとか?データ構造として?ではなく?考えて?
VBは?Cは?C++は?JavaのBeanなんて自動生成意識してる?
C++でクラスをDLLに入れたい?みたいな質問とか?
**Listenerとか?無名クラス使わず?継承なんかする人は?いるの?
逝く前にリサンプリングしてレートをWindowsのファイルにあわせて22khz ビットレートを705bpsに変えたらできました!
あとはmp3だけです。 誰かやり方お願いします。 では本当に逝ってきます
>>118 ActionMap はあるけど、確か キーのみだけだったような…
javax.swing.ActionMap かな?
>>121 ? フーン ?
? 文字化けじゃないよ ?
>>122 >? 文字化けじゃないよ ?
?荒らしかネタですか?
>>121 需要無い?
JButtonクラスに implements *Listener / publicでも外部から呼び出すなって?
ComponentとListener継承して振る舞い代えたい場合、has a じゃなく is a なの?
だめ?実は良い?
あ゛ー。覚えた事がすたれてゆく。 どころか、動かなくなってゆく。 DecimalFormatが80桁のBigDecimalを書式化できるのはいつの日か。
>>125 目指した所はそれなんだろうけど、出来ないね。てへ
∧_∧ ( ´∀`)オマエラ /, つ オチケツ (_(_, ) しし'
カレー食いてー
130 :
デフォルトの名無しさん :02/11/03 12:50
数年ぶりにJavaのソフトを作ろうと思っているアホな私によろしかったら 教えて下さい。 Java 2 SDK 1.4 を使ってブラウザ上で動くアプレットを作りたい と思っています。できるだけ多くのブラウザで利用できるようにしたい (具体的には最低でも Windows IE5.5以上できれば5.0以上、Netscape6以上 Macintosh IE5.5以上) のですが、その場合 Swing はまだ使わない方がよいのでしょうか? やはりAWTで組んだほうが良いですか? また日本語の表示は(unicodeで書いておけば)大丈夫ですか? また1.4.0_02と 1.4.1_01 はどちらを使った方が無難でしょう? かなり昔に組んだアプレットをそろそろバージョンアップしてくれと いう要望があって取り組み始めたのですが、浦島太郎の気分です。 互換性の問題が最近どうなっているのかがさっぱり分からず困って います。当時は日本語をアプレット上に表示しようとするとブラウザ とOSの組み合わせ次第では文字化けしたので、アプレット上は英語 で表示してステータスバーに日本語の解説を表示するなどということ をしていました。
>>130 > やはりAWTで組んだほうが良いですか?
当然。JDK 1.1 の API リファレンスを落として来い。日本語は OK。
JDK は IBM JDK 1.1.8 を使え。
IEはまだ(というかおそらく永遠に)1.1.4相当ですよー
わかりません ◆IV.Rbu88uk ってさ、 はっきり言って死んでほしいよね。 初心者だったら大歓迎だけど、 ただのアホはホントに死んでほしい。
Java Media Frameworは手元の本だと、 QuickTime、MPEGも使えるみたいなこと書いてあるけど、 実際、どのくらいまで扱えるのですか?
>>132 今のSun JAVAプラグインはIEでもAPPLET要素で使える。
そんなキモいのつかいたくない
初心者のバカな質問で申し訳ないのですが、教えていただければ幸いです。 JDK1.3からJDK1.4に変更してコンパイルすると、 JDK1.3に比べてJDK1.4のほうは ボタンなどのコンポーネント上の文字が小さくなってしまうのですが、 これって、こういう仕様なんでしょうか? 1.3のほうは12pointの大きさなのですが、1.4のほうは10pointぐらいになってしまいます。 コマンドラインでコンパイルしても、JBuilder7でコンパイルしても同じです。 ちなみに、JBuilderでボタンなどのフォント設定をみると、 1.3も1.4も共にDialog,0,12pointなのですが。。。 OSはWinXPPROです。
131さん、ありがとう。 日本語大丈夫ということで安心しました。Swingもまだまだですね。 IBM JDK 1.1.8 か....なるほど。1.3.0 じゃなくて、そっちに 行くわけですね。 JDK 1.4.0_01 は「Java GUIコンポーネント完全制覇(柏原正三 /技術評論社)」に、IE6.0 NS6.2.3 でOKと書いてあったので 期待したのですが、ちょっとブラウザのバージョンが戻るときつい のかな。では IBM にいってきます。
139 :
デフォルトの名無しさん :02/11/03 14:16
FreeBSDで動くフリーのJavaベースのチャットサーバ ソフトはないですか? cgiチャットサーバのリロード動作がすごく嫌なので 置き換えたいと思って探してます。
140 :
デフォルトの名無しさん :02/11/03 14:33
>140 そっかー(涙)
>>133 悪かったな。クライアントサイドJavaなんて実務では一度も無いよ。
CGIにアクセスログかけてからSUNに同趣旨のメール送ったらログにSUN.JPが残ってた。
感激。悪口しか書いてなかったのに。W
今から130P印刷したメール読む
Frameというクラスにフレームの定義だけしておいてます。で、 JFrame frame=new Frame(); Window win=new Window(frame); if(cb.isSelected()){ win.setVisible(true); ウィンドウが開かれないんですけど原因はどこら辺に?
>>142 今のJavaの状況なら
クライアントサイドJavaをやったことの無い人はいるだろうね。
私も来年の新人教育、クライアント側にまったく触れないことにしました。
>>144 そうなんですかぁー。私も止めてみます。
146 :
デフォルトの名無しさん :02/11/03 17:02
throw節に送る例外が2個あるときはどのように宣言すればいいのでしょうか? クラスA メソッドA() throw 例外1、例外2 try{ メソッドA(); }catch(例外1){ 例外処理; } 例外がひとつしかかけません。 誰か教えてください
>>146 try{
methodA();
}catch(Exception1 e){
...
}catch(Exception2 e){
...
}
149 :
デフォルトの名無しさん :02/11/03 17:18
ボタンやらテキストフィールドやらを貼り付けたフレームをスクロールさせるには どうしたらいいのでしょうか?
ScrollPane で被せれ
151 :
デフォルトの名無しさん :02/11/03 17:22
それがうまくいかないのですが・・・。
152 :
デフォルトの名無しさん :02/11/03 17:40
すみません。前スレで聞いてる方がいらっしゃたのですが 今見れない状態なので、今一度教えてもらえますか? .exeなどのファイルを呼び出すメソッドってなんでしょうか? あと、このような状況ときはどのようにAPIを見ればいいんですか?
// 実行したいコマンド(Windows) エスケープを忘れないこと String command = "C:\\windows\\notepad.exe"; Runtime runtime = Runtime.getRuntime(); runtime.exec(command); バーチャルマシン依存っぽいのと、基本的なものは、java.langパッケージ あると便利そうなものは、java.utilパッケージを見る。 クラス名から適当にAPIをあさる。 Googleで当たりをつけて、その周辺を見る。
>>153-154 クラスまことにありがとうございました。
あとAPIの見かたもどうもです!
java.swing.Timer の Timer.class ってどこにあるんですか? j2sdk をダウンロードしたんですけど、Timer.class は入っていませんでした。
>>157 お返事ありがとうございます。
それでは、どれに入っているのでしょうか?
JSDK2.0 や J2ME? Wireless Toolkit 1.0.4_01 にもありませんでした・・・
>>158 僕は繋がりますよ。
160 :
デフォルトの名無しさん :02/11/03 20:08
>>159 え、今見れてますか?
何度やっても「サーバが見つかりません」なんですが。
APIリファレンスが見れないよー!
>>161 ダメでした。サン系のみ全滅です。
とりあえずインターネットオプションのセキュリティを既定値に戻したり
してみたのですが、やっぱりダメ。何か悪いもの拾ったかなぁ。
163 :
デフォルトの名無しさん :02/11/03 20:57
>>159 標準のに、javax.swing.Timer入ってない?
java.util.Timerになんとなく似てるこのクラスをお探しではないのか?
>>163 おお、いけました。
DNSエラーだったのですね、ちょっと調べてみます。
どうもありがとうございました。
>>156 rt.jar の中探せ。 Timer.class 見つけて何する気なのかは知らんが。
137です。 誰も相手にしてくれないのですが、一応。。。 >ちなみに、JBuilderでボタンなどのフォント設定をみると、 >1.3も1.4も共にDialog,0,12pointなのですが。。。 と書きましたが、 JBuilderではコンポーネントのFontでDialog,0,12のときはコードではsetFontは記述されてない。 つまりJDKのコンポーネントのFontのデフォルトは12pointなんですね。。。 setFontを記述しない場合のデフォルトFontサイズは 1.3では12pointで、1.4では10pointなんでしょうか? 皆さんの環境ではこんな現象は起きてないでしょうか?
>>164 >>166 ありました。ありがとうございます。
でも、解決できませんでした。
Timerを動かそうと思ったのですが、IEだと上手く動いて
NNだと、NoClassExeption で動かなかったので、
Timer.Class を探しても見付からなかったもので…。
そこに、CLASSPATH を通しても駄目でした。
もう少し調べてみますs。
なんで、IEだと動くのかな?
>>168 Appletかよ。しかもNoClassExceptionって何だよ。
NoClassDefFoundErrorか、ClassNotFoundExceptionか
ちゃんと書け。
それと、IE、NNのそれぞれのJava pluginのバージョンも。
とりあえず、「やさしいJava」を全部読んだよ。
所々抜けているけど、その内容がどのページに書いてあってちょっと読めば思い出す・・・
で、この後どうするですか?
そもそもiアプリを作りたくてJavaを始めたわけで、「やさしいJava」を読破してからiアプリのJavaを
勉強しようと思っていたのよ。
これでiアプリに行っていいですか?
それとも「やさしいJava 活用編」も読んでから行った方がいいですか?
http://www.bekkoame.ne.jp/~manachan/yasajk.html
>>170 そのほうが望ましくはあるが充分だろう。
次はiアプリでやりたいことを決めなさい。
それから、どのように作れば良いかを考えなさい。
>>169 ごめんなさい。ウンコ出そうだったもので。
NC4.73の方は、Java Plug-in 1.4.1_01 for Netscape Navigator (DLL Helper)
エラーはこんな感じです。
Netscape Communications Corporation -- Java 1.1.5
Type '?' for options.
Symantec Java! ByteCode Compiler Version 210.065
Copyright (C) 1996-97 Symantec Corporation
java.lang.ClassNotFoundException: javax.swing.Timer
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Exception.<init>(Compiled Code)
at java.lang.ClassNotFoundException.<init>(Compiled Code)
at netscape.applet.AppletClassLoader.findClass(Compiled Code)
at netscape.applet.AppletClassLoader.loadClass1(Compiled Code)
at netscape.applet.AppletClassLoader.loadClass(Compiled Code)
at java.lang.ClassLoader.loadClassInternal(Compiled Code)
at ShotSub.init(Compiled Code)
* at netscape.applet.DerivedAppletFrame$InitAppletEvent.dispatch(Compiled Code)
at java.awt.EventDispatchThread$EventPump.dispatchEvents(Compiled Code)
at java.awt.EventDispatchThread.run(Compiled Code)
at netscape.applet.DerivedAppletFrame$AppletEventDispatchThread.run(Compiled Code)
続きです。 IE6.0SP1の方は、Java(TM) Plug-in: バージョン 1.4.1_01 使用中の JRE のバージョン 1.4.1_01 Java HotSpot(TM) Client VM で、IEがOKなので、CuamやDonutRaptで試したら駄目でした。 IEはsunのVMじゃ無いって事なのでしょうか?
おい。NNって言ってたのに、実際はNCかよ! あと > Netscape Communications Corporation -- Java 1.1.5 って何? > Copyright (C) 1996-97 これもずいぶんと古いみたいだが。。。 > Java Plug-in 1.4.1_01 for Netscape Navigator (DLL Helper) これは一体どうやって確認したの?
175 :
デフォルトの名無しさん :02/11/04 00:29
ファイル操作に関する質問です。 以下のようなファイルがあったとき --------------- #KEY_0=V_0 #KEY_1=V_1 #KEY_2=V_2 ... #KEY_n=V_n ---------------KEY_iは文字列、V_iは整数 KEY_iに対する値V_iを更新するにはどうすればよいのでしょうか? 以下のように書こうと思ったのですが、 何か見当違いな気がしたので質問しました(実際、間違ってます)。 以下ではKEY_iが見つかったとき、 V_iの値を1増やすようなことをしています。 RandomAccessFile rw = new RandomAccessFile(f, "rw"); String line; while ((line = rw.readLine()) != null) { if (line.indexOf('#') == 0) { int eIndex = line.indexOf('='); String key = line.substring(1, eIndex); int value = Integer.parseInt(line.substring(eIndex + 1)); rw.writeBytes("#" + key + "=" + (++value) + "\n"); } else { rw.writeBytes(line + "\n"); } } rw.close();
>>174 >これもずいぶんと古いみたいだが。。。
ネスケは新しい=重いってイメージがあるので古いのを使ってます。
>> Java Plug-in 1.4.1_01 for Netscape Navigator (DLL Helper)
>これは一体どうやって確認したの?
ヘルプ→Plug-inについて
です。
で、いろいろ探してたら解決しました。
html の書き方が悪かったみたいです。
http://java.sun.com/products/plugin/1.2/docs/ja/tags.html ここにあるように、APPLETタグをやめて、OBJECTとEMBEDタグにしたら
何事も無かったように動きました。
こんな馬鹿な疑問に付き合ってもらってありがとうございました。
>>175 RandomAccessFileのreadLine()を使ったときは、
ファイルポインタも移動するのですかね?次の行に。
>>176 むか~し、HTMLConverterというのがあったね。
>>175 =で結ばれていることが保証されているなら、
Propertiesに放り込むのがラクそうだな。
>>175 そりゃダメでしょ。
readLine() と writeBytes() の前後に
getFilePointer() とか入れて
自分が何やってるか確認してみれば?
JFrameにJDesktopPaneを乗せて、JInternalFrameを 配置したい場合、InsetsはJFrameのInsetsでいいので しょうか。JDesktopPaneのInsetsを取得しようとすると 0, 0, 0, 0が戻るので。
>>175 そもそもファイル読み書きに関する思想が間違ってるぞ。
ちょっと考えてみろ。
JEditorPaneにsetPageメソッドでURLを開きたいんですが、 素直に出てくるページとNullPointerExceptionが出てくるページ があります。文字コードが対応して無いとこうなりますか? 化けて出てくるページもあるのでなんともいえません。 解決法等教えてください。お願いします。
質問なんですが、全くの初心者なんですが、本だけで勉強しても大丈夫なんでしょうか? あと本だけでも理解できるんでしょうか?
もう一つなんですが、これから勉強するんだったら、CとJavaどちらがおすすめでしょうか?
>>183 参考に、アクセスに失敗する(NullPointerExceptionの発生する)
アドレス例を教えてください。
>>184 大丈夫。どれくらい読むかによるけど。
私も独学、かつ文系で周りに詳しい人がいなくて、本中心。
187 :
デフォルトの名無しさん :02/11/04 15:54
>>172 4.79なら、APPLETタグで、JavaPlugin使えるよ。
NNの場合には、JavaScriptで、JavaPluginも有効にするよう、4.79使えって
メッセージ出せば良いのでは。英語版しかないけど。
>>183 私もNullPointerExceptionの発生するURL発見しました。
HTML4.0ベースのURLにアクセスした時に発生。
JEditerPaneは3.2ベースだからね。
183と同じ原因なのかはわかりませんが。
>>185 それはあなたのやりたいことによります。
>>188 自分では何か一つ、覚えたいと思ってるんですが。
>>189 お好きなモノを。どれをやっても無駄にはならんだろう。
>>189 C → Javaの順に学べという人もいるけど、
私はいきなりJavaから初めても良いと思う。
まったくの初心者には、
すぐに結果のでるVBとか、cgiで使えるperlを奨めたいけどね。
>>191 は氏ね
>>192 にハゲドウ
・・・と、言いたいところだが世の中には
Javaをマスターした人を対象にしたC言語の入門書
なるものも存在する。
どういう道を辿ろうときちんと修めてくれるなら
どうでもいいってところか
今、学校でプログラミング論の授業を受けているが おじいちゃんの先生で教えているのが、コボルなんですが、Cの勉強やJavaについていけますか?
195 :
デフォルトの名無しさん :02/11/04 16:29
自力でやれ。
>>195 なんとか本買ってきて、独学でがんばります・・・
>>194 コボルでもいいよ
コボルすらマスターできんやつは氏ね
>>177 ,
>>178 ,
>>180 ,
>>182 レスありがとう.
>>182 さんの言う通り、根本的に間違ってましたね。
RandomAccessFileのgetFilePointer, seekメソッド使ってうまいことやろうかと思いましたが、駄目でした。
僕は、挿入すれば挿入した分だけずれながらファイルに出力されるものと思ってましたが、そうではなくて
キーボードのInsキーを押した状態で、キーボードから入力するように出力されてるようですね。
ということで下では全然違う方法で
>>175 みたいなことを書いてみました。
手法としては、一時ファイルに更新したデータを書き込み、それを最終的に元ファイルに置き換えるというものです。
何かもっと効率的な他の方法があれば教えて下さい。
File bufFile = File.createTempFile("params", null);
BufferedReader reader = new BufferedReader(new FileReader(file));
BufferedWriter bufWriter = new BufferedWriter(new FileWriter(bufFile));
String line;
while ((line = reader.readLine()) != null) {
if (line.indexOf('$') == 0) {
int eIndex = line.indexOf('=');
String key = line.substring(1, eIndex);
int value = Integer.parseInt(line.substring(eIndex + 1));
bufWriter.write('$' + key + '=' + (++value) + '\n');
}
}
bufWriter.close();
reader.close();
if (file.delete() && bufFile.renameTo(file)) {
return true;
} else {
return false;
}
199 :
デフォルトの名無しさん :02/11/04 17:35
200 :
デフォルトの名無しさん :02/11/04 17:47
>>194 ひょっとして商業系の学校??
プログラミングってのがどういう作業をするものかとか、アルゴリズムの
勉強にはなるだろうけど、COBOLで仕事をするのは厳しいと思う。
COBOLの授業なんて、あまり本気でマスターしようとは思わないことだ。
プログラマになりたいのなら、独学だよ。
てゆうか、Cとか教えてる学校もあるけど、あんな進行速度じゃ
一生かかってもプログラマとして仕事できないよ。
SEにならなれるかもしれないけど。
200 :デフォルトの名無しさん :02/11/04 17:47
>>194 ひょっとして商業系の学校??
プログラミングってのがどういう作業をするものかとか、アルゴリズムの
勉強にはなるだろうけど、COBOLで仕事をするのは厳しいと思う。
COBOLの授業なんて、あまり本気でマスターしようとは思わないことだ。
プログラマになりたいのなら、独学だよ。
てゆうか、Cとか教えてる学校もあるけど、あんな進行速度じゃ
一生かかってもプログラマとして仕事できないよ。
SEにならなれるかもしれないけど。
200 :デフォルトの名無しさん :02/11/04 17:47
>>194 ひょっとして商業系の学校??
プログラミングってのがどういう作業をするものかとか、アルゴリズムの
勉強にはなるだろうけど、COBOLで仕事をするのは厳しいと思う。
COBOLの授業なんて、あまり本気でマスターしようとは思わないことだ。
プログラマになりたいのなら、独学だよ。
てゆうか、Cとか教えてる学校もあるけど、あんな進行速度じゃ
一生かかってもプログラマとして仕事できないよ。
SEにならなれるかもしれないけど。
粘着だなあ。
>SEにならなれるかもしれないけど。 SEの人、失礼! #てゆうか最近「SEです!」って見かけないけど。 #某大手と仕事したら、プログラム組めないSEが出てきて #みんなそろってデスマーチしますた(涙) #本人は気づいてないけど。
>>205 SE と Sヨ の見分けくらいつくようにならないとこの界隈で生きてゆくのは
難しい。
200 :デフォルトの名無しさん :02/11/04 17:47
>>194 ひょっとして商業系の学校??
プログラミングってのがどういう作業をするものかとか、アルゴリズムの
勉強にはなるだろうけど、COBOLで仕事をするのは厳しいと思う。
COBOLの授業なんて、あまり本気でマスターしようとは思わないことだ。
プログラマになりたいのなら、独学だよ。
てゆうか、Cとか教えてる学校もあるけど、あんな進行速度じゃ
一生かかってもプログラマとして仕事できないよ。
SEにならなれるかもしれないけど。
205 :200 :02/11/04 17:51
>SEにならなれるかもしれないけど。
SEの人、失礼!
#てゆうか最近「SEです!」って見かけないけど。
#某大手と仕事したら、プログラム組めないSEが出てきて
#みんなそろってデスマーチしますた(涙)
#本人は気づいてないけど。
200 :デフォルトの名無しさん :02/11/04 17:47
>>194 ひょっとして商業系の学校??
プログラミングってのがどういう作業をするものかとか、アルゴリズムの
勉強にはなるだろうけど、COBOLで仕事をするのは厳しいと思う。
COBOLの授業なんて、あまり本気でマスターしようとは思わないことだ。
プログラマになりたいのなら、独学だよ。
てゆうか、Cとか教えてる学校もあるけど、あんな進行速度じゃ
一生かかってもプログラマとして仕事できないよ。
SEにならなれるかもしれないけど。
205 :200 :02/11/04 17:51 >SEにならなれるかもしれないけど。 SEの人、失礼! #てゆうか最近「SEです!」って見かけないけど。 #某大手と仕事したら、プログラム組めないSEが出てきて #みんなそろってデスマーチしますた(涙) #本人は気づいてないけど。
210 :
デフォルトの名無しさん :02/11/04 17:56
>>205 昔を思い出して、涙出てきますた(TT)
わたしのときも相手は大手だったんだけど、開発の部署と人事部が
完全に独立してたみたいで、「なんにもできませ~ん」ってやしが
俺より高い給料だった(TT)
鬱だ詩嚢
>>186 文字コードをそのページのcharset=iso-8859-1
にしてみましたが、やはり
NullPointerExceptionでした・・・
大手=手が大きい=足が大きい=ばか 大手=手が大きい=顔が大きい=高給
214 :
デフォルトの名無しさん :02/11/04 18:01
プログラマはヘボSEの存在で寿命が縮み、 また、ヘボSEは失敗をプログラマのせいにして生き延びる。 鬱だシノウ
239 :仕様書無しさん :02/10/26 16:42 public void method() { throw new NullPointerException("ぬるぽ"); } public void method2() { try { method(); } catch (NullPointerException npe) { throw npe; } } ∧_∧ ぬるぽ出て ∩´∀`∩) そっとつかまえ \ ) またぬるぽ ( ( / ((_)
216 :
デフォルトの名無しさん :02/11/04 18:03
>>Sョ ↓ | △ | | 〔(゚ ∀ ゚)〕 .| (⌒⌒⌒⌒⌒⌒⌒) |⌒⌒⌒ <⌒ヽ o 。 うああぁぁ... | <_ ヽ。 | o とノ ノつ | 。 | ~つ
(゚Д。 ;。グヒャッ ,,,ヾ''ヽ/ ~~~~ (( \ 1\/ \____| )) ∫ ∧_∧ l⌒l´∀` )<>>Sョはとっとと! ヽ ヽ つ ((( \_ ノ \ ヽ し''
強い電波が出ています ≫ ≪ ≫ ≪ (゜ρ゜)
220 :
デフォルトの名無しさん :02/11/04 18:14
最近はよほど古いとこじゃないとSEなんていないって。 てかなんでこんなに脱線してんだ?藁
200 :デフォルトの名無しさん :02/11/04 17:47
>>194 ひょっとして商業系の学校??
プログラミングってのがどういう作業をするものかとか、アルゴリズムの
勉強にはなるだろうけど、COBOLで仕事をするのは厳しいと思う。
COBOLの授業なんて、あまり本気でマスターしようとは思わないことだ。
プログラマになりたいのなら、独学だよ。
てゆうか、Cとか教えてる学校もあるけど、あんな進行速度じゃ
一生かかってもプログラマとして仕事できないよ。
SEにならなれるかもしれないけど。
205 :200 :02/11/04 17:51
>SEにならなれるかもしれないけど。
SEの人、失礼!
#てゆうか最近「SEです!」って見かけないけど。
#某大手と仕事したら、プログラム組めないSEが出てきて
#みんなそろってデスマーチしますた(涙)
#本人は気づいてないけど。
220 名前:デフォルトの名無しさん :02/11/04 18:14 最近はよほど古いとこじゃないとSEなんていないって。 てかなんでこんなに脱線してんだ?藁 Sョでよければ、いないことも無い、という事もできなくは無い、が、断定するにはいささか
>>220 マ板気分で SE という言葉が出るとコピペしたくなるのでしょう。
227 :
デフォルトの名無しさん :02/11/04 22:04
JAVAのアプレットを作ったんですが… プロンプトからコンパイルしてappletviewerで見たら上手く行ったのに、 ブラウザに上げてみたら、エラーが起こりました。 java.lang.ClassFormatError:Bad major version number というエラーだったので、JAVAの1.4でコンパイルしたのが拙いのかと、 javac -target 1.3でコンパイルし直して、設置してみましたが、 やはり上手く行きません。 1.1にも直しましたが、同様でした。 友人宅のHPに上げて貰った所、やっぱり同じエラーが起こりました。 どなたか解決方法知らないでしょうか?
>>227 後生ですからエラーメッセージ読んでくださいよ。
javaScriptのラジオボタンについて質問です。 3つのボタンの中から1つ選んで他の2つのラジオボタンとフィールドを無効化(書き込めない状態)にしたいです。 自分でやってみたら、失敗点が以下の2つありました。 ①初めてそのページに飛んだとき、無効化になっていない。 ②次のページに進み、戻ったとき選択した情報を保持しているのですが、無効化されていない。 普通に選んだときは無効化されます。クッキーとか使わなきゃいけないんですかね?
>>229 >javaScriptの
この時点ですれ違いです。正直ワラタ。
233 :
デフォルトの名無しさん :02/11/04 22:23
>>228 初心者ですみません…一応読んだんですが、
エラーの意味が分からず、Googleで検索した所、
コンパイルの際にバージョンを古く指定すれば解決すると有ったので
試してみたんですが、やっぱり同じ症状になりました。
手持ちの参考書にも載っておらず、
上のFAQでそれらしき所を調べてみても載ってなかったので途方にくれてます。
どうすれば良いんでしょうか。
>>234 3 桁目まで言うなら 1.1.4 と言え。
まぁ実質たいして変わらないが。
>>234 >>235 1.1.4…って事は1.0でコンパイルしないといけないんでしょうか?
1.1では駄目でしたし、1.1.4だとコンパイルエラーが起きたんで…
>>236 エラーが起きたことは大して重要ではない。
どんなエラーがどこで起こったかが重要なのだ。
大方新バージョンにしか実装されてないクラスでも使ってるんだと思われ。
複数の計算を同時にさせるプログラムを作りたいのですが、計算の数が 毎回変わります。 計算の数が固定ならばマルチスレッドなどで、何とかするのですが、 計算の数が不明なので、マルチスレッドが使えません。 と二乗の計算をするプログラムをつくるとして、コンソール画面やHTMLから 任意の数の整数が与えられた時に、任意の整数の数が2個ならスレッドを 2個と決め打ちできますが、n個の場合、決め打ちができないので、困っています。 なにか良い方法を知っていましたら教えてください。
239 :
デフォルトの名無しさん :02/11/05 00:58
javaをするのに もっともおすすめのフリーソフトってなんですか? Jbuilderで大丈夫ですか?
>>238 計算の数がnあるならn個のスレッドを作ればいい
243 :
デフォルトの名無しさん :02/11/05 01:54
お勧めのケースツールってないですかね? Together ControlCenterっていくらするんですか?
iアプリエミュレーターをゲットしたので フリーのプログラムを動かしたかったのですが パソコンからではダウンロードできませんと表示されてしまいます。 なんとかパソコンでダウンロードすることは出来ないでしょうか? よろしくおねがいします
IPアドレスで弾いてるんだからできねーよ
246 :
デフォルトの名無しさん :02/11/05 02:33
>>245 IPだったんですか・・・ありがとうございます
おまえら聞いてください。 DBのトランザクション使うときに try{ con.setAutoCommit(false); try{ con.createStatement().executeUpdate("insert t value(1)"); con.createStatement().executeUpdate("insert t value(2)"); con.commit(); return; } finally{ con.rollback(); con.setAutoCommit(true); } } catch(SQLException e){ e.printStackTrace(); } というふうにtryが2重になるのは間違ってまつか?
248 :
デフォルトの名無しさん :02/11/05 04:39
間違えではないと思う。 でも俺は違う方法でやった気がする。。 覚えてないけど。。。。。 あれ、? ほんとに思い出せないu。。撃つ堕し膿
249 :
デフォルトの名無しさん :02/11/05 05:23
>>247 とりあえずtryうんぬんかんぬんでなくそのコードはおかしい。
finallyでrollback、コネクション閉じないでリターン?
>>247 tryが重なっても間違いじゃないけどね、
そりゃまずいよ。
コネクションは呼び出し元で閉じるから問題ない。
>>251 どうまずいの?
>>252 >finallyでrollback
これだと思われ。
何をやってもロールバック。つまりそのメソッドの存在意義がない。
うーむ、こうなった。(returnは いらん心配させないため省いた) try{ con.setAutoCommit(false); boolean flag = false; try{ con.createStatement().executeUpdate("insert t value(1)"); con.createStatement().executeUpdate("insert t value(2)"); con.commit(); flag = true; } finally{ if(!flag) con.rollback(); con.setAutoCommit(true); } } catch(SQLException e){ e.printStackTrace(); } tryが重なるのが問題かどうかじゃなくて、みんないちいちこんなめんどくさいこと書いてるのかなぁと思って。 もしかしたら、もっと簡潔な方法があるのかと。
>>253 それに関しては、正常終了時にはcommitしてるから問題ないと思うのだが。
呼び出し元でコネクションを閉じるって事は外側のtryを含めて 関数に入っていると思うけど呼び出し元でエラーが発生したかどうか わからないような気もしたりする。
>>257 何となくオブジェクト指向がなされていない気がする・・・。
>>256 NullPointerExceptionとか例外以外の中断を考えるとめんどくさい。
>>257 それが知りたければ、throws SQLExceptionする。
>>254 これも、内側のtryが無意味だよな。
try一個でいいじゃん
あと、connectionをたらいまわしにするのはやめれ
>>259 >NullPointerExceptionとか例外以外の中断を
無視するのはもっと怖いかと。
じゃあ、望みの例外以外は丸投げすれば良いだけで。
彼は1プログラムに対してクラスを1つしか定義してない気がしてきた・・・(構造体代わり除く)。 GUIから問い合わせまで全部同じくらすでやってそう。
>>261 そのときのrollbackのタイミングはどうしたらいいでつか?
>>258 こんなのでどう?
abstract class MyTransaction{
Connection con;
MyTransaction(Connection con){
this.con = con;
}
public void run() throws SQLException{
con.setAutoCommit(false);
try{
execute(con);
return;
}
finally{
con.rollback();
con.setAutoCommit(true);
}
}
public abstract void execute(Connection connection) throws SQLException;
}
new MyTransaction(con){
public void execute(Connection con) SQLException{
con.createStatement().executeUpdate("insert t value(1)");
con.createStatement().executeUpdate("insert t value(2)");
con.commit();
}
}.run();
こういうのをオブジェクト指向というかどうかは知らんけど、クラス使ってみた。
というか、おまえらが使ってるトランザクションのコード教えてください。
>>265 ちゃんとテストしたのか?
以下のコードでも実行して勉強すれ。
public class test {
public static void main( String[] args ){
System.out.println( "method() の戻り値:" + method() );
}
public static int method(){
int val;
try{
val = 0;
return val;
}finally{
val = 1;
System.out.println( "finallyに到達 valの値:" + val );
}
}
}
>>266 だから、connectionをクラス間でたらいまわしにするなと・・・・
SQLExceptionをキャッチしたときにロールバックさせればいいだろ
それじゃだめなのか?
Connectionをたらいまわしにするかどうかは、別の問題なのではないの? 少なくとも、一般的にいえるものではないと思うけど。 コネクションプーリングしてなければ、コストかかるからConnection増やしたくない場合もあるだろうし。 で、確実にrollbackさせたければfinallyがいいと思ったんだけど。
>>267 コンパイルが通ることは確認したが、動かしてない。
なにが問題?
>>269 >で、確実にrollbackさせたければfinallyがいいと思ったんだけど。
正常処理終了時も含めて「常に」rollback する仕様なのか…
へちょい負荷テストか、もしくはネタだな。
rollbackはエラーのときなんだからcatchがいいんじゃない。
>>271 むだにコネクションはるよりは、commit()してすぐrollback()するほうがはるかに負荷少ないと思うのです。
catchにすると、コーディングミスの可能性が高くなると思って、finallyにしますた。
>>270 connectionが永続かどうかは保証されてない。
したがって、クラス間でたらい回した場合
connectionが閉じられている場合もありえるってこと。
たらい回すなら永続化しる!
>>268 connectionをクラス間でたらいまわしにしないって事は
クラスごとでコネクションを張るのか?
処理ごとにコネクションを張るとか?
>>274 connectionが閉じられている場合ってどういうこと?
それはクラス間でたらい回ししなかったら防げることなのか?
>>274 別に、そこらへんのインスタンスに渡す分には問題ないのではないかと。
1時間に1回の処理とかだとタイムアウトしてそうだから処理間で使いまわせないのだろうけど。
というか、別クラスだからとか別メソッドだからという問題ではないと思うんだけど。
>>273 あなたはcommitとrollbackについて調べた方が良い。
catchにするとこうなりました。 try{ con.setAutoCommit(false); con.createStatement().executeUpdate("insert t value(1)"); con.createStatement().executeUpdate("insert t value(2)"); con.commit(); } catch(Exception e){ con.rollback(); if(e instanceof SQLException){ e.printStackTrace(); } else{ throw e; } } finally{ try{ con.setAutoCommit(true); } catch(SQLException ignored){ } } 毎回書くのはいやな感じです。Exceptionつかまえるあたりが。 finallyでrollbackするほうが、すっきりすると思うのですが。
>>278 JavaSDKのドキュメントを調べてるんですが、とくに間違ってるとは思えないのですが。
とりあえず動いてるし。。。
なにが悪いか教えてください。
PostgreSQL使ってるんだけど、JDBCドライバのソース見たらはcommit;begin;とrollback;begin;送ってるだけだから問題なさそう。 ほかのデータベースなら問題ある?
try{ con.setAutoCommit(false); con.createStatement().executeUpdate("insert t value(1)"); con.createStatement().executeUpdate("insert t value(2)"); con.commit(); } catch(SQLException e){ if(con != null) con.rollback(); e.printStackTrace(); } finally{ try{ if(con != null) con.setAutoCommit(true); } catch(SQLException ignored){ } } でいいんじゃないの?
>>281 スレッドセーフであれば問題ないんだろうけど、
不用意にrollbackをかけるのはバグの原因になるんじゃない?
必要なときだけ呼び出すようにしないと・・・
>>282 わざわざcon != nullをする理由がわからない。
conがnullだったときに発生するエラーを発見しにくくしてしまうだけ。
>>282 実際の処理部(insertしてるところ)で、ほかの例外が起きる可能性があると、rollbackされない可能性ができてしまいます。
いちいちcatchすればいいのですが、想定しない(できなかった)例外が発生したときにcommitされてしまう可能性があります。
かといってExceptionをcatchするのも。。。
ミスしなければいいという話なのですが、rollbackのために発生する例外をもれなくチェックするというのもコストかかりすぎな気がします。
>>283 さすがにスレッド間で同時にConnection使うことはやってません。
なので、rollbackしない、setAutoCommit(true)しないことのほうがバグの原因になる確率が高いと考えますた。
>>284 con=nullだったら最初のsetAutoCommitでNullPointerExceptionがでてfinallyに飛んでなにもせずメソッドを抜けるから、ここでは問題ないのでは?
finallyのcon!=nullはあったほうがいいと思うのだけど。
それより、
>>278 に答え教えて欲しい。気になって寝れん。
>>287 気にするな
それと、tryの中で発生するExceptionは
SQLExceptionかNullPointerExceptionだろう
んで、特に注意しないといけないのはDBとのやり取り
例外で発生するSQLException
これが発生した場合のみrollbackをかけとけばいい
それ以外のExceptionはDBのデータを壊すようなものではない・・・
と俺は思ってたんだけどどうなの???
更新系でプーリングを使用してしまうと、 複数の(ユーザが)更新処理を行う場合、 トランザクション処理がごっちゃになり そうな気がするのですが。 例えば、ロールバックを発行すると、 同じコネクションを使用するトランザクション 処理中の他の更新処理もロールバックさせて しまうと思うのですが。 この辺りはアプリケーションサーバ によって制御されているものなので しょうか? それとも、更新処理に関してはコネクション プーリングを使用しない方がいいのでしょうか。 経験値の多い方、識者の方ご教授願います。
こんな感じでいろんなことすると、確実にすべての例外をつかまえるのがめんどくさくなったり、途中で条件にあわないことがあったらreturnしたかったりとかするので。 //マスター追加 PreparedStatement s = con.prepareStatement("insert into t1(name) values(?)"); s.setString(request.getParameter("name")); s.executeUpdate(); //コード取得 long oid=((org.postgresql.Statement)s).getLastOID(); s = con.prepareStatement("select * from t1 where oid=?"); s.setLong(oid); ResultSet r = s.executeQuery(); if(!r.next()) return; PrintWriter out = response.getWriter(); out.println(r.getInt("code") + "に追加"); //データ追加 s = con.prepareStatement("insert into t2(code,value) values(?,?)"); s.setInt(1,code); s.setInt(2,Integer.parseInt(request.getParameter("value")); s.executeUpdate();
>>289 さすがに同じコネクションを別のリクエストに渡してしまうようなプーリングマネージャーは使わない方がいいと思う。
広く使われてるものは、そんなことしてないはず。
292 :
デフォルトの名無しさん :02/11/05 11:50
SQLServer名がname\hogeというような\が途中に入っている場合、 JDBCのURLはどのように設定するのですか jdbc:microsoft:sqlserver://name\(バックスラッシュ)hoge name/hoge name.hoge は駄目でした
\\にするとか、そういうことではなくて?
>>293 ソースコードに埋め込んではいないので、それではないです
>>285 > かといってExceptionをcatchするのも。。。
Exceptionをcatchすればいいじゃん。
296 :
デフォルトの名無しさん :02/11/05 14:13
>>163 結局つながらないっス。他のヒトは見れてマス?
fr、仏語よめないし。
>296 問題ないよ。 最近なんかした? MTU弄ったとか?
かいけつしました
スーパーのレジのおばちゃんのネームプレートに特技パソコンって書いてあったんですけど、 なぜC#がJavaにそっくりなのかを質問してきてもいいですか?
おばちゃんをいじめるな。
301 :
デフォルトの名無しさん :02/11/05 15:30
302 :
デフォルトの名無しさん :02/11/05 15:35
>>299 プログラムが特技なわけじゃないからなぁ。
845チップセットと830チップセットの違いくらいにしてあげたら?
>>301 サーバー名(コンピュータ名?)\インスタンス名
だと思うんだけど、この場合各インスタンスごとにポートを設定してやって、
「サーバー名:ポート番号」とポート番号で識別して接続するみたい
要はポート番号が違ってました
305 :
デフォルトの名無しさん :02/11/05 21:09
printStackTraceを文字列で取得する件で以前質問した者ですが、
>>33 、
>>43 で教えてもらったコードを流用して、JSPにこんな風に書いてみました。
<%
Exception err = ( Exception )request.getAttribute( "error" );
java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();
java.io.StringWriter sw = new java.io.StringWriter( baos );
err.printStackTrace( sw );
String trace = baos.toString();
%>
すると、「この型は constructor には不適合です。java.io.ByteArrayOutputStream から int には変換できません。」
「この型は method には不適合です。java.io.StringWriter から java.io.PrintWriter には変換できません。」という
エラーが出てしまいます。API調べてみたらそもそも2行目ってコンストラクタとして有り得ないんですよね…。
どなたかもう一度教えてくださいな。
>>304 何が得意なんでしょう?
もしや今時ブラインドタッチ?
<% Exception err = (Exception)request.getAttribute("error"); StringWriter sw = new StringWriter(); err.printStackTrace(sw); sw.flush(); String trace = sw.toString(); %>
↑間違えた Exception ex = (Exception)request.getAttribute("error"); StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); ex.printStackTrace(pw); pw.flush(); String trace = sw.toString();
どうもありがとうございます! StringWriterはただ単にPrintWriterをコンストラクトするためだけに使っているという認識でいいんでしょうか?
と思ったら、最後の行でしっかり使ってましたね。。。 これからAPIリファレンスで調べて勉強してみます。
311 :
デフォルトの名無しさん :02/11/05 22:00
アプレットで、 void paint(Graphics g)というやつで線とか円とか描くのを labelやpanel上でやらせたいんですが、どうすればいいですか? 本に描いてあるサンプルを全部見回したんですが、 みんなアプレットの一番下?のところに描いてるのしかなくて 困り果てました。 どうかおしえてくださいませ。
>>311 Canvas のサブクラスを作る。Canvas クラスを検索しる
SWTやJMFについて詳しく書いてある本、どこかに売ってないでしょうか? 今日新宿の紀伊国屋逝ってきましたが、ほとんどが for文やif文などが大きくでている初心者用のjava本(70%) EJB(3%) JSP(10%) 単なるJavaの能書本(10%) JNI(2%) その他雑誌(5%) くらいで正直参考になりそうな本がありません。
>>313 >JMFについて
サンプルプログラムとWeb上の「日本語の」サイトだけで十分事足りたが。
Canvasを調べてみました。 class MyCanvas extends Canvas{ public void paint(Graphics g){ g.drawLine(0, -100, 0, 100); } } こういう感じですか。 にゃるほど。でも・・使い方がよくわからないです・・・。 MyCanvas cv = new MyCanvas(); private JLabel jLabel1 = new JLabel(); こう宣言しといて this.add(jLabel1, null); ここからどうやってcvをいれればいいのでしょうか。 すいません。ものわかり悪くって・・・。
this.add(cv, null);
>>316 んと、それでやるとjLabel1の横にできちゃいましたけど
こういうことはLabelでやるもんだと思ってて
Canvasでスコーンと出来てしまって驚きです。
ありがとうございました。Javaが面白くなってきました。
318 :
デフォルトの名無しさん :02/11/05 23:18
javaってVCで作られているって本当でしょうか?
>>318 嘘です。JavaはJavaで作られているのが特徴の一つです。
>>319 そうなんですかー。
最初のJAVAはどうやってつくったんですかー?
>>321 すいません。初心者なのでよくわからないのですが、バイトコードで直打ちってどういうことですかー?
>>322 >初心者なのでよくわからないのですが
勉強してください。
324 :
でふぉるとん :02/11/05 23:50
JavaVMはJavaでできてないね。
>>324 そうなんですかー。じゃあ何でできているんですかー?
もしかしてVBですかー?
326 :
デフォルトの名無しさん :02/11/05 23:58
ものすごく厨な質問なんですけど、 javac とか javaとかのコマンドがどこにあるファイルにでも使える にはどうしたらいいのでしょうか? ~/j2sdk1.4.0_02/binの中にjavaファイルとかをいれとかないとコンパイル できないのは不便なんです。
>>326 >~/j2sdk1.4.0_02/binの中にjavaファイルとかをいれとかないとコンパイルできない
んなアホな。
>>326 PATHを通すとかaliasを使うとか。詳しい方法は自分で調べてください。
これを行うと、自分の好きなディレクトリでコンパイルが行えます。
でもね、フルパスでもコンパイルできるよ。
~/j2sdk1.4.0_02/bin/javac Foo.java ←やってみましょう。
>>327 ,328,329
もう少し具体的にいってもらえないでしょうか?
>>314 JMFが詳しく載ってるURL紹介しる!
>>330 javac c:\aheahe\hogehoge\Hogeclass.java
java c:\aheahe\hogehoge\Hogeclass
それか、あらかじめClasspathを設定しておく
>>330 CLASSPATHなどの環境変数の設定方法が知りたいときは、
OS、その他もろもろの環境を書いてください。
Linux系?
いままで、あんなところにソースいれてたのかーー!?
ここは初心者歓迎とかいっているのに煽りばっかりだ・・・
>>335 1999年11月発行/677ページ/B5変形/本体価格: 5,800円+税
【出版元】ピアソン・エデュケーション ISBNコード:4-89471-147-
販売価格: \5,800
発売日: 1999/11/01
出版社: 株式会社ピアソン・エデュケーション
在庫: 在庫あり
配達方法: 宅急便
ポイントバック: 5% (290ポイント)
販売状況: 発売中
説明よりもどっちかって言うと販売サイトばかりだな(w
>>336 初心者未満のバカが圧倒的多数を占めているのも事実。
>>336 ちゃんと皆答えてくれてるじゃないか。何が不満なんだっつーの。
俺が書いたの見てわからないなんて・・・・・・・・・鬱
>>336 >>334 が指摘しているように、質問する側も最低限の環境やエラー情報を
提示するのはどこの掲示板やMLでも共通のルールだよ。
それをしないと厨扱いされるので気をつけよう。
で、
>>332 は質問の答えになっていると思うけど。
イタリア語講座見て寝る! おやすみ!
あの…
>>332 は、なんとなくフルパスとか通ってないというか、
330にはあまりいい答えじゃないような…
>>343 なんとなくフルパスとか通ってないというか
↑意味不明
ああ、いいのか。すまん。勘違い。 ネタがスルーされたから、ふて寝したのかと思っただけです。
349 :
デフォルトの名無しさん :02/11/06 00:47
質問なのですが、 Javaの開発でIISって使えるのでしょうか? それともアプリケーションサーバーはWASとかでないと 無理なのでしょうか?
>>349 IIS は Java の動くアプリケーションサーバではありません。
WAS 以外にも Tomcat, WebLogic, iPlanet, JRun などもありますので要件に
あったものをどうぞ。
>>350 ありがとうございます。
つまりアプリケーションサーバごとに使える言語が決まっている
ということですか?
>>351 まぁ大抵は決まってるな。CGI っぽくで動かすならどんな言語使ってもたいした
違いは無いが。
>>349 あ、そうそう、IIS を単なる HTTP サーバにして、後ろで Tomcat なり JRun なり
を動かすことも出来る。IIS 単体で Java は無理という意味。
ありがとうございます! 最近Javaでの開発を始めたのですが、 もう少し教えていただいてよろしいでしょうか? JavaのAPIが色々ありすぎてうまく使いこなせません。 よい参考書や勉強方法があったら教えてください。 それとも慣れなのでしょうか?
経験と少々のセンスがあれば慣れと API ドキュメントだけで十分。 初めてのプログラミングなら他の人にアドバイスもらってくれ。
>>356 そもそもアドバイス無いと勉強もできない奴にプログラミングは無理。
358 :
デフォルトの名無しさん :02/11/06 03:26
static の働き、もしくは配列の仕組みについて、どうも誤解しているようなので、どなたかご教授くださいまし。 以下の例で、思いもかけない挙動を示しました。 /*半角スペースを全角に変換しています*/ public class StaticTest{ public static final int[] N = {0,0}; // 定数の配列・・・の、つもり private int[] a; private int[] b; public StaticTest(){ a = new int[2]; b = new int[2]; a[0] = N[0]; a[1] = N[1]; b = N; showData(1,"初期化"); a[0]++; showData(2,"a[0]++"); b[0]++; showData(3,"b[0]++"); N[0]++; showData(4,"N[0]++"); } /* 続きます・・・ */
359 :
デフォルトの名無しさん :02/11/06 03:27
public void showData(int i,String comment){ System.out.println("("+i+") "+comment); System.out.println("N[0] = "+N[0]); System.out.println("a[0] = "+a[0]); System.out.println("b[0] = "+b[0]+'\n'); } public static void main(String[] args){ new StaticTest(); } } 実行結果は、 (1) 初期化 N[0] = 0 a[0] = 0 b[0] = 0 (2) a[0]++ N[0] = 0 a[0] = 1 b[0] = 0 /* 続きます */
360 :
デフォルトの名無しさん :02/11/06 03:27
(3) b[0]++ N[0] = 1 a[0] = 1 b[0] = 1 (4) N[0]++ N[0] = 2 a[0] = 1 b[0] = 2 でした。 何が意外だったかというと、 1.) (3)で、N[0]の値が変化したこと。 2.) (4)で、a[0]の値が変化したこと。(それ以前に、コンパイルできたことが以外でした) N に付けている static を外すと、思ったような挙動になります。(もちろんコンパイルできませんが) 今まで、定数を扱う場合は static final を付けていましたが、配列でこれを用いることは良くないのでしょうか? よろしくお願いします。
>>357 なんですか、偉そうに。
アドバイスぐらいしてくれたっていいじゃないですか。
プログラムぐらいで調子にのらないでください。
362 :
デフォルトの名無しさん :02/11/06 03:50
>>360 (4)はa[0]変化してないと思うが。
N=bとかはできないはずだから、ちゃんとfinalになってると思うが。
static final JTextField tf = new TextField();
としても
tf.setText("aaa");
とできるのと同じ。
>>359 static final int[] N = {0,1};
では、『「Nという変数が指し示すint配列オブジェクト」がfinal(書き換えられない)』なだけで、
「その配列が保持する値が書き換わらない」わけではない。
配列の要素を書き換えられないようにする方法は現時点では、無い。
immutableなリストが使いたければ、
public static List N = getStaticList();
private static List getStaticList(){
ArrayList list = new ArrayList();
list.add(new Integer(0));
list.add(new Integer(1));
return Collections.unmodifiableList(list);
}
とすることで、static finalで要素を書き換えられないListを作ることができる。
ただ、要素をintとして取り出すときは、
int a = ((Intger)N.get(0)).intValue();
となり、少し面倒。普通はアクセスメソッドを用意するといい。
public static int getNElement(int index){ return ((Intger)N.get(index)).intValue();}
とかね。
1.5になって、Genericsとautoboxing primitive typesが導入されれば、
ここらへんもう少し簡単になると思われる。
或いは、Nが本当に配列で無ければいけないのか良く考える。
public final int ZERO = 0;
public final int ONE = 1;
の方が適切でないか、ということね。もちろん場合による。
364 :
デフォルトの名無しさん :02/11/06 04:59
>>362 >(4)はa[0]変化してないと思うが。
すいません、 b[0] の間違いでした。
>static final JTextField tf = new TextField();
>としても
>tf.setText("aaa");
>とできるのと同じ。
そうだったんですね。
というか、そういう場面での使い方は未だ良く理解してないのです。
今度勉強します。ありがとうございました。
365 :
デフォルトの名無しさん :02/11/06 05:01
>>363 >配列の要素を書き換えられないようにする方法は現時点では、無い。
あぁ、そうなのですか。だとすると、static を付けなかったら変更できない
という考え方も間違いなのでしょうか。
それに、わざわざ詳しい例まで解説していただけてありがとうございました。
"Genericsとautoboxing primitive types"というのは、恥ずかしながら全く初耳です。
今度調べておきます。
>或いは、Nが本当に配列で無ければいけないのか良く考える。
友達に、プログラムが少し組めるようになったなんて言ってしまったために、
「パチスロ(パチンコ屋にあるスロットマシーン)のシミュレータを作れ」と言われてしまいました。
雑誌のコピーを見ながら作り始めたのですが、
やたら定数が多く、配列にしないことには扱いきれないのでこのようにしました。
ただ、別に、 static にしなくても一応動いてるので、とりあえずは
public final int[] HOGE = {...};
などとしておこうと思います。
どうもありがとうございました。
b=Nとしてるから、N[0]を変更したらb[0]も変更されるんだよ。
367 :
デフォルトの名無しさん :02/11/06 07:16
>>353-354 Apacheでも単体では(CGIとして)Javaは動かないのでは?
IIS単体ってIISはWebサーバの機能だけじゃないの?
ちょっと勘違いされるかもしれないから補足。 Webサーバというのは、CGI(やモジュール系アプリ、PHP等) 使用時、APサーバとして働く。
煽りが増えたな・・・・・
>>290 もう、解決したんかもしれんが、DBから値をとってくる処理と、
その他の処理をいっしょのメソッド内に記述するから
いろいろとめんどくさくなる。
DBから値をとってくる処理は独立させるべきだよ
372 :
デフォルトの名無しさん :02/11/06 15:18
Windowが不可視から可視になった状態を拾えるListenerは何Listenerですか?
>>372 ComponentListener じゃなかったっけ?
JAVAj2sdk1.4.1 インストールしたんですけどもjava コマンドは使えるん ですけど、、JAVACは使えないんです。 W2Kです。パックは入れてないです。 あとインストール時このバージョンは(1.4.1)今のWINDOWSをサーぽと しないので、サービスパックをいれてくださいってメッセがでました。 やっぱパック入れないと無理でしょうか?
375 :
デフォルトの名無しさん :02/11/06 16:26
無理です
>>374 日本語が読めるならそんな疑問は浮かばないと思われ。
ありがとうございます。 今JAVA勉強し始めたんです。 今日はどうもです。(僕は留学生です)
>>377 国に帰れ。go back to home
ちょっとひどいですね。 言い方が!!
380 :
デフォルトの名無しさん :02/11/06 16:33
留学生だからといって、すでにFAQになっている問題に 優しく答えてもらえると思ってはいけない。 しかも、ここは2chだ。屑どもの巣窟なのだ。
屑:foolish 巣窟:colony
382 :
デフォルトの名無しさん :02/11/06 16:36
380さんへ わかりました。ありがとうございました。
へー、巣窟ってコロニーっちうんだ 勉強になるなぁ
>>373 うなく行かないなあって思ってたら、
addComponentListenerで追加するの忘れてただけでしたf^^
ありがとうございました。
留學生니라고 하고, 이미 FAQ이 되고 있는 문제에 다정하게 답해 준다고 생각해서는 안 된다. 그런데도, 여기는 2ch이다. 쓰레기 길을 더듬는 것 소굴인 것이다.
>>386 俺たちの知らない言語でものすごい罵倒が書かれているんだろう。
388 :
デフォルトの名無しさん :02/11/06 16:46
Go back to your star...
390 :
デフォルトの名無しさん :02/11/06 16:48
386は 380さんの翻訳しただけでした。 意味(韓国語)わかるので、、 わざわざ翻訳しなくでもいいのでは、、
393 :
デフォルトの名無しさん :02/11/06 16:52
>>391 Your text cannot read in my personal computer.
Please write in in English or Japanese.
>>392 HA HA HA. Was I deceived successfully?
Noooooooooooooooooooooooooooooooooooo!
>>394 I allow you to die.
>>1-395 앞들 전원 죽을 수 있음 죽을 수 있음 죽을 수 있음 죽을 수 있음 죽을
수 있음 죽을 수 있음 죽을 수 있음 죽을 수 있음 죽을 수 있음 죽을
수 있음 죽을 수 있음 죽어 !!!!
何が起きているのだ…
I become blue. I die.
これだからちょ(略)っかいなんだ。
2ch is a lot of message boards for foolish people. Please don't ask neither for truth nor kindness there. Understanding? And so, Go back to the home. さて、ふつうの質問スレに戻ろう。
SwingとかでListnerなんかをくっつけるときに、 外部クラス・内部クラス・匿名内部クラスとかいろいろ出来るけど、 それぞれどんな利点があって、どんな欠点があるかとか教えてください。 原理主義的なことで結構です。
>>401 >原理主義的なことで結構です。
Java原理主義って、WriteOnce,RunAnywhereですか。
>>401 現状で利点欠点がわかるものだけ使っていればよろしい。
405 :
372(新たな疑問) :02/11/06 18:00
C++は可能だったと記憶していますが、 クラスを継承したとき、 継承したメソッドのアクセスレベルを下げることは不可能なんでしょうか? class MyWindow extends Frame{ private void setVisibility(boolean b){ // ■エラー } }
406 :
デフォルトの名無しさん :02/11/06 18:02
>>401 匿名内部クラス(無名インナークラス)は、名前を付けなくてもいいのが利点です。
あと、その場で定義できる手軽さと。
インナークラスは、クラスの有効範囲を限定できて名前がつけれるのが利点です。
外部クラスはいろんなとこから使えるのがレ点です。
>>405 Javaの仕様では不可能です。だって、仮にそう書けたとしても、
Frame xFrame = new MyWindow();
xFrame.setVisibility(true);
のようなコードで呼べてしまうじゃないですか。
そう書くこと自体が無意味です。
>>407-408 レスありがとうございます。
不可能なことは分かりました。
やりたかったことは
GUIを通してでしか閉じれないウィンドウの作成なのですが、
継承する方法では無理そうですね。
他の方法で頑張ってみます。
410 :
デフォルトの名無しさん :02/11/06 18:27
左のフレームのappletでshowDocumentメソッドを使って 右フレームの表示しているページを変えるアプレットを 作りました 1回目はうまくいくのですが 2回目からは新しくウインドウが作られて そこに表示されてしまいます 何が原因なのでしょうか? ブラウザはnetscapeとmozillaです よろしくおねがいます
すいません、質問です。 同じviewを同じ検索条件で検索しているのにもかかわらず、 sc.getRequestDispatcher("/jsp/hogehoge/hoge.jsp").forward(req, res); の実行が、短時間で終了する場合と、長時間かかる場合があります。 何が原因なのでしょうか? おわかりになるかた、よろしくお願いします。 Tomcat3.2.4 + Apache jdk1.3.0
>>410 です
追加です
yahoo(jp)を表示した場合ダメで
googleはOKでした
yahooに原因があったようです
原因究明中です
414 :
デフォルトの名無しさん :02/11/06 21:08
質問です。以下のソースをコンパイルするとコンパイルエラーが出ます。 私はこのコードはコンパイルが可能で標準出力に「false」 と出力されることを予想していたんですが、なぜコンパイルエラーになるんでしょうか? $cat aaa.java class aaa { public static void main(String[] args) { Double d = new Double(3.14); System.out.println(d instanceof String); System.out.println(d); } } $javac aaa.java aaa.java:5: 変換できない型 出現: java.lang.Double 要求: java.lang.String System.out.println(d instanceof String); エラー 1 個 ちなみにjavaのバージョンは $java -version java version "1.4.0_02" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0_02-b02) Java HotSpot(TM) Client VM (build 1.4.0_02-b02, mixed mode) です。よろしくお願いします。
>>414 d (Double 型) が String のサブクラスではないことがコンパイル時に解決できてるから。
やるなら:
Object d = new Double(3.14);
>>415 > d (Double 型) が String のサブクラスではないことがコンパイル時に解決できてるから。
ありがとうございます。instanceofの意味が良くわかってませんでした。
もっと勉強します。
417 :
デフォルトの名無しさん :02/11/06 21:52
多分無理だとは思いますが、アプリケーションでウィンドウ(アプリ自体)を 最前面に出すってメソッド(方法)はないですよねぇ?
あったような気がする。
>>417 GUIツールキットに依存するんでないの。AWT?
420 :
デフォルトの名無しさん :02/11/06 22:43
>>419 できればAWTがいいんですけど
Swingでもできればいいです。
421 :
デフォルトの名無しさん :02/11/06 22:56
Javaで作ったクラスファイルをclassesにおいて
アドレスに
http://localhost:8080/servlet/ ~を入力したのですが、
Error: 500
場所: /servlet/AccessCounter
内部のサーブレットのエラー:
が出てきて画面が表示されません
教えてください
尚、Tomcatに初めからあるサンプルのクラスファイルは画面が表示されます
ちなみに
Window2000
jdk1.3.1
jakarta-tomcat-3.3.1
です
>>421 %TOMCAT_HOME%\logs\tomcat.stderr.txt を見れ。
423 :
デフォルトの名無しさん :02/11/06 23:16
HttpServletを継承してないに1票
デプロイ記述してないに一票
425 :
デフォルトの名無しさん :02/11/06 23:27
>>417 自己レスですけど、FrameクラスのsetState()で
最小化状態から元に戻すことは出来ますね。
でも他のウィンドウに隠れてる場合は意味ない・・・
助けてー!
Frame#toFront() って JVM 上の他のウィンドウより前に出すだけだっけか?
Frame に focus をあてる方向ではどうか
#がわかりません
Windows でやってもタスクバー上のアイコンが点滅するだけかも。
>>426 Frame#toFront() って JVM 上の他のウィンドウより前に出すだけみたいです。
実は今、チャットを作ってまして、返事が来たよってのがわかればいいので
動作は
>>429 の言うとおりですけど全然OKです。
しばらくこれで行ってみます。
>>427 意味なしでした…れくえrequestFocus()ですよね?
御礼忘れてました。 皆さんありがとう!
class AAA{ private int a; private int b; public int getpoint(String pointname){ if(true == pointname.equals("a")){ return this.a; }else if(true == pointname.equals("b")){ return this.b; } } メンバの値はコンストラクタで初期設定し、引数にも条件に合う文字(この場合"a"か"b")を与えて実行してるのですが ”メソッドが値を返しません”というエラーがでます。 どこがおかしいのかお解りになる方おられますでしょうか? ご教授ください。
>>432 pointname が "a" でも "b" でもない値だった場合、どうする気だ?
>>433 ありがとうございました。
確かにその通りでございます。
Java以前の問題でした・・・
435 :
デフォルトの名無しさん :02/11/07 00:57
シスプリが始まったage
>>432 つまらんことだが true == pointname.equals("a") のように true
と比較するのは意味がないのでやめよう。
pointname.equals("a") 自体が boolean を返すんだから。
if(pointname.equals("b")) 俺もこれで言いと思ふ
privateがダメ
>>436 pointname.equals("a") でなく true == pointname.equals("a") とするなら、
なぜ true == (true == pointname.equals("a")) でないのか。
って奴だね。
つーかMapで充分な気がしね?
441 :
デフォルトの名無しさん :02/11/07 01:46
素人は車輪の再開発をしたがる罠。
if 文 2 つで済むものもわざわざ Map 使ってるんでつか?
>>442 >>432 が何をしたいかにもよるが、リファクタリングを考えればMapじゃねーの?
そもそもequals("a") ってのが感覚的に受け付けない。
> リファクタリングを考えればMapじゃねーの? Map 使うことがリファクタリングを考慮しているとでも? ぜんぜん関係 ねーじゃん。おまえリファクタリングって言いたいだけと (略 少なくとも上記みたいに 2 ステートで済むようなものでいきなり Map とか 思いつく奴は豚肉刻むのにチェーンソー持ち出すのと似てる。
>444 ちげーよ。逝ってる意味わかってねーな。 俺が言いたいのは432がやりたいことの本質はMapじゃねーの?って言いたいだけ。 だいたい"a"とか"b"とかベタ書きするようなコードをそのまま使えとおっしゃるか? "c"を追加したくなるかもしれないし、"aa"に変更したくなるかもしれない。 あるいはString以外のキーを使いたくなるかもしれない。 そういう変化をある程度予測して実装するのは基本だろ。 Mapをチェンソーに例える時点でお里が知れる。 そんなごたいそうなもんじゃねーよ(w
447 :
デフォルトの名無しさん :02/11/07 02:51
>>443 "a".equals(pointname)というはなしじゃねえのですか?
>>455 そういう状況になってやるのがリファクタリングだろ。将来の拡張を考慮して
設計するのはリファクタリングとは呼ばない。それに Map を使ったところで
"c" という新しい状態が出来たなら、どうせ内部コードを書き換えなければ
いけないだろう。それって if 文一個追加するのと何か変わるか? 状態が 10
に増えて Map 使って可視性上がるように修正するのと何か変わるか? 目的と
手段のトレードオフくらい考えれるようになってくれ。
geta, getb を作って使う。
いっそのこと reflection で…
ところで、a,b が不変だったら Map でも良いと思うけど、 可変だと、Map使う方が面倒くさくないか?
条件 2 つでもステートテーブル定義するのが OO の最先端らしいです。
453 :
デフォルトの名無しさん :02/11/07 03:03
boolではいかんのか。
>>452 つまり OO は似非ステートマッスィーンにたどり着いたと!?
Field#setAccessible(true) 使って private フィールド参照すんのが最凶。
Mapを使うと拡張性が上がると主張されているのはこのスレですか? 上がるのはインターフェースの曖昧性だけです。 拡張性≠曖昧性 多態性≠曖昧性
457 :
デフォルトの名無しさん :02/11/07 03:57
LookAndFeelを今やっています。 Bと言うJPanelを継承したクラスにLookAndFeelを作りました。 (一度JFrameにしてみて単体でWindows、CDF/Motif、Metal全部ラジオボタンを押して出るように確認取れています) そのJPanelをAと言うJFrameを継承したクラスに貼りました。 そこでわからないところなのですが、 SwingUtilities.updateComponent(this); //LookAndFeelを変える とするとそのとおり、JPanelを継承したBの部分しか変化しません。 でも私はBが貼ってあるAを変化させたいと考えてます。 SwingUtilities.updateComponent(this);のthisに何をいれればいいのでしょうか?
やっぱこの時間体には誰もいないや・・・・・・・・・・・・・・ どのスレの浮き沈みしてない。 つーことで寝まふ。 おやすみなさい。
>>458 AでSwingUtilities.updateComponent(this);
ってすればいいんじゃないの?
>>457 this.getParent()で良いとは思うけど、親クラスが子クラスのLAF変えるならともかくそれって良いのか?
461 :
デフォルトの名無しさん :02/11/07 12:44
えーと、クラス1で定義した変数xを 別クラスで利用するためには クラス1のインスタンスをクラス2で生成して クラス1のオブジェクト名.xでできますよね? その、クラス1のオブジェクト名.xをクラス3で用いたい時、 クラス2のオブジェクト名.クラス1のオブジェクト名.xになるんですか? 初心者な質問ですみませんがよろしくお願いします。
全てpublicに宣言されている場合は、そうなるよ。
463 :
デフォルトの名無しさん :02/11/07 13:02
>>462 返答、ありがとうございます。
そこで、クラス1で定義した変数xを
クラス2で計算して、クラス3でその結果を表示し、
クラス4でまた計算し直すといったプログラムを組む時、
xの変数名が相当長くなりそうなのですが、
他にいい方法はありますでしょうか?
1.設計を変更する(推奨 2.がんばって書く 3.クラスが参照渡しされることを利用してみたりする Class1 aClass1 = Class3.Class2.Class1; System.out.println(aClass1.x); aClass1 = null;
465 :
デフォルトの名無しさん :02/11/07 13:23
またまた、ありがとうございます。 とりあえずは1でやって見ようと思います。 最悪 Class1 aclass1=new Class1(); int newX; aclass1.x=newX; といった感じで置き換えていけば何とかなりますよね? 頑張って見ます。ありがとうございました
466 :
デフォルトの名無しさん :02/11/07 15:11
JavaAppletの質問です。 ブラウザによって動作できるバージョンが違うとおもうのですが、 その比較表みたいなものはないのでしょうか? WindowsのInternet Explorer4以降が1.1相当というのはわかったのですが、 Netscape、Opera、Mac、Linux等がどのようになっているのかがわかりません。 わかる方よろしくお願いします。
468 :
デフォルトの名無しさん :02/11/07 16:48
Antがうまく動きません。 OS:Windows2000pro Java2SDK:1.4.1_01 Jakarta-Ant1.5.1 1.Java2SDKをインストール j2sdk-1_4_1_01-windows-i586.exe をダブルクリックしてすべて「次へ」と「OK」で インストール。インストールディレクトリは「C:\j2sdk1.4.1_01」。 2.Antをインストール jakarta-ant-1.5.1-bin.zip をDドライブのルートに解凍。 解凍後、Dのルートに「D:\jakarta-ant-1.5.1」が作成された。 3.環境変数の設定 システム環境変数に「JAVA_HOME」「C:\j2sdk1.4.1_01」を追加。 「Path」の先頭に「D:\jakarta-ant-1.5.1\bin;%JAVA_HOME%\bin;」を追加。
469 :
デフォルトの名無しさん :02/11/07 16:49
続き。 コマンドプロンプトを起動して、「java -version」と入力すると java version "1.4.1_01" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01) Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode) と表示されるのでJAVA_HOME、Path環境変数は正しく設定されているものと思われます。 しかし、コマンドプロンプトを起動して「ant」と入力すると Buildfile: build.xml does not exist! Build failed というエラーが表示されるはずなのですが、
470 :
デフォルトの名無しさん :02/11/07 16:49
Usage: java [-options] class [args...] (to execute a class) or java -jar [-options] jarfile [args...] (to execute a jar file) where options include: -client to select the "client" VM -server to select the "server" VM -hotspot is a synonym for the "client" VM [deprecated] The default VM is client. -cp -classpath <directories and zip/jar files separated by ;> set search path for application classes and resources -D<name>=<value> set a system property -verbose[:class|gc|jni] enable verbose output -version print product version and exit -showversion print product version and continue -? -help print this help message -X print help on non-standard options -ea[:<packagename>...|:<classname>] -enableassertions[:<packagename>...|:<classname>] enable assertions -da[:<packagename>...|:<classname>] -disableassertions[:<packagename>...|:<classname>] disable assertions -esa | -enablesystemassertions enable system assertions -dsa | -disablesystemassertions disable system assertions
471 :
デフォルトの名無しさん :02/11/07 16:49
と、javaコマンドを引数なしで叩いた時のようなメッセージが表示されます。 「ant -version」でも Apache Ant version 1.5.1 compiled on October 2 2002 と表示されるはずが上記と同じ結果になります。 どこか足りない設定があるのでしょうか?
472 :
デフォルトの名無しさん :02/11/07 17:06
build.xml does not exist! build.xml を探せ!
473 :
468-471 :02/11/07 17:22
>>472 わかっています。build.xmlが無い場所で引数なしで「ant」とやると
そのようなエラーになるはずなのですが、そうならずに
javaコマンドを引数なしで叩いた時のようなメッセージが出るので
困っているのです。
むしろ、
build.xml does not exist!
と出てくれれば嬉しいのですが・・・・
ant はどうなってるの? バッチファイル?
475 :
デフォルトの名無しさん :02/11/07 17:35
ANT_HOME
476 :
デフォルトの名無しさん :02/11/07 17:40
>>475 ありがとうございます。でもだめでした。
全く同じ結果となります。
手元にあるほぼ同一環境のマシンでは動作するのですが・・・・
何がいったい違うのか・・・・・
477 :
デフォルトの名無しさん :02/11/07 17:44
>>474 jakarta-ant-1.5.1-bin.zip を解凍してできた
D:\jakarta-ant-1.5.1\bin にある ant.bat を叩いているだけです。
自作のバッチファイル等は使っていません。
478 :
デフォルトの名無しさん :02/11/07 17:46
Windows2000sp2でApache1.3.27、Tomcat4.1を連携させようとしたんですが どうしてもうまくいきません。 localhost/info/で見た感じではうまくいってるみたいなですが。。 画像が出ない、jsp、サーブレットが実行されない、何回かリロードすると実行する 極端に重い、などの症状が。。 そういう問題も出るという話は見つけたんですが、回避方法がわかりません。 どななかごぞんじないですか?
479 :
デフォルトの名無しさん :02/11/07 18:41
JTAについて質問なのですが、 ejbContextがEJBContextのインスタンスとします。 UserTransaction ut; try{ ut = ejbContext.getUserTransaction(); ut.begin(); method1(); // updateを実行 method2(); // updateを実行 ut.commit(); }catch(...){ ut.rollback(); } もしもmethod2でエラーが発生して、ロールバックが実行される時に なぜmethod1で行われたupdateもロールバックすることができるのでしょうか? UserTransactionにはmethod1の情報など何も与えていないのに・・・。 UserTransactionの裏ではどういうふうに処理がされているのでしょうか? そんな事知らなくても、そういう物であると思って使用していいのでしょうか?
480 :
デフォルトの名無しさん :02/11/07 19:09
age
からage
482 :
デフォルトの名無しさん :02/11/07 22:30
>>479 そうです。
おそらく内部的にThreadLocalのようなものを活用して、
その部分を隠蔽しているものと思われ。(コード読めば
一発なんだが、どこにあるのか知らんので)
賢いミドルってのは、ありがたいっすね。
483 :
デフォルトの名無しさん :02/11/07 22:42
javaのObject型ってVBのVariant型と考えてももいいのでしょうか?
違います。 VBのObject型だと考えてください。
VBのVariantはプリミティブな型(IntegerとかString(正体はBSTRだけど))でもオブジェクト参照でも何でも入れられる。その正体はCでいうところの共用体です。(VCやると分かる) Javaのjava.lang.ObjectはあくまでもObject型そのものか、Objectから派生したクラスしか入れられない。試しにintを代入してみるといいよ。
486 :
デフォルトの名無しさん :02/11/07 22:49
>>484 今一Object型というのが理解できません。
思わず鼻血がマジで出てきてしまいました。
よろしければObject型をもう少し細かくお教え願えませんでしょうか?
487 :
デフォルトの名無しさん :02/11/07 22:50
>>485 JavaもJDK1.5以降でBoxing、Unboxingに対応するかもしれないらしい・・・
>>485 なるほどありがとうございます。
でも鼻血がまじで止まりません
要は、Object型はクラスなら何でもかんでもいれられるVariant型のこと。
でもクラスじゃないものは入れられない。
>>487 マジで?C#意識したのかな?
490 :
デフォルトの名無しさん :02/11/07 22:58
>>489 Generics導入の一環として、必要な機能らしい・・・
491 :
デフォルトの名無しさん :02/11/07 23:17
>>477 antで困っていた方へ。
せっかくなので、私もダウンロードしてみました。jakarta-ant-1.5.1-bin.zip
…解凍できねぇ。ファイルが壊れてる。 これから、もう一回試してみます。
もう一度試してみたけど、ダメダタヨ。
>>491 たいしたものは作らないくせに金だけは動いているので
重要なマーケットとして認識されています。
495 :
意味不明ですみません :02/11/08 00:39
すみません、先ほど質問してやってみたのですが さっぱりなのでもう一度質問させていただきます クラス2でTextAreaを作っといて クラス1でクラス2のオブジェクトを作り表示させました。 そこで得たTextAreaの値を クラス3で用いたい時はどうしたらいいのでしょうか?
496 :
デフォルトの名無しさん :02/11/08 00:40
クラス3に渡す。 クラス3のメソッドが取りに行く。
497 :
意味不明ですみません :02/11/08 00:47
本当に申し訳ないです。。 クラスからクラスへの変数の 引渡しってどうするんでしょうか?
498 :
デフォルトの名無しさん :02/11/08 00:51
putHoge(Hoge hoge){ foo = hoge; } //// Hoge() { foo = hoge.getHoge(); }
499 :
デフォルトの名無しさん :02/11/08 00:59
アプリケーションについての質問です。 jarファイルをJDK1.2のjavawに関連付けて起動すると 動くのですが、Jbuilderのjavawに関連付けると "main"class no~だったか「メインメソッドがない」みたいな エラーが出て起動できません。 考えられる原因は何でしょうか? ちなみにJbuilderのJDKのバージョンはわかりません。
サーブレットなどでデータベースの Connection Pooling を使用したい場合、 みなさんどうしているんですか? 自前開発か既存のものを利用しているのか、どうなんでしょ?
501 :
デフォルトの名無しさん :02/11/08 01:38
初歩的な質問ですが、FAQでは見つからなかったので質問させてください。 j2sdk-1_4_1_01-windows-i586.exeというものをDLしてインストールし、 パスも通してDOSプロンプト上で「java -version」と打つと キチンと1.4.1_01だと表示されます。 test.javaというアプレットをコンパイルしてブラウザで表示した後、 test.javaの内容を変更しても実行時に変更が反映されません。 正確にはg.drawString("練習です",20,20)の文字列の部分を変更しても 実行時に反映されません。 しかしながら、ファイル名、クラス名を変更して呼びなおすと 変更が反映されます。 この場合、ファイル名とクラス名とhtml側のアプレットのcode属性を コンパイルしなおすたびに書き換えなくてはならなくて不便です。 これはバグでしょうか?どなたか良い方法があったら 教えてください。(長文すみません)
>>501 ブラウザのキャッシュの問題だと思われ。
アプレットビューアで見たら?
>>502 同感。
ブラウザをいったん終わらせてから再度また起動しても
いいけど、アプレットビューワで見る方が楽ね。
ブラウザを終了しても同じです(涙 アプレットビューワは今からググったりして探してみます。 ありがとうございます
実行できました。くだらない質問ですみませんでした。 迷惑ついでにもう一つ、swingというものはjdkの1.2以降は 使えるものなんでしょうか?
>>505 Swingを用いずにいままでGUI周りの作業をされてたのですか?
awtからSwingへ移行した場合のよく言われるメリットは
・OSに強く依存していない
・早くなる
・軽くなる
・きれいになる
・結構互換性がある
・機能が豊富
ただ、過大であると思われても仕方ないだけの機能を盛り込んでいると思う人もいてAWTからの移行を嫌がるユーザがいることは確からしい。
>>501 IE なら CTRL キー押しながら更新ボタンをクリックしてみれ。
508 :
未熟者です :02/11/08 02:50
javaでWebサーバーを作成しているのですが、 POSTメソッドをうけたときのcontent部の処理に困っています。 BufferedReader br = new Buffer.・・・・・・・・ String line; while((line = br.readLine()) != null) String line = br.readLine(); System.out.printlh(line); てな感じにしてるんですが、ヘッダー部は表示されるんですがコンテンツ部が表示されません どうすればよいでしょうか?
>>506 いままでGUIを使ったことありません。
これから課題(自由課題)に向けて勉強します。
貴重な情報ありがとうございます。
>>507 たしかに更新されました。ありがとうございます。
しかしながら、アプレットビューワで表示されている
JLabelとJTextFieldとJButtonが表示されません(涙
また困ったらここに来ます
>>508 readLine() が null を返すのはストリームの終端を検知したときだろ。
この場合それは TCP/IP 接続が切れたという意味だから、繋がりっぱなしなら
永遠に null は返らないで I/O ブロックしたままになる。
HTTP サーバ側で POST のコンテンツを取得するにはクライアント側から
送られてくる Content-Length ヘッダ値を見てそのバイト数分だけストリーム
から取り出せ。
ちなみに POST で送られてくるデータは URL エンコーディングされて
いるので行単位で取り出すことなんてそもそも出来ない。
>>509 オイオイ、IE や Netscape 4 のデフォルト JVM は JDK 1.1.x 相当だから
アプレットで Swing は使えないぞ。<OBJECT> タグ使ったり JDK 1.4 入れたり
すれば別だが…
512 :
未熟者です :02/11/08 03:04
513 :
デフォルトの名無しさん :02/11/08 06:22
長レスすみません。 import javax.swing.*; import java.awt.*; import java.awt.event.*; class Test extends JDialog{ JButton cancelB; Test(Frame f){ super(f,"test",true); Container cont=this.getContentPane(); cont.setLayout(new GridLayout(2,2)); JPanel P1=new JPanel(new GridLayout(2,1)); JPanel P2=new JPanel(); JLabel nameLabel=new JLabel(" サインイン名:"); JLabel pLabel=new JLabel(" パスワード:"); JTextField nameText=new JTextField(15); JTextField pText=new JTextField(15); JButton okB=new JButton("O.K"); cancelB=new JButton("キャンセル"); P1.add(nameLabel); P1.add(nameText); P1.add(pLabel); P1.add(pText); P2.add(okB); P2.add(cancelB); cont.add(P1); cont.add(P2); setVisible(true); pack();
514 :
デフォルトの名無しさん :02/11/08 06:23
続き //閉じるボタンを押した時の処理 this.addWindowListener( new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); }} ); //キャンセルボタンを押した時の処理 cancelB.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ dispose(); }}); }} これをTest test=new Test(jframe); で呼び出してるのですが、思ったように動作しません。 1、cancelBを押しても窓が消えない。 2、このダイアログを呼び出すと、pack()を使ってるのに、 タイトルバーのみのダイアログがでてきて、ドラッグして画面を大きくしてやらないと、 他のボタン等が見えない。 説明下手で申し訳ございませんがどなたかご教授ください!お願いします。
515 :
antで悩んでた者 :02/11/08 08:00
解決しました。 どういう仕組みかはまだわかっていませんが、システム環境変数の「classpath」に カレントディレクトリを含むようにしていると(つまり、「.\」を含める)antが正常に動作 しないようです。 コマンドプロンプトでどこにいても今いる場所がclasspathに含められるので 「便利だなぁ」と思ってそんな設定をしていたのですが、ant使うんだったら いらないと言えばいらないことですよね・・・・
>カレントディレクトリを含むようにしていると(つまり、「.\」を含める) 「.\」?普通は「.」じゃないか?
517 :
デフォルトの名無しさん :02/11/08 09:49
スレッドを使ってDateのオブジェクトで時計を作りました。 でも疑問があります。 なぜかAWT上での表示だとうまく動くのですが、swing上だと前のタイムが重なってしまいます。 例えばswingでは8分8秒が表示されてもそれが消えずに、次の8分9秒が上書きされる形になってしまうのです。 AWTでは全くそのようなことはおきませんでした? これは何故なんでしょうか?Containerに一度乗せてるから? とりあえずわかる人教えてください。 こんなくだらないことでつい徹夜になっちゃいました。 3時ころ見に来ます。
519 :
bloom :02/11/08 09:55
521 :
デフォルトの名無しさん :02/11/08 10:44
例えば54600.0*0.57を計算すると、31121.9999999という結果になってしまうんだけど、 31122といった正しい結果を返すようにできます? 自分で四捨五入するしかないのかな strictfp宣言してみたけど変わらなかった
522 :
デフォルトの名無しさん :02/11/08 10:53
>>521 確かmathクラスに四捨五入するメソッドがありましたよ。
探してごらん。
523 :
デフォルトの名無しさん :02/11/08 11:00
>>517 AWT の update(Graphics) メソッドは
デフォルトで全体を一度クリアして書き込むのに対し
Swing の update(Graphics) メソッドは
デフォルトではクリアせずに上書きした気がする
525 :
デフォルトの名無しさん :02/11/08 17:42
DB接続して、selectやinsert文は発行できるのですが、 descやcreate文などがわかりません。 誰か教えてください
>>521 四捨五入で解決する問題じゃないのだが。
言葉足らずになってますが、これっSQLの質問じゃないですよ(汗 私から見てもこの質問ってSQLの質問のように見えるw Javaでですのでよろしくおながいします。
>>527 selectやinsert文はどうやって発行していてdescやcreateはどうして出来ないのか書いてね。
SELECT や iNSERT と同じ
>>526 整数にして計算後、元の桁数に戻しました
(54600*57)/100
こうするしかないですよね
531 :
デフォルトの名無しさん :02/11/08 23:03
>>521 BigDecimal使いなさい。
整数を扱いたいならdoubleやfloatなんかつかっちゃダメ。
Java以前に、プログラミングの常識。
532 :
デフォルトの名無しさん :02/11/08 23:05
JDBCでOracleネイティブな「descコマンド」をSQLとして 発行できるわけないじょ。 ふつうはResultSetMetaData当たりを引っ張り出すんじゃないのか? Oracle純正JDBCドライバならおそらくサポートしてるでそ。
public class cards { public cards(){ } public static void main(String args[]){ int cards1 = (int)(Math.random() * 13 + 1); int cards2 = (int)(Math.random() * 4 + 1); if(1 == cards1)System.out.println("A"); if(11 == cards1)System.out.println("J"); if(12 == cards1)System.out.println("Q"); if(13 == cards1)System.out.println("K"); if(1 == cards2)System.out.println("S"); if(2 == cards2)System.out.println("H"); if(3 == cards2)System.out.println("D"); if(4 == cards2)System.out.println("C"); System.out.println("["+ cards1 + "]["+ cards2 +"]"); } } 大変恥ずかしい質問なのですが、うまく行きません(w この9~16行目にあるSystem.out.printlnの代わりに何を使えば 「2S」や「AC」のようにちゃんと表示されるのでしょうか
ぶっちゃけ、これは何をしたいプログラムですか? 私が手元で実行してみた結果 H [2][2]
まあそうなるわな。 ランダムでトランプ1枚を選出したいのだと思われ。と、まじれす。
536 :
デフォルトの名無しさん :02/11/08 23:47
Windows Me のMS-DOSプロンプトで Javaのコンパイルエラーがログ流れて見えません。 ログを途中で止めるか上のエラーを見るにはどうしたらいいのでしょうか?
537 :
デフォルトの名無しさん :02/11/08 23:48
コマンドラインに java sample | more とか java sample >> a.txt とかは?
>>536-537 98系はそれ無理かも。
私はwindows版のbash入れてる。FAQにその関連話題あり。
539 :
デフォルトの名無しさん :02/11/08 23:58
/*
>>533 これでどう?
ちなみにコンパイルしてないからw
*/
public class cards {
public static void main(String args[]){
int cards1 = (int)(Math.random() * 13 + 1);
int cards2 = (int)(Math.random() * 4 + 1);
String card1S,card2S
if(1 == cards1)card1S = "A";
else if(11 == cards1)card1S = "J";
else if(12 == cards1)card1S = "Q";
else if(13 == cards1)card1S = "K";
else card1S = ""+cards1;
if(1 == cards2)card2S ="S";
else if(2 == cards2)card2S="H";
else if(3 == cards2)card2S="D";
else if(4 == cards2)card2S="C";
else card2S = ""+cards2;
System.out.println("["+ card1S + "]["+ card2S +"]");
}
}
540 :
デフォルトの名無しさん :02/11/09 00:01
>>533 //正解例
//import java.lang.Math;
public class Card{
public static void main(String args[]){
int result1=(int)(Math.random()*13+1);
int result2=(int)(Math.random()*4+1);
char card1='\0',card2='\0';
switch(result1){
case 1:
card1='A';break;
case 11:
card1='J';break;
case 12:
card1='Q';break;
case 13:
card1='K';break;
}
switch(result2){
case 1:
card2='S';break;
case 2:
card2='H';break;
case 3:
card2='D';break;
case 4:
card2='C';break;
}
System.out.println("["+card1+"]["+card2+"]");
}
}
>>537 538
ありがとうございました。
>>537 のコマンド行ってみましたがうまく行きませんでした。;;
>>538 のようにFAQ調べてみます。
>>533 おれは一週間前に始めたぞー。ガンガレ
(このスレは勉強になりまする)
543 :
デフォルトの名無しさん :02/11/09 00:10
>>541 エラーが出力されている途中でCtr+Cで強制終了させるのはいかがでしょうか?
ただし、かなりの熟練度が必要になりますがw
544 :
デフォルトの名無しさん :02/11/09 00:25
MEってパイプ操作とかリダイレクト操作もできないわけ? ちなみにプログラム上で標準出力とかエラー出力の場所をファイルに変えられるけど 素人にはお勧めしないから方法はとりあえず書かないでおく。
>>541 お手軽コース: CPad
本格的コース: Cygwin
痴呆コース: -Xstdout
546 :
デフォルトの名無しさん :02/11/09 00:58
javaのクラスライブラリ(?)を動的にjavaのプログラム内で取得する方法ってありますか? Virtualマシンの使用できるパッケージ情報とかをプログラムの中で処理したいんだけど 誰か分かりますか?
>>546 リフレクションのことか?ぐぐってみれ。
549 :
名無しさん@Emacs :02/11/09 01:04
>>546 クラスライブラリを取得って、まさか全部はないよね?
「取得」の意味するところがよく分からんのだが、System.getProperties
か、java.lang.reflectのどっちがが、君のやりたいことになると思う
リフレクションAPIで使うファイル名をユーザソースで取得したいから TREE構造のルートとかを取得したいんでふ
551 :
デフォルトの名無しさん :02/11/09 01:09
public class test extend JFrame implements ActionListener{} ↑ これをコンパイルすると 「testはabstractとして宣言する必要があります」 ってエラーが出ます。 これはなんですか?どうすればActionListenerを付けれるんでしょう?
System.getProperty("classpath") だとクラスパスしか分からなくて そっからデコードするのはさすがに・・・ JBuilderとかでやってるtreeを作りたいんだが・・・
解決しました(涙
>>540 result1 が 2~10 のときはどうしますか
>>533 ,539,540
if ... else if ... がたくさんつながったり
switch がやたらでかくなるのは見苦しいとは思いませんか
String[] card1 = {"A", "2", (中略), "10", "J", "Q", "K"};
String[] card2 = {"S", "H", "D", "C"};
とかやって表を引くようにしましょう
>>554 一昨日はじめたばかりの人に配列とか新しい要素をなるべく取り入れずに
知ってる知識内で解決策を見出した方が良いと思われ
javaのswingを使ってウィンドウを立ち上げてそこに JTextField,JButton等を配置しましたが、 Graphicsの描写はどうすればいいか教えてください
>>556 ありがとう・・
だが難しいよぉ・・・しかも英語(苦手です
ゆっくり読んでくよ・・
>>557 GUI苦手だけど確かpaintメソッドをオーバーロードすればよかった気が
swingの場合は、推奨はpaintComponentだったかのう
>>536 とってもFAQですね。
javac -J-Djavac.pipe.output=true sample.java > error.log
でリダイレクトされます。バッチファイル作っておくと便利ね。
public class myCanvas extends JComponent { myCanvas(){ setPreferredSize(new Dimension(400,300)); } public void paintComponent(Graphics g) { g.fillRect(0,0,400,300); } } jFrame側 myCanvas mc=new myCanvas(); getContentPane().add(mc, BorderLayout.CENTER); こうすると意味不明なエラーが出ます。 間違いを教えてください
>555 とか書かれてしまったが、自分ならどうするか考えてみた。533を置いていってしまって悪いが、 JOKERのうまい扱い方はないのだろーか(中途半端)?だれか教えて。 public class Suits { public static final Suits SPADE = new Suits("S"); public static final Suits HEART = new Suits("H"); public static final Suits DIAMOND = new Suits("D"); public static final Suits CLOVER = new Suits("C"); private String name = null; private Suits(String name) { this.name = name; } public String toString() { return (this.name); } }
public class Card { private Suits suits = null; private int number = -1; private static String[] mark = {"JOKER", "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"}; public Card(Suits suits, int number) { if ((number > mark.length) || (number < 1)) { throw new IllegalArgumentException("illegal card number."); } this.number = number; this.suits = suits; } public int getNumber() { return (this.number); } public Suits getSuits() { return (this.suits); } public String toString() { return ("[" + suits.toString() + ":" + mark[number] + "]"); } }
>>556 申し訳ありません。色々いじってたらなおりました。
public class myCanvas extends JComponent implements MouseListener ↑このような記述をすると、 「myCanvasはabstractとして宣言する必要があります」って出ます。 どうしたらいいでしょう?
Javaって使いこなせると、どんなソフト作れるの? 現在Javaでよくつくられてるソフトってなに? Web系じゃないJavaで知ってる人いますか?
570 :
デフォルトの名無しさん :02/11/09 02:51
571 :
デフォルトの名無しさん :02/11/09 02:57
>>568 MouseListenerのメソッドを全て実装していないからだと思われ。
全て実装する、もしくはMouseAdapterを使って無名インナークラスを
作るなどしましょう。
コンパイルが通り実行テストをしてたんですが、 プログラムを開始すると毎秒何行かわからないペースで 常に何かがdosプロンプトに出てくる(涙
>>571 ありがとうございます。すべて実装したら直りました。
574 :
デフォルトの名無しさん :02/11/09 03:02
>>572 何かとはなんぞや?
スレッドは使ってる?
板だってば
>>574-575 GUIプログラミングで、JComponentを継承したクラスのオブジェクトを
JFrameを継承したクラスのウィンドウの中に置き、JConmonentの方に
MouseListenerを付けてクリックされるとe.getX()で座標を取って
そこに死角形を描画するプログラムで、スレッドは使用してません。
色々いじった結果、現在はクリックするたびにに
「NullPointerExなんとか」ってのを筆頭に
30行ぐらいのメッセージがdosプロンプト上に
流れます。何度クリックしても同じメッセージです。
578 :
名無しさん@Emacs :02/11/09 03:13
>>570 結局「生IPを抜くツール」を設置するの諦めたみたいだな。
せっかくcronのjobで毎日240通の愛のメールを送ろうと思ってたのに(藁
579 :
デフォルトの名無しさん :02/11/09 03:16
public class A extends Applet { public A() { new B(); } } public class B { private Vector v; public B() { v = new Vector(); v.add("a"); } } IEで見るとA can't be instantiated ってエラーでるんですけど、 Vectorの代わりにHashtableを使うとエラーでません。 でもIE以外ならVectorのままでもエラーでません。 いったいどういうことなんですかね?
580 :
デフォルトの名無しさん :02/11/09 03:16
>>577 NullPointerExceptionですか。
スタックトレースが出力されてると思いますが、
その際例外が発生している行番号が表示されているはずです、恐らく。
その一番上の行番号にある行での使用しているオブジェクトの処理を確かめてください。
恐らくNullのままでインスタンスが生成されていないのだと思われます。
GUIアプリでイベントを発生させたときに、イベントのスレッドが
引き起こす現象。解決策は
>>579 が答えてくれる予定だ。
激しく場違いな気がするのですが Javaで組まれたプログラムとか、置いてあるサイトとかありますよね それが動かないというか読み込みされないというか 利用できないのですがどうしたらいいんでしょう?(涙
583 :
デフォルトの名無しさん :02/11/09 03:25
>>579 恐らくJVMのバージョンが問題なような。
あとIEのバージョンは何ですか?
IE6.0です。
>>584 ウチもIE6.0ですが問題なく動作しましたよ。
Java Plug-inを使用するようにしてみれば?
寝る前に質問。 swingを用いたプログラムで、appletからjframeを継承したウィンドウを 立ち上げてチャットを行うものを作っている途中ですが、 ブラウザがjdk1.1とかでswingに対応して無い場合は objectタグとかでムリヤリ持って来るという方法があると どこかで漏れ聞いたのですが、参考にするスレ、板、もしくは ググるためのキーワードを教えていただけますか? 探しても無いもので・・・
587 :
デフォルトの名無しさん :02/11/09 05:01
俺も寝る前に質問 TextFieldに値が入れてあって誰かがその値を変更させたら 変更された値に+100するっていう問題なんですけど 自分で考えてやったら一度いじくって自分でやって見たら どうもうまく行きませんなんかいい方法ありますか?
>>587 日本語が良くわからん。
こういう人を相手にすると、だいたいろくなことに
ならないんだよな…
これ以上聞くのが怖いから放置。
590 :
デフォルトの名無しさん :02/11/09 06:44
>>589 すみません
書いた自身の俺が読んでもわかんねーすw
やりたいことの流れは
TextFieldに1000と書いてある
↓
手書きでで1200に変更する
↓
TextFieldが変更されたら+100をして1300に自動で変更
↓
また変更されたらその値に+100をする
これを繰り返すってことです。解りにくいっすね、
変更前の値と変更後の値をどう置いたらいいかわかんなかったのです。
わからない人は放置でかまわないです。すみませんでした。
サーバサイドで MVC で作るとき、URL 直入力だと View の JSP にアクセスできちゃうよね。 いつも疑問なんだがうまい隠し方はないだろうか。
>>591 WEB-INFにJSPを入れる。
以上。
>>590 変更前の値: てきとーに変数にでも入れておけ
変更後の値: TextFieldから読み出せ
変更タイミングの知り方: リスナ使え
JComponentを継承したクラスで、paint(Graphics g)を使用せず 自分で作ったメソッドを呼び分けることによってグラフィックを 描写したいのですが、 Graphics gs; コンストラクタでgs=getGraphics(); として、メソッドで gs.draw任意 としたらNullPointerExceptionを筆頭に 30行ぐらいエラーが出ます。 何か良い手段はありませんか?
>>595 getGraphics()は呼び出せる場所が決まっていたような気がする。
paint系methodのみだったか。
こうやって、Graphicsオブジェクトを渡してあげるのはどうだろう。
paintComponent(Graphics g){
super.paintComponent(g);
subPaint(g);// 自分で作ったメソッドにGraphicsオブジェクトを渡す。
}
597 :
デフォルトの名無しさん :02/11/09 13:29
MulticastSocket#getInterface() とそのスーパークラスの DatagramSocket#getLocalAddress() の違いが分かりません。DatagramSocket の方は TCP の場合と同じように NIC とそれに割り当てら れた IP が複数ある場合にどちらとバインドするかだと思うのですが、じゃあ MulticastSocket の getInterface() っていったい何なんでしょうか?
>>594 本当もなにも・・・
そのページに書いた場合のデメリットや、なぜそうした方が良いかが
丁寧に書かれてるだろ?
それ読んで自分で判断しる。
書いた方がいい場合も、書く必要がある場合もある。
最終的に判断が付かなかったら好みで選べ。
>>596 ありがとうございます。エラーは出なくなりました。
しかしメソッド自体が実行されません(涙
600 :
ふぉるてん :02/11/09 13:54
Forte for Java 4で、間違えてコンポーネントパレットのコンポーネントを削除してしまいました。 どうしたら帰ってきますか? 消しちゃったのはJTextFieldです。困ります。
601 :
デフォルトの名無しさん :02/11/09 13:59
サーブレットでArrayListを使っているのですが同期を取らなければいけないと いうことですが、取る範囲について迷っています。 ArrayList内にシーケンス番号とデータを入れたクラスをいくつも格納してあるの ですが、このデータを書き換える場合、for文でArrayListを回してシーケンス番号 が一致したものを取り出し、データを書き換えて、さっきまでArrayに入っていた 古いクラスは消して新しいデータをAddするという感じになるのですが、この 一連の動作全てに排他処理を掛けています。これだとすごい遅くなるような気が するのですが他にいい方法ってないものなのでしょうか?
602 :
ふぉるてん :02/11/09 14:03
>>600 sampledirがあるディレクトリの、system/palette/Swing/なんとかかんとか_hiddenを消したら出てきました。
603 :
デフォルトの名無しさん :02/11/09 14:07
>>590 i = Integer.parseInt(TextField.getText()) + 100;
じゃ駄目なの?
前の値覚える必要あるの?
>>599 which?
・メソッドを通らない。
・描画が反映されない。
>>602 それわかってんなら、自分で直しやがれw
>>604 描画が反映されません。
実行開始時も実行中もdosプロンプト上にも何もエラーは
表示されることはなく、ただただ描画が反映されてないだけです。
これからまた色々と素人なりに原因を調べますが、
親切な
>>604 様、お暇があれば原因究明のために
何をすればいいか指示をください。
repaint()
メソッドがうまくいきました! g.drawRect(px,py,50,-10); ↑この最後の負の値が原因だったみたいです ご迷惑をおかけしました
609 :
デフォルトの名無しさん :02/11/09 14:44
>>593 、
>>603 レスどうもです。
前の値を覚えておく必要はないんですけど、
変更されたタイミングを知るためには
前の変数xとすると
!(x==Integer.parseInt(TextField.getText()))
でその後現在のTextFieldの値をxに更新
見たいな感じになるのかと…
ボタンかなにかにActionListenerをのっけて押した時
テキストフィールドの値が変ってたら・・というのだったらできそうなのですが
値が変ったら自動的に変更というのがいまいちわからないんです。
どんな風にリスナを使えばばいいのでしょうか?
長文すみません
610 :
ふぉるてん :02/11/09 14:56
>>605 ありがちけど、カキコんだあとで、英語サイトをgoogleでみつけた。
612 :
デフォルトの名無しさん :02/11/09 15:21
>591 サーブレットからRequest経由でダミーの値渡して、その値がこなかったら エラーページに飛ぶチェックをすれば?
613 :
デフォルトの名無しさん :02/11/09 15:24
xid = (b[0] << 24) + (b[1] << 16) + (b[2] << 8) + b[3]; xidはint、bはbyte[] として作ったxidを復元したいのですが、 dat[0] = (byte)((xid & 0xFF000000) >> 24); dat[1] = (byte)((xid & 0x00FF0000) >> 16); dat[2] = (byte)((xid & 0x0000FF00) >> 8); dat[3] = (byte)(xid & 0x000000FF); では値が変わってしまいます。 変なところがあれば指摘して頂きたいのですが。
JAppletを用いたアプレットからswingのJFrameを使った アプリケーションを起動したいのですが、アプレットビューワなら 見れるのにブラウザでは見れません。 ブラウザからツール→インターネットオプション→詳細設定 と見ても、java 2 v1.4.1を使うと書いてあります。 ネットに上げてブラウザから見る場合においても、 objectタグなんかを使えば見れるらしいですが、 どうすればいいかわかりません。 ググっても何がなんやら・・・ IEの5.5以上とnetscape6以上からアプレットを見れる ようにするにはどうしたらいいでしょう?
>>614 JDK1.4使ってる時点で見ようと考えるコンシューマはいないと思われ。と。
616 :
デフォルトの名無しさん :02/11/09 15:31
>>613 バイトは8ビットの変数です。
つまり、それ以上シフトさせてしまうと、あとには0しか残りません。
いくら逆にシフトしても0のはず。
617 :
デフォルトの名無しさん :02/11/09 15:33
>>616 と思ったら全然主旨の違う質問でしたね。
脊髄反射して申し訳無い。
>>616 上の行が正常に動作するのはInteger.toBinaryStringの結果から確認しています。
問題は下の方ですね。
少し原因がわかってきました。 xidがマイナスの場合前から2バイト目の数字が1小さくなるようです。 xidがプラスの場合は正常です。 intはsignedなのが何か悪影響を及ぼしていそうです。
>>620 >(byte)((xid & 0xFF000000) >> 24);
(byte)(xid >>> 24);
で良いのでは?
>>613 >xid = (b[0] << 24) + (b[1] << 16) + (b[2] << 8) + b[3];
は
xid = ((b[0]&0xFF) << 24) + ((b[1]&0xFF) << 16) + ((b[2]&0xFF) << 8) + (b[3]&0xFF);
最上位バイトはマスクする必要ないか。 xid = (b[0] << 24) + ((b[1]&0xFF) << 16) + ((b[2]&0xFF) << 8) + (b[3]&0xFF);
>>623 byte型でもマスクする必要があるの? byte & 0xFF
>>623 化けなくなりました。でも、原因がいまいちわからないです。
byte->intの時に・・・
あ、符号が評価されてしまうんですか。
1001 -> 11111001
627 :
デフォルトの名無しさん :02/11/09 17:09
>>626 そうじゃないでそ。
byteからintに成り上がる操作をする瞬間に、上位3バイト
に埋まっているのが全部0ではないからでそ。
b[0]<<24って0にならんのか...
>>628 シフト演算でintに成り上がるので、4バイト=32ビットあるよ。
10101010→10101010 0000000 0000000 00000000
>>609 if ( x == Integer.parseInt(TextField.getText()) ) {
x = Integer.parseInt(TextField.getText()) + 100;
}
こういう事じゃないの?
最近はじめたのですが、j2sdk1.4.1って推奨されないんですか? swing系などの追加された機能さえ使わなければOK? それとも他に何らかの段階で問題があるとか・・・
>>630 アホですかあんたは。
>>609 「何かが書き込まれたイベント」リスナーがあるからそれ使え。
CaretListenerとか。
int num = 08; 07までは普通に数値として処理されるのに、08になった途端 「整数 08 が大き過ぎます。」とエラーが出るのはなぜでしょう? しかもint num = 05 と入れてからnumを表示させても 5としか出てこないから数値はちゃんと入ってるようだし
最初の数値の0を取ったらいいんだろうけど ちょっと疑問に思いまして・・・
>>634 0*はコンパイラが8進数として認識します。
public class apptest extends JApplet implements ActionListener{ JButton button; JTextField text; public void init(){ button=new JButton("入室"); text=new JTextField(10); JLabel label=new JLabel("名前を入力してください"); JPanel panel=new JPanel(); button.addActionListener(this); text.addActionListener(this); getContentPane().add(label, BorderLayout.CENTER); panel.add(text); panel.add(button); getContentPane().add(panel, BorderLayout.SOUTH); } public void actionPerformed(ActionEvent event){ if(event.getSource()==button || event.getSource()==text){ chatFrame f=new chatFrame("Welcome G chat"); f.setSize(600,400); f.setName(text.getText()); f.setVisible(true); } } } 以上のappletが動作しません アプレットビューワならキチンと動くのですが、 ブラウザ(java 2 v1.4.1対応)で見れません。 正確には、タグで指定したサイズの灰色の 四角が表示されるだけです。 どうしたら見れるようになるでしょう?
>>637 独自のクラスがあるようですが、
どのようにjarファイルを配置していますか?
非推奨・・・swingとかいう比較的新しいのを使ったつもりです。 jar・・・すんません、これもよくわかりません。 chatFrameはJFrameを継承したクラスで、 他のクラスも同一フォルダに置くだけの素人プログラマーです。 しかし、init内部でのボタンやテキストフィールド配置すら まったく反応しないのがおかしいと思って。 やっぱPC古いからでしょうか IE6とjava 2 v1.4.1が動いてるんですが。
例外って、try{}catch{}のアレですか? アプレットビューワで見る限りでは 例外やNullPointerException等の エラーメッセージはdos窓には 出てきません。 もうだめぽ(涙
643 :
デフォルトの名無しさん :02/11/09 22:24
>>630 アホでした…ボタンとかは無いわけね。
>>609 だとすると、元の数字が1000だとして、
新たな数字「2000」を打ち込みたいとする。
そのときTextFieldに「2」って打ち込んだ瞬間に
変更ってみなすの?それとも桁数限定?
入力する桁数がわからなきゃかなり面倒くさいね。
どっちにしろ、KeyAdapter使えば出来ますよ。
>>636 なるほどそうだったのか。ありがとうございます。
ねてました。
>>633 氏、643氏
ありがとうございます。
CaretListenerにKeyAdapterですか。
やる気でてきました。助かりました。
全く関係ないんですが初心者javaのスレが二つ立ってるのは何故なんですか?
なにいってんの
>>648 >角度とか。
これに負けた。ワラタよ。
この自演、前も見た
>>642 ちがう。JavaConsoleという、IEそのたのブラウザがJVM起動したあとの
標準出力、標準エラー出力を表示する機能があるから、それ見ろ。
スタート→設定に表示設定できるアイコンあるから。
653 :
デフォルトの名無しさん :02/11/10 06:20
>>513 です。
JDialogで非モーダルにしたら
pack()が適用されたんだけど、
モーダルでは適用されないの?
654 :
デフォルトの名無しさん :02/11/10 11:17
アンド演算をしたいんですが if(time <= 6)&&(time >= 9) { xxxxx; } then { yyyyy; } ってやってみたんですが、コンパイルの時にエラーが出てきましたTT 間違っているんでしょうか?
655 :
デフォルトの名無しさん :02/11/10 11:29
Error出たっていってどんなerrorかかかないやつは,自分の頭の中でもすべてのerrorが縮たいしてんのかな. if (condition) { ... } "("と")"がぬけてる.
656 :
デフォルトの名無しさん :02/11/10 11:30
thenも変だね.つうか,むちゃくちゃだ.Javaのcodeみたことあるの?
つーか、6以上で尚且つ9以下って存在するのか? ネタ決定
逆だ、6以下で9以上。
if( ( day <= 6 ) && ( time >= 9 ) ) { xxxxx; } else { yyyyy; } こんなところか。
660 :
デフォルトの名無しさん :02/11/10 11:45
すみません、説明足りずでした java:24: ';' がありません。 if(time <= 6)&&(time >= 9) ^ っていうエラーが出ます あと<=6 と >=9じゃなくて >=6 と <=9 でした・・ しかもthenじゃなくて、elseですTT
661 :
デフォルトの名無しさん :02/11/10 11:46
662 :
デフォルトの名無しさん :02/11/10 13:02
別に困っているわけじゃないのですがふとしたド素人の疑問です。 Cだとargv[0]で実行プログラム名が返ってくるじゃないですか。 javaのargs[0]は引数の一つ目が返ってくると、じゃあ、javaの mainメソッドがあるクラス名ってどうやって取るのですか?
>>662 >mainメソッドがあるクラス名
は自明のような気がした。
>>664 調べるまでもなくそのファイルに書いてある。思いっきり。
名前が変わることもない。
え、つまり例えば引数が間違ってたときのUsageを出力したい場合って、 "argv[0] 引数1 ..."って動的に書けずに、 "java クラス名 引数1 ..." ってべたに書かないといけないんですか?
C:\Program Files\My Company\My Application>usageapp Usage: C:\Program Files\My Company\My Application\usageapp.exe --help
>>667 はBCC5.5
↓VC7
C:\>"C:\Program Files\My Company\My Application\usageapp.exe"
Usage: C:\Program Files\My Company\My Application\usageapp.exe --help
Usage: argv[0] の愚かさを思い知ってください。
"java Usage args[0] argv"とかで検索してサンプルをいろいろ探しましたが、 どうやらみんなべたに書いてるみたいですね。 あきらめろということですか?
Unkodaisuki!
>>670 あきらめてね。
必要な気もそんなにしない。そのファイルはパッケージなり、コメントなり、
毎回違うものを書いているわけで。コピペで使いまわすことも余り無い。
どうしても直書きしたくなければ、プロパティファイルか、
プリファレンスか、ソースコード生成プログラムを使う。
私はプログラムによるソースコードの生成が好み。
673 :
デフォルトの名無しさん :02/11/10 15:43
static宣言についての質問です。 static宣言したものはコンパイル時に作成されるというふうに学んだのですが、 宣言する場合と宣言しない場合を具体的にはどのように使い分けたらよいのでしょうか? よろしくお願いします。
>>670 バッチファイルで、そのメッセージを出力するようにするのはどうです?
>>673 必要無い時はstatic宣言しない。基本(?)はインスタンスメソッド。
staticにする代表的なものは、
定数、Singleton、ユーティリティメソッド、その他。
>static宣言したものはコンパイル時に作成される
static宣言したものはコンパイル時に決定される
>>672 さん
>>674 さん
すみません、特に今困っているわけでないので。(汗
最初の発端はふとした疑問です。(javaのCとは違う点うんぬん)
とりあえず、いろいろとありがとうございました。
>>676 なぜargvの中にクラス名が渡されないかというと、(たぶん)
Cではプログラムを見ても実行ファイル名はわからないが、
Javaではプログラムを見ればクラス名が固定で書いてあるからだ。
少なくともmainのようなstaticメソッドの中では、クラス名を可変にする
意味がない。
>>677 と、言うか実行ファイルという概念があまり無いのではないのだろうか?
すべてのクラスは単一のクラスツリーに属するわけで。
>>678 まあ、そういっても良いかもね。
mainのクラス以外に「プログラム名」に相当する名前空間はない。
んで、クラス名はそこに書いてある(実行時に変わる可能性はないし、
可変にしておく意味はない)。
Cの場合は「プログラム名」が普通はファイル名で、
プログラムテキストを見ても書いてない。実行時にしかわからない。
Javaマンセー
>>678 ちょっと間違いが入ってるな。Cの場合(というよりUnixと言うべきだが),
argv[0]は、ハードリンクによって異なる動作を行うプログラム用だろう。
/usr/bin/exとして起動された場合と、/usr/bin/viとして起動された場合と、
/usr/bin/edとして起動された(これは自信なし)で、動作が変わるでしょ?
つまり、立派に引数になってるのだ(どう呼び出されたか、という意味で)
>>681 シェルスクリプト では よく使われる技法だと思われ。
684 :
デフォルトの名無しさん :02/11/11 14:31
JAVAでシューティングゲームを作った人はいますか? もし、そういう人がいるのならどの本を呼んで勉強したのか教えてください。
685 :
デフォルトの名無しさん :02/11/11 15:03
>>684 遊びのレシピ。
C++&Delphi用だけどな。
>>684 遊びのレシピ。
C++&Delphi用だけどな。
今、俺のタスクマメージャにjava.exeが20個あるぞ(藁
688 :
デフォルトの名無しさん :02/11/11 15:19
>>689 付箋ソフトがどういうものか調べてください。
>>688 動かしてみたが、デスクトップには張り付いてはいないようだが…。
単にタイトルバーや枠が無いウィンドウを表示しているだけでしょう。
一応(Visual Studio付属ツールの)Spy++でチェックしたけど、
親ウィンドウは「SunAwtWindow」という奴だった。
付箋紙ソフトなら、デスクトップウィンドウが親になっているはず。
>>688 そのソフトを調べりゃいいと思うが。javax.swing.JWindow から派生したクラスを使って付箋を実装してたよ。背景やボーダーの描画を工夫してそれらしく見せている。
693 :
デフォルトの名無しさん :02/11/11 19:50
JavaでPCのシステム日付を変更する方法ってないのでしょうか? Dateクラスを変更しても、システム日付にはなんの影響もないし、Systemクラス にはそれっぽいメソッドもないので、無理なんでしょうか?
>>693 Runtime.getRuntime().exec("date 2002/11/11");
Runtime.getRuntime().exec("time 20:10:00");
と思ったが date/time は内部コマンドか… バッチファイル被せて出来るか
知らんが。
695 :
デフォルトの名無しさん :02/11/11 20:20
参考書通りにアプリケーション、アプレットをAWTとswingで作れるようになったものです。 ソケットプログラムもできましたし、SQLを噛ませることもできました。 それで次にサーブレットに移ったのですが少し疑問がわきます。これってほんとにjavaなんですか? 私には単なるHTMLにしか思えません。 そこで教えてもらいたいのですが、次にjavaを学ぶとしたらどの方面に進めばいいのでしょうか? ちなみに今まで業務系だったので、今全く扱ったことのないキャラの動画JMFを使ったサウンド の勉強しています。 これ以上学ぶところってあるのだろうか?・・・・・・・そろそろC#に逝った方がいいのでしょうか?
696 :
でふぉるとん :02/11/11 21:47
>>694 内部コマンドならcmd.exeなりcommand.comなりで実行しる
Windowsの話だよね?
697 :
でふぉるとん :02/11/11 21:51
698 :
デフォルトの名無しさん :02/11/11 21:53
>>695 ソースコード2万行以上のものを一人で作ってようやく中級です。
>>698 メソッド一つで2万行以上のものを一人で作ってようやく上級です。
701 :
名無しさん@Emacs :02/11/11 22:23
1メソッドって 64kまでだったのか。知らんかった。
>>695 いっている意味がわかりませんが。
・JSPは腐れることが宿命づけられていますので、それだけ見て
理解した気になるのはやめてください。
・J2EEのJMS、JTA、JNDIあたりを理解してください。はしょって
言えばCORBAサービスのJava版です。
・JAXP、JAXR、JAX-RPC、SOAP、JAXBあたりを理解してください。
データのフォーマットはXMLで、が旬です。
最近のCPUだとどっちかというと4GBの壁な気がした。
706 :
デフォルトの名無しさん :02/11/11 22:48
>>695 あとはEJBの実装とかJ2EEパターンを使った設計とか最近のはやりならStrutsを使った設計とか。
>>703 JSPみたいに自動生成コードとかでない限り、64Kの制限に引っかかる
事はありえないけどね。
JSPだと、カスタムタグを70個ほど使うと、簡単にこの制限に引っかか
るらしい。
質問させてください 症状 ●家のIEはjava 2 v1.4.1の環境で、自作のアプレットの動作を見ようとしても 灰色のアプレット領域が出るだけで何も表示されない ●学校のnetscapeでは「java -version」と打つと1.2.2だと返事が出るが アプレットを見ようとしても上記と同様の症状。 ●しかし、共にアプレットビューワならキチンと見れる。 しかしながら、学校のnetscapeで見ると 「java.lang.NoClassDefFoundError」と出る。 グーグルで探してもよくわかんなくて・・・ どうしたらいいか教えてください。 もしくは、参考になるスレ、サイト、または検索に使うべき言葉を教えてください
>>698 個人の趣味プログラムなんて、よほど多機能でないと2万行もいかんだろ。
それともスカスカでダラダラでスパゲティなプログラムでも書くのかな
>>706 Strutsって旬なの?どっちかっていうと寂れてる気がするが・・・
711 :
デフォルトの名無しさん :02/11/12 09:03
thisの概念がいまいちよくわかりません。 どうか、やんわりと説明していただけませんか?
712 :
デフォルトの名無しさん :02/11/12 09:05
ちょっとアンケート あなたの1000行プログラムって何KB? ソース容量[bytes]/ソース行数(=[Bytes/LINE]=[KBytes/1000LINE]) を計算して下さい 漏れは27.2[Bytes/LINE]
>>711 thisは自分のクラス。俺的には必要な時以外は別につけなくてもいいと思うね。
superが親クラス。superはオーバーロードしたときに使います。
>>713 自身はないが,その答えは間違ってると思うぞ.
715 :
デフォルトの名無しさん :02/11/12 11:28
>>713 thisは自分のクラスじゃなくて自分自身のオブジェクトを指す。
同じクラスでも違うオブジェクトに対してはthisは使えないでしょ?
716 :
デフォルトの名無しさん :02/11/12 11:28
>>713 クラスとインスタンスとオブジェクトは
ちゃんと区別して使わないと混乱するような。
>俺的には必要な時以外は別につけなくてもいいと思うね。
俺は m_val みたいに書くぐらいだったら this.val ってやるほうが好き。
まぁ好き嫌いの問題だけど。
System.out.println(this == super); superも自分自身のオブジェクトを指すようだが。
719 :
デフォルトの名無しさん :02/11/12 11:57
>>718 それは、スーパークラスと自分自身のスーパークラスが適合して
trueが返ってきてるわけだから、違うと思うよ。
>>719 >スーパークラスと自分自身のスーパークラスが適合してtrueが返ってきてる
なんだ、ネタか。
まぁオブジェクトとかインスタンスって言葉自体が曖昧だわな。 特にjavaの世界は。。
>まぁオブジェクトとかインスタンスって言葉自体が曖昧だわな。 >特にjavaの世界は。。 たんなる勉強不足だろ。
長いことC++とかやったあとにJavaに触ると ??てなるのは確か。
>>724 それは C++ の勉強もちゃんとやってなかっただけだろ。
正直cとjavaってどっちがとっつき易いのかな。
>>723 オブジェクト=クラスと言う型から作られた実体。
インスタンス=オブジェクト指向プログラミングなどで使用される用語である。オブジェクト指向では、
オブジェクトの設計図となるクラスを作成し、そのクラスに基づき、情報の実体であるオブジェクトを生成する。
このオブジェクトを、「クラスのインスタンス」と呼ぶ。
で一体何が違うのよ。この両者って?
>>727 一般に、狭い意味のオブジェクトはインスタンスと同じ意味だが、
広い意味のオブジェクトはクラスとインスタンスの両方を指す。
例えばオブジェクト指向、という場合は普通は広い意味で用いる。
>>729 わざわざ「一般に」と書いたのだが。
C++ でも「オブジェクト」は、広い意味か狭い意味かを
文脈で判断しなければならないような曖昧な単語です。
喧嘩はやめて(●´ー`●)
なっち天使
>>731 ×インスタンス→クラスから作られた実体
○クラスインスタンス→クラスから作られた実体
735 :
デフォルトの名無しさん :02/11/12 14:19
Java で m_ などの接頭辞を付けないのはなぜですか? ソース読んでても分かりにくいです。
タンス→小指をぶつけると痛い角
>>735 VCでもJavaでも、ベンダの作法に従う人が多いから。って感じかなあ。
>>736 すると、タンシエイト→小指をぶつけて痛いこと。ってことか?
アメリカ人ってタンスの角に小指をぶつけると痛いことを知らない人が多いのだろうか?
739 :
デフォルトの名無しさん :02/11/12 15:41
>>735 Javaのメソッドや変数、クラス等の命名規則はJavaの本家Sunからも
出ていて、そのCordingStandardによればm_ナントカのような名前の付け方はない。
なので、
>>737 さんの言うとおり、Javaではそういう命名はしないんでしょうね。
アメリカにタンスはあるのか? 家内土足なアメリカ人の生足とタンスが接触する可能性は?
>>739 JDK 付属のソースとか見ると Sun のコーディング規約に
完全には従っていないコードも ちらほらとあったりするけどね。
昔を思い出してネタ振ってみたんだが荒れないのは大人になったのか厨が増えたのか…
ところで、インスタンス と >タンス→小指をぶつけると痛い角 って「タンス」が一致する以外になんか関係あるのか?
そういえば変数の命名規則なんて考えたことないな。 俺なんて自分だけが判ればいいやって感じで作ってる。 コーディングとはちょっとかけ離れるけど、これも勉強のひとつとして 知ってる人、この際命名規則をここで披露してください。 多分いろんなのがでてきそうだなぁ
>>744 漏れも命名規則にはこだわらないなあ。
GNUスタイルだろうがハンガリアンだろうが、読みにくいとは思わない。
とはいえ、Javaなら
>>739 の通りSunの出している命名規則に従うケースがほとんどでは?
746 :
デフォルトの名無しさん :02/11/12 17:36
Java違いですいませんが、JavaScriptをデバッグ出来るソフトって、ありますか。
>>746 MSのVisual InterDev。
ってどんなものか良く知らないんだが、おかしなホムペ見ると立ち上がるので、
きっとデバッグツールに違いない。
>>735 なんで接頭辞いるの?
今どきエディターやIDEの使えば不要だと思うけど。
まさかプリントアウトして目視デバッグとかしてるのかな。
オイラ的には、メンバの頭に'_'がつくと読みやすかったりする。 setter、getterが嫌いなんで。
>>749 んー、get/setのタイミングで何かやりたくなったときに困んない?
メンバを使っている箇所を一通り直さなきゃならん。
C#とかはこの辺楽みたいね。
単なる構造的な使い方ならget/setは不要かもね。 それで十分、というかその方が楽という場合も結構あるし。
752 :
デフォルトの名無しさん :02/11/12 22:36
クラスパスとかいうのをいじってたら変な風になりました。 Appletが見れません。 同一フォルダ内にhtmlとclassファイルを置いても、 IEで見ようとすると「class ~ not faund」と出ます。 おかしいと思い、C:/jdk1.4.1_01/demo/applet/から いくつか試しましたがどれも同じ症状です。 治し方教えてください
>>752 classpathは自分がコンパイルしたいファイルがあるところに通してください。
>>753 通してみましたがまったく同じです
自分の開発してるフォルダも、javaのインストール先も
やはり見れません(涙
とりあえずdos窓ではjavacが動くのでクラスパスの
設定のしかたは間違ってないみたいです。
>749 Beanとかはget/setで決まってないと困らんのけ? ところで、コーディングルールなんてまぁコンセンサスを得られればなんでも良いと思ってたんだけど JavaってSunの規約に従わなきゃならんの? Beanとかでもそうだけど、長いものに巻かれといた方が楽なのは判ってるし、実際そうしてるんだけど なんか規約に従え!とか言われるとムカつくな。実際はCheckStyleとかArtisticStyleとか使ってる 香具師多いんだろうけど。
756 :
デフォルトの名無しさん :02/11/12 23:28
>>754 javacが動くのは、たんにJDKのBINにPATH(!=CLASSPATH)が
通ってるからでそ。まちがってるかどうかの確認になってません。
classpath の話題は java 云々以前の質問だからこれからは無視していいよ
環境変数についてのスレ立てるか・・・モウいい加減にしてほしい。
759 :
デフォルトの名無しさん :02/11/12 23:34
>>755 ううん、従わなきゃならんことはないが、独自のルールを定めているところでも
Sunの規約に準じているところは多いわな。
Beanのアクセッサはルールじゃなくて、JavaBeansの仕様。
メソッドの命名は規則に沿ったモノじゃないとuseBeanアクションとか
ちゃんと動作しない。
リフレクション前提のメソッド命名ルールは、いっそ言語仕様 の一部であるべきですね。
>>757 そうだね。同意だけど最後に一言。
アプレットならHTMLのタグがおかしいんじゃねーの?
classができてるならタグ編集してみろ。
762 :
デフォルトの名無しさん :02/11/13 00:05
サーブレットを書いているんですけど、フォント情報が必要になったときは わざわざパネルとかを作ってGraphicsオブジェクトからFontMetricsをつくら なきゃいけないのでしょうか?FontMetrics自体はインスタンス化できない みたいなので。 Toolkitを使うとdeprecateしているよ!って怒られました。
>>762 がんば
>>760 一部のAPサーバでは命名規則が決められてたりする。
私の知るAPサーバではメソッド名により、呼び出し優先度が変わってしまう。
今のうちに共通化しないと、後で困るかもね。
>>762 どうもそうみたい。Component#getFontMetrics()とか。
ところで、あんたの用途はGlyphVectorでなんとかならん?
それならリソースはFontだけですむぞ。
で、なんでサーブレットでFontMetricsが必要なの?
PDF出力と見た
Toolkit#createImage() で画像構築して getGraphics() して getFontMetrics() とか。
業務でApache-Cocoonですか。エエデスノウ。
>>761 HTMLタグがおかしいのかもしれませんが、
インストール先に生成されたdemoってフォルダのappletという
フォルダ内に最初からある(いわゆるサンプル?)も
同様の現象により見れないのです。
どこで聞けばいいんだろ・・・(涙
き、気のせいか、デジャブ…
770 :
デフォルトの名無しさん :02/11/13 01:49
配列のキャストはできないのでしょうか? 変な例だけど、以下のように Object[] を String[] に 変換して返したい場合など、どうすればよいのでしょうか? String[] getChannels() { List list = new Vector(); list.add("1ch"); list.add("2ch"); return (String[])list.toArray(); }
>>770 >Object[] を String[] に変換して
無理。
ただし、要求を満たしたいだけなら
(String[])list.toArray(new String[list.size()]);
で OK。
772 :
デフォルトの名無しさん :02/11/13 02:15
public String[] getChannels() { List list = new Vector(); list.add("1ch"); list.add("2ch"); String[] array = new String[list.size()]; Iterator iterator = list.iterator(); for( int i=0; iterator.hasNext(); i++ ){ array[i] = (String)iterator.next(); } return array; } 自分はいつもこんな感じです。参考になるかなぁ。
おまえらAPIドキュメントくらいヨメー!
777 :
デフォルトの名無しさん :02/11/13 04:18
ようやく出来たよ・・・。苦労だったな屑ども。 まあお前等如きに敬語使っちまったけど、一度出来ちまえば用なしよ。 さっさと氏ねばーか。検索なんてくだらねーこといってるんじゃねーよ。 チョン キチガイ ばーかばーかばーか うひゃひゃひゃ 俺に利用されて悔しいか? 精々喚いてろチンカスども。
>>777 いちいち悔しがってたら2chねらなんかやってられん。
というか人生ガンバレヨ。その調子だと将来大変だろうが。
>>777 HTMLのタグが編集できたぐらいでjavaスレ来んな。
がんばれよ。クリスマスまでに彼女できるといいな。
なんか可哀想な人が現れたの?
>>777 <fo:inline font-family="Gothic">HTMLのタグが編集できたぐらいでjavaスレ来んな。</fo:inline>
783 :
デフォルトの名無しさん :02/11/13 09:18
Javaの引数について質問が有ります。 public class JaMet2 { // JaMet2.java [java] public static void main(String args[]) { int a; String b; heikin(a, b); System.out.println("a=" + a + " b= " + b ); } public static void heikin(int x, String y,char c) { x= 1; y= "10"; } } 上記のように出来ますか? VBだと Private Sub Form_Load() Dim a As String Dim b As Integer Call aa(a, b) End Sub Public Sub aa(z As String, x As Integer) z = "12233" x = 123 End Sub Form_Loadて゛ aaで指定した引数が参照出来ますが Javaでは、VBのように出来ますか? 教えてください。 もう一つ、chsrの初期化の方法も教えてください
>783 出来ますか?って試してみればわかると思うが・・ 無理
>783 取りあえずそのコンパイルすら通らないソースを自前でコンパイルしる! で何がわからないのか自分で整理してみろ。質問はそれからだ。
786 :
デフォルトの名無しさん :02/11/13 09:31
public static void heikin(int x, String y,char c) { x= 1; y= "10"; } public static void heikin(int x, String y) { x= 1; y= "10"; } charが変。上記のようにオーバーロードする必要あり。 あと変数に関してはグローバルでやるか戻り値を決めておくかで対処すべき。
>783 public class Main { public static void main(String args[]) { StringBuffer a = new StringBuffer(); Main.test(a); System.out.println(" a= " + a); } public static void test(StringBuffer x) { x.delete(0, x.length()); x.append(10); } } こういうことならできる。と惑わせてみるテスト。
javaアプレットからファイルをサーブレットにアップロードしたいのですが・・ やり方がいまいち分りません。HTMLのFILEインプットボックスをつかえば できるのですが・・それに代わるものをアプレットでやるとしたら、 何を使えばよいのでしょうか? どなたかおしえてください
>>83 すみません
>>public static void heikin(int x, String y,char c) {
は、間違えでした。
}
正しくは、
public class JaMet2 { // JaMet2.java [java]
public static void main(String args[]) {
int a;
String b;
heikin(a, b);
System.out.println("a=" + a + " b= " + b );
}
public static void heikin(int x, String y) {
x= 1;
y= "10";
}
}
でした。
実行したんですけど、いい結果が出ませんでした。
VBだったら、出来るのでJavaでも出来るかと思いやってみましたが
出来なかったので、記述のしかたが悪かったのか、Javaでは、出来ないのかが
わからなかったのです。
レスをくれた方、大変どうもありがとう
大変、お騒がせしました。
VBなら開発経験があるのですけど、Javaでま開発は、今回が初めてなもんで、VBの感化各
で行っていました。
質問なんですけど、 オブジェクト指向とかインスタンス化とかの概念ががいまいち よくわからないのですが、こういう場合はとりあえず無視して 勉強していけばいいのでしょうか? それともしっかり理解してから次へ進んだほうがいいのでしょうか?
792 :
デフォルトの名無しさん :02/11/13 12:32
アプレットを作る際、ソースを変更したときは いちいち、ファイル名を変えてコンパイルし HTMLファイルのソースも開くクラス名を変更しているのですが、 皆さんそうしているのでしょうか?
>791 少しでも知ってた方がいいと思う >792 いちいちファイル名を変える理由ってなに?? メリットあるの??
794 :
デフォルトの名無しさん :02/11/13 13:08
>>793 ファイル名を変えてからコンパイルしないとアプレットに変化が現れないんです。
ブラウザでページの更新すればいいじゃん またはコンパイルする前に一度.classを消すとか
796 :
デフォルトの名無しさん :02/11/13 13:15
>>795 なるほど、クラスを消去するのがよさそうですね、どうもです。
クラスを消去してのブラウザのキャッシュには残ります。 CTRL キーを押しながらブラウザの更新ボタンを押してください。
798 :
デフォルトの名無しさん :02/11/13 13:44
オブジェクトを返すメソッドの場合、 メソッド内でローカル定義し生成した オブジェクトを返してもその先(のプログラム)は 正常には動いていますが、戻り値がオブジェクト への参照だとすると、なんとなく気持ちが悪いです。 (寿命はメソッド内ですよね。) それともオブジェクトの参照が返るのではなく 実体がコピーされるのでしょうか。 参照だとするとオブジェクトはstatic変数で宣言 させるべきでしょうか。
>>799 >(寿命はメソッド内ですよね。)
ちがう。
>それともオブジェクトの参照が返るのではなく
>実体がコピーされるのでしょうか。
ちがう。参照が返る。
メソッド内で定義した変数のスコープはメソッド内だが、
インスタンスそのものの寿命はガベージコレクトされるまで。
つまり、どの変数からも参照されなくなるまで、と考えてもよい。
>>799 Cから入ってきたのかな。
その辺りが、参照とポインタの
違いといっていい。
>>800-801 どうもです。そうです、Cからの者です。
Cだと、ローカルで宣言した領域のポインタを
返す場合、実体をstatic宣言やmallocを行わないと
ローカル変数のスコープから外れた場合
メモリ領域の確保は保証されないのですが、
Javaでは普通の変数と同じように扱え、
そこまで考えなくても良いということですね。
スコープ云々よりも スタックとヒープと静的領域に関して勉強したほうが…
Javaの範囲では そんなことは勉強せんでもいい。
806 :
デフォルトの名無しさん :02/11/13 18:34
今、JFrameの中でJTabbedPaneを配置して その中にScrollPane配置してそこでPanel使って Panelの中にあるコンポーネント(仮にAとでも)があるんですが Aから処理(ダブルクリックの処理でAにMouseListenerもたせてます)で JFrameのタイトル変えたいんですが、getParent()だと JTabbedPaneから上が上手くもってこれないんですがイイアイデアありますか?
>>806 まず頭の中整理しろ。
そしてこの文章書き直せ。
書き直し終わったら多分解決している。
>>807 ようはJFrameのgetContentPane()にaddしたJTabbedPaneの子の子の子ぐらいから
JFrameのメソッドを呼び出したいけどきれいにやる方法が知りたいんです。
子がいっぱいついてるから
コンストラクタにJFrameのオブジェクトをどんどん渡していく方法は
汚いのでしたくないんです。(関係ないクラスにオブジェクト持たせるのは嫌なので)
なんかいい方法ありますか?
あと描画中のPanel(↑で使ってるひ孫ぐらいのパネルです)の中にコンポーネントを後で加えて
Panelのオブジェクトに対してrepaint()を使ったら
上手く変更がされてないんです。
スクロールペインをスクロールさせたりFrameをサイズ変更させるとでてくるんですが
プログラム中でやる方法はありますか?
>>808 人の話聞いてたか?
どこをどう整理した?
6行あるのを2行に整理しました。 そのあとに「きれににやる」について 自分で汚いと思ってるやりかたを加えました。
javax.swing.SwingUtilitiesつかえ
>>806 repaintのほうは.paint(Graphics�g)をオーバライドしてないか?
悪いことは言わんからpaintComponents(Graphics�g)に書け。
追加したコンポーネントのrepaint()は呼んでる?
>>802 Javaでのオブジェクト参照変数はCでいうと「ヒープに動的領域確保し、
コンストラクタメソッドによって内部を初期化した構造体へのポインタ」
とほぼ同等です。
関数の引数で飛びかうのは、参照(ポインタ)の値のコピーです。
それ以外のプリミティブ値のintと、実行時のサイズは一緒ですお。
コレでスッキリします?
813 :
デフォルトの名無しさん :02/11/13 23:23
日本 米国 英国 中国 印度(1971) 1 1 1 1 91 10 4 11 24 13 日本 米国 英国 中国 印度(1972) 1 14 1 1 19 10 21 11 24 14 これらが記述されているテキストファイルで 印度の欄のデータを抜き取って画面(プロンプト)に 91 13 19 14 って表示する事ってできますか? テキストファイルなんで区切り位置とかも無いのでわかりません・・
814 :
デフォルトの名無しさん :02/11/13 23:23
>>811 ありがとうございます
両方とも上手くできました~
javadocでSwingUtilities見ましたが結構便利ですね
GUIはこれから学ぼうと思ってるのでうれしかったです。
paintの方は追加したほうをrepaint()してなかったでした。
ご指摘ありがとございました
in
817 :
デフォルトの名無しさん :02/11/13 23:29
j
818 :
デフォルトの名無しさん :02/11/13 23:29
>813 印度人に聞け!
>>813 常に5番目ということが決まっているなら
StringTokenizer なり Pattern&Matcher なりでできるでしょ
821 :
デフォルトの名無しさん :02/11/13 23:57
>>820 規則性というか
1960~2000年の41ブロックで
日本、米国、英国、中国、印度のみ
データとしては
行は2行の時もあれば100行の時もあります
>>821 一行が必ず5列目なら、Tokenizerで5こめのToken切り出して
Integer#parseInt()して加える、を行数文くり返すだけー。
823 :
デフォルトの名無しさん :02/11/14 00:25
スレ違いでしたらごめんなさい。。 ブラウザからちょっと大きめのローカルにある ファイルアップロードをしたいのですが、 javaアプレットを使ってサーバーへファイルアップロードをするサンプルが Googleでjava アプレット ファイルアップロード で検索したのですが見あたりませんでした。 できれば、アップロード経過をプログレスバーなんかで表示できる ものを考えてます。 似たようなサンプルでも構いませんのでご存じの方いましたら おしえてください。よろしくおねがいいたします。
>>823 アプレットでそんなことすんな。セキュリティ調整難しいから。
早速のレスありがとうございます"_m(_'_)m_"
>>824 そうですか、javaアプレットでは御法度な世界なんですか、、
>>825 HTMLのファイルアップロードは、参照押してファイル選択し、
Submitを押した際、大きめのファイルになると、
今どれくらいの容量をアップしているのか、が客観的に判る
GUIが実現できない、、ですよね。(プログレスバーみたいなもので
表示できれば利用者の混乱はかなり防げると思うのですが)
それを実現するにはjavaアプレットかなと思いまして探っていた
ところです。
827 :
デフォルトの名無しさん :02/11/14 00:46
javaで ブロック崩しでも作ろうと思ったんですが ほとんど初心者です。 ボールの動かし方とか詳しく解説しているサイトとかないですか?
>>826 テスト系のWebアプリケーションで、プログレスバーもどきを見たことがあるよ。
>>828 たぶん、それはMetarefreshをつかったものだと思います。
がしかし、HTMLのファイルアップロードは、ファイルの全容量を
サーバーにアップしないとそのほかのことは出来ない(解放されない?)
仕組みなので、たとえば、アップロードをクリックしてスグに
別ページが表示され、そこにプログレスバーと進捗状況、そしてファイルの
アップロード処理を実現するのはHTMLレベルではムズカシイのではと
踏んでいます。。
>>829 うむ。セッション管理とか、途中で中止する機能も考えたら面倒そうだの。
(上記のUnitTestツールはやってた。)
832 :
デフォルトの名無しさん :02/11/14 09:21
文字列の長さが足りているのに StringIndexOutOfBoundsExceptionが出てしまいます。 FileReader fileReader = new FileReader( "C:\\data.txt" ); BufferedReader bufferedReader = new BufferedReader( fileReader ); String line; while ((line = bufferedReader.readLine()) != null){ line = bufferedReader.readLine(); System.out.println( "length = " + line.length() ); System.out.println( line.substring( 0, 16 ) ); System.out.println( "length = " + line.length() ); System.out.println( line.substring( 737, 18 ) ); } 実行結果 java.lang.StringIndexOutOfBoundsException: String index out of range: -719 at java.lang.String.substring(String.java:1525) at ReaderWriter.main(ReaderWriter.java:19) 2746 2001010506010102 2746 なんでなんでしょう?初歩的なことですいません。
>>832 while ((line = bufferedReader.readLine()) != null){
line = bufferedReader.readLine();
なぁ、偶数行目しか読まないのか?
>>833 失礼しました。元のソースは下記です。
(行数が多いのでテスト的に8行だけだしてました)
for ( int i=0; i<8; i++ )
{
line = bufferedReader.readLine();
System.out.println( line.length() );
System.out.println( line.substring( 0, 16 ) );
System.out.println( line.length() );
System.out.println( line.substring( 737, 18 ) );
}
こちらに転記してwhile文に書き換えたとき
line = bufferedReader.readLine();
を消去するのを忘れてしまいました。
>>832 String#substring(int beginIndex, int endIndex)
この文字列の部分文字列である新しい文字列を返します。
部分文字列は、指定された beginIndex から始まり、
インデックス endIndex - 1 にある文字までです。
したがって、部分文字列の長さは endIndex-beginIndex になります。
例:
"hamburger".substring(4, 8) では "urge" が返される
"smiles".substring(1, 5) では "mile" が返される
パラメータ:
beginIndex - 開始インデックス (この値を含む)
endIndex - 終了インデックス (この値を含まない)
戻り値:
指定された部分文字列
例外:
IndexOutOfBoundsException
beginIndex が負の値である場合、
endIndex がこの String オブジェクトの長さより大きい場合、
あるいは beginIndex が endIndex より大きい場合
>>835 PerlとかPHPのそれとかとは仕様が違うみたいね。
やば、俺のプログラムもバギーなはずだ・・・。
838 :
デフォルトの名無しさん :02/11/14 11:26
Java2 SDK 1_4_1_01の仕様について質問します。 Java2 SDK 1_3_1のアプレット機能では 音声ファイルはau,aiff,wav,midi 画像ファイルはjpg,gif のみの対応でしたが、噂によるとバージョンアップにより 対応ファイルが増えたようです。しかしドキュメントを見ても明記 されておらず、困っております。 どなたかJava新バージョンのアプレット機能で新たに対応したファイルを 知っている方がいらっしゃいましたらご教授ください。
>>838 増えてないよ。
JMFを使ってください。
840 :
デフォルトの名無しさん :02/11/14 11:31
>>839 即レスありがとうございました。
大変に助かりました。
841 :
デフォルトの名無しさん :02/11/14 11:50
Stringをchar配列に変換する方法を教えてください。
>>841 ネタか?
char[] array = str.toCharArray();
843 :
デフォルトの名無しさん :02/11/14 11:56
>>842 おお、それですよ。
Stringの頭一文字だけcharに変換したかったのです。
>>843 ネタだな。一応書いておくと
char top = str.charAt(0);
845 :
デフォルトの名無しさん :02/11/14 12:03
SQLserverのdatetimeフィールドを更新する時、 UPDATE ・・・ 年月='0001-12-31' ・・・ という文を送ると [Microsoft][SQLServer JDBC Driver][SQLServer]CHAR データ型から DATETIME データ型への変換の結果が日付/時刻の値の範囲外です。 というエラーが帰ってくる どなたか解決方法知りませんか このドライバでは、日付は現在+-2000年等の制限があるのかな?
update・・・・・・todate('0001-12-31','yyyy-mm-dd')・・・・・・ じゃないの? 俺oracleしか知らんけど。。。。。
>>846 スレ違い市ね。SQL Server の datetime は
1753 年 1 月 1 日から 9999 年 12 月 31 日までの日付と時刻データを格納するデータ型です。
初めてプログラミングをやるので、既出でしたらすいません。 参考書らしいのを買って勉強してるんですが windows2000の環境変数がいまいち理解できず javacはバッチファイルとして認識されていませんと表示されてここから先に 進めないんですが、pathとかはどのように設定したらよいのでしょうか
>>848 ありがとさん
0001年を格納できる日付型は無いみたいね
>>849 環境設定はもういいよ。。。。。少しは過去ログ読め。
この話は腐るほどでてる・・・・・・・・すでにタブーの領域。
これがでてくると必ず荒れる。
そうでしたか、過去ログは一通り読んだつもりです。 出直してきます
>>852 Pathもとおせない君は向いてないと思われ
>>852 残念だけど、この話はjava以前の話だからね。
もうみんなこの手の質問には疲れてるんだよ。
がんばって設定できたら質問してきてください。
でも環境変数やpath程度のことがわからないんじゃUNIX系は無理でしょ。
なんのためのクロスプラットフォームなんだ????
まあ、初心者大歓迎とあるから俺が助け舟を出してやろう。 とりあえず、インストールしたJDKのバージョンとどこにインストールしたのかを書け!
>>853 >>854 >>855 既出な質問すいませんでした、環境変数はなんとかできました。
痛いところ突かれましたその辺は努力で補っていきたいと思いますので
笑いながら見てやって下さい(´Д`;)
858 :
デフォルトの名無しさん :02/11/14 16:02
TCP/IP で接続中のプログラムが起動した状態で Windows の休止やスタンバイから 戻ると、当然ながら TCP のセッションは切れてるんだが、Java の方で I/O 例外 上がんないな。ずっと無応答状態で I/O ブロックしたままだ。
859 :
デフォルトの名無しさん :02/11/14 16:17
最近javaを勉強し始めたんですけど、困った事になったので助けて頂きたいです。 最初にWindowsNT4でJDK1.3.0をインストールしたんですが、 統合環境が欲しくなってJBuilder5の無償配布版をインストールしました。 でもイマイチだったのでアンインストールして、 残ったJBuilderのフォルダを削除すると、 今まで使えていたJDK,JREが使えなくなりました。 レジストリの HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft 以下を修正して、コマンドラインからの実行と エクスプローラからjarファイルの実行は出来るようになりましたが、 コントロールパネルの「Java plug-in」が 「cannot find the main class」というエラーで開かなくなり、 ブラウザからJREが起動できなくなりました。 JBuilderインストール前の設定に戻すためには、 他にどこを調べたらいいんでしょうか?
862 :
J2EEチョーボー :02/11/14 17:39
Oracle Blob型のデータ挿入に 詰まっております。 Postgresでのサンプルが 見つかり、 ~~~ サンプル~~~~~~~~~~ > create table images (imgname name,imgoid oid); > > 画像を挿入する場合、次を行ないます。 > > File file = new File("myimage.gif"); > FileInputStream fis = new FileInputStream(file); > PreparedStatement ps = conn.prepareStatement("insert into images values (?,?)"); > ps.setString(1,file.getName()); > ps.setBinaryStream(2,fis,file.length()); > ps.executeUpdate(); > ps.close(); > fis.close(); 試してみたのですが、挿入処理は正常に終了するのですが、検索して 書き出してみると、0byteのファイルが作成されるだけでした。 環境は Oracle8.1.6 JDK1.2.2です。 よろしくお願いいたします。 タスケテー
AWT で「コンポーネントの上にマウスカーソルが乗って 500 ミリ秒経過したら」 なんてイベントリスナないよな。スレッド作らなきゃだめか。
ResultSetで取得したレコードをJTableで表示したいんだけれど、 レコード数が多いと時間、メモリがきつくなる SQLServerのEnterpriseManagerやCBuilderのDBGridのように、表示分+αのレコードを保持し、 行がスクロールするたびに表示を更新したいんだけど、なんか難しそう 参考になるサイトやサンプルありません?
866 :
デフォルトの名無しさん :02/11/14 21:32
JavaServletの話なのですが HTMLで項目に文字を入力するフォームで 項目の中身が空の場合、エラーメッセージを出したいのですが 変数の中の文字列を判断するようなif文はかけるのでしょうか?
>>865 1回の問い合わせでResultSetに取るレコードの行数を一定数にするような
SQL発行すりゃいいじゃん。
すいません、かけるかどうかと言うか どうやって書けばいいのか教えていただけませんか?
>>866 JavaScriptでonSubmitハンドラにそういうメソッド渡せ。
JavaScirptはいた違い。
Scriptじゃなくて、Servletなんですが・・
>>871 サーバ側でチェックするのか。
フォームパラメータ取り出して、nullか文字列長0なら入力してないだろうな。
>>867 ResultSetから自分のほしい行数分取得して表示すればいいんだけど、
スクロールバーとの連携をどのようにしようかと
ああいったテーブルのスクロールってどうやって実現しているのか分からないよ
サーブレットなんて実質javaじゃないな。
>>873 スクロールバーの移動イベントのリスナはって、ある位置にきたら
次の〇〇件取得してテーブルのデータモデルに追加。
なるほどnullっていうのがありましたね!! さっそくチャレンジしてみます nullじゃなくて、getBytesっていうので、数値に変換してから if文でやろうとしてました・・ありがとうございます~ それと、ServletってJavaApplicationと同じなんですよね?
>878 StrutsのActionForm使えばそーゆのは楽にできるが… 好き嫌いありそうなフレームワークだから、まー、学習コストに見合うと思ったら使うヨロシ。
>>835 ありがとうございました。PHP漬けになっててわかりませんでした。
でもsubstringって全角1文字で考えるんだ。。。
また難問勃発だなぁ。
881 :
デフォルトの名無しさん :02/11/14 23:41
全角も何も雲丹コードじゃないの?
>>880 881のいうとおり半角も全角もUnicodeだとchar一つだろうね。
全角を区別したいならgetBytes()でbyte列にしないとダメだろうね。
普通はそんな必要はないと思うけど。
クラスパスとかいうのをいじってたら変な風になりました。 Appletが見れません。 同一フォルダ内にhtmlとclassファイルを置いても、 IEで見ようとすると「class ~ not faund」と出ます。 おかしいと思い、C:/jdk1.4.1_01/demo/applet/から いくつか試しましたがどれも同じ症状です。 治し方教えてください
>>884 なおってなかったのか…
>クラスパスとかいうのをいじってたら変な風になりました。
どういじったか教えてくれる?
かつてiアプリ製作のために入れたパスを軒並み削除しました。 そのとき何か消してはいけないものを消してしまったかもしれません。 autoexec.bat SET PATH=C:\JUST\JSLIB32;C:\IBMTOOLS;C:j2sdk1.4.1_01\bin;D:jdk\project\; @ECHO OFF loadhigh c:\windows\command\nlsfunc.exe c:\windows\country.sys PROMPT $P$G LH DOSKEY C:\essolo.com dos窓からautoexec.batを実行したときのメッセージ SET PATH=C:\JUST\JSLIB32;C:\IBMTOOLS;C:j2sdk1.4.1_01\bin;D:jdk\project\; NLSFUNCはWindowsのdosコマンドプロンプトからは組みこめません. ファイルが見つかりません. Ess PCI Audio Dos Device Setup Utility, Version 2.11M 以下英語の文章 かなり困ってます。緊急に治療お願いします
887 :
デフォルトの名無しさん :02/11/15 00:46
「C:/java/game/app」(仮)というフォルダに アプレットhoge.htmlを作ったのですが、なぜか getDocumentBase()で「C:/java/game/app/hoge.html」が、 getCodeBase()で「C:/java/game/app/」が返って来ました。 APIドキュメント(1.3)では、逆のような気がするんですが… というか、JDK1.3を使っていた時は普通に返って来たんですが、 1.3.1_06をインストールしたとたんにひっくり返りました。 これってなんなんでしょうか?
888 :
デフォルトの名無しさん :02/11/15 00:54
ブラウザの印刷機能で印刷すると、Appletの領域が印刷されません… ランタイムのバージョンを変えていろいろ試したんですけど 真っ黒になったり、真っ白になったり、ワクと小さなアイコンだけ出てきたり… Appletで描画した絵を見たまんま安定して印刷させるには どんな準備をすればよいのでしょうか?
>>886 なんで、NLSFUNC.EXE がないんじゃーー
>>886 なんで、NLSFUNC.EXE が無いのかなー?
とりあえず、↓この行外しちゃえ(いいのか?)
loadhigh c:\windows\command\nlsfunc.exe c:\windows\country.sys
たぶん、英語のエラーメッセージは消える。
>>890 どういうことですか?詳しく教えてください
>>891 その行を消しましたが、同様にエラーメッセージが出ます。
C:\WINDOWS>REM [Header] NLSFUNC は Windows の DOS コマンドプロンプトからは組み込めません. うちも出るな…
autoexec.batの内容を一部消してはいけないものを消したかもしれません。 だれか、標準的なautoexec.batの内容をここにコピペしていただけませんでしょうか?
884=886ですか? 質問1. iアプリ製作をしていた時はAppletが見れましたか? 質問2. Appletは、どのVMで動いていますか?
884=886です。 iアプリを製作していた時期はAppletは見なかったのでわかりません。 しかし、iアプリ用に通したパスを削除する直前では、動作が不安定でしたが 見れました。 不安定な動作とは、ソースをいじってコンパイルしなおしても内容が更新されない、 しかし、htmlのファイル名、Appletタグのcode属性、およびソースファイルのファイル名、 クラス名を変更して見なおすと内容が更新されています。 VMってのはよくわかりませんが、現在Java 2 v1.4.1がインストールされており、 IEからツール→インターネットオプション→詳細設定で見てもjava 2 v1.4.1と 表記されております。 dos窓からjava -versionと入力しても同様に1.4.2です。
884=886です。 iアプリを製作していた時期はAppletは見なかったのでわかりません。 しかし、iアプリ用に通したパスを削除する直前では、動作が不安定でしたが 見れました。 不安定な動作とは、ソースをいじってコンパイルしなおしても内容が更新されない、 しかし、htmlのファイル名、Appletタグのcode属性、およびソースファイルのファイル名、 クラス名を変更して見なおすと内容が更新されています。 VMってのはよくわかりませんが、現在Java 2 v1.4.1がインストールされており、 IEからツール→インターネットオプション→詳細設定で見てもjava 2 v1.4.1と 表記されております。 dos窓からjava -versionと入力しても同様に1.4.2です。
ぐわ!二重カキコすんません。 書きこみエラーが出て何度も書きこみ命令を出してたもので。
>>895 自己責任でどうぞ。
C:\>echo %path%
C:\Oracle\ora90\bin;C:\Oracle\ora90\Apache\Perl\5.00503\bin\mswin32-x86;C:\Progr
am Files\Oracle\jre\1.1.8\bin;C:\Perl\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WIND
OWS\System32\Wbem;C:\Program Files\Justsystem\JSLIB32;C:\mysql\bin;C:\Java\jdk1.
3.1_02\bin;C:\Java\jakarta-ant-1.4\bin;
>>899 プラグインは有効になっていますか?
Java Plug-in コントロールパネルで、Java Pluginが有効になっているかを
確認してください。
>>900 いいなぁ、Oracle。私はMySQLとMSAccessで我慢。
java plug-in は1.3になってました。今探してますが、 java plug-in 1.4でググっても見つかりません・・・(涙
905 :
デフォルトの名無しさん :02/11/15 02:06
親切のつもりなのか知れないけど今後パスやクラスパスの質問は無視してください。特に 884の 治し方教えてください 886の かなり困ってます。緊急に治療お願いします 895の だれか、標準的なautoexec.batの内容をここにコピペしていただけませんでしょうか? みたいなえらそうな態度のやつに対しては。つけあがらせるだけですから。
えらそうな態度でしょうか? どう質問したらいいでしょうか? 本当に困ってます。 質問のしかたからでもいいですから教えていただけないでしょうか? また、クラスパスについて質問するのがスレ違いでしたら、 どこで聞けばいいか教えていただけないでしょうか?
>>906 java-house MLで聞きなさい。
やさしい人たちが教えてくれるから。
複数のクラスにmain関数がある場合その扱いはどうなるのでしょうか
>>907 ありがとうございます。
そちらで質問をさせていただきます。
迷惑をおかけしました。
だからpathでおかしくなったり、設定できない香具師はどっか逝け。 上で荒れるって誰かが書いてあるだろ。 javaのコーディングなら質問OKだけど、pathは自分の環境の話だからな。
すいませんが、なにとぞひとつ…(´∀`)
「初心者大歓迎」のはずだったのに…
初心者っつーても限度はあるわなぁ。 まぁ無視するだけで叩く必要は感じないけど。 このスレから見始めたけど気が短いヤシはウンザリするかも。
>>913 pathなんて初心者以前の話でしょ?
ここはjavaプログラミングの初心者歓迎スレです。
916 :
デフォルトの名無しさん :02/11/15 04:03
質問なんですが xxx(変数)の中が空っぽのときは yyyを実行するif文は if(xxx == null){ yyy; } であってますか?
try{ xxx.toString(); } catch(NullPointerException ex){ yyy; }
918 :
デフォルトの名無しさん :02/11/15 04:32
常時起動のアプリで、オフスクリーンバッファ用に使った Image って いらなくなったら flush() しなきゃだめ?
>>916 あっているともいえるし、あっているといえないともいえる。
javaでは型は2タイプに分けられる。
プリミティブ型(int, char, long, double等)
オブジェクト型(Objectの派生クラス)
オブジェクト型の時はそれで結構。
プリミティブ型をインスタンス変数で利用している時は型それぞれのデフォルトの値で初期化される。
お手元の参考書で確認してください。
ちなみにローカル宣言した空(?)の変数にアクセスすると、コンパイルエラーで落ちるぞ。
920 :
デフォルトの名無しさん :02/11/15 05:17
JavaのStringはすべてinternされていると思ってよいでしょうか? どうせ書き換えできないんだから、そのほうがメモリの節約になるし、 比較も1文字ずつ比較しないでよい(==でよい)ので速くなりますよね?
921 :
デフォルトの名無しさん :02/11/15 05:19
922 :
デフォルトの名無しさん :02/11/15 05:23
>>920 そのような前提はありません。同一クラス内の静的なリテラルに関しては
コンパイル時にマージされるようですが、そういった動きを期待すべきでは
ありません。
同一インスタンスであることを保証したいなら明示的に intern() でも
呼び出してやればいいでしょう。
>>920 そう922の言う通り。
大体そういう風に動くんだけど、期待してはいけないということです。
どこでnew String()ってやってるかわからないでしょ?
924 :
デフォルトの名無しさん :02/11/15 09:28
いがぴょんの本をさっそく読んだ人いますか? どうでしたか?
925 :
デフォルトの名無しさん :02/11/15 09:38
Spriteって言うデータ型はJPGなんかの画像を入れる配列でいいんですかねぇ?
926 :
デフォルトの名無しさん :02/11/15 10:55
1が囲まれている文字「①」 を UTF-8 で記述する場合、\u2460 と表記できますが これを EUC-JP 的?に記述するにはどうすればよいでしょうか?
Javaの文字はUnicode(UTF-16)、だから、そんなことを考えること自体がナンセンス。
928 :
おしえてください。 :02/11/15 11:45
昨日の日付を出したいのですが、何か良い方法はないでしょうか?
今日から一日引け
930 :
おしえてください。 :02/11/15 11:53
OK!そうする!
931 :
デフォルトの名無しさん :02/11/15 12:02
わかりました。>> 927 素直に byte 管理します
昨日の献立を出したいのですが、何か良い方法はないでしょうか?
出汁巻き卵+鯛茶漬け
935 :
デフォルトの名無しさん :02/11/15 16:37
質問です。 n次元配列の全要素に対して処理をしたいです。 はじめ、forのネストで書こうとしたのですが、 nが大きくなったときに対応できないです。 どう書けばいいかサンップル付きで教えてください。
>>935 配列の要素がプリミティブ型でなければこんな感じ。
recursive(Object obj){
if( array instanceof java.lang.reflect.Array ){
for( int i = 0 ; i < Array.getLength( obj ) ; i++ )
recursive( Array.get( obj, i ) );
}else{
proc( obj );
}
}
proc(Object obj){
//要素に対して処理を行う
}
プリミティブ型の場合は これでも良いけど…
後は自分で考えてね。
あ、Object[] に 配列つっこんでる場合とかもこれじゃダメだ。
質問です。 JDBCでSQLServerに繋ぎたいですが DBの指定の方法がわかりません。 Connection conn = DriverManager.getConnection ("jdbc:microsoft:sqlserver://server1:1433","username","secret"); ↑このタイミングでDBを指定するんですか? それとも後々で設定するんでしょうか? どなたかよろしくお願いします。
940 :
デフォルトの名無しさん :02/11/15 17:32
7*7の魔方陣の作り方をおしえてください
『よくわかる黒魔術』参照
943 :
デフォルトの名無しさん :02/11/15 18:29
最近JSPの勉強をはじめた。 JSP/servletのAPIの日本語版ドキュメントをダウンロードしたいのですが HP等ありましたら教えてください。
社員
Ja-Jakarta Projectってあんま有名じゃないのか…
948 :
デフォルトの名無しさん :02/11/15 20:57
『Javaによる知能プログラミング入門』を立ち読みして,Javaのプログラミングをしてみたいです. プログラミング歴は殆どありませんので,まずは本を読んでみようと思います. 推薦書を教えてください.また,本の活用方法についても合わせて教えてください. 4649
>>948 専用スレある。
後、取りあえず文法覚えたら自分なりに頭を使ってとにかく書け。
そうすれば嫌でも応用力は付く。
応用的な話を覚えるのはそれからでも十分だ。
jdk1.3.1_06を持ってるんですが、swingが動作しません swingはバージョンいくつからですか?
951 :
デフォルトの名無しさん :02/11/15 21:58
>>862 だいぶ前に書いたソースですけど。
//BLOB型挿入の際は一度BLOB列を初期化する(empty_blob())
sql = "insert into table(blobfile) values(empty_blob())";
stmt.executeUpdate(sql);
//画像挿入(BLOB型)
rs = stmt.executeQuery("select blobfile from table for update"); //for updateが必要
rs.next();
//BLOBロケータ取得
BLOB blob = ((OracleResultSet)rset).getBLOB(1);
File file = new File("blob.jpg");
FileInputStream fis = new FileInputStream(file);
OutputStream os = blob.getBinaryOutputStream();
int chunk = blob.getChunkSize();
byte buffer[] = new byte[chunk];
int length = -1;
while( (length = fis.read(buffer)) != -1 ){
os.write(buffer,0,length);
}
fis.close();
os.close();
見にくかったらスマソ。
続いて質問です。
アプリケーションでウィンドウをタスクバーに入れる方法を教えてください。
JAVAコンソールはタスクバーに入るんで出来るはずですよね?
952 :
デフォルトの名無しさん :02/11/15 22:02
>>951 BLOB blob = ((OracleResultSet)rset).getBLOB(1);
↓
BLOB blob = ((OracleResultSet)rs).getBLOB(1);
953 :
デフォルトの名無しさん :02/11/15 22:07
初心者の質問で恐縮ですが教えてください。 アプリケーションで、ウィンドウの左半分にグラフィック、 右半分にコンソールパネルっていうのを作りたいのです。 JFrameを継承したクラスを作ってコンストラクタでパネルやら ボタンやらを配置して、その後paintメソッドでグラフィック を描画という方法を試したのですが、実行してみるとpaint メソッドがせっかく配置したパネルを塗りつぶしてしまうことが 分かりました。 パネルを残したまま左半分だけにグラフィックを描くには、 どうすればよいでしょうか? よろしくお願いいたします。
>>950 いつのまにか06になってたのか。
> swingが動作しません
> swingはバージョンいくつからですか?
バージョンのせいではない。
>>954 レスありがとうございます。
グラフィックを表示したい領域にパネルを配置して、
パネルの中にグラフィックを描くという意味ですか?
やってみます。
957 :
デフォルトの名無しさん :02/11/15 22:49
同じフォルダ内の複数の同一拡張子のファイルを一括して変換したい のですが、教えてください。フォルダ内のファイルを順番に読む事ってできますか? txtファイルをhtmlファイルに変えたい場合は aaa.txt bbb.txt ccc.java ddd.txt ↓ aaa.html bbb.html ccc.java ddd.html
958 :
デフォルトの名無しさん :02/11/15 22:57
>>957 javaでやりたいの?
コマンドラインでrenじゃダメかな。
File dir = new File("C:\\hoge\\hage"); File[] textFiles = dir.listFiles(new FilenameFilter(){ public boolean accept(File dir, String name){ return name.toLowerCase().endsWith(".txt"); } }); for(int i=0; i<textFiles.length; i++){ String name = textFiles[i].getName(); int index = name.lastIndexOf('.'); name = name.substring(0, index) + ".html"; File newName = new File(dir, name); textFiles[i].renameTo(newName); }
960 :
デフォルトの名無しさん :02/11/15 23:02
961 :
デフォルトの名無しさん :02/11/15 23:05
962 :
デフォルトの名無しさん :02/11/15 23:16
本読んでる時は、例外処理って??? って感じだったけど try{ testL = Integer.parseInt(test[0]);} catch (NumberFormatException e){ test[0] = "Not Number"; } ふとひらめいたコレッ!! 例外処理?!すごい!! (プログラムやってる人には、ハァ?アフォカだろうけど・・)
ハァ?アフォカ
964 :
デフォルトの名無しさん :02/11/15 23:51
>>962 963は無視してその「ひらめいた!」という気持ちを大事にしてください
965 :
デフォルトの名無しさん :02/11/15 23:57
ハァ?アフォカ
あ、自分で書いといてなんですけど・・ catch (NumberFormatException e) 意味も分からずいつもつけてるんですが の e ってなんでしょうか?
>>967 catch(NumberFormatException e){
System.out.println(e.getMessage());
~~コレ
}
あるサイトには変数って書いてたんですが なんでそこに変数がくるのかわからないんです・・ ちなみに書いていた所にも説明がありませんでした
/⌒~~~⌒\ / ( ゚〟д〟゚ )y─┛~~ (_ ノγ U ∩_∩) THANK YOU 2ch ┌───────┐ α___J _J and (|● ● | / ̄ ̄ ̄ ̄\ GOOD-BYE 2ch WORLD! /.| ┌▽▽▽▽┐ | / ● ● ( ┤ | | | |Y Y \ またどこかで会おうね \. └△△△△┘ \ | | | ▼ | | \あ\ |\ \ | \/ _人| ∧∧∩゛ ∧_∧ | \り\ | (_) | _/)/)/( ゚Д゚)/ (´∀` ) __ n \が\. | \ / 〔/\〕 U / ∩∩ ( )o/ \ ヽ \と\ | | | | c(*・_・) | |ヽ(´ー`)ノ_| | | (__丿 |. /\ \う | (-_-) (__)_) UUUU /∪∪ (___)(_(__) ⊆_ ヽ_┘ └──┘(∩∩)
971 :
デフォルトの名無しさん :02/11/16 00:34
972 :
887-888 :02/11/16 00:53
>>969 普通のメソッドに(String s)みたいに引数とその型を書きますね
それと同じで、Exceptionクラス型の引数を受けると思ってください
誰か
>>887 と
>>888 お願いします。素通り?
>>887 getDocumentBase()でファイル名が、
getCodeBase()でディレクトリ名が返って来た
>>888 ブラウザからアプレットを見たまま印刷するには?
973 :
887-888 :02/11/16 00:58
クラス型ってへんだね すいません 例外が発生すると、その例外に応じたExceptionクラスの オブジェクトが勝手に生成されます。 イベント処理でも、イベントが発生すると生成されるので (MouseEvent e)とかあるでしょ
>>888 [ALT]+[PrintScreen] ⇒ ペイントを起動 ⇒ ペースト ⇒ 印刷
または、アプレットの実行セキュリティを下げてもらって [印刷] ボタンを
つける。
例外処理の仕方で、実力がわかることが多いような気がする今日この頃。 ただし、初心者~脱初心者限定
>>972 試してみたよ。あなたの言うとーりだった。日本語APIの表記とは異なるかもね。
ところで、JAppletが、javax.swingパッケージに在るのは良いとして、
Appletが、java.appletパッケージに在るのは今日まで忘れてました。
java.awtパッケージじゃないんだねぇ。
そういえば、java.appletパッケージなんてのもあったなぁと。
978 :
デフォルトの名無しさん :02/11/16 01:24
979 :
デフォルトの名無しさん :02/11/16 01:38
981 :
887-888 :02/11/16 01:57
>>974 ありがとう!
業務システムで作ってて、素人相手なので
スクリーンショットを取らせるわけにはいかんのです…
あくまで帳票として印刷させたい(ボタンは作る)んだけど、
セキュリティレベルを下げるとちゃんと印刷されて出てくるの?
プラグインのバージョンとかは調べたんですが、セキュリティは
知らなかった。
>>981 そーゆー意味ではない。ページの印刷気分ではアプレットを載せた印刷は
できない。
983 :
誰か代わりに立ててくれ・・・1 :02/11/16 08:49
■■■ 最近多い質問とその答え ■■■
Q. javac コマンドを実行したときに、
『コマンドまたはファイル名が違います』や
『'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。』と
表示されてコンパイルできません。
A. javac.exeへのPATHが通っていません。
http://java.sun.com/j2se/1.4.1/ja/install-windows.html を良く読んで、javac.exe のあるディレクトリ(例: C:\j2sdk1.4.1_01\bin )のパスを
環境変数PATHに追加してください。
その後、
Windows98/MEの場合はOSを再起動、
Windows2000/XPの場合はコマンドプロンプトを新たに立ち上げなおしてください。
設定したパスが正しければ、javacが使えるようになります。
それでも同じエラーが出る場合は、設定した値が間違っています。よく見直してください。
Q. javac Hello.java でコンパイルはできるのですが、
java Hello を実行しようとすると
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』
と表示されて実行できません。
A. カレントディレクトリ(.)がクラスパス(classpath)に含まれていません。
コマンドプロンプトで、
set CLASSPATH=%CLASSPATH%;.
と設定する。最後の「;」と「.」を見落とさないように!
または、
http://www.gimlay.org/~javafaq/S004.html#S004-02 を読んでカレントディレクトリ「.」を環境変数CLASSPATHに追加してください。
JavaFAQ 基礎知識
http://www.gimlay.org/~javafaq/S004.html
1と2書いてくれたら残りのリンク追加します(整理済み)。
以下のソースだと "WinMX v2.6" 相手にしかリモートキューができない。 Java に詳しい人いらっしゃいましたら、 "WinMX"の文字列を含む全てのクライアントに対応させる構文をご教授下さい。 String client = sr.getUser().getClientInfo(); if (client != null && client.equals("WinMX v2.6")) { logger.debug("Sending //WantQueue to " + sr.getUser().getName() + " who uses client " + client); MessageHandler.send(server, new PrivateMessage(sr.getUser().getName(), "//WantQueue")); }
>>987 前後関係がよくわからんが、client.equals("WinMX v2.6") を client.startsWith("WinMX")
にするだけだと思われ
client.equals("WinMX v2.6") ↓ client.matches(".*Win MX.*")
1000
1000
994
995 :
デフォルトの名無しさん :02/11/16 17:55
もらっちゃうよ?
ドキドキ。。キョロキョロ(T_T ))(( T_T)
そろそろかな?
献上奉りますです。ハイ。
1000とり合戦~
1000とり~
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。