【初心者歓迎】Java質問・相談スレッド65 Update 1
1 :
誰も立てねぇのかよ、おい :
2005/04/30(土) 17:41:37
なにこのスレタイ ふざけてるの?
3 :
デフォルトの名無しさん :2005/04/30(土) 18:49:37
前スレの988です。 JDKを1.4から1.5に入れ替えてみたのですが結果は同じでした(泣 なにが悪いのかさっぱりです・・・。
5 :
4 :2005/04/30(土) 20:08:48
と思いきやTomcatのバージョンを4.1に落としたら 無事インストールできました。 どうもありがとうございました。
String.formatを使おうとするとエラーが出てしまいます。
前スレが埋まってからここを含めてネタスレが2つほど立ってるけど いつになったら正式な Java質問・相談スレッド66 が立つんでしょう?
>>11 そっちもネタスレでしょ?
書き込みがネタ質問ばっかり。
>12 普通の質問投下して流れを修正すればいいべ。
14 :
4 :2005/05/02(月) 02:14:21
15 :
デフォルトの名無しさん :2005/05/03(火) 18:02:35
javaを始めようと思っています。 なにか初心者で取っ付きやすい、おすすめの参考書などが ありましたらお願いします。
「おいらはJava」 神岡ともなり・昇天まさお共著 \2800
19 :
デフォルトの名無しさん :2005/05/06(金) 15:50:49
Java初心者です。教えてくださいまし。 Javaのappletをロードしているときに、Flashみたいに どの位ロードしているのかを、横のバーグラフみたいので 表示してやりたいのですけれど、どうすればいいのでしょう?
21 :
19 :2005/05/07(土) 21:25:26
>>20 しくしくしく(;-;)
あの"灰色"な画面をしばらく見ているのはいやだぁ。
色を変えるとか、別の画面をロードが終るまで切替えで
出すとかできないの?
22 :
デフォルトの名無しさん :2005/05/07(土) 21:28:30
あの、湯気がたってるコーヒーマークが くるくる回るとか、できないの? (Java VMをいじるかして…)
Flashだって最初のロードの後にデータをロードしてるだけ そのロードにロード中のメッセージを書いてるだけ Javaも同じ 本体を5KB以下におさえるべし
>>19 自分の頭じゃこんなんしか思いつかないです。
LiveConnect使ってるからIEとネスケ以外じゃ動かないと思います。
詳しくは
http://java.sun.com/products/plugin/1.3/docs/ja/jsobject.html を見てください。
誰かもっとスマートに書き直してください。
-- appletTest.java
import java.applet.Applet;
import netscape.javascript.JSObject;
public class AppletTest extends Applet {
public void init() {
JSObject win = JSObject.getWindow(this);
win.call("appletStart()", new Object[0]);
// ここ以降に通常処理
}
}
-- appletTest.html
<html><head>
<script type="text/javascript">
<!--
function appletStart() {
document.all.image.style.visibility = "hidden";
document.all.image.width = 0;
document.all.image.height = 0;
document.all.applet.style.visibility = "visible";
}
// -->
</script>
</head><body>
<img id="image" src="loading.jpg" width=400 height=400" alt="now loading...">
<applet id="applet" code=AppletTest.class width=400 height=400 MAYSCRIPT style="visibility:hidden;"></applet>
</body></html>
25 :
宿題わかんない… :2005/05/07(土) 23:33:45
JAVAの宿題がわかんないのです。 誰か助けてくれませんか?
>>25 必ずリンク先の
>>1 をよく読んで、質問文は分かりやすく書いてください。
それと「誘導されてきました」の一文を付け加えることをお勧めします。
28 :
デフォルトの名無しさん :2005/05/08(日) 01:02:40
すいません。このプログラムでdataに0〜99の値を格納した後、 0〜99の値を順番に表示するようになるはずなんですけれども、 なぜか49までを表示した所でとまってしまいます、 どこがいけないのでしょうか?教えて下さい。 import java.io.*; import java.util.LinkedList; public class Queue { public static void main(String args[]) { int i; LinkedList data; data = new LinkedList(); for (i = 0; i < 100; i++) { data.add(new Integer(i)); } for (i = 0; i < data.size(); i++) { System.out.println(data.getFirst()); data.removeFirst(); } } }
29 :
デフォルトの名無しさん :2005/05/08(日) 01:06:56
>>28 1 data.size()はループの度に評価される。
2 data.removeFirst()でループの度に要素数は減っていく。
なんで、半分のところでループ条件にマッチしてしまう。
二つ目のforループの前に
int dataSize = data.size();
とでもして、forの条件を「i < dataSize」に変えてみ。
31 :
デフォルトの名無しさん :2005/05/08(日) 01:37:23
32 :
デフォルトの名無しさん :2005/05/08(日) 03:27:45
アプレットでタイピングソフトを作ろうと思っているのですが なかなかはかどりません。何かよい参考書、URLがありましたら 教えていただけませんか?
33 :
24 :2005/05/08(日) 06:23:20
> win.call("appletStart()", new Object[0]); win.call("appletStart", new Object[0]); 上じゃ動かない…ってかミスです。
34 :
ぷりん :2005/05/08(日) 09:58:08
import java.applet.*; import java.awt.*; import java.util.*; /* <applet code="TopGum.class" width=300 height=100></applte> */ class Timeroo extends TimerTask { TopGum tg; Timeroo(TopGum tg) { this.tg = tg; } public void run() { tg.i=+ 1; tg.repaint(); } }
35 :
ぷりん :2005/05/08(日) 10:06:38
>>33 の続き
public class TopGum extends Applet
{
int i = 0;
Timer timer = new Timer(true);
Timeroo to;
public void init()
{
to = new Timeroo(this);
timer.schedule(to,500,500);
}
public void paint(Graphics g)
{
g.drawString(String.valueOf(i),50,50);
if(i==10000)
{
String st = "もう限界…";
g.drawString(st,50,65);
timer.cancel();
}
}
}
一万までを表示させるアプレットを作りましたが、なぜか1まで表示して止まってしまいます。どこがいけないのでしょうか?
×tg.i=+ 1; ○tg.i += 1;
37 :
デフォルトの名無しさん :2005/05/08(日) 10:15:14
38 :
ぷりん :2005/05/08(日) 10:16:57
ぅお〜〜〜!! ありがとうございます。おかげでできました!
39 :
19 :2005/05/08(日) 13:36:00
>>24 早速コピーしてコンパイルしようとしたら、次のようなエラーが
でてしまいました。
appletTest.java:1: package netscape.javascript does not exist
そこで最新のjdk(1.5.0_02)にしたら、なななんと、Javaをロード
する時に、どれまでローディングするかを表示するようになりました。
しかも、大きなJavaマークが出て、光線が周りを回ります。
以前のような"灰色"な画面はでなくなったので、嬉しいっ!
# でも、エラーは消えませんでした。どのパッケージを追加
# すればいいのでしょう…??
40 :
デフォルトの名無しさん :2005/05/08(日) 18:28:52
今日、本を買ってきて、 プログラミングの勉強はじめたのですが、 メモ帳でtabキーを押すと8文字インデントされてしまいます。 これを4文字タブにしたいのですが、どうすればいいのでしょうか? あまりにも基本的なことですいません。
いま勉強を始めたなら、メモ帳とか非効率なものを使わずNetBeansでも使いな。
42 :
デフォルトの名無しさん :2005/05/08(日) 19:00:14
クラスの配列の作り方を教えてください。
Class[] c = new Class[5];
44 :
デフォルトの名無しさん : :2005/05/08(日) 20:06:34
JTableの任意のセルにプログラムからフォーカスを置くにはどうすればいいんですか? だれか教えてください。
45 :
デフォルトの名無しさん :2005/05/08(日) 20:12:03
継承のことで質問なんですが、 あるclassファイルを継承するにはそのソースと同じディレクトリにそのclassファイルを置けばいいんですよね? 何故かソースにその継承したいclassのソースを書かないとコンパイルできないんです。。
46 :
デフォルトの名無しさん : :2005/05/08(日) 20:14:00
> あるclassファイルを継承するにはそのソースと同じディレクトリにそのclassファイルを置けばいいんですよね? 「classファイルを継承する」の定義から詳しく。 Java言語の継承とは全く関係ないよな?
48 :
デフォルトの名無しさん :2005/05/08(日) 20:16:39
49 :
デフォルトの名無しさん :2005/05/08(日) 20:19:56
50 :
デフォルトの名無しさん :2005/05/08(日) 20:23:31
>>46 すいません、指定していませんでした。指定しないと駄目なんですかね?
>>49 継承にかかわらずコンパイルに必要なクラスを実装しているclassファイル
もしくはソースファイルがコンパイラから参照可能な状態になっている
必要がある。詳しくはjavacのドキュメントを参照。
>>47 例えばABC.classを継承したいならソースで class ABC2 extends ABC{・・・・・}と書くみたいなことです。
53 :
24 :2005/05/08(日) 20:28:21
>>39 コンパイルするにはCLASSPATHにplugin.jar もしくは jaws.jar のどちらかを追加してください。
54 :
デフォルトの名無しさん :2005/05/08(日) 20:29:03
55 :
デフォルトの名無しさん : :2005/05/08(日) 20:36:46
>>47 指定していなくてももちろん大丈夫。
あとは、親クラスのファイルがどこにあるのかが問題。
子クラスと同じディレクトリ?
ちがうならクラスパスの設定が必要。
あとは、大文字小文字とか間違ってないですよね?
>>49 >
>>47 もろjava言語の継承ですwあれ?スレ違い?
ネタにしか見えんので、このスレで構わん。
親クラスと継承するクラスが同じパッケージにないなら、同じディレクトリに置いたらダメ。
ま、初心者はちゃんとEclipseなりNetBeansなり、IDE使えってことだ。
58 :
40 :2005/05/08(日) 21:21:48
すいません。 初めて、プログラミングの勉強始めたものですが、 とりあえず、今日買ってきた本1冊は、 本のとおり「メモ帳」で書いています。 どうしても8文字タブが気に入らないので設定を4文字にしたいのですが、 どうすればいいのでしょうか?
59 :
デフォルトの名無しさん : :2005/05/08(日) 21:31:00
>>58 メモ帳はできるか不明です。
秀丸を使った方がいいですよ。
Vectorかあたりにあります。
>>58 ・Microsoftに抗議のメールを書いて、受け付けられるまで何年でも待つ。
・埒があかないので自分でメモ帳を作る。
・他のエディタを使う。
・Eclipse やら NetBeans やら JBuilder やらを使う。
どれでも好きなのをどうぞ。
つうか、メモ帳でソース書いてjavacでコンパイルなんて、Javaに慣れてから勉強すれば済むこと。 おとなしくNetBeans入れて勉強しれ。 初心者にはEclipseより使いやすくていい。 文法エラーはエディタ上に表示されるからくだらん入力ミスで悩まされることもない。 おなじディレクトリにないと継承のコンパイルができないとか、バカな質問することもないし。
メモ帳→EmEditor(free)→xyzzxywy??→geditな俺は変態ですか?
>>28 import java.io.*;
import java.util.LinkedList;
public class Queue {
public static void main(String args[]) {
LinkedList data = new LinkedList();
for (int i = 0; i < 100; i++) {
data.add(new Integer(i));
}
for (Iterator i = data.itarator(); i.hasNext(); ) {
System.out.println(data.nextItem());
}
}
}
QueueってインターフェースはコアAPIにあるから あまりつかわんほうがええ
みなさんってどうやってjavaの勉強しましたかぁ?? そこらへんに売っている本はjavaの基本的な事しか書いてないですよね? でもjavaって実際、初めからあるclassのimportでつくっていきますよね? おまけにclassもたくさんありますよね? あの大量のclassから自分の使いたいクラスを探すのって・・・ みなさんはどうやって自分の使いたいclassを探し当てるんですか? 教えてくださぁ〜い
生まれたときから使えた。 問題ない。 ま、Javaのクラスなんて、20個くらい知ってればあとは応用。
68 :
40 :2005/05/09(月) 00:43:06
>>59 >>61 >・他のエディタを使う。
>・Eclipse やら NetBeans やら JBuilder やらを使う。
メモ帳が使える代物じゃないということはわかりました。
本には上記のようなことが書いていないので、自分で調べた感じだと
秀丸は高機能エディタみたいな感じ?
NetBeans、JBuilderは開発環境とあるのですが、
これらにはエディタ機能+何かがついている感じ?
自分はSDKをダウンロードして
「エディタ(メモ帳)とDOS窓で命令」で勉強するものだと思っていたのですが、
netBeansとはどんなものなんでしょうか?
単体でGUIが作れてコンパイルが出来てエラー行チェックができて、一行単位での実行ができて、 おまけにjarファイルのビルドが出来てしまうアプリケーションの事だよ>netbeans
71 :
40 :2005/05/09(月) 01:23:41
8文字タブを4文字タブにしたいということから 話が発展してしまいましたが、、 自分はJAVAはおろか、プログラミング自体が始めてで、 、サーブレット/JSPが何かもわからない初心者でも 上のような機能満載(?)のツールを使っていいのでしょうか? リンク先の 「IDE4.0の使用方法>>プロジェクトの設定>>IDEの基礎概念」 と見てみてもよくわからない用語がいっぱいでよく理解できないので、 もう一冊本を買ってこようと思います。 今持っているのは「JAVA言語プログラミングレッスン(上)」 なのですが、この本にはIDEのことは触れられていませんでした。 統合開発環境を使って勉強するJAVAのお勧めの本を教えてください。
>>71 > 上のような機能満載(?)のツールを使っていいのでしょうか?
別に構わんのでは?
PCっつか、Windowsの使い方とかの勉強も一緒にしたいなら話は別だけど。
> 統合開発環境を使って勉強するJAVAのお勧めの本を教えてください。
使いこなす必要が無い(コンパイルして実行できれば良いだけ)なら本は要らないと思われ。
初心者だからこそ機能満載が要るんだよ。 とりあえずダウンロードして、適当に使ってみれ。 使うメニューは「新規プロジェクト」「新規ファイル」「その他を実行 | xxxを実行」だけでいいから。 それと、その本はクラスのこととかも触れてないからJavaの勉強にはならんね。 Eclipseの本が何冊か出てたけど、勧めれるほどの本はなかった。 NetBeansの入門本はないね。3.6の本はあるけど、使い方違うし。
74 :
40 :2005/05/09(月) 03:28:42
親切にご指導ありがとうございます。 とりあえず、 統合開発環境とやらを導入してみます。 この板にかきらず、2chでは馬鹿にされる資格ですが、 自分は、秋の基本情報を取りたいので、 基本情報のJAVAの問題が解けるようになりたいんです。 クラスのこととかは「プログラミングレッスン(下)」の方に なるはずで、こちらも買う予定です。 この本2冊で、試験問題はこなせるようになりますか? スレ違いでごめんなさい。
75 :
デフォルトの名無しさん :2005/05/09(月) 03:47:37
76 :
19 :2005/05/09(月) 03:51:25
>>53 ありがと!!
コンパイルできました。
でも、起動すると次のようなエラーが出てJavascriptが動いているか
確認できません。(;-;)
java.security.AccessControlException: access denied (java.io.FilePermission backXXX.gif read)
appletviewerではアプレット動くのですけれど。。
>>74 基本情報は、最初の目標としてはいいと思うよ。
資格をとるためじゃなくて、力をつけるために勉強するなら、かなりいい勉強になるし。
Javaの問題は知らないからなんとも。
78 :
デフォルトの名無しさん :2005/05/09(月) 04:17:25
79 :
19 :2005/05/09(月) 04:27:07
やっぱり、javascriptの方もダメみたいです。(;-;) appletviewerで動いたのは、JSObjectのところをコメントしてたからみたい…。コメントを外すと、appletviewerがJSObjectがないと叱ってきます。 Java/applet% javac -classpath /usr/local/jdk1.5.0_02/jre/lib/plugin.jar appletTest.java -Xlint:deprecation Java/applet% appletviewer appletTest.html java.lang.NoClassDefFoundError: netscape/javascript/JSObject at appletTest.init(appletTest.java:10) at sun.applet.AppletPanel.run(AppletPanel.java:373) at java.lang.Thread.run(Thread.java:595) JSObjectのところのコメントをつけてコンパイルしたものをブラウザから見ようと 思うと、java.io.FilePermissionでエラーになります。(appletviewerは動くのに) java.security.AccessControlException: access denied (java.io.FilePermission backXXX.gif read) うううううう…。(;_;)
80 :
19 :2005/05/09(月) 04:27:55
ソースはこんな感じですぅ。 import netscape.javascript.*; import javax.swing.*; import java.awt.*; import java.net.*; import java.awt.event.*; public class appletTest extends JApplet { public void init() { JSObject win = JSObject.getWindow(this); win.call("appletStart", new Object[0]); // ここ以降に通常処理 getContentPane().add(new JLabel( "Hello! Swing World", new ImageIcon(getImage (getDocumentBase(), "back511.gif")), JLabel.CENTER)); } } class WindowEventHandler extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } }
で、JSObjectのあるjarは見れるようにしてんの?
82 :
19 :2005/05/09(月) 05:52:46
java.security.AccessControlException: access denied (java.io.FilePermission XXX read) のエラーが出る時は、JSObjectの行はコメントしてあるので、関係ないと思います。 だから、問題は2つあるようです。 - アプレットを動かすときに、java.security.AccessControlException: access denied で動かない。 - JSObjectを参照するとjava.lang.NoClassDefFoundError: netscape/javascript/JSObject で動かない。 > で、JSObjectのあるjarは見れるようにしてんの? ブラウザでappletで動かす時に、どうしていすればいいのでしょう?
83 :
デフォルトの名無しさん :2005/05/09(月) 06:12:54
84 :
デフォルトの名無しさん :2005/05/09(月) 06:31:02
85 :
19 :2005/05/09(月) 08:05:29
> java.security.AccessControlException: access denied (java.io.FilePermission XXX read)
> のエラーが出る時は、JSObjectの行はコメントしてあるので、関係ないと思います。
> だから、問題は2つあるようです。
>
> - アプレットを動かすときに、java.security.AccessControlException: access denied
> で動かない。
>
> - JSObjectを参照するとjava.lang.NoClassDefFoundError: netscape/javascript/JSObject
> で動かない。
何だか分かりませんが、両方とも突然解決してしまいました。^-^;
どうして解決したのか、全然分かりません。(でも、リブートはしました)
でもjavascriptで指定しているイメージがでません。次のような「アクセス権はfalse」
というメッセージがでますけれど、これと関係しているのでしょうか?
liveconnect: アプレットのURLは
http://xxxx.xxxxx.xxxx, アクセス権はfalseです。
liveconnect: JSObject::call: 名前=appletStart
liveconnect: アプレットのURLは
http://xxxx.xxxxx.xxxx, アクセス権はfalseです。
# それともアプレットが小さ過ぎて、ロードが早く終ってしまい見えないだけなの
# でしょうか?
86 :
デフォルトの名無しさん :2005/05/09(月) 08:23:28
87 :
19 :2005/05/09(月) 10:33:25
> でもjavascriptで指定しているイメージがでません。次のような「アクセス権はfalse」
> というメッセージがでますけれど、これと関係しているのでしょうか?
>
> liveconnect: アプレットのURLは
http://xxxx.xxxxx.xxxx, アクセス権はfalseです。
> liveconnect: JSObject::call: 名前=appletStart
> liveconnect: アプレットのURLは
http://xxxx.xxxxx.xxxx, アクセス権はfalseです。
リブートして再度アクセスしましたら、Javascriptでイメージをロードしました。
先ほどは既にJavaがロードされていたため、Javascriptが動作する暇がなかった
ようです。
なぜ全て動作するようになったのか分かりませんが、今は全て動作しています。^-^
ありがとうございました。
つうか、あげんなボケと。 山田の標的になるだろが。 あげるんなら、ネタスレも一緒にあげとけと。
(´・ω・) カワイソス
Charポインタ型からChar型に変換するにはどうすればいいんですか?
ネタスレにふさわしいネタ質問でつね
ごめんなさい;; 質問するスレ間違えました;; 逝ってきます。。
リストhogelistに対してある処理をしたいんですが、その処理の手法が2種類あるとして 各手法を別々のクラスで実装して、簡単に使い分けられるようにしたいのですが、 どのように実装すべきでしょうか。 インターフェースSyuhouで抽象メソッドsyoriを宣言して、サブクラスSyuhou1と Syuhou2で各々の手法を使ったsyoriを定義して、 Syuhou s1 = new Syuhou1(); Syuhou s2 = new Syuhou2(); hogelist2 = s1.syori(hogelist); というのを考えてはいるのですが、できればインスタンスを作らずに、 Syuhou1.syori(hogelist)と、抽象クラスの静的メソッドとして実装したいのです。 でもそれでは手法1と手法2で処理を行うメソッドをsyoriと統一する意味がないのかなと…
不順な目的をかなえる方法はない 静的メソッドでやるなら2つ作ればいいんじゃね
>Syuhou1.syori(hogelist) ^ 既にこの時点でインターフェースを実装した意味が全く無いのだが ストラテジーパターンみたいな事がやりたいっぽく読めたんだが なにか静的メソッドである必要性があるのか?
96 :
ぷりん :2005/05/13(金) 20:20:49
今アプレットで、ウィンドウサイズを変えても中心に図形がくるようなものを作っています。 import java.applet.*; import java.awt.*; /* <applet code="Diii" width=200 height=200></applet> */ public class Diii extends Applet { public void paint(Graphics g) { Dimension d = getSize(); int x = d.width / 2; int y = d.height / 2; int r = (int)((d.width < d.height) ? 0.4 * d.width : 0.4 * d.height); g.setColor(Color.red); g.drawOval(x-r y-r 2*r 2*r); } } これのDimension d = getSize();をペイントの中から外して、ペイントの前に入れるとDimensionが0になってしまいます、何故ですか?
多分インスタンスの時点では、Appletが表示されて無い為 大きさが設定されてないのだと思う。
98 :
させそ :2005/05/15(日) 11:46:36
画像1と画像2がぶつかったら、画像2が消えるようにしたいのですが、どのようにすればいいのですか?ずっと考えたのですがわかりません。画像1・2のサイズは50×50です。
>>98 画像1と画像2がぶつかったことを判定したら、画像2を表示させないようにしたらいいです。
JNIを使うプログラムを、jarファイルで他人に配布したいと考えています。 .so(.dll)ファイルと、.classファイルをまとめてjarに格納したいんですが、 LD_LIBRARY_PATHとか -Djava.library.pathをできるだけ設定せずに、配布先が java -jar hogehoge.jar だけで共有ライブラリもリンクできるようにするスマートな 方法はありませんでしょうか?
Windowsならカレントディレクトリ見てくれるけど、Linuxとかだと ライブラリパス設定されてるところにおかないとだめだったような インストーラがコピーしてくれるとか環境変数取得してなんかやるとか
102 :
ぷ :2005/05/15(日) 15:18:18
import java.applet.*; import java.awt.*; /* <applet code="ThreadH.class" width=100 height=100></applet> */ class Threadt extends Thread { ThreadH th = new ThreadH(); public void run() { try { while(true) { th.i += 1; Thread.sleep(200); th.repaint(); } } catch(InterruptedException ex){} } }
103 :
ぷ :2005/05/15(日) 15:20:56
>>102 の続き
public class ThreadH extends Applet
{
int i;
public void init()
{
i = 1;
Threadt tt = new Threadt();
tt.start();
}
public void paint(Graphics g)
{
g.drawString(String.valueOf(i)
50
50);
}
}
とやったのですが、アプレットを実行すると表示が1から進みません。どうしたらいいのでしょうか?
面白いコードだな インスタンスの図をかいてみるといいよ
105 :
ぷ :2005/05/15(日) 15:49:48
import java.applet.*; import java.awt.*; /* <applet code="ThreadH.class" width=100 height=100></applet> */ class Threadt extends Thread { ThreadH th; Threadt(ThreadH th) { this.th = th; } public void run() { try { while(true) { th.i ++; Thread.sleep(1000); th.repaint(); } } catch(InterruptedException ex){} } }
106 :
ぷ :2005/05/15(日) 15:50:32
public class ThreadH extends Applet { int i; public void init() { i = 1; Threadt tt = new Threadt(this); tt.start(); } public void paint(Graphics g) { g.drawString(String.valueOf(i) 50 50); } } 見直して直したら動いたのですが、表示される数字がたまに一つ飛んだりします。これはしょうがないのでしょうか?
よーくコードみてごらん iをカウントアップしてるタイミングと描画されるタイミングは並列だよ 1・repaintで描画を依頼 2・i++ 3・描画 というタイミングがあるでしょ
108 :
デフォルトの名無しさん : :2005/05/15(日) 17:09:48
簡単な質問でごめんなさい。 あるフォルダ以下を 別のフォルダにコピーするにはどうすればいいんでしょうか?
110 :
ぷ :2005/05/15(日) 22:22:10
>>107 カウントアップとrepaintを並列でやらずに、別々にやれば、表示が飛ぶことはなくなりますか?
このスレッド分けてる方式だとrepaintは必ず並列になるよ AppletをJAppletにしてSwingUtilities使えば楽チンだな AWTベースにこだわるなら無理だが、もう10年前の話だしな>Applet
112 :
デフォルトの名無しさん :2005/05/16(月) 10:43:01
>>112 Webアプリケーションのデプロイの方法が根本的に違うぞ。
ここで一から説明するのは気が遠くなりそうだから、入門書の
一冊でも買え。
114 :
デフォルトの名無しさん :2005/05/16(月) 10:58:41
了解です。早速 本屋にいってきます!
WEBデザイナー業だけでは食べていけないので、他に副業的なものを(もしくは そちらを本業)しようと考えています。そのために、JAVAとMYSQLを マスターすべきがんばっています。そこでJAVAに関してお伺いしたいのですが、SUNJAVA認定資格のSJC-PとDを取ろうと考えているのですが、デザイナーのフリーランスとして、この二つの資格をとり、少し実務をつめば、お仕事の案件のほうははいってくるでしょうか?
>>115 その路線で資格をとるならSJC-Pと、DではなくWCだな。
資格よりも実務経験、実績が大切。ひとつひとつの仕事の完成度と信頼の積み重ねだよ。
117 :
デフォルトの名無しさん :2005/05/16(月) 11:31:39
状況が詳しくわかりませんが、おそらく入ってこないです! あなたがWEBデザイナーの技術があるのならば 資格よりも、さっさとjava・sqlでサイトなど構築できる技術をつけるべきです 一番重要なのは営業力!ここを重要視するべきです!
>>114 ってか、NetBeans使って勉強すれば、JSPとかサーブレットのコンパイルとか動かし方で悩むことはなくなる。
>>116 ,7 有り難うございます!
ではいちおうサーバーサイドまで(WCということなので)
覚えて、その後実務を重ねれば、まぁ案件はあるということですか?
WCにせよ、資格をとる暇があれば、実務を重ねたほうが良いのですか?
お客様に、資格があれば信用していただけると思ったのですが、
やはり資格の問題の中には、実務に不必要なものが多々あるのでしょうか?
資格なんか気にする顧客はいないね。 というか、資格持ってますとか得意気に言ってしまったら 「資格しか売りがない使えないやつか」 ということがばれる。
>>118 JSPとかサーブレットのコンパイルとか動かし方を知らないままでいいのか?って問題もあるけどな。
>>119 資格なんかより、「実績」というものの重みの方ががはるかに大きいんだよ。
実績さえあれば資格そのものが不要なのがこの業界。
教員免許を持っていても人を教えたことがない、とか
運転免許を持っているだけのペーパードライバーの運転を信用できないのと似ている。
まあ、これから技術を勉強するのなら資格対策は有効だと思うけど。
とりあえず基礎・サーバサイドJava技術を一通り網羅できるから、
漏れや抜け落ちがある程度防げるという程度の意味でね。
>>121 なにも動かせないよりはいい。
動かし慣れれば自然とわかる部分もあるし、ある程度余裕ができてからで充分。
必要になってから勉強すればいいと思われ。
NetBeansよりEclipseの方が普及度、 将来性を考えると良いような気がする。
将来性はどうかな。 Eclipseのいいところは普及度だけだからな。
Eclipseのほうがプラグインが豊富。 デフォルトでCVSクライアント機能がついてるし。 操作性もいい。 NetBeansはキーボードだけで操作できることが少なくて不便だよ
NetBeansにもCVSクライアント機能はついているが?
>>126 デフォルトで、という話なら、NetBeansの方が有利だな。
EclipseはGUIデザイナにしろWebアプリサポートにしろ、プラグインの数は多いけど使い物になるもんがない。
シェアの差はでかいよ。 例えば、商用プロダクトを導入するプロジェクトでアプリサーバ・開発環境などを選定する際に IBMかBEAかで選択することがよくあるが、その場合、普段はEclipseを使っているから、 Eclipseを使えるエンジニアなら確保しやすいから Eclipseベースで使える製品という理由でIBMが選択されるケースがよくある。 まあ、これこそがIBMがEclipseをタダでばらまいた戦略であり、ねらいなのだが。 富士通もEclipseベースの開発環境だし、SAPもしかり。 NetBeans使えても、そういう大規模プロジェクトに入ったときに商用製品に応用が利かない場合が多い。
EclipseにこだわってへぼいGUIつくってたチームならみたことある
WinXPにてTomcat5.5を導入し、インストール完了。 しかし、サービスを開始してもすぐに終了してしまいます。 イベントログを見ても、 「Apache Tomcat サービスは、正常に 開始 コントロールを送信しました。」 ↓ 「Apache Tomcat サービスは、実行中 状態に入りました。」 ↓ 「Apache Tomcat サービスは、停止 状態に入りました。」 を繰り返しています。 Nortonセンセも同居しているのですが、AntiVirusの設定で、javawとtomcat5は すべて許可されています。 以前は動いていたのですが、JVMを1.4.2_08に入れ直した後、起動しなくなり、 Tomcat5も再度JVMのパス設定含めて入れ直しました。 何か見落としありますでしょうか。。。
132 :
131 :2005/05/17(火) 20:42:49
自己調査報告。 Eclipseので、Tomcatプラグイン動かしましたところ、 「このリリースの猫は、Java5.0以降でないとうごかねーぞ」みたいなメッセージが コンソールにでますた。 なので、5.0.30に入れ替えたところ、動作しましたです。 以前動いていたのは、JVM5.0環境だったことを思い出しますた。。。(;´Д`) 回線切って、吊ってお詫び申し上げます。
133 :
デフォルトの名無しさん :2005/05/17(火) 22:16:10
質問させてください エクリスプがエディタみたいなもんだというのは分かったのですが tomcatって何ですか?使い方が分かりません。説明サイトなどありましたら 教えてください。お願いします
134 :
デフォルトの名無しさん :2005/05/17(火) 22:17:46
エクリスプじゃなくて eclipseでした。すいません
j2meのプログラムをブラウザで起動する方法を教えてください。 iアプリは理解しているんですけれど、ezアプリのほうがよくわからなくて。
>136 普通にエミュのメニューから起動するだけじゃなかったっけ? てか、ブラウザって何だ。
138 :
デフォルトの名無しさん :2005/05/18(水) 01:46:34
Swingを使用したアプリを作っています。 JTextFieldに一度設定した文字列を、 実行時にイベントが発生した場合に書き換えたいのですが、再度setText(String)を呼び出しても 文字列が書き換わりません。 何か別の方法があるのでしょうか? ご教授よろしくお願いします。
138です。 自己解決しました。Eclipse3.0.2でVEを使っているのですが、 actionPerformedにsetText()を書いてイベントを発生させても 同時に立ち上がっている画面にはなぜか反映されませんでした。 mainから動かしたらOKでした。すいません。
140 :
136 :2005/05/20(金) 04:05:22
>>137 エミュレータでrunすれば動くんですが、
自分の携帯でアクセスして動かす方法がわからないんです。
docomoの方は成功しているんだけれど、KDDIの携帯からEZアプリを動かせないんです。
そういう状況を解決するための質問が
>>136 というのが信じられん。
ま、auのサイトでも見れ。
142 :
デフォルトの名無しさん :2005/05/22(日) 17:26:37
あるマシンで動くプログラムを別のマシンで動かすと, java.io.InvalidClassException: sun.awt.windows.WFontMetrics; local class incompatible: stream classdesc serialVersionUID = 6931762354969026072, local class serialVersionUID = 6394466458583168202 というメッセージが出ます。 両マシンとも,j2sdk-1_4_2_06 がインストールされてますが,動かない方は JBuilder も入ってます。 初心者で,何で違う sun.awt.windows.WFontMetrics が使われるのか さっぱりわからないのですが,説明してもらえないでしょうか? よろしくお願いします。
143 :
デフォルトの名無しさん :2005/05/22(日) 17:42:01
朝げ
DataInputStream din; int line; din = new DataInputStream(new FileInputStream("入力元ファイル")); while((line = din.read()) != -1) { ; // バイナリ読み込み. } このようにして、指定された入力元ファイル(画像やmidiなどのバイナリ)を読み込むプログラムを作っています。 while文中で具体的なバイナリデータを取得し、それをそのままオブジェクトとして扱うには、どのようにすれば良いのでしょうか。 つまり、ファイルからのデータを配列にでも取得し、それをImageオブジェクトに変換して、画面に表示するようなことをやりたいのです。 現在は、やり方がわからないのでDataOutputStreamのwriteByteメソッドで、読んできたlineをそのまま他のファイルに書き込み、そこへ読みに行くようにしています。 このように中間ファイルを経由せず、直接表示する方法があれば、ご教授お願いします。m(_ _)m よろしくお願いします。
145 :
デフォルトの名無しさん :2005/05/22(日) 18:00:42
>>144 最初質問の意味がわからなかったが
何回かよんいるうちに理解できた
ByteArrayOutputStream使え
146 :
デフォルトの名無しさん :2005/05/22(日) 18:12:15
Hey! You listen! あなたが求める未来を
JavaでLAN上の共有フォルダ内のファイルを参照したいのですが 方法ってないですか? 参照したいファイルがあるホストは何のサーバも立ってない状態で行いたいのですが
148 :
デフォルトの名無しさん :2005/05/22(日) 18:15:09
>>998 So!
必ずたどりつけるはず
素敵な人生の始まり
思ってるより良くなるから
君のためにずっと歌いつづけるから
149 :
デフォルトの名無しさん :2005/05/22(日) 18:16:39
>>147 >何のサーバも立ってない状態で行いたい
プログラム使う方法ではそういう状況はありえません
>>147 new File("\\\\コンピュータ名\\フォルダの共有名\\ファイル名");
じゃだめ?
151 :
デフォルトの名無しさん :2005/05/22(日) 18:34:00
java.net.NetworkInterface--> NetworkInterface nc=NetworkInterface.getByName("hoge_machine_name"); ・・・・ ・・・・ ・・・・
152 :
デフォルトの名無しさん :2005/05/22(日) 18:51:42
>>142 自己レスです。
プログラムが古いバージョンでコンパイルされていることがわかりました。
動くマシンにはそのバージョンもインストールされていました。
失礼しました。
Swingの新しいGUIコンポーネントを作ろうと思っているのですが、 これってLookAndFeelごとに描写クラスを定義しなくてはならないのでしょうか…。 しかしそうすると新たなLookAndFeelを適応しようとしたとき困るような。 LookAndFeelに依存しないように作る方法はありますでしょうか? ご教示お願いします。
UI作るんじゃなくてJComponentを継承して作るのだ protectedなメソッドになってるのだけ注意してみればいい 特にpaint〜メソッド系だな 間違ってもpaintメソッドをいじってはいけない
>>154 おお、JComponentのjavadocに色々載ってました!
有り難う御座いました。
156 :
デフォルトの名無しさん :2005/05/22(日) 22:03:25
getClass()って特殊なメソッドですか? 自作のMyClassにgetClass()というメソッドが無くても MyClass mc = new Parser(); xx = mc.getClass(); ってできますよね?
157 :
デフォルトの名無しさん :2005/05/22(日) 22:03:52
getClass()って特殊なメソッドですか? 自作のMyClassにgetClass()というメソッドが無くても MyClass mc = new Parser(); xx = mc.getClass(); ってできますよね?
158 :
デフォルトの名無しさん :2005/05/22(日) 22:05:01
java.lang.Object
159 :
デフォルトの名無しさん :2005/05/22(日) 22:05:14
java.lang.Object#getClass()
普通にObjectが持ってるメソッド。
162 :
デフォルトの名無しさん :2005/05/22(日) 22:13:04
(゜д゜)ガーン
DOM で新しい要素を作るには Document#createElement() を使えば良いが、 Document そのものを新規で作る場合はいちいち XML を解析しなきゃならんのけ?
165 :
デフォルトの名無しさん :2005/05/22(日) 23:28:23
DocumentBuilder#newDocument() があったな、すまん寝ぼけてた。
みなさまこんばんわ。 すごい分かりにくい質問かもしれませんが、聞かせてください。 例えば以下のような内容なのですが、 変数:性別「男」か「女」 条件:性別が「男」の場合 1.処理「朝起きる」 2.処理「ご飯食べる」 3.処理「男子トイレへ」 4.処理「出勤」 条件:性別が「女」の場合 1.処理「朝起きる」 2.処理「ご飯食べる」 3.処理「女子トイレへ」 4.処理「化粧する」 5.処理「出勤」 このような場合性別による違いは3.4の処理だけで他は一緒ですが、 自分のイメージだとそのままIF文で上のような記述をしてしまいます。 これを上手くまとめれるようなやりかたはないでしょうか? すごく分かりにくいですね・・・(´・ω・`)
168 :
デフォルトの名無しさん :2005/05/23(月) 01:02:13
>>167 ごくごく普通に考えると
同じ処理は共通クラスに書いて
その他の処理はそれぞれこいつ継承したクラスにやらせるという方法
IF−ELSEがいやなら、コマンドパターンでしょうか?
>IF−ELSEがいやなら、コマンドパターンでしょうか? Stateパターンではないのか
これで抽象 1.処理「朝起きる」 2.処理「ご飯食べる」 3.処理「トイレへ」 4.処理「準備する」 5.処理「出勤」
>>167 State Pattern
それ以上のヒントはね
教えてあげないよ
>>168 >>169 >>170 >>171 レスありがとうございます!!
とりあえず、コマンドパターンとstate Pattern両方調べております!!
投げっぱなしジャーマン申し訳ないです・・・
Template Methodパターンというのも調べてみよう。
>>145 どうもありがとうございました、やってみます。
つか、普通に男3、女34をifで切り替えりゃいいじゃん。 普通に考えりゃ男と女以外の条件が増えることもないだろうし。 この程度でTemplateMethodとかStateとかCommandとか使うのは、パターンの乱用かと。 パターンの勉強がしたいならそれでいいと思うけど。
> 普通に考えりゃ
そうしてメンテの工数が膨大になっていく・・
増える予定のない条件や分岐に対応するほうが、メンテの工数が増える。 無用にクラスの数も増えるしね。 いまだにデザインパターン使えば単純にメンテしやすくなる思ってるやつがいるのが意外。
それはメンテを必要としない小規模作り捨てプログラムの話。 君はそういうプログラム作る機会の方が多そうだね。
Stateは使わないだろうな。 この程度のために書くの面倒だし。 処理の複雑さによってはTemplateぐらいは使うかも。
>>179 だから、メンテを必要としない小規模作り捨てプログラムの場合にも
大規模と同じやり方をするのはバカだって話をしてるんだよ。
応用・融通・臨機応変・TPOという言葉を知らないのか?
>>181 何一人でわき道逸れてんだかしらないけど、「最小工数でとにかく動かす方法」じゃなくて
「うまくまとめる方法」を話してるわけなんだが、空気読めてる?
>>182 いつもパターンを乱用するのが最善のうまくまとめる方法なのか?
>>182 は4、5年前のEJB厨を思い起こさせるな・・・
185 :
デフォルトの名無しさん :2005/05/23(月) 11:57:29
なんか質問者の意図を無視して、自演してまで必死で揚げ足取ろうと してる奴が居るんですけど、上げてもいいですかw
"自演"の意味もわからないで、 "自演"と言えば煽れると思っている 恥ずかしい奴がいるスレは ここですか?
男女ならifのほうがうまくまとまるのでは
189 :
デフォルトの名無しさん :2005/05/23(月) 12:07:26
> 自分のイメージだとそのままIF文で上のような記述をしてしまいます。 > これを上手くまとめれるようなやりかたはないでしょうか? 件の質問で作り捨てプログラムだと認識したなら読解能力を疑ったほうが良いと思うよ。
パターンの乱用っつうか、まさにそのパターンを聞いてるのではないのけ? パターンの適用が適切と思えるほどの大きさのサンプルをこんなとこに 持ってくるわけないし。
これだけで作り捨てプログラムじゃないと理解できるやつはエスパーか質問者本人だと思う
パターンを聞きたいなら直接そう聞けば誤解されずに済むのにね
>>191 それ以前に男と女のクラス化をマジ要件と理解する方がトビ過ぎと思われる。
ポリモーフィズムの代表的な説明サンプルの一つだろ。
質問の真意を汲み取るスキル 対客折衝にも必要
195 :
デフォルトの名無しさん :2005/05/23(月) 12:26:04
JAX-RPCとJMSの違いを教えてください。 それから、両方ともトランザクション制御はできますか?
>>194 ココで世迷言を垂れ流している輩は客では無い件
確かにそうだけど、何事にも真摯に向き合って 行かなきゃだめだよ。 そんなんだから業務系は馬鹿にされるんだよ
さっきから読解能力とか質問の真意とか言ってるのは
>>167 ?
199 :
デフォルトの名無しさん :2005/05/23(月) 13:20:12
お願いします。 JAX-RPCとJMSの違いを教えてください。 それから、両方ともトランザクション制御はできますか?
>>199 前者はWebサービスなどで用いられる、XMLデータのやりとりによる呼び出し。
後者はメッセージングによる呼び出し。
後者はトランザクション制御できない、というか非同期呼び出しを行いたい目的のために使う
201 :
デフォルトの名無しさん :2005/05/23(月) 13:44:23
質問です。 JAVAで、ウィンドウズで動くGUIアプリを開発するにはどうしたらいいんでしょうか。 いろいろぐぐってみたんですがvisualcとかVB6とかで作る以外ない?ような気がしてきて 検索キーワードだけでもお願いします・・・
現在の問題点はrepaint()の呼びのstaticに関することと main()を抜けるとsの値がaに戻っていることを僕が 理解できていないことです。 「public static void main」 は変更しないで、 ab → 2秒後 → abc のように表示したいです。教えてください。 次にソースを書きます。
import java.applet.Applet; import java.awt.*; public class str extends Applet { static String s = "a"; public static void main(String[] args) { s += "b"; repaint(); try { Thread.sleep(2000); s += "c"; } catch (Exception e) { s += "d"; } } public void paint(Graphics g) { g.drawString(s, 10, 10); } }
205 :
デフォルトの名無しさん :2005/05/23(月) 13:59:44
>>178 そりゃ使い慣れていなければメンテの工数は減るどころか逆に増えるだろうが
>>202 前スレの方ですか?
とりあえず、アプレットの動きを理解してから考えましょう
アプレットとして起動するなら、main は必要ないですし実行もされません
207 :
199 :2005/05/23(月) 14:29:31
>> 200 ありがとうございます。 JMSはトランザクション制御できないのでしょうか? 非同期処理を行うのですが、スレッドとJMS全てまとめてトランザクションで括ることは不可能なのでしょうか・・・。orz
208 :
デフォルトの名無しさん :2005/05/23(月) 14:30:00
>>202 はいわゆるアプレットケーションという奴でも
つくろうとしているのだろうか
209 :
デフォルトの名無しさん :2005/05/23(月) 14:30:34
java.util.concurrent といえばコンカレント工学
211 :
201 :2005/05/23(月) 14:49:53
ついでといわれるかわいそうなNetBeans JavadeGUIアプリ作るにはさけて通れない道
EclipseにまともなGUIプラグインがフリーで出たらすぐさま不要になる存在だからなぁ
でてないし、それ以外でもNetBeansのいいところは多い 得意な点や不得意なところとかお互いあるしそれはいいんじゃないかな
>でてないし
出てるとは書いてない。
>>213 をもう一度よく読め
>それ以外でもNetBeansのいいところは多い
例えば?
俺はEclipse2.0のころから使ってるけど、フル インストールパッケージが用意されていないのはめんどくさいときがあるね。 標準配布だとプラグイン開発・Java(J2SE)開発・ RCP開発向けそれぞれのパッケージしか用意されていない。 だからJ2EE開発・GUIアプリ開発・モデル駆動開発はそれぞれ別途入れる必要が ある。3.0になって標準のアップデートサイトに多少は登録されたけど、 WTP1.0が公開されたタイミングで全部入りインストーラみたいなのが 用意されてもいい気がする。
NetBeansはJavac使ってるのが利点に働く場合も多いな
すんません教えてください。 マウスイベントの勉強をしてまして GIF画像をポインタにして線を描く という物を作ってるんですが public void mouseDragged(MouseEvent e){ posX = e.getX(); posY = e.getY(); g.drawLine(posX, posY, e.getX(), e.getY()); repaint(); } public void mouseMoved(MouseEvent e){ posX = e.getX(); posY = e.getY(); repaint(); } (repaint の中身はdrawImage、posは現在位置) ってな感じで作ってみたのですが 線は描けてもドラッグ中にGIFが付いてきてくれません dragイベントの中でdrawLineとrepaintを共存させることはできないのでしょうか?
J2SE 1.4 のライブラリ仕様に XPath って入ってる? rt.jar 開けてみると org.w3c.dom.traversal や org.apache.xpath が入ってるんだけど javadoc に記述がないから使って良いものかどうか判断つかないんだが、 「javadoc にない = 非標準」ってことで良いのかな?
XPathが標準APIとしてはいったのは5.0から それまではJXPath使うがよろし
>>220 そーか、サンクス
何で入ってるんだろーとずっと考えていたんだが XSL で XPath 使うもんな。
>172 亀だが敢えて言わせてくれ 「投げっぱなしジャーマン」とはよもやそなた某ゲームシナリオライター儲か。
int[][] i = new int[8][8]; で for(int j=0;j<8;j++)for(int k=0;k<8;k++){ i[j][k]=1; } とするのと for(int j=0;j<64;j++){ i[j/8][j%8]=1; } のどっちが速いのだろう?
224 :
デフォルトの名無しさん :2005/05/23(月) 23:58:19
@AWTの質問です Swingを使わず、AWIのテキストフィールドでIMEモードの自動切り替えは可能でしょうか? JDBCでMS-Accessと接続させるのですが、アプレット上でレコード一覧を表示させる場合 最も一般的な方法はどういったものでしょう。テーブルをそのまま持ってくるようなことは無理ですよね。 リストボックスに並べていくしかないのでしょうか? よろしくお願いします。
225 :
デフォルトの名無しさん :2005/05/24(火) 00:39:40
"Apacheがオープンソース版J2SEの開発プロジェクト「Harmony」を提案"
http://itpro.nikkeibp.co.jp/free/ITPro/USNEWS/20050510/160560/ オープンソース団体Apache Software Foundation(ASF)はJava 2 Standard Edition(J2SE)の
オープンソース版開発を提案した。同団体のGeir Magnusson Jr.氏が米国時間5月6日,Incubator PMC
メンバーに向けたメーリング・リストで「Harmony」プロジェクトについて明らかにしたもの。
同プロジェクトの目的は,J2SE 5の独立したインプリメンテーションを作成し,Apache License v2のもとで
利用可能にすること。コミュニティが開発するランタイム・モジュール(仮想マシンやクラス・ライブラリ)によ
って,ランタイム・コンポーネントを共有できるようにする。そのほか,モジュールの相互操作性を確保する
テスト・スイートも開発する。
同プロジェクトの基本構造のブループリントはWebサイトで確認できる。
「J2SEランタイム・プラットフォームのオープンソース版は明確なニーズがあり,現在,KaffeやClasspathな
ど多数の開発作業が進行している。また,GCJやIKVMのように,Javaバイトコードを実行する手段を提供す
るための取り組みも行われている。これらは健康的で多様な手法を可能にするが,数々の障壁が存在し,
より優れた能力の発揮を妨げている」(Magnusson Jr.氏)
なお米メディアの報道(internetnews.com)によると,米Sun MicrosystemsはHarmonyプロジェクトを歓迎して
おり,「何らかのかたちで参加するかもしれない」(Sun社Java Software担当技術責任者のGraham Hamilton氏)と述べている。
226 :
デフォルトの名無しさん :2005/05/24(火) 00:48:03
jspから***.classでつくったクラスを使うにはどうすればよいのでしょうか? よろしくお願いします。
227 :
デフォルトの名無しさん :2005/05/24(火) 01:23:13
>>223 カレントタイム直タイプで計測してみた(配列添え字2056)
うちのPCスペック:ペン4 jre1.5 メモリ512 実行スレッド優先順位MAX
前者:172
後者:248
以上、計測ってこんな感じでいいの?
>>223 ,227
順次アクセスなので配列をでかくすればでかくするほど遅くなる。
しかしそれはpivot操作をつければだいたい速くなる。
ランダムアクセスだったら結果は異なっていたとおもうが。
そもそも 後者は 添え字で j / 8, j % 8 という処理を行っているので 当然遅い。
1次元配列にした方が速い
>>226 WEB-INF/classesにほりこめ
232 :
デフォルトの名無しさん :2005/05/24(火) 02:54:42
「すべての人のjavaプログラミング」の亀が動き回るプログラムを作っています。 キャベツの絵のあれです。 だれか亀を消すメソッドを教えてください。
kame.clear();
CPUの数を判別する方法を教えてください。
指定したテキストファイルを読み込んで,構造体(クラス)に格納するには どのようなクラスを使用して書けばいいでしょう? 具体的に言うと 食パン 150 安い 卵 100 とても安い 牛乳 250 高い アイス 80 安い のようなtxtファイルを読み込み, public class shopping{ char name; int kakaku; char yasusa; のようなクラスに,それぞれ格納するという感じです.
>>237 execを利用して、cat /proc/cpuinfo
>>236 java.io
java.lang
などなどの中のさまざまなクラスです。
>>236 処理の流れとしては
読み込み → 解析 → 格納
となるよね
(読み込み・解析をどこでするかは適当に)
読み込みには java.io.Reader 関連で
解析は StringTokenizer とかが便利かもしれない
テキストファイルでのデータ管理なら、Properties や DOM について
調べてみるのもいいかもね
242 :
デフォルトの名無しさん :2005/05/24(火) 12:31:42
引数に二つの文字を与えて、その間の文字を全て配列に格納する関数を作りたいです。 例えば Public String[] getBetweenChar(String startChar, String endChar)という関数に 引数("A","Z")を与えると、戻り値にA〜Zまで1文字づつの値が入ったString[]が戻される感じです。 この場合、入力された引数の文字をunicodeのint値に変更し、 forループの開始と終了条件に用いるとともに、その値を再びStringに変換し、 一時的にArryListに格納後、戻り値に渡せばいいのでしょうが、いまいち 文字の変換部分がどうやっていいのかわからないです。助けてください。
HTを考えると、ソフトウェアとしてCPUの数を正確に数えるのは不可能だな。 やはりケースを開けて目視が確実。
>>242 アルファベットに限定するなら、char とか文字コードだとかを
調べるといいと思う
>>243 BIOSを覗けばわかるんちゃう?
JavaだけでBIOSを覗く方法知らないけど。
やっぱCがいるんかいな?
248 :
242 :2005/05/24(火) 14:11:01
>>244 さん
参考になりました。ありがとうございます。
以下のようにしました。
public static String[] getBetweenChar(char startChar, char endChar) throws UnsupportedEncodingException{
List searchChar = new ArrayList();
int length = Character.getNumericValue(endChar) - Character.getNumericValue(startChar);
for(int i = 0 ; i < length ; i++){
searchChar.add(String.valueOf((char)(startChar + i)));
}
String[] retChar = new String[searchChar.size()];
for(int i = 0 ; i < searchChar.size() ; i++){
retChar[i] = searchChar.get(i).toString();
}
return retChar;
}
なぜか 242 に癒された 疲れてるのかな…
>>248 結果の文字列配列のサイズがlengthとしてわかるから、
はじめからそのサイズの文字列配列を用意してそれに入れていけば
ArrayList使わなくていいんじゃない?
>>248 それだとendCharが結果に含まれない希ガス
252 :
242 :2005/05/24(火) 14:52:18
>>249 さん
お疲れ様です。
>>250 さん,
>>251 さん
たしかにその通りですね。[length + 1]のインデックスで
Srting配列を定義するように直します。
ありがとうございます。
カタカナも対象文字にするにはやっぱりunicodeですよね・・・
254 :
242 :2005/05/24(火) 15:26:19
Unicode版もできました。みなさんありがとうございます。 intにキャストするだけなんですね・・・拍子抜け(^^; public static String[] getBetweenChar(char startChar, char endChar) throws UnsupportedEncodingException{ List searchChar = new ArrayList(); int length = (int)endChar - (int)startChar + 1; String[] retChar = new String[length]; for(int i = 0 ; i < length ; i++){ retChar[i] = (String.valueOf((char)((int)startChar + i))); } return retChar; }
255 :
デフォルトの名無しさん :2005/05/25(水) 23:36:54
tomcat5.5の設定はどうやったらいいのでしょうか? jdk1.5.0_3 tomcat5.5.9です。 起動はできるのですが。exampleが表示されません。 環境変数は JAVA_HOME C:\Program Files\Java\jdk1.5.0_03 CATALINA_HOME C:\Program Files\Apache Software Foundation\Tomcat5.5 PATH C:\Program Files\Java\jdk1.5.0_03\bin CLASSPATH %JAVA_HOME%\jre\lib;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet-api.jar;%CATALINA_HOME%\common\lib\jsp-api.jar;%CATALINA_HOME%\webapps\wl_jsp\WEB-INF\classes です。
256 :
デフォルトの名無しさん :2005/05/25(水) 23:49:06
お、お、お、女!!!
258 :
デフォルトの名無しさん :2005/05/26(木) 00:37:43
汎用的なグラフ構造を、StackOverflowErrorを出さずにシリアライズしたい。 1. 全ノードを管理するコレクションクラスを定義 2. コレクションクラスに独自のwriteObject/readObjectメソッドを定義 この方法は知っているのだが、このようなノード集合に被せる管理クラス の用意無しに、ノードクラスのみでシリアライズできる方法はある?
exampleはなくなったんじゃないの?と噂を無責任に書いてみる。 でも、CLASSPATHは設定しないほうがいいと思うな。 実際の開発じゃ必要ないし、影響範囲が広すぎてはまることがあるし。 コマンドラインでやるならantとかmaven使うだろうし、そういうの使えないならIDE使えばいい。 NetBeans4.0なら設定いらずでTomcat5.0使えるし、英語版でいいならNetBeans4.1がTomcat5.5.7がバンドルされてる。
>255 単なる「example」ってずいぶん前からなくなってたような気が…… Tomcatに8080でアクセスできるようにしておいて、localhost:8080/でトップ開いて そこからのリンク(jsp-samplesとかあったはず)たどってもダメかいな?
スマソ ×jsp-samples ○jsp-examples
ってーかweb.xmlかserver.xmlの設定じゃねーの
トップから jsp-examples servlets-examples 両方リンクあるだろ
264 :
デフォルトの名無しさん :2005/05/26(木) 22:25:49
NetBeans4.0 をインストールしたいのですが、 netbeans-4_0-bin-windows-ja.exe をダウンロードして起動すると、 「適切な JVM が見つかりませんでした。-is:javahome <JAVA HOME DIR> オプションを使用してプログラムを再び実行してください。」 とでてインストールを進めることができませんでした。 そこで、MS-DOSプロンプトから netbeans-4_0-bin-windows-ja.exe -is:javahome "C:\Program Files\Java\jdk1.5.0" と入力してもう一度実行したのですが、同じエラーが出てしまいました。 それから JDK を Update 3 にしたり、インストールする場所を C:\Java\jdk1.5.0 に変えたりしてみたのですが、結果は同じでした。 どうすれば Netbeans4.0 をインストールできるのでしょうか?
265 :
デフォルトの名無しさん :2005/05/26(木) 22:28:48
>>264 ホントにJDKインストールしたなのかなぁ
JREっぽいんだけどそのエラー
ちなみにコマンドで
>java -version
とかはできるの?
Filewriter fw = new Filewriter("hoge.txt"); fw.write("hogehoge"); fw.close(); このように書いたとき、hoge.txtに最初に文字列があっても hogehogeに書き換えられてしまいますが、 最初からhoge.txtの文字を消さずに hogehogeを追加するにはどのような方法をとればいいのでしょうか? よろしくお願いします。
new FileWriter("hoge.txt", true)
268 :
264 :2005/05/26(木) 22:46:19
>>265 java -version はできました。
今は Update 3 から戻したのでこんな感じになりました。
>java version "1.5.0"
>Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
>Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)
javacはある?
270 :
デフォルトの名無しさん :2005/05/26(木) 22:55:28
いやだからさ、JREじゃないのか?と聞いているんだが・・・ その5.0でテキストエディタ使って開発できていたのか?できるのか?
271 :
264 :2005/05/26(木) 22:59:09
>>269-270 今まではテキストエディタで作っていたので前から javac はできました。
一応今もう一度試してみましたが javac は正常に動きました。
272 :
デフォルトの名無しさん :2005/05/26(木) 23:07:37
わかった 「適切な JVM が見つかりませんでした。-is:javahome <JAVA HOME DIR> オプションを使用してプログラムを再び実行してください。」 >netbeans-4_0-bin-windows-ja.exe -is:javahome "C:\Program Files\Java\jdk1.5.0" ではなく netbeans-4_0-bin-windows-ja.exe -is:"C:\Program Files\Java\jdk1.5.0" netbeans-4_0-bin-windows-ja.exe -is "C:\Program Files\Java\jdk1.5.0" netbeans-4_0-bin-windows-ja.exe -is="C:\Program Files\Java\jdk1.5.0" のどれか試せ
273 :
264 :2005/05/26(木) 23:17:56
>>272 3つ全部試してみましたが、だめでした。
オプションに頼らずに環境変数書いてみたら
275 :
デフォルトの名無しさん :2005/05/26(木) 23:21:25
>>264 JDK5.0対応しているの?NetBean4.0(日本語版?)
276 :
デフォルトの名無しさん :2005/05/26(木) 23:24:36
NetBeans installer fails with "Suitable JVM cannot be found". Why? The installer needs a full JDK installation to run. If you get this error, you probably don't have the required JDK installed. Note that you need the full Java Development Kit (JDK). The installer won't run on Java Runtime Environment (JRE). The workaround is to install the full JDK before installing NetBeans, or to install NetBeans bundled with the JDK. In case you have the JDK installed, but the installer fails to recognize it, try to run with the -is:javahome option. Applies to: NetBeans 4.0, 4.1 ; Platforms: All ; 大きなお世話だが、その調子では今後NetBeansに関する疑問が出ても自己解決するまで時間がかかるだろう Eclipseにしとけ つーかNetBeansって専用スレなかったか?
277 :
264 :2005/05/26(木) 23:25:49
環境変数は JAVA_HOME C:\Program Files\Java\jdk1.5.0 Path C:\Program Files\Java\jdk1.5.0\bin を設定してあります。
278 :
デフォルトの名無しさん :2005/05/26(木) 23:27:50
JAVA_HOME C:\Program Files\Java\jdk1.5.0 Path C:\Program Files\Java\jdk1.5.0\bin コレがさっきから臭い これってJRE用でない?普通・・・ C:\Program Files\Java\jdk1.5.0\bin の中に たとえばjavac.exeはないだろう
デマも飛び出して現場はさらに大混乱
282 :
デフォルトの名無しさん :2005/05/26(木) 23:32:44
じゃぁいったいどうなっているんだ javac.exeでPC内検索汁
283 :
デフォルトの名無しさん :2005/05/26(木) 23:34:47
>>281 デフォルトインストール構成は、278の言うとおりだjavac.exeだよjava.exeじゃないよ
最近、WindowsUpdateでJRE入れ替わったからなあ・・・
285 :
264 :2005/05/26(木) 23:40:39
286 :
デフォルトの名無しさん :2005/05/26(木) 23:41:32
>>264 JDK5.0対応しているの?NetBean4.0(日本語版?)
めんどくさいときはjdkとnetbeans一緒になったやつで入れたらどうか
288 :
デフォルトの名無しさん :2005/05/26(木) 23:42:14
イライラするなぁもう
289 :
デフォルトの名無しさん :2005/05/26(木) 23:42:39
>>288 おれはさっきからおまえにいらいらしてるよ。
291 :
デフォルトの名無しさん :2005/05/26(木) 23:44:56
292 :
デフォルトの名無しさん :2005/05/26(木) 23:45:34
293 :
デフォルトの名無しさん :2005/05/26(木) 23:48:44
/\ /! \ マウスがありません  ̄ ̄ ̄ ̄
294 :
デフォルトの名無しさん :2005/05/26(木) 23:51:58
無視すんなや どうしても無視するのであれば ぬるぽ
295 :
264 :2005/05/27(金) 00:22:55
>>286 NetBeans4.0 は JDK5.0 に対応しています。
>>276 そこは質問する前に一応読みました。
>>287 バンドルは前にインストールしようとしましたが、同じようなエラーが
出たと思います。
インストーラーを消してしまったので内容は確認できませんが・・・。
でも土日にバンドルをもう一度ダウンロードして試してみたいと思います。
明日早いのでもう寝たいと思います。
答えてくれた皆様どうもありがとうございました。
後日また質問したときもよろしくお願いします。
バンドル版で問題でたのみたことあるな ユーザー名に2バイト文字使っていたりするとデフォのディレクトリでダメとか
297 :
デフォルトの名無しさん :2005/05/27(金) 07:24:07
Javaの基礎を一通りやったので、
JSP&Servletを勉強してみようと思います。
一点ご相談なのですが、
TECHNICAL MASTER はじめてのJSP&サーブレットプログラミング改訂版 Tomcat5+MySQL4対応 テクニカルマスターシリーズ
http://www.amazon.co.jp/exec/obidos/ASIN/479800734X/ これを購入しようと思ってます。
しかし、この本はTomcat5,MySQL4を使用してます。
ちまたの本をみると、Tomcat4で解説してるのが主流のようです。
Tomcat5で勉強することの弊害ってありますか?
現場でも、Tomcatを使う場合はTomcat4が主流なのでしょうか?
Tomcat4とTomcat5は大幅に変わっているそうなので、不安です。
>>297 勉強しているうちに 5 が主流になるという予想。
その本をみながらTomcat4で学習する、とトンデモを言ってみる Tomcatの解説なんて、ぐーぐる先生でいくらでも集まるし 両方の違いも分かっていいと思った
慣れないうちは本と同じ環境で書いたほうが余計な手間が少なくて済む 特に5になると設定ファイルの場所が変わるから。 4で勉強しておけば、5に移行するのは簡単だから安心して。 結論:Resinをつかえ
301 :
デフォルトの名無しさん :2005/05/27(金) 10:13:34
netbeansを使ってるのですが、インストールしても勝手に日本語になってし まいます。英語のまま使いたいのですが、何か方法はないのでしょうか?
英語版をダウンロードする
303 :
デフォルトの名無しさん :2005/05/27(金) 14:33:01
netBeans4.1というのが、一番新しいバージョンらしいのですが、実は3.6が 欲しいです。sun.comに行ってみて見たんですが、配信してません。どこかで、 手に入るでしょうか?
NetBeansのサイトから直におとすがよろし
305 :
255 :2005/05/27(金) 15:49:29
>>262 そのweb.xmlとserver.xmlをTomcat5.5フォルダのどこかに作るんですよね?
javaでuidの取得ってどうすれば出来ますか?
uid? UserID?
>>306 Java Preferences API
309 :
255 :2005/05/27(金) 18:50:22
JSP ExamplesとSevlet Exampleがどう表示されればいいんですか? HTTPステータス 404-/jsp-examples/ type ステータスレポート ・・・ と出ました
そういうインストールしてないってことじゃないの トップも出ないんでしょ?
311 :
デフォルトの名無しさん :2005/05/27(金) 21:52:38
Javaで一つ目の引数に生年月日(yyyy/mm/dd hh/mm/tt) 二つの目の引数に没年月日(yyyy/mm/dd hh/mm/tt) 二つ目の引数がnullの場合は現在の日付と時間を代入 これらを計算してして現在および没年の年齢をだしたいのですが yyyy/mm/ddだけならなんとかできるのですが時間まで入ると どうしてもうまいきません 教えてください
>>305 そのレベルで悩むなら、まずNetBeans使ってサーブレット/JSPの勉強して、概要理解してから素のTomcatの設定試せば?
>>311 Calendar birth = ...;
Calendar death = ...;
Calendar mover = (Calendar)birth.clone();
int yy = getDiff(Calendar.YEAR, mover, death);
int mm = getDiff(Calendar.MONTH, mover, death);
int dd = getDiff(Calendar.DAY_OF_MONTH, mover, death);
int h = getDiff(Calendar.HOUR_OF_DAY, mover, death);
int m = getDiff(Calendar.MINUTE, mover, death);
int s = getDiff(Calendar.SECOND, mover, death);
int ms = getDiff(Calendar.MILLISECOND, mover, death);
private static int getDiff(int field, Calendar mover, Calendar death){
int d = 0;
while(! mover.after(death)){
d ++;
mover.add(field, 1);
}
mover.add(field, -1);
return d - 1;
}
↓
DEATH: 2061/02/21 21:23:03.213
BIRTH: 1974/11/07 07:03:45.213
DIFF : 86/03/14 14:19:18.000
>>313 おいおい
ちょっとそれはひどすぎないか?
カレンダーは個人的には日付じゃなくて「日付データ計算機」 だと思っているので誕生日・死亡日ごとに用意するのを見てる ともにょる。 1つ用意して、扱いたいDateをsetTimeしては必要なフィールドを getするのが好み。
>>314 ではスマートなコードをおながいします。
317 :
デフォルトの名無しさん :2005/05/28(土) 09:14:53
>>316 public static void main(String[] args){
DateFormat df =
new SimpleDateFormat("yyyy/mm/dd hh/mm/tt");
System.out.println(df.parse(args[0]));
if(args[1] == null){
System.out.println(new Date());
} else{
System.out.println(df.parse(args[1]));
}
}
> if(args[1] == null){
閏年計算の再発明をせず、閏年を考慮した年・月・日の日付の差を出そうと
思ったら
>>313 のように Calendar の各フィールドを上からくるくる回すのが
一番手っ取り早いと思うが。期間計算は業務で使うので他に良い方法が
あったら教えてくれ。
//これでどぅだろう。 Date date = df.parse(args[1]); if(date == null) System.out.println(new Date()); } else{ System.out.println(date); }
>>321 getTimeInMills()でlong型に変換してから計算する。
Calendar birth = ...; Calendar death = ...; Calendar mover = (Calendar)birth.clone(); int yy = getDiff(Calendar.YEAR, mover, death); int mm = getDiff(Calendar.MONTH, mover, death); int dd = getDiff(Calendar.DAY_OF_MONTH, mover, death); int h = getDiff(Calendar.HOUR_OF_DAY, mover, death); int m = getDiff(Calendar.MINUTE, mover, death); int s = getDiff(Calendar.SECOND, mover, death); int ms = getDiff(Calendar.MILLISECOND, mover, death); private static int getDiff(int field, Calendar mover, Calendar death){ int d = 0; while(! mover.after(death)){ d ++; mover.add(field, 1); } mover.add(field, -1); return d - 1; System.out.println("getTimeInMills()"); }
327 :
デフォルトの名無しさん :2005/05/28(土) 13:18:10
SwingのJEditorPaneについての質問です。 ただ単に editorPane.setText("<html><font size=7>あいうえお<a href=hoge.gif>かき</a></font>"); とすると"かき"が自動的に青になってアンダーラインが付いてくれるけど、 doc=new HTMLDocument(); editorPane.setDocument(doc); editorPane.setText("<html><font size=7>あいうえお<a href=hoge.gif>かき</a></font>"); とすると、"かき"は黒のままで、アンダーラインも付かないみたいですね。 どなたか解決方法をご存じないでしょうか。HTMLDocumentをセットすることは必須です。 もしろん、自分で<font color="#0000ff">と<u>を入れるっていうのはなしで、あくまでも自動的に 青、アンダーラインにする方法です。
なんか間違ってるだろうとそこはかとなく思うが それより、もしろん に目を奪われる
FileWriter fw = new FileWriter("hoge.txt",true); fw.write("hogehoge"); fw.close(); このように書いているのですが、 新たに書き込む文字列"hogehoge"をテキストの一番下に書き込むのではなく、 一番上に追加したいのですがどうすればいいでしょうか? よろしくお願いします。
330 :
デフォルトの名無しさん :2005/05/28(土) 16:49:40
>>329 ファイルは挿入は出来ないんじゃないの。
素直に、あたらしいファイルを作るしか。
>>311 みんな作ってるので、自分も作ってみた。
public static void main(String[] args) throws ParseException {
DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH/mm/ss");
Date date1 = df.parse(args[0]);
Date date2 = (args.length >= 2)?df.parse(args[1]):new Date();
String str = (args.length >= 2)?"没":"現";
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(date2.getTime() - date1.getTime());
calendar.add(Calendar.YEAR, -1970);
System.out.println("生: "+df.format(date1));
System.out.println(str+": "+df.format(date2));
System.out.println("歳: "+df.format(calendar.getTime()));
}
このフォーマット(yyyy/mm/dd hh/mm/tt)だと引数は""で括らないと駄目だけど…
>>311 さんがうまくいかないのはそのせいだったりして。
332 :
デフォルトの名無しさん :2005/05/28(土) 18:50:28
>>329 ファイルは末尾に追加って言うのはあるんだけど
>>330 の言うように原始的な方法しかないんだよ
333 :
264 :2005/05/28(土) 19:06:50
お久しぶりです。
>>264 です。
>>296 のアドバイスを受けてユーザー名に2バイト文字を使わないように変更したところ、
NetBeans のインストールに成功しました。
バンドル版でなくても同じ問題が起こるようですね。
>>296 に感謝。
334 :
296 :2005/05/28(土) 19:10:16
ちなみにJavaに限らずユーザー名に2バイト文字使うとおかしくなることが出る MSOfficeでも細かいバグはこれで出てるくらいなので 最初のOSのセットアップ時ユーザー作成のところで FEPはデフォでOFFにしてもらいたいなぁ 内部管理用と表示用が一緒になってるのはまずいんじゃないだろうかねぇ
335 :
デフォルトの名無しさん :2005/05/28(土) 19:20:30
>>264 おれはこの問題を静観していたのだが
「C:\Program Files...」が原因なのかと思っていた
つまり「フォルダ名に空白が入るとダメ」っていう話
ユーザ名だったのか・・・ユーザ名に日本語なんて使ったことないので気付かなかったな
空白は英語版でも存在するから大体単体テストの項目に入るよね。 Eclipseも空白はおーけーだけどマルチバイトの文字はNG
337 :
デフォルトの名無しさん :2005/05/28(土) 19:27:34
なんかNBの開発現場が見えてくる A「あれ?これってユーザ名がマルチバイトの場合ってどうなるの?」 B「あ、言われてみれば・・・まずいなコレ・・・ちょっとリーダに聞いてくるか」 C「うーん・・・まぁユーザ名にマルチバイト使う奴なんてめったにいないっしょ サポートで対応すればいい」
プロジェクトの場所にも、日本語入るとだめだね。
開発現場じゃ英語で会話がデフォだろ。
340 :
デフォルトの名無しさん :2005/05/28(土) 20:19:13
341 :
336 :2005/05/28(土) 20:21:41
いまEclipseのreadme読んだら制限事項からDBCS縛り消えてた。 すまん。
でも、元々NetBeansが作られたのはチェコで、チェコ語にはマルチバイト文字が含まれているんだけどね。
343 :
デフォルトの名無しさん :2005/05/28(土) 22:11:55
C「うーん・・・まぁいまさら作り変えるのは危険だ ユーザ名にマルチバイト使う奴なんてめったにいないっしょ サポートで対応すればいい」
サポートってどこよ?w
345 :
デフォルトの名無しさん :2005/05/28(土) 22:20:07
>>344 場所の話ではない
Webにバグ情報載せるとかそういうことも含めてのこと
日本人が作ったヘタレフレームワークでもディレクトリのダブルバイトに未対応なんて糞は良くある。
347 :
デフォルトの名無しさん :2005/05/28(土) 22:40:48
>>346 まぁ、相手が開発者だから「そういうものなんです」っていっとけばなんとかなるだよ
新java言語入門シニア編終ったら何やるといいですかね?
350 :
248 :2005/05/28(土) 23:10:42
>>349 どういう意味ですか?
まだ足りてませんか?
boolean bl = str.matches("*") この正規表現ならどんな文字列もマッチするはずなのですが、 PatternSyntaxExceptionエラーが出てしまいます。 アスタリスクだけなら正規表現が間違ってるということもないと思うのですが、 どこがおかしいのでしょうか? よろしくお願いします。
間違ってる .*
>>352 * は正規表現では単なる量指定子。直前の文字が「0個以上」という意味を付加するものに
過ぎない。直前の文字が無ければ何の意味もないわな。
あらゆる文字ひとつにマッチする「.(ドット)」と組み合わせて「.*」ならば、何もない場合も含めて
あらゆるものにマッチする。「なんでもいいから0個以上」という意味になるから。
357 :
352 :2005/05/29(日) 00:53:35
>>354-356 ありがとうございました。
API DocumentのStringのメソッドを見てたんですが、
分からなくてPatternクラスの方を見たら正規表現一覧が載ってました。
スレ汚し申し訳ありませんでした。
>>350 自分の作りたいソフトは?
ツールとか、ゲームとか。
何か作りたいという気持ちがないと
続かないと思うよ。
359 :
348 :2005/05/29(日) 12:16:57
携帯電話向けのゲーム作りたいっておもってます
360 :
デフォルトの名無しさん :2005/05/29(日) 12:38:10
アイアプリ系か? うちの会社来い FOMA,au,voda全機種対応作業を一人でやっている奴を助けてあげてくれ
高いぜー
362 :
329 :2005/05/29(日) 17:55:54
亀レスすいません。
>>332 さん、新しいファイルを作るとは別のFileWriterで別のテキストを作成して
そこに書き込むということですか?
テンポラリなテキストなら作ってもいいんですが、
実際に書き込むファイルは一つにしたいんです・・・。
文字列をどんどんテキストの初めに追加していく方法、どなたかご存じないでしょうか?
よろしくお願いします。
363 :
327 :2005/05/29(日) 18:08:02
だれも答えてくれないんですね。(/_;) でも、いいです。StyleSheetをHTMLDocumentに設定してやれば、 万事めでたし、ということがわかりました。しばしば話題になるCSS ってやつのご利益を初めて知りました。
364 :
デフォルトの名無しさん :2005/05/29(日) 18:26:30
>>326 泣くなよ
誰もそんなことまで突っ込んでやったことある人いないと思う
だから、答えようにも答えられないんだよ知らないんだから
>>327 まず、今までのファイル内容をメモリに読み
必要な部分を書き出した後、追加する部分を書きだし
元のファイルの残りを書き出す
ってことじゃないかな
366 :
デフォルトの名無しさん :2005/05/29(日) 18:48:48
>>365 その方法だとメモリいっぱいになっちゃう
File1があってその先頭にデータ入れたい場合
先にFile2を作って先頭に入れたいデータ書き込む
次にFile1を開いてFile2に追加書き込み
File1が不必要なら消せばいいんでないの?
>>329 >文字列をどんどんテキストの初めに追加していく方法、どなたかご存じないでしょうか? よろしくお願いします。
方法というか、こういう原始的方法しかないんだよ
物理的に考えてもそうでしょ?メモリに楽勝で入るデータなら365のやり方で十分
367 :
167 :2005/05/29(日) 19:39:50
>>167 で質問したものですがAbstract Factoryを使うことになりました。
いろいろ答えてくださった方ありがとう。
今度はクラス図とシーケンス図ですよ・・・
もどう書いたらいいのやらで時代に取り残されたなぁ・・・・
368 :
デフォルトの名無しさん :2005/05/29(日) 21:28:36
テンプレからは外れてないけど、最近のjdkって classpathとか設定しなくても動くように改良されてないか? 生でjdk使う人は今時あんまりいないんだろうけど。 みんなEclipseかぶせてるだろうから。
369 :
デフォルトの名無しさん :2005/05/29(日) 21:35:08
「らくらく突破Java」はどうですか?
classpathは関係ないだろ
>>368 昔からだよ
Java2からは動的な設定が推奨されてるだけだし
372 :
デフォルトの名無しさん :2005/05/29(日) 23:14:03
どうも、canvasにイメージを貼って表示しているだけなのですが、何故かちらついてしまいます。どうにかなりませんか
ダブルバッファリングについて勉強すべし そして、ティアリングが気になったらフリップについて勉強すべし Java特有の問題ではないよ
>>373 CanvasのスタイルビットにSWT.NO_BACKGROUNDを〜とかいう事をするんですか?
SWTかよ
違います。
俺の調べ方が悪いせいでこんな情報しかなかったのです
jpgを表示してるだけなのです、特に動かしたりしているわけではないのですがちらつくのです。PCなら平気なのですが、手持ちのpalmで使うとちらついてしまうのです(涙
しかも parm OS
そーなんですよ
palm上のJ2ME環境ってなにつかってんの?
ザウルスのやつです、話が違っててすみません
ザウルスかよ
あいどーもすいません
すいませんかよ
一通り初心者向け参考書(独習JAVAなど)は読んだのですが、なんていうんでしょうか 中級者になるにはどうすればいいのかわかりません。日曜プログラマーなので、会社で先輩PGに聞くなんて環境でもないので・・・ とりあえずメモ帳とかつくってみようかなと思っていますが、なにかこれは押さえとけみたいなのをおしえて頂けるとありがたいです。
私以外のどの辺に問題がありそうですかね
>>386 NetBeansダウンロードして、ちまちまいじくってみれば?
解決しました、どうもありがとうございます。超つまんない事でした(笑
391 :
デフォルトの名無しさん :2005/05/30(月) 02:19:29
みなさん、Javaは将来どうなると思いますか?
393 :
デフォルトの名無しさん :2005/05/30(月) 02:39:01
>>386 人様に利用される、見栄えのいいアプリケーションを作成したいなら、GUIの勉強を
することになるんでしょうね。
Swingの勉強をするなら、『Java GUI プログラミング』全3巻をおすすめします。
手取り足取りでわかりやすいだけでなく、実戦的な内容です。
また、『Java GUI コンポーネント完全制覇』も『Java GUI プログラミング』
を補完するような形で役に立つと思います。
Swingアプリを手書きするのはアホらしいけどね。
395 :
393 :2005/05/30(月) 03:20:58
あ、なるほど、今どきはGUIをコードではなくて、グラフィカルに 作成するのが普通ですかね。ほとんどの人がそうしているのでしょうか。 自分はコードをガリガリ書く方です。昔はVBとかVisualCafeとか、 その手のソフトも使っていたけど、今はそういうソフトにお金かけるのが いやになったので。 まあガリガリ書くのならSwingの勉強は必要でしょうね。
NetBeans使えばタダ。 JBuilderの無償版使えばタダ。 Eclipse+VE使えばタダ。
397 :
393 :2005/05/30(月) 03:40:56
>>396 うほっ、そうなの。
Java歴7年なのに知らんかった(>_<。)。
とりあえずNetBeans4.1落として適当にいじってみ。 英語版だけど、EJB作成とか無償ツールとは信じられないことができる。 Eclipseでも、プラグイン拾い集めれば強力なツールになる。
NetBeans強要してるようだが、好きにさせてやれ
NetBeans4.1の方が、最初にインストールしたときのビックリ度が高いかなぁと思って。 タダでこんだけできるの?みたいな。
プロファイラはすげぇな
402 :
デフォルトの名無しさん :2005/05/30(月) 13:10:13
>>392 C#が出ているのに?
C#が出るのでJavaは衰退するとまで言われていたのに?
403 :
デフォルトの名無しさん :2005/05/30(月) 13:16:04
初心者で質問ですが、コマンドプロンプトから実行すると正常なのに、 eclipseだと無限ループになってしまいます。 なにかアドバイス頂けないでしょうか?
405 :
デフォルトの名無しさん :2005/05/30(月) 13:45:57
>>394 > Swingアプリを手書きするのはアホらしいけどね。
工エェ(´д`)ェエ工
407 :
393 :2005/05/30(月) 13:50:24
初心者なんでよくわからないんですけど、 C#とJavaって関係あるんですか? 敵なんですか?
Swingに詳しい香具師が初心者?
409 :
デフォルトの名無しさん :2005/05/30(月) 13:57:39
>>407 C#はライセンス問題上、JavaをWindows専用に改造できないことに腹を立ててM$が作った似て非なる競合言語
C#に興味がある香具師がいないっつーことか。このスレ
411 :
393 :2005/05/30(月) 13:58:52
Java歴7年の初心者ですが何か?
>>393 iアプリの勝手サイト作ろうと思っているんですが、そんな香具師にも有効ですか?
この、『Java GUI プログラミング』全3巻というのは。
もちろん公開用アプリを作成するうえで、です。
>>412 もし、あなたの家が本屋さんから遠くないのなら、本屋さんへ行って
その本を眺めてみるべきです。
判断を仰ぐことはそれからでも十分に遅くありません。
>>405 MONOは使いものにならないんじゃなかったっけ
415 :
393 :2005/05/30(月) 18:50:47
へっ、iアプリ?どうなんでしょうかねえ。 携帯の場合、J2SEじゃなくてJ2MEじゃなかったっけ。 そもそもこの実行環境でSwingが使えるのかどうかすら 私は知りません。iアプリに詳しい人よろしく〜。
iアプリは確か、J2ME+CDCでGUI部分は独自のライブラリだったはず
>>414 相当苦労してるようだよ
公開されている仕様とMSの実装が違うから
現実的な解をとるか仕様どおりをいくか
そして今後2.0とかどんどんバージョンアップするし様々なライブラリのことを考えると
事実上.NETというのはやはりWindows固定だよ
>>405 「動くことになっている」と「使える」は違うよ。
420 :
デフォルトの名無しさん :2005/05/30(月) 19:55:28
あるDBに接続してその中にある全てのテーブルの内容を そのテーブル名、ヘッダ部分、データ部分も含めて 一つのCSVファイルとして書き出すにはどうすればいいのでしょうか? データの中身だけなら何とかなると思いますが すべてのテーブルやヘッダ部分などの取得の仕方がいまいちよくわかりません 教えてください
素直に export / import 使え。
422 :
デフォルトの名無しさん :2005/05/30(月) 20:21:44
>>421 たとえばJSPなんかであるボタンを押したときに
そのメソッドが呼ばれてCSVを作るってのがしたいのですが
DatabaeMetadata ResultSetMetadataあたりつかえば
正規表現で\@とか\.をエスケープさせようとすると 「エスケープシーケンスが無効ですって怒られるんですけど どうすれば回避できるんですか?
>>420 APIマニュアル読まない人って多いんだなぁ
JDBCは簡単に取得が出来るというのに
数字を指定して次のような「0001、0002、0050、0100、〜」 文字列をfor文で生成したいのですが、どのように生成するのでしょうか。
sine
429 :
412 :2005/05/30(月) 22:26:56
実は近場にはろくな本屋が無くて・・・いつもamazonなんですよ。 J2SEと、J2MEは基本の文法(?)、switch文とかif文ですが、同じなんですか? でしたらiアプリの中級者向けの本を買おうと思うのですが。
じゃあ、まず
>>412 さんのやることは、JAVADOCを読むことです。
J2MEもJ2SEも簡単に(英文で)手に入るので読んでおけ。
それとJ2MEのサンプルとして「そらみ」っていうのがあるから
見てみてちょ
431 :
393 :2005/05/30(月) 23:31:58
>>412 恐れながら、「Javadocを読むことです。」では何のことかわからないと思います。
もし読んだとしても、ただビビってしまうだけでしょう。
それにあれは開発しながら参照するものだと思います。
本人の言う通りiアプリの本を買ってきて、学習するのが吉かと。
ただ中級者向けが最適かどうかは不明。
>>431 うん!
ただ、J2MEとJ2SEの違いを知るためにはいいかななんて、ははは
433 :
デフォルトの名無しさん :2005/05/31(火) 00:11:04
>>418 Window.Forms問題か。
さらにWinFXでも痛い目を見るわけか。
昔(2001年秋の頃)、某学生派遣バイト会社の営業が
これからはC#の時代でJavaは衰退するなんて
言っていたことを思い出す。彼は学生にVBやPHPを勧めてきて
Javaは型が厳しいからプログラミングしずらいなんて無能臭いことを
言っていた。C#もその型が厳しい言語にそっくりだということも忘れて。
さらにWindowsのシェアは90%以上だからJavaの必要性が無くなり
Windows専用でほどよく真価を発揮する(と思われる)C#が普及する
とも言い張っていた。けれども彼の目論見は見事に外れてしまったようだ。
WindowsやM$ Officeがシェアを独占しているから
その原理がプログラミング言語にも働くという短絡的で安直な
M$の宣伝文句に騙されていたというわけだ。
いくらOSのシェアが大きくてもサーバ市場でのシェアでは
M$は負けている。それが彼らにとっては盲点だったというわけだ。
その盲点に気づかず、「これからはC#、これからはC#」と何度も
宣伝していたが普及しなかった。
結局C#の仕事も少なくそれほど普及もしておらず
クライアントOSのシェアがいくら大きくてもUNIX系サーバOSのシェアと信頼性
には勝てなかったということだ。
435 :
デフォルトの名無しさん :2005/05/31(火) 02:48:35
例えばソートするのにかかる時間を計るようなプログラムを教えてください。 どういう方法かで大丈夫です
436 :
デフォルトの名無しさん :2005/05/31(火) 02:55:49
ええっ、それってどれくらいの時間がかかるかを予測するプログラムってこと? それとも実際にかかった時間を知らせるだけ?
437 :
デフォルトの名無しさん :2005/05/31(火) 03:03:39
実際にかかった時間を知らせるだけです。お願いします
438 :
デフォルトの名無しさん :2005/05/31(火) 03:12:51
>>437 こんな感じかな。
long startTime=new java.util.Date().getTime();
........
何がしかの処理
........
long endTime=new java.util.Date().getTime();
long time=endTime-startTime;
System.out.println("time= "+(double)time/1000.+"sec");
いちいちDate作るくらいならSystem.currentTimeMillis()にしとけ
440 :
デフォルトの名無しさん :2005/05/31(火) 03:25:09
ありがとうございました
pathの環境変数を誤って設定してしまったので 設定変更する前に戻したいのですが、元のpathを 忘れてしまいました。 どうすればいいでしょうか?
new JScrollPane();
今、通信プログラムのサーバ側に当たるプログラムを作成しています。 起動して、処理出来るようになったまでは良かったのですが、 外部からのコマンドで停止させれるようにしないといけないのです。 (Tomcatのように startup.sh で起動して shutdown.sh で止めるような感じで) 起動中のJAVAのプロセスを、外部から停止させる事は出来るのでしょうか?
>>444 通信プロトコルに停止コマンドを加えるか、
停止要求専用のポートを開いておくかすれば?
ちなみにTomcatは後者。
なるほど、停止自体も通信で処理すればOKですね。 やってみます。
448 :
412 :2005/05/31(火) 10:25:33
やっぱり本買いますね。ITmediaの記事はその後に役立ちそうなのでブックマーク、と。 JAVADOCは見つかりもしませんでした。せっかく教えてもらったのにスイマセン・・・orz
449 :
デフォルトの名無しさん :2005/05/31(火) 12:07:15
>>441 OSはなんぞや?
XPなら「システムの復元」でどうにかしな。
さもなきゃ、自力でパス探せ。
コマンドプロンプトを一切使う気が無いなら
pathなんで気にする必要も無いがな。
iアプリだったらJavadocはあるぞ。 iアプリで検索しなよ。 Docomoのサイトでzipか何かでダウソできるぞ。
CLDCで検索すればまずJavadoc一個は見つかる。 けれどもサンプルプログラムを見た方がわかりやすい
452 :
デフォルトの名無しさん :2005/05/31(火) 15:10:26
まあまあ、みなさん、教育的配慮でわざとストレートに教えないのも大事なことだとは思いますが、
初心者が敷居をまたぐ前に、Javaってむつかすぃ〜、と思い込んでしまってはC#な人たちの思うつぼでは。
javadocで検索しても見つかりにくいでしょ。だって、javadocはAPIドキュメントそのものではなくて、
それを作成するコマンドなんだから。
>>412 あなたが御探しのページはここです。
J2SE API仕様
J2ME API仕様
これくらいストレートに教えてあげても良いでしょう。
これは412さんの長い長い悪戦苦闘の幕開けにすぎないのですから。
453 :
452 :2005/05/31(火) 15:12:33
>>412 このキーワードで検索すれば、一番上に来るのが、目的のページです。
でも、確かに本は必要です。
GUIプログラミングはそんなに本が必要なのか。 適当にJavadocや解説サイト見てたらそこそこの見た目だけのGUIは作れると思うが。 Servlet+DBばかりやっててGUIはほとんど手をつけていない者の適当な意見だが。
別に本は必要じゃねーよ 昔はGUIのほうが多かったけどな Servletの資料ほとんどなかったし
456 :
452 :2005/05/31(火) 17:15:40
確かにWebの海には良い解説サイトがいっぱい有ります。しかし、悪いサイトも いっぱいあるので、まずその中から良いものを見つけなければいけません。 一方、本として世に出ているものはすくなくても出版社がまともな内容だと認めて いるはずなので、内容の信憑性は比較的高いでしょう。 それにブロードバンドの時代とはいえ、いちいち、サイト探しをしていては肝心の 勉強に集中しずらいと思います。 javadoc(API仕様)はソースコードの次に内容の濃い情報源ですが、どこで何を 使えば良いのかは最初はよくわからないでしょうね。だから、まず本を読んで、 勘所をつかむことは大事だと思うんです。一人で考えているだけでは、気づかない ようなことも書かれていることが有ります。たとえば、JTableのセル編集中に 他のセルをクリックしたらどうなるか、とか、他のコンポーネントや他のフレームを クリックしたらどうなるかとか。 また、独りよがりのGUIを作って、世に出しても、「なんだこの使いにくいソフトは。」 とそっぽを向かれるかもしれません。自分のソフトウェアにはタブペインと スプリットペインとダイアログのどれがふさわしいか、javadocを読んだだけでは わからないでしょう。 おそらく454さんは開発時に一番良く参照しているのはjavadocなのでしょう。 しかし、最初からそれができていたのだとしたら、天才かもしれませんよ。 もちろん、解説サイトもjavadocもJavaBrowserもみな強力な武器には違い有りません。
457 :
デフォルトの名無しさん :2005/05/31(火) 17:21:12
javaで全角なのか半角なのか判断する方法を教えてください。
独りよがりなGUIといえばVectorとかによく転がってるな。 Eclipseのようにプラグイン拡張できればもっと使いやすくなるのにってのが多い。
459 :
デフォルトの名無しさん :2005/05/31(火) 17:38:16
ソフトウェアは利用者に叩かれて成長するものです。 そこがソフトウェアのメリットでもあります。
Java は使いにくすぎるな。 この言語自体を好きなプログラマーっていないんじゃないのか? もしこれが好きだと言うんであれば、そいつの世界は狭いと思われる。
>>457 とりあえず実際にかな文字をソースコードにchar型で書いて
それをintやbyteに変換に表示して半角と全角とで比べてみよ
462 :
412 :2005/05/31(火) 17:50:41
JAVADOC見てきました。一応J2SEの方は入門書終らせているので 分かるものもチョコチョコありましたが・・・・ J2MEに特化した本買って勉強しようと思います。 SEの知識が役に立てば幸い、だけどサンプルプログラムみた限りでは そこまで役に立つわけでもなさそう・・・・orz
463 :
デフォルトの名無しさん :2005/05/31(火) 17:51:28
Java言語自体を好きなプログラマーがいないということは即ち、 C#言語自体を好きなプロブラマーもいないということになりそうなもんだが。
464 :
デフォルトの名無しさん :2005/05/31(火) 17:57:32
>>412 心配しなくても、Javaの文法とか、Object指向の考え方とかは同じだよ。
J2SEでも、J2MEでも、どのみち新しいクラスやメソッドには毎日の
ようにお目にかかる訳だから問題ない。
って、慰めになってないか(笑)。
465 :
デフォルトの名無しさん :2005/05/31(火) 17:58:38
>>457 半角アルファベットはBasic Latin つまり Unicode 0000〜007F、およびLatin-1
(Latin Extended A、Latin Extended Bにもアクセント付き文字がある)、そして
全角アルファベットはUnicodeFF00〜FFEF、全角ひらがなは3040〜309F、
全角カタカナは30A0〜30FF、半角カタカナはFF66〜FF9Fのあいだに入っている
ので、 それで判定できる。
http://www.unicode.org/charts/
466 :
412 :2005/05/31(火) 18:26:21
>>464 いや、かなり嬉しいですよ。いままでやってきたことが無駄にならないのだから。
無名内部クラスで投げ出しそうになったりしながら、やって来たわけで。
文学部学生だがガンバリマス
467 :
デフォルトの名無しさん :2005/05/31(火) 18:40:56
>>412 うむ、がんばれ。
APIをこつこつと身につけるのだ。仕様については評判の良いiアプリの真似をすることも大事だ。
大きな声では言えないが、自分が仕様で迷ったときは、とりあえずMS Officeの仕様を真似ておく。
有る程度勉強が進んだら、デザインパターンやリファクタリングというテーマにも触れよう。
正直Javaは敷居が低いとは言えないけど、部屋の中は広くてきれいです。
いや、広くてちらかってるよ。 部屋のなかにも壁があるし。
ただまぁ、J2MEの世界はJavaらしいプログラミングをするのがホソロシク難しい世界だからなぁ…… とりあえずiアプリにせよボダにせよ、この板に専用スレがあるので、そっちものぞいてみるのがいいかも。
>>468 だが、C++よりは綺麗だ。
C++の失敗を教訓にして生まれた言語だけはある
>>469 メガアプリが登場し、さらに容量が増大することで徐々にJ2SEと同じようなプログラミング
スタイルができるようになっていくだろうよ。
472 :
デフォルトの名無しさん :2005/05/31(火) 22:41:12
プログラムサイズの制限が厳しくて、あまりいっぱいクラスを 使えないとか、言う話は聞いたことが有る。 そうすると、結局昔のBasic(いいとこX-basic)みたいなブログラムに なっちゃうのかな。
474 :
デフォルトの名無しさん :2005/05/31(火) 22:51:03
あ、そうか、すんまそん、自分の中ではCの存在感が 完全に消え失せていたので。
475 :
デフォルトの名無しさん :2005/05/31(火) 22:55:53
でも、Cは消えたというよりは、JavaやC#に受け継がれたと 言うべきですよね。Cの文法はほぼそのままの形で受け継がれている。
>>475 どうして別言語なのに受け継がれただのということにしたいんだ?
Java自体も昔は遅くて使い物にならんかった。 #今でも遅くて使い物に、という突っ込みはナシな ハードウェア性能の向上に従い実用に耐えられるものになっていった。 同様に、携帯Javaが使いづらいのも今だけだろうな。 >475 文法はインターフェイス。 統一しておいた方が使いやすい、つまりシェアを確保しやすい。 当時のCユーザの数を考えれば、Cライクな文法を採用するのも自然。 キーボードが未だに使いづらいQWERTY配列なのと同じ理屈。 タイピストを取り込むために、コンピュータのキーはQWERTY配列である方が都合が良かった。 「後継」を名乗れば既存言語のユーザを丸ごと掻っ攫えるというメリットもある。 どの言語とは言わんが某M$の(ry
478 :
デフォルトの名無しさん :2005/06/01(水) 00:09:52
>>472 vodafoneのメガアプリはその名の通り1MBの容量まで使えるようになった。
これで一つのアプリにやっとのことで余裕でクラスを10個ほど作れる。
iアプリが出た当初は10kBの壁があり大変だった。
クラスで一つ継承するだけでかなり容量を食い
それ以上クラスを作るのは容易ではなかった。
しかも例外処理やコレクションを使うと重たくなる。
byteやshort, long,doubleを使うのはもってのほかで皆intで統一。
オブジェクト指向なんていっていられない
そんな世界でJavaらしくも無いところが多かった。
メガアプリになって容量が100倍になってもまだまだ、っていうところですな。
479 :
デフォルトの名無しさん :2005/06/01(水) 00:11:20
477さんのおっしゃる通りです。 しかし、たとえ策略的な形でも、プログラマにとっては悪い話じゃないですよね。 実際自分もJavaを初めて勉強したとき、全く抵抗無く入れました。勉強が進むに つれて抵抗が出てくる訳ですが(笑)。なんか違うぞ、みたいな。確かに、文法 以外は全く別ものというか、他人のそら似ですね。 最初はメインループが無いので、なんだか落ち着かなかったのを思い出します。
480 :
デフォルトの名無しさん :2005/06/01(水) 00:11:36
>>477 Cライクな文法も増えるのが当然というより、
Cライクな文法が人間工学的、心理学的、生理的に読みやすいという
経験と知恵からCライクな文応が引き継がれるという自然な前進
だったのではないかと思われ。
481 :
デフォルトの名無しさん :2005/06/01(水) 00:14:44
>>479 Cやってたときとくらべ、
なぜJavaはすぐにコンパイルエラーになるんだ!
って最初は思ったよ。配列の扱いもCとは微妙に異なり見慣れないもので困惑したものだ。
しかしあのコンパイルエラーの厳しさが後々ありがたいものになってきて
バグを極力減らし効率的な大規模開発をする上でとても重要なことだったとは
今となっては夢にも思わなかったよ。
482 :
デフォルトの名無しさん :2005/06/01(水) 00:17:03
しかし、Javaがハードウェアで徹底的に普及するにはまだ時間がかかりそうやな。 リアルタイム処理がどうにかなれば。 ところでJava リアルタイム仕様ってのを知ってる香具師おる? 一体どういうものなんだかよくわからず気になるのだが。
よくよく考えるとJavaが登場してからもう10年もたつのか。 速い脳
>480 いや……Cの文法って変態的だってよく言われない? 漏れ自身はそこまでは思わんけど…… // まぁ、ことに変態呼ばわりされるのはポインタ周りの構文だからJava等には関係ない話ではあるが。
>>481 禿胴。
cでもコンパイラオプションでかなり厳しくエラー出せるけど
ある程度の人数だと、厳しくすれば確実に開発効率落ちた。
だが、javaだと言語仕様がcより厳格なのと、コンパイラが甘やかさないので
不平不満があってもそれに従う他は無い。 結果、効率に繋がってる。
コンパイラは融通が利かないほうがいいな。
怪しい部分も黙って通されると、よけいにバグが発見しにくいだけ。
「俺に理解できるように書き直しやがれ」というスタンスであって欲しい。
486 :
デフォルトの名無しさん :2005/06/01(水) 01:06:27
ポインタなつかすい。C言語学習の難所と言われていましたね。 でもあれのおかげでJavaのインスタンス名ってやつも理解しやすかったかも。 どっちもメモリ上の有る場所への参照っていう意味では同じだもんね。
C厨の煽りに釣られる香具師共数十名
488 :
デフォルトの名無しさん :2005/06/01(水) 02:51:03
>>482 「RTSJ」でググレ。拡張ランタイムのRI配ってる会社がある
から。
簡単にいえば、タスクの実行終了時限を決められる(その時点
までに終了させることが怪しくなった時点で例外投げる)API
があるJavaということっぽい。
リアルタイム処理って、10秒遅れで実行されるくらいなら
例外投げて停止するほうがマシというタスクをスケジュー
リングするってことということでしょうかね。
489 :
デフォルトの名無しさん :2005/06/01(水) 03:01:21
前橋さんとかいう人が、Cのポインタは、扱う文法がイカレテ イルだけで概念が難しいわけではないといっていたな。 文法の厳しさといえば、VB.NETとかの方がJavaより数段縛りが 厳しいと思うけどどうよ。 緩いのは型解決が実行時なのでキャスト不要であることと、チ ェック例外が存在しないという二点だけかな。
アセンブラから来た人間にとっては、Cのポインタには何の違和感もないな。 むしろ、妙に隠蔽されてて、何がどうなってるのかわからん VBはわかりづらく感じる。 Java は、「プリミティブ型以外は全部ポインタ」ということを最初に教えてもらえば、 それほど困らない。(知らないと悩む)
491 :
デフォルトの名無しさん :2005/06/01(水) 11:19:50
質問です。 BufferedReaderクラスのreadLineメソッドについて。 このメソッドがファイルから改行を読み込んだ時、戻り値として どんな値が返ってくるのか、誰か教えて〜。。。
>>491 Javadocに書いてあるじゃナイカ。
493 :
491 :2005/06/01(水) 14:39:22
すみません、Javadocとはなんでしょうか? 初心者なのでよくわからないです…。 サンマイクロのリファレンスとは異なるものでしょうか?
495 :
491 :2005/06/01(水) 14:53:36
>494 ありがとう、調べてみます!
496 :
デフォルトの名無しさん :2005/06/01(水) 14:53:51
497 :
デフォルトの名無しさん :2005/06/01(水) 15:04:37
もうjavadocって言い方止めた方がいいんじゃないかな。 同じ質問が繰り返される。不幸だ。
世界中がドキュメントの事をjavadocと読んでるのだから、ここで止めても意味がない。 憶えろ。
>>498 ウチではAPIリファレンスって言ってるけど。
っつか、javadoc って呼んでる人達って
自分で書いたソースから javadoc で生成したドキュメントと区別せんの?
500 :
デフォルトの名無しさん :2005/06/01(水) 15:54:01
Sunが悪い。 javadocって響きがいいからむやみに使ってるんだろうけど。 Javaプログラマ獲得するのにプラスにはなってないだろうよ。
フレームを開く その中に小さな画像が何枚かポツンとある クリックするとクリックした画像がフレームいっぱいに等比拡大する もう一度クリックすると元に戻る そんなプログラムを作ってください orz
>>499 区別する必要ないっすよ。
「java.io.BufferedReaderのjavadoc」と言ったときに自分のクラスの
javadocのはずないから。
まー、「APIリファレンス」って言ったほうがわかり易そうですね。
メソッドの質問して javadoc 見ろといわれたら、それが載ってるであろう javadoc を探すだろ? たしかに javadoc ≠ API リファレンスだが、なんの javadoc まで指定する 必要は無いはずなんだが
>>503 でもさ、メソッド名はなんらかの手段でわかったが、
そのメソッドが入ってるクラスやパッケージがわからないときとか
どうするよ?です。
>505 その場合、どのみち手も足も出ないわけだが。
>>505 検索する。
ところで最近のIDEなら自分のソースからすぐにjavadoc引けるし、
APIを実装したソースへのジャンプも余裕だし、javadocの
全文検索もできるし、楽だよね。
>>499 JavaDoc形式のAPIリファレンスだから。
APIマニュアルよめとしかこのスレではでてきたことないな まぁJavadocだと汎用過ぎるしな
UNIXでは「マニュアルページ(Manページ)読め」全部片付く (片付けようとしてた)。
512 :
デフォルトの名無しさん :2005/06/01(水) 21:59:26
「今日は日が悪い」は桜金造
513 :
デフォルトの名無しさん :2005/06/01(水) 22:55:43
パッケージをインポートするのと クラスを継承するのでは、何が違うのでしょうか? そもそも、クラスをわざわざ継承しなくても パッケージをインポートすれば済む話のような気がします。 パッケージをインポートしないでクラスを継承する利点ってなんなのでしょうか?
514 :
デフォルトの名無しさん :2005/06/01(水) 22:59:14
>>513 もっと色々勉強するべきことがあるはず
あまりにも広い範囲から教えないといけなくなるので
>>513 その2つは目的も動作も何もかもが違うぞ。
比べること自体が信じられない。
おまえにセンスが皆無なのか、教えた人間の教え方がドヘタなのかのどちらかだろう。
516 :
デフォルトの名無しさん :2005/06/01(水) 23:15:26
>>513 オブジェクツ嗜好は、
大人にゃ見えない 釈迦利器コロンブスなのさ
>>516 お前古いなぁ
ひょっとして前世紀の生き残りか?
518 :
デフォルトの名無しさん :2005/06/01(水) 23:23:14
ぅ〜〜〜わぉ よーぅこそ〜〜ここへ〜♪ 西武園で!西武園で!西武園で! 西武園で〜〜〜遊園地!
519 :
デフォルトの名無しさん :2005/06/01(水) 23:24:03
>>515 オレは、最高レベルの勉強体勢でやってるわけ。
勉強内容に間違いはないのさ。
つうかさぁ、オレは被害者なわけ。
それに、どんな勘違いしてたか公表すると、模倣するやつがいるから公表しない。
521 :
デフォルトの名無しさん :2005/06/02(木) 00:03:50
513さんの言うことも全くナンセンスとは思えません。いやむしろ、面白いテーマかも。 継承を使う方がいい局面と、importを使う方(多分委譲のこと)が良い局面とが存在しますね。 よくよく調べてみると、自分はJFrameとJInternalFrameとJTableとPlainDocument位しか継承していないです。 継承は意外と使ってないですね。 たとえば、class MyTextArea extends JTextAreaっていうのを作って、 MyTextArea ta=new MyTextArea(); ta.selectAll();ってやってもいいし、 TextAreaHandlerとか言う何もextendsしないクラスを作って、そのstaticメソッドを使って、TextAreaHandler.selectAll(ta); などとやっても良いわけです。 しかし、継承でなければできないことや、委譲でなければできないことがあるのも事実です。
>>521 釣るなよ・・・・
importって、単にソースコード中で他のクラス名を記述するときに
パッケージ名を省略できるというだけだろ。
import宣言するかしないかで、何かができるようになったり、ならなかったりはしない。
最高レベルの勉強体勢とやらが非常に気になってぐっすり眠れそうだ
524 :
デフォルトの名無しさん :2005/06/02(木) 00:21:57
513が言ってるimportって、それによって使えるようになるクラスの インスタンスに委譲(デリゲート)することによって、そのクラスを継承せずに 利用するってことじゃないの?善意に解釈し過ぎ?
ZZZZZZzzz...
>>524 513がもしそういう意味で書いているとしたら513=524としか信じられない。
527 :
デフォルトの名無しさん :2005/06/02(木) 00:44:19
521=524なんですが。 それにしても520の発言、なんかわくわくさせる。
529 :
デフォルトの名無しさん :2005/06/02(木) 01:54:26
なんでもかんでも釣りかよ。
釣りにしか見えないくらいというか 釣りでなかったら相当痛いアホ発言だからだよ。
531 :
デフォルトの名無しさん :2005/06/02(木) 02:04:42
会ったこともない相手にアホだのとよく言えるわ。 うぬぼれない方が良い。君に言えるのはその「アホ」 という言葉だけだろうよ。 存在感無し。
マジレスすれば、>520は価格コムのパロだろ。
perl とごっちゃになってるとか。
再登場しない事を見ると、釣りなのかね。 手続き型的な思考にハマってしまった人なら実際にぶつかってもおかしくない問題な気はするけど。 つーか質問相談スレなのにいきなり批判レスから始まるのはどうかと思う。 例えどんなに釣りっぽくてもな。 絶対に釣られるのが嫌なら質問スレなんかにいないで一人でコード書いてろよ。
535 :
デフォルトの名無しさん :2005/06/02(木) 03:48:04
初心者を呼び込んで馬鹿にするスレなのか、って思われるかも。 今の日本はどこ行っても寒いね。
513みたいな初心者であることは別にどうでもいいけど 521=524みたいな技術的なウソや間違いは書くな。
537 :
デフォルトの名無しさん :2005/06/02(木) 04:01:56
今日も来るかな、javadoc
538 :
521=524 :2005/06/02(木) 04:37:08
>536 で、ウソや間違いの部分を引用して、なぜ間違いなのか指摘してもらえますか。 まだ一度もそれを聞いていないので。まさか、全部とか言わないですよね。 全部なら、その内の一つについてご指摘御願いします。初心者なんでよろしく。
importを使えば java.lang.String[] str = new java.lang.String[2]; を String[] str = new String[2]; といったように書くことが可能になります。
540 :
521=524 :2005/06/02(木) 06:35:19
>importって、単にソースコード中で他のクラス名を記述するときに >パッケージ名を省略できるというだけだろ。 それは513も知ってて言ってるかもよ。 もちろん私も知ってます。 >import宣言するかしないかで、何かができるようになったり、ならなかったりはしない。 だったら、import宣言はいらないことになる。 委譲を行うときに利用される方のクラスをimportしても意味がないとでも言うのですか。 513はそういうことを言ってるかもしれませんよ。(そうであってほしい。) 513はその直後の発言で馬鹿にされて、嫌になってしまったのかも。そして520は他人の おふざけであったかも。 推測の域を出ていないし、釣られているだけかもしれんが、つまらないことで、Java初心者が 挫折するのはつらい。長い目で見たら自分らの首を絞めているかもしれない。 せめて、質問者の発言の真意を問いただすくらいの心の広さが欲しいものだ。 「釣りだ」の一言で、片付ければ議論もしなくていいし、自分は釣られなかったから賢いと 優越感に浸れるかもしれんけど、初心者が上級者の想像を絶するような発言をしたからとて、 なんの不思議も無いでしょう。果たして「釣りだ」の一言で片付けられた真面目なとんでも質問が いくつ有ったことやら。 2ちゃんねるでこんなこと言うだけ無駄なのか。
541 :
521=524 :2005/06/02(木) 06:41:00
>>539 ううっ、(/_;) 自分はこういう発言を待っていた。
もうみんな賢い振りをするのやめようよ。みんな初心者でいいじゃないか。
継承を使えば、継承先のクラスでは継承元のクラスのメソッドに加え 冗長な機能を付加することが可能になります。 ところで、Stringはimportいらないんだよね?
543 :
521=524 :2005/06/02(木) 07:05:59
はっ、もしかしてこれが本物の釣り?
いらないのではなくてデフォでimport済み
546 :
521=524 :2005/06/02(木) 07:46:43
539のことですが。 importがいらないのを知っていて、わざとこんなことを書いたのかと。
547 :
デフォルトの名無しさん :2005/06/02(木) 07:50:52
java.langというパッケージは import はいらないが、import しても文法に反するわけではないし..
548 :
デフォルトの名無しさん :2005/06/02(木) 07:54:43
いかにも
やっぱり
>>540 みるかぎり
>>521 は釣りだな
具体的なimportがいらないことになる例があれからじゃわからん
今まで手続き型しか知らなかったけど、ジャバ勉強してしばらくぼーっとしてたらわかるようになる。超オススメ
551 :
デフォルトの名無しさん :2005/06/02(木) 16:24:20
今どきのプログラミングの初心者って、もしかして「手続き型って何」? て感じなのかな。有る意味幸せかも。
552 :
デフォルトの名無しさん :2005/06/02(木) 18:27:28
委譲を使えば、実行中に利用される側のクラスを切り替えられることが 可能になります。
オブジェクト指向じゃないプログラムを知らないので、そこをさらにオブジェクト指向でと言われると、継承やパターンの乱用になったり
>>452 > まあまあ、みなさん、教育的配慮でわざとストレートに教えないのも大事なことだとは思いますが、
> 初心者が敷居をまたぐ前に、Javaってむつかすぃ〜、と思い込んでしまってはC#な人たちの思うつぼでは。
JavaができなきゃC#に逃げたって結果は変わらんよ。
Javaには無い構造体や参照型、値型の扱い、delegateや属性、プリプロセッサ、get/set。
オブジェクト指向的に見ても杜撰で使い勝手もネーミングセンスも悪いフレームワーク、API群、
Javaとは似て被なる文法にプログラムの挙動。
これらによりJavaよりもっと面倒な場面に直面してC#も難しいと零す羽目になる。
>>460 > Java は使いにくすぎるな。
> この言語自体を好きなプログラマーっていないんじゃないのか?
> もしこれが好きだと言うんであれば、そいつの世界は狭いと思われる。
では、藻前はどんな言語が好きなのだ?
藻前の心がどれだけ広いか判定してやろうか。
>>484 C/C++の文法に変態的な構文が含まれていたからこそ
その部分がカットされて良いとこどりのJavaが生まれたのだろう。
さらに良いとこどりの言語みたいなのがあるみたいだが。D言語とか。
特徴に違いがありすぎるが。
>555 わざわざ100レス前の釣りに引っかかるなよ。 いや、食いつきの悪い仕掛けを餌も付け替えず再投入するなよ、の方が妥当な突っ込みか?
558 :
デフォルトの名無しさん :2005/06/02(木) 20:26:53
まったくの初心者だけど、例えばこのページをファイル→名前を付けてデスクトップに
保存するとファイルとアイコンがでる、アイコンを右クリック→編集で
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0052)
http://pc8.2ch.net/test/read.cgi/tech/1114850497/l50 -->
<HTML><HEAD><TITLE>【初心者歓迎】Java質問・相談スレッド65 Update 1</TITLE>
<META http-equiv=Content-Type content="text/html; charset=Shift_JIS">
と表示される、
これはJava言語ですか?
560 :
デフォルトの名無しさん :2005/06/02(木) 20:54:01
なるほど、するとホームページはJAVAで書かれてるわけだ、 昔はやったインベーダやパックマンもJAVAでつくれる?
>>560 つうか、普通にJavaでつくったインベーダやパックマンが携帯で遊べるわけだが。
563 :
デフォルトの名無しさん :2005/06/02(木) 21:24:51
jpgやgifやサウンド等のデータを1つのファイルにまとめて通信でそのデータを 取ってきてそのデータからイメージとかを使用したいのですが パックファイルを行なうのに最低限必要なデータってどんなものがありますか? CではしたことがあるのですがJAVAはポインタがないので データが格納されてる開始のサイズとデータのサイズをもったりとかしないいけない かなとか思ったりしてるんですがどんな方法があるのかどんな方法でどんな利点が あるのか。教えてください。
>>560 釣られてしまうのは嫌ですが、
あなたが貼ったのはhtml(Hyper Text Mailing List)という、SGMLから派生した言語です。
>>563 JARにまとめることでいいのでは?
Cでのポインタを使わないプログラミング方法も知っているのであれば
そうムズいことないだろう。
>>563 ポインタがあろうがなかろうが、データの持ち方によって開始位置とサイズは必要だと思うが。
ポインタ使ってサイズとか知らないで使ってたのか そのレベルだと自前で作りこむよりJarでまとめればいい
568 :
デフォルトの名無しさん :2005/06/02(木) 22:17:36
君子 本を務む 本立ちて道生ずる (立派な人は基本を大切にする、基本がなっていろんな道が生ずる、) Java言語の基本がわからないので、さっぱりわからない。
Java というより、コンピュータの基本な。
>>568 きみこさんって有名なの?
その諺らしき1文は福沢諭吉か大隈重信のものっぽいが違うかな?
571 :
デフォルトの名無しさん :2005/06/02(木) 23:07:32
>>564 ナンデヤネン(^_^)√☆ (^ ^;
>>571 doctypeの指定がしてあるからです。
573 :
デフォルトの名無しさん :2005/06/03(金) 00:00:08
Mailing Listはないだろ。
>>573 お前のような器の小さい人間は出世しないぞ
あぁ、無職か。失礼。
575 :
デフォルトの名無しさん :2005/06/03(金) 00:39:38
器の問題じゃないだろ。書いた本人は気づくかもしれんけど、教えられた方は そのまま覚えてしまうかもしれないから指摘したんだよ。 適当に無職かとか言って、当たってたら精神的ダメージを与えられるとでも 思っているだろうけど、ちゃんと仕事有りますよ。それに今の時代、有能な人が 必ず仕事が有るとは限らないよ。有能すぎるが故に上司と意見が合わずに 首にされることだってあるんだ。安い給料で、簡単に言うこと聞く人間の方が雇 われるということもあるんだ。むやみに無職の人を馬鹿にするのはやめよう。 もう少し大人になろう。君が器うんぬんを述べてはいけない。 しかし、本当にネット弁慶が多いですね。現実世界ではらせぬ鬱憤をここでと ばかりに。以下(ry
ふだんからこうなのだが何か問題でも?
577 :
デフォルトの名無しさん :2005/06/03(金) 00:52:32
そう言い返す人が多いが、本当だったら、日本はアメリカ以上のに嘩っ早い国になっている。
>>575 教わった事をそのまま覚えればいいじゃないか。無能な奴は。
579 :
デフォルトの名無しさん :2005/06/03(金) 00:54:10
訂正 喧嘩っ早い
580 :
デフォルトの名無しさん :2005/06/03(金) 00:57:39
「無」と言う言葉に縁があるようだね。 発言内容も「無」だし。
FUCk YOU
FAQ U
583 :
デフォルトの名無しさん :2005/06/03(金) 01:48:20
あらら、もう言うこと無くなっちゃったの? やっぱりな
584 :
デフォルトの名無しさん :2005/06/03(金) 01:51:53
バカとかアホとかFuck youとか、何も言えなくなってしまった者が 最後に吐く悲鳴のようなものだ。スレを無駄遣いしてしまった。 もう止めます。
585 :
デフォルトの名無しさん :2005/06/03(金) 02:04:58
無 そして 無無 悟りへの禅
あらら、もう言うこと無くなっちゃったの? やっぱりな
むいみー
無=空=無自性=縁起=悟り
色即是空
ぬるぼ
591 :
デフォルトの名無しさん :2005/06/03(金) 09:17:28
NullPointerExceptionが出たのですが どこが悪いのでしょうか? 以下がソースの必要そうな部分です。 class Tes extends JFrame{ prvate Image bg; public Tes(){ bg = createImage(x,y); 中略 public void paint(Graphics g){ bg.getGraphics().clearRect(0,0,x,y); bg.getGraphics().fillRect(0,0,x,y); g.drawImage(bg,0,0,this); }
で、そのエクセプションは、どの部分で出たのかね?
593 :
591 :2005/06/03(金) 11:16:32
paintの部分です。
この行で発生した、という理解で正しい? >public void paint(Graphics g){ だとすると自分にはお手上げ。
paintのどこさ
>>591 >>コンポーネントが表示不可能な場合は null を返す。
>>GraphicsEnvironment.isHeadless() が true を返す場合は常に null を返す
だってさ。JFrame#createImage(int, int) (= Component#createImage(x, y))
addNotify()してからだとイケるかも。
597 :
591 :2005/06/03(金) 12:17:42
bg.getGraphics().clearRect(0,0,x,y); よく数えてみたら の部分でした。
さらに bgがnullなのか getGraphicsがnullなのか 判断するために分けて書いてみそ この程度なら問題ないが大量に描画するときとか 何度もgetGraphicsやるより一度取得してそれを変数に入れたほうが軽い そもそも、画像を生成するのは任意のタイミングだろうからそこで Imageを描画して、paintではdrawImageだけ入れるのが効率がいい paintってのはウインドウの重なり具合とか再描画のタイミングで何度も呼ばれるからね
599 :
591 :2005/06/03(金) 13:01:06
どうやら bg.getGraphics() がnullのようです。 判っても対処の仕方が分かりません。 どうしたらよいのですか?
インスタンス生成時でバッファ作成しているようなので基本的にはnullはこない が、このJFrameの生成やpaintを意識して読んでいたり他の部分のソースがないとなんともいえない
とりあえず、抜粋ではなくて、全ソースをのってけて。
質問です。 (JAVA初心者ゆえ、言葉に間違いがありましたら申し訳ありません) public class Buttontest extends JButton implements MouseListener { といった「JButton」を継承したクラスを作成しております。 オーバーライドしたメソッド paintComponent(Graphics g)にて g.drawImage(img ,0, 0, this); // 画像を描画、imgは取得済み で、画面を出してみたところ、 何も画像が表示されませんでした。 ためしに public class Buttontest extends JComponent implements MouseListener { 「JComponent」にしてみたら画像が表示できました。 「JButton」は「JComponent」から継承されたクラスなので 何か上書き(?)してしまっているのか?と考えました。 なぜ、「JButton」継承では画像が表示できず、 「JComponent」継承では表示ができたのでしょうか? また、「JButton」にて画像表示する方法がありましたら教えてください。
604 :
602 :2005/06/03(金) 14:23:15
>>603 すみません、説明不足でした。
目的はオリジナルのボタンコンポーネントを作成したいので
paintComponent()内部で、ボタンの絵を描いています。
(浮いた状態の絵、凹んだ状態の絵を切り分ける等)
これら、四角形などを最終的には
drawImage()で表示でき、
クリックしたら凹んだ絵と入れ替えもできて、
見た目ボタンになっているのですが、
なぜか、指定の画像が表示できない状態です。
(602で書いているように JCompornentにしたら絵が何故か出た)
ありがとうございます。
>>604 気になったのでJButtonのpaintComponentオーバーライドしてみたけど、
ふつうに自前の描画になったよ
メソッド名まちがえてるとかなんかない?
607 :
602 :2005/06/03(金) 16:59:13
描画の前にwaitForID()をしたところ 画像を表示する事ができました。 お騒がせしました。ありがとうございました。
608 :
デフォルトの名無しさん :2005/06/03(金) 19:38:18
imageの大きさを見るのになんでimageobserverを渡してやらないといけないんですか?
>>608 Imageの内容や幅はImageObserverが受け取る仕組みになっているから。
多分、JDK1.0の時代にHotJavaブラウザで動画GIFやプログレッシブJPEGを表示させたいあまりに、
Sunの技術者が間に合わせにこんな阿呆な仕様を考えたのだろう。
邪魔臭いならBufferedImageを使えばよい。
こっちはImageObserverを渡さなくていいから。
610 :
デフォルトの名無しさん :2005/06/03(金) 20:43:25
簡単なゲームプログラムを紹介するスレが立てれば興味湧く人もいるかもしれないけど。 さっぱりわからん
>>610 さんは何が言いたいのでしょうか。
さっぱりわからん
>>607 そういうおちだったか
Swingもなにも関係なかったな
JComponentでうまくいったのもたまたまだっただけと
613 :
591 :2005/06/03(金) 21:48:33
import java.awt.*; import javax.swing.*; class Draw extends Canvas{ int x,y; Image bg; Graphics d; Draw(){ x=300;y=300; d = bg.getGraphics();//ここで発生している bg = createImage(x,y); } public void paint(Graphics g){ d.clearRect(0,0,x,y); d.fillRect(0,0,x,y); g.drawImage(bg,0,0,this); } public void update(Graphics g){paint(g);}
614 :
続き :2005/06/03(金) 21:49:52
public static void main(String[] args){ JFrame fr = new JFrame(); Draw dr = new Draw(); fr.setBounds(10,10,300,300); fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); fr.getContentPane().add(dr); fr.show(); } } 一体どこが悪いのかさっぱりです。 あと、携帯からなんでタイプミスなどあるかもしれませんが コンパイルは通ったので実際のは無いと思います。
615 :
超初心者、 :2005/06/03(金) 21:59:34
>>611 例えばビルゲイツでも最初はゲームプログラムを作って遊んだそうだから、そういう
のがないかなと思って、
自分ができるのは、枠と顔文字を表示する事ぐらい、
例えば
<html>
<head>
<(´・ω・`)ショボーン >
<title>【初心者歓迎】Java質問・相談スレッド65 Update 1</title>
</html>
超初心者用のすれはありませんか?
まずSwingつかってるならCanvasのかわりにJCoponent使うべし それにGraphicsは表示してるときとかバッファが確保されてるときしかつかえんぞ
617 :
デフォルトの名無しさん :2005/06/03(金) 22:09:55
public class Vvvv extends Applet implements Runnable{ int x,y; Image off,img; Graphics og; Thread th = null; public void init(){ x=10; y=10; Dimension d = getSize(); off = createImage(d.width,d.height); og = off.getGraphics(); img = getImage(getDocumentBase(),"vvv.gif"); th = new Thread(this); th.start(); } public void paint(Graphics g){ og.fillRect(0,0,100,100); og.drawImage(img,x,y,this); g.drawImage(off,0,0,this); } public void run(){ while(true){ try{ x += 5; if(x<100) x=10; repaint(); th.sleep(500); } catch(InterruptedException e){} }}}
618 :
デフォルトの名無しさん :2005/06/03(金) 22:11:31
>>617 です
アプレットビューアーで読み込み中に、例外が発生しました。とでて、実行されません。
どうすれば、直りますか?
例外を発生させないようにすれば実行できると思うよ。
621 :
デフォルトの名無しさん :2005/06/03(金) 23:43:02
>>613 ぬるぽ発生原因の箇所を抜き出してみますた
class Draw {
Image bg;
Draw() {
bg.getGraphics(); //ここで発生している
}
public static void main(String[] args){
Draw dr = new Draw();
}
}
622 :
デフォルトの名無しさん :2005/06/03(金) 23:58:21
>>617 swingなら、実行は
appletviewer ファイル名じゃなくて
java ファイル名では。
>>622 Swingはアプリでもアプレットでも使うものだが
>>622 617のソースにmainメソッドがないのによくそういう発言が出来るなあ。
625 :
デフォルトの名無しさん :2005/06/04(土) 00:16:59
//画面に文字を出力するコード class Test01 { public static void main(String args[]) { System.out.println("ようこそJavaへ!"); System.out.println("Javaをはじめましょう!"); } } コンパイル成功するのに、実行すると失敗します。
あっそう。
publicなクラスじゃない
真面目に教えて頂けませんか?ふざけないでください!!!
偉そうですね。
>628 深呼吸して>627を読んでから>628のコードをよーく見直してみよう。ほら何か見えてきた。
C:\Documents and Settings\torao>copy con Test01.java //画面に文字を出力するコード class Test01 { public static void main(String args[]) { System.out.println("ようこそJavaへ!"); System.out.println("Javaをはじめましょう!"); } } ^Z 1 個のファイルをコピーしました。 C:\Documents and Settings\torao>javac Test01.java C:\Documents and Settings\torao>java Test01 ようこそJavaへ! Javaをはじめましょう! C:\Documents and Settings\torao>
スマソ ×628のコード ○625のコード
625ですけどもう自分で調べます。2ちゃんねらーで役に立たなかった ただのごみですね。もうきません。
public なクラスじゃないと main が実行できないと思ってる奴らって
おそらく
>>625 は
クラス名とファイル名とが一致していなくて
うまくいかねえんじゃねえの(ワラ
それか文字コードが糞なんだなw
実行するときに失敗したときのメッセージを
貼り付けなきゃ質問に答えにくいってことを
良く分かってない餓鬼だな
>>625 は
> それか文字コードが糞なんだなw 見当ハズレな指摘
ファイル名が全角文字になってる クラス名が全角文字になってる どちらかに全角スペースが入ってるw 考えられそうなものw
>>633 なるほど。きみの言わんとしている意味が、だいたい見当がつきました。
きみはこう言いたいのでしょう
イシャ逝ってくる!
639 :
デフォルトの名無しさん :2005/06/04(土) 02:07:18
かわいそうだけど、プログラム以外のことに努力した方が良いかもね。
640 :
デフォルトの名無しさん :2005/06/04(土) 02:19:43
ここで質問して解決しなかったことは俺は過去に2度しか無い。 こんなに役立つスレは無いぞ。それをゴミ呼ばわりするとは。
あんな狂ったガキから年金もらいたくねーな
実は10回も質問してないかな(笑)。 ところでおまいら、英語圏のサイトって、やっぱすごいな。 どうにもわからなくて煮詰まったときは、Web全体ググると、 ですでに議論されて、解決方法も紹介されている場合が多い。
3年で30回は回答してるが、自分の役に立ったことは無いな。確かにゴミスレだ
そりはよほど高度な質問をしているのでは。 誰もわからんときは、完全に無視されたりする。
あ、質問じゃなくて、解答ですか。失礼しますた。
質問数十回、解答数百回。最初のころは解答側 5 人くらいで捌いてたな。 初心者無視スレや死滅スレの遥か前だが、知らんことも結構あって役に立った。 でも最近はここに来ること自体減ったな。
648 :
デフォルトの名無しさん :2005/06/04(土) 03:22:35
そもそもゴミのような質問が多すぎなんだな。 どこかの大学の学生どもが 教えて君のように質問してくるんだろうけど 皆甘えん坊ばかり。しかも最近生意気な奴が多い。 なんでもかんでもただですぐに教えてくれると 勘違いしている。そして質問に答えてくれないと厨房臭いことを いって愚痴を吐き捨てる。だたをこねた餓鬼としか言いようがない。 自分で問題解決する能力なんてありゃしない。 Googleの使い方も知らんバカも多そうだし。 実際、大学院に行ってもYahooやgoo以外の検索エンジンは 知らずGoogleを全く使ったことがないバカがいたけどな。 そんなバカな先輩の影響を受けて真似をして 居直る学生はアフォだ。
でも、まあ初心者歓迎と書かれているからには有る程度仕方が無いかと。 問題は、人間としての初心者まで来てしまうことかな。
651 :
デフォルトの名無しさん :2005/06/04(土) 03:26:57
>>645 すべての面において素でそう言ってるならお前もバカだよ。
質問者の情報が少なければ少ないほど
曖昧になり質問に答えにくくなる。
何も情報も成しに、いきなり「教えてください」とか
エラーメッセージも例外メッセージもかかずに
いきなり「エラーがでましたどうすればいいですか」
「例外がでましたどうすればいいですか」
「動きませんどうすればいいですか」
「思うようにいきませんどうすればいいですか」
なんて抽象的で情報が少ないこと言われてもなあ。
ウンザリするだけ。OSやバージョン番号、どんなコードを書いたのかも
どんな動作手順をおこなったのかも書かずに
いきなりこんなことを言うヴァカ質問者が
多すぎてウンザリする。質問に答える側の立場になって
考える能力がない餓鬼どもが多すぎてウザイわ。
最近は
>>1 が整備されたのと、宿題スレあるおかげでかなり平和になったと思う
>>652 まだまだだな。
バカ質問者はメーリングリストでこんな質問したら
徹底的に叩かれるだろう質問を平気でやっている。
2chは匿名だから適当でもかまわないって態度が見え見えでウザイ
じゃ初心者スレなんて来なけりゃ良いのに… なぜか? それはお前が初心者しか相手にできない派遣だからだろ m9(^Д^)プギャー
655 :
デフォルトの名無しさん :2005/06/04(土) 03:33:42
マ板でもみたのだが この顔文字 --> m9(^Д^) 流行ってるのか。 バカにしかみえないぞ。 マ板だからバカ用顔文字ってことか
m9(^Д^)プギャー
657 :
デフォルトの名無しさん :2005/06/04(土) 03:38:29
>>654 「いやなら来なけりゃいい」
そういうことをいうお前は
はてはアフォ質問者の一人だな。
お前みたいに
「いやなら来なけりゃいい」
という消極的な態度をとるのではなく
スレッドを良いように改善するよう努めるほうが
効率的だ。そうは思わんか。
ムカつく奴がいたからといって
「嫌なら引っ越せばいい」なんてそう簡単に
引越しにかかる費用も考えずに
できるとでも思ってるのかと。
「嫌ならやめればいい」とかすぐに短絡的に
言う奴はいい加減な奴で責任感のかけらもない
奴が言う台詞だってことをキモに命じておくんだな。
よく悪徳セールスマンが使う台詞の一つだからな。
すばらしい、651さんは千里眼をお持ちのようだ。 1の情報を100にも膨らませることができる。 それなら625の言いたいこともわかったのでは。
> スレッドを良いように改善するよう努めるほうが > 効率的だ。そうは思わんか。 アホか、初心者は入れ替わり立ち代り来るのにそんな作業は無駄。また明日も 空気の読めない初心者君が沸いてくる。まぁ偉大なる千里眼をお持ちの派遣が そういう背景を無視して歴史を変えてくれることに期待しようw fj 行けば? m9(^Д^)プギャー
千里眼を持ってる割には的外れなときも有るのね。 文体が全然違うでしょ。それとも625にはそれくらいの芸当が できると思われたかな。 大丈夫、よくするなんて考えなくても。 このスレのことより、性格をなんとかしないと、人から嫌われるよ。
バカ は sage ない法則
|:::::::::::::::::::::::::::::::
|" ̄ ゙゙̄`∩::::::::::::::::
|,ノ ヽ, ヽ:::::::::::::::::::::::::
|● ● i'゙ ゙゙゙̄`''、::::::::::::::::
| (_●_) ミノ ヽ ヾつ::::::::::
| ヽノ ノ● ● i::::::::::
|{ヽ,__ ) ´ (_●_)`,ミ:::::::
| ヽ / ヽノ ,ノ::::::
>>657 ・・。
本気でスレを良い空気に持って行こうとしてるなら
>>657 のような
口調で書き込みはしないだろうな。
派遣の愚痴を書き殴らせるのも初心者スレに必要な隔離機能ですな。
タイガーマスクのエンディングの歌をふと思い出した。
>>660 -
ここまで自作自演に必死になるお前の異常さに乾杯
(・∀・)ニヤニヤ
>>648 の
>大学院に行ってもYahooやgoo以外の検索エンジンは
>知らずGoogleを全く使ったことがないバカ
が気になった。
わいてるんではないだろうか?
結局
>>625 はつりだったか
質問して20分立たないで撤退とは
どの掲示板でもさすがに無理
マルチスマソ・・&・お聞きします。 たとえば、aという数列関数があったとして、 そのaの保持できる桁数をより増やしたいのですが、 どういうふうに記述したらいいでしょうか・・・ var a : Real ; ではできないのでが・・・ よろしくおねがいします。
673 :
デフォルトの名無しさん :2005/06/04(土) 13:40:59
>>668 そんなバカが大繁殖しているのが悲しい。
しかもYahooは内部でGoogleを使っているから
Googleは要らないとまで主張するバカもいる。
そんな奴が情報系でしかも教授の息子ってんだから
聞いているだけでムカツきます。
今のYahooはGoogle使ってないだろと
674 :
デフォルトの名無しさん :2005/06/04(土) 13:43:14
やっぱり来ました。
676 :
デフォルトの名無しさん :2005/06/04(土) 13:47:43
やっぱり来ました
677 :
デフォルトの名無しさん :2005/06/04(土) 13:47:57
厨氏ね
678 :
デフォルトの名無しさん :2005/06/04(土) 13:49:16
Fire
679 :
デフォルトの名無しさん :2005/06/04(土) 14:02:02
すいません教えてください。 下のプログラムは1から入力した数までの合計を求めるプログラムなんですが 処理結果だけでなく途中経過まで出力されてしまいます。結果だけ出力するには どうすればよいでしょうか。 import java.io.*; public class ch2 { public static void main(String[] args)throws IOException{ System.out.println("いくつまでの合計をもとめますか?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int x = Integer.parseInt(str); int sum = 0; for(int i=1; i<=x; i++){ sum += i; // System.out.println("1から"+x+"までの合計は"+sum+"です"); } } }
680 :
デフォルトの名無しさん :2005/06/04(土) 14:03:09
こんにちは。 SQLを20本10万件デタ−が入っているテーブルに発行するプログラムがあります。 そのプログラムを実行するとCPU使用率がかなり上がるので抑えたいと思っています。 現在SQLを一括で20本生成して一括実行、一括クローズしているのですが、 1本づつ生成、実行、クローズ、SQLのStringはnullで初期化をすればサーバーへの 負担は減るのでしょうか? かなり微妙な話だと思うのですがご教授ください。
681 :
680 :2005/06/04(土) 14:03:56
↑デター → データです すいません
Google を使ったことあるのが自慢なのか? なんか教授の息子にコンプレックス丸出しだな (w
>>679 この行を for ループの外に出せばよいです。
> System.out.println("1から" + x + "までの合計は" + sum + "です");
>>683 ありがとうございました!
初めての質問でとても緊張しましたが
丁寧におしえて貰えたのでよかった!
685 :
デフォルトの名無しさん :2005/06/04(土) 14:23:35
>>681 デタ━━━(゚∀゚)━━━!!!!!
686 :
デフォルトの名無しさん :2005/06/04(土) 14:26:04
>>682 残念ながらコンプレックス持たなくても
教授の息子は傲慢は奴が多いよ。
自分が偉いと思いこんでいて
親から教わったことはどんなに間違ったことでも
信じちゃう痛い香具師がいるんだってよ。
勘違いしている成り上がり零細企業の社長と同レベルな
香具師らだよ
分かった分かった、お前はコンプレックスも偏見も持ってない。 (´,_ゝ`)プッ
まあ教授の息子は おぼっちゃまタイプが多くてろくな奴がいないのは 事実だな
689 :
デフォルトの名無しさん :2005/06/04(土) 14:31:48
実は
>>687 は教授の息子で
それで変人扱いされていることにコンプレックスを感じているようですプ
690 :
デフォルトの名無しさん :2005/06/04(土) 14:33:07
教授の息子は社会経験に乏しく 外の世界しゃ社会人の常識を知らないまま 親の後を継いでいく香具師が多いから まさに彼にとっては知らぬが仏な世界が多いこと多いことw
691 :
デフォルトの名無しさん :2005/06/04(土) 14:35:56
>>680 ええーと
そのSQLとはなんのことやら
すでにテーブルにデータがあるが
クエリを実行するつまり発行することで
データを取り出すということだね。
まあそりゃどんなクエリ書く
かによるわな。
副問い合わせを使わない。
Joinを使わない。
ORを使わない。
といったテクニックを心がければ
クエリも大分早くなるもんよ
692 :
680 :2005/06/04(土) 14:36:10
ご教授お願いします
何か キモイ 低学歴が張り付いてんのな
695 :
680 :2005/06/04(土) 14:38:03
SQLの実行時間が長いとサーバーに負担がかかるものなのでしょうか?
696 :
デフォルトの名無しさん :2005/06/04(土) 14:40:18
>>695 クエリや設定による。
それと、ちゃんとデータソースは使ってるよな。
とりあえずどういうクエリなのか貼り付けてみろ。
あれてるところすいません。 windows XP上でSystem.nanoTime()の実際の時間精度を知りたい のですが、何かよい方法はあるでしょうか?>計測アルゴリズム とか。その方法とか。 現在、PCを用いてリアルタイム制御・計測(そんなに厳密なリアル タイム性は求めてません)をしようとしています。 これまで使用していたDate().getTime()に比べると格段によくなっ ていると思うのですが、ご助言いただければありがたいです。 ちなみにgetTime()のときは15msecくらいしかできませんでした・・
698 :
680 :2005/06/04(土) 14:41:53
すいません、そりゃそうですね。 SQLはごく簡単なものです。 >現在SQLを一括で20本生成して一括実行、一括クローズしているのですが、 >1本づつ生成、実行、クローズ、SQLのStringはnullで初期化をすれば >サーバーへの負担は減るのでしょうか? 上の点を知りたいのですが
>>697 nanoTime()のソースコードは見た?
さっきからつたない日本語で age ながら質問と解答してるのは同一人物?
701 :
デフォルトの名無しさん :2005/06/04(土) 14:44:11
>>698 で、実行しているのは
SELECTなのかそれともINSERT,UPDATE
なのかどっち。
それかデータベースは何を使っているのか。
nullなんか使ったら逆に遅くなる
教授の次男ですからw
>>697 まだです。というか、そこまでのスキルはなくて・・・
精度がプラットフォームに依存するということだったので、
自分の環境でどのくらいの精度がでるのか実験で確認しよ
うとしているところでした。
>>693 が馬鹿な低学歴教授ですいません。
おかげで
>>693 の息子もバカになりまして。
>>693 がバカになってしまったことについても
申し訳ありません。
>>698 意味がよく分からん。20本の (Prepared)Statement を一括で生成し、実行、クローズしてるのを
一回ずつ生成、実行、クローズするという話か? それとも SQL の生成って文字列操作の話を
してるのか?
つたないソースですが、現在はこれ(要約ですが)をループしてリアルタイム?で 回してます。 real_time_last = (double)System.nanoTime()/Math.pow(10, 9);//現在の時間の獲得 while(Math.abs(global_time -Math.abs(real_time -real_time_start)) <= delta_time*0.98){ //delta_timeはサンプル時間 real_time = (double)System.nanoTime()/Math.pow(10, 9); }
低 学 歴 がよほど気に触ったらしいな (禿藁 いや隠さなくてもお前の文体や内容から滲み出てんだけどさ〜 ゲラ
708 :
デフォルトの名無しさん :2005/06/04(土) 14:51:15
>>703 Eclipseを使えば
簡単にソースコードを見られると
エディタで
System.getNanoTime();
と入力して
.getNanoTime();の部分をマウスでダブルクリックして
F3キーを押してごらん
709 :
680 :2005/06/04(土) 14:52:27
>>705 >20本の (Prepared)Statement を一括で生成し、実行、クローズしてるのを
一回ずつ生成、実行、クローズするという話か?
そうです。
瞬間的にCPUがあがってしまうのを抑えるにはどちらが良いのでしょうか?
簡単なselectしか発行しません
>>707 そういうレスを返すおまえさんのほうが
よほど気に障っているように見えるがw
粘着なところが特にw
>>706 Math.pow(10.9)とか
delta_time * 0.98
なんてループの中で毎回
計算するよりループを実行する前に
あらかじめ計算を済ませてしまいたい
ところだが。
それともその冗長なコードは
ベンチマークのために
わざとそうしているのか?
>>709 大して変わらん。SQL 発行の間に適当な sleep でも置くか CPU 増設しろ。
負荷は使用率の時間積分だ、実行時間が長くなれば負荷は変わらないが使用率は落ちる。
むしろ SQL 自体をチューニングするか DB のチューニングパラメータを変えろ。
>>709 簡単なselectというけど
select * fromとするより
seleclt カラム名1,カラム名2 from
としたほうが早くなることを知っておるな?
一回ずつclose()するのは
効率が悪い。
ConnectionやPreparedStatementオブジェクトを
何度か再利用してみるといい。
データベースにはちゃんとインデックスをつけているか?
714 :
680 :2005/06/04(土) 15:00:50
>>712 少し気にしすぎていたようです。
SQL文見直してみます。ありがとうございました。
>>710 そろそろ夕刊配達の時間だろ、こんなところで何やってんの? w
716 :
デフォルトの名無しさん :2005/06/04(土) 15:03:56
Dateクラスのコード public long getTime() { return getTimeImpl(); } private final long getTimeImpl() { if (cdate != null) { normalize(); BaseCalendar cal = getCalendarSystem(cdate); fastTime = cal.getTime(cdate); } return fastTime; } Systemクラスのコード public static native long nanoTime(); これを見るとnanoTime()のほうがはやそうに見えるな。
717 :
デフォルトの名無しさん :2005/06/04(土) 15:04:50
>>715 お前さんはそろそろコンビニでバイトだろ、
こんなところで何やってんの?w
>>714 はgive & takeも知らずtakeしかしないウザイ奴
720 :
デフォルトの名無しさん :2005/06/04(土) 15:06:39
お聞きします。 たとえば、aという数列関数があったとして、 そのaの保持できる桁数をより増やしたいのですが、 どういうふうに記述したらいいでしょうか・・・ var a : Real ; ではできないのでが・・・
バカ は sage げない法則
>>720 その言語は Java と関係があんの?
フィードバックとか言ってみたいお年頃
フィードバック制御
>>686 おまいが傲慢って言うな。
笑いすぎて腹が痛い。
nanoTimeは制度いいよ ただ、ミリ単位に比べてマシンパワーを食いやすいのと 現在時刻を表すものではないことに注意
>>727 Linux だと両方とも gettimeofday使ってるみたいだから変わらんかも。
Windows だと currentTimeMillis は GetSystemTimeAsFileTime、
nanoTime は QueryPerformanceCounter、みたい?
マルチタスク OS でナノ秒まで精度上げてどうすんのさ。
>>729 一応ナノまでAPI的には扱えるという程度だからええじゃないか
ミリじゃ足りなくて100マイクロあたりはほしいとかはよくあること
Windowsの実装見る限り大丈夫だし、ミリ秒*1000000という実装でもいい
いままではどの環境でもつかえるように最大公約数的に貧弱だったけど
1.4あたりからは環境によって協力になるが、そうでない環境でも一応動くという
方向にかわってきてるからね
現実的な線でいいじゃないか
>>721 質問スレで質問者がageているのを見てそう思っているのなら、
質問に答えてやれよ。
>>731 質問っつーかネタだと思ったのでは?
マルチポストだし。
ここネタスレだしな
735 :
697 :2005/06/04(土) 18:51:58
エロい皆さん、いろいろとありがとうございました。 仕様上5msecくらいのループで回れば十分だったのですが、 いろいろ試してみたところ、windowsでも2msecくらいまで いけました。 getTime() とは比べものにならないくらいいいですね。
>>735 new Date().getTime() と System.currentTimeMillis() は
オブジェクト生成コスト考えなければ、
呼んでるネイティブメソッドは同じだったと思われ。
ん? System.currentTimeMillis() と nanoTime() ってのは一緒なのですか?
>>737 定義は違う。詳しくはAPIリファレンス参照。
>>728 曰く、Linux では最終的には同じネイティブメソッドが呼ばれるらしい。
739 :
デフォルトの名無しさん :2005/06/04(土) 21:10:42
DB接続してSQLを実行しようとする下記のプログラムを書いたとき ArrayList objAry = new ArrayList(); Connection db = null; PreparedStatement ps ; ResultSet rs try { //SQLの取得 DBmethod dbm = new DBmethod(); dbm.open(); //データベースオープン String sql = dbm.getSQL(); //SQLを取得 ps = db.prepareStatement(sql); // 他のファイルからSQLを取得してResultSetに格納 rs = objPs.executeQuery(); //実行 ・…… これを実行するとNullPointerExceptionになってしまいます SQLを個別に見たところ特にnullがある箇所はなかったですのですが… String sql = dbm.getSQL()まではシステムアウトでログが表示されているので 問題はdb.prepareStatement(sql);と思われますが、どうしても原因わかりません またdbm.close()というクローズ処理でもNullPointerExceptionになってしまいます 何がわるいのか、どうぞご教授ください
ガッ
741 :
デフォルトの名無しさん :2005/06/04(土) 21:15:53
db.prepareStatement(sql); のdbってNULLのままだよねこの場所では・・・
提案1.スタックトレースを晒す。 提案2.デバッガで NullPointerException にフックをかけ、発生時の変数の値を覗く。
743 :
デフォルトの名無しさん :2005/06/04(土) 21:17:26
DBmethod dbm = new DBmethod(); dbm.open(); //データベースオープン String sql = dbm.getSQL(); //SQLを取得 何かいろんなことをDBmethodにやらせているようだけど気持ち悪くない?
744 :
デフォルトの名無しさん :2005/06/04(土) 21:28:35
>744 > // データベースへの接続を確立 > Context ctx=new InitialContext(); > DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/Struts"); > db=ds.getConnection(); このコードを削った理由を教えて欲しいのだが。 つーか、NullPointerExceptionってどういうときに発生する例外か分かってるか?
746 :
デフォルトの名無しさん :2005/06/04(土) 21:42:20
>>745 Context ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/Struts");
db=ds.getConnection();
これはみてなかったです
というかココって何をしてるのでしょうか?
他のサイトとか参考に見てみるとない方が多かったので…
747 :
デフォルトの名無しさん :2005/06/04(土) 21:42:36
>>745 >つーか、NullPointerExceptionってどういうときに発生する例外か分かってるか?
多分わかってないんだろうね
>>744 の発言でそれがわかる
748 :
デフォルトの名無しさん :2005/06/04(土) 21:44:56
>>746 ま、まだ知らないことが多すぎる・・・
JDBCでプログラミングした例題からはじめたほうがいいと思う
ぬるぽの意味が理解できないならJDBC以前の話じゃないのか?
データソースをJNDIで取得するのはJDBCとは関係ないし
>>744 db = null した直後に、そのdbにprepareStatement()させようとしている。
しかしdbはnul、nullはオブジェクトでもなんでもない空白なので
prepareStatement() なんてメソッドを実行できるわけがない。
よってぬるぽ。
その削った部分は、dbにデータベースへの接続オブジェクトを格納している。
削ったら接続しないんだから動くはずが無い。
>>749 その言い方だと絶対になければいけないって解釈になってしまうぞ
別になくても動かそうと思えば動かせなかったっけ?
ないソースなんかも結構あったような気がするが
>750 おいおい。 ContextからDataSource取ってきて、というのはサーバサイドの文脈で出てくるのが普通だから 必ずそれがなきゃいかんてわけじゃないが それにしたって、どこかでConnectionを取ってくるなりしなきゃJDBCが使えるわきゃないだろ。 (昔ながらのClass.forName()してからDriver.getConnection()とか)
753 :
超初心者、 :2005/06/04(土) 22:23:18
難しすぎる、誰かインベーダーゲームのプログラム教えて、
>>753 そのまえにどこから教えればいいのか教えれ。
パソコンの電源ボタンの位置から教える必要はあるのか?
断る。
>>753 System.out.println("インベーダーゲーム");
System.out.println("GAME START");
Thread.sleep(5000);
System.out.println("GAME OVER");
757 :
デフォルトの名無しさん :2005/06/04(土) 22:33:33
>>754 では、それから教えてくれ
俺のパソコンの電源の位置はどこなのか?
あと立ち上げるの意味も
758 :
デフォルトの名無しさん :2005/06/04(土) 22:41:03
Robert→ロバート McQueen→マックイーン George→ジョージ Mike→マイク Mikenako→三毛猫 このような英語およびローマ字の 日本語変換プログラムの作り方を教えてください プロが作っても相当時間かかるのでしょうか?
762 :
デフォルトの名無しさん :2005/06/04(土) 23:04:28
>>757 >
>>754 > では、それから教えてくれ
> 俺のパソコンの電源の位置はどこなのか?
それはお前の目の前にある。
キーボード上のPowerキーを叩け。
>>756 'class' または 'interface' がありません。
ってでてきます。お願いします。
764 :
デフォルトの名無しさん :2005/06/04(土) 23:05:49
戦争だーーーーーーーーーーーーーーー
765 :
デフォルトの名無しさん :2005/06/04(土) 23:11:31
搭載メモリ容量が1GBのとき、最大ヒープメモリサイズを -Xmx2048mとしても実行 できてしまうのはなぜ? スワップファイルを使っているから?
766 :
デフォルトの名無しさん :2005/06/04(土) 23:25:34
うん
767 :
デフォルトの名無しさん :2005/06/04(土) 23:26:02
あとは、細かいところいじるのが好きな人が説教してくれる
宣戦布告だ
javaのAudioデータってAppletクラスのplay以外で鳴らす方法無いのですか? javaでゲームを作ろうとしているものです。 バッファに音を溜め込んで鳴らすみたいな事は出来ないのですか?
JavaSoundはもう5年前からありますが
771 :
デフォルトの名無しさん :2005/06/04(土) 23:57:55
>>761 いやいや、これはボトムアップ手法なんですよ。
>>769 > javaのAudioデータってAppletクラスのplay以外で鳴らす方法無いのですか?
まずこんな疑問が出てくることがおかしいことに気付くことが重要。
こんな簡単なコードが動きません。スペース押しても反応せず。 public void keyTyped(KeyEvent e) { if(e.getKeyCode()==KeyEvent.VK_SPACE) { System.out.println("you pushed space."); key = "space"; } System.out.println(String.valueOf(e.getKeyChar()));←これは出てくる }
774 :
デフォルトの名無しさん :2005/06/05(日) 01:59:11
デバックするか頭使って解決しよう public void keyTyped(KeyEvent e) { System.out.println(e.getKeyCode());//←コレを入れてスペース押したとき何が表示されるか調べれば解決したモ同然(モがおかしくてすいませんバグです) if(e.getKeyCode()==KeyEvent.VK_SPACE) { System.out.println("you pushed space."); key = "space"; } System.out.println(String.valueOf(e.getKeyChar()));←これは出てくる }
>>774 返信ありがとうございます。
どのボタンを押しても0が表示されました。
どうしてでしょうか・・・
777 :
デフォルトの名無しさん :2005/06/05(日) 08:42:11
初めまして。 検索エンジンを使用しても理解できないので質問します。 Javaプログラミングで何ができるのでしょうか? よろしくお願いします。
純粋なJAVAではできないこと: 1.ネイティヴなアプリケーション
JNIも立派に純粋なJavaの一部だ
すいません、ちょぃと教えてください。 DOS窓でコンパイルするときは何のエラーもでないのですが、 eclipseでコンパイルすると下記の行で怒られます。(なぜ?) どうしたらよいのでしょうか? freq = dObj.valueOf(itr.next().toString()); // double to doubleで怒られる 変数 Double dObj = new Double("123.0"); freqもダブル
>>781 Double.valueOf() は double 型じゃなくて Double 型を返す。
freq = Double.valueOf(...).doubleValue();
または
freq = Double.parseDouble(...);
としろ。DOS 窓だとうまく行く件は知らん。JDK5.0 でも使ってるのか?
783 :
デフォルトの名無しさん :2005/06/05(日) 10:27:09
>>782 special トンクス!!
ご指摘のとおり、JDK5.0使ってます。
double 型と Double 型があるなんて知りませんでした・・orz
あ、あげてしまった・・・吊ってきます
785 :
デフォルトの名無しさん :2005/06/05(日) 10:33:19
さ、さげてしまった・・・吊ってきます
それが2chの醍醐味だと思われマスク
リクエストがありましたので、とりあえず再登場!! 785は私ではありませんので、念のため それにしても、double 型 と Double 型 の違いが分からんとです。 oqz
リクエストがありましたので、とりあえず再登場!! 784, 785は私ではありませんので、念のため それにしても、doubleclick と tripleclick の違いが分からんとです。 oqz
>>788 プリミティブ型って知ってる?
>>789 doubleclickは、左右のボタンを同時に押さえること
tripleclickは、ホイールの前後と右ボタンを同時に覚えること
まぁオートボクシング対応使え
>>790 テラサンクス!!
ここはエロくていい人ばかりですね。
クラス関係のことかなと感じてたのですが、いい勉強になりました>プリミティブ型...φ(´∀` );
793 :
デフォルトの名無しさん :2005/06/05(日) 12:38:39
初めまして。 検索エンジンを使用しても理解できないので質問します。 Javaプログラミングで何ができるのでしょうか? よろしくお願いします。 さっき質問したのにイキナリ無視か? ここは、初心者掲示板なのだろう? クライアントのことを考えて答えをだすのがあんたらの役目だ!
態度悪すぎ。答えるわけないだろう。ヴォケ。
appletとawtでX*Yの 1 2 1| ̄| ̄| 2| ̄| ̄| 3| ̄| ̄| 4| ̄| ̄| 5| ̄| ̄|  ̄ ̄ こういう板を表示するとして マスの中をクリックすると、( x, y )( x=1,2,3,4,5, y=1,2 ) という情報をシステムが読み込んでくれるように、したいのですが どうやったらいですか?
GridLayoutに並べたコンポーネントから通知すれば良いんだろうけど、 通知先のシステムって誰?
一枚のキャンバスにマスを描くなら、onClickのときにマウス座標から逆算だな。
初めまして。 検索エンジンを使用しても理解できないので質問します。 Javaプログラミングで何ができるのでしょうか? よろしくお願いします。 おい、おまえら、答えてくださいよ。 煽るしか脳がないのですか?ププ
800 :
デフォルトの名無しさん :2005/06/05(日) 15:56:35
>>798 多分そういうやりかた俺もやると思うけど
もう少し頭使ったらかっこいいやり方できそう
マスが2x5以外のときでも対応できるようにとか・・・
何ができるのかわからないほど脳が機能してないんですね
802 :
デフォルトの名無しさん :2005/06/05(日) 16:00:19
>>799 Webアプリケーション
モバイルアプリケーション
デスクトップGUIアプリケーション
CUIアプリケーションができる
カテゴリで言えば
テキスト
マルチメディア
グラフィック
通信
ができる
漏れは***のリアルタイム制御しようとしてる・・・・
804 :
デフォルトの名無しさん :2005/06/05(日) 17:12:11
木村***のリアルタイム制御ってある意味すごいね
>>802 UIのないサーバーやバッチ処理はできないという理解でよろしいですか?
カテゴリでいえば、学術演算などはできないという理解でよろしいですか?
807 :
デフォルトの名無しさん :2005/06/05(日) 18:18:12
808 :
デフォルトの名無しさん :2005/06/05(日) 18:18:50
木村カエラのリアルタイム制御はできますか?
810 :
デフォルトの名無しさん :2005/06/05(日) 18:45:10
out("HeyYouListen!あなたの求める未来をSo必ずたどりつけるはず素敵な人生の始まり思ってるより良くなるから君のためにずっと歌ってあげるから\n");
他の言語と比べてできない事を言ったほうが早いだろ。 ・ハードウェアを直接制御できない → デバイスドライバを開発できない → OS を開発できない → 計測機器やロボット等の制御ができない ・OS 固有の情報や機能を使えない → OLE などが使えない → Java アプリの中に Excel シート埋め込むようなアプリはできない → ファイルシステムの低レベルな機能が使えない → デフラグや fdisk、AntiVirus のようなシステムツールが開発できない → メモリに乗ってるデータをぶっ壊せない → ゴミ箱を空っぽにできない、デスクトップのテーマを変えられない、etc. JNI や外部コマンド、追加ライブラリ使えば何でもありだからそれは抜きでな。 あと標準機能であるか、Pure Java で作れるか、Pure Java で作るのが現実的か ってのは全部別問題だからよろしこ。
812 :
デフォルトの名無しさん :2005/06/05(日) 18:46:34
なに、乗っかっちゃってるんだか・・・
>>811 のお守り お花マーガレッツ!
>>811 ようするになにもできないということですね。
814 :
デフォルトの名無しさん :2005/06/05(日) 18:47:36
setArrで配列argsの要素を初期化後、要素を不変にしたいのですが
どうすればよいのでしょうか?
class A{
private final String args[]= {null,null};
void setArr(String s){
for (int i = 0; i < 2; i++){
args[i] = s;
}
}
}
ttp://www-6.ibm.com/jp/developerworks/java/030117/j_j-jtp1029.html 上記「finalフィールドの制限」の//Immutableの方を参考にしてみたのですが
getStates()メソッドのreturn文でEclipseが文句を言いやがります。
"ListからString[]には変換できません"とな。
そりゃそうなんだろうけど、どうすりゃいいのでしょうか?
815 :
デフォルトの名無しさん :2005/06/05(日) 18:47:45
「中畑さん、今日の811はどうなんですか?」
ウルセー
>>815 「右肩が開く悪いクセがでちゃってますねぇ〜」
マジレスすれば、811はなかなか(・∀・)イイ
ハードウェアを弄るような部分はインターフェイスだけJava側に 用意してより低位の実装を呼び出す。(JNI) 火星探査機を動かしてるJavaもこんなかんじなんだろうな。
まじめな答えを茶化す風潮に警鐘を鳴らしておきたい
>>814 言ってる意味は理解できませんが、
キャストすればいいっていう場合じゃありませんね。
>>814 配列型を immutable にすることはできないので、Collections.unmonifiableList() で
不変な List として持っとけ。多分そのコードは書きかけでこう書きたかったのだろうと妄想。
List immutableList = Collections.unmodifieableList(Arrays.asList(args));
>>820 がもっと若ければ見どころのある若者といえたのだが
|::::::::::::::::::::::::::::::: |" ̄ ゙゙̄`∩:::::::::::::::: |,ノ ヽ, ヽ::::::::::::::::::::::::: |● ● i'゙ ゙゙゙̄`''、:::::::::::::::: | (_●_) ミノ ヽ ヾつ:::::::::: | ヽノ ノ● ● i:::::::::: |{ヽ,__ ) ´ (_●_)`,ミ::::::: | ヽ / ヽノ ,ノ::::::・・。
827 :
820 :2005/06/05(日) 19:15:50
もう82のオッサンです。
828 :
デフォルトの名無しさん :2005/06/05(日) 19:17:48
829 :
デフォルトの名無しさん :2005/06/05(日) 19:19:56
質問させていただきます。 Cだと数値を表示する時に printf(" %4d \n", hoge); のようにして、表示桁数を4桁に揃える事ができますが、javaでのやり方がわかりません。 教えて下さい。
>>821-824 ありがとうございます。
不変なリストが作りたかったんですよ。
サンプルコードが間違っていたんですね。
助かりました。
832 :
デフォルトの名無しさん :2005/06/05(日) 19:23:06
同じだろ?5.0なら
>>829 NumberFormat nf = new DecimalFormat("0000");
System.out.println(nf.format(10));
>>831 >>833 ありがとうございました。
で、10が
0010 じゃなくて
10 のように表示する方法はないでしょうか?
>>834 MessageFormat mf = new MessageFormat("{0,choice,0# {0,number,0}|10# {0,number,0}|100# {0,number,0}|1000<{0,number,0}}");
System.out.println(mf.format(new Object[]{new Integer(10)}));
超ベタ。自分で作れ。
または JDK 5.0 使え。
ありがとうございました。
>>834 NumberFormat nf = new DecimalFormat("####");
System.out.println(nf.format(10));
>>837 C:\Documents and Settings\torao>copy con a.java
import java.text.*;
public class a{
public static void main(String[] args){
System.out.println(new DecimalFormat("####").format(10));
}
}
^Z
1 個のファイルをコピーしました。
C:\Documents and Settings\torao>javac a.java
C:\Documents and Settings\torao>java a
10
C:\Documents and Settings\torao>
>>838 もし、だけど、せっかくだから名前欄にtoraoって書けよ
おまいらいいヤツばかりだな。
842 :
デフォルトの名無しさん :2005/06/06(月) 14:38:17
すいません、ちょっと教えてください>超エロい人 以下のプログラムをループさせていくと、(int)(dt*1000.0) が 1035 を 超えた次のループで、1039 --> 1044 --> 1049 --> ... となってしまいます。double形式ではちゃんとインクリメント されているのですが、キャストするとなぜこのようになるのか、 原因を教えていただければとても助かります。 double dt; dt = dt +0.005;
不動小数点数 誤差 とかで google で調べると良いよ。 対策としては、 dt += 5 と、整数で管理して、使うときに 1000.0 で割ること。 (本当に割ると遅いので、普通は 0.001 を掛ける)
844 :
デフォルトの名無しさん :2005/06/06(月) 17:04:15
>>843 ありがとうございますた。
さっそくお勉強してみます。
>>843 それが解決になるのかわからんけどな
ほしいのが誤差ありの浮動小数点なのか誤差のない数値なのか分からん以上はな
846 :
デフォルトの名無しさん :2005/06/06(月) 17:25:06
初めて勉強をしています。 そもそも環境設定がいまいち分からないのですが、 DOSでjavacというのを実行しても、 「javacは内部コマンド、外部コマンド操作可能なプログラム、またパッチファイルとして認識されません。」と出てしまうのですが、 これは環境が問題なのでしょうか?
たまには質問してもいい? 今オセロ風のゲーム作ってて、 実行すると時々おかしな動きをするんだ。 黒と白がいつのまにか入れ替わっててたり、 コンピュータの番で打てるはずなのにパスしたり、 それも決まって58〜60手目(最後の3手以降)で 起きるんだワ。 こんなときってどういうデバッグ手法を使うのがいい? 環境はJDKとLinuxです。
ステップ実行とかいろいろとあるけど、ゲームの場合そう簡単にはいかないが Java以外でゲーム自体のデバッグ作業をしたことがあるかどうか 決まっておきるなら手を入れるのは簡単だとおもうんだけどね
851 :
デフォルトの名無しさん :2005/06/06(月) 20:59:03
サーブレットの初期段階なんですけど。jdk1.5.0_03でTomcat5.5.9です。 import java.io.*; import javax.servlet.http.*; import javax.servlet.*; public class Hello extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { PrintWriter out = response.getWriter(); out.println("<html><head><title>Hello</head></title><body>"); out.println("Hello"); out.println("</body></html>"); } } をコンパイルしようとすると、 Hello.java:2:パッケージjavax.servlet.httpは存在しません。 Hello.java:3:パッケージjavax.servletは存在しません…… エラー6個 と出ますなんででしょうか?
852 :
デフォルトの名無しさん :2005/06/06(月) 21:14:38
>>849 >>850 さんありがとうございます
が、自己解決しました
なんと、オセロと言うゲームは
>黒と白がいつのまにか入れ替わっててたり、
>コンピュータの番で打てるはずなのにパスしたり、 それも決まって58〜60手目(最後の3手以降)で 起きるんだワ。
って言うゲームなんだワ
853 :
デフォルトの名無しさん :2005/06/06(月) 21:16:16
釣られ気分でロケンロール 「ノンストップノンストップザミュ〜ジ〜ック」 「ドン・ストップだよねクスクス」 「クスクスはイカ天」
855 :
デフォルトの名無しさん :2005/06/06(月) 21:28:30
856 :
デフォルトの名無しさん :2005/06/06(月) 21:29:39
「クラスがみつからんわぁボケェ」言われましたわぁ
>>852 >>コンピュータの番で打てるはずなのにパス
ルール違反なんだが。
858 :
デフォルトの名無しさん :2005/06/06(月) 21:31:08
859 :
デフォルトの名無しさん :2005/06/06(月) 21:31:53
「クラスがみつからんわぁボケェ はよ持って来い」言われましたわぁ
860 :
デフォルトの名無しさん :2005/06/06(月) 21:32:46
「おかんの財布からクラスぱくってこい」言われましたわぁ
861 :
デフォルトの名無しさん :2005/06/06(月) 21:33:58
ウチの母に Effective STL の本を見られたのだが、表紙だけを見て 「何これ、ルービックキューブ?」 ('A`)
辛気臭いことぬかしとらんではよクラスパスとおしたらんかい。
863 :
デフォルトの名無しさん :2005/06/06(月) 21:46:05
鼻の穴からクラスパス突っ込んで 奥歯虫歯です
864 :
デフォルトの名無しさん :2005/06/06(月) 22:01:05
私の読んでいる本には、 『オブジェクト = インスタンス』 と書いてあるのですが、 『ArrayListから取り出すと、Objectインスタンスになっているので 元のインスタンスにキャストして利用しなければいけません』 とも書いてあります。 『Objectインスタンス <> インスタンス』ってことなのでしょうか。 それとも本が間違っているのでしょうか。
>864 一般的な用語としての「オブジェクト」 != java.lang.Object型 ということでつ
866 :
デフォルトの名無しさん :2005/06/06(月) 22:03:42
俺はそんなの気にしたことナス!
867 :
デフォルトの名無しさん :2005/06/06(月) 22:04:29
全部NNOT NULLでいいじゃん
868 :
848 :2005/06/06(月) 22:06:32
な、なんと、ごはん食べてる間にレスがあるだけでなく
悪者にされてた!!
>>849 BASICで神経衰弱なら作った時ありますが、当時のデバッグはバグそうなところまるごと削除して作りなおしてたや。
BASICのTRONがあればいいのかも。
>>850 インストールが面倒そうで嫌いです。IDEは重そうなので
なんとか、JDKだけで解決したい。
>>852 なんのいやがらせなんですか?
>>857 正解!
>>858 違うって言ってるでしょうに。
870 :
デフォルトの名無しさん :2005/06/06(月) 22:20:11
現在、私は45代後半で、自営業を営んでおります。 Javaの素晴らしさに感動してしまい、今更ながらJavaをやろうかと 決心いたしました。 その私が他人に質問するのも気が引けるのですが、どうしてもJavaと いうものを理解したいべく、皆様のお力をお借りできればかと存じます ■↓質問内容↓■ 検索エンジンを使用しても理解できないので質問します。 Javaは何に使われているのか、という質問なのですが、 例えば、Javaではゲームも作れますよね? それと、3D?とかも。 それ以外で、Javaが「応用」されているものはありますか? (Javaで出来る事をとにかく全て書いてもらいたいです) 何卒。何卒。どうか、ご教授よろしくおねがいします。
872 :
848 :2005/06/06(月) 22:22:22
>>870 上の方で既に解決している。
それで理解できないようなら、お前は無駄に年だけくったと甚だ遺憾ではありますが、sageすまれることでしょう
市販のソフトでもいいのですが VB.NETのように.の後に使える文がでてくるような機能を持ったエディタはないのでしょうか? 文法エラーでいちいち参考書を見たりするのはめんどくさいです・・・・・
875 :
デフォルトの名無しさん :2005/06/06(月) 22:28:05
余生をJavaで楽しもうとしている私を何だと思うのですか? それとも私が嘘をついているとでも?
>>874 Eclipse → [CTRL]+[SPACE]
他は知らん
>>875 全部って幅広すぎ。火星探査機スピリットから銀行の業務システムまでとしか答えられない。
多分手放しでの無責任な丸投げ具合がこのあと叩かれると思う。
↓開始
45代後半でご教授、かよ。ご教示って言葉ぐらい使えないとな
ニツァンネル で誤字を突っ込む気にはならんがマルチはいただけねぇな、おっさん。
>>875 よ、おまえはJavaの他には何かプログラム言語を知っているのか?
正しい言い方は「ご教示ください」だぞ
つーか、利用目的がわからないのにJavaの何に感動したのかが不可思議でならない。 コード書いたことも無いのにオブジェクト指向の美しさを見出したのか? 開発経験皆無なのにwrite onceの利点が理解できたのか? そもそもコンピュータの知識が皆無の人間が、ソフトを見てJavaだと理解できるのか? 我々は875が何故このような不可思議な状態に至ったのかという 疑問を解決するため、875の故郷である群馬県に向かった。 「まだ日本にこんなところがあったのか…」 思わず口に出てしまった言葉を(略
「なんかすごそう」程度じゃねーかな。 たぶん、読んだ何かでVBをベタ褒めしてたらVBやろうとしてそう。
日経○○のバックナンバーでも読んだとか EJB, XML の頃はすごかったもんなぁ。
そりゃあ、Javaができるんじゃないか?
つーか「45代後半」ってすげー微妙な表現だな。 もう少しで46になるのか。 で、45にもなってそれぐらいの事を自力で調べられないようなら プログラミング以前に「パソコンできます」レベルを何とかしたほうがいいと 強く。 何卒。何卒。 言ってみるテスト。
こうして 45 歳は華々しく 2ch デヴュー を飾ったのだった。 /\ /\ /:::::::ヽ____/::::::::ヽ、 丿 ::.__ .::::::::::::: __ ::::ヽ_ / /。 ヽ_ヽv /: /。ヽ ::::::ヽ ~~~~| | | |Ο ./ / ̄ ̄√___丶  ̄ ̄\ ::::| ■■ \/ / | ~~|~~ ━━| .:::::::::: / / tーーー|ヽ ...::::: ::|━━━━▼▼ /\丿 |丿/ | ヽ .| .:::::. ..: | |ヽ .::|. ●● | ::: | |⊂ニヽ| | .:::::| \ / /| : | | |:::T::::| ! .::| \ \ / / \: ト--^^^^^┤ 丿 \\\
894 :
デフォルトの名無しさん :2005/06/07(火) 02:05:59
余生をjavaで楽しむような事はよせ
895 :
デフォルトの名無しさん :2005/06/07(火) 02:42:58
ちなみに intel 版 MacOS 出すって今ライブで言ってます。 PPC/Intel 両用のファットバイナリで解決だそうです。
896 :
851 :2005/06/07(火) 10:21:19
クラスパスは .;%JAVA_HOME%\jre\lib;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet-api.jar;%CATALINA_HOME%\common\lib\jsp-api.jar;%CATALINA_HOME%\webapps\wl_jsp\WEB-INF\classes です。
897 :
デフォルトの名無しさん :2005/06/07(火) 10:50:58
はじめましておはようございます。 先週からjavaの勉強を始めまして、そろそろ新しい事に挑戦しようと 思い動物占いを作ってそれをネット上に載せれるようになるまで作ろうと 思ってるんですが、参考になるサイト等探してもみつかりません。 ここで聞くような事ではないかもしれませんが なんかいい案あったら教えてください。
>>897 FlashかJavaScriptかRubyにすれば?
2つのクラスでとあるint型のデータを共有したい。片方のクラスが値いじっ たらもう一方でも値が変るように。クラスにint型をぶら下げて2つのクラ スにセットするんじゃあまりにも芸が無いように思うのですがどうしたらい いでしょうか?
>>903 共有する変数を管理するクラスを作って両方のクラスから参照させる。
>902 まずはそのサイトを隅々まで読むことから始めよう。 Requirementsの項は読んだか? >903 一方のクラスが他方のクラスを丸ごとメンバとして持つような構成にする。 2つのクラスではなく、1つのクラスに統合する。 2つのクラスをメンバとして持つクラスを作り、データはそこに入れておく。 データは一方が保持、もう一方のクラスはそのデータを見に行くようにする。
906 :
903 :2005/06/07(火) 19:31:09
>>904 やはりそうなるのですか。
わかりました。
public class ParentClass { protected static String name = "parent"; public static void sayName() { System.out.println(name); } } public class ChildClass extends ParentClass { static { name = "child"; } } 上記のクラスを ChildClass.sayName() って呼ぶとparentって表示されますが、 new ChildClass(); してからChildClass.sayName()するとchildに変わります。 サブクラスをインスタンス化しないでスーパークラスの クラス変数を書き換える事は出来ないっすか?
staticってわかってる? インスタンスについてくるものじゃないんだよ?
909 :
デフォルトの名無しさん :2005/06/08(水) 00:41:06
下記のAとBの書き方のようにメソッドをクラスの外出しした場合と 中に入れたままの状態では、なにか違ってくるものってあるのでしょうか? A class{ ・・・・ メソッド@ メソッドA } B class{ ・・・・・ } メソッド@ メソッドA
910 :
デフォルトの名無しさん :2005/06/08(水) 00:47:01
java.lang.ArithmeticException を0割り以外の算術例外で発生させる方法ってある? いや単なる好奇心なんだけど 言われると0割り以外やりかたわからんのよね javadocでは「0割り等」って記述してあるから なんかあるとは思うんだけど
>>907 そうか、静的フィールドは静的に定まるから、
コンパイラの時点で解消されているため、
クラスがロードされないのだね。
(あてずっぽうに)
インスタンスを生成する代わりに、
クラスオブジェクトを生成してみる。
Class.forName("ChildClass");
>>909 何の言語でつか?
>>910 不正な実数演算は NaN になるケースが多いから (√-1 等)、単に
仕様上の将来的なマージンを設けているだけと思われ。気になるなら
ArithmeticException でソース検索 (native で throw してたら知らんが)。
>>907 インスタンスを生成しなくてもクラスがロードされれば良いわけだから
ChildClass.class.getName() とでもやれば良い。
>>911 のように
Class.forName() でも良い。
へぇそういう動きするんだ〜って感じだが、これにハマるような設計には
お会いしたくないなw
>909 クラスの概念が根本的に分かっていない。 クラスとは何か、メソッドとは何かを分かっていれば、クラスの外にメソッドを書くなんて突拍子も無い発想は生まれない。 複数のクラスが1つのプログラム内に登場する辺りまで、お手元の教科書を読み進めてください。
>クラスの外にメソッドを書くなんて突拍子も無い発想は生まれない C++ 知ってる人間ならあれが突拍子も無いようには見えないだろう。 まさか知らないなんて人間は居ないよねぇw
>>910 throw new ArithmeticException("お好きなときにどうぞ");
> BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file)); > for (int i = 0; i < fileSize; i++) { > out.write(new byte[1]); > } > out.close(); 数M のテストファイル作るだけでこんな糞コード。 > byte[] data = new byte[in.available()]; > int size = in.read(data); もうアホかと。バカが真似したらどうすんだか。 (続く) 10MB でプロファイラにかけてみるとバイト配列へのコピー云々以前に FileChannel#read が遅い。 もっとも、一番のボトルネックは OutputStream#write(w
うおぇ区切る位置間違えた orz 100.0% - 11010 ms - 0 inv. etc.ReadTime.printTime 26.4% - 2905 ms - 9671387 inv. java.io.BufferedOutputStream.write 1.0% - 107 ms - 1 inv. etc.ReadTime.readUsingNIO 0.3% - 35 ms - 1 inv. java.nio.channels.FileChannel.read 0.2% - 23 ms - 1 inv. java.nio.ByteBuffer.get 0.2% - 17 ms - 1 inv. java.nio.ByteBuffer.allocateDirect 0.1% - 13 ms - 1 inv. java.io.FileInputStream.getChannel 0.0% - 0 ms - 1 inv. java.nio.channels.FileChannel.size 0.0% - 0 ms - 1 inv. java.io.FileInputStream.<init> 0.0% - 0 ms - 1 inv. java.nio.channels.FileChannel.close 0.0% - 0 ms - 1 inv. java.nio.ByteBuffer.flip 0.4% - 40 ms - 1 inv. etc.ReadTime.readUsingIO 0.2% - 24 ms - 1 inv. java.io.BufferedInputStream.read 0.0% - 0 ms - 1 inv. java.io.FileInputStream.<init> 0.0% - 0 ms - 1 inv. java.io.PrintStream.println 0.0% - 0 ms - 1 inv. java.io.BufferedInputStream.available 0.0% - 0 ms - 1 inv. java.lang.StringBuffer.<init> 0.0% - 0 ms - 1 inv. java.lang.StringBuffer.append(int) 0.0% - 0 ms - 1 inv. java.io.BufferedInputStream.<init> 0.0% - 0 ms - 1 inv. java.lang.StringBuffer.append(java.lang.String)
>>917 まず、ioとnioを比較してもファイルioだとそれほど差は出ない。nioのほうがちょっとだけ速い。
ファイル間コピーとかだとtransfarで一気に転送できるからね。
で、そのプログラムなんかへんだ。
1 たしかにByteBufferはそのまま使えよと思う。
2 まあbyte[]をとるメソッドとかに渡す場合を考えるにしても、ファイルサイズと同じサイズのバッファを
しかもallocateDirect()するかよ。allocateDirectは確保に時間がかかるので、その時間が無視できるような
用途、つまり一度バッファを確保したらそのバッファで繰り返し読み続ける、とかのときに使うもんだ。
3 そんな用途だったらMemoryMappedFileがあるだろ。一発でファイルサイズ分のByteBuffer(とみな
せるもの)が作れるじゃん。1と組み合わせたら、なんとそれだけで処理終わりだぞ?
4 だいたい根本的に、ioもnioも、read()メソッドはバッファ分読み込むという保証をしてないぞ。
「読める分だけ読んで、読めたバイト数を返す」んだから。そもそもそのプログラム、ちゃんと
最後までファイルを読んでいるかどうかも怪しいんじゃないか? read()した結果0バイト読みました、
ということもあるぞ。
5 確保してるバッファサイズも違うから読んでる量も違うじゃん。ioの方は「in.available()」だから、
そのときBufferedInputStreamにたまってるサイズ分だけ。nioのほうは「channel.size()」でまさしく
ファイルサイズ。ずいぶん不公平な測定だなおいww
System.out.println("size="+size); この結果ちゃんとみたのかな? なぜか旧IOのほうだけ書いてあるのも不思議だけど
922 :
デフォルトの名無しさん :2005/06/08(水) 04:49:34
swing って java 1.2 以降でしか使えないと思ってるのですが, ソースをコンパイルし直したりしたら 1.1 でも使えるクラスもあるんでしょうか? はっきりそう示した情報が見つからないのですが,いろんな情報を見てると それを前提としたように見える情報があるのですが。 もしそうなら,1.1 で使えるクラスと使えないクラスを区別するための情報は あるのでしょうか。ソースを見るしかないのでしょうか。
>>922 target 1.1 って JDK1.1用のVMが理解できるようにバイトコードを生成するって話じゃないの?いや、よくしらないんだけどさ。
925 :
907 :2005/06/08(水) 08:14:45
レスありがとうございます。
質問の仕方が悪かったです。ごめんなさい。
やりたいことは、staticメソッドの動きを呼び出し元クラス
によって変えたいのです。
テンプレートパターンみたいにメソッドをオーバーライド
したいのですが、staticメソッドはできませんので。
>>908 はい、分かっている上でなんとか出来ないものかと。。。
スタックトレース見ると、ChildClass.sayName()
って書いてもParentClassのsayNameが呼ばれてるし
やっぱり無理っすかね?
テンプレートパターンっていいたい年頃なんだよ。わかってやれよ。
AppletクラスのgetDocumentBase()のように、 自分自身のファイルのパスを取得したいのですが、Appletではない 通常のアプリケーション(JFrameなどを使用した)などの場合は どのようにすればいいのでしょうか?
929 :
907 :2005/06/08(水) 09:29:08
うむー、実行時にオブジェクトをバインドするから
テンプレートパターンは成り立つと理解してますが
そこが間違ってますか?
staticにしている時点で実行時バインドはない事は理解している
ので、例えば
サブクラスから親クラスのメソッドをコールしているのを
調べて、リフレクションで無理やり挙動を変える
みたいな方法でも良いのです(この例は出来なかったけど)
staticメソッドsayNameをコールしたときに
ParentClass.sayName() はparent
ChildClass.sayName() はchild
と出力されれば、どういう仕組みであろうが構わないです。
>>927 テンプレートパターンってそんなにかっこいい言葉か
特別な言葉なんですか?
>>928 getClass().getResource("")
あなたのニーズにはこれでいいのでは
>>929 それができたとしてどんな時に使うの?
>>929 class ParentClass{
static void sayName(){ System.out.println("parent");}
}
class ChildClass{
static void sayName(){ System.out.println("child");}
}
もちろんお薦めするつもりはないが。そもそもなんの役に立つのかわからん。
>>929 テンプレートパターンっていう言葉をさりげなく使うところがかっこいいですね。
>>929 は金属バットを箸にしてごはんを食べる人
934 :
デフォルトの名無しさん :2005/06/08(水) 14:26:41
http://jwww.ed.noda.tus.ac.jp/j-takeda/blob.html の課題をお願いします。611にあるのですがこうではなく、
出力形式の例
Grid Size = (5, 5)
*.**.
.**..
.....
*..*.
*.***
blobcount(3, 2) = 5
blobcount(3, 2) = 5
blobcount(1, 4) = 2
blobcount(5, 1) = 0
blobcount(5, 5) = 4
maxblob is 5
このような出力結果になるように
お願いします。
東京理科大生の宿題でつか? センセに通報しても良いでつか?
>●授業のページ●(東京理科大学内のみ) さすがにマルチするような奴はレベルが高いな。
同じ大学orz レベル低いのは分かってたけど中にはこんな奴も・・・。 同じ大学の人間として謝ります。
質問です。 まったくわかりません。助けてさい 東京理科大学と東大理IIIって別物なの?
>>938 件のページは学内からしか見れないようだ。コピペよろ
あ、宿題じゃなくて通報先ねw
画像からのblobの抽出なんて洒落た課題が出されてるのに、 学生サンの方はこのレベルか・・・
942 :
デフォルトの名無しさん :2005/06/08(水) 20:19:54
GUIのレイアウトについて使いこなせるようになりたいんですけど どっかいいページ紹介してくださいm(_ _)m 特にGridBagLayoutは使い勝手がよさげですけど 使い方が分からないので,そこを優しく教えてくれるページがあると マジで助かります
いきなり NetBean 薦める奴が出ると思うけど、とりあえず手書きで レイアウト組めるようになってからの方が良いよ。GUI エディタは 知ってる人が楽をするためのツールだから。
ページ、というか、あのこっぱずかしい本はどうなんだろう。 漏れ? ……絵買いして積んでるorz
945 :
922 :2005/06/08(水) 23:06:14
ぶっちゃけると1.1時代のSwingはバグ多いし重いし機能少ない
swing自体、な。
プラットフォームフリー、 インストールフリーってなんじゃらほい IE内蔵のJavaVM?
950 :
907 :2005/06/08(水) 23:43:47
>>930 public class Environment {
private static Properties Property = null;
public static String getStringVal(String key) {
load();
return Property.getProperty(key);
}
public static int getIntVal(String key, int def) {
load();
String val = Property.getProperty(key);
return NumberUtils.stringToInt(val, def);
}
951 :
デフォルトの名無しさん :2005/06/08(水) 23:44:03
private static void load() { if (Property == null) { Property = new Properties(); try { Property.load(Environment.class.getResourceAsStream("/hoge.property")); } catch (IOException ie) { //Logなりてけとーに } } } } こんな感じに環境設定値を簡単に取れるクラスを作った場合に "/hoge.property"の部分をサブクラスから書き換えられれば 再利用可能なプロパティ読み取りクラスが出来ると考えたんです。 getStringValに引数を1つ増やしてファイル名も与えるのも 利用する方はかったるいし(クラスにしちゃえばコード補完できるから)。 みなさんは環境設定ファイルのアクセスクラスはどんな感じに作ってるんでしょうか。 インスタンス化を必要とするクラス? この程度のクラス、ソースコードレベルで再利用出来れば良いと言えば それまでですが。プロジェクト変わるとパッケージ名変わってめんどーだなーとか って思ってしまった訳です。
952 :
907 :2005/06/08(水) 23:46:05
ごめんなさい、あげちゃった。
>>942 NetBeansのGUIエディタにGridBagLayoutエディタがついてて、それをいろいろいじくってるとわかりやすい。
どういうコードが吐かれるか確認しながら使うと、コードの勉強にもちゃんとなるしな。
GUIエディタは勉強のためのツールだから、積極的に使え。
知ってる人が楽するためのツールなら、知らない人にも楽ができる。
>知ってる人が楽するためのツールなら、知らない人にも楽ができる。 楽はできてもミニはつかないな。 俺ならまず、エディタで作ることを薦めるね ところで次スレまだ〜
コードを目で見て理解したと思える優等生なお方はエンジニア向いてないんだけどな。
自分自身のファイル名を取得するのはどうすればいいのでしょうか? String filename = File.class.getName(); とか、 String filename = FileVew.class.getName(); とかをやってみたんですが取得できません・・・。 どのようにすれば自分自身のファイル名を取得できるのでしょうか? よろしくお願いします。
>>956 自分自身のファイルは取れません。単品のクラスファイルかもしれないし JAR で
まとめられてるかも知れないし、ネットワーク上の別のサーバにあるかもしれないし。
あえて言うなら this.getClass().getName()。
>>954 動き確認してから、手打ちすりゃいい。
目で見て実感したほうが身について忘れやすい。
エディタだけでやる方が時間かかるわりに身につきにくいよ。
×忘れやすい ○忘れにくい
960 :
930 :2005/06/09(木) 00:10:50
そうゆう俺流のススメは無意味で不毛な論議
962 :
956 :2005/06/09(木) 00:12:51
取れないんですか・・・。 規則に乗っ取ったファイル名をつけてそこから プログラムが自分の役割を判断するものを作ろうとしたんですが だめぽそうですね・・・。 ありがとうございました。
>>962 Class.forName("クラス名).newInstance()
Beans.instantiate(クラスローダー, "Bean名");
>>964 重複してるな。ちゃんと削除依頼しとけよ。
968 :
922 :2005/06/09(木) 06:52:37
>>946 そうか、じゃあやっぱり AWT オンリーでがんばった方がいいんでしょうかね。
>>948 >プラットフォームフリー、 インストールフリーってなんじゃらほい
>IE内蔵のJavaVM?
ワープロくらいしか使わない職場とか、パソコンが普及しだしたころにとりあえず
買っちゃった個人の家とかにある、ネット接続してないかも知れない、ヘタしたら
Win98 とかのマシンで、ファイルのコピーすら、ままならないような人に、
CD 渡して、何とか CD のドライブ名だけは見つけてもらって、"x:hoge.html"を
実行すれば動くようなもので、Mac でも動くようなもの、です。
あと、たぶん対象者は持ってないと思うけど Linux とかでも動くもの。
まぁ、ほとんどの場合は IE内蔵VM ということになるでしょう。
>>968 JDK1.5で開発して、(アプレットじゃなくアプリケーションで)
JREごと配布するとか
>>968 CDにLinux(knoppixとかberryのような1 cd Linux)を入れて、
それにJREを予め追加しといて、自動起動させるとかどうでしょうか?
そうすればCDにOSが含まれるので、x86でCDDがあればどんなPCでも
動くのではないでしょうか?
データの保存にはUSBメモリやスマートメディア等が使えます。
☆ チン
☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・)<
>>950-951 へのレスまだー?
\_/⊂ ⊂_)_ \_______
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
|  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :|
| .|/
テンpラパターン使っとけ
976 :
922 :2005/06/09(木) 22:09:19
>>969 プラットフォーム毎にインストール手順が違うのも気になるし、そもそもインストール
作業が必要になると、それだけトラブルのリスクが増すと思うので避けたいと
思うのですが。
>>970 マックが、、、
自分は開発のプロではないので、自分の知ってる環境しかわかりませんし、
後々、自分以外の、自分よりコンピュータに詳しくない人間にサポートを
引き継ぐことになると思うので、ワープロだけとか、WWW とメールだけとかしか
知らないオッチャンなんかに渡しても、できるだけトラブルのリスクが少なくなる
ようにしたいのです。
>>976 >後々、自分以外の、自分よりコンピュータに詳しくない人間にサポートを
>引き継ぐことになると思う
いろいろ言いたいことはあるけど、
作る必要ないんじゃないか?
プログラミング関連の話とは関係なくて申し訳ありませんが質問させてください。 現在、メインのアプリとしてJava Runtime Environment上で動作する 翻訳支援ソフトを使っています。(Sun 謹製、OS は Win2k) こいつは、翻訳メモリが蓄積されるに従ってどんどん動作が重くなっていきます。 そこで、できれば動作を高速化したいのですが、このようなアプリケーションには デュアルCPUまたはデュアルコアが効果的である のか 単純に高クロック(OfficeProductivityが高い)CPUの方が効果的である のかを教えて頂きたいのです。 Java Runtime EnvironmentがどのようにCPU能力を占有するかが分かっていないので、 Athlon64 X2でマシンを組もうかどうか迷っています。 できればSunの方にこっそり教えて頂きたいのですが...
>>978 どっちもハズレ。
正解はメモリを大量に積む。
Javaで何かしようと思ったら最低1G積む覚悟は必要。
理想は2G。
>>979 アプリによるだろうが
そういうあほな考え方って以前合ったな・・・と
例の1つのマシンにTomcatメモリ半分にして乗せてGC時間安定させました
というのを思い出した
>>978 そのアプリを作ったやつしかどのように重くしたかがわからんよ
長時間稼動させると重くするというコードが入ってるかもしれんし
普通はネックとなる場所をつぶしてリリースするもんだがな
作ってない人だったらメモリ使用量をチェックして頻繁に殿堂入りするようなfullGCがはしりまくっているかの
確認くらいしかできんかも
1に計測2に計測 ボトルネックがわからずに妄想を続けるのは時間の無駄です
>972 雑感だが > getStringValに引数を1つ増やしてファイル名も与えるのも > 利用する方はかったるいし(クラスにしちゃえばコード補完できるから)。 ここイミフメ。どのみちどこかで手書きする必要がある文字列じゃないのかそれは。 そもそも何でそんなにstaticにこだわるのか、インスタンス化を嫌がるのかが分からん。 >プロジェクト変わるとパッケージ名変わってめんどーだなーとか これがその理由だと言われてもさっぱり分からんままなのだが、 それくらいファイル先頭の一行変えれば済むことじゃないのか? Environmentを利用するクラスも作り置きのを使いたいということなら若干面倒かもしれんが それだってエディタで一括置換とかできそうなもんだし、最後の手段として自分個人のパッケージ (jp.gr.java_conf.hogeでもnet.sf.hogeでも好きなの使えばよろし)に放り込んでしまえば その問題は解決じゃないか?
983 :
922 :2005/06/11(土) 00:28:43
>>977 > 作る必要ないんじゃないか?
そういわれても。。。仕事なんで。
>>922 Microsoft VM for Javaを当てにしているのなら、それは間違いだ。
今後サポートされない上に、今のWindowsXPには標準で付いてないから。
将来「何で動かないの?」っていうトラブルを抱えるはず。
985 :
922 :2005/06/11(土) 07:22:51
>>984 「当てにしている」 というよりも、 「でも動く」 ようにしようと思ったんですが。
JDK 1.1 で作っておけばどこでも動くと思ったんですが、そうじゃないんですか?
不勉強で、将来動かなくなる理由がわかりません。
>>985 いや、だから、そのJRE1.1(またはその相当品)がない環境があったらどうするの?
動かないでしょ?
JRE入れるしかないでしょ?
そしたら、結局はインストールメディアにJREを添付した方がいいでしょ?
どうせ添付するなら 1.1にこだわる必然性はないでしょ?
987 :
907 :2005/06/11(土) 10:11:40
>>982 レスありがとうございます。
>> 利用する方はかったるいし(クラスにしちゃえばコード補完できるから)。
>ここイミフメ。どのみちどこかで手書きする必要がある文字列じゃないのかそれは。
getStringVal("hoge.property", "foo")って設定値を取得する度に
"hoge.property"を書かなければ成らないのが面倒という事が言いたかったのです。
hoge.propertyを読み込んでいる専用のクラスがあれば、そのクラス名を
書いてgetStringVal("foo")で取れると。
>そもそも何でそんなにstaticにこだわるのか、インスタンス化を嫌がるのかが分からん。
そうですね、個人的な感覚なので意見が分かれる所だと思います。
私の場合は、環境変数は取り出し方がシンプルであればシンプルであるほど
扱いやすいと考えるので、staticで実装しています。
>>プロジェクト変わるとパッケージ名変わってめんどーだなーとか
>これがその理由だと言われてもさっぱり分からんままなのだが、
>それくらいファイル先頭の一行変えれば済むことじゃないのか?
その通りです。やはりここに落ち着きますか
(ソースコードレベルでの再利用)
すなおにsingletonつかえよ
>>987 名前を変数ではなく、 String を返す static なメソッドとして実装して、
子クラスでオーバライド。
907なら
protected static String name = "parent";
ではなく、
protected static String getName() { return "parent"; }
990 :
989 :2005/06/11(土) 12:27:08
すみません。勘違いでした。忘れてください。
991 :
922 :2005/06/11(土) 13:08:16
>>986 「どこでも動く」は言い過ぎましたが,今のところ 1.1 対応の VM が乗ってない
マシンを使ってる人は多くなく,新しい WinXP 使ってる人は,アプレット動かそうと
するとほとんど勝手にインストールしてくれる(ネット経由か,OSプレインストール
マシンならローカルにインストール情報を持ってると思うんですが)と思ったんです。
将来,デフォルトではVM のない環境が多数派になっても,アプレット使ってる Web サイトは
多いので,そのころには一般的な「パソコンの使い方」 の情報として,アプレットを
動かす方法は一般に流れるか,初心者でも困らないように環境が整えられてる
かなとと思うんですが。
>>987 こんなんでも、まだダメなんでしょうか
public class Environment {
private static Properties Property = new Properties();
public static void load(String name) {
try {
Property.load(Environment.class.getResourceAsStream(name));
} catch (IOException ie) {
//Logなりてけとーに
}
}
public static String getStringVal(String key) {
return Property.getProperty(key);
}
public static int getIntVal(String key, int def) {
String val = Property.getProperty(key);
return NumberUtils.stringToInt(val, def);
}
}
>>991 そこまで激しく不確定な要素をあてにしたくないな。
ちなみにMSのJVMはバグが多く、SunのJVMで動いたものが
MS謹製では動かなかったり、妙な挙動を示したことがあるので
俺なら絶対にやらないと思うが。
まあ自分がやりたいようにやってくれ。
995 :
907 :2005/06/11(土) 14:04:52
>>992 レスありがとう御座います。
それだと、何がロードされているも分からず、ロードされている
事も保障されず、マルチスレッド環境では悲惨な事に
なると思いますが、いかがでしょうか。
996 :
922 :2005/06/11(土) 15:34:07
>>993 >>994 いろいろご意見ありがとうございます。
自分はプログラミングのプロではなく,自分の業界のお客さんが便利に
使えそうな,簡単なツールを作って配ろうとしているところです。
なので,開発の知識に乏しく,すごく不安があったのですが,否定意見は
あるにしろなんとか一つの方法として成り立ちそうなので,そういう意味では
少し安心しました。
何よりも類似スレが乱立する中,何とか1000までに一応の結論を得てよかった。。。
997 :
デフォルトの名無しさん :2005/06/11(土) 17:38:52
>>995 ああ、もうギブ
普通に
public class Env0 {
public static final Properties PROPS = PropertiesFactory.create("Hoge");
}
とかやって、フィールド PROPS 経由で操作
(PropertiesFactory みたいなのは、commons に行けば転がっているだろう)
おおよそ?Properies はスレッドセーフっぽいし、
static final にしとけば、参照も他のスレッドから(コンストラクタが終わった状態で)見れるはず。
Java 1.5 からは スタティックフィールドもインポートできるはずだったから、
これで許して。。
>>995 (907)
つうかstaticにした段階で継承とオーバーライドを使える範疇外になる(そういう言語仕様)なんだから、
staticをつかって継承やオーバーライドやコンポジションやらの利点はあきらめる。つまり
テンプレートメソッドパターンもあきらめる。
しかねえじゃん。言語仕様にいちゃもんつけたところで現実が変わるわけでも無し。
だいたい、そこまで苦労して実現したとしても、ソース上で省略できることって
Environment env = new Environment(); <--- このインスタンス化の一行
String prop1 = env.getXXXXX()
String prop2 = env.getYYYYYY()
の最初の一行だけなんだろ? この一行でそんなに環境変数取得が面倒になるか?
逆にこっちにすれば、Javaのオブジェクト指向機能のすべてが使えるのに。
999 :
デフォルトの名無しさん :2005/06/11(土) 19:14:43
999
1000 :
デフォルトの名無しさん :2005/06/11(土) 19:14:55
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。