【初心者】Java質問・相談スレッド100【大歓迎】
1 :
デフォルトの名無しさん :
2007/03/31(土) 13:57:18 過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/ これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
【初心者】Java質問・相談スレッド99【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1173026128/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。
http://pc10.2ch.net/hp/ 次スレは
>>980 あたりで。
>前995 個人で良いなら以前にprototype.jsのObject.prototype汚染とクラスベースなアプローチが嫌いなので 自前のクロスブラウザライブラリ+netscapeデバッガで開発した。
100乙記念
javaの入門書を読み終わったんですが、今度は何を読んだ方がいいでしょうか?
>>4 どっかのオープンソースプロジェクトのソースコード
その前にjdkについてるソース読んだ方が良いよ。
>>4 - Effective Java
Javaやるなら、まあまず読め
- Java並行処理プログラミング
スレッドが言語仕様に組み込まれてるJavaなのだから、
ダグリーが共著のこれをとりあえず読んどけ
- アジャイルソフトウェア開発の奥義
ロバート・C・マーチンの書いたもの。
ここに書いてある「原則」を知らずに、
オブジェクト指向の何たるかを語ることなかれ
- 達人プログラマー - システム開発の職人から名匠への道
猫がソースコードを食べちゃった!
とりあえず、ソフトウェア一般的な心構えの話
- 達人プログラマー - ソフトウェア開発に不可欠な基礎知識 バージョン管理/ユニットテスト/自動化
上記の続編あるいは実践編っぽい
ソフトウェア開発の回りの環境についての本
コーディング技術だけではだめなのです
- Subversion実践入門
上記のCVSの説明をSubversionに置き換えたもの
基本的に最適な順は @言語仕様(これがないと始まらない) A言語に付属するAPI・フレームワーク(仕事で必ず使う) B言語に関連するシステム(Tomcat・Apache・Database) C言語の開発環境(eclips・JBuilder等) これだけ覚えないと仕事で使い物にならないからな。
10 :
951 :2007/04/01(日) 11:12:59
掲示板のサンプル作ってみたんですがvewerの見た目が宜しくありません。 何かアドバイスください。 <h1>掲示板</h1> <form action="../servlet/myplay.BbsController" method="post"> <table border="false"> <tr> <td>名前</td> <td><input type="text" name = "name" maxlength="10" size="40"></td> </tr> <tr> <td>題名</td> <td><input type="text" name="title" maxlength="50" size=40"></td> </tr> <tr> <td>本文</td> <td><textarea name="text" cls="40" rows="5"></textarea></td> <input type="submit"value="送信"> </tr> </table> </form> <br> <% ResultSet rs = (ResultSet)request.getAttribute("crs"); while(rs.next()) { %> <table border="true"> <tr> <td><%=rs.getInt("id")%></td><td><%=rs.getString("name")%></td></tr> <tr><td><%=rs.getString("title")%></tr></td> <tr><td><%= rs.getString("context")%></td></TR>
11 :
デフォルトの名無しさん :2007/04/01(日) 11:23:27
PentiumIII 1GHzくらいで軽い動作の開発環境は何ですか? GUIを作成出来るものが良いです。
P3-1GHzだとコンパイルしまくりの開発スタイルは厳しいな。 GPLは注意しないと困る事に成るよ。
うちでは、あるプログラマが、GPLなJavaScriptをコピペして使って 「どう?いいでしょ?」とかやったことがあった。 GPLについて説明してから、そのコードは破棄した。ちょっと不満そうではあったが。
14 :
10 :2007/04/01(日) 12:53:44
javascript板の方で質問しました。失礼しました
>>前999 時間でカウントアップじゃなくて、 Statefulで頭の時間を持っていて アクセスある度にカウントを計算して返せばいいんじゃないか?
16 :
デフォルトの名無しさん :2007/04/01(日) 16:28:23
家でjavaとかC言語とかでプログラミングしてお金ってもらえないの? 在宅勤務みたいな形で働ける会社ってあるの?
可能だが、相当の腕が必要。分からなくて聞く同僚も居ないしね。
在宅勤務みたいな形で働ける会社ってあるの?>ググると結構あるよ。
19 :
デフォルトの名無しさん :2007/04/01(日) 16:58:53
>18 なんのキーワードでぐぐるの?
自分で考えぃ!そんなんじゃ在宅プログラマとか無理だぞ。教えてくれる人間は 居ないんだからそれを考慮して物言えよ。
>>19 自分でそれを調べられない人間には無理、という仕組みになっている
ようは、素人には道はありませんということです
まぁ、俺も4ヶ月前はこうだった。気を落とさずに精進しな。
SOHO
24 :
前999 :2007/04/01(日) 17:55:10
>>15 さん
ありがとうございます。
実際にはタイマーで定期的に他サーバーのデータを参照して内容を
変えたいといったところなんです。
JavaEEでは、java.util.Timerではなく、quartzあたりを使うのが
常套のようですが、、こちらも、なかなか難しくて。
やりたいことは、結構単純なことだと思うんですが、意外と敷居が
高いです。。
>>24 あまり大げさでなければ、別プロセスに分ければいいんじゃないか?
実装も、Javaにしなくてcronでよかったりとか。
それとも、earに含めないと駄目とかそんな事情が?
27 :
デフォルトの名無しさん :2007/04/01(日) 18:48:40
サーブレットまたはJSPを使用して、入力されたデータを Excel形式で出力することは可能ですか??
>>27 つ jexelapi or poi
可能です。後は頑張りなさい。
31 :
27 :2007/04/01(日) 23:24:14
ありがとう御座います。 Javaアプリやアプレットは作成経験がある程度あるのですが、サーブレット /JSPは初心者同然です。そこでお勧めの書籍などあればご紹介くださいませ。
Strutsやってれば自然とおぼえる。
>>31 javaでアプリが作れるなら本はいらんと思う
実際に、何個か書けばわかる
tomcatやフレームワークのサンプルを見るだけで十分だろう
また、j2eeならBluePrintというsunの教科書がある
ttp://sdc.sun.co.jp/java/j2ee/blueprints/index.html それより、どのフレームワークでいくのかを決めるのが大変だろう
jspかjsfかに加えて
springかstrutsかseaserか
jsfならshaleとseamもあるし、faceletsもある
あるいは使わないってのもあるし、組合せもある
で、こいつらのドキュメントは英語が多いし、
seamなんかの日本語を読んでも意味わからんかもしれん(翻訳の問題ではなく)
開発の内容や規模も関係あるだろうし、ajaxなんかも考えなきゃいかんかもしれん
そう考えると本より
1)英語力
2)実際に環境を構築する実行力とスキル
3)調べることの出来るスキル
が必要だろう
j2eeという前提で書いているが、そこまでは・・って感じならスルーしてくれ
swingについて質問です。 JFrame上にJButton、JLabelが一つづつあったとします。 そして、JButtonを押下したときのイベントに以下のソースを コーディングしました。 *button,labelはそれぞれJButton,JLabelのインスタンス public void actionPerformed(ActionEvent ae){ if (ae.getSource().equals(button)) { for( int i = 0; i <= 10; i++ ){ label.setText( i + "個目の結果を表示"); try { Thread.sleep(5000); } catch (InterruptedException e) {} } } }
35 :
34 :2007/04/02(月) 00:53:31
34の続き
自分が期待している動作は
5秒ごとにラベルに表示される文字が
1個目の結果を表示
2個目の結果を表示
3個目の結果を表示
・・・
と変化していくものでした。
だけど、結果は50秒後に「10個目の結果を表示」
と表示されるだけです。
僕が期待するような動作にするためにはどのような方法がありますか?
一応、サンプルソースをここにあげときました。
http://www.uploda.org/uporg758399.java お願いします
javax.swing.Timer UI スレッドはさっさとお家に帰してあげましょう
38 :
デフォルトの名無しさん :2007/04/02(月) 02:39:49
ごめんなす(:D)| ̄|_ 今LOST見てるのですが、 入出力処理の際catch文でprintStackTraceを書くけどprintStackTraceって何? リファ見てもよく分かんない…
>>38 .printStackTraceの左にはなにか変数があるはずだが?
載ってる場所が分からないんじゃなくて何をするものか分からないのか。 そこに至るまでに、どのソースのどの行のどのメソッドが呼ばれたかの 経歴を出力している。
41 :
デフォルトの名無しさん :2007/04/02(月) 04:04:49
認定ガイドに書いてあった(:D)| ̄|_ printStackTrace()メクソは『例外が起こった時点でのスタックトレースが出力される』のかぁーズ。 コールスタック(現在のメソッドに到達するまでにそのプログラムで実行されてきた一連のハナクソ)をスタックの巻き戻し(下りながら、めっとも新しく呼び出されたミクソを先頭に、上から下に向かって各メソッドの名前)を出力。 SJC-Pの範囲やん。 デバッグに役立つんですね! プログラムが完成してもprintStackTraceは残したままにしたほうがいいのかな?
42 :
前999 :2007/04/02(月) 04:42:05
ありがとうございます。24です
>>25 さん
Springは更に規模が大きそうで。。部分だけつかうのにも理解が届いてない
状況でした。。
>>26 さん
Javaで利用するデータなので、できればJavaで完結したいというのが
あったんですが、おっしゃるとおりですね。別プロセスも考えてみますです。
43 :
デフォルトの名無しさん :2007/04/02(月) 04:49:01
日経ソフトウェアDに、 FileReaderクラスを使ってファイル内の文字列を1文字ずつ読み込むプログラムと、 BuffedReaderでバッファリングしながら1行ずつ読み込むプログラムがあります。 前者は while文が-1で停止、 後者は while文でnullで停止、 です。 -1とヌルの使い分けがよくわかりません
>>43 たぶん、前者はFileReader#read()(InputStreamReader#read())で読み込んで、
後者はBufferedReader#readLine()で読み込んでるんだろうけど、
それぞれのメソッドがストリーム終端で何を返すかは、
それを使う者が使い分けるというよりも、メソッドごとに決まってるからとしか言いようがない。
read()の方は一文字ずつ読み込んで、その文字を返すメソッドなので、
通常の文字ではありえない-1をストリーム終端で返すようにしているんだろうし、
readLine()の方は1行分をStringで返すメソッドだから-1を返すわけにいかないし、
未定義のインスタンスを表すnullを返すようになっているんだと思うが。
45 :
デフォルトの名無しさん :2007/04/02(月) 05:56:29
だよな(:D)| ̄|_ そうなんじゃないかと思った。
>>41 例外はできるだけキャッチして処理すべき。
処理できない例外をログファイルに書き込んでおくのが
一般的だと思われるが。
自分で対処できない例外までcatchして投げない奴って氏んだ方がいいよね ↓いつものループ
48 :
デフォルトの名無しさん :2007/04/02(月) 18:19:15
(:D)| ̄|_日経ソフトDで、あるプログラムに Set<String> set=new HashSet<String>(); と書いてあるのですが、エクリプスでは、式がステートメントとして無効です。と出ます。なぢぇ?そもそも<>って何?
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
えくりぷすで1.6使えますか?いま1.5で使ってます。
(:D)| ̄|_
(:D)| ̄|_
59 :
デフォルトの名無しさん :2007/04/02(月) 19:03:59
J2SDK1.4.2とEclipse2.1.2だが?(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:B)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
73 :
デフォルトの名無しさん :2007/04/02(月) 19:26:44
NGワードにされるまでやるつもりだな(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
どうしちゃったのこのすれ
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
90 :
デフォルトの名無しさん :2007/04/02(月) 21:35:45
全力で(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
あのさあ FOMAのアプリ作りたいんだけど、参考になる本ってどんなのある? ちなみに当方のプログラム経験履歴は MSC6.0 MASM PLM F-BASIC HG VB6 VB2005 とこんな感じ。 スレ違いだったら誘導よろ
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
>>93 本でも情報が古かったりするから俺が見た中では人に勧めれるものはなかったな。
公式のAPIリファレンスとチュートリアルとそこら辺にある講座サイトで問題ない気がする。
俺はMIDP使いだがJava ME全般に言えるのは端末の制限とか縛りがきつ過ぎてSEのノウハウが使い物にならないなぁ。
Java知らないならまずはSEでJava流儀のOOPを覚えた上でMEのお勉強コード書いた後にMEの実践的コードを書くの流れがお薦めだが・・・。
MEがコンフィギュレーションとプロファイルとオプションAPIに分かれてるってのを知っておかないと変な勘違いするかも・・・。
DojaやMIDPはプロファイルの一種ね。
DojaとMIDPじゃエントリポイントとかの規約が違ったり、
メソッド名が同じでも仕様が違うとかあるんで
片方のやり方が片方で通じなかったりするから
仕事で移植せにゃならんとき以外はどっちかに特化する事になるのかな?
自分である程度分かるようになってから本を探すのが安全な気がする。
因みにdojaなら本スレはこっち。
ttp://pc11.2ch.net/test/read.cgi/tech/1174036396/l50 エミュレータが全く使いモンにならんほど機種依存が酷いよ・・・。
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
荒らしてるわりにはsageてるんだな
104 :
34 :2007/04/03(火) 00:10:30
>>36-37 亀レスですけど、レス有難うございました。
TimerとかUIスレッドとかまだ良く解りませんが
ちょっと勉強してがんばって見ます。
どういたしまして (:D)| ̄|_
(:D)| ̄|_
ところで (:D)| ̄|_ ←ってどういう処理をあらわしてるの?
(:D)| ̄|_
(:D)| ̄|_
同じスレッド同士の処理は必ず同じ順番で実行されるけど 違うスレッドの場合、その順番は保障されない。(これは高速化に貢献している) 結果的に複数のスレッドから変更を受けるフィールドの状態がおかしくなったり、 適切に同期処理をしなくてはならなくてはいけなくなるんだが、GUIでこれをやるのは思いのほか大変。 だからUIスレッドを経由して実行することで、全てのGUIオブジェクトが一つのスレッドから変更を受ける状態になり スレッドセーフ性を確保するわけ。(逆にこの規約が守られていない場合の動作は保障されていない) ただしrepaintとかの場合はこれはいらない。これはrepaint自体が「UIスレッドを経由して実行」をやってくれるから。
(:D)| ̄|_
(:D)| ̄|_
>>113 荒しに親切にしてやっても良いことは何もないぞ
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
123 :
デフォルトの名無しさん :2007/04/03(火) 10:02:34
124 :
デフォルトの名無しさん :2007/04/03(火) 11:05:05
ClassLoaderで遊んでるんですが、ClassLoaderでロードしたクラスって更新で きないですか? 具体的には、 hoge.class を defineClass でロードした後、 javac hoge.java で hoge.class を更新して もういっかい defineClass で新しいクラスを導入したいと思っています。 findLoadedClass じゃ古い方取ってきちゃうし。それともjavaじゃ 動的なクラス定義の更新とかできないのかな‥‥‥。
>>123 subMap では、防衛的コピーとかじゃなくてビューが返されるはずだから
順序付けされてると考えて良いとは思うが。
明示されてるわけじゃないから石橋叩いて渡りたいなら期待しない方が良い。
>>124 その辺の事がやりたければ、1.5以降で追加された java.lang.instrument かな。
>>123 ConcurrentSkipListMap の submap() で返される ConcurrentNavigableMap の実装クラスは
SortedMap の実装クラスでもあるから順序付けされてる事は期待して良いのでは?
sjc-pの教科書のネストクラスの特徴を記述した中に、 ・外部クラス内のstaticメソッドと同様、staticネストクラスの内側から外部クラスの非static変数またはメソッドに直接アクセスできる。 こうあるんですが、staticメソッドと同様ならstaticなメンバにしかアクセスできないと思うんですが違うんでしょうか?
>>124 1.5より前だと、更新するclass一個に対してClassLoaderのインスタンス生成して、
class を更新するたびに、古いClassLoaderを古いclass定義ごと捨てて、
新しいClassLoaderを新しいclass定義とともに生成する、みたいな力技使うとか。
>>128 「直接アクセス」ってのを どーゆー意味で使ってるか分からんから なんとも言えないけど。
class Outer {
private instanceField;
static class C { void method(Outer outer){
outer.instanceField = 10; //取り囲むクラスのprivateなインスタンスフィールドにもアクセスできる。
//Outer.this.instanceField = 10; は内部クラスでないので、これは無理。
} }
}
× private instanceField; ○ private int instanceField;
132 :
128 :2007/04/03(火) 12:16:55
すいません出版してるとこのサイトで正誤表あったので一応見てみたら誤植だったみたいです。
非static変数または...→static変数または...
>>130 そういう方法ならアクセスもできるんですね。参考になります。
133 :
124 :2007/04/03(火) 15:49:37
>126 見てみる。ありがとう。 >130 うぉ力技だな。上手につくらないとメモリドカ食いしたりするのかね。 とはいえ参考になった。ありがとう。
staticなメソッドがオーバーライドできないのはなぜですか?
>>134 staticなメソッドをサブクラスでstaticなメソッドとして再定義すると、
メソッドはオーバーライドでなく隠蔽される。
隠蔽の場合は静的バインディングが行われるので、
そのメソッドを呼び出したインスタンスの静的な型情報にしたがって呼ばれるメソッドが決まる。
だから、SuperClass o = new SubClass(); o.staticMethod();だとすると、
oの静的型であるSuperClassのstaticMethod()が呼ばれる。
136 :
123 :2007/04/03(火) 17:31:50
>>125 >>127 ありがとうございます。整列済みは期待しても大丈夫そうでしょうか。
お騒がせしました。。
>>135 つうかなんでo.staticMethod();って書けるんだろう?
SuperClass.staticMethod();で十分じゃん
138 :
デフォルトの名無しさん :2007/04/03(火) 18:57:17
>>137 SuperClass o = new SubClass(); o.method();だとすると、
SubClassのmethod()が呼ばれることの対比を明確にしたかったからでは?
139 :
135 :2007/04/03(火) 19:04:27
>>138 そういうつもりで書いた。
動的バインドと静的バインドがごちゃごちゃするから、
できればクラスメソッドは
>>137 の言うようにクラス名.メソッド名で呼んだ方がいいと思う。
文字列:c:/hoge/poge.javaのpoge.javaを得るとか パス分解関係の関数ってどこにあるんだったけか?
java.io.File#getName()
それってよくないんじゃなかったかな。 File.dirnameとかFile.basenameみたいなメソッドないのかな。
> それってよくないんじゃなかったかな。 具体的には? > File.dirname java.io.File#getParent() java.io.File#getParentFile() > File.basename java.io.File#getName()
すまん、気のせいだった。それでいいです。ども。
145 :
デフォルトの名無しさん :2007/04/04(水) 11:13:51
for(int k = 1; k <= 100; k++) { if(k <= 10) { l1 = (l1 * 1000L) / 6554L; } l1 = (l1 * 6544L) / 6554L; } 例えばこんな文があったとき、 kが10以下の場合は「 l1 = (l1 * 6544L) / 6554L; 」 この計算はされるんでしょうか。 10以下の時にこの計算をしたくないときにはelseを入れるんでしょうかということです。
ヒント:break
>>145 continueもしくは普通にif...else...で。
breakするといきなりループを抜ける。
つまりこのままだと10以下の時に計算されてしまうわけですね?
149 :
デフォルトの名無しさん :2007/04/04(水) 12:07:06
そういうことだ。k>10が無難かと。
ありがとうございました。 continueがイマイチ良くわからなかったので おとなしくelseつけます。
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
_| ̄|(O:)
) :) O:) (O:) |(O:)  ̄|(O:) | ̄|(O:) _| ̄|(O:)
(:D)| ̄|_
(:D)| ̄|_
Dに興味持ってコンパイラ、win用リンカ、windowsモジュール、IDE、SDL/OpenGLポーティング、日本語マニュアル一式落としても まだ、ビルドツール、ドキュメントツール、GUIツールキット、リソースエディタ、XML APIとか揃ってない javaは恵まれてるんだなぁとつくづく思った今日この頃。 言語仕様もjavaの名前空間であるimportが一番スマートな印象を受けた。 javaもやろうと思えばJOGL,JOAL,JInput,JSDL,JMFがあるんだよね。 GC使いながら自分でメモリ管理したい・・・orz エンドユーザーとしてはやっぱりVM必須は導入の障害らしいし・・・
独り言を聞いてほしいのかい?
162 :
デフォルトの名無しさん :2007/04/04(水) 19:50:27
(:D)| ̄|_=3 (X<)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
java.io.WinNTFileSystem java.io.Win32FileSystem.canonicalize それぞれどういう例外か教えていただけないでしょうか? よろしくお願いいたします。 環境: OS : WinNT4.0Server eclipse3.2.0 Tomcat5.5.20
>>170 それは例外クラスではない
java.io.WinNTFileSystemはクラス名で、canonicalizeはそのメソッド名
winのファイルシステムで扱えない文字がパスに含まれるとか
173 :
171 :2007/04/05(木) 00:24:19
間違って送信した java.io.WinNTFileSystemはjava.io.Fileの実装に関わるクラスの名前で canonicalizeはjava.io.File#getCanonicalPathとかを呼んだ時にFileクラスからさらに呼ばれるメソッド 例外クラス名はそのメッセージが出ている前のあたりにないか?
>>173 ありがとうございました。(:D)| ̄|_
175 :
170 :2007/04/05(木) 00:54:55
>>171-173 早速のレス、ありがとうございます。
申し訳ありませんが、友達から聞かれたことなので自分では解りません。
申し訳ありませんが、確認は明日になりますので、
よろしければ、引き続き心当たりを教えていただけないでしょうか?
176 :
デフォルトの名無しさん :2007/04/05(木) 02:25:55
(:D)| ̄|_はオレの顔文字だ!使うなッ!
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
(:D)| ̄|_
toString()が明示的に実装されていないクラスの場合、 System.out.println()などでそのクラスのインスタンスを表示すると 「TestInstance@1a46e30」みたいに、そのインスタンス独自のアドレス またはIDみたいなものが表示されるよね? あるクラスにtoString()を実装してしまった場合、 この文字列を取得する方法ってどうやればいいの? JavaAPIにあるのかな?
toStringで親のtoString呼ぶとか
>>184 java.lang.Integer.toHexString(java.lang.System#identityHashCode(Object x))
>>186 Object#hashCode()ではなく?
189 :
184 :2007/04/05(木) 12:30:36
>>187 こらこら。人の質問の答に勝手にお礼を言うな!
190 :
184 :2007/04/05(木) 12:36:24
>>186 ありがとう。できました。
でも、「#」じゃなくて「.」だよね?
「#」使う高度な書き方ってあるの?Javaでは見たこと無いけど。
>>190 staticな呼び出し(静的バインド)を「.」で記述するから
インスタンスを作って呼ぶ場合ドキュメントでは「#」を代わりに使う
>>190 javadoc コメントの@see タグや {@link}タグで
<クラス名> # <メソッド名> ( <引数型リスト> ) って書く癖が混じっただけ。
>>191 インスタンスメソッド/クラスメソッドは関係ない。
別にあんた固有の癖じゃないだろ
そもそもtoStringオーバーロードするのはやめたほうがいい気がする。 のちのちハマリの元。
197 :
デフォルトの名無しさん :2007/04/05(木) 16:08:14
swingについて質問です。 JLabelに表示される文字列にリンクを張ることはできますか? htmlファイルの<a href = ・・・>みたいな感じです。 JLabelに表示されている文字列をクリックすると 指定のブラウザが起動されるイメージで作りたいんですが。 もし解るか方いましたら教えてください。 お願いします。
tomcatとかwablogicみたいなアプリケーションサーバのメモリ上(VM上?)に 永続的にデータを保持しておく事ってできますか?
初歩的な質問ですがお願いします。 jdk1.5.0_01とjreをアンインストールして、jdk1.5.0_04をインストールして 環境変数も新たに設定しなおしたんですけど、javacコマンドがコマンドプロンプトに認識されなくなりました。 インストールしたフォルダ(C:\jdk1.5.0_04)をシステム環境変数pathに追加(;C:\jdk1.5.0_04\bin)しました。 設定後コマンドプロンプトの再起動もしました。 ユーザー環境変数のところに追加してみたり、FAQ的なものを読んでいろいろやってみたんですがうまくいきません。
>>200 パフォーマンス的な問題でDBは使えないのです。
メモリ上に永続化って無理だろう…常識的に考えて。
>>199 コマンドプロンプトで
PATH > hoge.txt
ってやってhoge.txtの内容をここに晒す
>>201 「性能上の問題」というが、
問題はCPU使用率やメモリで、DBプロセスがメモリやCPU食うのが問題、というのなら、
hsqldbなどの、軽量で、インプロセスで動くDBを使えばいい。
問題は応答速度で、DB使うと遅いというのなら…どうやっても無理だ。
マシンを買い換えよう。
>>203 ありがとうございます。ファイル見ると変更したとこがこうなってました↓
...;C:\jdk1.5.0\bin
フォルダ名を上のものに変えると動きました。
確かにC:\jdk1.5.0_04\binにしてるんですけどなんでこうなってるんでしょうか。。。
206 :
デフォルトの名無しさん :2007/04/05(木) 18:05:58
>>201 ってどんな要件だ?
pkを使ってmysqlから検索するのに何msかかる?
>>204 の言う通りだと思う
>>201 パフォーマンスって言うよりDB選択・導入する権限がYOUに無いからとかじゃないか?
俺の場合はそれでORACLEになったりDB2になったりその他やるたびにDBが代わるんで悲しい。
>>205 環境変数の設定に失敗してるんじゃないのか
210 :
デフォルトの名無しさん :2007/04/05(木) 20:17:13
DBがダメか・・・ ファイルに出力、java.util.prefs.Preferencesでレジストリに格納もダメっぽいね。 パフォーマンスが速度の問題であれば VMを落さずにずっと起動しておけばいいんじゃね?
211 :
デフォルトの名無しさん :2007/04/05(木) 21:19:08
Java上で日本語変換を行うInput Method Frameworkで質問です。
Swingなどのウインドウアプリ以外で日本語変換をJava内で行いたいのですが可能ですか?
IMFのドキュメント
http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/imf/index.html には
「「インプットメソッドクライアント API」のインタフェースとクラスを使うと、"テキスト編集コンポーネント"でインプットメソッドとやり取りでき・・」
と"テキスト編集コンポーネント"と書いてあります。
やりたいことはコマンドライン上などでkonnitiha[スペース]と入力すると
「こんにちは」や「今日は」など日本語テキストとその変換候補を取り、またその変換で確定処理をすると言うことをしたいです。
Swingなどのウインドウ以外で、このようなことはできますか?
jni
>>211 InputMethod Client API は AWT のイベントシステムに組み込まれてるから無理だと思われ。
ダミーのAWT or Swingコンポーネントを作って、
そこに java.awt.Toolkit.getSystemEventQueue で取った
EventQueue に InputEvent を流し込むよーな事をすれば、
上手く行けば InputMethodEvent を発生させられるかもしれん。
それが出来れば、って感じだけど……
仮に それで Windows で動いても Unix で動く保証とかないし、
そもそもに コマンドラインで文字消したりって
標準APIの機能でサポートしてないから諦めた方が無難。
例外の質問です。 呼び出し先メソッドで、throws宣言やthrow文で呼び出し元に例外をスローして例外処理をする というのはわかりましたが、throws、throwの記述がない呼び出し先メソッドで、 ArrayIndexOutOfBoundsExceptionが発生した場合も、呼び出し元で例外処理をしている様なのですが これは呼び出し元に例外がスローされているのですか?
>>215 ArrayIndexOutOfBoundsExceptionはjava.lang.RuntimeExceptionを継承したクラス。
あとは「非検査例外」か「非チェック例外」でぐぐってみればわかると思われ。
217 :
211 :2007/04/05(木) 22:26:36
>>214 むむむ、はやりAWTに依存してますか・・・。
コマンドラインは例で、コマンドライン以外でもaとかoとかのデータから日本語を組み立てて、候補を出してその中から選択ってしたかったのですが・・・。
複数OSに対応したかったのでJNIは使いたくないんですよね。
「いや、こうすればできるよ」などあれば引き続きアドバイスお願いします。
>>197 他のテキストを表示するタイプのコンポーネントを初期化する前に
new JLabel("<html><a href="hoge">linkee text</a>");
じゃ無理?
流石にハイパーテキストリンクはサポートしてないかも知れん。
>>218 無理。ハイパーリンククリックのイベントを拾うには、
標準ではJEditorPaneが必要になる。
>>219 やっぱ無理なのか。
見た目の問題ならCSS食わせれば一通りの事は出来るのにな。
>>220 JLabelをカスタマイズして作ったら?
「クリックすると指定のブラウザが起動するJLabel」
という仕様で。
今だとDesktop#browseに食わせるのが簡単かも。
223 :
デフォルトの名無しさん :2007/04/05(木) 23:29:21
コマンドライン引数で入力した文字列を列数ではなく、文字数を数えたいのですが どうすればいいでしょうか? 文字列は数えられても、文字数がどうしてもできないのです。
argv.lengthじゃなくて、argv[0].length(), argv[1].length()...の和を 求めたいという意味かね?
>>223 「
>>223 の考える文字数」の定義がわからんので答えようがない。
String#length() じゃダメなん?
226 :
223 :2007/04/06(金) 00:12:12
10>A、11<B って感じです。 if文で表したいのですが、args.lengthで文字列の数は取得できても あああああ で 5文字と数えたい if文に10より小さいならとかの指定がうまくいかないす。 つまり、○○java 2222555aaaaa B ということです。 わかるでしょうか?
228 :
223 :2007/04/06(金) 00:17:33
書き方がわかりずらいのでもう1度書かせてもらいます。 例えば ssss aaaaa vvvv で3列とは数えられる args.length で でも aaaaaa を6文字と数えらない if( ? < 10 ) { の ? の部分がどうしてもわからないのです・・
229 :
223 :2007/04/06(金) 00:22:15
DOSでコマンドライン引数で入力した文字数を表示させて なおかつ、文字数によって出力の結果をわけたいわけです。 つまり、10までなら A と表示させ、 11以上なら B と 表示させたい。 で、if文を使うのだろうと思いましたがうまくいかないわけです。
230 :
デフォルトの名無しさん :2007/04/06(金) 00:25:35
long変数の値が計算した結果 9223372036854775807を超えたらどういう扱いになりますか? 超えたらエラー表示を出したいんですが。
>>229 main(String[] args){}
のargsは、Stringの配列だとは、認識できるよな?
つまり、
{"aaa","bbb"}
のような配列が入ってくるわけだ
args.lengthには、上場合は2がかえる。
つまり、配列に入っているStringの数が帰る
だから、配列の最初の要素を取り出して、
そのStringの文字数を数えれば言い訳だ
Stringのlengthはメソッドであり、()を付ける必要がある。 配列のlengthは不要。 どうにか出来なかったものかと思うが、今更だな。
>>230 オーバーフローして、演算結果としては long であらわせる範囲(要するに下位64bit)が返る。
例外とかは一切無し。検出は自前でやんないとダメ。
235 :
223 :2007/04/06(金) 01:06:50
class TestArgs { public static void main(String[] args) { if(args[0].length() < 11 ) { System.out.println("A"); } else { System.out.print("B"); } } } コンパイルはできたけどだめでした・・例外処理も加えないとダメですか、
236 :
223 :2007/04/06(金) 01:08:26
いや、OKでした 訂正します。なんとまぬけな、 ありがとうございました!
237 :
197 :2007/04/06(金) 01:51:20
>>206 レス有難うございます。
おお、確かにそうですね。
ラベルは表示するだけって思い込んでたので
イベントハンドラの事をぽっくり忘れてました。
>>218-221 レス有難うございました。
クリックのイベントで実装してみたいと思うのですが
javaからURLを指定してブラウザを起動する事はできますか?
解るかたいましたら教えてください。
239 :
197 :2007/04/06(金) 01:56:08
すいません。連続して質問します。 JLabelに表示される文字列を スクロールして流れるように表示させたいです。 自分ではTimerクラスを使って文字列を 少しずつ編集すれば出来るかと思ってますが、 重そうであまり賢い方法とは思えません。 そういった機能を持つクラスや別の方法はありますか?
240 :
197 :2007/04/06(金) 01:56:51
>>238 うっす。どうもっす。
早速調べてみます。
>>239 環境にもよるし編集内容にもよると思うが全然重くなかった
public class MarqueeLabel extends javax.swing.JLabel implements java.awt.event.ActionListener {
private StringBuilder sb = new StringBuilder();
public MarqueeLabel(String text) {
sb.append(text);
setText(sb.toString());
new javax.swing.Timer(40, this).start();
}
public void actionPerformed(java.awt.event.ActionEvent e) {
char c = sb.charAt(0);
setText(sb.deleteCharAt(0).append(c).toString());
}
public static void main(String[] args) {
javax.swing.JFrame f = new javax.swing.JFrame();
f.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
f.add(new MarqueeLabel("abc def ghq jkl mno pir stu vwx yz@ "));
f.pack();
f.setVisible(true);
}
}
242 :
197 :2007/04/06(金) 03:48:44
>>241 レス有難うございます。
確認までして頂いて感謝です。
あの、全く関係ないんですけど
今あるjavaGUIらしいデスクトップアプリを使っていて
その中の文字列がスクロールしている部分があります。
その文字列のスクロールが文字単位ではないんです。
Timer使って文字列を編集しながらスクロールさせると
どうしても文字毎単位になっちゃうじゃないですか?
なんか意味不明な説明になってきたような・・・
例えば、Timerを使った方法だと
"abcde"という文字列がラベル上に左詰で表示されているとして
次にスクロールしたら"bcde"という表示になりますよね。
左端のaは絶対にあるかないかです。
でも、最初に話しましたアプリだと、aの一部も
表示しながらスクロールされるんです。
文字列としてではなく画像として扱ってるんかな・・・
なので、そういったスクロールさせるクラスとかメソッドが
あるのかと思って
>>239 で質問しました。
でも、これ以上時間かけても解らないので
もう
>>241 の方法で行きたいと思います。
有難うございました。
servletではなく,クライアントPCで動作するアプリケーションとして ファイルのアップロードをするプログラムを作りたいと考えています サーバ側でファイルを受け取るのは一般的な画像掲示板を想定しています その際multipart/form-dataでエンコードされたデータをPOSTすれば良いことまでわかりました エンコードにjavax.mail.Multipartを利用すれば良さそうだと思いましたが, デフォルトでform-dataに対応していない(サブクラスの記述をしなければいけない)ため, 現在の私に使えそうにありません そこで参考になりそうなサイト/書籍を紹介していただけませんでしょうか
>>242 >>244 の言うようにJComponentあたりを継承して自前で書くのが一番描画の自由度が高いね
自由度は低いけどこういう手もある
public class SmoothScrollLabel extends javax.swing.JScrollPane implements java.awt.event.ActionListener {
private javax.swing.JViewport viewport;
private java.awt.Point point = new java.awt.Point();
public SmoothScrollLabel(String text) {
viewport = getViewport();
viewport.setView(new javax.swing.JLabel(text));
new javax.swing.Timer(40, this).start();
}
public void actionPerformed(java.awt.event.ActionEvent e) {
int width = viewport.getView().getSize().width;
if (point.x > width) point.x = -width;
else point.x++;
viewport.setViewPosition(point);
}
public static void main(String[] args) {
javax.swing.JFrame f = new javax.swing.JFrame();
f.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
f.add(new SmoothScrollLabel("abc def ghq jkl mno pir stu vwx yz@ "));
f.pack();
f.setVisible(true);
}
}
248 :
230 :2007/04/06(金) 09:48:49
>>234 ありがとうございます。
オーバーフローの検出はどうするんでしょう?
マイナスになったら、と思いましたが、
足し算は出来てもでかい数字同士の掛け算だとマイナスにならないと気付きました。
BigInteger使ったら?
251 :
デフォルトの名無しさん :2007/04/06(金) 10:36:26
画像をナナメに表示するにはどうしたらいいのでしょうか? drawImage(image[0],x, y,width,height,this);しか知らず…orz
>>251 ヒント:AffineTransform
何でヒントだけ?
>>248 > オーバーフローの検出はどうするんでしょう?
自前でやるしかない。
速度気にしないなら、c = a * b; した後で、
c / a == b ならオーバーフローしてないと判断する、とかね。
255 :
デフォルトの名無しさん :2007/04/06(金) 10:52:16
>>252 ありがとうございました。
rotate();だとか、それっぽい関数がありましたので勉強してみます。
>>254 それでやると、 -1 * Long.MIN_VALUE でオーバーフローしてても検出できない。
他にもあるかもしらんけど。
>>254 ありがとうございます。
それで出来ました。
Webアプリを作成しています。 画像ファイル用のディレクトリにある一部の画像が表示されないのですが、これ はどの辺りに原因があるでしょうか。 開発環境から持っていった画像は表示されるのですが、フォームからアップロー ドした画像が表示されません。いろいろ調べましたら、サーバ上の別のディレクト リからコピーした画像も表示されないようです。画像ファイルのURLを直接指定 しても404NotFoundになってしまいます。 つまり、初期段階からあるHTML用の画像は表示されるのですが、後から追加し た画像、フォームからアップロードした画像が表示されません。表示されない画 像を開発環境上のディレクトリにコピーして、それをサーバ上に持っていくと表示 されました。 初歩的な質問かもしれませんが、分かる方いらっしゃいましたら教えてください。
260 :
251 :2007/04/06(金) 17:30:52
>>260 ざっと見たところここが怪しい。
>g2.setTransform(at);
omote.setTransform(at);
>>260 > Graphics2D#setTransform(AffineTransform Tx)
> Graphics2D コンテキストで Transform を上書きします。警告:このメソッドは新しい座標変換を既存の変換上で適用する
> 目的では使用しないでください。
> 座標変換を追加するために、transform、rotate、scale、またはshear メソッドを使用します。
この「transform、rotate、scale、またはshear メソッド」はGraphics2Dのね。
>>260 omote,uraのネーミング変じゃないかい?混乱したぞ。
Graphics2D g2=(Graphics2D) g;
omote.drawImage(image[0],50,50,this);
//AffineTransform at=new AffineTransform();
//at.rotate(90*Math.PI/150.0,150+18,150+18); //画像の中心を回転の中心に合わせる
//g2.setTransform(at);
AffineTransform at = ((Graphics2D)omote).getTransform();
((Graphics2D)omote).rotate(90*Math.PI/150.0,150+18,150+18);
omote.drawImage(image[0],150,150,this);
((Graphics2D)omote).setTransform(at);
g.drawImage(ura,0,0,this);
264 :
251 :2007/04/06(金) 18:15:38
>>261 GraphicsクラスのomoteにはsetTransformメソッドがないと怒られてしまいました。
>>262 う〜ん、setTransformで座標を変えるやり方自体がよくないってことなのでしょうか。
最終的にやりたいのはマウスなりキーボードなりに反応して画像が回転して動く、ちらつきのないアニメーションです。
せっかく回答してもらってるのにいまいちピンとこない辺り、
勉強が足りないのかもしれませんねorz
あ、g2もいらんね。 //Graphics2D g2=(Graphics2D) g;
266 :
251 :2007/04/06(金) 18:55:09
>>263 >>265 おかしなネーミングで申し訳ないですorz
とりあえずやりたかった動作が確認できました。ありがとうございました。
完全に置き換えずにその時々で変換してやる必要があるってことですね。
267 :
243 :2007/04/06(金) 21:50:01
>>246-247 今帰ってきました
ありがとうございます
これから読んで,頑張ろうと思います
268 :
デフォルトの名無しさん :2007/04/07(土) 08:48:29
AXISのTCPMonitorを使用して外部インターネット(HTTP)との通信内容を調べたいのですが可能でしょうか? ローカルマシンのwebアプリとの通信内容は見れたのですが。
可能
270 :
デフォルトの名無しさん :2007/04/07(土) 10:51:46
>>269 具体的にはListenPort,TragetHost,TargetPortをどのように設定したらよいでしょうか。
リクエスト送った時と送らない時で netstat -aの差分とってみりゃいいじゃん
pattern、Matcherクラスの勉強してるときにある本の中にこういうコードがあったんですが Pattern p = Pattern.compile("[a-z]");//正規表現をPatternクラスのオブジェクトにコンパイル Matcher m = p.matches("aaaaaaaa");//指定されたパターンと、マッチング対象の入力テキストとが含まれることになるMatcherオブジェクトを作成する この2行目のメソッド名はmatcherと間違ってるように思うんですがどうなんでしょうか? JDKの資料調べてみて戻り値や引数の数からおかしいように思えます。 本の正誤表には載ってませんでした。おねがいします。
matchesはbooleanを返す macherはMatcherインスタンスを返す ので、本が間違ってるね。
javaでビープ音出したいんですけど どうやったらできますか?
Toolkit.beep()
開発言語:JAVA、データベース:Postgresql8.1の環境で開発してます。 Driver driver = DriverManager.getManager(url文字列); ※url文字列 jdbc:postgresql:プロジェクト名 上記コードでSQLExceptionが発生します。 データベースアクセスエラーのようですが何故発生するか分かりません。 jdbcドライバが認識されていないのでしょうか!? ご回答、アドバイスの方よろしくお願いします。
接続できてないんじゃないのか。 コマンドラインから接続できるか確認すべき。
278 :
276 :2007/04/07(土) 19:44:29
>>277 ローカルのDBなので、DOSプロンプトからログインできることも確認できました。
279 :
デフォルトの名無しさん :2007/04/07(土) 19:47:26
boolean型の値を出す関数を組み合わせて、if(A&&B)のように使うことは出来ますでしょうか? また、全てfalseの場合にある動作をさせたいのですがどう書けばよろしいでしょうか? -func1()&&-func2()&&…のようにマイナスで反転させることってできませんよねorz
280 :
274 :2007/04/07(土) 19:55:10
>>275 レス有難うございます。
あの、指定した秒数だけビープ音を出したいんですけどできますか?
別にビープ音じゃなくても音なら何でも構いません。
!func()で反転するじゃん
>>276 原因はよく判らんけどとりあえずorg.postgresql.ds.PGPoolingDataSource使ってみれば?
JavaDocでも
>データソースへの接続時には DataSource オブジェクトの使用をお勧めします。
とかいってるし。
>>279 そもそも && や || は1行目みたいなことのために使うものだ。
全てがfalseの場合、は !A && !B のように書く。論理の反転(否定)は!演算子。
また、ド・モルガンの法則というものがあり、
!A && !B は ! ( A || B )ともかける。
>>280 何に使うのかわかんないけど
System.out.printでbeepをあらわすエスケープシーケンス出すとか
javax.soundを使ってみるとか
286 :
276 :2007/04/07(土) 22:15:45
>>283 回答ありがとうございます。
>org.postgresql.ds.PGPoolingDataSource使ってみれば?
使ったことが無いのでなんとも言えませんが、やってみます。
288 :
デフォルトの名無しさん :2007/04/07(土) 22:31:52
>>288 ごめん書き方悪かったかな。
TCPモニタを使用しない状態(<ここ重要)で、リクエスト送った時のローカルportとリモートhost,port
をDOSプロンプト(Windows?)のnetstatを使って見てみればということ。
やり方は、結果はネットワーク的に何もしない状態でもたくさんでてくるから(単一マシン内で起こるパイプとか、いろんなサービス(共有)とかのレシーバ待機)、
リクエスト送った時と送らない時のnetstatの結果を比較してみてその差が求めたいものだと思う。
例えば、
netstat -a 1>c:tcpmon.txt
とかやれば、1[interval]のオプションついてるから1秒おきにctrl+c押すまで延々とnetstat発行してくれてtcpmon.txtにキャプチャーしてくれる。(netstat ?でヘルプを見て)
その状態の途中で、リモートにリクエストを送ってやる。
そして、おもむろに時間がすぎた後ctrl+c押してnetstatコマンドを止めてやる。
そして連続して出されたnetstatの結果の差を見る。差の中にリモートhostとリモートportがあると思う。
あとはリスナーのやり方含めてローカルホストの場合と同じでしょう。
EclipseってC#みたいですね
未だにifの条件式考えるときに、||がいいか&&がいいか頭をひねってしまう。 特に条件が!の時に。みんなこんな?それとも俺が低脳なだけ?orz
292 :
291 :2007/04/08(日) 08:44:23
失礼、あまりにも低脳な発言ですた。
293 :
デフォルトの名無しさん :2007/04/08(日) 09:39:07
MPGの全フレームを抽出するためのソフトを作るために Javaライブラリを探しているんだけど、 こういうのってどこで探せば見つかるの?
google
295 :
デフォルトの名無しさん :2007/04/08(日) 11:10:53
296 :
デフォルトの名無しさん :2007/04/08(日) 11:13:57
もっとがんばれ
297 :
質問 :2007/04/08(日) 11:35:41
JavaとCどっち学んだほうがいいか?
どっちって。。。当然両方だろ。 プログラマなら何種類かの言語使えるのが普通。 そこまでじゃないならVBやスクリプトで充分。
>>295 JMF以上のことがいるのか?
ibmにも有償ライセンスのがあった気がするが
>>297 初心者ならJavaとC#覚えればいいと思う
熟練者ならC++・JavaScript・PL/SQLなども覚えるべき
>>297 どっちでもいいと思う
俺はJavaとperlだけだな
303 :
デフォルトの名無しさん :2007/04/09(月) 18:53:27
よろしくお願いします。 次のようなコードで、あるクラスのプロパティに、新規に作成した オブジェクトを代入する場合、func2のように、一度、メソッドの 中で一次変数的に作ったものを代入するのは、よくないのでしょうか。 C++などでは、駄目なことは理解してますが、Javaでもマズイことなのか どうか半信半疑なのですが。。 class someclass { ArrayList arr; void func1(){ this.arr = new ArrayList(); } void func2(){ ArrayList tarr = new ArrayList(); this.arr = tarr; } }
304 :
303 :2007/04/09(月) 19:01:05
あ、失礼しました。new による作成ならC++でもヒープですね。 Javaでも、上記は問題ないように思いましたが、もし違っていましたら ご指摘頂ければ幸いですが、とるに足らない内容でしたら、スルーして 頂ければと思います。すみませんでした。
全く何の問題もないにょ
ん、何が問題かよく分からんね。スコープは変数に掛かってくるのであって オブジェクトの生成場所ではないですよ。
import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class TestClass extends Applet{ public void init() { Scrollbar S = new Scrollbar(Scrollbar.HORIZONTAL); S.setBounds(new Rectangle(15, 15, 180, 25));//ここがうまくいってない add(S); } } 上のようなコードを書いて実行してもスクロールバーの位置・サイズが変更できません どのように修正したらよいのでしょうか?
>>308 ありがとうございます
setLayout(null);
とすることで解決できました
プログラミングに関しては全くの初心者です。 iアプリを作りたいと思ってるんですが、プログラム組むのになにか専用のツールがあるんでしょうか? それともメモ帳に打ち込んで作るのでしょうか?
すいませんプログラム初心者です。%=について悩んでおります。 具体的には public class Enzan { public static void main(String[] args) { int x = 11; int y = 10; x %= 2 * 100; System.out.println(x); } } についてコンソールに11と表示されます。 自分ではx %= 2が1なので1*100で100がxに代入されると考えたのですが・・・。
>>312 演算子の結合順位調べろ。
> 自分ではx %= 2が1なので1*100で100がxに代入されると考えたのですが・・・。
仮に、前半の「x %= 2が1」が 先に実行されたとしても
後半の「1*100で100がxに代入される」は絶対ないだろ。
前半部分には代入演算子あるけど、後半には何処にも代入演算子が無いし。
equalsメソッドのオーバーライドについて質問です。制約として ・対称性 (symmetric): null 以外の参照値 x と y について、x.equals(y) は、y.equals(x) が true を返す場合だけ true を返す などがありますが、これらの制約は、x,yが同クラスのインスタンスとしたことを前提としてるんですよね? てなると、オーバーライドしたequalsメソッドで、AクラスオブジェクトとBクラスオブジェクトを 比較してtrueを返すような使われ方は、一般的ではないわけですか?
>>314 一般的ではないという以前に、別のクラスのオブジェクトが等しいとみなされる場合があるのか?
>>315 Mapのイコーリティって仕様で決まってんじゃなかったっけ。
>>314 そんな実装、やってみれば無謀な事がわかる
A の何と B の何を比べるつもりなのか
equals を再定義するにあたって、うっかり getClass の比較を忘れてたりすると、そんなことが起きたりする。
>>318 getClass() での比較忘れてても、キャスト時に ClassCastException が飛ぶだけでは?
generics使ってるとそんなequalsは使えない Collectionで使う以外でequalsのオーバーライドはしたことないし
……。 Generics があっても equals の引数型は Object で固定だし。
>>319 ちがうちがう
class Sample {
private final String id;
// ...
public boolean equals(Object obj) {
return (obj instanceof Sample) && ((Sample)obj).name.equals(this.name);
}
}
適当だけど、こういうプログラムを昔よく書いてた経験がありましてですね。
尤も、この解決策は、
1) instanceof を getClass の比較に変更
2) Sample または equals の宣言に final をつける
3) クラスが異なっていても id が同じなら同じとみなすようにマニュアルを変更
の3種類あるけど。
いや、3種類も無いな。3番は忘れてくれ。
java.util.Date が3番(?)だったりする罠。 どーでも良いけど、3番だと実装が name 比較してるから拙い罠。
>>315 ListやMapの実装クラスは中身が一緒だったらequalsがtrueを返したような。
そういう意味ではクラス自体が違ってても等しいとみなしてよいことも
なくはない。
327 :
デフォルトの名無しさん :2007/04/12(木) 08:22:47
車を運転する簡単なゲームを作っています。
左回転と右回転で何故か回転半径が違ったりする問題はありますが、
とりあえず車の挙動は完成しました。
現在壁にぶつかったら止まる動作を作っているのですが、
どうも上手くいかずここに書き込ませていただいた次第です。
アプレットの赤い点は、画像の表示位置である(car_x, car_y)を示したものです。
現在はこの座標を衝突判定に使っているので、前進しながらこの点が黒枠にぶつかると止まるはずです。
画像を回転させているからか画像左上の角と赤い点が一致しないことがあり、悩んでいるのはその修正です。
crash_check()内にあるコメントアウトは私があれこれ考えて修正させてみた式なのですが、
この修正を行ってRectangleに修正値である(car_x_check, car_y_check)を用いてもそれはそれでおかしな点を指してしまいます。
アプレット左上の数値はcar_angle(車の向いている方向)を示しています。
画像の回転もこの数値を元に行われます。
ソース
http://www.za.ztv.ne.jp/yosi-h/page001 アプレット
http://www.za.ztv.ne.jp/yosi-h/Java.html
Javaの勉強をしようと思うのですが 触り始める前に前提知識としてこっちの言語かじっとけみたいなのってありますか
言語難易度 C#>JAVA>C>C++ 言語ルーツ 1.C(基本情報技術者試験と一緒に学習すると効率が良い) 2.C++(Cを学習済みの人でないと厳しい) 3-1.JAVA(UMLの勉強と一緒に行うと効率が良い) 3-2.C#(VisualStudioでGUIの作成を一緒に学習すると効率が良い)
オブジェクト指向とMVCくらいは覚えた方が良いかも。 #ここでSmalltalkとか出してくると荒れる原因か・・・ 俺はSelfの方が好きだが。
JAVA初心者にオススメのIDEを教えてください。
334 :
332 :2007/04/12(木) 14:21:18
ありがとうこざいます。 もうひとつ質問なんですが、携帯のアプリは専用のツールを用いないと作成できないのでしょうか?
うん
そのツールは、プログラミングするときに必要なのか、単にファイルを変換するときだけに必要なのかどちらなんでしょう?
javaでグラフ描画したいのですがどんな手法が
ありますかね?
今のところJFreeChartがフリーだし
シェア ○
信頼性 ?
拡張性 ○
性能 ○
と思ってるのですが他にいいヤツありますか?
うん
フリーソフト、シェアウェア使うなら使用許諾条件をきちんと読まないと 後で大変なことになるから気をつけた方がいいよ。
340 :
デフォルトの名無しさん :2007/04/12(木) 16:52:55
windows2000を使っています。 サーバプログラムを作成したのですが、 起動のときにコマンドプロンプトで %JAVA_HOME%\bin\java.exe -server -classpath %CLASSPATH% MainClass とやると、当たり前ですがコンソールが返ってきません。 %JAVA_HOME%\bin\javaw.exe -server -classpath %CLASSPATH% MainClass とやると返ってくるのですが、 これをbatファイルに記述して、末尾に exit を追加。 これをダブルクリックしても自動でプロンプトが閉じてくれません。 このバッチファイルをダブルクリックで起動→プロンプト終了 とするにはどうすればいいのでしょうか?
>>325-326 いやー。普通にあるんだけど、3番を解決策と言うのはちょっと違うと思いまして。
sjc-pの問題でコンパイルエラーが起きるか、それとも実行時エラーが起きるかっていう問題が 結構多いんだけど、この見分け方って経験しかないの?
コンパイルエラーは論理的に構文が間違っていると大抵起こるし、 実行時エラーは内部割込みを行うエラーと考えればわかると思うけど。
>>343 コンパイルは構文エラーで、実行時はぬるぽやら配列インデックスやら
まあ、後者は RuntimeException のサブクラスを見てみれば、色々有るでよ
>>343 言語仕様勉強すりゃ、どっちかわかる。
一部の実行時エラーはAPI仕様勉強しないとわからんかもしれんが。
まだ初心者なんで言語仕様よんでも理解できそうにないです。 RuntimeException のサブクラスが全部実行時エラーなんですか?
RuntimeExceptionとそのサブクラス
PipedInputStreamに1024バイト以上のデータを突っ込むとだんまりするんだけどなんで? PipedOutputStream pos = null;PipedInputStream pis = null;DataOutputStream dos = null; try{ pos = new PipedOutputStream();pis = new PipedInputStream(pos); dos = new DataOutputStream(pos); for(int i = 0; i < 2048; i++){ dos.writeByte(1); } }catch(IOException e){ e.printStackTrace(); }finally{ try{ dos.close();pis.close(); pos.close(); }catch(IOException e){ e.printStackTrace(); } }
Javaでの実装は知らんが一般にパイプは 突っ込むだけでは詰まるから適当に吸い出す必要あり。
>>349 書き込むばかりで読み出してないからだ。
PipedInputStreamのバッファサイズ以上のデータを書き込めばパイプが詰まるのは当たり前。
352 :
K.K.K :2007/04/13(金) 00:50:01
int[][] java = { {100,200,300,400,500,600}, {10,20,30,40,50,60} }; この2次元配列でこの部分の{100,200,300,400,500,600}配列のLengthを取得し 、そのLengthの1番目なら100と10を取得、2番目なら200と20を取得、、、 を取得したLength分したいのですが、どのようにすればいいんでしょうか?
int[][] java = { {100,200,300,400,500,600}, {10,20,30,40,50,60} }; for (int i = 0, length = java[0].length; i < length; i++) { System.out.printf("%d: %d%n", java[0][i], java[1][i]); }
355 :
デフォルトの名無しさん :2007/04/13(金) 02:55:43
Mapを配列にいれてアクセスするにはどうすればいいですか? getするところで 警告:[unchecked] 無検査変換ですになってしまう。 public static void main(String [] args) { Map<String,String> [] maps = new HashMap[2]; maps[0] = new HashMap<String,String>(); maps[1] = new HashMap<String,String>(); maps[0].put("hoge","ほげ"); System.out.println(maps[0].get("hoge")); }
genericsの仕様だから無理
まちがい putするところで 警告:[unchecked] 無検査変換ですになってしまう。
げー、なんか抜け道ないかなぁ。
>>358 抜け道はない。
配列がだめならListを使えばいいじゃない。
public static void main(String[] args) {
List<Map<String,String>> maps = new ArrayList<Map<String, String>>(2);
maps.add(new HashMap<String, String>());
maps.add(new HashMap<String, String>());
maps.get(0).put("hoge","ほげ");
System.out.println(maps.get(0).get("hoge"));
}
>>359 おお、その手があったか!
ありがたう!
361 :
デフォルトの名無しさん :2007/04/13(金) 09:27:26
iアプリのテキストボックスで数値貰って計算したいんですが、 テキストボックスを文字禁止で数値限定にする方法ありますか?
362 :
デフォルトの名無しさん :2007/04/13(金) 11:33:36
よろしくお願いします。 Win2003 + Java + struts + spring + JDBC + Oracleでのシステムなのですが 不可思議な動きをして困っています。 例えばIDがユニークキーとなるテーブルがあったとして //テーブルに該当するIDがあれば削除する。; List ret = DBSearch.search(id); if(ret != null || ret.isEmpty){ DBDelete del = new DBDelete(); del.delete(id); } //テーブルにレコードをinsert DBInsert ins = new DBInsert(); ins.insert(id); のようなロジックを組んで、実際にサーバ上で走らせてみるとDBのユニークキーエラーが出たり出なかったりします。 一度エラーが出ても、もう一回同じ処理を走らせると正常終了したりします。 どこかで「Javaのvoiのvoidは戻り値がないため、関数を呼び出したらその終了を待たずに次の処理に行く」 と言う話を聞いたことがありまして、 もしそうなら上記のdel.delete(id)よりも先にins.insert(id)が走ってしまい、ユニークキーエラーになるのかな と思い御相談させていただきました。 「Javaのvoid関数は戻り値がないため、関数を呼び出したらその終了を待たずに次の処理に行く」 というのは本当でしょうか。? 意味がなくてもbooleanやlongなどの戻り値をつけたほうが良いのでしょうか??
>>362 心配ならレコードをinsertする処理の前に
IDが存在しなくなるまで抜けないループでもつければいいと思うが。
>>362 >「Javaのvoid関数は戻り値がないため、関数を呼び出したらその終了を待たずに次の処理に行く」
>というのは本当でしょうか。?
んなことはない。それが出来たらスレッドはいらなくなる。
予想するとこんな感じでは?
deleteとinsertで別のコネクションを使っていて、
delete側がcommitしないままコネクションを放置している。
>>362 メソッドの戻り値がvoidだというだけで非同期なメソッド呼び出しになるなんてことはありえない。
そんな言語仕様嫌過ぎる。
呼び出したメソッドの中で新たにスレッドを動かして、
そのスレッドの中で処理が続いているにも関わらずreturnする実装になっているとか、
呼び出したメソッドがさらに非同期なメソッド呼び出しを行っているとかしていない限り。
そのメソッドの仕様を見て非同期メソッド呼び出しになっていないか確認すれ。
もし非同期メソッドなら対処方法としては
>>363 でいいと思う。
class Hoge { int x; void A() { x=1; } void B() { x=2; } void C() { A(); B(); } } これでC()を呼び出した後でxの値がどうなるか分からないなんてJavaは酷い言語だなw
>>366 C() の内部の B() の呼び出しが終わって C() の呼び出しが終わる前に、
別のスレッドが x の値を書き換える可能性があるって話?
他の言語でも同じだと思うが。
synchronized
synchronized しても、 x は private じゃないのでパッケージ内の他のクラスから触り放題だよなぁ。
>>367 ちがうちがう
単に「Javaのvoid関数は戻り値がないため、関数を呼び出したらその終了を待たずに次の処理に行く」 んだったら
シングルスレッドだろうとxが2になっている保証はないと言いたいだけだ
>>370 言いたいことはわかるよ
要するに「( ´,_ゝ`)プッ」ってことだろ
>>362 ret != null || ret.isEmpty
ret が null じゃないか、もしくは、空ならば。
何行目でユニークキーエラーが出てるのかしら
JDKってどこでダウンロードできますか? 本に載ってるURLも、Sun社のサイトないのリンクも、 サーバエラーで見れません。 どなたか事情をご存知でしたら教えて下さい。
>>373 あ〜さひがSUNSUN、おはよ〜うSUN
>>375 ありがとうございます。
「
JDK
つぎに必要になる物は、Javaのコンパイラです。 Javaのコンパイラは、
JDK(J2SE Development Kit)の中にふくまれています。つぎのサイトからJDKをダウンロードしてください。
ダウンロード Java 2 Platform Standard Edition 5.0 (J2SE)
」
のところですよね?
リンク先URLは
http://java.sun.com/j2se/1.5.0/ja/download.html ですが、
やはりサーバエラーになります。URLが変わったんでしょうか?
何回やっても見れません。
>>377 見れるよ?
おまいんとこのプロバが経路障害起こしてるんかも
>>378 そうですか…問題はサイト側じゃないんですね。
プロバイダに問い合わせてみます。
OCNに電話したら20分待ち、サンに電話したら17:30まで 死ねよクズども 殿様営業しやがって
382 :
デフォルトの名無しさん :2007/04/13(金) 18:06:52
SUNに繋がらん・・・
383 :
373 :2007/04/13(金) 18:09:21
>>382-383 Sunからアク禁食らってるか
経路上のどこかのルータが死んでるか
DNSが引けてないかのどれかじゃない?
385 :
デフォルトの名無しさん :2007/04/13(金) 18:18:40
javaのサイトみれねぇ。
386 :
362 :2007/04/13(金) 18:27:06
>>363-365 素早いアドバイス、本当にありがとうございます。
今回のシステムでは1ターンの中でスレッドを分けて処理をする、というようなことは行っていません。
SpringのJDBCDaoSupportを使ってDBとの通信をしており、
DataSourceにはorg.apache.commons.dbcpを使用してコネクションプールさせております。
DELETEとINSERTはそれぞれメソッド内でDataSourceを呼び出すので、可能性としては
>>364 が一番高い気がしてきました。
でも、コネクションを放置しているのならどうしてうまくいく場合もあるのでしょうか?必ず引っかかるような気がするのですが。。。
また無知のため
SqlUpdate update=new SqlUpdate(getDataSource(),QUERY_DELNYU);
int[] types={Types.VARCHAR};
Object[] params={
strnyuid
};
update.setTypes(types);
update.compile();
update.update(params);
のような記述をJDBCDaoSupport継承クラス内で行えば
update.update(params)を通過した時点で勝手にコミットされるものだと思っていました。
コミット処理を明示する方法を調べたのですが、該当するようなサイトに当たらなくて困っています。
ご存知の方はいらっしゃいますでしょうか。
>>372 すいません、書きまちがいです。ret != null || !ret.isEmpty です。
> tracert java.sun.com 16 152 ms 154 ms 153 ms ge-3-3.r03.snjsca04.us.ce.gin.ntt.net [128.241.219.6] 17 * * * Request timed out. なんか1個死んでるっぽい
389 :
デフォルトの名無しさん :2007/04/13(金) 19:52:34
エクリプスでiアプリ作れますか?
俺のところからは全部見れない
繋がらないから様子を聞きにきたんだが、やっぱり繋がらないのか。 3日位前はみれたんだけどなぁ
>>386 delとinsertで同じid使ってるから、
例えば同トランザクション内だと仮定するなら、元のidは、まだトランザクションログもろともテンポラリにあって、まだトランザクションログファイルに反映されていず、
従って、もっと単純に言うと、まだdelしているつもりのidが存在していて、
例えばハッシュのシノニム発生時のコンフリクトのような感じでエラー出してるのかなと。
起こる時と起きない時の違いがどうなっているか分からないけれど、if文に引っかからなきゃすんなり通るのかなと。
例えば、insertの前にもう一個if文を、例えば、
if(ret = null || ret.isEmpty){
などとやったらどうなるのかなと。
394 :
362 :2007/04/13(金) 21:39:22
>>393 >例えば、insertの前にもう一個if文を、例えば、
>if(ret = null || ret.isEmpty){
>などとやったらどうなるのかなと。
そうすると、delしているつもりのidがまだ残っていた場合insertされないまま正常終了してしまうので
正常に終わっているのにデータが入っていない、と言う状態になってしまうような気がします。
そーすると、やはり
>>363 のような方法で回避するしか方法はないのでしょうか。
よくわからないのは
>>386 のようなコードを通った(制御が呼び出し元にきた)のに
DBのdeleteやinsertの処理が終わっていない、と言うことはありえるのかどうか、というところなんです。
理想は、というか普通はコネクションプールを使っても、SpringのJDBC抽象化クラスに処理を任せていても、
deleteの処理でDBにSQLを投げたら、DBの処理が完全に終わってから次の処理に移行するものだと思うのですが。。。
1.レベル1(直線発生アルゴリズム) 直線式を用いて(100,100)から(600,300)の2次元座標点を結ぶ直線と、(100,100)から(300,600)の点を結ぶ直線を描画する。直線の色は視覚可能な色であれば任意とする。JavaのPolylineなど直線描画関数を使用しない。 2.レベル2(3次元デプスキューイング・アルゴリズム) (100,100,0)から(600,300,100)の3次元座標点を結ぶ直線を描画する際、z値の座標値を輝度と見なしてz=0の点の輝度を0(最小値)、z=100の点の輝度を255(最大値)として描画する。直線の色は視覚可能な色であれば任意とする。 これ解ける?
>>394 >例えば、insertの前にもう一個if文を、例えば、
>if(ret = null || ret.isEmpty){
>などとやったらどうなるのかなと。
というのは、採用するためというより現象確認、切り分けの手段としてどうかなと。
>回避の方法
deleteとinsertの間にcheckpointステートメントを使って、強制的にデバイスに反映させるというのはどうでしょ。
すみませんcheckpointステートメント実行は、 動作が重くなる可能性があるし、バックアップ計画に反する可能性もあるのでよくないですね。 失礼しました。
>>397 スレ違いスマソ。
授業でCGの基礎ってことで始めの問題なんです。
訂正 バックアップ計画>バックアップからの復元計画
javaでCGを始めたいのですが、オヌヌメの初心者用サイトがあったら教えていただけるとありがたいです。
>>394 Springはトランザクション管理で操作するっぽい。
使った事無いし、ぐぐって、2件見ただけなので良く分からん。
あるトランザクションでdeleteを実行した後、
新しいトランザクションでinsertを実行すれば良いのかね
Jcpad使ってるんだけど、classpathの設定ってどこでやるの?
調べてはみたのですが、Windows2000とJava実行環境の間に、「相性」はありますか? 1.4シリーズだといい、や、1.5シリーズだとあまりよくない・・・など、些細なことでもいいので情報いただければと思います。 質問を上手く表現できず、すみません^^; Java実行環境のバージョンとOSのバージョンとにそれぞれ相性があるのか、 個人的に知りたく思っています。 もし、説明URLなどがあれば教えていただければと思います。 例) Aの動作環境 Windows2000 SP4 InternetExplorer6.02 SP1 J2SE 1.4.2_13 Bの動作環境 Windows2000 SP4 InternetExplorer6.02 SP1 J2SE 5.0_11 AとBで、動作の上で差異はありますか? ぜひ、回答よろしくお願いします。
気にするもんでもない
>>406 いや、今は java.sun.com でも見れる
>>386 spring使ってんだよな?
まず、
>DBDelete del = new DBDelete();
みたいに
それぞれのビジネスロジックの中で新規にインスタンスかするのはおかしい
通常Singletonだよな
なおかつ、springに任せるならInjectionかBeanFacroty.get()だよな
だれにトランザクションを任せるつもりなのか?
もし、springに任せるならちゃんとお作法に従ったほうがいいかと
>>403 設定 - 高度な設定 - 追加する環境変数
CLASSPATH=%CLASSPATH%;C:\javalib\alib.jar;.
OSの環境変数CLASSPATHを変えてもOK
410 :
デフォルトの名無しさん :2007/04/14(土) 12:20:24
問題が解けなくて困ってます。 実行時、数個入力した順の値を 逆から入力した順に値を表示するにはどうしたらいいんですか? 1、2、3、4、5→5、4、3、2、1 ご教授お願いします。
>>410 スタックも知らないのか?
まず、基本情報技術者試験の勉強をお勧めする。
>>411 スタック調べて見ます。
ありがとうございます。
PreparedStatementについて質問。 String sql = "select * from table where name=? and updated_at=?"; PreparedStatement stmt = con.prepareStatement(sql); stmt.setObject(1, name); <-- String型 stmt.setObject(2, updated_at); <-- Timestamp型 こんな風にPreparedStatementで、どんな型であれsetObject使っても うまくSQL通るのかな。 だとするとsetIntとかsetStringとか不要??
414 :
デフォルトの名無しさん :2007/04/14(土) 13:34:26
javaは もしかしてmainメソッドの戻り値は voidしか許されないのでしょうか?
>>414 JLS 12.1.4
The method main must be declared public, static, and void.
It must accept a single argument that is an array of strings.
mainメソッドはpublic, static, voidと宣言されなければならない。
文字列(*)の配列を1つだけ受け付けなければならない。
* java.lang.String
>>413 JDBCのjavadoc見る限りではそうならないように読める。
ひょっとしたらJDBCドライバによってはうまくいくかもしれない。疑問に思ったらやってみ。
Javaでバリバリ仕事して飯食ってる人にお願いがある。 そのレベルに到達するまでの軌跡を教えてくれないか・・・・ 先人の歩んだ道をストーキングしたいんだ! 俺は必死なんだ!
>>417 ばりばりって。。。。そういう会社に勤めりゃいいだけだと思うが
>>417 まずC言語の習得から始めるのがいいと思うよ
というのがいろんな言語を渡り歩いた俺の結論
習得しましたとかマスターしましたとか言うやつはどうも信用できないやつが多い気がする
>>421 構文を習得したのか程度なのか、
実際にプログラムをいくつも作成してマスターしたのか不明だからな
したのか程度
Cで売り物のソフトを作ったりもしてるが、マスターしたとはおこがましくて言えないぜ。
そんな俺にもアドバイスしてくれまいか。
>>419
売り物のソフト作ってるならマスターしたといってもいいんじゃないの。 C言語で飯食ってるのとほぼ同義だし。
売り物のソースコードには、とてもそうは言えなくなる内容のもあるのだよ。
右クリックなど、イベントを登録可能な図形を描画する方法はないでしょうか? いままではGeneralPathクラスを使って図形を描画していたのですが、このオブジェクトにはイベントを登録できませんでした…。
思いついたのは、 A: それらの部品はShapeとして描画して、イベントは親コンポーネントで拾う。 どのShapeの中で発生したイベントかは、管理しているShapeのそれぞれに対し てそれぞれcontains(x, y)で調べる。 B: JComponentを継承して自身を非矩形に描画する。 イベントは普通に拾える。透明部分でも拾っちゃうかも。 ヒント(setOpaque(false))
429 :
427 :2007/04/14(土) 16:34:50
ありがとうございます! 教えていただいた方法を試してみます。
>>427 自前で作ればいいだけでは?
GeneralPathのAPIみたけど余裕で実装可能
contains()系を活用してイベントルートをつくりあげればおK
>>417 まずは、MSX BASICだろ。次が、Z80アセンブリ言語。それからC言語やって、Fortanかじって
Pascalかじって、Perlいつの間にか出来るようになってて、Javaは1.0.2から勉強。
Java1.1でプログラム書いて、Swing以前のJFC使って、Java1.2になってJava1.3に昇格。
Java1.4の速さに感動して。
ここで俺はようやくJavaで飯が食えるようになった。
しっかりストーキングヨロシク頼む。手抜きは許さんぞ。
>>431 なんか似たような経歴の人が、、、もしかして同年代くらい?
もっとも俺はCOBOLが最初でPL/IとMSXいじりが並行というパターン
>>431 のストーキングには20年かかりそうだ・・・
はっきりいって、プログラミングで飯が食えるようになりたかったら 業務にもっともプログラム言語を選択してから使えるようになれば良い。 クライアントアプリならJavaよりVC、VB系の方が使えるし、 WebアプリならUnix系OSならJavaでWindowsなら.NET使った方が 効率が良い。 別にプログラム言語なんてコンパイルしたらみんな機械語になるんだ (インタプリタ等は違うとか揚げ足取りはいらないよ) あまり言語にこだわる必要はない。
>>417 Javaに限らずプログラミング言語習得するなら
・とにかく手を動かして(ちゃんと動く)物をたくさんつくる
・他人の書いたプログラムをよく読んで理解する
経験上この2点が重要ではないかと思ふ
まぁ本だけ見て頭でっかちになるよりはましかと
>>431 同志!!
プログラム系はGPL関連に気をつけないといけないことがあるから それについても勉強しないといけないよね
437 :
427 :2007/04/14(土) 19:16:21
>>428 >>430 アドバイスありがとうございました。
図形に対して、containsを使うことでクリックを拾わせることができました。
各図形はGeneralPath gp で定義しています。
クリックされた座標を Point point = MouseEvent.getPoint で取得
↓
gp.contains(point) == TRUE であれば図形gpに応じたイベント処理
長方形や円形など、幅のある図形はこの方法でイベントを発生させることができました。
ただ、折れ線などの線分の場合、細すぎてクリックを拾ってくれません…。
各折れ線は、moveToやlineToを利用してGeneralPathとして定義しています。
クリックできる領域を広げるために、折れ線から少し離れた上下に同じものを1つずつ用意し、
これらを合成すればいいのかなと思いました。
でもこの場合、複数の折れ線を合成する方法でつまずいています…。
折れ線など、幅のない図形にクリックイベントを拾わせるには、どうすればよいでしょうか?
containsをオーバーライドして、もうちょっと広い範囲を内側と認識する ように……しちゃってもいいもんだろうか。 ドローツールだと、操作用のハンドルオブジェクトみたいなのを線の両端に つけてことが多いんじゃない?
>>437 折れ線だと各ポイントの座標を押さえてるだろうから
その座標を+ーして少しずらした幅のある四角形(平行四辺形)のパスを
判定用に作ってそれを使って座標を判定するということをやってた
もっといい方法を俺も知りたい
ちょち追加 平行四辺形を作るときに元の線分の角度によって X座標を平行にするかY座標を平行にするかを決める そうしないと角度によってマウスを判定しにくくなる
441 :
427 :2007/04/14(土) 20:05:35
アドバイスありがとうございます。
>>438 containsのオーバーライドは考え付きませんでした。
どのようにオーバーライドすればいいか、考えてみます。
>>439 折れ線全体ではなくて、折れ線の各ポイントに、クリックできる領域を作るんですね。
難しそうですが、やってみたいと思います。
作ろうとしてるプログラムは、csv形式のデータを読み込み、折れ線グラフで表示するというものです。
各折れ線グラフを右クリックするとJPopupMenuが表示されて、そのメニューの中で折れ線の色や
線の形状(破線や実線)を変更できるようにしたいと思っています。
JMenuBarで各折れ線の色と形状の変更メニューも作ろうと思うのですが、やはり折れ線を直接右クリックして
変更できたほうが、操作しやすくなると思いまして…。
containsは他で使っているかもしれないから、内外判定は使う側に 作って、折れ線に対しては自前でロジックを実装、他についてはcontains に丸投げ、みたいな造りにした方がいいかも知れない。 型を見ることになるのでダサイかもしれないけど。
>>441 その目的なら平行四辺形でオK
マウスのX座標を見るだけでどの線分を判定すればいいかすぐわかるから
平行四辺形作成は一回だけで判定が終わる
444 :
デフォルトの名無しさん :2007/04/14(土) 20:43:49
staticメソッドがマルチスレッドでどのように動作するかわかりません。 あるclassに一つのstaticメソッド static func (Map data,String time) : void がある。 funcでは、仮引数であるdataのオブジェクトの中身を参照して、標準出力へダンプ結果を出力している。 funcはマルチスレッド中で利用してよい? ↓こうなることはある? A-thread func実行 A-thread ダンプ中 B-thread func実行 B-thread ダンプ中 B-thread 処理終了 A-thread 処理終了 て動作になったとすると、B-threadがダンプしている最中に、A-threadに切り替わったら、staticメソッドの仮引数dataはどっちのもの?
>>444 仮引数はスレッドごとにスタックに積まれるだろ
この場合のスレッドでの問題はstatic変数
>
>>445 ありがと
staticメソッドもそうなるのですね。
staticでないメソッドと何が違うんでしょう?
staticでないメソッドもインスタンス変数を扱うとロックしないとダメですよね。
会社の先輩が、staticメソッドをWEBサーブレットで使うなって言って、何で?って言ったら、
勉強してこいって言われました。
仮引数(ログファイルに吐く文字列:Map)を整形して出力する処理もダメなのか〜〜〜?
その先輩が池沼か、貴方の聞き間違い
コンソール画面をクリアにしたいのですが、どのような処理を記述すればいいのでしょうか?
>>446 引数は、スレッド側の所属だろ?
staticメソッドを半端に使うと問題になる
絶対使っては行けない訳じゃなかったよな?
EJBのStatefulSessionBeanで、インスタンス変数を使っちゃ駄目っていう決まり
の理由と同じくマルチスレッドでどう動くかってとこがポイントだな。
450 :
デフォルトの名無しさん :2007/04/14(土) 21:43:38
背景をスクロールさせたいのですが、 全面画像を使っているので描画が凄く重いんです。 drawImageを使わない方法とか、 描画を高速化できる方法ってありますか?
大学のCGの授業なのですが 直線式を用いて(100,100)から(600,300)の2次元座標点を結ぶ直線と、(100,100)から(300,600)の点を結ぶ直線を描画する。 直線の色は視覚可能な色であれば任意とする。 JavaのPolylineなど直線描画関数を使用しない。 という課題を出されてまして。 これはアプレットのg.drawLine()を使ってやれと言うことですか? >JavaのPolylineなど直線描画関数を使用しない。 この事の意味が解らなくて・・・ よろしくお願いします。
>>446 ロックでは解決しない問題もある
インスタンス変数はインスタンスごとに存在するが
static変数は一つしか存在しない
それをスレッドごとに書き換えるなんてまねをしたらどうなると思う?
いくらロックしたところで上書きされた値は戻ってこない
staticメソッドをマルチスレッドで使う場合はその辺りを注意する
static変数は定数として読み出しにだけ使うなら構わない
JavaにはThreadLocalというクラスが用意されているので
それを使えばstatic変数でも書き換え可能な仕組みは作れる
>>451 ドットで描画しろってことだろう
これは1次方程式が解けるなら楽勝だろ
>>453 ありがとう御座います。
ドットでちまちまやれって事ですか・・・
>>454 宿題スレに上がってましたか・・・失礼しました
たぶん同じ学校・・・ってか100%同じクラスの奴ですわ
線を描くというのがどういうことかを理解させる課題だろうね。 そのあとブレゼンハムのアルゴリズムとかを教えるんだろう。 CGの授業なら。
>>457 ブレゼンハムのアルゴリズムっての使う機会もないだろうけど
見てみたらすげー単純だね
最初に解像度に合わせた最小の増分を計算してそれを足していくだけか
>>452 つか、サーブレットなんだから、
staticだろうとそうでなかろうと無暗にフィールド変数作ったらだめだろ。
そうでなくとも、普通に考えてスレッドプール使うだろうからThreadLocalでもだめだろ。
460 :
デフォルトの名無しさん :2007/04/15(日) 02:02:08
フォルダ内のファイルをすべて読み込んで、自分が指定する文字列を付加したりしたいのですが どのAPIを使えばよいのでしょうか?
>>460 ファイル名の扱いだけの話なら java.io.Fileに必要なAPIはある。
文字列を付加するのがファイル名末尾にならFile#renameTo。
ファイル内容の末尾に付加したいのなら java.ioの中のAPIも必要になる。
ランタイムのアップデートが来るたびに アップデート用ファイルが増えていくんだけど これは削除しない方がいいのか? J2SE Runtime Environment 5.0 Update 5〜11 Java(TM) SE Runtime Environment 6 Update 1 このように5.0で1GB近く積もっているけど正直使わないものなんじゃないかと思うんだ
流れ図作成用定規 は一般的にどこに売ってるんですか?
リソースのアクセス方法なんですが、 test (package名です) AAA.java AAA.class resource b.jpg c.mid のようなディレクトリ構造になっているとき、AAA.classからresourceにアクセスするのに getClass().getResource("../resource/b.jpg") のようにアクセスしてます。こうするとeclipse上では問題なく動くのにコマンドラインで java test.AAA としたりjarに固めてダブルクリック実行するとリソースが見つかりません。 どのようにすればよいでしょうか。
getClass().getClassLoader().getResource("resource/b.jpg")
コマンドプロンプトで 2+3= のように計算式を表示し、BufferedReaderのreadLine()でキーボードからの数字の入力を読み取って、合っていたら 2+3=5 ○ のように答えの後に○×を表示させたいのですが、 2+3=5 ○ のように○が次の行に表示されてしまいます。 何かいい手があれば教えて下さい。
printf
>>468 5の後ろで人がリターン押したのをエコーバックするかしないかを
制御する話だろ。ピュアJavaでは無理じゃないか?
>>466 ありがとうございます。
でもまだEclipseで実行したときとコマンドラインでjavaコマンドで実行したときに動作が違いますorz
なぜかわかりませんがmidiが鳴らない。読み込めてはいるみたいだけど。
Eclipseはjavaコマンドと違ってパス名とか勝手に変えてしまうことがあるんでしょうか? 同じプログラムなのに動作が違うなんて信じられません・・・
>>471 そういう愚痴はリソース名がどう解釈されるか説明できるようになってから
言ってくれ。
ヨロシクお願いします。 クリップボードから画像ファイルを取得したいのですが、どうすれば良いでしょうか?
474 :
473 :2007/04/15(日) 17:13:40
追加で、 スクリーンショットや、画像ファイルをコピーした後です。
基本情報試験をJavaで受けるんでJavaの勉強を始めようと思うんですが 基本情報試験を視野に入れたお勧めの参考書ありませんか?現在のスキルは0と言っていいです。
>>474 とりあえず java.awt.datatransfer を勉強する。
Clipboardから始めて、必要そうなメソッドを追っていけば書けるな。
478 :
473 :2007/04/15(日) 17:37:22
>>476 ,477
ありがとうございます、クラスから探ってみます^^
>>465 dクス
6は5.0の上位互換ということで5.0シリーズは削除していいんだよな?
480 :
デフォルトの名無しさん :2007/04/15(日) 18:25:00
エラー出る。助けて。 import java.io.*; public class ace1 { public static void main(String[] args) throws IOException { System.out.println("正方形の辺の長さを入力して下さい。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int wis Integer.parseInt(str); System.out.println("正方形の面積は" + (wis * wis) + "です。"); } } C:\benkyou\renshuu>javac ace1.java ace1.java:15: ';' がありません。 int wis Integer.parseInt(str); ^ エラー 1 個
481 :
480 :2007/04/15(日) 18:26:18
= 入れ忘れてた。 解決しました、ごめん。
>>470 読み込めてはいるみたいなんだったら問題はリソース読み込みのところじゃないだろ
解決はえええええええええええええええ
他人に問題点を説明しようとした途端気が付くことはよくある。 人間に聞いてもらうのはコストが高いからテディベアを置いとくべきだな。
1以上って条件がi以上になっててずっと悩んでたことがある
>>484 おすすめのテディベアを教えてくれるスレはありますか?名前もお願いします。
今日本やサイトでjavaを勉強し始めたところです。 超初歩的な質問お許し下さい。 Win XPのマシンにJDK1.6.0_01をインストールし、ユーザ環境設定をしました。 コマンドプロンプトで正常にインストールされていることも確認しました。 で、下記の内容でテキストファイルを作成し、 「 public class HelloWorld { public static void main (String[] args) { System.out.println("Hello World !!"); } } 」 「HelloWorld.java」と名付けて保存し、「javac HelloWorld.java」を実行したところ、 「'javac'は、内部コマンドまたは外部コマンド 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 と出てしまいました。 何が下原因なのでしょうか?よろしくお願いします。
489 :
362 :2007/04/15(日) 22:40:25
最近 ArrayList<String> hoge = new ArrayList<String>(); とか見かけるんですが、こんなキモイ構文 いつからあったんですか?
これから学校で習うけどJAVAとC言語の違いって何?と素人が質問してみる
習えば分かる
イタリアと日本くらい違う
>>491 J2SE 5.0から。これからのスタンダードだ。覚えとけ。
497 :
473 :2007/04/16(月) 12:32:56
おかげさまで、クリップボードからデータ取得が行なえました。 一つ質問なのですが、 エクセルのクリップボードからはデータの取得は行なえるのでしょうか? 複数の画像と文字列がクリップボードにある状態からです
498 :
デフォルトの名無しさん :2007/04/16(月) 13:58:30
質問なのですが、特定のパッケージ内の全クラスの クラスオブジェクトを取得するにはどうしたらいいですか?
499 :
451 :2007/04/16(月) 14:21:27
>>451 自分なりにやってみたのですが
package xxxxx;
import java.applet.*;
import java.awt.*;
public class xxxxx extends Applet {
public void paint1 (Graphics g, double x, double y) {
g.setColor(Color.black);
g.fillRect((int)x,(int)y,1,1);
}
public void line (Graphics g,double x, double y) {
double x1 = x;
double y1 = y;
y1 = 2/5*x1+60;
for (x1 = 100; x1 ==600; x1 += 1) {
y1 = 2/5*x1+60;
paint1(g,x1,y1);
}
}
}
計算はこんな感じでいいでしょうか?
それと実行しても何も表示されないで真っ白のままなのですが、何故かわかりません・・・。
よろしくお願いします。
>>451 さん、自分でやってみるのはいい事だと思います。
実行しても何も表示されないのは、正しい動作だ。
このやり方をするなら
(1) y1 = 2 * x1 / 5 + 60
順序を変えるのは、定数と変数の型が関連している。
(2) y1 = 2 / 5 * x1 + 60
だと、2/5が先に計算され、それは整数なので0になる。
その結果、ループの全てで0になる。
(1) だと、2 * x1 が先に計算される。すると、精度の高いx1に暗黙的に型変換されて
double型の結果になる。残りの `/ 5 + 60' も次々と型変換される。
面倒せずに安全に計算するなら、定数を全て実数型にすること。定数に`.0'を付加するだけでよい
y1 = 2.0 / 5.0 * x1 + 60.0
501 :
500 :2007/04/16(月) 15:28:30
ちなみに、この方法で作成したプログラムの評価は全体の真ん中ぐらい・・と思う。 出題者の真の意図は、傾きが45゚より大きいか小さいかできれいな線が書けるか、 ということだと思います。私だったら、傾きによって y1=... と x1=... に分けます。 他に減点対象があるとしたら ・ループ変数に実数を使っている。(場合によってループは終わらなくなる) ・2、5、60など、問題には書かれてない数値を多用している。 (これはマジックナンバーといって、プログラムを読みにくくする) などですが、宿題に間に合う程度に考えてみては。 とにかく点をとりたいならJavaの宿題答えますスレでもいいけど、実力がつく方がいいでしょう?
>>491 D&E 確認したけど、その構文は80年代後半には既にあったっぽいよ。
503 :
500 :2007/04/16(月) 16:57:13
アー、 for (x1 = 100; x1 ==600; x1 += 1) { は、 for (x1 = 100; x1 < 600; x1 += 1) { だな。
Java Updateキター
505 :
デフォルトの名無しさん :2007/04/16(月) 18:46:14
学校でC言語習ったんだがオブジェクト指向とか概要しか知らない俺にjavaを初歩から学ぶ為のオススメの本とか無い? スレとしてテンプレ的な初学者用の本とか
Java6になって何が変わったんだっけ?
大文字A小文字a等、文字の大小を比較するために、uncodeを調べたいです 何をどの様に使えばいいんですか? String str="A"; int a=Integer.valueOf(str).intValue(); System.out.println(str); で、組んだところ Exception in thread "main" java.lang.NumberFormatException: For input string: "A" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.valueOf(Unknown Source) at q3.main(q3.java:4) と、吐き出されました
char chA = 'A'; char cha = 'a'; charの実体は数値。あとはCharacterクラスのAPI調べる。
ウンコードワロタ
512 :
451 :2007/04/16(月) 20:33:49
>>500 回答どうもです!
アドバイスを元に弄りなおして何とか無事に出来ました
ありがとう御座いました。
>>497 エクセル持ってないんだが、エクセルのデータ(表全選択?)は、おそらく、
生のエクセルデータ (application/vnd.ms-exel ?)
テキストデータ (text/cvs ?)
など複数の形で取得できる状態でクリップボードに入っていると思う。
その状態でTransferableを取ってくるところまでは出来たものとして、
for (DataFlavor df : trans.getTransferDataFlavors()) {
System.out.println(df);
}
してみるとどんな情報が得られるでしょう?
画像として取れるようなら問題ないんだけど、そうでなければ無理かも。
514 :
500 :2007/04/16(月) 20:57:34
>>451 どういたしまして。お礼を言われると嬉しいです。
>>489 ALTER SYSTEM CHECKPOINT
けれど、自身使ったことは無い
>>508 Unicodeのこと?String#charAt(int)で取得できるけど。
ただ、文字の大小比較が目的なら、charAt()よりはequals()の方が便利だけどね。用途に寄るけど。
……大小比較で equals?
____ / \ /\ キリッ . / (ー) (ー)\ / ⌒(__人__)⌒ \ 文字の大小比較が目的なら、charAt()よりはequals()の方が便利だけどね。 | |r┬-| | 用途に寄るけど。 \ `ー'´ / ノ \ /´ ヽ | l \ ヽ -一''''''"~~``'ー--、 -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒)) ____ /_ノ ヽ、_\ ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ /⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒) | / / / |r┬-| | (⌒)/ / / // だっておwwwwwwwwwwwwwwwwwww | :::::::::::(⌒) | | | / ゝ :::::::::::/ | ノ | | | \ / ) / ヽ / `ー'´ ヽ / / バ | | l||l 从人 l||l l||l 从人 l||l バ ン ヽ -一''''''"~~``'ー--、 -一'''''''ー-、 ン ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
519 :
デフォルトの名無しさん :2007/04/17(火) 10:05:42
プログラマーの人に質問、 一日中パソコンにむかっているの?目が疲れたりしない? 仕事は過酷ですか?教えて
まず、確実に飛蚊症にはなるわな
521 :
デフォルトの名無しさん :2007/04/17(火) 10:25:45
俺のパソコンに.java.policyっていうファイルがあってこんな中身なんだけど、どのくらいヤバいですか? grant { permission java.io.FilePermission "<<ALL FILES>>", "read, execute"; permission java.util.PropertyPermission "user.home", "read"; permission java.util.PropertyPermission "file.encoding", "read"; };
522 :
デフォルトの名無しさん :2007/04/17(火) 16:26:44
GEFを使用して、画面設計してGEF内にある ZoomInとZoomOutを実装したのですが、いざキーに割り振ろうとして getSite().getKeyBindingService().registerAction(zoomIn); と記述すると、 メソッド getKeyBindingService() は型 IWorkbenchPartSite で使用すべきではありません。 メソッド registerAction(IAction) は型 IKeyBindingService で使用すべきではありません。 と言われるのですが、将来性の無いgetKeyBindingServiceからgetServiceに 変更しろとclassには書かれているのですが、実装方法がわかりません どなたか教えてもらえないでしょうか?お願いします
523 :
473 :2007/04/17(火) 23:40:54
>>513 試してみましたが、取得できたデータは
imageとは違いました。
なんだろう・・・・詳しくは見てないんですが、
文字列が取得できたっぽいです。
レス、ありがとうございました。
524 :
デフォルトの名無しさん :2007/04/18(水) 02:10:05
おまえらカスどもに質問です SunMicrosystemsのJava APIだけじゃ半透明なGUI作れないのはなぜですか? Javaの設計思想も含めて、リンクを貼らずに詳しく教えろハゲ
>>524 カスですので質問は聞きますが、ハゲでは無いので詳しくは教えられません。
しかしま、何処の宿題でしょうかね。
Java API の GUI には、AWTとSwingがあるが、OSに描画可能範囲を認識させるには
AWTではFrame、Window、Dialogを、Swingではそれらのサブクラスを用いる必要がある。
これらのクラスには半透明処理を行う機能が無いため、自ずと半透明表示は行えない。
設計思想は…なんだろうねぇ。
「どのJVMでも動く」ようにするために、OS間で共通性の無い機能は実装しなかった、ぐらいか。
>>524 半透明は、やろうと思えば java.awt.Robot でスクリーンキャプチャ取って
それを使って java.awt.Window に自前で半透明にした画像描画してやりゃできるよ。
実用的な速度が出るか未知数とか、背景が動画やゲームみたいに動いてると上手くいくかわからん
ってのはあるけどさ。
島根県のみなさん、パチンコをするなら、 優良パチンコ店 エ○トワン に行こう! 遠隔(※1)をやっていないパチンコ店は「エイ○ワン」だけ! 違法ロム(※2)を使っていないパチンコ店も「エイト○ン」だけ! ○イトワンでは、遠隔等が可能な設備は入れていません。 ロムも、警察がチェックしやすくしています。 詳しい方はご存知の通り、どんなにパチンコの遊戯人口が変動しても、その市場規模は変わりません(※3)。 要するに、客が減っても、残った客から絞り盗る量を増やして調整しているのです。 しかし、何故それが可能なのか?…ご理解頂けると思いますが、9割以上の店が確実に遠隔等を行ってます。 1万店以上のパチンコ店の中で、遠隔も違法ロムも確実にやってないのは「○イトワン」ただ1店です! ※1…遠隔とは 「お、あの客は新顔だな。勝たせて味を占めさせるか。遠隔操作で設定変更しよ」 「客が減ってきたな。ま、設定を絞めて(違法)、1人あたりから搾る量を増やせばいいか」 「あのオヤジ負け続けてるからそろそろ辞めるかもな。今日は勝たせてやるか」 ※2…違法ロムとは 「うちのアタリ確率は、もちろん他と同じ『○○○分の1』ですよ!(ロムいじってるからウソだけど)」 ※3 市場規模 遊戯人口 平成06年 30兆4,780億円 2,930万人 平成08年 30兆0,630億円 2,760万人 平成10年 28兆0,570億円 1,980万人 平成12年 28兆6,970億円 2,020万人 平成14年 29兆2,250億円 2,170万人 平成16年 29兆4,860億円 1,790万人
528 :
521 :2007/04/18(水) 02:45:47
しかしJava 2D APIでは、アルファ値の管理ができるだろ? スクリーンキャプチャとか糞みてーな発想はやめてくれよ
>>529 実際APIでもキャプってるってことに気づいてね
531 :
デフォルトの名無しさん :2007/04/18(水) 11:02:04
532 :
デフォルトの名無しさん :2007/04/18(水) 14:00:11
javaでネイティブスレッドを作れますか? Threadでインスタンス作ったらネイティブスレッドになりますか?
>>532 ネイティブスレッドな実装もあるけど、言語仕様とかで保証されてるわけじゃない。
昔には green thread版とかもあったし。
534 :
デフォルトの名無しさん :2007/04/18(水) 14:40:11
Eclipseを使用する際に、JDK準拠の設定でコンパイラの準拠レベルの 設定項目があるのですが、JDK1.4でコーディングしたソースを 1.5のコンパイラに変更して、クラスファイルの互換性、ソースの互換性を 1.4にすることはよくないのでしょうか?
535 :
デフォルトの名無しさん :2007/04/18(水) 15:30:13
javaで、アスキーコードをチェックしたいのですが、 VBでいう、ASC関数みたいなものはあるのでしょうか?
536 :
ぴゅあ :2007/04/18(水) 15:41:57
RoRはJavaじゃなくてPHPやCMSと食い合うと思うんだけどね。 マネージャーのための・・というところにイカサマっぽさを感じる。
538 :
デフォルトの名無しさん :2007/04/18(水) 17:16:53
Java 1.6から、pathとは無関係に、VMが起動するようですが、以前のversionの VMを使いたいときにはどう設定すればいいのでしょうか?
>>538 > Java 1.6から、pathとは無関係に、VMが起動するようですが
単に JRE が %SystemDir% に突っ込んだ java.exe とか javaw.exe 使ってるだけなんでは?
それらを削除するか、%PATH% の中で %JAVA_HOME%\bin の優先順位を %SystemDir% より高くしてみれば?
>>535 char自体数値型なのでASC関数不要。
Stringを調べたいってことならcharAtで切り出す。
541 :
デフォルトの名無しさん :2007/04/18(水) 17:22:34
543 :
デフォルトの名無しさん :2007/04/18(水) 17:43:52
>>539 どうも、レスありがとうございます。iAppli関係で古いJREが必要なのです。
どうも、JRE 1.5以降はレジストリにパスが記載されていて、pathに明示
しなくても、> java -versionにちゃんとバージョン情報が出てきます。
%JAVA HOME%の環境変数もなくなっているみたいですし...。もう少し考えて
みます。
>>543 レジストリにパスが記載されている事
Pathに明示していない事
%JAVA_HOME%が無い事
それそれがその通りだとしても、
現象と結果は安易に結論付けないように。
windowsにもwhereコマンドみたいなのがあればねぇ
jdbcで、あるテーブルの全カラム名を得る時ってどうすればいいのかな。
select * 発行してResultSetを得て、ResultSetMetaDataを得る。
547 :
デフォルトの名無しさん :2007/04/18(水) 22:27:58
class A{ } class B extends A{ } class CastTest{ 〜略〜 A a1 = new A();←OK B b1 = new B();←OK A a2 = new B();←OK B b2 = new A();←コンパイルエラー(互換性の無い型) A a3 = (A)new B();←OK B a3 = (B)new A();←コンパイル可、実行時ClassCastException 〜略〜 } B b2の時にコンパイルエラーになるのは分かるんですが、、 B b3の時にコンパイルが通ってしまう理由が分かりません。 どなたかエロい人この2つの違いを教えていただけないでしょうか?
>>545 Connection#getMetaData()でDatabaseMetaDataを取得してから、
DatabaseMetaData#getColumns()でカラム一覧を取得する。
返ってくるのはResultSetだが、
getString("COLUMN_NAME")とかすればカラム名がStringで得られる。
詳しくはjavadoc参照のこと。
>>547 両方コンパイルエラーだと、キャストの意味がなくなるから。
数を打ち込んで、以下のような結果を表示するプログラム: 1+2+3+4+5+6+7=28 1*2*3*4*5*6*7=5040 ↑のようなプログラムを作りたいのですが、作れません。 計算は完成してますが、1+2+……1*2*……の部分ができません。 教えて下さい。
>>547 上は代入時の構文エラー(コンパイルで検出可能)
cast の行は構文的には正常(実行時エラー)
比較するなら
A a4 = (B) new A();
B b4 = (A) new B();
みたいにしないと 2番目と cast の関連性は検証できないんじゃないかと。
System.out.println("1+2+3+4+5+6+7=28"); System.out.println("1*2*3*4*5*6*7=5040");
553 :
547 :2007/04/18(水) 22:41:38
最後の行、 B b3 = (B)new A();←コンパイル可、実行時ClassCastException a3ではなくb3でした。たびたびすみません。
数を打ち込んで、以下のような結果を表示するプログラム: 1+2+3+4+5+6+7=28 1*2*3*4*5*6*7=5040 ↑のようなプログラムを作りたいのですが、作れません。 計算は完成してますが、1+2+……1*2*……の部分ができません。 教えて下さい。
System.out.println("1+2+3+4+5+6+7=28"); System.out.println("1*2*3*4*5*6*7=5040");
ちなみに問題は1,2,3,…nの和・積を求める問題です。
Javaがキャプチャしてるってのはどういう話? デスクトップ画面を描画してるのはOSだよな? Javaがキャプチャしてるのは自分自身だけじゃないのか?
>>558 「Javaがキャプチャしてる」という状況が理解できないのだが。
BufferedImage java.awt.Robot#createScreenCapture(Rectangle) ってのは
「スクリーンから読み取るピクセルイメージを作成します。」と言う説明。
561 :
521 :2007/04/19(木) 05:27:04
おいこらマジレス頼むよ
昨日、入門して分らないのがあります。 + - * / はできるんですけどあまりを求める演算子%はどこにつけるんでしょうか? 二つの整数は8と3です
8 % 3
>>565 あ、できてました、ありがとうございます
8/3も2なのでできてないのかと誤解してました。
567 :
デフォルトの名無しさん :2007/04/19(木) 09:25:49
>>561 心配なら認証アプレットでぐぐりなさいってこった
568 :
デフォルトの名無しさん :2007/04/19(木) 10:59:02
おまいがぐぐれ
jspやってるんだけど、jsp自体のエンコーディングはUTF-8 プログラムでは文字はUnicodeだからソースファイル自体のエンコーディングは なんでもいいとおもうけど、ソースもUTF-8に合わせておく方が一般的なのかな?
>>569 OSとDBとWEBアプリケーションのデフォルトエンコーディングは?
571 :
521 :2007/04/19(木) 12:02:23
>>563 すまん、スレ違った。
>>567 認証なしでもアクセス許可するのが.java.policyではないの?
572 :
初心者だぉ(^・ω・^) ◆tsGpSwX8mo :2007/04/19(木) 14:56:40
一つのラベルが最大20文字で、 数十個のラベルを縦に並べたいんだけど… 条件 1.GUI 1.コンパクトなソース 1.見やすく どのクラス使うのが一番コンパクト?
(^・ω・^)
574 :
(^・ω・^) ◆tsGpSwX8mo :2007/04/19(木) 15:21:54
575 :
デフォルトの名無しさん :2007/04/19(木) 15:49:41
期待あげ♪
576 :
デフォルトの名無しさん :2007/04/19(木) 16:32:14
誰か、ArrayListをnewしていきなりclear()する意味を教えてくれ。 List list = new ArrayList(); list.clear(); 俺には理解出来んかったんだ・・・orz
昔のCでは、配列を定義した直後のメモリにはゴミがある事が多いため、0Fillするのが行儀の良いプログラミング とされた時代があったんよ その名残っつーか、癖なんじゃないの?
>>576 それは何の意味もない。
無駄なことをしているからまねをしなくていいよ。
579 :
デフォルトの名無しさん :2007/04/19(木) 17:32:13
スレ違いかもしれませんが 1.6.0_01バージョンアップきたのですが 皆さんしましたか?
1.6入れてるやつはアップデートした方がいいかもね
581 :
576 :2007/04/19(木) 18:35:01
>>577 そういえば、それを書いた人のコードは
・非オブジェクト指向的
・コードフォーマットがCやコボルっぽい
・Javaは初心者(型変換が無駄に遠回りw)
なので、そうなのかもしれませんね。
>>578 思わずListやAbstractListのソースまで追って確認してしまいましたw
582 :
(^・ω・^) ◆tsGpSwX8mo :2007/04/19(木) 18:49:10
どの雑誌読んでも貸そうか?技術!仮想化技術!バーチャルバーチャルやな! なんの陰謀?
newしたばかりのListを明示的にclearしないと使えないんでは使い勝手が悪いし誤用もしやすい まさにコンストラクタがやるべき仕事 まあ無駄なことをしているだけで意図と違うことが起きるわけではないから害はないと思うけど
584 :
デフォルトの名無しさん :2007/04/19(木) 19:09:12
パッケージ名に、java.hogehoge と続くような名前をつけたいのですが、 Prohibit Package Name のエラーが出てしまいます。 この禁止されたパッケージ名を使うような方法ってありませんか?
>>584 JCP に乗り込んで標準APIに加えてもらうように努力するとか。
お前らむちゃ言うなw
588 :
デフォルトの名無しさん :2007/04/19(木) 19:30:48
パッケージ名にジャポニカ語使えたのだが?
5年ぐらい昔の話だからうろ覚えだが、 自分の属してる学校、会社、団体のURLをさかさまに使うのが 標準だったような。 東京大学の例 u-tokyo.ac.jp package jp.ac.u_tokyo; その後細分化するには、jp.ac.u_tokyo.の後に適当な名前をつける。 `-' を `_' に手動変換するのは確か規則があったような。 要するに、Sun様のおっしゃるには、 「自分のクラスには固有のパッケージ名をつけなさい」 ということです。 java.hogehogeとか javax.foo はSun様がおられる限り使えないであろう。
>>589 最初期は、それに加えて、先頭の語(=TLD)はすべて大文字にすることに
なってた。
予約語を含んだドメインの香具師が悩んでたな。
Capitalizeしたりして回避すればいいんだが、美しくない。
591 :
デフォルトの名無しさん :2007/04/19(木) 23:43:52
byteValue()の使い方を教えて下さい。 エロい人、おねげーだ!
Genericsなクラスの具体化(っていうのか?)後の型を、確認のため表示させたいんですけど getClass()だと <T> の部分が省かれてしまいます C++の typeid(arg).name() に相当する結果はどうやったら得られますか?
>>592 > C++の typeid(arg).name() に相当する結果
無理。erasureなのでインスタンスの型パラメータは取れない。
広義のインターフェイスに使われてる型制限の方は、
java.lang.reflect の getParametarizedType() で取れるけど。
Dolphin で変わるかもしれんけど。
間違い。getGenericsType() だな。 具体的には、 java.lang.reflect.Field.getGenericType() とか、 java.lang.reflect.Method.getGenericReturnType() とか、 java.lang.reflect.Method.getGenericParameterTypes() とか、そのへん。
public class Test { public static void main(String[] args){ final String[] hoge = {"foo","bar"}; hoge[0] = "hoge"; System.out.println(hoge[0] + "," + hoge[1]); } } これを実行するとエラーが出ずにhoge,barと表示されてしまうんだが どうしてこうなるのか、どうすれば変更不可になるのか説明願えないだろうか
>>596 > どうしてこうなるのか
final String[] hoge = {"foo","bar"}; ってのは、一回初期化された後に
hoge = new String[1]; みたいな代入を禁止するだけ。
> どうすれば変更不可になるのか
配列だと現状では無理。
みたいに java.util.List と java.util.Collections#unmodifiableList() 使えば
final List<String> hoge = Collections.unmodifiableList(Arrays.asList("foo", "bar"));
で変更不能な List を作れるけど。
>>596 final String[] hoge = {"foo","bar"};で変更不可になるのはhogeそのもの。
hogeの参照先を変えなければ、参照している配列の内容は変更できる。
要素を変更不可にする配列は作れない気がするので、変更不可のCollectionにしてしまえばいい。
Arrays#asListでListにして、Collections#unmodifiableListで変更不可なビューを得る。
final になるのは hoge だけであって hoge[0] は final にならない。 C や C++ 的な const とは違う。
>>597-599 説明サンクス
つまりC/C++的な考え方をするとhogeはfoo,barを要素に持つ配列を指すポインタで
ポインタ自体は変えられないが指している先の内容は変更できるということでいいんだろか?
602 :
デフォルトの名無しさん :2007/04/20(金) 17:31:31
javaの入門書を何か買おうかと思ってるんですが 1.C/C++プログラマのJava入門 2.Effective Java プログラミング言語ガイド この二つを今のところ候補に上げています C言語は全体を軽く舐めた程度勉強したので前者でもいいかなと思ったんですが入門書としては高いし 後者はある程度javaを勉強してから読んだほうがいいかもしれないという意見があり悩んでいます どちらがいいでしょうか? これらじゃなくてもなにか良い本があれば教えてください
始点(x1,y1)と終点(x2,y2)、深さdを引数にとるメソッド dが0の時、実際に始点(x1,y1)から終点(x2,y2)までの直線を引く。 dが1以上の時、 始点(x1,y1)と終点(x2,y2)の値から中間の点A(x3,y3)、B(x4,y4)、C(x5,y5)を計算して求める。 (x1,y1)と(x3,y3)、d-1を引数にして自分自身を呼び出す。 (x3,y3)と(x4,y4)、d-1を引数にして自分自身を呼び出す。 (x4,y4)と(x5,y5)、d-1を引数にして自分自身を呼び出す。 (x5,y5)と(x2,y2)、d-1を引数にして自分自身を呼び出す。 こういうコードでできると思う。
605 :
ななし :2007/04/20(金) 19:05:21
>>605 スレ違い。板違い。
タブ譜には著作権の縛りがかかると思ったけど
コード進行は大丈夫だった気がするので掲載。
Dm7 G B♭ C7 F
Dm7 G B♭ F
B♭m F
E♭ B♭ Dm7 D♭ C7
F B♭ C7 F Dm7 G B♭ C7 F
F B♭ C7 F Dm7
G Gm D♭ E♭ F
Dm7 G B♭ C7 F
Dm7 G B♭ F
B♭m F
E♭ B♭ Dm7 D♭ C7
F B♭ C7 F Dm7 G B♭ C7 F
F B♭ C7 F Dm7
G Gm D♭ E♭ F
F B♭ C7 F Dm7 G B♭ C7 F
F B♭ C7 F Dm7
G Gm D♭ E♭
F B♭ C7 F
Dm7 G C7 F
F B♭ C7 F Dm7 G B♭ C7 F
F B♭ C7 F Dm7 G Gm D♭ E♭
つか、お金払ってどうどうと印刷すればいいんじゃね?
607 :
ななし :2007/04/20(金) 19:41:59
>>606 そうなんだけどお金が無いんだよね。。。笑 でもコレもJAVAで制御されてんだろ?
どうやってコピった??
608 :
デフォルトの名無しさん :2007/04/20(金) 20:38:00
tomcat5.5とjdk1.4をインストールしました。 JSPを動かしてみると問題なく動きました。 servletもちゃんとコンパイルできるかなと思って、javacしてみたら srv_intro.java:2: パッケージ javax.servlet は存在しません。 import javax.servlet.*; ^ srv_intro.java:3: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.*; みたいなエラーが延々とでるので、ああCLASSPATHとおってないんだなと思って、 csh.cshrcにsetenv CLASSPATH /usr/local/tomcat5.5/common/lib を追加しましたが、症状が改善されません。 何かアドバイスお願いします
609 :
(^・ω・^)b ◆tsGpSwX8mo :2007/04/20(金) 20:54:34
Sunテキスト Sun Certified Programmer for Java2 Platform 5.0 Exam【310-055】を買ったぜぃ!
(^・ω・^)b
611 :
デフォルトの名無しさん :2007/04/20(金) 20:56:17
>608オレかよ
612 :
デフォルトの名無しさん :2007/04/20(金) 21:07:41
>>611 色々ぐぐって思ったんですけど、もしかしてこの症状はjdk1.4とtomcat5.5に起因するものなんでしょうか?
自分はJDK 1.4 Compatability Packageを入れてなかったんでこれいれればなおるっぽくないですか?
ただ、JSPが普通に動くのにservletだけコンパイルエラー出るっていうのは何か違うような気も・・・
でJDK 1.4 Compatability Packageっていうのをダウンロードしたんですが、これってどうやってインストールするべきなのかわからないんです・・・
とりあえず、tarで展開したらbinとcommonがあるんですけどこれをどうすればよいのか・・・
http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/windows/classpath.html CLASSPATH の指定 (ファイル名かディレクトリ名か) の仕方は合ってる?
* .jar または .zip ファイル (.class ファイルを含む) の場合、
クラスパスは .zip または .jar ファイルの名前で終わる
* 名前のないパッケージ内の .class ファイルの場合、
クラスパスは .class ファイルを含むディレクトリの名前で終わる
* 名前付きのパッケージ内の .class ファイルの場合、
クラスパスはルートパッケージ (完全指定のパッケージ名の先頭パッケージ) の入った
ディレクトリの名前で終わる
あと、きみが使ってるシェルはほんとにcsh (tcsh) か?
614 :
デフォルトの名無しさん :2007/04/20(金) 21:22:21
bashは一回も使ったことないんでcsh(tcsh)です。 javax.servlet は存在しません。ってでるんでservlet-api.jarにパス通せばおkですよね? find / -name servlet-api.jar ↓で /usr/local/tomcat5.5/common/lib/servlet-api.jar ってでるんで、この場合 setenv CLASSPATH /usr/local/tomcat5.5/common/lib であってますよね? ちなみに↓みたいな感じになってます setenv JAVA_HOME /usr/local/jdk1.4.2 setenv CATARINA_HOME /usr/local/tomcat5.5 setenv CLASSPATH /usr/local/tomcat5.5/common/lib setenv TOMCAT_HOME /usr/local/tomcat5.5
615 :
(^・ω・^)b ◆tsGpSwX8mo :2007/04/20(金) 21:27:14
サンプルコード入れました。 性的インポが機能しないんですが… コンパエラーです。 import static 〜.Math.PI;import static 〜.Math.sin; import static 〜.System.out; class YasudaMisako{ public static void main(String[] args){ out.println(sin(PI/2)); } }
Tomcat はおろか CLASSPATH の設定もしたことないから はずしてるかもしれないけど、上に引用した SUN の文書に従うなら CLASSPATH に書くのは /usr/local/tomcat5.5/common/lib/servlet-api.jar (jarファイル名) のような気がする。 これをパスと呼ぶのは気持ち悪いけど。
617 :
デフォルトの名無しさん :2007/04/20(金) 21:30:04
>>616 !!!
/usr/local/tomcat5.5/common/lib/servlet-api.jarで成功しました!!
うれしいいいいいいいいいいいいいいいいいいいいいい!!!><アザース!!
618 :
デフォルトの名無しさん :2007/04/20(金) 21:38:08
沖縄県の方へ(命に関わる注意事項です) 沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。 民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄 三千万」で検索をお願いします。 この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから… ※一国二制度 簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。 (つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。) さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。 3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。 そして反日教育を受けた中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。 今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。 自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。 発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
619 :
デフォルトの名無しさん :2007/04/20(金) 21:40:44
615は?
>>602 すくなくともEffective Java(ジョシュア・ブロックだよね)は入門書じゃない
と思うな。いい本であるのは間違いないのだけど。
CのようなALGOL系の言語を知っているなら1でいいんじゃないだろうか。
でも10年前の本かー。
全く未経験なら結城さんのとか薦めるんだが。
JTextFieldの横にJButtonつけて、 数字を入力したときだけ、次の処理に進むって風にしたいんだけど、 なんかいいクラスとかアルゴリズムないっすか リンクを貼らずにコードを書いて教えてくれたらパンツ見せてあげる
public void actionPerformed(ActionEvent e) { if ( e.getSource() == t ) // JTextField t { int n; try { n = Integer.parseInt( t.getText() ); shori(n); } catch (NumberFormatException ex) { } } } 人に教えられるレベルじゃないのですが、パンツが見たいので書いてみました
JTextFieldのキーリスナーでJButtonのenableを操作する方がいいよ。
625 :
デフォルトの名無しさん :2007/04/21(土) 02:06:20
>>620 高い上に古いんですね……
2の方はある程度勉強した後に読もうかと思います
その前の段階で何かいい本ありませんか?
626 :
デフォルトの名無しさん :2007/04/21(土) 02:51:24
JSPでは文字化けしないんですが、servletでコンパイル後アクセスしてみると文字化けします。 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class srv_intro extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { response.setContentType("text/html; charset=windows-31j"); PrintWriter out=response.getWriter(); out.println("<html><head>"); out.println("<title>ああああああ</title>"); out.println("</head><body>"); out.println("<p>てすとてすと</p>"); out.println("</body></html>"); どうしたらなおるでしょうか? JAVACする時に文字コード指定とかできるんでしょうか?
パンツは?
今日は黒です…
630 :
デフォルトの名無しさん :2007/04/21(土) 08:47:18
沖縄県の方へ(命に関わる注意事項です) 沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。 民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄 三千万」等で検索をお願いします。 この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから… ※一国二制度 簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。 (つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。) さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。 3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。 そして反日教育を受けた中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。 今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。 自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。 発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
631 :
デフォルトの名無しさん :2007/04/21(土) 10:04:02
Java Sound APIのMidiSystemで以前はなっていたのに音が鳴らなくなったんですが、Java6になってからのバグ報告あるの知りませんか?
>>633 Java6 Update 1だけど、普通に鳴るよ。jarダブルクリックでもJWSでも同様。
636 :
デフォルトの名無しさん :2007/04/21(土) 11:45:29
外部のプログラムを起動したいのですが、 Runtime.getRuntime().exec("dir > out.txt"); などとやると、 Exception in thread "main" java.io.IOException: CreateProcess: dir > out.txt error=2 というエラーが出ます。 これは何が悪いのでしょうか?
>>636 dirは内部コマンド。cmd.exeのような実行プログラムではない。
あと、リダイレクト">"はcmd.exeが処理するもの。
外部プログラム内でリダイレクトさせたかったら、cmd.exeを起動してこうする。
cmd.exe -c "dir > out.txt"
ありがとうございました。できました。
>>634 >>635 アドバイスありがとうございます。
jdkとjreの両方入れてあったんですが、jdkのほうにはあってjreのほうにはありませんでした。
両方入れたところ鳴るようになりました。
8時30分から12時50分までは何時何分という計算の方法どうやればいいんでしょうか? int型と言われる方法でまず時間を分に変換するところも教えて頂ければ助かります。
641 :
デフォルトの名無しさん :2007/04/21(土) 15:18:54
Genericsで以下のようなコードを記述したのですが、コンパイルできません。 keyを継承したclassだけをvalueに持たせるにはどうしたらよいのでしょうか。 private HashMapClass<Class<B>, Class<C extends B>> implMap;
>>640 Date.getTimeは64bitのunix epocが取れる。
他の方法もあるかもしれんけど、一番手っ取りばやい。
>>640 java.util.Calenderオブジェクトを生成してCalendar#set(int,int,int,int,int)で
お好みの日付時刻のCalendarオブジェクトを作ってから、Calendar#getTime()で
java.util.Dateオブジェクトを取得する。
Dateには、java.util.Date#getTime()というメソッドがあって、
これで1970/1/1 00:00:00.000からの経過ミリ秒を取得できるので、
2つのDateオブジェクトのgetTime()の結果を引き算すれば、
差がミリ秒で得られる。
あとは1000で割れば秒、さらに60で割れば分…と言った具合に計算できる。
詳細は、java.util.Dateとjava.util.Calendarのjavadoc参照。
Javaの日付操作はメンドイ。
644 :
641 :2007/04/21(土) 15:37:40
タイプミス。実際に試したのは以下。 private HashMap<Class<B>, Class<C extends B>> implMap;
>>644 HashMap<Class<Foo>, Class<? extends Foo>> を言いたいんだと思うんだけど、
Class<Foo> のほうにはワイルドカード使えないからね。
646 :
デフォルトの名無しさん :2007/04/21(土) 16:19:10
クライアントAとクライアントBでお互いに指定したフォルダを共有フォルダにして お互いにDL出来るようにしたいのですが、どこから勉強していいのか分かりません 大雑把ではありますがアドバイス頂けないでしょうか?
>>646 WindowsLiveMessenger の使い方
648 :
641 :2007/04/21(土) 16:25:33
>>645 せにはら代えられないので@SuppressWarnings("unchecked")とメソッドでの排他で乗り切ります。
>>648 いったい何を考えているのか良く分からんのだが、要は key と value の制約を明記したいってことだよな?
それは java の型システムだけでは記述できんぞ。
generics を使って明記できるのは HashMap に入れられる型の制約であって、key と value の関係じゃないから。
put,getに対してなら規定クラスが特定できてるからコンポジットクラスにすれば問題ないだろ
651 :
デフォルトの名無しさん :2007/04/21(土) 18:52:25
xorgの設定をしたいのですが、xorg.confの Section "Device" Identifier "Card0" Driver "●●" ●の部分はなんて書けばいいんでしょう? 私はi386を使っています。 i386って書けばいいんでしょうか?
652 :
デフォルトの名無しさん :2007/04/21(土) 18:56:47
ぬるぽ
>>651 i386ではない。
DeviceセクションのDriver欄には使ってるビデオカードに対応したドライバ名を書く。
っていうかスレ違いの板違いだから。
>>652 ガッ!! ツ石松
654 :
デフォルトの名無しさん :2007/04/21(土) 19:48:06
搭載しているデバイスの詳細などを表示するコマンドって何でしょう? tcsh使ってます。
>>654 tcshを使ってるとか以前にOSは何よ。/etc/procの下を見るとか。
っていうかスレ違いの板違いだから。
>>652 ガッ!! ツ石松
>>635 OK牧場
656 :
デフォルトの名無しさん :2007/04/21(土) 23:23:45
hibernate + mysqlでhibernateの勉強をしています。 日付を扱うクラスとしてjava.util.Dateを使用している文献が多いですが、 現場でもCalendarとかではなくてDateなんでしょうか?
Calendarの生成コストを考えるとDateのほうがいいんじゃないかな。 うちはDateだな。
>>656 apidocでは
>日付と時間フィールドの間の変換には Calendar クラスを、
>日付文字列のフォーマットと解析には DateFormat クラスをそれぞれ使用してください
となっているので、データとしてはjava.util.Dateだと思っているが、
違う?
659 :
デフォルトの名無しさん :2007/04/22(日) 00:28:00
本当に初心者でごめんなさい。 さっきネット上のソフト(?)みたいなのを開いたら javaが入ってないので表示できません、ってでてきたんだよね。 だからダウンロードすればいいんだな!と思ってよくわからないんだけど めぼしいものを見つけたのでダウンロードしようとしたら、 「お宅の接続じゃダウンロードできません」みたいな感じなのがでてきたんだ。 接続ってのがこれまたわからないんだけど一応有線らしい・・。 (こういうことをいってるのかはわからないが) とりあえずダウンロードしたら色々できると思うんだけどどうすればいいですか? 教えてください。
Calendarは日付計算機であって日付そのものではない。
663 :
デフォルトの名無しさん :2007/04/22(日) 12:38:29
>>660 くどくてすみません。
hibernateでmysqlのdatetimeを表現するならどのクラスがいいんでしょうか?
>>663 Date date = new Date();
DateFormat format = DateFormat.getDateTimeInstance();
String date = format.format(date);
で良いと思うよ。参考書で覚えた方法だけれども・・・
665 :
663 :2007/04/22(日) 13:36:48
666 :
デフォルトの名無しさん :2007/04/22(日) 14:17:07
>>665 とんでもない、アドバイスありがとうございます。
entityクラスのgetterを工夫するしないないかもしれないですね。
>>666 アンカーがよくわからんが
> entityクラスのgetterを工夫するしないないかもしれないですね。
はやめとけ
ビジネスロジック汁
>>669 入れたlinuxからの話か?
だったら、pingやdigでlocalhostがどこを返すか調べる
w3mやlinksで勝手にhatenaに飛ぶとは考えにくい
順番に問題をしぼっていくんだ
tomcatが起動しているはどうやって確認したんだ?
確認したブラウザは何なんだ?
それによっては問題は特定できるかもしれんし、できんかもしれん
ちゃんと理屈で考えればきっと答えはある
ガンガレ
671 :
デフォルトの名無しさん :2007/04/22(日) 22:52:44
tomcat5.5に<Resource>のタグをいれたいんですが、↓の中のどこに入れればいいのかわかりません。 どれが正解でしょう? <Server> <Service> <Engine> <Host> </Host> </Engine> </Service> </Server>
672 :
デフォルトの名無しさん :2007/04/22(日) 22:53:21
あ、↑はserver.xmlの話です
674 :
デフォルトの名無しさん :2007/04/22(日) 23:55:14
Javaのフレームワークでもっとも使われているのは Jakarta-Commons?
>>674 Commonsはフレームワークじゃねぇ
現在の日本の人口は127700000人。年間の人口増加率を-0.5%として 2010年の人口を求めたいのですが、やり方がわかりませんTT while文を使うんですよね・・・? 教えてえらい人!
>>676 一応確認するが、普通の数学上の式は立てられるか?
>>677 立てられます
今日提出しなければならない課題なので
助けてくださいー!!(PД`q)
whileループを使えという段階であれば、 累乗を使ってさぼってはいけないのだろうな。 int population = 127700000; // 1億ならintでいいか。 double ratio = -0.5; // 百分率で double factor = (100 + ratio) * 0.01; // 1年分の増加係数 int years = 2010 - 2007; // 年数 while (years-- > 0) { population *= factor; }
681 :
666 :2007/04/23(月) 02:40:46
>>667 アドバイスありがとうございます。
ひとまずCalendarクラスを対応させると日時まで記録できるようになりました。
用途的にまずいかもしれないですが他の事例紹介が出てくるまではこれで対処しておきます。
682 :
デフォルトの名無しさん :2007/04/23(月) 02:46:01
サーブレットでクライアント側にファイル出力したあと 完了画面を表示させたいんですがどうすればいいかわかりません。。 フォワードさせればいいのかと思ったんですがダウンロード用の出力後だと getOutputStreamでエラーになってしまいました。 サーブレットだけで実現したいのですがさっぱりわかりません。 教えてえらい人!
683 :
デフォルトの名無しさん :2007/04/23(月) 03:13:46
JWSで質問です。 メインのJFrameを DISPOSE_ON_CLOSE に設定しているのですが、 画面を閉じても javaw.exe のタスクが残りっぱなしになる現象があります。 次回起動時にパフォーマンスを上げるために残っているならともかく、 起動した回数だけ javaw.exe が増えていきます。 ちなみにjava.exeやアプレットからの起動では、タスクも終了します。 JWSでやる場合、何か特別な配慮がいるのでしょうか。
>>683 JWSは全く知らないが、DISPOSE_ON_CLOSE の仕様どおり、
プロセスが終了していないだけなのでは。
java.exeで起動した時というのは、プロンプト ( > ) に戻ってこないウインドウが
残っているのでは無いだろうか。
他に問題なければ、EXIT_ON_CLOSE を使う、と。
685 :
699 :2007/04/23(月) 04:18:09
>>670 ありがとうございます。自分の適当さがよく分かりました…
もう一度 順を踏んでやってみます
686 :
デフォルトの名無しさん :2007/04/23(月) 06:21:42
tomcat5.5をshutdown.shで終了させたあとログを見るとエラーがでています。 どんな対処をすればよいでしょう? 情報: Coyote HTTP/1.1を http-8180 で一時停止します 2007/04/23 6:13:52 org.apache.catalina.connector.Connector pause 致命的: プロトコルハンドラの一時停止に失敗しました java.net.UnknownHostException: hogehoge.org: hogehoge.org at java.net.InetAddress.getLocalHost(InetAddress.java:1191) at org.apache.jk.common.ChannelSocket.unLockSocket(ChannelSocket.java:490) at org.apache.jk.common.ChannelSocket.pause(ChannelSocket.java:289) at org.apache.jk.server.JkMain.pause(JkMain.java:681) at org.apache.jk.server.JkCoyoteHandler.pause(JkCoyoteHandler.java:163) at org.apache.catalina.connector.Connector.pause(Connector.java:1032) at org.apache.catalina.core.StandardService.stop(StandardService.java:489) at org.apache.catalina.core.StandardServer.stop(StandardServer.java:734) at org.apache.catalina.startup.Catalina.stop(Catalina.java:602) at org.apache.catalina.startup.Catalina.start(Catalina.java:577) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433) 2007/04/23 6:13:53 org.apache.catalina.core.StandardService stop 情報: サービス Catalina を停止します 2007/04/23 6:13:54 org.apache.coyote.http11.Http11BaseProtocol destroy 情報: Coyote HTTP/1.1を http-8180 で停止します 2007/04/23 6:13:54 org.apache.catalina.core.AprLifecycleListener lifecycleEvent 情報: Failed shutdown of Apache Portable Runtime
開始で問題でてなきゃスルーでいいんじゃね?
>>688 Windowsの再インストールすれば直るよ。
Calveroって英語でCalvertという意味だったんだ
690 :
デフォルトの名無しさん :2007/04/23(月) 22:30:21
三角関数の知識。
Java Sound APIが盛り上がらなさ過ぎるのは何で? オーディオファイルのSPIが1.0以上なとこが無さ杉w
JSPの質問です。(JDK1.5.0.04 Tomcat5.5.9) <HTML><BODY> <%@ page contentType="text/html; charset=Shift_JIS" pageEncoding="Shift_JIS" %> <% out.println("test"); out.println("test"); %> </BODY> </HTML> これで実行すると改行しないでtest testと出力されるんですが、なぜ改行されないんでしょうか。
out.println("test<br>"); out.println("test");
HTMLでは空白文字が1つのスペースにまとめられる。 つまり空白文字の改行がスペースになった。 空白文字をそのまま表示するにはpre要素などを使う。
なるほどありがとうございました。
Javaで動画の上で簡単なアニメーションを動かすにはどう言ったライブラリを使うのがいいでしょうか? アニメーションは対象の位置を示すだけの単純なもので、あらかじめ位置は分かっています。 動画とアニメはリンクして再生・停止・シークが出来るようにしたいと思っています。
>>683 ヒントつ SwingUtilities#invokeLater mainメソッド
Javaの統合開発環境のうち、USBメモリで持ち運ぶことができるものはありますか?
Eclipseなら持ち運べることは俺が確認済み。
samba経由で動かせると最高なんだけど
>>697 そんなもんない。
>動画とアニメはリンクして再生・停止・シークが出来るようにしたいと思っています。
思ってるならJMFのビデオレンダラ実装すれば良いだけじゃないか?
そこら辺に転がってる重量なライブラリは専用サーフェースにオーバーレイだったような気がする。
ビデオの1フレーム毎のラスター画像から生データ配列取り出して
表示用フォーマット向けへ加工して加工済み配列から表示用インスタンス生成して
描画対象に描画。これを時間ベースにやって行く。
んでその描画対象をAWTなりSwingなりのコンポーネントの表示領域に転送してやれば
後はアニメーションするスプライトをそのコンポーネントに張り付けてやれば良い。
描画対象がJava2DかJava3DかJOGLか、何かで実装がまるっきし違うんで具体的なことは言えん。
JSEとJDKは同じ物と考えていいのでしょうか。
JSEはSun Java Studio Enterpriseの略なんだが
>>703 の言ってるJSEって何よ?
Standard Editionです
環境に関しての質問も大丈夫なのかな? 「(最近の)eclipseはNetBeansより重い」という話をよく読むんだが、これは ・eclipseそのものが重い ・生成されるファイルが重い このどちらの意味と解釈するべきなの? 本当なら両方試してみたいんだけど、オンボロPCなんでその余裕がないんだよね
>>706 Eclipse SDK単体だとあまり気にならないけど、WTPやVEなどのプラグインを入れていくと重くなる。
WTPのvalidationは重く感じる。XMLエディタがリモートからスキーマやDTDを取りに行くと、その間エディタが固まる。
VEはもっさりするし、たまにEclipseごと落ちる。
WTPは、可能ならSysdeoやAmaterasで代用してる。
NetBeansは使ったこと無いけど、Swingの高速化の恩恵を受けて軽くなってきているとはよく言われるね。
>>702 ご親切にありがとうございます。
実装はなるべく簡単なものを考えているので、Java2Dで行きたいと思っています。
描画エンジンはJMFあたりを使うのが得策でしょうか? JavaのGUIはまったく素人なので・・・
int a; System.out.print("input a:"); a = KeyIn.readInt(); これシンボルが解決できないと出てエラーなんですけど変数KeyInを使うには何らかのソフトの更新とかあるの?
>>710 KeyInってのが変数なら、とうぜん宣言して初期化しないと使えないんだぜ。
いつ勉強に終わりが来るんですか?
期待していた答えだけど死ぬまでってちょっとつらすぎる
Javaに限っても、10年間Javaの仕事ばかりしてきた自分でもJavaの知ら ないことはたくさんある。具体的な目標(試験に合格とか)がない限り、 勉強に終りはない。
定年すれば勉強要らない
>>709 俺は標準拡張のみでやりたかったんでJOGL+JMFで実装中だけどjavaで動画というと後はJSDLもある。
JSDLは使った事ないんで何とも言えない。
JMFならwindows版はDirectXそのまま呼び出してバグまでそのままだから少し触った方が良いかもしれない。
探せば他にもあるけど選択肢に上がるようなモノじゃなかったなぁ・・・。
結局、JMFが無難って感じになるか。
プラグインで色々拡張できるしサードパーティー製mpeg4プラグインがあるのもなかなか・・・。
まあ、JMF触るならwin版のインストーラがOSのディレクトリにdll入れたり、Java Sound APIとセットでJMF入れて勝手にclasspath追加するんで気を付けた方が良い。
719 :
デフォルトの名無しさん :2007/04/24(火) 11:02:34
キーボード入力する場合 バッファがつくのはなんでですか?
CPad for Java2 SDK バージョン2.31を入れました。 コンパイラと呼ばれる翻訳はどこで入手できるんですか?
なんか謎な表現する人が多いな……。 それ集める専用のスレでも立てるかな。
CPadはもう聞き飽きたよ。何処の学校? コンパイラってかJDKはsunのサイト。 テンプレに無かったけ?
724 :
デフォルトの名無しさん :2007/04/24(火) 15:16:04
Pad使って何か意味あるの? Eclipseにすればいいのに
vi使えよ
vim じゃないともう辛い
ed ぢゃないとだめだ・・・
すいませんRubyの質問はここでいいでしょうか?
いいよ
boolean型の2次元配列の、指定した1点の周囲8点にあるTRUEの個数を数えたい この場合、下のようなコードを2重ループで回す以外に方法はないのだろうか? if(flag[i][j]==TRUE)count++;
こんなんでどう? // 指定した一点 int x, y; for (int i = -1; i <= 1; i++) { for (int j = -1; j <= 1; j++) { if (i == 0 && j == 0) next; if (flag[x+i][y+j]) count++; } }
すいません、何も分からない初心者ですが質問させてください。 組み込み系、凡庸系、Web系 というのはそれぞれどういうプログラムなんでしょうか? Web系はネット上でのサービスだったりWebサイトのことだと何となく分かるんですが 前の二つが分かりません。
733 :
730 :2007/04/24(火) 19:37:07
>>731 それを2重ループです。馬鹿は黙ってなさい
734 :
デフォルトの名無しさん :2007/04/24(火) 19:37:08
>>732 とりあえず凡庸系ってのはつまらなそうだなwwwwwwww
735 :
デフォルトの名無しさん :2007/04/24(火) 19:39:17
>>730 周囲の意味がよく分からん・・・。
flag[0][0]の周囲8点ってどこ?
>>735 凡庸系キタ━━━━━━(゚∀゚)━━━━━━ !!
738 :
737 :2007/04/24(火) 19:50:38
739 :
デフォルトの名無しさん :2007/04/24(火) 19:51:28
>>730 指定したX、Yを1で加算、減産して8個所のindexを出す。
配列の範囲内ならカウントで良いじゃん。
ループなんていらねーだろ。
周囲8点ってそういう意味であってるか?
740 :
デフォルトの名無しさん :2007/04/24(火) 19:53:13
配列の個数と指定した個所によっては8点もないわな・・・。
あるストリームからバイトデータを読み込みたいのですが、 サイズが不明でどれくらいバッファを用意したらいいか分かりません。 容量が足りなくなったら自動的に拡張してくれるような機能をもった バッファクラスはJavaにありますか?
バッファサイズって、自分で指定しなくてもいいんじゃね?
>>741 なんでバッファサイズを指定したいんだ?
ByteArrayOutputStreamという便利なのがある。 これはしばしばキャッシュにも使われるくらい汎用的だから使いこなすといい。
コマンドプロンプトで、 C:\work>javac (ファイル名).java としてエンター押したら エラー:(ファイル名).java を読み込めません とでるんですがどうしたらいいんでしょうか?
746 :
741 :2007/04/24(火) 20:45:45
ありがとうございます。ByteArrayOutputStreamを使ってみます。 ところでこれはBufferedOutputStreamでラッピングする必要がありますか?
>>732 >凡庸系
何のことか分からんかったが、汎用系の事かw
>>746 Buffered〜はディスクI/Oなど外部とのI/O操作で、
ある程度の大きさのブロック単位で操作したほうが効率的なときに使うもんだ。
そのクラスをかますくらいならBuffered〜の初期容量を設定してあげよう。
そういやread(buff, 0, buff.length)って自分でやってるのに
BufferedInputStreamかます子も結構いる。。。
749 :
745 :2007/04/24(火) 21:11:52
事故解決できました
>>748 の3行目の初期容量を与える対象は、ByteArrayOutputStreamのほうです。今更ですが。
Bufferedがない環境だとByteArrayで代用できるの? Streamの仕組みがよくわからない・・・><
Buffered*StreamってのはEdyみたいなもんだ。 小銭のやり取りは時間が掛かるからチャージする。 例えば1万円補充して小銭が発生しないなら高速っしょ。
753 :
デフォルトの名無しさん :2007/04/24(火) 23:32:03
例えばAAAというサーブレットにinitメソッドがあったとして、 一回目にアクセスがあったらinitメソッドは処理されると思いますが、2回目以降のアクセスでは処理されないですよね?
試しにロギングすればいいじゃん。
JDKってVistaでも使えるの?
>>751 ByteArrayOutputStream baos = new ByteArrayOutputStream(128);
DataOutputStream dos = new DataOutputStream(baos);
dos.writeInt(7743);
dos.writeInt(0721);
// some datum write...
byte[] tmp = baos.toByteArray();
// will write byte[] tmp to real OutputStream ...
例えばintの書き込みをまとめて処理したいときは、こんな感じで大丈夫なのですかね?
nioってやつが便利そうなのだけど、ついてないんだよねぇ。
なんか迷走してる気がするなw メモリ内にデータの全てを溜めておく必要が無いなら baosなんて要らないからそのまま書き込めばいい。 読み込みデータ配列の全体がメモリ上にある必要がないのであれば baosは別にイランからそのまま出力先に書き込めばいいよ。(そしてBufferedの出番やね)
Buffered関連はただのアクセラレータだから、分かりにくければ使わなければいい。 BufferedReaderもreadLine()のために使ってるシーンがやたら多いが、 クラスそのものの役目はアクセラレータ。混乱の元だな。
>>758 「アクセラレータ」ってのはBuffered関連には、あんまし使われない用語だよな。
さらに Swing の JMenuItem とかで使われてるから、下手したら逆に混乱する罠。
最近では CPUアクセラレータだとかグラフィックアクセラレータってのも聞かないしね。
>>757 >>758 BufferedなStreamがないのです>< (携帯MIDP)
intが直接読み書きできるのがこれ(Data***Stream)しかないのと、
JSR75(FileConnection)が書き込み(write)の度に内部でSecurityTokenの認証して激遅になっちゃうので・・・。
baosにwriteToってメソッドがないなら、baosを継承して実装すると効率いいよ。 内部でout.write(buf, 0, count);ってやってるだけだけど、余計なコピーが無くて高速。
>>761 なるほど、ありがとうございます。
こういう時にうまく継承使えるのですね。
764 :
703 :2007/04/25(水) 04:51:43
自己解決しました。 JREもJDKもJava SEに内包されているんですね。 ME、EE、SE、おなじSEでもStudio Enterprise、 J2SEになったりと いろいろややこしい事があったのでまとめてみました。 # Java SE - Javaの汎用的なエディション(従来のJ2SE) Java SE Runtime Environment (JRE) Java SE Development Kit (JDK) # Java EE - Javaの大規模システム向けエディション(従来のJ2EE) # Java ME - Javaの組み込みシステム向けエディション(従来のJ2ME) バージョン履歴と呼称の変更 * JDK 1.0 (1996年1月23日) * JDK 1.1 (1997年2月19日) * J2SE 1.2 (1998年12月8日) * J2SE 1.3 (2000年5月8日) * J2SE 1.4 (2002年2月6日) * J2SE 5.0 (2004年9月30日) * Java SE 6 (2006年12月11日)
765 :
デフォルトの名無しさん :2007/04/25(水) 05:42:55
ActionScriptというFlashで使われている制御プログラムの言語をプログラミングが あまり出来ない人でも使えるようにActionScrip和訳辞書のようなイメージでシステム を作りたいと思っています。ユーザーがイベントやそのイベントが起きたときの処理などを 日本語であらかじめ設定されたライブラリから選択すればそのままソースがデータベースから 読み出されアウトプットされるようなものを作りたいのです。 どのように作ればよいのでしょうか? 何か開発に使えそうなソフトなどないでしょうか?
それを考えるのはお前だろう・・・
本人がプログラミングがあまり出来ない人
768 :
デフォルトの名無しさん :2007/04/25(水) 07:51:51
★普通に仕事をするだけでも収入は確かにある、、 でもそれだけで足りますか? ☆空いている時間があるならその時間を使って副収入を稼ぎましょう! 時間があればある程、手間をかければかける程、 ★その成果がお金としてあなたの物に! ☆詳しくはこちら↓↓ ht消tp://a消n.to/?co3 ★↑漢字の消をURLから消してね。
タブ幅の設定、全角・半角スペース・タブの表示、エディタの左側に行番号の表示、 クラス等の色分け、括弧の始終の対応表示といったソースを見書きする上で見やすくなるような 設定項目が多いものがいいんだけど、フリーの開発環境って何を選ぶのがいい?
JDK/gVim
アップレットで書いた図形をZを軸に360度回転させたいのですが、どうすればいいでしょうか?
度数法で 360度回転したら、一周して元の位置に戻るわな。 何も加工せずに、そのまま表示してりゃOK。
htmlから受信したデータを受け取り、表にする(未記入のデータがあったらエラーページへいく)サーブレットを作ったのですが、オブジェクトを生成して他のクラスのメソッドを使おうとするときにシンボルが解決できないとなり、コンパイルが成功しません。 とても初歩的な視野の狭い質問かもしれませんが、どのようにすれば解決するのかご教示下さい。 ずっと考えていたのですが、二時間くらいここから進みません…。 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class EmpInfoCheckAction extends HttpServlet{ public void doPost(HttpServletRequest request , HttpServletResponse response) throws IOException{ String bangou = request.getParameter("empNo"); String namae = request.getParameter("empName"); String seibetsu = request.getParameter("gender"); String jusyo = request.getParameter("address"); response.setContentType("text/html;charset=Windows-31J"); EmpInfoCheck eic = new EmpInfoCheck(); eic.validate(bangou , namae , seibetsu , jusyo); if(eic.validate < 5){ ErrorCheck ec = new ErrorCheck(); ec.missCheck(eic.validate); } else { CorrectDate cd = new CorrectData(); cd.dataOutput(bangou , namae , seibetsu , jusyo); } } }
774 :
647 :2007/04/25(水) 17:17:33
javax.servletになってるか?
775 :
647 :2007/04/25(水) 17:18:32
なってるね。見難いorz
776 :
デフォルトの名無しさん :2007/04/25(水) 17:42:24
777 :
773 :2007/04/25(水) 17:52:49
EmpInfoCheck eic = new EmpInfoCheck(); ErrorCheck ec = new ErrorCheck(); CorrectDate cd = new CorrectData(); の3行でそれぞれ=の前後に共通するシンボルです。 EmpInfoCheck、ErrorCheck、CorrectDateの三つが二回ずつで計6個のエラーが出ます。 要領を得ない説明ですみませんが、よろしくお願いします。
778 :
デフォルトの名無しさん :2007/04/25(水) 18:36:01
初心者です。 ひとつの配列の中の値から最大値・最小値を取り出すプログラムがわかりません。 どなたかよろしければ教えてください。
>>778 シャッフルされたトランプの山の中から、最大最小をさがすにはどうする?
まあトランプの場合値は決まってるけど。
forループとif文を組み合わせて考えてみてください。
781 :
デフォルトの名無しさん :2007/04/25(水) 18:45:15
782 :
デフォルトの名無しさん :2007/04/25(水) 19:25:56
w
ん?煽りではないと思うけど、
>>781 の意見はいいとこ付いてると思うよ。
短いコードで確実に成果をあげるのはよい姿勢。Wicketとか正規表現使ってるしね。
>>773 念のために確認だけどエラー出ているクラスは自前の実装でデフォルトパッケージだよね
コンパイルしている場所と実際にソースのある場所が違うとか?
試しにコンパイルするときに-sourcepathオプション使ってみてはどうでしょう
若しくはソースのある場所まで移動してからコンパイルとか…
既に試していたら失礼。
最近はじめたばかりの初心者です! レイアウトに関して教えてください! _________________________________ ラベル1 テキスト1 ラベル2 テキスト2 ・ ・ ・ ・ ・ ・ ラベル テキスト ボタン(中央) ___________________________________ こんな感じに並べたいのですがなかなかうまくいかなくて・・・ GridLayout使うと画面いっぱいになっちゃうし、FlowLayoutだと うまく並ばないし(´・ω・`)
ラベルとテキストがずれてるのは入力ミスです><
787 :
778 :2007/04/25(水) 20:58:14
for(i=0;i<k;i++){ if(a[i]<=a[i+1]){ max=a[i+1]; } if(a[i]>=a[i+1]{ max=a[i]; } } 考えてやってみたんですが、上のではうまくいかず・・・。 どなたか助言お願いします。
>>785 setLayout(null);
>>787 maxに最大値も最小値も入れちまっていいのか?
領域外アクセスになってないか?
789 :
788 :2007/04/25(水) 21:10:18
788はよく読まずに回答する阿呆
>>787 それは今までの最大値を考慮できないだろ、例えば10・1・2というデータがあっても最大値を2と判断する
答えを書いてもいいんだけど、まず779でよく考えてみるといい
>>785 ラベルとテキストのペアを FlowLayout で1つの Panel にまとめて、
それを GridLayout で縦に並べなさいな
>>790 ありがとうございます!
Panelを4つ使用するということですか?
あとGridLayoutで縦に並べる方法がわからないです><
792 :
778 :2007/04/25(水) 21:50:51
>>789 >>779 での考え方はわかりますが、それをプログラムにするのがちょっとわかりません・・・。
>>792 どうやってカードの山から最大値最小値を求めたの?
その手順を書いてみそ。
全力で釣られてみる int[] a = {2, -3, 5, 10, 1, -7, 3, 7}; int max = 0, min = 0; for(int i = 0; i < a.length; i++){ if(a[i] > max) max = a[i]; if(a[i] < min) min = a[i]; }
795 :
デフォルトの名無しさん :2007/04/25(水) 21:55:09
>>787 Arraysでsortすればいいじゃんw
>>795 なんでそんなコストの高いことするんだ?
ゆとり教育か?
797 :
デフォルトの名無しさん :2007/04/25(水) 21:58:10
俺はこういう初期化が好みだ if(i==0){ max = a[i]; min = a[i]; }
798 :
デフォルトの名無しさん :2007/04/25(水) 22:00:01
>>796 SUNの標準関数を多用するのは当然。
行数、工数の削減かつ責任の範囲を狭く。
>>794 > int max = 0, min = 0;
int max = Integer.MIN_VALUE; min = Integer.MAX_VALUE;
>>798 だれが、システムの話してるんだ?
ロジックの話だろ。
802 :
デフォルトの名無しさん :2007/04/25(水) 22:03:55
>>801 で、誰がロジックの質問したんだ?wwww
803 :
778 :2007/04/25(水) 22:03:59
>>793 まず一番上のカードAと次のカードBを比べてAがBより大きいならAをキープでAとCを比べる動作を繰り返す。
もしAがBより小さいならBをキープしてまた同じ動作を繰り返す。
って考えなんですけど、どうでしょうか・・・。
sortするのは良いアイディアだと思う 通常最大最小以外にも値が必要になるし その場合順序があった方が結果的にかなり得
元々配列に要素を格納しようとしている時点で負け ツリーとかハッシュリストとか低コストで必要な 要素にアクセス出来る構造を使うべきだと思うよ
807 :
デフォルトの名無しさん :2007/04/25(水) 22:07:22
どっかで宿題でも出たんだろ? Java以前の問題だ・・・他所へいけよカス。
>>803 一番から順番にカードを引くよね。
最初のカードの数を**紙に書いておく**
次のカードを引く
もしその数が書いておいた数字より大きければ
書いておいた数字を消して引いたカードの数字と置き換える
山が無くなるまでやれば最大値は紙に書いてあるやつだよね
>>803 理屈はそれであってる
787のコードだと、AとBのどちらが大きくてもBとCを比較してるよな
今までの最大値とCを比較するように変更してみろ
>>805 そんなもんは格納コストとのバランスを見て決めること。
811 :
デフォルトの名無しさん :2007/04/25(水) 22:11:15
>>810 お前みたいなのがいるから化石みたいなコードが残るんだよ。
ハードの性能は勝手に上がるんだから可読性を優先してくれよな。
Javaの場合配列の格納コストって低いのか?
すみません SEXをしたいのですが、どういうプログラムを書けばいいでしょうか?
nroff -man emacsインストールパス/version/etc/sex.6 | more
unzip;strip;touch;finger;mount;fsck;more; yes;fsck;fsck;fsck;umount;sleep
アセンブラにSEXってニーモニックあったな。
javamailで文字列を適当に組み合わせたメールアドレスにアポイントメールを送りつける。 まぁ・・・臭い飯を食う事になるかもしれないな。
>>815 うまいなあ。でも、
>>813 は多分ファイルがないんだと思う。
野良でファイルを拾ってきても、たぶん権限がないと言われて駄目だな。
819 :
デフォルトの名無しさん :2007/04/26(木) 02:04:28
FileReader fr=new FileReader(application.getRealPath("hogehoge.txt")); ↓ってどうやればなおりますか? FileReader fr=new FileReader(application.getRealPath("hogehoge.txt")); ^ シンボルを解釈処理できません。
820 :
デフォルトの名無しさん :2007/04/26(木) 02:05:00
↑ちょっとずれました (application.getRealPathが解釈処理できないっていってます
如何なるときでも、コレクションを使う方が配列を使うよりも、可読性が高いのです
public class test { public static void main(String[] args) { String a = "xyz"; if(a.substring(1,2) == "y"){ System.out.println(a.substring(0,1)+a.substring(2,3)+ a.substring(1,2)); } } } ↑ これで「xzy」と表示されないのは何故ですか?
解決しました。ありがとうございました
>>822 Stringの比較は == ではなく .equals() で。
もしくは、a.charAt(1) == 'y' とか。
828 :
デフォルトの名無しさん :2007/04/26(木) 06:01:31
エディタで文字の置き換え(数万行のデータを)やったら残り6時間みたいなふざけた数字がでたので、30分ぐらいであきらめて、 javaでPattern.compile使ったソース組んで実行したら数秒でおわったwwwwwwwwwwww何これwwwwwwwwwwwww
どうせ最初の痴漢はメモ帳使ったんだろ
830 :
デフォルトの名無しさん :2007/04/26(木) 06:08:30
フリーのエディタ
参考のためにそのエディタと使用OS何か教えて
832 :
デフォルトの名無しさん :2007/04/26(木) 06:12:23
OS XP エディタ へてむる
ありがとう OSのEditコントロール使ってるのかなぁ
834 :
デフォルトの名無しさん :2007/04/26(木) 06:20:14
よくわからないけど、最初エクセルで置換しようとしたけど、行数万単位になるとエクセル読まなかったからヘテムルでやってもみたけどムリポだった。 たったこれだけでおわった String tmpStr; FileReader fr=new FileReader(hogehoge.txt); BufferedReader br=new BufferedReader(fr); Pattern ptn=Pattern.compile("<>",Pattern.CASE_INSENSITIVE); StringBuffer sb=new StringBuffer(); String fNam="newhoge.txt"; FileWriter fw=new FileWriter(application.getRealPath(fNam),true); BufferedWriter bw=new BufferedWriter(fw,50); while(br.ready()){ tmpStr=br.readLine(); Matcher mtch=ptn.matcher(tmpStr); String strResult=mtch.replaceAll("\t"); bw.write(strResult); bw.newLine(); }
その規模のデータをオンメモリに読み込んだらメモリのスワップだけで遅々として動かんようになるよ。 readLineで1行ずつじゃなくて、まとめて全部バッファに読み込んでみると似た症状になるはず。 というよりヒープ不足で落ちるのが先か。
836 :
デフォルトの名無しさん :2007/04/26(木) 06:34:03
これperlでやったらjavaよりはえーのかな
つ sed
大量のデータをXMLでやり取りするのに、受け取り側がDOMを使ってたのでさあ大変。 大急ぎでSAXで作り変えた。
839 :
デフォルトの名無しさん :2007/04/26(木) 06:47:28
最初はXPでやったから今度はFREEBSDでsedしてみた。 全然おわんねーんだけどwwwwwwwwwwwwwwww
840 :
デフォルトの名無しさん :2007/04/26(木) 06:48:27
ターミナルに高速でテキストが流れまくってて怖いから止めたwwwwwwwwwwwwww
841 :
デフォルトの名無しさん :2007/04/26(木) 06:55:12
無理やり止めたら画面全部文字化けおこしまくってなんのコマンド入れてもきかなくなった・・・orz もうさ、sedして遊んでる場合じゃないんだよね・・・今さ掲示板作っててさ、絵文字の処理どうすればいいのか考えれば考えるほどまんどくさくなってウツになってきた。もう朝だな・・・( ´-`)チュンチュン
きのうJava6のPiped*Streamのコンストラクタに バッファが設定できるものが追加されたことを発見した。 一部識者に少ないバッファと原子粒度の大きさで使い物に ならんと叩かれてたが、そこらへんは改善されたんだろうか。
843 :
デフォルトの名無しさん :2007/04/26(木) 07:12:51
>>842 私が答えてあげましょう。
わ か ら な い
> 原子粒度 変な言葉使ってるな
846 :
デフォルトの名無しさん :2007/04/26(木) 07:17:16
誰か絵文字用のモジュール作ってくれ・・・
847 :
デフォルトの名無しさん :2007/04/26(木) 07:18:23
ActionScriptというFlashで使われている制御プログラムの言語をプログラミングが あまり出来ない人でも使えるようにActionScrip和訳辞書のようなイメージでシステム を作りたいと思っています。ユーザーがイベントやそのイベントが起きたときの処理などを 日本語であらかじめ設定されたライブラリから選択すればそのままソースがデータベースから 読み出されアウトプットされるようなものを作りたいのです。 どのように作ればよいのでしょうか? 何か開発に使えそうなソフトなどないでしょうか?
848 :
デフォルトの名無しさん :2007/04/26(木) 07:29:56
俺思うんだけどさ、 >プログラミングがあまり出来ない人でも使える ここに無理がありそうな気が・・・。 DBから引っ張ってくるのは、なんつーかシステムとかそうゆう大げさな考えいらないんじゃないかな? ユーザが【日本語であらかじめ設定されたライブラリ】を選択してもってくるんだろうから・・・。 でもそれを持ってきたところで、プログラミングがあまり出来ない人がそのライブラリとFLASHのアクションを絡ませるのきびしくない? FLASHのイベントが起きた瞬間DBから何かを自動的にダウンロードするっていうのならなんとなく何のために使うのか理解できるけど。
禿堂
850 :
デフォルトの名無しさん :2007/04/26(木) 07:48:50
ユーザが【日本語であらかじめ設定されたライブラリ】を選択してもってくるんだろうから・・・。 ようなものはどうやってどのように作ればよいのでしょうか? 何か開発に使えそうなソフトなどないでしょうか? そんな例とかがやり方が説明されているサイトや本などありましたら 教えてください。
851 :
デフォルトの名無しさん :2007/04/26(木) 07:49:51
俺の事スキだって850が言ってくれたら考えるよ。 俺の事好き?
852 :
デフォルトの名無しさん :2007/04/26(木) 07:53:09
好きです 教えてください 大好きです
853 :
デフォルトの名無しさん :2007/04/26(木) 07:53:24
ボッキしたwwwwwwwwwwwwwwwwwww
854 :
デフォルトの名無しさん :2007/04/26(木) 07:55:10
ボッキした俺が思うに、その鯖に置くライブラリって数百とか数千もあるの?
まずは顔写真うpしろ 話はそれからだ
VIPでやれ
857 :
778 :2007/04/26(木) 17:11:54
すみません、カードをキープするという動作をどのように表したらよいのかわかりません。 ifやforで表せるのでしょうか?
難しく考えるな 別にカードを手元におかなくても、その値を紙に書き記しておけば最大値はわかるだろ で、次のカードは手元のカードじゃなくて紙に書いた値と比較するようにすれば・・・
誤解を与える表現があるのでちょっと変更 誤:別にカードを手元におかなくても 正:別にカードをキープしなくても
Javaで2ちゃんねるのスレッド取得したり、書き込んだりする処理を実現したいんだ! 俺は、必死なんだ!
//A.java public class A{ int a,b; A(this t){ a = t.c; b = t.d; } } //B.java public class B{ int c=0,d=5; A e = new A(this); } こんなコードは当然コンパイルできないのですが、 このコードのようにクラスBのthisと同等の働きをするものをクラスAに渡す事はできますか?
>>861 これじゃいかんの?
A(B t){ a = t.c; b = t.d; }
863 :
デフォルトの名無しさん :2007/04/26(木) 18:19:56
初心者です。 お聞きしたいんですがリスト内の文字列と配列にある文字列を一致させてリストの文字列を選択させるってことできますか?
こう言いたいのか? 「リスト内の文字列と配列にある文字列の一致する文字列のリストを生成するってことできますか?」
>>864 まず自分が何をしたいのかを他人に正確に伝えられるようになるまで仕様を考えよう
867 :
デフォルトの名無しさん :2007/04/26(木) 19:12:15
doGetを呼び出すと、responseとして画像を出す servletがあります。 appletにより、このservletを呼び出して画像を表示させたいのですが、 applet はどのように記述したらよいのでしょうか? ・doGetを動かす ・画像を受け取る ということがわかりません。
URL指定して落とせばいいだけじゃね? ドメイン違うとそれも出来ないのがサンドボックスだった気がするし そこらへんでごにょごにょ頑張ってくれ。
869 :
デフォルトの名無しさん :2007/04/26(木) 19:46:13
>868 867です あつかましいお願いですが、サンプルソースを書いていただけないでしょうか?
870 :
778 :2007/04/26(木) 20:13:55
解決しました。 助言をくださった方々、ありがとうございました。
>>867 サンプル書いてもいいけどそのservletの仕様次第で動かないと無駄足踏むので
あなたの使おうとしているsevletのソースをまずいただけませんか?
>>867 Applet側は、普通の画像を取得するのとまったく同じでよい。
画像の取得は、java.applet.Applet#getImage(java.net.URL)でやってると思うけど、
このURLが、画像を返すサーブレットのURLになる。他に何か意識する必要はない。
>>862 ありがとうございました
期待した動作を確認できました
>>860 とりあえず課題の半分の回答
import java.io.InputStream;
import java.net.URL;
public class getURL{
public static void main(String[] a){
try{
URL url = new java.net.URL("http", "pc11.2ch.net", "/tech/subback.html");
InputStream is = url.openStream();
int r;
while((r = is.read()) != -1){
System.out.print(Character.toString((char)r));
}
System.out.println("\nEND\n");
}catch(Exception e){
System.out.println(e.getStackTrace());
}
}
}
877 :
868 :2007/04/26(木) 23:28:55
>>869 public class DrawPanel extends JPanel {
private Image image;
public DrawPanel(JApplet applet) {
image = applet.getImage(applet.getDocumentBase(), "img");
}
public void paintComponent(Graphics g) {
g.setColor(Color.CYAN);
g.fillRect(0, 0, 400, 300);
g.drawImage(image, 0, 0, this);
}
}
解説)
applet.getImage(applet.getDocumentBase(), "img");
ドキュメントベースってのはアプレットを表示している(置かれているではない)URL
"img"ってのは手前実装のServletマッピングURL
こういう書き方だと何も考えずにサンドボックス制約を満たせる。
g.drawImage(image, 0, 0, this);
第4引数はイメージのロード状況を監視するクラス。読み終わるまで同期。
applet.getImage自身はたしか非同期ローディング。
# JAppletのpaintに書いてはまったのは内緒
878 :
デフォルトの名無しさん :2007/04/27(金) 00:27:53
>>848 ユーザが【日本語であらかじめ設定されたライブラリ】を選択してもってくるんだろうから・・・。
ようなものはどうやってどのように作ればよいのでしょうか?
ライブラリの数は百数個くらいで十分だとおもいます
何か開発に使えそうなソフトなどないでしょうか?
そんな例とかがやり方が説明されているサイトや本などありましたら
教えてください。
JTextFieldのオブジェクトをsetEditableメソッドで編集不可能にすると 背景色が変わってしまいますが、これを編集可能な状態の時と同じ色 にする方法を教えてください。
void setBackground(Color bg)
882 :
880 :2007/04/27(金) 06:40:08
ありがとうございました。
883 :
880 :2007/04/27(金) 07:04:22
すみません。解決しませんでした。 編集可能なオブジェクトの背景色を取得する方法が分かりません。 Color getBackground()を使うには編集可能なオブジェクトを作らな ければければいけません。 どうすれば良いでしょうか。
編集不可能にする前にgetBackground()を使う
885 :
880 :2007/04/27(金) 07:37:05
すこし気持ち悪い方法ですが、うまくいきました。 ありがとうございました。
886 :
867 :2007/04/27(金) 09:02:23
>872 解決しました。ありがとうございました。
String a="12345678" この文字列から3を取得する方法と4、5をint型の45として取得する方法を 教えてくださいませ
888 :
デフォルトの名無しさん :2007/04/27(金) 12:41:49
>>888 ありがとうございます。
3をとるのはできましたが4,5と二つとるには
この場合どのような指定をすればよいですか?
890 :
デフォルトの名無しさん :2007/04/27(金) 13:26:17
すみません。 一つ教えて頂きたいことがあります。 スレ違いでしたらご指摘ください m(_ _)m 携帯アプリ上である操作を行うとメモリ不足で落ちてしまう アプリケーションがあり、その件でサポートに問い合わせしたのですが 「携帯でデータを転送する際に利用するメモリが不足しているのが 原因。メモリ領域を開けてください」と回答がありました。 そこで 「じゃぁどのくらい開ければいいのですか?」と問い合わせしたところ 「保存されているデータが個々の問題である為、回答できない。資料がない」 と回答がありました。 どのくらいの領域を確保すれば動くというのは、純粋にわからないものなでしょうか? 私自信がプログラマーではないので、納得いかないのです。 皆様からのご意見と事実を教えてもらえないかなとおもってるのですが・・ だめでしょうか・・宜しくお願いします。
>>889 サブストリングオーバーロードされてんだろぼけ
API仕様嫁
892 :
デフォルトの名無しさん :2007/04/27(金) 13:47:39
>>890 >皆様からのご意見と事実を教えてもらえないかなとおもってるのですが・・
貴方の知りたい事実って何?
>>890 >私自信がプログラマーではないので、納得いかないのです。
納得いかないのなら、プログラマーになればいいじゃない
894 :
デフォルトの名無しさん :2007/04/27(金) 14:53:14
メモリ不足で動かないのであれば、そのプログラムが最低限必要になるメモリ容量ってどのくらいなのかって、わからないものなでしょうか?
895 :
デフォルトの名無しさん :2007/04/27(金) 14:54:17
例えプログラマーだったとしても 仕様が公開されていなければ作った本人しか分からないのでは?
896 :
デフォルトの名無しさん :2007/04/27(金) 14:56:39
>>894 そのアプリに最低限必要になるメモリ容量がわかっても意味がないでしょ?
あんたの携帯で実際に動作するためのメモリ容量が知りたいんだろ?
調べてやるからそのアプリと携帯を持ってこい、としか言えないわな
898 :
デフォルトの名無しさん :2007/04/27(金) 15:24:16
>>895 仕様が公開されていないから分からないっていうのが無責任じゃない
ですか・・作ってそれを提供してるのに・・
>>897 普通そうなると思うのですが、調べてることすら拒否されたんですよ。
携帯容量が1MBあって、すでに利用されている
容量が500KBである場合、500KBをすべて消してしまえば
動くのでしょうけど、どこまで削除すればいいのか教えて
くれてもいいとおもうんです。
それがわかれば、こちらとて、いらないものを削除するなりして
動くようにするわけですから。
なぜ、その最低限確保しておかなくてはいけない容量ってのが、わからない
のかが不思議なんですよ。
OSとかゲームだと、必要最低限のメモリ容量ってよくあるじゃない
ですか、それが携帯アプリではないのが一般な状況なのでしょうか。
899 :
デフォルトの名無しさん :2007/04/27(金) 16:54:52
携帯の機種もアプリの名前も言わずにどっちが無責任なんだか
public class Ransu4 { public static void main(String args[]) { double A0 = Math.random() * 53; int A1 = (int)A0; int P01; if(A1 == 53){double A2;int A3; do{A2 = Math.random() * 53; A3 = (int)A2;} while(A3 == 53);P01 = A3;} else {P01 = A1;} System.out.println(P01); double B0 = Math.random() * 53; int B1 = (int)B0; int P02; if(B1 == 53 | B1 == P01){double B2;int B3; do{B2 = Math.random() * 53; B3 = (int)B2;} while(B3 == P01 | B3 == 53);P02 = B3;} else {P02 = B1;} System.out.println(P02); double C0 = Math.random() * 53; int C1 = (int)C0; int P03; if(C1 == 53 | C1 == P01 | C1 == P02){double C2;int C3; do{C2 = Math.random() * 53; C3 = (int)C2;} while(C3 == P01 | C3 == P02 | C3 == 53);P03 = C3;} else {P03 = C1;} System.out.println(P03); double D0 = Math.random() * 53; int D1 = (int)D0; (略) } } という方法で0〜52で、 それぞれ異なる乱数を出そうとしているんですが 他にいい方法ないですか?
そのデータの量を減らせばいいんだよ。
903 :
900 :2007/04/27(金) 18:46:04
質問とりやめます
お遊びでME開発やってるがお前ら肝心なこと忘れてるぞ。
携帯で一般人向けにメモリ領域と言ったら内蔵FlashROMのユーザーエリアの事。
つまりはPCで言う所のdisk容量の事。
携帯で「データを転送する際に利用するメモリが不足している」って文脈はHTTP経由で送るか受け取る時にキャッシュ(or一時エリア)が満杯になった時に話に上がる。つーか決まり文句。
キャッシュの管理はAMSやハード側がやってるからアプリケーションは関与できない。
>>890 はdisk容量空けろって言われて作ったんだからてめーがやれっていってるDQN。
仮にOutOfMemErrだとしても携帯にはユーザーからプロセスkillする機能はない。
アプリの使用メモリ知った所でバックグラウンドでプッシュ配信されたら受け取ったらどうなるかは分からん。
そもそもOutOfMemErrだとしたらVMが確保する総メモリ量は機種固定だから増やすことは出来ないOS全体の空きメモリ増やすことに意味はない。
OutOfMemErrだと打つ手なしって事だよ。
つーか先の決まり文句でFAなんだが
>>890 納得いかんならどういうタイミングでメモリ足らないって言われたか晒してみ?自分の環境と一緒に。
Swingで作っているアプリケーションを自己実行型jar
ファイルにし友人に送って見たところ
"Could not find the main class. Program will exit."
というエラーダイアログが出て起動しないと言われました。
エラー文で検索しても同じ問題の人はおらず、自分の環境
では動くのでどちらに原因があるのか分かりません。
何が間違っているのでしょうか。
私: WindowsXP JRE 1.6.0_01
友人: WindowsXP JRE1.5.0_11
以下がそのjarファイルです。
ソースも中に入っています。
http://www.uploda.org/uporg788958.jar
906 :
デフォルトの名無しさん :2007/04/27(金) 21:26:49
あるシステム開発をしていまして、フレームワークはstrutsでAPサーバはWebSphareです。 で、あるapplet(Swing)の画面のあるボタンを押すとAPサーバ上のルートに配置してあるhtmlファイルをそのまま表示させるところで、 そのhtmlにはいくつかimgタグにてイメージファイル(gif、emz)を張り付けて表示させているのですが、開発時にはプロジェクトの配下にリソースフォルダを配置してimgタグには そのパスを記述してあるのでhtmlを直接表示させるとイメージはでていたんですけど、 でも実際はサーバ上ではそのリソースフォルダはなくリソース類はすべてjarファイルの中に存在しているので、サーバ上で動かすと当然イメージファイルは全く表示されません。 このときhtmlからjarファイルの中のイメージを取り出して表示させるのは可能なのでしょうか?また、可能ならば是非その手法をご教示ください。
>>905 windowsを再インストールしてください
>>906 WebSphareを再インストールしてください
909 :
デフォルトの名無しさん :2007/04/27(金) 22:21:33
>>906 APサーバー起動時にjarを解凍してないのかな?
もししているなら解凍先のリソースを使えばいい。
してないならAPサーバー起動時にjarを解凍するように設定すればいい。
910 :
デフォルトの名無しさん :2007/04/27(金) 22:24:25
>>905 JREのバージョンを1.6に合わせてみたら?
911 :
デフォルトの名無しさん :2007/04/27(金) 22:27:30
>>904 激しく同意
エミュレータ−環境でチェックするぐらいしか思い浮かばない。
ハードには詳しくないのだがメモリ容量を自由に割り当てられる携帯ってあるのかな
ないなら実行可能なメモリーの量が分かってもメモリーが足りない携帯からは動かせないよね。
>>906 可能だろう、普通
手法もいっぱいあるだろうが、それを決めるのが仕事でないのかい?
913 :
デフォルトの名無しさん :2007/04/27(金) 22:32:14
>>898 君の言い分は分かった。
役所の消費者相談コーナーみたいな所に言った方が懸命だと思う。
コーディングうんぬんで解決出来る問題じゃない。
ソースが手元にあってメモリーをあまり使わないようにカスタマイズしたいというなら話は別だが。
914 :
デフォルトの名無しさん :2007/04/27(金) 22:34:55
>>906 解凍しておく
jarが外にあるリソースを見に行くようする
特定のURLアクセス時にjarがイメージファイルを生成する
・・・方法なんていくらでもあるぞ
>>905 > Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
コンパイルする時に -target 1.5 を付けて、生成されるクラスファイルのバージョンを1.5互換にすれば良いかと。
916 :
デフォルトの名無しさん :2007/04/27(金) 22:56:08
>>904 有難うございました。
解決できるのはないのはわかりました。
>>913 そうですよね。
消費者相談に近いものでしたねw
対応をうたってるのに動かないっていうのが
自分の頭では理解できなくて。。相談させていただきました。
失礼致しました。
いま実務でよく使われるJava関連技術ってどんなのがあるんでしょうか? スキルチェンジの為Javaの勉強をしていますが、 @ITの記事とかだとオシャレすぎてあまり現場の雰囲気が伝わってこないので。
Servlet, JSP, Struts, Hibernate、Springといったあたりを押えると メインストリームから大きく外れることは無いと思う。 Java屋は学習コストとの戦いみたいなとこがあるから、 これだけじゃ全然足りないんだけどね。
919 :
デフォルトの名無しさん :2007/04/28(土) 00:37:49
みんなSUNの資格は持ってないの?
SJC-Pくらいは持ってるだろ。派遣されやすくなる資格だな。
デジタル土方になるための資格です
そして函館戦争で死ぬ
>>911 MEで言う所のJavaヒープの動的割当は無理っぽいね。
VMとしては可能なんだろうけど機種に合わせてる感じ。
>>916 当然、DLしてインスコして実行した後の話だよな?
そうなら機種依存だろうから実機+人海戦術で挙動を洗わないと打つ手ない。
挙動分かった所でベンダのクソ実装の弊害だと打つ手ないなぁ・・・。
つーか、そういうのは文句言うんじゃなくてフィードバックしてやるべき事なんだが・・・
ただのDQN飽食じゃなかろうに。
>>917 いまは実務で使われてるものよりDesktop JavaとJWSとJOGL正式公開辺りが
熱いがお仕事じゃ無縁そうだね。Javaは国内見るより海外見た方が面白いよ。
国内の今更アプレットだのサーブレットだのはもういいよ。
JWSがあるのにFlashがどうとか騒ぐ奴が理解できん。
それ歳三やん
>Servlet, JSP, Struts, Hibernate、Spring 単金やすそうな仕事ばっかりだなw
926 :
デフォルトの名無しさん :2007/04/28(土) 09:04:37
RDBMSとservlet使って掲示板作るときってスレ表示順位ってどうやったら高速でリソース抑えた形で作れますか? スレのレスの最終書き込みのタイムスタンプをDB側でorder by とかでソートしてして上から100件表示とかしてたらリソースやばいですよね? もしこれがやばいなら何かいい方法ないでしょうか?
>>926 テキストデータならDBでキーつくっときゃ全く問題ねーと思うが。
928 :
デフォルトの名無しさん :2007/04/28(土) 09:26:27
>>927 レスありがとうございます。
事故解決しました。
929 :
デフォルトの名無しさん :2007/04/28(土) 11:54:49
Java Runtime バージョン 1.6.0_01にバージョンアップしたら ライブカメラが静止画状態にしかならなくて操作もできなくなった どうして? 当方、windowsXP sp2 IE7
>>929 1.6.0_01にバージョンアップしたからだろ
JFrameにFlashPlayer載せるにはどうすりゃいいっすか?
932 :
905 :2007/04/28(土) 14:32:19
-target 1.5でうまくいきました。 javaにもこういう事があるんですね。意外でした。 皆さんレスありがとうございました。
>>932 あるんですね、というか、そうじゃなきゃ困るんだが。
java始めたての者ですが質問があります。 class CHoge { public int a; } があるとして、 { CHoge[] Hoge = new CHoge[100]; } ある関数内でインスタンス化しそのスコープを抜けたらjavaではその領域を 自動で開放してくれるらしいですが、 同じスコープ内でHogeに別の領域を確保したい場合はどうすればいいのでしょうか? { CHoge[] Hoge = new CHoge[100]; // 処理 Hoge = new CHoge[200]; } とかしたらダメだと思うのですが、どうすればいいのか御願いします。
>>934 > ある関数内でインスタンス化しそのスコープを抜けたらjavaではその領域を
> 自動で開放してくれるらしいですが、
解放してくれるのは CHoge[] Hoge のほう。new CHoge[100] はスコープを抜けるだけでは解放されない。
> とかしたらダメだと思うのですが
ダメじゃないよ。
前の場所にはどうしたらアクセスできますか?
別の変数でポイントしておけ(=代入しておくということ)。 どこからもポイントされてないオブジェクトが占めているメモリは GCの際に回収される。
Hoge[] h = new Hoge[100]; とした場合 h[0] = new Hoge; h[1] = new Hoge; ... と代入する必要はないのですか?
あるよ
シャローコピーと参照を勉強しる
941 :
デフォルトの名無しさん :2007/04/29(日) 02:20:48
初心者の僕に教えてくださいな(´・ω・`) 入力した文字列を"YYYY/MM/dd"にしてそれをDate型配列に格納したいのですが どうしたらよいでしょうか? SimpleFormatDateクラスなど調べてもよくわかりませんです><
DateFormatクラスのparse
943 :
デフォルトの名無しさん :2007/04/29(日) 03:26:56
>941 やさしいシャバそのまま?
CではGNUのコーディングスタンダードに従って sample_function のようにアンダーバーで切っているんだけど やっぱりSunのコーディングスタンダードで sampleFunction のように大文字で切ったほうがいい? my_class.sample_function() ってやっぱり変? C、C++、Javaの3つはよく使うから記法を統一させたいんだよ
保守する必要があるなら、その言語のスタンダードに合わせるべきだな。
>>944 統一しない方がいい。
統一させると、標準APIの規則とオレ規則との不一致という問題がついて回る。
947 :
デフォルトの名無しさん :2007/04/29(日) 06:59:44
samplefunction sampleFunction SampleFunction sample_function おっは〜}(:D)| ̄|_
俺公開APIだけコーディングスタイル合わせてる。 privateなメンバは凄い事になってる。 間違いなく保守性は悪いよ。自分の慣れた規則だから読みやすい分楽だが。 javaの規則は冗長になりやすいがやっぱ視認性は上がるよ。 ちゃんと英文法になってればの話だが。
CとJavaでコーディングスタイルを分けるとたまにごっちゃになるんだよね てかGNUのJavaコーディングスタンダードってある?ググっても見当たらない
950 :
デフォルトの名無しさん :2007/04/29(日) 13:49:38
>>949 ボコボコにしてやんよ
∧_∧
( ・ω・)=つ≡つ
(っ ≡つ=つ
/ ) ババババ
( / ̄∪
C/C++はブロック始めで改行。Javaは同じ行。 不等式は左右オペランドとの間に必ず空白を入れる。 メソッドはCは_区切り、JavaはgetValue、C++はGetValueとしておけば あとはまあ大体いいんじゃないかと。 プレフィクスとかそういうんは、宗教的なものを持たず寛容にする方が運用は楽。
> C++はGetValueとしておけば C#?
C系はアンダーバーで Javaは大文字で逝くことにした サンクス てか_ってアンダーバー? アンダースコア? !をびっくりマークと呼ぶオレってアブノーマル?
質問です。 netbeansでswingコンポーネントでGUI作ろうと思ったんですが、 jtextareaで幅を一文字分にしようと思ったら、余分なスクロールバーが出てしまいました。 スクロールバーは使うつもりがないんですが、どうすれば消せますか? netbeansの質問ですみません。
すみません。プロパティのところから変更できました。
アンダースコア
アプレット上にキー入力した文字を、アプレット上に表示したいのですが。 import java.applet.*; import java.awt.*; import java.awt.event.*; /*<APPLET CODE=KeyApp.class WIDTH=250 HEIGHT=250> </APPLET> */ public class KeyApp extends Applet implements KeyListener{ char keychar; public void init(){ addKeyListener(this); } public void paint(Graphics g){ g.drawString(""+keychar,10,120); } public void keyPressed(KeyEvent a){ keychar=a.getKeyChar(); repaint(); } public void keyTyped(KeyEvent a){} public void keyReleased(KeyEvent a){} } これで一応うまくいくのですが、アップレット上にTextFieldなどを追加すると 文字が表示できなくなります。どうすれば入力した文字が表示できるようになるのでしょうか?
文字が表示できないのか、文字入力が受け取れないのか、 はたまた文字と TextField が重なっているだけなのか。
960 :
(^・ω・^;) ◆tsGpSwX8mo :2007/04/29(日) 22:56:10
getDocumentBaseとgetCodeBaseってちゃうの?
ちゃうの
>>958 アプレット上にコンポーネントを追加したら
アプレットがキーフォーカスを取れなくなったとかって話?
TextFieldを追加したらApplet自体はフォーカスを得られないから当然KeyEventが渡らない public void init(){ setLayout(null); TextField tf = new TextField(); tf.addKeyListener(this); tf.setBounds(100,100,50,50); add(tf); } みたくTextFieldでKeyEventが発生したらそれをAppletに渡してやればいい
964 :
958 :2007/04/30(月) 01:07:07
うまくいきました、どうもありがとうございます。 追加したコンポーネントに対してKeyListenerを登録すれば良かったんですね。 これからもよろしくお願いします。
ワガ ナ ハ ゲドウ ショシンシャ コンゴ トモ ヨロシク. 「初心者です。(よろしくおねがいします│わかりません!」と「これからもよろしくお願いします」は止めとけ。
966 :
デフォルトの名無しさん :2007/04/30(月) 02:54:04
やった〜(^o^)v やっと、アナル時計感性。
967 :
おっぱー(^・ω・^;) ◆tsGpSwX8mo :2007/04/30(月) 03:49:13
地球の一年の公転の角度を教えてくだちゃい。 小数第3位ぐらいまで (^・ω・^) ゚ ゚
URL url = new URL(this.tg_url); sb = new StringBuilder(); InputStream is = url.openStream(); byte[] buffer = new byte[this.buf_size]; int i; while ((i = is.read(buffer)) != -1) { if (i != this.buf_size) { byte[] buf = new byte[i]; for (int j = 0; j < i; j++) { buf[j] = buffer[j]; } sb.append(new String(buf, this.charset)); } else { sb.append(new String(buffer, this.charset)); } } return sb.toString().replaceAll("<.+?>", ""); これでリターンされる文字列の中に、たまに??/TD>とかが入るんですが なんでですか? 偉い人教えてください。
return sb.toString().replaceAll("<.+?>", ""); この行書き換えてみたら?
970 :
デフォルトの名無しさん :2007/04/30(月) 05:45:23
おぅ!ありがとうエロい人(´・ω・`)
class Sample49 { public static void main(String args[]) { double dnum = 160.5; System.out.println("身長は" + dnum + "センチです。"); System.out.println("int型の変数に代入します。"); int inum = dnum; System.out.println("身長は" + inum + "センチです。"); } } どこがおかしいですか?精度が落ちてるそうです
>>971 int inum = dnum;
double→intは精度が落ちる可能性がある
てか、そうコンパイラも言ってるんじゃないのかい?
int inum = (int)dnum;
とでもすれば?
973 :
デフォルトの名無しさん :2007/04/30(月) 06:52:12
小数点を表わせるものから 小数点を表わせないものに いれるんだから、精度が落ちるってこと? 大きい箱(double)を小さい箱(int)に入れることは出来ないってこと?
そこでyesと答えると今度は多倍長計算での制度の話をするというネタだろ
>>974 おまっ、そうやって反応して釣られちゃだめだろw
976 :
(^・ω・^;) ◆tsGpSwX8mo :2007/04/30(月) 08:39:39
バッファサイズ単位で文字列化してれば、文字の途中でちょんぎれて 化けることもあるんじゃない?
Font設定なのですが、 private Font font = new Font("HG創英角ゴシックUB", Font.PLAIN, 16); g.setFont(font) とやって実際にdrawString()でフォントを描画しようとすると一瞬動きが固まってしばらくたってから描画がはじまります。 何かロードに時間がかかってるようなのですが解決策ご存じないでしょうか?
>>972 テラdクス
本のとおり打ったのに間違えてるなんて・・
そのコードが書いてある前後の文章を読めばエラーの内容は推測できると思うんだがな "int型の変数に代入します。"なんていういかにもな文章まであるんだし
初心者なんです><;
たしかに初心者スレだけど初心者を言い訳にされてもなぁ
985 :
デフォルトの名無しさん :2007/04/30(月) 19:03:07
web.xmlがゴチャゴチャしてきたので整理したいんですがいい方法教えてください。
なかったことにして一からやり直す
eclipse使ってるならプロジェクトをコンテンツごと削除。 使ってないならtomcatアンインストールしてインストールし直す。 俺ならこうする。が、賢いやり方はweb.xmlを削除して作り直す。
rootからコピペする方法があった。スンマソン。
>>985 なんでごちゃごちゃになるんだ?
いるもんはいるし
いらんもんが残っているのか?
めちゃ初心者の質問失礼します。 キーボードのキーを押したら、 それに対応するSwingのボタンが押され、 それに応じて何らかの処理を行うにはどうしたらいいでしょう?
eclipseの質問してすぐにまともな答えが返ってくるスレはありますか?
>>990 フォーカスマネージャとか絡んできて結構高度な処理になった気がする。
>>991 質問はまともなのか? それによるだろ。
994 :
デフォルトの名無しさん :2007/04/30(月) 21:15:53
UME
サーブレットにモード分けみたいなのを入れてMVCのコントローラ的に使うのってアリですか? 自分一人で開発しています。
996 :
デフォルトの名無しさん :2007/04/30(月) 21:23:34
999ならナナリンはオレ(ンジ)のもの
ヤター997ゲトー!!!
999 :
デフォルトの名無しさん :2007/04/30(月) 21:49:52
w
1000 :
デフォルトの名無しさん :2007/04/30(月) 21:59:31
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。