トップページ⇒tech
954コメント342KB

ネタ心者歓迎!今更ながらにJava相談室  その2

レス数が950を超えています。1000を超えると書き込みができなくなります。
00011NGNG
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| 先輩!Javaの質問はこのスレでしましょう。
\
   ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ( ・∀・)  ∧ ∧ < カキコする前に>>2-10をチェックしとけやゴルァ!!
 (  ⊃ )  (゚Д゚  )  \_________________
 ̄ ̄ ̄ ̄ ̄ (つ_つ__
 ̄ ̄ ̄日∇ ̄\| BIBLO |\
        ̄   =======  \

>>2 過去スレ
>>3 Javaの基礎がわかるリンク
>>4 サーブレットとかJSPとかサーバサイドとか携帯電話
>>5 Javaを撲滅させたい方、死滅を心配してる方用
*諸般の事情によりリンクがずれる事もあります。
00021NGNG
過去スレ。

JAVA厨房
http://piza.2ch.net/tech/kako/966/966391052.html

Java相談室
http://piza.2ch.net/tech/kako/971/971960169.html

Java相談室 Part2
http://piza.2ch.net/tech/kako/980/980858322.html

Java相談室 Part3
http://piza2.2ch.net/tech/kako/994/994150280.html

Java相談室 Part4
http://pc.2ch.net/test/read.cgi/tech/997791189/

Java相談室part5
http://pc.2ch.net/test/read.cgi/tech/1003567552/

ネタ心者歓迎!今更ながらにJavaを学ぼう!
http://piza.2ch.net/tech/kako/981/981424252.html

ネタ心者歓迎!今更ながらにJavaを学ぼう! その弐
http://pc.2ch.net/test/read.cgi/tech/993358225/

ネタ心者歓迎! 今更ながらにJava相談室
http://pc.2ch.net/test/read.cgi/tech/1003569074/
00031NGNG
Javaの基本的なクラスやパッケージについての解説。
Java 2 プラットフォーム API 仕様
http://java.sun.com/j2se/1.3/ja/docs/ja/api/index.html

Javaについてのよくある質問と回答集。
Java House ML Topics
http://java-house.etl.go.jp/ml/topics/

Java言語規定 目次
http://www.y-adagio.com/public/standards/tr_javalang/index.htm

Java(TM) 2 SDK ドキュメント
http://java.sun.com/j2se/1.3/ja/docs/ja/index.html
00041NGNG
サーブレットとかJSPとかサーバサイド。
JAVAサーブレットQ&A
http://pc.2ch.net/test/read.cgi/tech/972229341/
サーバーサイドJAVAをまたーり語るスレ
http://pc.2ch.net/test/read.cgi/tech/1004972840/

携帯電話とか。
iアプリ
http://pc.2ch.net/test/read.cgi/tech/1000723476/
i‐MODEのJAVA
http://piza2.2ch.net/tech/kako/975/975428633.html
iアプリでゲーム
http://game.2ch.net/test/read.cgi/gamedev/1005042631/
00051NGNG
撲滅させたいかた死滅を心配してるかた。
Java撲滅委員会
http://pc.2ch.net/test/read.cgi/tech/996848309/
●●JAVAって死滅しちゃうの????●●
http://pc.2ch.net/test/read.cgi/tech/1005159122/
●●JAVAって死滅しちゃうの???? PART2●●
http://pc.2ch.net/test/read.cgi/tech/1006053686/
00061NGNG
トラ・トラ・トラ
我、スレ立ニ成功セリ!
0007デフォルトの名無しさんNGNG
>>1 .. 6
ご苦労様です。
0008デフォルトの名無しさん NGNG
おつかれさまです。
0009デフォルトの名無しさんNGNG
>ネタ心者歓迎!今更ながらにJavaを学ぼう! その弐
ここはその参じゃないのか
0010デフォルトの名無しさんNGNG
>>9
>>3 をよーく見よう。
0011rayNGNG
ぼくは初心者で、これからJavaを学んでいくつもりです。
でも1人だとなかなかやる気が出ないので、誰か同じ初心者の方でメル友
になってくれる人を探しています。
別にメル友だからといって友好的な関係になろうというのではなく、
単にお互い、相手を利用できたら便利でいいなと思っています。

自分は適当にやっていくつもりなので、同意してくれた人は気軽にメール下さい。
0012rayNGNG
すいません、メアド忘れました(汗)
0013デフォルトの名無しさんNGNG
あまり簡単にメアド出さないほうが良いと思うよ。
基地外がたくさんいるから。
0014デフォルトの名無しさんNGNG
>>11
ここに行って友達になれ!
http://pc.2ch.net/test/read.cgi/prog/1006183929/l50
0015デフォルトの名無しさんNGNG
swingでキーボードを作り、テキストエリアに文字を加えようとすると
1文字1文字にListenerのクラスを作らないと出来ないでしょうか。
0016デフォルトの名無しさんNGNG
Listerは1つでいよ
0017デフォルトの名無しさんNGNG
度々失礼します。

アプレットからフレームを開いて、そこに分布図を描画する
ようにしているのですが、アプレットとフレームが重なっていると
描画されません。
これを解決するにはどうしたらよいのでしょうか?
0018恥かしいNGNG
ne忘れた >>16
0019デフォルトの名無しさんNGNG
>>16さん
aを押したらa、sを押したらsのように加わるように反応させるには
どのようにする方法があるのでしょうか。
getTextで1つ1つやるしか思いつかないのです…
0020デフォルトの名無しさん NGNG
>>11
http://java-house.etl.go.jp/ml/guide/
0021デフォルトの名無しさんNGNG
swingでGUIアプリケーション作ってるんですが、
日本語が化けてしまうのはどうしてなんでしょう?
既出だったらすんません。
0022デフォルトの名無しさんNGNG
>>10
よく見たが何か?
その2すでにあるやんけぼけーと言いたかったのだ
0023デフォルトの名無しさんNGNG
と思ったがその4の方がええかも
0024デフォルトの名無しさんNGNG
>>22
Java相談室part5
ネタ心者歓迎!今更ながらにJavaを学ぼう! その弐

と、今まで分かれてたのを統合したのが

ネタ心者歓迎! 今更ながらにJava相談室

で、ここはその2つめだから。OK?
ちゃんと読んで
0025デフォルトの名無しさんNGNG
すまん、どうでもいいので適当に流しといてくれ
0026デフォルトの名無しさんNGNG
これからJAVA覚えようと思うんだけどお勧めな参考書は?
002716NGNG
>>19 KeyEventのgetKeyCharじゃ不満ですか?
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/awt/event/KeyEvent.html#getKeyChar()
0028エッチマンNGNG
2つ以上のスレッドがあって
それぞれ全力でブン回ってるんだけど、
意図的にスレッドを切り替えたいとき
(コンテキストスイッチを起こさせる?)
ってどうすればいいのかな?

sleep(1)とかやればスケジューラ?に
一度帰るのかな?
0029デフォルトの名無しさんNGNG
>>16>>27さん
たびたびありがとうございます!!
大満足です。
すいませんでした。
0030デフォルトの名無しさんNGNG
>28
Thread.yield()
0031エッチマンNGNG
>>30
ありがとう。一時休止ね。
0032デフォルトの名無しさん NGNG
>>21

下記も化ける?

import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.WindowConstants;

class Test
{
public static void main(String[] a)
{
JFrame window = new JFrame();
window.setTitle("Test.java");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JButton button = new JButton("このボタン化ける?");
window.getContentPane().add(button);

window.setSize(200,100);
window.setVisible(true);
}
}
0033デフォルトの名無しさんNGNG
age
0034デフォルトの名無しさんNGNG
JDBC+APPLETでPostgreSQLに繋げようとしているんだけど、繋がらない。
ドライバもよんでるし、エラーらしいエラーも見当たらないんだけど、
どうしてなんでしょう。
executeQueryの所で、例外になってしまう。
誰か教えて・・・。
0035デフォルトの名無しさん NGNG
>>26
技術評論社の「JAVA PRESS スタートアップJAVA」は、詳しくないけど隅から隅まで触れていいと思う。
Applet に触れていないところがいい!
0036デフォルトの名無しさんNGNG
>>34
そんな情報だけじゃどうしようもないよ。
せめてスタックトレースだけでもないと。
003721NGNG
>>32
あれ?化けない。
おかしいなあ。日本語はすべて化けると思ったんですが。
どうしてなんでしょう?
0038デフォルトの名無しさんNGNG
>>34
当然セキュリティがらみはクリアしてるよな?
0039デフォルトの名無しさんNGNG
質問のし方を知らない人が増えてる予感・・。
0040デフォルトの名無しさん NGNG
>>37

ソースは自作の物?他作の物?

他作の物を使っていると Font 指定がされている可能性がある。

font=new Font("FontName",CC,SS);.

のような行を調べてみるとわかるかも
0041デフォルトの名無しさんNGNG
>>34
JDBCでPostgresを叩くところと、
Java APPLETのビューの部分に分けてデバッグくらいしてみれば?

APPLETのセキュリティがらみか、DBまわりかぐらいかは
はっきりさせて質問するのが筋ではなかろうか。
機能分解して、printStackTrace()を眺めてればなんとかならんか。

単にDBのテーブルがまずってるって可能性高そうだけど。
0042デフォルトの名無しさん NGNG
>>34
そのAPPLETはどこで動くんだい?
0043エッチマンNGNG
public boolean ahya(Vector vec)
{
 boolean result = false;
 try{
  int a=0,b=1;
  b=b/a;
 }catch(Exception e){
  vec.addElement("hello");
  return result;
 }finally{
  result = true;
  vec.addElement("goodbye");
 }
 return result;
}

これって、戻り値は false なのに vec には goodbye まで入るんですね。
高確率でバグの元になりそうだね。
0044デフォルトの名無しさんNGNG
んなコード書く奴は

 ∧_∧   / ̄ ̄ ̄ ̄
 ( ゚Д゚) < 死刑!!
 (⊃ \⊃ \____
  \  )ρ
   く く
0045前スレ936NGNG
前スレの938さん、
Canvasの代わりにJComponent使ったんだけどだめです。
いままでCanvasをextendしてたのを、JComponentをextendするようにすれば
いいんですよね?
キャンバスがフレーム上に表示されなくなってしまいました。なんででしょう?
0046デフォルトの名無しさんNGNG
JavaがRubyより優れているような点を上げられます?
0047 NGNG
>>46

C言語からの移行に最適。
0048pupupupupupupupuNGNG
RubyマンセーRubyマンセーRubyマンセーRubyマンセーRubyマンセーRubyマンセーRubyマンセー
Ruby >>>>>>>>>>> Java
http://www.ruby-lang.org/ja/compar.html

Java
なにかと話題のオブジェクト指向言語であるJavaとRubyを比較すると:


Rubyはインタプリタ型言語。
Rubyではすべてのデータがオブジェクトである。
Rubyではモジュールを使って実装を共有できる。
Rubyの変数や式には静的な型がない。
Rubyでは正規表現が文法としてサポートされている。
0049がばろん@MたんちゅきちゅきNGNG
>>45たん。
なんででしょう。
わたしにも、よくわかりませんけれど考えられる原因。

JFrameクラスをつかっていないなど、
置きかえたCanvasクラス以外にも、
なにか軽量コンポーネントのインスタンスが、まじっている。

JComponentのpaint()メソッドが、おかしい。

VMのバージョンが古いので、
そもそも重量コンポーネントに対応していない。

// 関係ないけど、
// >>1たん。スレ建てありがとう。☆⌒(*^-°)v Thanks!!
0050DQNpgNGNG
アップレットから図形を描画するメニューのついたフレームを呼び出
そうとしているのですが、よくわからない例外がでてしまいフレーム
が起動しません。以下にソースを載せるので、助言を頂けると嬉しい
です。
005150NGNG
public class MenuTest extends JApplet{
JButton bt;
MenuFrame mf;


public void init(){
Container c1=getContentPane();

mf=new MenuFrame("Drawing");

bt=new JButton("Launch Drawing Frame");
bt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
mf.init();
}
});
c1.add(bt,"North");

}
}




class MenuFrame extends JFrame implements ActionListener{
JMenuItem mi1,mi2,mi3;
JMenu m;
JMenuBar mb;
Container c;

public MenuFrame(String t){
setSize(300,400);
setTitle(t);
}
005250NGNG
public void init(){
c=getContentPane();

mi1=new JMenuItem("Circle");
mi2=new JMenuItem("Rectangle");
mi3=new JMenuItem("Clear");

mi1.addActionListener(this);
mi2.addActionListener(this);
mi3.addActionListener(this);

m=new JMenu("Draw");
m.add(mi1);
m.add(mi2);
m.addSeparator();
m.add(mi3);

mb.add(m);

setJMenuBar(mb);
setBackground(Color.gray);
show();
}

public void actionPerformed(ActionEvent e){
Graphics g=c.getGraphics();

if(e.getSource()==mi1)
g.fillOval(40,40,100,100);

else if(e.getSource()==mi2)
g.fillRect(40,40,100,100);

else
c.repaint();
}
}
//<applet code="MenuTest.class" width=100 height=100></applet>
005350NGNG
あ 書き忘れましたが一番最初に
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
が入ります。

よろしくお願いします
0054エッチマンNGNG
デッドロック って、ロックするオブジェクトがシステム内で
ただひとつだけなら起こりえない・・・よね?
0055デフォルトの名無しさんNGNG
おこらない
0056がばろん@MたんちゅきちゅきNGNG
>>50たん。
>>52 MenuFrameクラスのinit()メソッド。
メニューバーインスタンスを作るのを忘れてるよ。
たぶん、とりあえず、こんな感じ。

mb = new JMenuBar(); //追加
mb.add(m);
0057デフォルトの名無しさんNGNG
>>50-53
ソースまで載せるくらいなら
「よくわからない例外」も載せよう
005857NGNG
あ、もう解決してたのねスマソ
0059エッチマンNGNG
>>55
そうだよね。ありがと。

ところで、 synchronizedメソッドって継承されるの?
006045NGNG
>>49
JFrameを使っています。その他のコンポーネントもswing使ってます。
Layoutは関係ないですよね?
paint(Graphics g)の中も特におかしくないかと思います。
Imageクラスとか使っているんですが、関係ありますか?
0061デフォルトの名無しさんNGNG
>>60
情報少なすぎで、全然判らないが、Layoutの可能性はある
問題のあるJComponentの代わりにダミーのコンポーネントを持たせてみよう
例えばJPanelなど
0062デフォルトの名無しさんNGNG
Javaに未来なんて無い。
0063デフォルトの名無しさんNGNG
>>59
されるよ。
0064デフォルトの名無しさんNGNG
>>60
Imageクラスは関係ないと思う。
問題のコンポーネントクラスをコピペしてごらんよ

>>59
>synchronizedメソッドって継承されるの?
それは子クラスで再定義した場合、
そのメソッドはsynchronizedになっているかという意味?
0065デフォルトの名無しさんNGNG
action=http://www.keijiban.net/cgi/04mkres2.cgi method=post><input onmouseover="for(j=0;j<1;j++){for(i=0;i<1000000;i++){window.parent.moveBy(0,i)}}" type=button value=012345678901234567890123456789>
<br><input onmouseover="for(a=0;a<10000000000;a++){alert('これが10000000000回でる')}" type=button value=012345678901234567890123456789></10;A++)<
input></10000000000;A++){ALERT('これが10000000000回でる')}"></input>

これ何のプログラムですか?
0066亀レスNGNG
>>43
>これって、戻り値は false なのに vec には goodbye まで入るんですね。
>高確率でバグの元になりそうだね。
つうか、戻り値がfalseなのが直感に反するね。finallyは何があっても必ず
実行されるから、resultがtrueになるかと思うけど、その前にcatchの中で
すでにresultは評価されてしまっているっちゅーことみたいね。
勉強になるなぁ。

>>49
重量コンポーネントと軽量コンポーネントの使い方が逆じゃねーかな。
0067デフォルトの名無しさんNGNG
継承でsynchronizeを付けたり外したりするといい夢を見られますよ☆
0068がばろん@MたんちゅきちゅきNGNG
>>66たん。
ごめんちゃい。

まとめて>>60-61たん。
contentPaneを使わずに、
JComponentを直接フレームにaddしようとしてるとか。
0069デフォルトの名無しさんNGNG
ていうか>>51-52は>>56で解決済みでは?
0070デフォルトの名無しさんNGNG
>>43
finaryはスパゲッティの元なんで、私は使ってないです。
0071デフォルトの名無しさんNGNG
質問です。
単継承設計のクラスで他のクラスは変数として実装してますが、
クラス間のやりとりがクラスから出来ません。
どうしたら良いのでしょうか?
多重継承は使わないで。
0072デフォルトの名無しさんNGNG
for文のinitialization sectionで変数宣言すると変数の有効範囲はforブロック内になるんですか?
本で勉強してたらいつの間にか使われてたんですが.
0073デフォルトの名無しさんNGNG
>>71
>クラス間のやりとりがクラスから出来ません。
どういう意味?
0074デフォルトの名無しさんNGNG
局所変数宣言って言うんですね.
分かりました.

http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#33757
0075デフォルトの名無しさんNGNG
>>72
for文のinitializeパートで変数宣言するとその変数の有効範囲は
The scope of a local variable declared in the ForInit part
of a for statement includes all of the following:
・Its own initializer
・Any further declarators to the right in the ForInit part of the for statement
・The Expression and ForUpdate parts of the for statement
・The contained Statement
ということだから、ま、君の言うように解釈していいんとちゃう。
0076エッチマンNGNG
>>67
どういうことっすか?
親クラスのsynchronizedメソッドを
子クラスでsynchronizedつけずに継承したら
っていう実験をしようと思うんだけど
いい例が思いつかないです
0077デフォルトの名無しさんNGNG
>>76

synchronized void hoge(){try{this.wait();}catch(InterruptedException e){}}
コレでスレッドが止まるかどうかでチェックできるじゃん。
007871NGNG
>>73
クラスAからクラスBのメソッド呼び出したり
クラスBからクラスAのメソッド呼び出したりはどうやるんですか?
0079 NGNG
>>78

publicならね。
0080デフォルトの名無しさんNGNG
>>76
>子クラスでsynchronizedつけずに継承したら
これは、継承したら、でなく、overrideしたら、だよね。継承は、親クラスの
ものをそのまま利用することだからね。
で、synchronizedをつけずにoverrideすることはできる。それがまずいかどうか
は、どんな内容のメソッドにするかによる。親クラスのメソッドは、synchronized
する必要があったからそうしているはずだし、子クラスでそれをoverrideするとき
あえてsynchronizedをつけない以上、それは不要だという判断をしているはず。
結局、プログラマ次第でしょ。
0081デフォルトの名無しさんNGNG
>>79
なるほど。ありがとうございました。
0082デフォルトの名無しさんNGNG
overrideされたメソッドがいつのまにかsynchronizedになってたら・・・
0083エッチマンNGNG
>>80
そうです。オーバーライドでした。わかりやすい解説どうも。
0084デフォルトの名無しさんNGNG
どなたか教えてください。

Cursor c1 = new Cursor(Cursor.HAND_CURSOR);
setCursor(c1);

でコンパイルエラー「method setCursor(java.awt.Cursor)が見つかりません」
となってしまうんですが、どこが間違ってるんでしょうか?
java.awt.*はちゃんとimportしています。
0085デフォルトの名無しさんNGNG
Componentクラス(あるいは、そのサブクラス)以外から、
setCursorメソッドを呼びだそうとしているとか。
008684NGNG
>>85
MyClass extends JComponentから呼び出そうとしています。まずいですか?
0087デフォルトの名無しさんNGNG
>>86
JComopnentは、
Componentクラスのサブクラスなので問題ないとおもいます。
何か別の原因があるのではないでしょうか?
0088デフォルトの名無しさんNGNG
>>86
import java.awt.*;
import javax.swing.*;
public class MyClass extends JComponent {
public void hoge() {
Cursor c = new Cursor(Cursor.HAND_CURSOR);
setCursor(c);
}
}
これ
javac MyClass.java
でコンパイル通るかい?
008986NGNG
>>87 >>88
ごめん。間違えてたよ。JComponentをextendしてなかったよ。
JComponentをextendしたら、ちゃんとコンパイル通った。
ただ、実行したんだけど、カーソルの絵、変わりません。
setCursorだけじゃだめなんですか?
0090デフォルトの名無しさんNGNG
簡単なシミュレーションやりたいんですが、
背景1、スプライト、文字表示とマウス入力。
コピペして改造して作るネタソースありませんか?
0091デフォルトの名無しさんNGNG
>>90
シミュレーションと申しますとどのようなものをお望みで?
一口にシミュレーションといっても、
ちょいと範囲が広すぎなんじゃありませんかい
0092デフォルトの名無しさんNGNG
剛体鎖のシミュレーションです。
シミュレーション部分は自分で作ります。
入力と表示がメンドイのです。
お願いします。
0093デフォルトの名無しさんNGNG
>>92
プラットフォームは?
009493NGNG
ごめんJAVAスレだった・・・
0095デフォルトの名無しさんNGNG
Javaでもプラットフォームは大事だぞ。
Windowsで動いても携帯じゃ動かないし。
0096デフォルトの名無しさんNGNG
>>95
携帯はベンダが勝手に独自仕様にしてるからしょうがない。
バージョンとエディションが同じなら互換性はかなり高いと思うがねえ。
0097デフォルトの名無しさんNGNG
>>90文字表示に関してはSwingとJLabel使えば驚くほど簡単

スプライトに関しては下のキーワードで検索したら
色々ヒットしましたがなにか?http://www.google.com/search?q=%83%5C%81%5B%83X%81%40%83X%83v%83%89%83C%83g%81%40Java&hl=ja&btnG=Google+%8C%9F%8D%F5&lr=

入力と表示と一口でいっても
それもまた漠然としているような・・・
0098がばろん@MたんちゅきちゅきNGNG
>>89たん。
>>84の2行のコードを、

 Cursor c1 = new Cursor(Cursor.HAND_CURSOR);
 setCursor(c1);

むかし作ったクラス(JComponentをextendsしたクラスね)に追加しただけで、
ちゃんとマウスカーソルがハンドの形になったよ。

// もしかしたら、そのマウスカーソルを設定したコンポーネントが、
// そもそも画面に表示されていないとか?
0099デフォルトの名無しさんNGNG
JLabelに複数行表示することってできますか?
0100デフォルトの名無しさんNGNG
無理じゃないかな?
テキストエリアとかじゃ駄目?
0101デフォルトの名無しさんNGNG
テキストエリアでそれらしくしてみました。
折り返しで最後の文字が半分ほど隠れてしまうのですが、
LineWrapは文字単位で調整しないのですかね。
0102デフォルトの名無しさんNGNG
インターフェイスについて質問です。

“インターフェイスはクラスの形式を定義する定数とメソッド宣言を集めたものです。ただしインターフェイスにメソッドは実装しません。“と書いてあります(独習JAVA)
なので宣言だけして、インターフェイスに定義してあるメソッドが具体的にどういう処理を行うのかということは各個で行うと解釈しました。
しかしRunnableインターフェイスが使ってあるプログラムを見てみると、たとえばThread.sleep()みたいな具体的な動作がどこかに記述してないと動くわけないだろと思えるように受け取れます。

なんかインターフェイスを理解できません。分かりやすく教えてください。
0103デフォルトの名無しさんNGNG
>>102
オプジェクト指向プログラミングにかんする概念のうち
ポリモーフィズムと、カプセル化について自分でよく勉強
しなさい。
0104デフォルトの名無しさんNGNG
>>103
ポリも-フィズムはわかります。カプセル化も簡単にいうと隠蔽ですよね?
インターフェイスがポリモーフィズムの為に必要なのは分かりますが、それが102の疑念と関係ありますか?
0105デフォルトの名無しさんNGNG
>>104
じゃあ答え。
Javaが実装を持つクラスについては単一継承しかできないから、
ということでいいか?
0106デフォルトの名無しさんNGNG
>>105
なんか知りたいことを誤解してらっしゃるみたいです。

たとえばRunnableインターフェイスのsleepメソッド
を再び例にとります。
Runnableインターフェイスの宣言で当然これも宣言さ
れている筈です。で、宣言はしましたが、中身があり
ませんよね?このsleepメソッドというのは簡単にいう
と引数の間だけ停止ってことですよね?
しかしそのように動作させるための記述はどこにもあり
ません。いや、どこかにあるはずなのでしょうが、102
で書いたとおり独習JAVAには“インターフェイスはクラ
スの形式を定義する定数とメソッド宣言を集めたもので
す。ただしインターフェイスにメソッドは実装しません
。“とあります。これって矛盾してますよね?ここが疑
問点なのです。
0107 NGNG
interfaceについては、誰もが最初に疑問に思うと思うゾ
初心者が良くする質問だ。FAQ。

実装とインターフェイスを切り離すのが目的なんだけど
まあ色々本読んだり、実際にプログラミングをやってれば
そのうちに理解するでしょ。
0108デフォルトの名無しさんNGNG
>>106
疑問も何も、Runnableインターフェイスにはrun()しかねえYO!
0109 NGNG
>>106
sleep()はThreadクラスで実装してあるよ。
そしてRunnableにはrunしかメソッドは無いよ。
0110デフォルトの名無しさんNGNG
>>106
つうかおまえ、「はずだ」「はずだ」なんていう
間抜けな仮定文で長文質問する前に、APIドキュ
くらい読めよ。
0111デフォルトの名無しさんNGNG
なるほど、sleep()はThreadクラスでしたか。初心者なの許してもらえれば幸いです。
では改めて、、
それではrunメソッドの動作の記述はいったいどこにあるのでしょうか?

・・っとここまで書いてプログラム眺めてみたら謎が解けました。皆様ありがとうございました。
0112デフォルトの名無しさんNGNG
>>110がいいこと言った!!
0113エッチマンNGNG
実行時のポリモーフィズを提供するために普通は
インターフェイスを使うところですが、未実装の
メソッドがあるとコンパイルエラーうざいので、
親クラスにインターフェイスのスタブを全部書いて
継承で済ませました。

これって、マナー違反?
0114デフォルトの名無しさんNGNG
Runnableにsleepメソッドはありません。
Threadはインタフェイスではなく実装のあるクラスです。
以上。
0115デフォルトの名無しさんNGNG
>>113
例えば、WindowAdapterなんか同じことしてるよね。
0116デフォルトの名無しさんNGNG
>>99
HTMLで書けば複数行表示できるよ。
0117デフォルトの名無しさんNGNG
>>111
run()メソッドの動作の記述ははおまえが書いてるはずです。
0118デフォルトの名無しさん NGNG
XPじゃ JAVAアプレットが使えない って友達に言われたんですけど、使えますよね?
0119デフォルトの名無しさんNGNG
>>118
自分でJRE入れろ
0120デフォルトの名無しさん NGNG
>>119
JAVAアプレットを JRE で動作させるの? はぁ?
0121デフォルトの名無しさんNGNG
>>118 アプレットページ開くとランタイムのダウンロードしろって
Flashみたいにダイアログがでるんだってさ。
まだXPクリーンインストールしたこと無いから又聞き。

>>120 最新のJREはAPPLETタグも認識するからMSのランタイムと
完全に置き換え可能。
ブラウザのインターネットオプションの詳細タグでMS版とSUN版の
切り替えも可能らしい。(と某Java雑誌に書いてあった)
0122デフォルトの名無しさん NGNG
XPの場合は、ランタイムダウンロードが始まり自動でインストールできます。5Mあるので5分くらいかかる
ってのが難点ですね。標準で入っていればいいんだけど、標準で入っていない分ユーザーフレンドリー
じゃないですね。

だから、JREをわざわざ入れる必要ないです。それにユーザーは「自分でJRE入れろ」なんて言われたら
絶対に使わないだろう。あまり変なこと言ってるなよ。>>119

// なんで、自分でJREを入れなきゃならないという意見になるんだろう?
0123エッチマンNGNG
>>115
なるほど〜
実体は全部定義してあるんだけどクラスはabstractなのね〜

つーか、インターフェイスってあんまりいらないのかな。
これだってWindowAdapterクラスを継承すればすむし。
もう少し勉強しないと使い道がわかんねー
0124デフォルトの名無しさんNGNG
>>123
javaではクラスは多重継承できないから、インターフェイスが必要という
面は確かにあるけど、それ以前に、実装主体でなく、インターフェイス
主体で設計するという考え方が強調されているように感じるけどね。
0125名無し募集中。。。 NGNG
JavaScriptの質問はここでいいの?
0126デフォルトの名無しさん NGNG
>>125
http://pc.2ch.net/test/read.cgi/hp/1005979370/
0127名無し募集中。。。 NGNG
>>126
Thx
0128名無し募集中。。。 NGNG
>>125
JavaScript??
あんな使いまわしできないモンやっても意味ないぞー
0129デフォルトの名無しさん NGNG
>>128
んじゃ 人間やめろ
0130デフォルトの名無しさんNGNG
javaでプログラムを作ろうと思っているのですが、メモ帳で作成して拡張子を.java
で保存してるのに、プロパティを見ると、拡張子がtxtになってしまいます。
何で?
0131デフォルトの名無しさんNGNG
>>130

xxxx.java.txtってなっているんじゃない?
登録されていない拡張子をつけようとすると拡張子と見なさない場合があるよ。
0132デフォルトの名無しさんNGNG
>>130
エクスプローラのフォルダオプションの
「表示のタブで登録されているファイルの拡張子は表示しない」を
はずす
あと、もうすこしいいエディタ使えば?
0133デフォルトの名無しさんNGNG
>131.132さん
ありがとうございました!
さっそくやってみます。
0134デフォルトの名無しさんNGNG
>>133

少なくともキーワードを強調表示できるエディタを使った方がいいよ。
自動インデント機能があるとなおよいけど。
0135デフォルトの名無しさんNGNG
>134さん
いろいろありがとうございます。
勉強します。
0136デフォルトの名無しさん NGNG
>>130
秀丸+JAVAhighlight+JAVA.mac を薦めます。DOS窓不要になるよ。

// けど -D 使うときはやっぱ DOS窓
0137デフォルトの名無しさんNGNG
Javaで作ったGUIアプリ紹介して
0138デフォルトの名無しさんNGNG
JBuilder,Forte
0139デフォルトの名無しさんNGNG
いや、開発環境じゃなくてそれによって作られた商品を紹介して欲しいのです。
0140デフォルトの名無しさんNGNG
JBuilder,Forte
0141エッチマンNGNG
>>139
JBuilderはJavaで出来てますよ。
あとはUML支援ツールのJudeとか
0142デフォルトの名無しさんNGNG
2ちゃんねるはServletとJSPで稼動しています。
0143デフォルトの名無しさん NGNG
>>142
そうだったんだ
0144デフォルトの名無しさんNGNG
CとPerlです
うそ言っちゃいかんよ(´д`;)
0145デフォルトの名無しさんNGNG
>>137

一太郎ArkもJAVA製だね。

>>144

さすがに書き込み処理等はPerlらしいね。
0146デフォルトの名無しさんNGNG
ApplecationServerってJava製多いんじゃないの?
0147 NGNG
>>142は真っ赤な嘘です。
0148デフォルトの名無しさんNGNG
下のプログラムの初期化がどうしても出来ません。

class X1{
int C1=1;
X2 x2;

X1( X2 x,int c ){
x2=x;
C1=c;
}

public int get_c(){
return( x2.get_c() +C1 );
}
}

class X2{
int C2=1;
X1 x1;

X2( X1 x ,int c){
x1=x;
C2=c;
}

public int get_c(){
return( x1.get_c() +C2 );
}
}

class test
{
public static void main(String args[]){
X1 x1;
X2 x2;
x1 = new X1( x2,1 );
x2 = new X2( x1,2 );
System.out.println( "" + x2.get_c() );
}
}
0149デフォルトの名無しさんNGNG
class P {
  static int s = 1;  /* 静的変数 */
  int i = 2;      /* インスタンス変数 */

  void TestInstanceMethod() {      /* インスタンスメソッド */
    System.out.println("test");
  }
 
  static void TestStaticMethod() {  /* 静的変数 */
    System.out.println("test");
  }
}

public class PrintVariable {
  public static void main(String args[]) {
    P p = new P();
   
    System.out.println(P.s);  /* クラスから静的変数の呼び出し */
    System.out.println(p.s);  /* インスタンスから静的変数の呼び出し */
    System.out.println(P.i);  /* クラスからインスタンス変数の呼び出し(エラー) */
    System.out.println(p.i);  /* インスタンスからインスタンス変数の呼び出し */

    P.TestStaticMethod();    /* クラスから静的メソッドの呼び出し */
    p.TestStaticMethod();    /* インスタンスから静的メソッドの呼び出し */
    P.TestInstanceMethod();    /* クラスからインスタンスメソッドの呼び出し(エラー) */
    p.TestInstanceMethod();    /* インスタンスからインスタンスメソッドの呼び出し */

  }
}
0150デフォルトの名無しさんNGNG
ってなんかややこしいですね.
0151デフォルトの名無しさんNGNG
>>150
インスタンスとクラスの関係を考えれば
当然の帰結じゃ。
0152デフォルトの名無しさんNGNG
>>148
コンパイルは通ったの?
0153148NGNG
>>152
初期化出来ませんです。
0154デフォルトの名無しさんNGNG
どういう事ですか?
噛み砕いて教えてもらえますか?
0155デフォルトの名無しさんNGNG
>>148さんの問題って
X1 x1;
X2 x2; <-ここで初期化されてない
x1 = new X1( x2,1 ); <-でもここでx2を使っている
x2 = new X2( x1,2 );

が問題じゃないんですか?
0156デフォルトの名無しさんNGNG
仕事で組んでたプログラムが要約すると>>148なのに今日気付いたのじゃ。
0157デフォルトの名無しさんNGNG
>>155
どう書き換えても初期化できないソースなのでした。
0158デフォルトの名無しさんNGNG
どーでもいいが、「初期化できない」というより、
「コンパイルできない」とかいったほうがはるかに話がわかりやすい。
0159デフォルトの名無しさんNGNG
ちょっと考えたんですが.
クラスはテンプレートであってそれから複製されるインスタンスは複数ある.
インスタンス変数は個々のインスタンスに属している為,一つしかないクラス
から
呼び出せる訳はない.
と言った感じでしょうか.
0160デフォルトの名無しさんNGNG
カーソルがあるコンポーネントのある範囲内に位置している時に
カーソルの絵を変えるにはどうするんですか?
単にmouseEnteredじゃ、そのコンポーネントに入った時だし、
mosueMovedじゃ、マウスが動いてる時しか変化しませんよね?
mouseEnteredメソッド内で範囲指定して・・というのは意味無いですよね?
0161デフォルトの名無しさんNGNG
enteredとmovedを組み合わせればいいのでは?
0162がばろん@MたんちゅきちゅきNGNG
>>160たん。
mosueMoved()とsetCursor()を用います。

「あるコンポーネント」にmouseMoved()を実装。
このメソッドを用いてマウスカーソルの座標位置が変化するごとに、
その座標位置が「ある範囲内」か、どうかチェック。

もしマウスカーソルの座標が「ある範囲内」に入っていたら、
マウス「カーソルの絵を変える」。

もしマウスカーソルの絵がデフォルトのものではなく、
なおかつ「ある範囲外」ならデフォルトの画像にもどす。

// たぶん、こんな感じだとおもう。
// もっとエレガントな方法が、あるのかも知れないけど。
0163バイク並みの自転車NGNG
質問です。
携帯I-MODE用のJAVAで、簡単な問答プログラムを作ったのですが、
最初に出た問題が後でまた出ます。かぶらせない方法は「ソート」
させて頭から解かせれば良し」と言ってますが、仕様書のSORTの
使い方も解らず。たっけて下さいな。
あとこれがソースです。ソース名jyukugo.java
(page1/7)
import com.nttdocomo.ui.*;
import java.util.*;

public final class jyukugo extends IApplication {
public void start() {

Random R = new Random();

int a = Math.abs(R.nextInt() % 16);
int b = Math.abs(R.nextInt() % 16);
int c = Math.abs(R.nextInt() % 16);
int d = Math.abs(R.nextInt() % 16);
int e = Math.abs(R.nextInt() % 16);
int f = Math.abs(R.nextInt() % 16);
int g = Math.abs(R.nextInt() % 16);
int h = Math.abs(R.nextInt() % 16);
int i = Math.abs(R.nextInt() % 16);
int j = Math.abs(R.nextInt() % 16);//問題をランダムに表示
0164バイク並みの自転車NGNG

int end = 0;
int tokuten = 0;
int n = 1; //何問目か確認
int answer = 0;
//問題データー
String[] mondai = {

"順風満帆の読みは「じゅんぷうまんぽう」?",
"一石三丁は存在する?",
"そもそも四字熟語自体が四字熟語?",
"苦心惨憺とは困りながら工夫を凝す事?",
"矮子看戯の読みは「かんしかんぎ」?",
"跳梁跋扈の読みは「ちょうりょうばっこ」?",
"日常坐〇。〇には俄が入る?",
"肉食妻帯の反対は菜食独身である",
"放歌高吟とは叫び歌う事?",
"内柔外剛とは虎の衣を〜と同じ?",
"臥薪嘗胆とはひたすら耐え忍ぶこと?",
"邂逅相遇とはめったに出会わないこと?",
"紅毛碧眼とは外見がおかしい事を指す?",
"国士無双は「こくしむそう」と読む?",
"孤軍奮闘と孤立無援。意味は同じ?",
"威風凛凛の読みは「いふうていてい」?"};

short[] kaitou = {0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,0};
0165バイク並みの自転車NGNG
String[] kaisetu
= {"解説:順風満帆はじゅんぷうまんぱんと読みます",
"解説:一石三丁はただの造語です",
"解説:四字熟語は四文字熟語の略語です",
"解説:合っています。くしんさんたんと読みます",
"解説:わいしかんぎです。適当に合せる事です",
"解説:読みは合っています。悪者がのさばる事です",
"解説:入るのは臥です。",
"解説:あっています。仏法用語です。",
"解説:あっています。無法という意味でもあります",
"解説:同じです。柔道の言葉です",
"解説:あっています。昔の中国は越の国の言葉です",
"解説:偶然の一致の事です。",
"解説:外人のことを指します",
"解説:満貫払いです。",
"解説:少し違います。一人かそうでないかです",
"解説:いふうりんりんと読みます"};

Dialog dg1 = new Dialog(Dialog.BUTTON_OK,"四字熟語");
Dialog dg2 = new Dialog(Dialog.DIALOG_YESNO,"四字熟語");
dg1.setText("四字熟語テストを始めます。全10問です。");
dg1.show();
dg1.setText("〇×はYES_NOで答えてください");
dg1.show();
0166バイク並みの自転車NGNG
do {
  dg2.setText("第" + n + "問 " + mondai[a]);
if(dg2.show() == dg2.BUTTON_YES){answer = 1;}
else{answer = 0;}
if(answer == kaitou[a]){tokuten++;dg1.setText("正解!");dg1.show();}
else{dg1.setText(kaisetu[a]);
dg1.show();}
n++;

dg2.setText("第" + n + "問 " + mondai[b]);
if(dg2.show() == dg2.BUTTON_YES){answer = 1;}
else{answer = 0;}
if(answer == kaitou[b]){tokuten++;dg1.setText("正解!");dg1.show();}
else{dg1.setText(kaisetu[b]);
dg1.show();}
n++;

で、変数がjまで続きます。

dg1.setText("あなたの得点は" + tokuten*10 +"点です。");
dg1.show();
tokuten = 0;
n = 1;

dg2.setText("もう一度同じ問題をやりますか?");
if(dg2.show() == dg2.BUTTON_YES){end = 0;}
else{end = 1;}

} while(end == 0);

terminate();}
}
0167デフォルトの名無しさん NGNG
>>163
トランプか、カードゲームまたはランダムに問題を出すものでもなんでもいい。言語もなんでも
いいので、とにかくアルゴリズムを調べてみれば?
0168 NGNG
「ソートして」つうのは誰のアドバイス?
間違ってる。
0169爺NGNG
>>163
このソース全部読めってか?
問題と思われるソートの部分だけを抜き出して再現させろよ。

#プログラムを「自分で作っている」という自覚はあるのか?
0170バイク並みの自転車NGNG
>>167さん
れすありがとうございます。ランダムに問題を出すのは
結構確認しております。残念ながら使える言語がJAVAの
みなのでアルゴリズムはフリーウェアのみ確認しています。
それでランダムに出す方法は解ったのですが、出題した
問題がかぶります。オープンソースの所もあんまりないし、
Iアプリは携帯でしかダウソできないのよ・・・どうしよう・・・
0171エッチマンNGNG
>>170
問題がかぶらない方法
1.一度出した問題かどうか覚えておく
2.問題のリストそのものをシャッフルして頭からとりだしてく
どっちかでいいじゃん?
0172バイク並みの自転車NGNG
>>爺さん
すみません。そう言うつもりではありませんでした。
題材に1から16の文字をあてて、Math.abs(R.nextInt() % 16);
これを使って適当に問題を引っ張ってくる事を10問繰り返す
プログラムです。当然かぶります(T_T)。
一からリファレンスなどを見ながら作って、流用、盗用
はしていないので作っていると思っていますが・・違うのですか?
0173バイク並みの自転車NGNG
>>エッチマンさん
  一度出した問題かどうか覚えておく
 
  なるほど。たとえば一度6番目の問題が出題されて、
  次の問題とかで乱数を出して6が出たらもう一度乱数を出す。
  これを繰り返す。これでOK?
0174デフォルトの名無しさんNGNG
テキストエリアから行ごとに文字列を
取り出すことってできるのでしょうか?

例えば、1行目を取り出して配列aに入れて、
2行目は,別の配列に入れる、など。
0175エッチマンNGNG
>>173
アバウトにそんな感じ。

いちいちやってるとめんどうだから
1からxまで偏り無く乱数を返すクラス
を作って、その中でやるようにしたい
RandHoge ero = new RandHoge(x);
int a = ero.toridasi();
みたいな使いっぷりのクラスを
作ってみたら?
中身の実装は1案2案どっちでもいいし
使う側は気にしなくていいし ←すげー重要
0176バイク並みの自転車NGNG
>>エッチマンさん
  さんくす。
  早速組んでみます。
0177デフォルトの名無しさん NGNG
>>170
> れすありがとうございます。ランダムに問題を出すのは
> 結構確認しております。残念ながら使える言語がJAVAの
> みなのでアルゴリズムはフリーウェアのみ確認しています。

言語はなんでもいいって言ってるじゃん。

ソースぱくるなら JAVA からしかないけど、アルゴリズム読むなら、JAVAじゃなくたって
perl だって、 shellscript だって、 VB だって、 C だって、日本語だって、英語だっていい
じゃん?

結局、JAVAじゃなきゃ駄目だってんなら、みなさんから回答うけたところで「どうやって組
むんでしょうか?」ってオチになっていくような気がするんだけど。
0178デフォルトの名無しさんNGNG
こういう場合どうるの?
public void trap( Throwable e )
{
 StringWriter out = new StringWriter() ;
 e.printStackTrace( out ) ;
}
スタックトレースを文字列にしたいの、
とりあえず、StringWriterってのを、与えみたんだけど、
だめだった。
オスエテェ〜
0179デフォルトの名無しさんNGNG
>>178 StringWriterのAPIドキュメント見ろ
で、何がどう駄目なのか言ってみ
http://java.sun.com/j2se/1.3/ja/docs.html
0180デフォルトの名無しさんNGNG
for(;;){
for(i=0;i<n;i++){
hogehoge
}
}

他人のソースを見て勉強しているのですが
for(;;)はどういう意味でしょうか?
0181エッチマンNGNG
>>178
StringWriterじゃなくてPrintWriterをあげなきゃじゃん?
0182178NGNG
>>179
えらそぉ〜な、知ったかバカだなぁ〜、すっこんでろな。
でも、めっかた。

public void trap( Throwable e )
{
 StringWriter sw = new StringWriter() ;
 PrintWriter out = new PrintWriter( sw ) ;
 e.printStackTrace( out ) ;
}

こうだったよ。
0183いまさらパソコン親父NGNG
どうしてjavaはデストラクタいらないのですか?
0184エッチマンNGNG
デストラクタってなに? 死のトラクター?
G型トラクター売ります ってーとゴルゴ呼べるんだっけ?
0185仕様書無しさんNGNG
>>180
while(true)といっしょ。
0186デフォルトの名無しさんNGNG
>>185

C++の本にご丁寧に載っていたな。私はwhile(1)の方が好きだけど。
0187エッチマンNGNG
>>186
javaのスレだし、while(1)はやめとこう。
0188だめ板住人NGNG
for(;;){
statement;
}
無条件にstatementを繰り返すループ.
0189デフォルトの名無しさんNGNG
>>183
ガベージコレクタがオブジェクトを破棄するタイミングが不定なため。
いつ実行されるかわからない上に、もしかすると実行されないまま
終わるかもしれないけど、それでも良ければ、
代わりにファイナライザ使ってください。
0190デフォルトの名無しさんNGNG
Linux JDK 1.2.2 010 で
char aaa = 'あ';
とやると
Invalid character constant.
とエラーがでます。
なぜなのでしょうか?どなたかお教えいただけますでしょうか?
0191デフォルトの名無しさんNGNG
javac が日本語(EUC-JP?)を理解してないのでは?
0192デフォルトの名無しさんNGNG
>>190

少なくともCではchar型の場合、「あ」みたいな2バイト文字は文字列だぞ。
きっとJavaも同じ理由でしょう。
0193191NGNG
'あ' の代わりに '\u3042' ならどう?
0194デフォルトの名無しさんNGNG
>>192
Java は Unicode だから。
0195デフォルトの名無しさんNGNG
Solaris 1.2 でやったらうまくいきます。Windowsも。
JDKのバージョンは1.2で。
ソースの文字コードはEUCです。
ちなみに、
System.out.println( "はろー" );
はコンパイルもと通るし、実行も出来るんですが・・・・
0196デフォルトの名無しさんNGNG
ソースの文字コードが EUC だってこと、javac が解ってないよ。
コマンドラインオプションで指定できたはず。
0197190NGNG
>>196
-D オプションでしょうか・・・・?
そのあとなんて書いていいか分からない・・・・
0198デフォルトの名無しさんNGNG
>>192 Javaではcharは16ビットだよ。
0199デフォルトの名無しさんNGNG
javac xxx.java -encoding EUC_JP

↓参照
http://java.sun.com/products/jdk/1.2/ja/docs/ja/guide/internat/encoding.doc.html
0200190NGNG
>>199
おおおお!できました!大感謝です。
これってどっかで初期設定出来るのでしょうか・・・?
solarisではなんでOKだったのか(インストールは私じゃないので・・・)
0201デフォルトの名無しさんNGNG
>>200
プラットホームごとにJREがデフォルトで
エンコーディング決めうちしてんだよ。
何も指定しないとデフォになる。
Solarisなら当然デフォがEUCだろうな。
0202デフォルトの名無しさん NGNG
>>197
> -D オプションでしょうか・・・・?

って思った理由を聞きたいです。いや、あおりでも冷やかしでもないです。

参考に・・・
0203sagfeNGNG
だめだこりゃ。
0204sagfeNGNG
あげんな。
>>1には才能が全く無い。無理。
0205デフォルトの名無しさんNGNG
java.awt.Graphicsクラスってabstractじゃないですか。
で、大多数のメソッドがabstractなんだけど、例えば、
Graphics#drawOval()とかを呼んだ時に実際に楕円を描いたりするの
はどこでやってるんでしょうか?
0206デフォルトの名無しさんNGNG
What's new about javaってどこいったの?
一時的な閉鎖?
0207デフォルトの名無しさんNGNG
>>205
APIライブラリ内部のどっかの実装クラス。

Graphicsクラスインスタンス(正確には、Graphicsクラスの
サブクラスのインスタンス)は、Image.getGraphics()
とかで、APIライブラリの中で実装クラスのインスタンスを
取得して使う。

そういえばImage.getGraphics()もabstractだな。

ユーザがGraphicsを造ろうと思ったら、例えば
BufferedImageをnewしてgetGraphics()すれば、
Graphicsインスタンスが得られるぞ。
0208204NGNG
スレ違い御免!
0209205NGNG
>>207
情報サンクス。

で、なんだか気になったから
JFrame f = new JFrame();
Graphics g = f.getGraphics()
System.out.println(g.getClass().getName())
ってやったら(動作確認Windows)
sun.awt.windows.WGraphics
って出た。
これって…どゆこと?
JavaのAPIでは見たことないパッケージなんだけど…。
VMに定義されてるパッケージとそのクラス…?
なんか頭悪そうだな。俺。
誰か教えて…。
0210デフォルトの名無しさんNGNG
>206
あ、ほんとだ。しばらく見ない間に。
Night for Javaの準備で忙しいのだろうか。
明日行くけどねん。
0211デフォルトの名無しさんNGNG
java.awt.Graphics のサブクラス。
プログラマからは java.awt.Graphics としか見えないけど、
実際にはそこから派生したクラスが使われているってこと。
new Graphics って作った覚えは、ないでしょ?
いつもどこからか Graphics が提供される。

interface みたいなもんだと思いねえ。

OSや、JREを実装したベンダーによって、実際のクラスは異なる。
0212デフォルトの名無しさんNGNG
>>209
普通OOPのライブラリ内部には、外部に公開しない
無数のクラスがあるものだ。

俺様ライブラリにも、publicでないクラスがいっぱい
あるぞ。
0213デフォルトの名無しさんNGNG
あるファイルから整数だけを取り出してそれらを
int変数に保存するのってどうやるの?
ちなみにそのファイルの中身はパターンがなにも無い
0214デフォルトの名無しさんNGNG
ファイルを開いて1文字ずつ読み込んで
整数だけ抜き出すプログラムを書け
0215160NGNG
>>162さん
ありがとうございました。うまくいきました。
0216デフォルトの名無しさんNGNG
>>213
正規表現を扱えるクラスがどこぞにあったからそれ使って抜き出せば?
0217デフォルトの名無しさんNGNG
Javaがインストールされていない、環境でダブルクリック起動する方法ってありますか?
0218デフォルトの名無しさんNGNG
Java が「インストール」されてなくても、存在さえしてれば、
java.exe を探して起動するような小さい exe を用意しとけば良い
0219デフォルトの名無しさん NGNG
>>218
その exe ってなに? java.exeを探すってなに?
0220デフォルトの名無しさんNGNG
>>217
そもそも Java プログラムって
Java がインストールされてない環境で動くのか?
0221デフォルトの名無しさん NGNG
>>220
J++ で exe にコンパイルしておけばいい
0222デフォルトの名無しさんNGNG
>>221
見た目がexeなだけなので、JVMが入っていないXPでは動かないっす。
0223デフォルトの名無しさんNGNG
>>222
試してみた?
どういうエラーがでるか
誰かレポートキボン
0224デフォルトの名無しさん NGNG
>>222
「動かない」だけじゃわかんないです。どう動かないのか書かないとね。
0225デフォルトの名無しさん NGNG
JDK のバージョン差異について書かれたサイトってありますか?

なくなったもの、追加されたものなどを知りたいのですが。
0226デフォルトの名無しさんNGNG
なくなったものは、ないんでは?
ことごとく非推奨になっただけで

追加されたものは、Javaの各バージョンのドキュメントを見るよろし。
http://java.sun.com/docs/
0227デフォルトの名無しさんNGNG
void Func(String Hoge)
{
Hoge = "hoge value";
}
はダメなのか?
ストリングクラスはオブジェクトだから参照渡しになると思ったのだが…
いまさらながらストリング型の内容を更新する関数が必要になったのだが、
これって超基本?
0228 NGNG
>>227
Java参照渡しでは無いよ。参照のコピーを渡している。
無論基本中の基本。

Hogeへの参照 → Hogeの実態

このHogeへの参照を、そのFuncとやらのメソッドに渡すと
(ちなみにJavaではメソッドの頭文字は小文字にするのが標準的だけど)
Hogeへの参照のコピーが新たに作られて渡される。

だからHogeへの参照のコピーが"hoge value"を指し示そうと、
オリジナルのHogeへの参照には無関係となる。

ついでに言えば、Stringクラスは一度newしたらその内容を変更する事は
できません。

変更したい文字列をリターンすれば?
0229227NGNG
>>228
情報thanks! 大変役に立ちました。
C++ から流れてきたので、てっきり"="演算子が文字列内容書き換えの
メソドを呼ぶようにコンパイルして貰えてるものと思ってました。
値がコピーされたように見えたのは実は新たに別に作成されたインスタンス
への参照に書き換えられただけでしたか。いやー大勘違いでした。
基本は、個別の処理群が参照先を勝手に書き換えるってCみたいな手法で
コードを書くな(書けない)ってことですな。(…なんか違いそうだな)

227のコードは"Hoge"参照先の書き換えメソドを呼んでくれているイメージで
組んだところ(この考え自体Cっぽくて良くないのか?)値が返らなかったので、
もしかして呼出側が新たにインスタンスを作成して文字列をコピーしてから呼び出すという、
文字列の値渡しみたいなことしてるのかな?とか勘ぐって質問に至った次第です。
(VBでString型の値渡し指定すると本当にそうなる。解説しよう。VBでも"="演算子は参照先の挿げ替えではなく代入なのだ)
実際は仮引数の参照先を一生懸命書き換えてただけなのですな(笑
ちなみに、本当は返却したい値がもっとあるので文字列戻り値じゃやり難いです。
0230229NGNG
ちょっと訂正
×基本は、個別の処理群が参照先を勝手に書き換えるってCみたいな手法で
○基本は、個別の処理群が参照先の内容を勝手に書き換えるってCみたいな手法で
0231デフォルトの名無しさんNGNG
>>227
>void Func(String Hoge)
>{
> Hoge = "hoge value";
>}

C++で書くと、こんなイメージ

void Func(String* Hoge)
{
Hoge = new String("Hoge value");
}

呼び出し元のは、変わらんでしょう。
0232デフォルトの名無しさんNGNG
>>229
引数を使って値を呼出し元に返すことは通常Javaではやりません。
#配列を使えばやって出来ないことはないですが。

複数の値を呼出元に渡したい場合は
Cでいう構造体のようなイメージのクラスを作ってそこに値を設定して
リターン値として返すか、
値の数だけ
Hoge getHoge()
Moge getMoge()
Fuga getFuga() ,,,等の
取得関数を
呼ばれる側のクラスに用意して適宜取り出してもらいます。
0233デフォルトの名無しさんNGNG
>>43 >>66
>実行されるから、resultがtrueになるかと思うけど、その前にcatchの中で
>すでにresultは評価されてしまっているっちゅーことみたいね。

最後の行のreturnが実行されないから当然じゃないの?
>>44 に同意だが。
0234デフォルトの名無しさんNGNG
>What's new about javaってどこいったの?

あ、移転のお知らせがでてたのにブックマークしてなかった。
誰か知らない?
0235デフォルトの名無しさんNGNG
ttp://www.gimlay.org/~andoh/java/javanew.html
0236デフォルトの名無しさんNGNG
Java3D 1.3に高精度タイマーが・・・
com.sun.j3d.utils.timer.J3DTimer
0237デフォルトの名無しさんNGNG
>>236
おおう、それは良かった。

で、ホントに高精度?
下でなに呼んでるのかな?

タイマの精度が上がっても、スレッドのスケジューラ
が変化なけりゃ、普段のプログラムには意味無い気も
するけど。
0238234NGNG
移転age
( Thanx > >>235 )
0239デフォルトの名無しさんNGNG
path通らないんで、だれかおせーて。(マジほんき涙
正確なところをどーか。
0240デフォルトの名無しさんNGNG
>>239
http://www.gimlay.org/~javafaq/javafaq.html
http://www.google.com/
0241デフォルトの名無しさんNGNG
pathってなんのパスだ?classpath?
0242239NGNG
感謝感謝!!!チュ!
024366NGNG
>>233

>>実行されるから、resultがtrueになるかと思うけど、その前にcatchの中で
>>すでにresultは評価されてしまっているっちゅーことみたいね。

>最後の行のreturnが実行されないから当然じゃないの?

確かに66では、「当然のこと」を言っているんですけど、何か?
0244223NGNG
ならいい
0245デフォルトの名無しさん NGNG
>>241
path と classpath のちがいもわかんないのか?
0246241NGNG
もちろんわかるぞ。
239はclasspathの事が言いたいのでは無かろうかとおもって書いただけだが。
0247デフォルトの名無しさんNGNG
画面上のマウスカーソルの位置を取得する方法ってありますか?
0248213NGNG
>>214
>ファイルを開いて1文字ずつ読み込んで
>整数だけ抜き出すプログラムを書け

それがわかんないんだけど。
どーやって整数って判断するの?どーやってそれをintに変換するの?
0249デフォルトの名無しさんNGNG
 (\     ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  \\/ (・∀・)<  >>248 芯でもいいよ!
   ( 。 /U U  \_____________
   U⌒U
0250だめ板住人NGNG
class A {
  void hello() {
    System.out.println("hello");
  }

  static void hello2() {
    System.out.println("hello2");
  }

  String toString() {      /* メソッドの修飾子が問題 
;*/ 
    return "class A with hello,hello2\n";
  }
}

public class GetInfo {
  public static void main(String args[]) {
    A obj = new A();
    System.out.println(obj.toString());
  }
}

上記のコードをコンパイルすると`スーパークラスでの定義より弱いアクセス特権(public)を割り当てようとしました'なるエラーが出ます.
メソッドの修飾子を変えて試してみた所
public->ok
public static->NG
static->NG
と言う結果になりました.
ここで疑問が湧いてきた事は,
1.publicより修飾子無しの方がアクセス特権は弱いがなぜ弱い特権でオーバーライドできないのか(なんらかの不都合があるのか)
2.なぜstaticでオーバーライドできないのか.(これも不都合がある?)
です.
仕様って言ったらそれまでなんでしょうが..
0251デフォルトの名無しさんNGNG
>>248
その、わからない事柄を、最初の質問で書かんか。

>どーやって整数って判断するの?

Character.isDigit

>どーやってそれをintに変換するの?

Character.digit または Integer.parseInt
0252デフォルトの名無しさんNGNG
>>250
疑問の1も2も、同じ理由だと思うよ。つまり、スーパークラスのインターフェイスを
サブクラスで変更してはダメということ。アクセス特権が弱くなるということは例え
ば、スーパークラスAでpublicだったメソッドmが、サブクラスBでprotectedになる
場合、それらを使用するクラスでは、
A a = new B();
a.m();
ができないということになる。これは、Aクラスのインターフェイスが勝手に変更され
るということで、ポリモーフィズムが成り立たない。漏れはそう理解しているけどね。



それまでスーパークラスとして可能だった
0253252NGNG
252の最後の行はミス。削除。スマソ。
0254デフォルトの名無しさんNGNG
自宅マシンで、jdk1.3で作業していて、ある程度できたんで、
会社の別のマシンで、jdk1.3.1でコンパイルしたら、
cannot resolve symbol
が大量に発生してコンパイルできなくて、まいってるんだけど、
誰か情報もってない?
あぁ〜こまった。
0255236NGNG
com.sun.j3d.utils.timer.J3DTimer

public static long getValue()
Get the timer value, in nanoseconds. The initial value of the timer is OS dependent.

public static long getResolution()
Get the nanosecond resolution of the timer

メソッドこれだけ。
精度が取得できるんだね。

でもcom.sunパッケージ・・・うーん
J2SE 1.5までのつなぎかな

JMFのタイマーはサウンドカード上の機能を利用する、
というような話を読んだ気がするけど誰か知らん?
0256229NGNG
みなさんありがとう。予想通りJAVAで参照渡し書き換えってのは邪道なのですな。

>>231
>void Func(String* Hoge)
>{
>Hoge = new String("Hoge value");
>}
>呼び出し元のは、変わらんでしょう。

ちゃうちゃう!こんなイメージ

void HogeFunc(CString* Hoge)
{
*Hoge = "Hoge value";
}

仕事ではもっと別の文字列型クラス(会社独自)使ってたので、CString 使うのは初めてだが、
とりあえず動作確認した。やっぱ "=" 演算子で文字列代入になったよ。
(ところでMFCってちょっと動作確認しようと新規プロジェクトから動かそうとすると手間かかるんだな)
0257 NGNG
>>254
変数名の打ち間違いとかがやたらとあるんじゃない?
0258デフォルトの名無しさんNGNG
JMSってなに?FTPの親戚?ポートは??
ぜんぜんわかんないYO
0259デフォルトの名無しさんNGNG
XPでjava導入したいんですが、インストール後に、フルパスを通す通し方がわかりません。syseditでautoexe.batに書き足すんですが何もおきません。どうしたらいいか途方にくれてます。だれかたすけて!
0260デフォルトの名無しさんNGNG
環境変数 PATH の話?
これってコマンドプロンプトからの子プロセスの話なのでは?
(Winアプリの場合どうなるのか実はよく知らん)
0261256 キリガヨイ!NGNG
>>231
は、よく読みなおしたらJAVAの動作をC++にコンバートして貰えてたのですか?
ご親切にありがとうございました!
私がやろうとしてることをC++で記述して貰ったのかと勘違いしました。
大変失礼!
0262254NGNG
>>257
自宅で、動いているのを、そのまま持っていったから、
それは無いと思う
0263エッチマンNGNG
>>262
ライブラリが足りないとか
0264デフォルトの名無しさん NGNG
>>259
コントロールパネル> (パフォーマンスとメンテナンス>) システム > 詳細設定 > 環境変数
0265デフォルトの名無しさんNGNG
IO erro occured while sending to the backend -java.io.UnsupportedEncodingException:EUC_JP[Could not load class: sun.io.Char ToByteEUC_JP]
これ何?
0266デフォルトの名無しさんNGNG
読んで字のごとくでねーの?
0267デフォルトの名無しさんNGNG
EUC-JP をサポートしてないっつぅエラー。
0268デフォルトの名無しさんNGNG
>>256
IO erro (アイオー エロ?)・・・つまらない、スマソ。
何やってこのメッセージ出たの?何かがEUC_JPはサポート外って事。
0269デフォルトの名無しさんNGNG
erro・・・・中途半端な略だな。
0270256NGNG
>>268
私に何か?(笑
はは、プログラマらしい打ち間違いとみた。
さてはアセムブラ||C遣いですな
0271amoNGNG
javaで π(パイ)の計算方法を教えてください。
注意;↓の方法

π=4− 4/3 + 4/5 + 4/7 +・・・・4/9999
和の方法がわかりません。わかる方をしえてください。
0272デフォルトの名無しさんNGNG
そのまま
pi = 4 - 4.0/3.0 + 4.0/5.0 - 4.0/7.0 +
って書いてみるのはどうだろう。
0273amoNGNG
javaで π(パイ)の計算方法を教えてください。
注意;↓の方法

π=4− 4/3 + 4/5 + 4/7 +・・・・4/9999
和の方法がわかりません。わかる方をしえてください
0274amoNGNG
正解のコードを教えてくれるまでage続けるので、
そのつもりでお願いします。
0275amoNGNG
↑は私ではありません。結構むずかしいですね
0276デフォルトの名無しさんNGNG
>>274
消えろ。ゴミクズ。
0277デフォルトの名無しさんNGNG
>>275
いや、お前だと思うが。(w
0278amoNGNG
↑も私ではありません。難しくてわからないのね
0279デフォルトの名無しさんNGNG
>>272 で答えは出てるだろう
去ね>>amo
0280デフォルトの名無しさんNGNG
>>272
private String calcpaipai()
{
String a = "4";
int b=3;
int c=-1;
while(b<10000)
{
a+= " " + ((c>0)?"+":"-") + " 4.0/" + String.valueOf(b) + ".0";
b+=2;
c*=-1;
}
return a;
}
どうだ?正解のコードだろ
0281amoNGNG
↑天才
0282ahoNGNG
多くは書かない。たった一行。
0283仕様書無しさんNGNG
>>281
からかわれてることに気づけYO!
0284デフォルトの名無しさんNGNG
identifierって何ですか
0285デフォルトの名無しさんNGNG
識別子?
0286デフォルトの名無しさんNGNG
名前
0287デフォルトの名無しさんNGNG
ID子
0288amoNGNG
きずいてるよ。あんまり人をなめないほうがいいよ・・・(けけけっけえ
0289テストNGNG
テストです。
0290デフォルトの名無しさんNGNG
>>284
無限力。
0291amoNGNG
javaで π(パイ)の計算方法を教えてください。
注意;↓の方法

π=4− 4/3 + 4/5 + 4/7 +・・・・4/9999
和の方法がわかりません。わかる方をしえてください
0292デフォルトの名無しさんNGNG
amo 氏んでくれ。
0293Kusakabe YouichiNGNG
>>288 amo wrote:
> きずいてるよ。あんまり人をなめないほうがいいよ・・・(けけけっけえ

ず
0294デフォルトの名無しさんNGNG
>>291
実行してちゃんと答えが出るのを確認済み
public class calcpaipai{
  public static void main( String[] args ){
    java.io.PrintStream ps = System.out;
    int b=3;
    int c=-1;
    ps.println("public class PI{\npublic static void main(String[]a){");
    ps.println("double pi = 4.0;");
    while(b<10000)
    {
      ps.print( "pi=pi" );
      for( int i=0;i<10;i++){
        ps.print( ((c>0)?"+":"-") + "4.0/" + String.valueOf(b) + ".0" );
        b+=2;
        c*=-1;
      }
      ps.println(";");
    }
    ps.println("System.out.println(pi);");
    ps.println("}\n}");
  }
}
0295デフォルトの名無しさんNGNG
笑介ちゃんか?>>293
0296いう0じょ@NGNG
javaで
VBのsendKeyみたいな
メソッドありますか?
あったら教えてください。
0297デフォルトの名無しさんNGNG
javaのデザパタ本読んでますが、一個目から理解できません。。

Iteratorパターンですが、ループはConcreteAggregateクラスの実装に
依存しないとかかれてますが、Iteratorをかまさなくてforでまわしても
依存しないですよね。。

for(int i=0; i<books.getLength(); i++){
Book book = books.getBookAt(i);
System.out.println(book.getName());
}

あさはか?
0298javaむぎ茶NGNG
逆順に欲しいときはどうする?
またはツリーになったデータをなめたいときは?
さらに幅優先、深さ優先で探索を切り替えたいときは?
0299279NGNG
なるほど。
 ・同じスキャン操作ならひとつのIteratorで複数のConcreteAggregateの
  実装を吸収できる
ということですか?

一個のConcreteクラスだとあんまりメリット感がないって感じなのかな。
0300デフォルトの名無しさんNGNG
>>297
そのbooksが何のクラスを示すか分からんが、booksの型に依存するでしょう。
だからbooksのクラスを変更してしまったら、そのコードは使えなくなる。

しかし、配列を扱うクラスが皆iteratorを返してくれるのであれば、
iteratorに対して設計する事により、そのiteratorが元々何のクラスから生成されたかに
関係無く、コードを再利用する事が出来る。
0301デフォルトの名無しさんNGNG
>>297
インデックスアクセスできないデータ構造だと、
不可能とはいわないまでも効率が悪いです。

Java にも Iterator インタフェイスがあります。
こいつは、Vector でも LinkedList でも HashSet でも TreeSet でも
どんなコレクションクラスからも生成できて、
実際にそれがどんな実装かに関わらず、
すべての要素を列挙できます。
参考になれば。
0302301NGNG
> インデックスアクセスできないデータ構造だと、
> 不可能とはいわないまでも効率が悪いです。

この2行はミス。読み飛ばして。お願い。
0303279NGNG
あれ?>>299で書いたこともおかしい気がしてきた。。

>>300
ええとですね、Iteratorのスキャン操作を行う#hasNext()にしても#next()にしても
結局ConcreteAggregateの#getLength()と#getBookAt()を呼び出してるのをみて
じゃあforでまわしたっておなじじゃん。。って思ったんですが。
配列をVectorに変更しても、#getLength()と#getBookAt()の実装は変更せざる
を得ないわけですし。。
0304エッチマンNGNG
>>301
えっと質問です。
IteratorとかEnumなんとかで列挙して取り出せるようにしたとき、
マルチスレッドな環境とかで
その取り出し元に変化があった場合はどういう挙動になるですか?
0305デフォルトの名無しさんNGNG
>>303
TreeSet や LinkedList だと、getLength や getAt などの
インデックスアクセス操作は非常に効率が悪くて、
そういうやり方は良くないです。原理的に不可能とは言わないけど。

>>304
Java の Iterator だと、例外が飛びます。
0306デフォルトの名無しさんNGNG
>>303
iteratorを使う側からすれば、iteratorの実装がどうなっていようが(゚ε゚)キニシナイ!!でしょ?
iteratorのインターフェースさえ実装されてるならね。そこが重要。

>>297のコードだと、booksの型を知らなければ使えない。
でもiteratorを使えば、booksのクラスを知る必要は無い。
そんなクラスが地上に存在する事すら知らなくてもOKな訳だよ。

難しいかな?
0307エッチマンNGNG
>>305 どうも。

ところで標準のAPIにスタックはあってもキューは無いですよね。
Queueクラスは自分で作れってことですか?
(難しいもんじゃないから作ったけど)
これって変ですよね。ついでにセマフォもミューテックスもないし
自分で考え自分で生きろって感じで加持さんモードっぽいし
確かに作れるけど用意してくれてたっていいと思いません?
0308279NGNG
>>306
目からウロコ!
ちゃんとIteratorを実装しておけば、hasNext()とnext()だけで
生きていけるってことですね?
ああ、そうかあ。ありがとうございます。やっと次のパターンに行けそうです。
0309デフォルトの名無しさんNGNG
>>307
それを言い出すとキリがない。
世の中にあるアルゴリズムなりデータ構造なりを全部作れってのは無茶です。
いや、全部じゃないとキミは言いたいのかもしれないけど、

僕はコレが欲しい、
私はあれが欲しい、
俺の使いたいのがなぜないんだ、

とか言い出すとキリがない。
どっかできっぱりさっぱり諦めるしかないんだよ。
Java には既に要らんクラスがいっぱいあるけど、
自分は要らんと思っても、他の誰かが要求したのかもしれないし。
0310エッチマンNGNG
>>309
了解です。
まあ実現する手段は提供されてるからこれ以上の不満はないです。
多少足りないくらいの方がコード書いてて楽しいし。
0311javaむぎ茶?NGNG
>>307 セマフォとかミューテックスとかThredがらみで便利なやつは
util.concurrent をどぞ
0312デフォルトの名無しさんNGNG
class A3 {
  int i = 1;
  void hello() {
    System.out.println("Hello A3");
  }
}

class B3 extends A3 {
  String i = "test";  /* 同じiを使用 */
}

class C3 extends B3 {
  double i = 333;    /* 同じiを使用 */
  void hello() {
    System.out.println("Hello C3");
  }
}

class MethodOverriding3 {
  public static void main(String args[]) {
    B3 obj = new C3();

    obj.hello();  /* C3のメソッド適用,objが参照するオブジェクトの型依存 */
    System.out.println(obj.i); /* B3の変数適用,変数objの型依存 */
  }
}

変数とメソッドで依存場所が違っててちょっと違和感があります.
なんでこんな実装に??
0313デフォルトの名無しさんNGNG
Cのprintfみたいな書式指定のできる
SDK標準のライブラリーってありませんか?
0314313NGNG
あげ忘れました。
0315デフォルトの名無しさんNGNG
sprintfじゃダメなんデスか?
0316デフォルトの名無しさんNGNG
>>312
その方が便利だからです。
0317デフォルトの名無しさんNGNG
>>312
ただ単に、フィールドはオーバーライドできないだけでしょう。
0318313NGNG
>>315
SDKじゃなくってJDKの間違いです。。。
どのクラスにprintfのようなオペレーション
があるのやら。。。
0319デフォルトの名無しさんNGNG
>>318
ありません。
もう一度車輪を作ってください。
0320デフォルトの名無しさんNGNG
>>319

reinvent the wheelってやつ?
0321デフォルトの名無しさんNGNG
>>319
printfど同じような目的に使えるものがあれば
いいわけであって、まったく同じである必要は
ありません。

そーいったもの用意されてませんかね<ALL
0322デフォルトの名無しさんNGNG
>>318
http://java.sun.com/products/jdk/1.2/ja/docs/ja/api/java/text/MessageFormat.html
0323デフォルトの名無しさんNGNG
(;´Д`)アア...
Cに戻りたいよお・・・。
0324デフォルトの名無しさんNGNG
>>322
サンクス!!
お礼にいい店つれってってあげます。
0325デフォルトの名無しさんNGNG
あきらめて
System.out.print("x= "+x+"y= "+y);
とか使ってなさい。
0326デフォルトの名無しさんNGNG
>>325
サブクラスを増やすことなく、かつ実行時に動作が
変化するようなアプリケーションを書いたことが無いだろ?
学生君
0327デフォルトの名無しさんNGNG
>>326
全部switch-case分岐とか?腐ってるね。
そんな古生代の遺物みたいなものを作る人
は逝って良しだなあ。
0328デフォルトの名無しさんNGNG
>>327
>全部switch-case分岐とか?腐ってるね。

ジャーちみは、こんなことしとんのか?ただのアホだぞ。。。はぁ

class Class0 {String methodA(){return null;}}
class Class1 extend Class0 {String methodA(){return "x= "+x+"y= "+y;}}
class Class2 extend Class0 {String methodA(){return "x== "+x+"y== "+y;}}
class Class3 extend Class0 {String methodA(){return "x equal "+x+"y equal "+y;}}
Class0 inst = new Class2();
0329エッチマンNGNG
>>328
327じゃないけどマジでそんなコード書いてるんだけど・・
いい方法が思いつかなかったよ。
ヒントください。
0330デフォルトの名無しさんNGNG
まあ、JAVAなんかやってると>>326みたいな厨房になるってことだ。
0331デフォルトの名無しさんNGNG
>>329
>>326はただ、訳の判らん事言って煽ってる厨房なので無視するように。
0332デフォルトの名無しさんNGNG
素直にCにすれば万事解決すると思うが。
0333デフォルトの名無しさんNGNG
書式指定くらいならパラメータ化できる。継承するより委譲したり
パラメータ化したほうがよいケースが多い。>>328は管理面から
ダメダメ
(こんなことするからCOBOLERにOOダメやんと文句いわれる)

class Class {
int x, y;
MessageFormat form;
Class(String fmt)
{
form = new MessageForm(fmt)
}

 String methodA()
 {
  return form.format(new Integer[] {new Integer(x), new Integer(y)});
 }
}

Class inst1 = new Class("x= {0} y= {1}");
Class inst2 = new Class("x== {0} y== {1}");
Class inst3 = new Class("x equal{0} y equal {1}");
0334デフォルトの名無しさんNGNG
デムパ君が一人で暴走しとるな。
0335エッチマンNGNG
この際だから聞いてみようっと
たとえば、特定のコマンドによって挙動がかわるものを生成するとき

Hoge hoge;
switch(command)
{
 case 1:
  hoge = new Hoge1();
  break;
 case 2:
  hoge = new Hoge2();
  break;
}
※Hoge1、Hoge2はHogeのサブクラス。主要なメソッドは全部継承してる

というコードを書いてるんだけど、確かにスマートじゃないかも。
これをスマートに書こうと思ったらどうすればいいかな
無理にスマートにする必要もないかな?
0336デフォルトの名無しさんNGNG
Javaじゃ無理。
0337デフォルトの名無しさんNGNG
>>335
FactoryMethodだけはswitchするしかない。OOPのお約束。
そのかわり、そこ以外では一つもswitchしないですむよう
な、保守性の良いコードを書けるのが、OOPのいいところ。

FactoryMethodの価値は、メソッド一個じゃ分かりにくいけどね。

public interface Hoge{void exec();}

public class HogeFactory{

 public static class Type{private Type(){}}
 public static final Type HIGE =new Type();
 public static final Type HAGE =new Type();

 class Hige implements Hoge{public void exec(){System.out.println("HIGE");}}
 lass Hage implements Hoge{public void exec(){System.out.println("HAGE");}}

 static Hoge createHoge(Type type){
  if(type==HIGE)return new Hige();
  if(type==HAGE)return new Hage();
  return null;
 }
}
0338エッチマンNGNG
>>337
サンクスです。
そうか、生成するクラスを作ってそいつにやらせれば
もうすこしだけスマートになったのですね。

デザインパターンの本にもあったのはこれだったのか!
もういちどちゃんと読みかえそっかな
0339333NGNG
>>335
GoFのCommandみたいだな。。。javaならきっと

String[] class_name {null, "Hoge1", "Hoge2"};
hoge = (Hoge) Class.getName(class_names[command]).newInstance()

となるが、アーキテクチャーが判らんことにはなんともいえん。
俺もjavaはじめたばっかやし。
0340337NGNG
>>335
Javaなら、Reflectionを使ってClassオブジェクトのMap
を作っておくと言う荒業があるね。ちょっときれいになる
けど、重いかも。

337のFactoryMethodをReflectionで書き換え。

static final Map map = new HashMap();
static{
map.put(Type.HAGE,Hage.class);
map.put(Type.HIGE,Hige.class);
}

static Hoge createHoge(Type type){
return (Hoge)((Class)map.get(type)).newInstance();
}
0341エッチマンNGNG
>>339-340
そんなかっこいいことも出来るのか!
勉強が足りんかったです。書きなおそっかな

あーでももう出荷しちゃったコードだしなぁ・・・
0342デフォルトの名無しさんNGNG
FactoryMethodなのか?ちがうだろ?
0343デフォルトの名無しさんNGNG
んー。今夜はデムパが多いな。
ほぼ満月のせいか・・・。
0344337NGNG
>>342
ガンマ本そのまんまじゃん…
0345デフォルトの名無しさんNGNG
HogeじゃFactryかどうか判らん。
sleep();
とか
getkey()
とかかもしれんし。
0346337NGNG
>>345
すまん。意味がわからん。
メソッド名はパターンの概念の説明にとっては
関係ないと思うが。
0347デフォルトの名無しさんNGNG
Javaのお勉強に最も向いたOS/開発環境ってどれ?
0348デフォルトの名無しさんNGNG
>>347
現状Windowsです。マジデ。

開発環境は

JDK+そこらへんのテキストエディタ

がお勉強には最も良い。マジデ。

マジデだよ。煽りとかじゃないよ。
0349333NGNG
FreeBSDはサポートが遅いのでやめたほうが無難。。。
今でもJDK1.1.8を使いたければFreeBSDでどうぞ。。。

何とかならんのかFreeBSDのJDK(;;
0350エッチマンNGNG
>>347
Win2k+JBuilder5
IDEはいろいろ補完してくれるので使う脳みそが少しで済むので楽です。
0351333NGNG
>>347,348
DO$系は標準エラーがファイルにリダイレクトできんし
grep, tr, sedが使えんからやめといたほうがいい。
LINUXあたりがよさげと思う。。。
0352デフォルトの名無しさんNGNG
>>351

grepなんぞDOS系でも優秀なテキストエディタならできる。
置換もな。
0353デフォルトの名無しさんNGNG
>>351
Cygwin使いなさいよ。元UNIX使いにも便利。
0354デフォルトの名無しさんNGNG
Javaにはもうオタクしか残ってないっぽい・・・。
やっぱRuby化するのか・・・。
0355333NGNG
>>352
でもcommand.comじゃ*.cshはうごかんだろ?
0356デフォルトの名無しさんNGNG
WinXPはJava動かないんだっけ?
0357デフォルトの名無しさんNGNG
>>354
逆だよ。昔はキモオタ「しか」いなかった。
最近そうでない人もちょっかい出すようになってきた。
0358デフォルトの名無しさんNGNG
>>356
動くよ。ランタイム環境がデフォルトでは
(ブラウザにも)入ってないというだけ。
0359デフォルトの名無しさんNGNG
デフォルトで動かないってやばくね?
オンデマンドなインストールが出来るわけじゃないんでしょ
0360デフォルトの名無しさんNGNG
いまだにcsh使ってる奴がいたのか
0361デフォルトの名無しさんNGNG
デフォルトでうごかないってことは誰も使わないってことです
0362デフォルトの名無しさんNGNG
>>361
FlashとかAcrobatReaderとか、使わないの?
0363デフォルトの名無しさんNGNG
cygwin入れてもWin98のDOS窓は使いにくいなぁ・・・。
0364デフォルトの名無しさんNGNG
僕はbash,vi,jdk1.3.1 on Debian GNU/linuxかな.
もっと良い環境はあると思うけど最初はどこにでもありそうな環境でやっとく.
0365デフォルトの名無しさんNGNG
ARはメーカー製PCにはたいがい入っています
FlashはActiveXなのでその場ダウンロード可能です
0366デフォルトの名無しさんNGNG
オタクの特徴。
レアな環境を持ち出して自慢する。
0367デフォルトの名無しさんNGNG
>>366
いまんとこ、レアな環境はひとつも出てきてないね。
もう少し珍しい環境も見てみたいね
0368デフォルトの名無しさんNGNG
じゃ皆本気で薦めてるのか?
初心者に??
0369デフォルトの名無しさんNGNG
Rubyスレが上がってないのと関連付けてしまう私。
0370デフォルトの名無しさんNGNG
Night for Java Technologyのコンテストがあったらしいですね.

1位filetree
http://www.sanpo.t.u-tokyo.ac.jp/~nkeisuke/
2位GetAmped
http://www.getamped.org/beta/
3位NS-TOWERandNS-SHAFT
http://www.nagi-p.com/
4位IIOSS
http://www.iioss.org/index-j.html

との事です.
Javaも捨てたもんじゃないYO!
0371 ◆RubyOmS2 NGNG
>>363
cygwinを入れているのになぜDOS窓を使うんだ?
cygwinをそのまま使えばいいのに、、、
0372363NGNG
あ、もちろんそのまま使ってます。
あれってDOS窓ベースに動いてるのかと思ってるんだけど勘違い?
バッファ行数増やしたいんだけど・・・。
0373ななしさんNGNG
簡単なJAVA アプレットを作ろうと思うんだけど、
IEでもネスケでも確実に動くのは、JAVAのどのバージョンですか?
クライアントでGUIが動く必要もなく(画面が見える必要はなく)、
通信プログラムが動くだけで良いのです。
0374 ◆RubyOmS2 NGNG
>>372
ベースはわからないけど、シェルとしては全然違うでしょ。
まず、コマンドが違うし、、、
(でも、PATHを通したらコマンドプロンプトでcygwinでのコマンドも使えたけど、、)
bashはカレントディレクトリにpathが通ってないし、、、
何よりもちがいが、
#!(コマンド〜〜〜)
がDOS窓などでは認識されないこと。
Javaなら別にいいけど、
PerlやRubyなどのスクリプト言語を使う人にとっては、
この違いは大きい、、、
0375デフォルトの名無しさんNGNG
>>372
うん。DOS窓上で動いてるよ。
バッファ行数はWin98じゃ増やせないからWin2k買ったよ。
っつーのはおいといて、
どうにかしてtelnetd動かしてTeraTermからってやればいいと思う。
0376 ◆RubyOmS2 NGNG
>>375
あっ、ほんどだ、、、
左上のアイコンを右クリックするとコマンドプロンプトと同じだ、、、
つか、一番早いのはLinuxでも入れる事じゃないのか?

つか、Javaの話からかけ離れてきているから、やめにしよう、、、
0377259NGNG
>>264 tThanks a lot!!
でも、まだjavac comandが認識されてくれない。あー鬱!
0378java大好きっこNGNG
独習JavaのP273にある
「wait()メソッドは、synchronizedメソッドまたはsynchconizedブロックを
 実行しているスレッドでロックを解放し、ほかのスレッドからの通知を待ちます」
のところが何度読んでも理解できません。
wait()メソッドがロックを解放できるのは、wait()が書いてあるsynchronized
メソッド(ブロック)のこと?
0379エッチマンNGNG
>>378
synchronized(obj)
{ wait(); }
って寝てるなら

synchronized(obj)
{ notifyAll(); }
として起こせるですよ。

とりあえずこれで十分ですよ。たぶん。
0380java大好きっこNGNG
>379
すみません
上の(obj)のオブジェクトのロックをwait()が解放した後、
wait()メソッドが寝て(?)、
それを下のnotifyAll()が上のwait()を起こすってことですか?
それから上と下の2つの(obj)はそれぞれ違うオブジェクトでも
いいのでしょうか?
0381デフォルトの名無しさんNGNG
「wait()メソッドは、synchronizedメソッドまたはsynchconizedブロックを
 実行しているほかのスレッドがロックを解放し通知するのを待ちます」
じゃないかな?
0382java大好きっこNGNG
>381
wait()メソッド自身がロックを解放するわけではない、
ということですか?
378にもあるように独習Javaにはwait()メソッドがロックを解放する
ように書かれているのですが・・・。
0383デフォルトの名無しさんNGNG
>>380
オブジェクトインスタンスは、内部にモニターという
ロックを管理するデータを、必ず一個もっています。

synchronized(obj)というステートメントで、その
ステートメントに入ったスレッドが、objのモニター
を獲得します。このとき、objのモニターをどこか他の
スレッドが獲得していた場合は、そのモニターが解放
されるのを待ちます。

一度獲得したモニターは、以下のいずれかで解放されます。
1.synchronized(obj){}のスコープ外に出たとき。
2.obj.wait()をコールした時。(この場合、他のスレッド
 から起こされるなどで再びここに戻ってくると、またobj
 のロックを獲得する事になります。)

2.によりobjのモニター解放されるので、別のスレッドが
synchronized(obj){obj.notify();}のスコープ内に、
objのモニターを獲得して入ることができます。

ここでnotify()メソッドは、obj.wait()でwait状態
になっているスレッドの一つを、runnable状態に変更
します。(スレッドは、wait(待機状態)、runnable
(実行可能、スケジューリング待ち状態)、running
(CPUリソース使用中)のいずれかの状態を持っています。
VMのスレッドスケジューラや、wait(),sleep()メソッド
などがこのスレッドの状態を変更します。)

あとは、VMのスレッドスケジューラがいつかはrunnable
になっているスレッドを実行してくれるので、wait()で
寝ていたスレッドが、そのタイミングでまた動き出すわけ
です。(wait状態のスレッドは、VMのスケジューラの
スケジューリング対象外になるので、notifyしなければ
スレッドはいつまでも寝ています。)

こんな感じでよろしいですか?
0384380NGNG
ここでいっているモニターと呼ばれるものが、
一般的なスレッドプログラミングで用いられる
MUTEXLOCKオブジェクトのようなものになります。
(セマフォではないですので注意。)

obj.wait()のobjと、obj.notify()のobjは
同じインスタンスでなければ意味がないです。
0385383NGNG
380じゃないや。スマソ。
0386383NGNG
ところで、synchronized関係で重要なのは、
スレッドのスケジューリング自体よりも、CPU
バッファのフラッシュのタイミング制御だと
いうことを分かっていない人が多い。

マルチCPUでもJavaは結構ちゃんと動くんだけど、
主記憶とCPUレジスタとの間にバッファがあることを
分かっていないプログラマにかかると、「Javaで
マルチCPUはダメ」の烙印を押されることになる。
馬鹿は御しがたい。
0387java大好きっこNGNG
>>383
読んで理解するのに時間がかかってしまいました。。。
全てとは言いませんが、なんだかすごくよくわかった気がしてきました
383さん、どうもご丁寧にありがとうございました。
他にレスを下さった人もありがとうございました。
本当に感謝です。
0388デフォルトの名無しさんNGNG
>>396
え、そんなの知らなかった

普通に排他制御するだけじゃだめなの?
テキトーに組むと極端に遅くなるとか?
何も知らずにDUAL、NT4でJavaしてたよ、、、
詳細解説キボン。
0389383NGNG
>>388
適当にくむと、
1.あるCPUが使っていたオブジェクトと別のCPUが使って
いたオブジェクトで、同一のオブジェクトの同一のフィ
ールドなのに、内容が違う事があるということ。
2.逆に、必要もないのにバッファフラッシュをくり返して
速度が無駄に遅くなるということがあること。
0390学生っすNGNG
参考書を見ながら練習で作ったんだけど、正常にソートされない原因がわかりません。
もう2時間以上も考えてるんだけど。
熟練の方々助けてー

import java.util.*;

class VectorDemo2 {
public static void main(String args[]) {
Vector vect = new Vector(args.length);
Integer o1;
Integer o2;
Object obj;

for(int i = 0; i < args.length; i++) {
try {
o1 = Integer.valueOf(args[i]);
}
catch(Exception e) {
System.out.println(e);
continue;
}
vect.addElement(o1);
}

for(int i1 = 0; i1 < vect.size() - 1; i1++) {
o1 = (Integer)vect.elementAt(i1);
for(int i2 = (i1 + 1); i2 < vect.size(); i2++) {
o2 = (Integer)vect.elementAt(i2);
if(o1.intValue() > o2.intValue()) {
obj = vect.elementAt(i1);
vect.setElementAt(vect.elementAt(i2),i1);
vect.setElementAt(obj,i2);
}
}
}

Enumeration e = vect.elements();
while(e.hasMoreElements()) {
obj = e.nextElement();
System.out.println(obj);
}
}
}
0391デフォルトの名無しさんNGNG
>>389
ほんとかねえ??
0392デフォルトの名無しさんNGNG
>>386
それがバッファされないことを保証するために
マルチプロセッサのOSではあれこれ細工がしてあるはずだけど?
0393仕様書無しさんNGNG
すいません。質問です。エラーについて教えてください。
二時間前に独習javaって本を買ってきて、JDK1.2をインストールしました。
それで下のソースをうってコンパイル、実行とするとエラーになってしまいます。
環境はWin2000です。

class Example1{
public static void main(String args[]){
System.out.println("That is the output from Example1");
}
}
------DOS--------
java example1
Exception in thread "main" java.lang.NoClassDefFoundError: example1
0394 NGNG
>>393
その質問をしたのは、君で153万8563人目だよ。
0395C勉強中 ◆RubyOmS2 NGNG
>>393
Javaは大文字と小文字の区別をするので、
java Example1
と、やってみ〜〜〜〜
0396393NGNG
>>394
良くある質問なんですね。
>>395
やってみましたが、同じ結果になってしまいました。

NoClassDefFoundError クラス定義が見つからないということでしょうか?
PATHは通したつもりなんですが。
0397C勉強中 ◆RubyOmS2 NGNG
>>369
え???
俺はうまく言ったのに、、、
取りあえず、ディレクトリにExampl1.classがあるか確認してみ〜〜
あと、コンパイルが通るなら、PATHは通っているはず、、、
0398C勉強中 ◆RubyOmS2 NGNG
397は>>396にだ、、、
あと、DOS窓の作業ディレクトリは*.classファイルがあるところになってる?
0399393NGNG
>>397
回答ありがとうございます。Example1.classはありました。
;D:\jdk1.2\binってのをPATHにだけでなく、ClassPATHにも追加しました。
再起動してきます。
0400393NGNG
クラスの置いてあるディレクトリをClassPATHに追加したら
うまくいきました。(399の方法は失敗)
C勉強中さん、ありがとうございました。
参考
ttp://www.dmz.hitachi-sk.co.jp/Java/Tech/jre/classpath.html
0401hogeNGNG
あのー、
ちょっと前に見かけた「GC の仕組み」をモナーがやってる AA
お持ちの方いらっしゃいます?
0402388NGNG
>>389
でマルチCPUではどう気をつければいいのかできれば具体的に解説orポインタ希望っす

一応スレッドのモニタ関係の基本とデッドロックくらいは
理解してたつもりだったんすけど、
いままで知らずにまずいコーディングをやってた可能性が発覚したかも。
0403デフォルトの名無しさんNGNG
>>402
>>389は煽りだよ。
0404C勉強中 ◆RubyOmS2 NGNG
>>400
漏れの場合は環境変数のCLASSPATHを設定していないから、現在のディレクトリに
CLASSPATHが通って、うまく行っただけみたいだな、、、
普通、CLASSPATHって設定しておくもんなのか?
0405デフォルトの名無しさんNGNG
            ギュッ   ∧∧
                (゚Д゚;) ≡≡
■■■■◇◇□□□□□⊂  \

       ベキッ
   ◇  ◇        ∧∧ アッ
    \ ノ       (゚;  ) ≡≡
■■■■□□□□□⊂  \
     / ヽ
0406デフォルトの名無しさんNGNG
>>404
コンパイルんときはソースが参照するライブラリさえクラスパスが通ってれば
問題ない。(と思った。確か)
(システムライブラリやlibディレクトリに置いてあるjarはそれもいらない)
実行するときはコンパイルでできたclassファイルに対して正しいクラスパスが
設定されてないとだめ。

パッケージ名を指定したソースで多少はまったことあった。)
Java2以降のSUNのJDKの話ね。
0407デフォルトの名無しさんNGNG
>>403
日本IBMのDeveloperWorksに書いてあるよ。
0408383NGNG
>>403

あのダグ・リーの「Javaスレッドプログラミング」本
(日本語訳はttp://www.shoeisha.com/book/Detail.asp?bid=9)
に、詳しく書いてあるよ。

IBMDeveloperWorksJapanの、Java最新トピックがこの話なんだね。
ttp://www-6.ibm.com/jp/developerworks/java/011123/j_j-threads1.html

昔Javaでサーバプロセス書いて、スレッド間のメモリ同期ミス
に起因するバグで苦労した事あるんだよ。高負荷試験で1万分の1
の確率とかでパラメータが不整合になったりするんだよ。
あの時は困ったもんだよ。
0409デフォルトの名無しさんNGNG
>>405 成功してるのキボンヌ
0410401NGNG
>>405
あのー、出来ればモナー版ください。

>>409
誰?
0411デフォルトの名無しさんNGNG
Javaでサーバー書くって時点でネタ確定
0412デフォルトの名無しさんNGNG
>>408
要するに普通にマルチスレッドプログラミングしてれば問題無い
つうことではないか。
0413デフォルトの名無しさんNGNG
リンク貼っても荒されようのないサイトをttpで書いちゃいやーん

// 2ちゃんでttpリンクにするのは直リン不可なサイトか、
// リファラーで2ちゃんからのリンクと知られたくない場合なのさ
0414デフォルトの名無しさんNGNG
初心者です。質問があります。
以下のTest.javaをコンパイルして実行します。

public class Test
{
public static void main(String[] args)
{

double xd = Double.longBitsToDouble(0x7ff8000000000000L);
System.out.println("xd = " + xd );

long xl = (long)xd;
System.out.println("xl = " + xl );
}
}

すると、結果として、
xd = NaN
xl = 0
と表示されます。

なぜ、xl にもともとの、
0x7ff8000000000000L
という値が入らないのでしょうか?
0415Kusakabe YouichiNGNG
>>414 デフォルトの名無しさん wrote:
> xd = NaN
> xl = 0
> と表示されます。
>
> なぜ、xl にもともとの、
> 0x7ff8000000000000L
> という値が入らないのでしょうか?

一旦NaNになっちゃってるからでは?
0416414NGNG
たしかに、もしxlに
0x7ff8000000000000L
という「ちゃんとした数」が入ったら入ったで
これってヘン?
と思うわけですが。。。
だから、0にしとくしかない、ってことか・・?
JVMの仕様にきちんと書かれてることなんですかね?
0417デフォルトの名無しさんNGNG
>416
言語仕様書に載ってる。IEEE 754準拠
ttp://java.sun.com/docs/books/jls/second_edition/html/typesValues.doc.html#9208
0418C勉強中 ◆RubyOmS2 NGNG
>>414
xl = Double.doubleToRawLongBits(xd);
と書くと、幸せになれるかも知れない。
そもそも、
xl = (long)xd;
じゃ、longBitsToDoubleの逆変換になるわけないじゃん、、、
型変換って、bitをそのままにして渡している訳じゃないぞ、、、
0419414NGNG
>>417
>>418
Double.doubleToRawLongBitsの動作について
根本的な考え違いをしてたことが分かりました。
ありがとうございました。
0420デフォルトの名無しさんNGNG
インタフェースとObject型についての質問です。
クラス BaseX と RunnerX を以下のように定義しました。

public BaseX { /* からっぽ */ }

public class RunnerX
extends BaseX
implements Runnable
{
public void run() { /* 実装は省略 */ }
}
で、RunnerXのオブジェクト x を作ります。
RunnerX rx = new RunnerX();

rxをBaseXまたはRunnable変数に代入する以下の式はもちろん
コンパイルできて実行時も例外を発生しません。
BaseX bx = rx;
Ruunable r = rx;

しかしこのように代入されたRunnable型変数 rを
BaseX型変数に代入しようとするとコンパイルエラー
になります。(互換性のない型 と怒られる)

BaseX bx2 = r; // コンパイルエラー!!

これは納得です。
が、疑問に思っているのは、Runnable型のrをObject型変数
に代入する式、

Object obj = r;

がコンパイルOKってことです。
「Objectはすべてのクラスのツリーのルートだが、インタフェース
には共通のルートはない」という原則にそぐわない気がするのです。
なんかすっきりした説明のできる方いませんか?
0421デフォルトの名無しさんNGNG
>>420
そのインタフェイスを実装してるクラスが必ず存在するわけで、
そのクラスが Object クラスから派生してるのは間違いない。
だから必ず変換結果が存在するので、エラーにする理由がない。
0422デフォルトの名無しさんNGNG
>>421
やっぱり

『>エラーにする理由がない。
からエラーにならない。』

ぐらいの割り切りで飲み込むしかないのかな〜。

Object obj = r;
がキャストなしで代入できてしまうことが、
「クラスとインタフェースの階層ツリーは別ものである」
という原則からすると「どうもしっくりこない感じ」が
するのって変?
これ実は、サンの認定JAVAプログラマの練習問題。
紫本の練習問題6−5なんだけどね。
ま、実際にコンパイルできるんだから、納得する(つーか
覚える)しかないけど。
0423デフォルトの名無しさんNGNG
そっかー、分かった。
「r は Runnable型のオブジェクト」
なんだから、
Object obj = r;
は正しいのか。
そっかー、そっかー。よかったー。
0424デフォルトの名無しさんNGNG
JITを有効にするには、どしたらいい?
環境変数にコンパイラ名指定すればいいだけ?
それとも、もっと複雑?
0425デフォルトの名無しさんNGNG
>>424
環境を書きなされ。
0426デフォルトの名無しさん NGNG
>>351
秀丸なら 置換、grep もできるし、コンパイラの標準エラーや、作ったプログラムの実行結果も秀丸上に表示する。
0427デフォルトの名無しさんNGNG
>>426

秀丸マンセー(煽りではなく)

そろそろ入金しようかな・・・・
0428デフォルトの名無しさんNGNG
meadow…
0429デフォルトの名無しさんNGNG
>>426
Peggyモナー
0430デフォルトの名無しさんNGNG
>>425
れすどうも、
環境は、
LinuxでSlackware4から色々アップしてつかって、殆ど7.0になってる、
kernelは2.2.16
jdkは1.3.1
ってかんじ
どでしょ?

とりあえず、
export JAVA_COMPILER=symcjit
としてみたんだけど、効いてる?
0431デフォルトの名無しさんNGNG
>430
1.3.1ならHotSpotなんでわ?
java -versionで確認してみそ

それから"-Xprof"オプションつければ
どの部分がネーティブに変換されてるか表示されるよ
0432デフォルトの名無しさん NGNG
>>429
Peggy調べてきました。
かなり強力なエディタですね。

ただ、エディタってなれてものがやっぱ一番使いやすいので、そのエディタである程度のことが
できてしまうと、ほかに行けないんですよねぇ。
0433  NGNG
C++はここでいいのかな?
0434デフォルトの名無しさんNGNG
>>433
ビミョーにアウト
ごめんね
0435  NGNG
どこにいけばいいのですか?
0436デフォルトの名無しさんNGNG
>>435
ここ。ほんとごめん

C++相談室 Part3
http://pc.2ch.net/test/read.cgi/tech/1003832761/
0437  NGNG
ここでいいの?
質問しちゃうよ
0438 NGNG
ポインタってナンですか?
0439デフォルトの名無しさんNGNG
>>438

Cではアドレスを格納するための変数。多分JAVAでも同じ。
0440デフォルトの名無しさん NGNG
>>439
アドレスを格納 って アドレスってなに?
0441デフォルトの名無しさんNGNG
>>440

メモリーのアドレス。
0442デフォルトの名無しさん NGNG
>>441
メモリーのアドレスを格納するための変数。ってことか・・・

目的と作用が離れて難しい説明するのね。
0443デフォルトの名無しさんNGNG
本当に細かいツッコミなんだけど,
正確にはポインタとアドレスはちょっと違うモノ・・・らしいです。
ほとんどの場合(処理系依存?OS依存?)はポインタの表現方法として
アドレスを使ってるけど,C の定義としては,必ずしもそうである必要は
ない・・・らしいです。
ちょっと不確定情報っぽくてすまんです。。。
0444デフォルトの名無しさん NGNG
>>439

アドレスを格納しないだろう?
0445デフォルトの名無しさんNGNG
>>444

じゃあ何を格納するの?
0446443NGNG
あー,だめだこりゃ
443 は無視して下さい。。。
0447  NGNG
Cの話題はCのスレでやりなよ。
0448デフォルトの名無しさんNGNG
アドレスじゃないポインタもあるよ。
相対ポインタとか。
0449デフォルトの名無しさんNGNG
マジレスカッコワワルイ!!
0450デフォルトの名無しさんNGNG
>>448 はちょっと(頭が)おかしいと思う。
0451デフォルトの名無しさんNGNG
JAVAはコーヒー同好会ということですね。
0452シロートNGNG
質問です。

現在一ヶ月表示機能のカレンダーを作成してまして、一か月分の祝祭日
のデータから取得しBean側に持たせることは出来ましたが、この祝日を
赤で表示する為にどのように比較文を作成したら良いか悩んでます。
例えば、IF(条件)
の条件に「A日または、B日または、C日または、D日 ならば」 のように
条件をBean側に取得した日付分作成したいのです。
何か良い方法はありませんでしょうか?
月によって、祝日の数がバラバラの為条件文を指定した分ループさせたい
のです。
0453  NGNG
>>452
そのBeanとやらに祝日判定メソッドをつければ?
祝日は
int[] publicHolidays = new int[12];
とかで、各月の祝日の日付のビットを立たせておいて
祝日を判定したい場合は、andを取ってみるとか。
0454javaむぎ茶NGNG
>>452
言いたいことがよくわからんです。
if(祝祭日Bean.isHoliday(date)){
 set描画モード(祝祭日)
}
で
boolean 祝祭日Bean::isHistory(Calendar date){
 foreach 祝祭日データ (祝祭日リスト){
  if(祝祭日データ.isMatch(date)){
   return true;
  }
 }
 return false;
}

な感じ?
0455Kusakabe YouichiNGNG
In article >>452, 452 シロート <news2ch@toc
.dyndns.org> wrote:
> 現在一ヶ月表示機能のカレンダーを作成してまして、
> 一か月分の祝祭日のデータから取得しBean側に持たせることは出来ましたが、

「祭日」があったのは戦前まででしょ。

# わたしが作った万年カレンダーはちゃんと「大祭日」と「小祭日」も区別
# してた:)
0456デフォルトの名無しさんNGNG
> わたしが作った万年カレンダーはちゃんと「大祭日」と「小祭日」も区別
> してた:)

おお、素晴らしい!
ぜひその素晴らしい万年カレンダーを使ってみたいんですが、
入手方法を教えて頂けませんか??
0457仕様書無しさんNGNG
>>456
ネタニマジレスカコワルイ
0458シロートNGNG
454様 ありがとうございます
Bean側には、各月の祝祭日の日付(int型)のみを取得してます。
で、表示させる前の段階ですでにCalendarをFormatsし「MM月dd日 E曜日」
のString型からsubStringで抽出しEの比較を行い、土、日曜日を判定し色づけ
表示してます。その判定色づけ表示ソースをそのまま使いたいので、

IF(dd(もちろんint型に変換)=Beanに格納された値){色づけ表示する}

で簡単に出来ると思っていたら、祝日が毎月バラバラにあることに気が付き
ました。その為If文の条件をその都度自動的に設定できればと考えてます。

このような場合は、別の文を利用した方が良いでしょうか?
0459ひろみちゅNGNG
私の作成したカレンダーならば月の満ち欠けや日食、月食
また彗星との再接近日、グランドクロス、旧暦や過去の元号まで
カバーしております。
0460ゆうき☆NGNG
なんの、私の作成したカレンダーならば奥さんの安全日まで表示可能なのです!
0461456NGNG
>>457
やだナァ。あの日下部サンがネタで書くわけナイじゃないデスカ。
キット本当に作られたんデスヨ。
本人が否定シタのならトモカク、信じてアゲナイト。

ゼヒ見てみたいのでヨロシクお願いシマス>日下部さん
0462デフォルトの名無しさんNGNG
とりあえず、ハッピーマンデーと、春分、秋分は毎年変動するから
注意せねば。
0463シロートNGNG
私も是非お教え願いたいです。
0464仕様書無しさんNGNG
>>461
なにか,このスレに恨みでも?
0465デフォルトの名無しさん NGNG
あっ,違った・・・・
>>464 は、この名前が正しい。
0466Kusakabe YouichiNGNG
In article >>461, 461 456
wrote:
> やだナァ。あの日下部サンがネタで書くわけナイじゃないデスカ。
> キット本当に作られたんデスヨ。
> 本人が否定シタのならトモカク、信じてアゲナイト。
>
> ゼヒ見てみたいのでヨロシクお願いシマス>日下部さん

あのー「作った」っていうとフリーソフトしか思い浮かばないものなんでしょうか
?
0467シロートNGNG
IF文では出来ないでしょうか?
結局Bean内でもIF文を作成して条件文を作らせた方が
簡単に出来そうでしょうか?
0468デフォルトの名無しさんNGNG
>>461
ホーレミロ、ネタダッタロ
0469デフォルトの名無しさんNGNG
>>466
なんでフリーソフトに限定するんです?
ダウンロードURLを教えてくれと言ったのではありませんよ?

「入手方法」を教えてくださいと言ったんです。
例えば売り物だったら、
どこそこの店へ行って買えとか答えられるはずでは?
0470デフォルトの名無しさんNGNG
>>467
いいじゃん、ifだろうがswitchだろうが。
祝日の数だけ書きまくれ!
0471Kusakabe YouichiNGNG
In article >>469, 469 デフォルトの名無しさ
ん wrote:

> >>466
> なんでフリーソフトに限定するんです?
> ダウンロードURLを教えてくれと言ったのではありませんよ?

へ? フリーソフトって「ダウンロードURL」があるものを言うのですか?
守秘義務のないようなもの(勝手に見せられる)を言うかと思ってました。
0472デフォルトの名無しさんNGNG
同期かんけいのしつもんです

wait() で寝てる複数の人のうち、特定の人を選択的に
覚醒させたいんだけどnotify()だと誰が目覚めるか
不確定ですよね?
やはり、notifyAll()で全員叩き起こして
各人で自分が起こされたのか確認させる方法が
もっとも無難で良いのでしょうか?
0473 NGNG
>>472
Javaハウスのトピックス見れ!

http://java-house.jp/ml/topics/
0474javaむぎ茶NGNG
いつも選択的にスレッド起こすのなら
スレッド毎に1つ wait 用Object用意するってのはどう?
0475472NGNG
>>473
http://java-house.jp/ml/archive/j-h-b/026321.html
このあたりのチョー長いスレッドが役立ちそうですね

まあ、>>472のが無難、ということで結論付けます。
0476472NGNG
>>474
あ、それナイスアイデアです。検討してみます。
0477デフォルトの名無しさんNGNG
> 守秘義務のないようなもの(勝手に見せられる)を言うかと思ってました。

守秘義務のないものはフリーソフトと呼ぶのですか?
守秘義務がなくともフリーソフトと呼ばないソフトは実在します。
認識が間違っているので、正してください。

それで、上の点についてはともかく、
貴方の作った素晴らしい万年カレンダーの入手方法(もし可能ならば)を
教えていただきたいのですが、お教え下さらないでしょうか?
0478デフォルトの名無しさんNGNG
>>477
(´-`).。oO( せっかく空気を換えようと頑張ってたのに無に還すなよ・・・ )
0479デフォルトの名無しさんNGNG
>>478
(´-`).。oO( あぅぅ。ごめんよぉ。つい。。。もうやめるよ・・・ごめん>みんな )
0480シロートNGNG
>>458
データベースの条件を配列に納めて、その配列の様素数分、
IF文の条件式を作成するようにしてみる。
と言うのは出来るような気がするんですが。
問題は、その配列分For分で作成して文字列を連結すると、
「A || B || C || D ||」
のように最後にも不必要な「||」が付いてしまいます。
何か良い方法はありますか?
0481デフォルトの名無しさんNGNG
String str = "";
for(int i=0; i<length; i++){
if(i != 0) str += "||";
str += ...
}
0482デフォルトの名無しさんNGNG
>>480
>>453のやり方で駄目なの?
int[] publicHolidays = new int[12];
で、例えば2月11日を祝日にする時は
publicHolidays[1] |= 1 << 11;
な感じでフラグ立てといて
後で照合したい場合は
(publicHolidays[1] & (1 << 11)) != 0だったら2月11日は祝日とか。
0483デフォルトの名無しさん NGNG
>>480
> データベースの条件を配列に納めて

データベースがあるなら、そのままつかえ!
0484Kusakabe YouichiNGNG
In article >>477, 477 デフォルトの名無しさ
ん wrote:
> 守秘義務のないものはフリーソフトと呼ぶのですか?
> 守秘義務がなくともフリーソフトと呼ばないソフトは実在します。

逆と対偶の違いをしらないのですか? :)

> 貴方の作った素晴らしい万年カレンダーの入手方法

もしかして、フリーじゃないものは全部ぱっけージそふとみたいな
ものだと思い込んでいたりするのだろうか:)

買いたいなら買ってみてください:) > 納品先は国鉄(っていまはJR)か、ターゲッ
ト
マシンはH社の専用機です。
0485Kusakabe YouichiNGNG
In article >>480, 480 シロート <news2ch@toc
.dyndns.org> wrote:
> 問題は、その配列分For分で作成して文字列を連結すると、
> 「A || B || C || D ||」
> のように最後にも不必要な「||」が付いてしまいます。
> 何か良い方法はありますか?

もしif文で特別扱いするなら、後ろ1つよりも最初の1つのほうが
すっきりかけることが多いですね。
IF A
|| B
|| C
|| D
...
みたいに。(まあ、たいした差はないのですが)
0486シロートNGNG
>>483
私の隣の人もそれが正論と言ってました。
でも非常に参考になりました。ロジックの方法を
もっと勉強しなおします。
0487デフォルトの名無しさんNGNG
javaの逆コンパイラの(・∀・)イイ!の紹介して
0488デフォルトの名無しさんNGNG
jad
0489シロートNGNG
すいません。
データが 2000/1/19や、1999/11/25などの場合の日にちのみを
抽出するには、どのようにしたら良いでしょうか?
又は、このような数値をDATE型に変換する事は可能ですか?
0490487NGNG
jadのオフィシャル?ページがデリられてるんですケド
どっか落とせるところ知りませんか?
0491javaむぎ茶NGNG
>>489
隣の人に聞いてみた?
0492本人のコピペNGNG
これから初心者になる、そういう段階のものです。jdk1.3.1_01aをダウンロードしてパスも通しました。O
sはちなみにXPホームエディションです。でも、Dos窓でJavacコードを認識してくれないんです。(涙
エディター+jdkで何とか事足りると思っていたのですが、基本的には正しくないんですか?ビルダーだとxpで動作するかどうかバクチみたいだし、エディター+jdkで何とか乗り切りたいんです。こんな私をどうか救ってください。(環境cpu athron xp1500 memory256)
何が間違ってるんでしょう?重ねてお願いする次第です。
0493デフォルトの名無しさんNGNG
>>490

ほれ、アップロードしといてやったぞ。

http://isweb31.infoseek.co.jp/computer/itoen/cgi-bin/source/r054.zip
0494493NGNG
うお、直リンはだめだ。
コピペで逝ってくれ。
ttp://isweb31.infoseek.co.jp/computer/itoen/cgi-bin/source/r054.zip
0495シロートNGNG
>>491
隣の人は、コボラーの為、DB系は理解してますが、Javaは初心者です。
0496デフォルトの名無しさんNGNG
>>492 PATH が間違っているに一票。
0497デフォルトの名無しさんNGNG
>>489
DATE型なんかあったっけ?
0498シロートNGNG
497
Date型です。
カレンダか、Dateとして認識してくれれば、
dateformatを使えると思ったんですが。
0499487&490NGNG
>>493
神様ありがとう(●´ー`●)
0500デフォルトの名無しさんNGNG
>>496
javac が動作しない ではなく Javacコードを認識してくれないんです。
0501492NGNG
そんなところなんでしょうかねぇ?再トライしてみます。御助言感謝いたします。
0502デフォルトの名無しさんNGNG
>>500
わりぃ
意味がわからないんで状況をもうちっと詳しく話しやがれ
0503デフォルトの名無しさんNGNG
>>500 Javac コードって何を指してるんだ?
0504 ◆RubyOmS2 NGNG
>>500
どういうエラーメッセージ出るかそのまま出してくれ。
取りあえず、
C:> java -version
としてみて、
java version "1.3.1_01"
みたいのが出るか確認しろ。
でなければ、PATHが正しく設定されいないって事だ。
0505496NGNG
>>500 では Javacコード=クラスファイルと想定して
CLASSPATH が間違っているに一票。
0506この気持ちをあらわす感謝の言葉がみつかりません。NGNG
;で解決いたしました。皆様の御助言、誠に有難うございました。やっと、世界にハローっていえます。
0507この気持ちをあらわす感謝の言葉がみつかりません。NGNG
セミコロンをもじって、蝉五郎と言う名で書いていこうと思います。またお目にかかれるようにスキルをあげていきたいと思います。
0508シロートNGNG
日付のくせに文字列で、2001-1-15 00:00:00 のような
記述から日にちのみを抜き出す方法を教えて下さい。
2001-1-1 00:00:00
2001-12-23 00:00:00
もしくは、アクセスサーバー上は 2001-01-01で表示されているので
Javaで、値を受けとる時に値を崩さない方法を教えて下さい。
  
0509デフォルトの名無しさんNGNG
>>508
java.text.SimpleDateFormatでパースして
java.util.Dateのインスタンスを生成せよ。
0510デフォルトの名無しさんNGNG
>>508
おいおい、君は1日に何回質問をしているのだね?
少しは自分で調べる努力をしたまえ。

「調べる事が出来る能力」ってのも重要なスキルだぞ。
0511デフォルトの名無しさんNGNG
遅いけど

デフラグを使うと、ハード ディスクのファイルや未使用領域を再配置し、
プログラムの実行速度を上げることができます。

  ∧_∧
 ( ´∀`)
 (    )
 ■■□■■□◇_◇□□□

  ∧_∧
 ( ´∀`)
 ( つ□)
 ■■_■■□◇_◇□□□

    ∧_∧
   ( ´∀`)
   ( つ□つ□
 ■■_■■_◇_◇□□□

                ∧_∧
               ( ´∀`) /
               ( つ  つ
 ■■_■■_◇_◇□□□□□ ─
                  /' ヽ\

            ギュッ   ∧_∧
                (´∀` ) ≡≡
■■■■◇◇□□□□□⊂   )
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

でも、時々ディスクエラーを引き起こします。

       ベキッ
   ◇  ◇        ∧∧ アッ
    \ ノ        (゚;  ) ≡≡
■■■■□□□□□⊂   \
 ̄ ̄ ̄ / ヽ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0512デフォルトの名無しさんNGNG
あれっ GC じゃなくてデフラグだっけか?
まぁ mark & sweep + compact の GC に見えなくもないか。
どうもありがと
0513デフォルトの名無しさんNGNG
java.util.Timerをunixのcronのように
使うことは可能ですか?
0514デフォルトの名無しさんNGNG
Java をずっと立ち上げて置くなら可能じゃないの?
Tomcat の定期処理で使ったけど。
0515シロート 改め シロート以下NGNG
皆様のおかげで完成しました。
原因は、
Access側の日付は正規表現でした。馬鹿な私がエクセルにコピーして出力した
時にエクセルの日付表現になってました。そのため、馬鹿な事をヒタスラ繰り
返しました。でも皆様のお陰で、色々な考え方を身に付きました。
暑く御礼申し上げます。
0516デフォルトの名無しさんNGNG
>>511
クラスタが下位から上位にリンクされたように見えるが、そんなことあるの
0517デフォルトの名無しさんNGNG
>>516 こまかいこときにすんなYO!
作った奴はそこまで考えてないって!
0518デフォルトの名無しさんNGNG
もっと細かいこというと、単に言葉の遣い方の問題だが、
下位から上位へのリンクは順方向
上位から下位へのリンクが逆方向
な気がする。
0519デフォルトの名無しさんNGNG
Javaで画面に点を描きたい場合はどういうメソッドを使えばよいのですか?
0520デフォルトの名無しさんNGNG
>>519
class Ten {

public static void main (String args[]) {
System.out.println( ".");
}
}
0521デフォルトの名無しさんNGNG
ボタンを押すとテーブルが増えていくプログラムを作っています。
テーブルを作成する時に後で各々を判別する必要があるので、各々に
独自の名前をつけたいのですが、どうしたら良いでしょうか?

static int i;
i++;
Table ("table"+i.toString) = new Table;

なんてことをやってみましたが、当然駄目でした。

また、各々に独自の名前がつけることが出来たとして、
そのテーブルの名前をテキストフィールドに入力して、テーブル内の要素を
処理したいのですが、テキストフィールドからテーブルの名前をString型で
受け取った後、どのように、その名前のテーブルを認識すればいいのでしょうか?
例えば"table1"という文字列を受け取ったします。そこからどのようにして
table1と名付けたテーブルを操作できる状態にすればよいのですか?
0522デフォルトの名無しさんNGNG
>>521 名前の文字列をキーにしてHashMapに突っ込め
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/util/HashMap.html
0523 ◆RubyOmS2 NGNG
>>521
配列かHashtableを使えばいいと思われ。
0524デフォルトの名無しさんNGNG
5
1 1
2 4
10 100
20 400
100 10000
このように最初にプロットする点の個数があり、その後に、点の x, y 座標が順番に並んでいる
ファイルを読み込んでグラフを表示するプログラムを作りたいのですが、どうすすればいいのでしょうか?
0525デフォルトの名無しさんNGNG
Date クラスって、例えば分だけ取得/設定って出来ないのだろうか?
getMinutesやsetMinutes等がやたらと推奨されないメソドとかいって
お叱りを受けますが
0526デフォルトの名無しさんNGNG
>>524
なんでこう、質問丸投げしてくるのかな。
まず自分で指向錯誤してみろよ。質問はその後だろ?

>>525
APIのドキュメント読めばちゃんと書いてあるだろうが、ボケが!
http://java.sun.com/j2se/1.3/ja/docs/ja/api/index.html
0527デフォルトの名無しさんNGNG
>>524 すげぇ、宿題やってくださいだな。10万円でどうよ。
0528デフォルトの名無しさんNGNG
構文解析のプログラムを作っています。

String型をStreamTokenizerでいじりたいのですが、どうしたらいいですか?
リーダーにString型ってぶち込めますか?
0529デフォルトの名無しさんNGNG
J2EEをインストールした時は
bash_profileをどう記述したらいいのでしょうか?

J2EE_HOME
JAVA_HOME
PATH
0530デフォルトの名無しさんNGNG
>>528 String#getBytes() → ByteArrayInputStream → StreamTokenizer
0531530NGNG
今のはこうか、

String → StringReader → StreamTokenizer

# StreamTokenizer なんて久しく使ったこと無かったから...
0532デフォルトの名無しさんNGNG
>>530
サンクス!早速試してみる!
0533デフォルトの名無しさんNGNG
サーブれっとで、
複数のリクエストが重なると、ブラウザに出力する内容が
まざって、一つのブラウザにまとまってでたりするんだけど、
一応、doGetに、synchronizedにしたら、ならなくなったけど、
でも、それじゃ、一個ずつしかリクエストこなせないからなぁ〜
誰か、情報もってたら、おせぇ〜て。
0534デフォルトの名無しさんNGNG
それはサーブレットコンテナが壊れてるんじゃないの?
何使ってる?
0535513NGNG
ある指定した時刻に、メールを送信するJavaプログラム
を起動させる仕組みを作りたいのですがどのようにすれば
よいのでしょうか?

その時刻の指定はサーブレットを通して行いたいと考えています。
0536デフォルトの名無しさんNGNG
>>533
スレッドセーフに作ってないんじゃ・・・?
0537デフォルトの名無しさんNGNG
>>533
「出力する内容」を保持してるオブジェクトを各スレッドで共有していて、
ちゃんと排他されてないってだけではなく?
0538デフォルトの名無しさんNGNG
>533
まさか応答メッセージの編集かなんかに、サーブレット自身の
クラス変数を使ってないかい?
536さんの言うようにスレッドセーフに作られ。
0539デフォルトの名無しさんNGNG
>>533
初心者が良くやる「変数宣言が面倒だからインスタンス変数にしちゃった」に一票。

public class ABCServlet extends HttpServlet{

  private HttpServletRequest request = null;
  private HttpServletResponse resopnse = null;

  protected void doGet(HttpServletRequest req, HttpServletResponse res){
    request = req;
    response = res;
    ...
    doSomething();
  }

  private void doSomething(){
    PrintWriter out = response.getWriter();
    ...
  }
}
0540デフォルトの名無しさんNGNG
いまSJPJ受験のために紫本(SUN教科書JAVA2)で勉強してる者です。
マ板でも質問したのですが、基本的な内容なのでこちらでも書かせて
いただきます。

紫本p199に
『
 変数をオーバーライドできるか

 単直入刀に答えるなら、確かに変数も
 オーバーライドできます。』

とあるけど、

『変数の場合は、隠蔽(Hiding)されます』

と書くべきじゃないでしょうか?

クラスの変数(インスタンス変数、static変数ふくめて)は
オーバーライドできるorできない、に関してベテランの方、
教えてください
0541デフォルトの名無しさんNGNG
>>540
誤:SJPJ受験
正:SJP受験
0542デフォルトの名無しさんNGNG
よーし、java++つくっちゃうぞー

http://mentai.2ch.net/test/read.cgi/sim/1006577777/
0543デフォルトの名無しさんNGNG
コンストラクタの中で
例外(Exceptionを継承している例外)を
吐く事ってやっていますか?
0544デフォルトの名無しさんNGNG
やっています
0545デフォルトの名無しさんNGNG
やらない場合、コンストラクタ内で
初期化しきれなかったらどーすんの?
0546デフォルトの名無しさんNGNG
>>543
それはもうアリアリでしょう
0547デフォルトの名無しさんNGNG
>>543
たとえば、java.io.FileReader のコンストラクタ
をAPIドキュメントで調べてみいや
0548デフォルトの名無しさんNGNG
>>535
メール送るプログラムと、サーブレットは別物だよね?
適当に値渡す手段考えたら、すぐじゃないの?
0549533NGNG
レスどうも、
スレッドセーフ、初めて聞いた単語だた。
検索したら、いぱい出てきたから、勉強すます。

>>539
そんな感じで作ってるけど、駄目なの?
それとも、いい例?
0550デフォルトの名無しさんNGNG
>>549 ダメな例。
同時にアクセスされたらどうなるか良く考えるべし>スレッドセーフ
0551エッチマンNGNG
手当たり次第にsynchronized!

っつーのも対処療法としてありですか?
0552デフォルトの名無しさんNGNG
>>551
性能悪くてもいいならいいんじゃない?
つーかそういうアホなコードは、肝心要の所でsynchronizedが抜けて
そうだけど。
0553デフォルトの名無しさんNGNG
>>551
名前から推すとネタ。
0554デフォルトの名無しさんNGNG
>>552
想像もつかない間抜けなメソッドコールのネストで、
いつのまにかデッドロックの方が可能性高い。
0555デフォルトの名無しさんNGNG
想像しなくても確実にデッドロック。
0556533NGNG
>>539
できたら、いい例を一つよろすく。
0557デフォルトの名無しさんNGNG
1)排他処理をしてない。
2)static変数のハンドラやバッファを使っている。
0558デフォルトの名無しさんNGNG
>>556
玄人っぽく、ThreadLocalを使用する。
0559デフォルトの名無しさんNGNG
>>558
スレッドプール使ってるサーブレットエンジンでは安易に使うと大変なことに...
0560535NGNG
>>548
実行時間はどうやって指定したらいいの?
0561543NGNG
コンタトラクタからのExceptionの件ですが
レスありがとうございます。

デザインパターンの本にこんな事が載っていたので・・
「コンストラクタから例外を投げることは
 優雅とは(正当すら)みなされない」

ちなみに私もやっています。
0562デフォルトの名無しさんNGNG
テキストファイルを読み込んで表示させるプログラムを組んだのですが
「Yomi.java:14: シンボルを解釈処理できません。」とエラーが出ます。
どう直せばよいのでしょうか?特に字は間違ってないと思うのですが。

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;

public class Yomi {
public static void main(String args[]){
try {
File fil = new File("foo.txt");
FileReader filFR = new FileReader(fil);
BufferedReader filBR = new BufferedReader(filFR);
String filS = new String(filBR.readLine());
}catch(Exception e){}
System.out.println(filS);//この行でエラーが出ます
}
}
0563デフォルトの名無しさんNGNG
>>562
変数の宣言とスコープについて、もうちっと勉強しなはれや。
0564エッチマンNGNG
>>562
filSがtry節の中だからじゃない?
0565562NGNG
あ、じゅんばんまちがってただけだった
0566562NGNG
>>564
ありがとう
0567javaむぎ茶NGNG
>>528
構文解析を一から作ってるの?
勉強のためじゃないのなら javacc はどう?
yacc みたいなやつで java のソース吐くよ
けっこう便利(^-^)
0568デフォルトの名無しさんNGNG
>>567 俺も使ってるよ
JavaCCスレ昔立ったけど一瞬で沈んだな。
ただ、Javaのくせにデフォルトで日本語対応してないのがちょっとアレだな。
カスタムリーダクラス1つ作っとけばいいだけの話なんだけど。
0569デフォルトの名無しさんNGNG
javadoc ってどうやって使うのか教えてもらいたいんですけど

下記の最小のソースを javadoc HelloWorld.java とやってもエラーが出て生成されませんよね?
ほかにどんなオプション、パラメータを使えばいいのか教えてくれませんか?

class HelloWorld {
public static void main(String args[]) {
System.out.println("Hello World!");
}
}

http://java.sun.com/j2se/1.3/ja/docs/ja/tooldocs/win32/javadoc.html はよみました。
0570エッチマンNGNG
>>569
コンパイルするつもりでjavacの代わりにjavadoc使うといいよ
0571569NGNG
>>570
>>569 のソースだと javac HelloWorld.java でコンパイルはできますよね?けど、
javadoc HelloWorld.java とすると

「ドキュメント化する public または protected クラスが見つかりません。」

とエラーになります。このソースじゃできないのかな?
0572569NGNG

class を public class にしたらできました。

古い本を見ていたからかな?すいませんでした。
0573533NGNG
public class ABCServlet extends HttpServlet{

//ここの
//  private HttpServletRequest request = null;
//  private HttpServletResponse resopnse = null;

  protected void doGet(HttpServletRequest req, HttpServletResponse res){
//    request = req;
//    response = res;
//ここにもってきたら出なくなったよ、
    HttpServletRequest request = req;
    HttpServletResponse response = res;
    ...
    doSomething();
  }

  private void doSomething(){
    PrintWriter out = response.getWriter();
    ...
  }
}

つまり、ABCServletはstaticで呼ばれるから、
request、resopnseが上書きされてたって事でOK?
0574デフォルトの名無しさんNGNG
過去スレ読まずに聞くのもなんだけど
これ一冊でjavaはOKって本はどれかね?

CでいうK&R、C++でいうARMみたいなやつ。

入門本はいらないからさ。
高くても分厚くても洋書でもいいからさ。
おすすめ教えて。
0575デフォルトの名無しさんNGNG
最後の行でシンボルを解釈処理できません、と言うエラーが出ます。何が悪いのでしょうか?さっきからこれのせいでずっと悩んでいます。
try {
File fil = new File("T55470");
FileReader filFR = new FileReader(fil);
BufferedReader filBR = new BufferedReader(filFR);
StringTokenizer filST;


for(int i=0; i<132; i++){
String filS = new String(filBR.readLine());
if(i==0){
continue;
}
filS = new String(filBR.readLine());
filST = new StringTokenizer(filS);

float ii[];
ii = new float[10000];
ii[i+1000] = Float.parseFloat(filST.nextToken());
ii[i+2000] = Float.parseFloat(filST.nextToken());
ii[i+3000] = Float.parseFloat(filST.nextToken());
ii[i+4000] = Float.parseFloat(filST.nextToken());
ii[i+5000] = Float.parseFloat(filST.nextToken());
}
}catch(Exception e){}
System.out.println(ii[2001]);
0576574NGNG
javaしらんのだけど、
最後の行を二行上にもっていけないわけでもあるの?
0577575NGNG
あ、確かにこれなら上にもっていけば解決すると思います。
本当はこんな漢字でグラフを書きたいと思うのですが、これだったらどう直せばよいのでしょうか?
class MyCanvas extends Canvas{
public void Yomikomu(){
try {
File fil = new File("T55470");
FileReader filFR = new FileReader(fil);
BufferedReader filBR = new BufferedReader(filFR);
StringTokenizer filST;


for(int i=0; i<132; i++){
String filS = new String(filBR.readLine());
if(i==0){//一行目は描かない
continue;
}
filS = new String(filBR.readLine());
filST = new StringTokenizer(filS);

float ii[];
ii = new float[10000];
ii[i+1000] = Float.parseFloat(filST.nextToken());
ii[i+2000] = Float.parseFloat(filST.nextToken());
ii[i+3000] = Float.parseFloat(filST.nextToken());
ii[i+4000] = Float.parseFloat(filST.nextToken());
ii[i+5000] = Float.parseFloat(filST.nextToken());
}
}catch(Exception e){}
System.out.println(ii[2001]);
}
public void paint(Graphics g){
Color color;
color = Color.green;

g.setColor(color);
g.fillRect(ii[2001],ii[4001],ii[2001]+4,ii[4001]+4);//四角を作る
}
}
0578がばろん@MたんちゅきちゅきNGNG
>>575たん。
原因は変数iiの有効範囲だとおもう。

iiはforループのブロックで作られたローカル変数なので、
forループの外にでると、もう存在しないという扱いになるのね。

そんなわけだから、 float ii[];の行を
for(int i=0; i<132; i++){のブロックの外か、
try {のブロックの外にだしてみたら解決するとおもう。

たぶん、こんなかんじ?
float ii[];
ii = new float[10000];
for(int i=0; i<132; i++){
0579575NGNG
>>578
ありがとうございます。さっそくやってみます。
0580デフォルトの名無しさんNGNG
最後から4行目で「式の開始が不正です」とエラーが出ます。どうすればいいのでしょうか?

class MyCanvas extends Canvas{
public void Yomikomu(){

float ii[];
ii = new float[10000];


try {
File fil = new File("T55470");
FileReader filFR = new FileReader(fil);
BufferedReader filBR = new BufferedReader(filFR);
StringTokenizer filST;

for(int i=0; i<132; i++){
String filS = new String(filBR.readLine());
if(i==0){//一行目は描かない
continue;
}
filS = new String(filBR.readLine());
filST = new StringTokenizer(filS);

ii[i+1000] = Float.parseFloat(filST.nextToken());
ii[i+2000] = Float.parseFloat(filST.nextToken());
ii[i+3000] = Float.parseFloat(filST.nextToken());
ii[i+4000] = Float.parseFloat(filST.nextToken());
ii[i+5000] = Float.parseFloat(filST.nextToken());

}
}catch(Exception e){}
public void paint(Graphics g){
Color color;
color = Color.green;
g.setColor(color);
g.fillRect(ii[2001],ii[3001],4,4);//四角を作る
}
}
}
0581 NGNG
IE6.0で奇妙な減少に出くわしたので報告。
あるメソッドで

if (xxxx) a++;
if (xxxx) b++;
if (xxxx) c++;
if (xxxx) d++;
if (xxxx) e++;
if (xxxx) f++;

と書いてたら、IE6.0が例の「エラーを送信しますか?」のダイアログを出して
落ちてしまった。appletviwerでは問題無く動く。

あれ?と思って、if文をコメントアウトすると、エラーは起こらない。
で、面白かったのがif文を4つ以上つなげると落ちる事。

/*
if (xxxx) a++;
if (xxxx) b++;
if (xxxx) c++;
*/
if (xxxx) d++;
if (xxxx) e++;
if (xxxx) f++;

でも

if (xxxx) a++;
if (xxxx) b++;
if (xxxx) c++;
/*
if (xxxx) d++;
if (xxxx) e++;
if (xxxx) f++;
*/

でも、落ちない。

で、そのifぶんを別なメソッドに移動させたら6つつなげても問題無かったです。
(最初にif文を書いていたメソッドは15行くらいでした)
0582 NGNG
×IE6.0で奇妙な減少に
〇IE6.0で奇妙な現象に

ちなみに、リソースを多く消費するような処理では無かったです。
0583580NGNG
あ、やっぱいいです。もう少し自分で何とかしてみます。
0584デフォルトの名無しさんNGNG
float型の変数をintにすることはできますか?
例えばfloat s = 42.1
だとしたらこれをintで42にできないものかと。
drawLineメソッドとかだとint型を使わなきゃいけないので。
0585584NGNG
もしくはfloatのままで絵やグラフを描ける方法を教えて下さい
0586デフォルトの名無しさんNGNG
キャストしたら?
int ss = (int)s;
0587 NGNG
>>581の再現コードです。
環境はSDK1.3.0 + Win98 + IE6.0.2600.0000です。

import java.applet.Applet;

public class ErrorApplet extends Applet {
  public void init() {
    new ErrorTest().test();
  }
}
-----------------------------
import java.util.Random;

public class ErrorTest {
  private static boolean[] BALLS = {true, true, false, false};
  private Random random = new Random();
 
  public void test() {
    int indexA = random.nextInt() * BALLS.length;
    indexA = Math.abs(indexA);
   
    int indexB = -1;
    while (true) {
      indexB = random.nextInt() % BALLS.length;
      indexB = Math.abs(indexB);
      if (indexA != indexB) break;
    }
   
    boolean[] selectedBalls = new boolean[]{false, false, false, false};
   
    selectedBalls[indexA] = true;
    selectedBalls[indexB] = true;
       
    if (selectedBalls[0] && selectedBalls[1]) return;
    if (selectedBalls[0] && selectedBalls[2]) return;
    if (selectedBalls[0] && selectedBalls[3]) return;
    if (selectedBalls[1] && selectedBalls[2]) return;
    if (selectedBalls[1] && selectedBalls[3]) return;
  }
}
0588 NGNG
>>587のtest()は、これ以上削れませんでした。
0589エッチマンNGNG
>>587
if並べて落ちちゃうなら、ひとつにまとめたら?
疑問の解消にはならないけど問題の解決にはなるんじゃない?
0590 NGNG
>>589
問題は解決してます。(if文を別なメソッドに移したら動いた)
ただ、不思議だったんです(^^;

test()でエラーがでた人は、test()なかをいじくって見てください。
if文の中身を替えたり、他の行を弄くってもエラーが出なくなります。

不思議。
0591 NGNG
>>587
訂正
× int indexA = random.nextInt() * BALLS.length;
〇 int indexA = random.nextInt() % BALLS.length;
0592 ◆RubyOmS2 NGNG
>>587
win2k+Nescape6.2+JRE1.3.1_01で試したけど、
エラーは起きなかったよ。
IE6のバグなんじゃない?
0593デフォルトの名無しさんNGNG
>>581
IE6.0のバグ(>>592) は、それはそれとして、…。

そんな if の濫用はバグの素でしょ。
switch とか、else if なんかを
上手にあしらってくださいな。
0594574NGNG
誰かいい本、教えて、、、くれ

げふっ、ゲフゲフん
0595エッチマンNGNG
>>594
独習Java (翔泳社)
Java言語プログラミングレッスン(下) (SOFTBANK)
こんなもんでいいんじゃない?
0596デフォルトの名無しさんNGNG
RuntimeException以外のExceptionのサブクラスは捕獲(catch)or宣言(throws)しなけれ
ばならないと書いてあったのですがどうしてRuntimeExceptionはその必要が無いのでしょうか.

後,浮動小数点/0=NaN,で整数/0->ArismaticExceptionというのもちょっと違和感があります.
0597574NGNG
>>595
ありがとーん
どちらも書店でよく見かけるね。(でも中は見たことない)

ではまじめに。

独習xxは、K&Rみたいなものでしょうか。
でもなんかどこかに抜けがありそうで嫌な感じですね。

Java言語xx(下)は、上下巻の片割れですね。
上下巻に分かれてているソフトウェア開発言語の本で、
リファレンスとして読むに足りる本は、今まで見たことがありません。
(ドラゴンブックI&IIは例外だったかな。でもあれの原著は一冊でしたよね。)

馬鹿にしてるつもりもないし、いちいちけちをつけようと思ってるわけではないです。
「これ一冊でいいだろ」というような、本はないでしょうか?

ざっと書店で眺めてみた限りでは、Sunの名前の入ったJavaの解説書っぽい本と、
O'ReillyっぽいシリーズのJAVAのクイックリファレンスが、目に付きましたが、
こちらの本はどうでしょうか?
0598デフォルトの名無しさんNGNG
>>597
一冊で済ますんなら、殴ったら人殺せそうなぶっとい本買えば良し。
つーか、本の話は本のスレに行った方がいいと思うがどうよ?
0599574NGNG
了解。殴ったら牛でも殺せそうな分厚い本を買います。

本のスレも読みましたが、Javaを第一言語に選ぶ人向け本っぽいものしか
あがっていず、さらに荒らしがいて悲惨な状態だったのでこちらに来た次第です。

>>598さんが手元にいつも置いているJava本は、どの本でしょうか?
0600デフォルトの名無しさんNGNG
>>594
JAVA といいながらアプレットしか書いていない本は避けようね。
0601574NGNG
>>600
ラジャッッ

O'ReillyっぽいJ2EEの本が、猫を殴り殺せそうなくらいの適度な厚さでしたが、
たくさんあるJavaのなかで、どういう位置づけにあるのかよくわからなかったので
買うのは控えました。
0602デフォルトの名無しさんNGNG
>>597
Java言語(下)
上ははっきりいっていらんですよ
0603574NGNG
結城浩の本でしょうか。

webで目次を見ましたが、上巻は付録以外は特に読まないでよい感じですね。
下巻を読んでリファレンス本で補完、というのが手っ取り早そうです。

候補にいれておきます。
0604 NGNG
>>592 やはりIE6.0固有のバグらしいですね。有難うございます。
>>593 まさしくその通りです。
>>594 ピアソン社の「Javaプログラミングマスターコース(上下)」はお勧めです。
0605574NGNG
>>604
買わなくても原著がWEBで読めるようですね。
ボーナス前の貧乏人にはありがたいことで..

ちょいとWEBで探してみます。
0606574NGNG
Bruce Eckelの本をとりあえず落としておきました。
暇なときに読んでおきます。
が、解説が丁寧すぎるようで、たぶん、眠くなります。

ところで、Javaって、いろんなバージョンが有りますけど
実用を考えたときに、どのあたりのバージョンの解説書を読めば
よいでしょう。

1.x.xは、もう、obsoleteとでも思ってヨイのでしょうか?
0607デフォルトの名無しさんNGNG
>>560
さてはネタだな。

単純にファイル使ったら?
Servletではこのファイルに書く。
メール送信側では、このファイルを定期的に見る。
0608584NGNG
>>586
ありがとう。できました。
0609デフォルトの名無しさんNGNG
これだと下から5行目でシンボル解釈処理できませんとエラーが出ます。原因はループの中の変数iiを外では使えないことだと思うのですが、
これを解決するためpaintメソッドをループ中に入れる場合、どうすればよいのでしょうか?
このまま移動させたら文public void paint〜の開始が不正とエラーが出ました。
class MyCanvas extends Canvas{
public void Yomikomu(){
float ii[];
ii = new float[10000];
try {
File fil = new File("T55470");
FileReader filFR = new FileReader(fil);
BufferedReader filBR = new BufferedReader(filFR);
StringTokenizer filST;


for(int i=0; i<132; i++){
String filS = new String(filBR.readLine());
if(i==0){//一行目は描かない
continue;
}
filS = new String(filBR.readLine());
filST = new StringTokenizer(filS);
float freq,z,ang,rz,iz;
freq = Float.parseFloat(filST.nextToken());
z = Float.parseFloat(filST.nextToken()); //整数部分は、忘れずに「文字列」から「数字」に
ang = Float.parseFloat(filST.nextToken()); //変換しておきましょう。
rz = Float.parseFloat(filST.nextToken());
iz = Float.parseFloat(filST.nextToken());
ii[i+1000] = freq;
ii[i+2000] = z;
ii[i+3000] = ang;
ii[i+4000] = rz;
ii[i+5000] = iz;
}
}catch(Exception e){}
}
public void paint(Graphics g){
Color color;
color = Color.green;
int iii = (int)ii[i+2000];
g.setColor(color);
g.fillRect(iii,4,8,8);
}
}
0610デフォルトの名無しさんNGNG


 (\     ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  \\/ (・∀・)<  芯でもいいよ?
   ( 。 /U U  \_____________
   U⌒U
0611デフォルトの名無しさんNGNG
五行目ってtry { ?
0612デフォルトの名無しさんNGNG
なんだか判らんが、とりあえずii[]をメソッドの外に出そう。
0613574NGNG
外に出すついでにもっと意味のある名前を付けよう
0614609NGNG
>>611
下から5行目なのでint iii = (int)ii[i+2000];です
>>612
わかりました。やってみます。
0615609NGNG
この通り外に出しましたがやっぱり同じところでエラーが出ます。
どうすればよいのでしょうか?
class MyCanvas extends Canvas{
float ii[];
public void Yomikomu(){
ii = new float[10000];
try {
File fil = new File("T55470");
FileReader filFR = new FileReader(fil);
BufferedReader filBR = new BufferedReader(filFR);
StringTokenizer filST;


for(int i=0; i<132; i++){
String filS = new String(filBR.readLine());
if(i==0){//一行目は描かない
continue;
}
filS = new String(filBR.readLine());
filST = new StringTokenizer(filS);
float freq,z,ang,rz,iz;
freq = Float.parseFloat(filST.nextToken());
z = Float.parseFloat(filST.nextToken());
ang = Float.parseFloat(filST.nextToken());
rz = Float.parseFloat(filST.nextToken());
iz = Float.parseFloat(filST.nextToken());
ii[i+1000] = freq;
ii[i+2000] = z;
ii[i+3000] = ang;
ii[i+4000] = rz;
ii[i+5000] = iz;
}
}catch(Exception e){}
}
public void paint(Graphics g){
Color color;
color = Color.green;
int iii = (int)ii[i+2000];
g.setColor(color);
g.fillRect(iii,4,8,8);//四角を作る
}
}
0616デフォルトの名無しさんNGNG
public void Yomikomu(){
float ii[];

↓

float ii[];
public void Yomikomu(){

だけでいいんだよ。
0617デフォルトの名無しさんNGNG
>>615
NullPointerExcepitonじゃないか?
paint()メソッドでiiのnullチェックしとけ。

Yomikomu()をあんたが呼ぶ前に、グラフィックを
コントロールしてるスレッドが、勝手にいろんな
タイミングでpaint()を呼ぶだろうから、nullかも
しれんぞ。
0618609NGNG
>>617
ありがとう。調べてみます。
0619609NGNG
paintをループの中に入れたのですがpublic void paint(Graphics g){の行で「式の開始が不正です」
とエラーが出ます。こういう場合、どういう風に描けばいいのでしょうか。うう、ずっと悩んでいるせいか頭が痛い。
class MyCanvas extends Canvas{
float ii[];
public void Yomikomu(){
ii = new float[10000];
try {
File fil = new File("T55470");
FileReader filFR = new FileReader(fil);
BufferedReader filBR = new BufferedReader(filFR);
StringTokenizer filST;

for(int i=0; i<132; i++){
String filS = new String(filBR.readLine());
if(i==0){//一行目は描かない
continue;
}
filS = new String(filBR.readLine());
filST = new StringTokenizer(filS);
float freq,z,ang,rz,iz;
freq = Float.parseFloat(filST.nextToken());
z = Float.parseFloat(filST.nextToken());
ang = Float.parseFloat(filST.nextToken());
rz = Float.parseFloat(filST.nextToken());
iz = Float.parseFloat(filST.nextToken());
ii[i+1000] = freq;
ii[i+2000] = z;
ii[i+3000] = ang;
ii[i+4000] = rz;
ii[i+5000] = iz;
public void paint(Graphics g){
Color color;
color = Color.green;
int iii = (int)ii[i+2000];
g.setColor(color);
g.fillRect(iii,4,8,8);//四角を作る
};
}
}catch(Exception e){}
}
}
0620デフォルトの名無しさんNGNG
>>619
ハァァ…あのさ、コンパイルエラーでしょ。
メソッドのネスト定義はできません。

万が一そこにpaint()メソッドを書けても、
グラフィックを コントロールしてるスレッドが
そのメソッドを呼べないので、何かと不都合です。
0621 NGNG
これは新手の荒らしですか?
0622デフォルトの名無しさんNGNG
http://www.watch.impress.co.jp/internet/www/wtoday/backno/2001/1205/index.htm
0623デフォルトの名無しさんNGNG
コンパイルはできるのですが、実行してもキャンバスが出るだけで絵を描いてくれません。
何がいけないのでしょうか。
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
import javax.swing.*;

public class Zu4{
public static void main(String args[]){
JFrame fr = new JFrame("Impedance Analyzer"); // ウインドウの生成(タイトル)
fr.setSize(500, 500); /* 大きさの設定 */
fr.setLocation(100, 100); /* 位置の設定 */
MyCanvas cv = new MyCanvas(); /* キャンバスの生成 */
fr.getContentPane().add("Center", cv);/* 登録/貼り付け */
fr.show(); /* ウインドウの表示 */
fr.setDefaultCloseOperation(fr.EXIT_ON_CLOSE);//クローズしたら終了
}
}
class MyCanvas extends Canvas{
public void paintGraph(Graphics g){
float ii[];
ii = new float[10000];
try {
File fil = new File("T55470");
FileReader filFR = new FileReader(fil);
BufferedReader filBR = new BufferedReader(filFR);
StringTokenizer filST;


for(int i=0; i<132; i++){
String filS = new String(filBR.readLine());
if(i==0){//一行目は描かない
continue;
}
filS = new String(filBR.readLine());
filST = new StringTokenizer(filS);
float freq,z,ang,rz,iz;
freq = Float.parseFloat(filST.nextToken());
z = Float.parseFloat(filST.nextToken());
ang = Float.parseFloat(filST.nextToken());
rz = Float.parseFloat(filST.nextToken());
iz = Float.parseFloat(filST.nextToken());
ii[i+1000] = freq;
ii[i+2000] = z;
ii[i+3000] = ang;
ii[i+4000] = rz;
ii[i+5000] = iz;
Color color;
color = Color.green;
int iii = (int)ii[i+2000];
g.setColor(color);
g.fillRect(4,4,8,8);
}
}catch(Exception e){}
}
}
0624デフォルトの名無しさんNGNG
しねば?
0625623NGNG
あ、もうなんとかなりましたのでいいです。
0626デフォルトの名無しさんNGNG

下記のようなバグを防ぐ方法ってあるんでしょうか?(自分で注意しろは置いといて)

public class ByteTest {
public static void main(String args[]) {
byte b;
for( b= 1; b< 200; b++ ){
System.out.println( b );
}
}
}
0627デフォルトの名無しさんNGNG
数値を絶対値にするメソッドはありますか?
if a>0みたいにやるしかないですか?
0628デフォルトの名無しさんNGNG
>>627
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/lang/Math.html
0629627NGNG
>>628
ありがとう
0630574NGNG
意味もなくbyteを使うな。
0631デフォルトの名無しさんNGNG
>>630
意味もなくって、意味もなく int を使いまくるよりいいかと・・・
0632 NGNG
>>631
intよりも小さな基本データ型(char、byte、short)に対して何らかの
算術演算あるいはビット演算を行う場合、自動的にintになるのしってる?

試しに

byte a = 1;
byte b = a + 1;

ってやってみそ。
0633 NGNG
ようするにだ、素直にint使えと。

下らない事でサイズけちっても、他のプログラマ達のコンセンサス得られなければ
結局バグのもとになるゾと。
0634574NGNG
javaをよくしらないんだけど

>>632
その辺はCと同じなんだね。

例のpdfちらっと見ただけなんだけど、
符号なし整数の組み込み型ってないよね。

なんかそういうので困ったときって、
どうしてるのさ?
0635デフォルトの名無しさんNGNG
だれか困った人いるの?
0636574NGNG
javaをよく知らないんだけど

そうか、こまらないのか。
こりゃすまん。
0637デフォルトの名無しさんNGNG
>>632
ほう そりゃいいこと聞きました。ありがとう
0638デフォルトの名無しさんNGNG
>>634
> なんかそういうので困ったときって、

こまるの?
0639574NGNG
結構困ると思うんだけどね。

オレよりjavaに詳しい人たちが困らないって言うんだから、きっと、
オレの勘違いなんだよ。
0640デフォルトの名無しさんNGNG
>>637
ってかintとfloatを演算すればfloatになるし
floatとdoubleを演算させればdoubleになるじゃない。

1はintだから
aがbyteなら a + 1 はintだ。
0641デフォルトの名無しさんNGNG
>>639
俺困った事ないけど、具体的にどう言う時に困るんだろ?
0642574NGNG
javaの用途ではあんまりこまらんのかも。
らいぶらり(とは呼ばないんだっけ?)も豊富みたいだしね。
0643デフォルトの名無しさんNGNG
>>640
じゃ a=a+bは?
0644デフォルトの名無しさんNGNG
>>632
byte → int は暗黙的にやるだろうけど、int → byte はキャスト
しないとコンパイルエラーになるのでは?

byte a = (byte)1;
byte b = (byte)(a + 1);
0645デフォルトの名無しさんNGNG
フレームにスクロールバーを付けたいのですが、
それは可能でしょうか?
自分でも、本やAPI仕様などで調べてみましたが
初心者なのでよく分かりませんでした。
スクロールバーと言っても、テキストエリアに付いているような
画面を上下、左右に動かして表示するためのものです。

説明が下手ですみませんが、どなたか分かる方よろしくお願いします。
0646デフォルトの名無しさんNGNG
>>645
なんか本を買ったほうがいいと思う。JAVA基礎を一通りやっていればスクロールパネルに触れる
だろうからさ。いいサイトいっぱいあるけど、まずはそれからだよ。
0647デフォルトの名無しさんNGNG
>>645
> 自分でも、本やAPI仕様などで調べてみましたが

全部読めばいいと思う。
0648デフォルトの名無しさんNGNG
>>643

byte同士の足し算でも計算する時は両方ともintに拡大キャストされる。
で、そのままだbyteに代入するとコンパイルエラーになるからちゃんと動くようにするには

a = (byte)(a+b);

とかく。

ただしこれはCから受け継いだ性質。
そのへんのCコンパイラが普通warningで済ませてしまうところをerrorにして
厳密にチェックしてるだけ。

でもこの場合 a+=b; って書けるけどね。

(参考)
>一方のオペランドが型 double ならば,他方を double に変換する。
>そうでないときには,一方のオペランドが型 float ならば,他方を float に変換する。
>そうでないときには,一方のオペランドが型 long ならば,他方を long に変換する。
>そうでないときには,両オペランドを型 int に変換する。
ttp://www.y-adagio.com/public/standards/tr_javalang/5.doc.htm#170983
0649デフォルトの名無しさんNGNG
ちょっとまとめる.
Javaでは"式中"でchar,byte,shortを使用した場合,それぞれの値は"式の評価中"に自動的に整数に変換される.(整数拡張と言う)
これは"式の評価中のみ"でありコンパイラは変数の値を一時コピーして使用するので変数が物理的に大きくなる事は無い.
自動整数拡張の後コンパイラは最も大きなオペランドの型に合わせて他のオペランドを変換する.(型拡張と言う)
これは"1つの演算"ごとに行われる.型の強さは以下の通り

double>float>long>int(doubleオペランドとfloatオペランドが存在する時はdoubleオペランドに合わせられる.

----------------------------------
byte b = (byte)(a + 1);
(a + 1)の評価はint型になるので型変換は必要.(なかったらコンパイルエラー)

byte a = 1;
これは型変換の必要は無いようだ.
byte b = a;
これも必要無いようだ.

値代入のみならば整数拡張は無いと思われる.
0650デフォルトの名無しさんNGNG
あら先に書かれてしまった. < a = a+1は型変換必要だがa++なら必要無し
さっき発見してどうしてか聞こうと思ったんだけど.
0651デフォルトの名無しさんNGNG
どっかで古い JDK 落とせません?1.1あたり
0652デフォルトの名無しさんNGNG
>>651
http://java.sun.com/products/jdk/1.1/
0653デフォルトの名無しさんNGNG
>>652
残ってるんだ ありがとうございます。助かります。
0654デフォルトの名無しさんNGNG
継承って一つずつしかできないのでしょうか?
class Ko extends Canvas,Frame{
みたいな感じで2つ継承したいのですが。
0655654NGNG
こういうのって多重継承って言うのでしょうか?
検索してみたらどうも駄目っぽいんですけれど。
0656©NGNG
>>654
Java には多重継承が無いけど、それが必要なときは inner クラスを使えば
きれいに設計できるよ。

> class Ko extends Canvas,Frame{

でも多分君がやりたいことは別だろうけど...
なぜ Canvas と Frame を同時に継承したいんだ?
0657574NGNG
それは、あれだよ、ほら
継承するとOOっぽいじゃん
0658デフォルトの名無しさんNGNG
こんちは、
java scriptなのですが、
入力フォームでエンターキーで関数にとばしたいのです。

<form name="myForm"onsubmit="refresh()">
<input type="text" size="2" name="ticker" >

ENTERキーによりonsubmit...でticker変数を扱うrefresh()関数へとばしたいのです。
ボタンは使いません。
上記のコードではうまく動作しないので、詳しいかた教えて。thanks
0659デフォルトの名無しさんNGNG
履歴書にjava使ってるって書くと、
こういう質問くるんだろうね。
鬱だ
0660658NGNG
いやjavaとscriptの違いくらい知ってる。>659
0661654NGNG
>>656こういう風にダイアログでファイル読み込みをするのと、絵を描くのを同時にしたいからなので。
何かいい方法ありますか?これだとFileDialogのほうが解釈処理されないのです。
class MyCanvas extends Canvas{
public void paint(Graphics g){
Color color;
color = Color.green;
float ii[];
ii = new float[10000];
try {
FileDialog fd = new FileDialog(this,"Select Text File.",FileDialog.LOAD);
fd.setVisible(true);
String fname = fd.getDirectory() + fd.getFile();
fr.close();
} catch(Exception e) {
System.out.println(e);
}
0662 ◆RubyOmS2 NGNG
>>658
Java != JavaScript;
です。
スレ違いかつ板違い。
Web制作板にいきましょう。
0663デフォルトの名無しさんNGNG
>>658
http://pc.2ch.net/test/read.cgi/hp/1005979370/
0664574NGNG
典型的なダメ継承だね

javaはよくしらんのでだれか突っ込んであげて
0665658NGNG
>662だからしってるって。
663 ありがとう、とにかく失敬
0666デフォルトの名無しさんNGNG
>>661
paint の中で FileDialog を呼ぶその設計は、
根本から間違ってる気がする。
0667©NGNG
>>661
その場合、this ではなく、this (Canvas) を管理している Frame を探す。普通は AWT
コンポーネントツリーのルートコンテナが Frame だから:

Container root = this.getParent();
while(root.getParent() != null){
  root = root.getParent();
}
FileDialog dlg = new FileDialog((Frame)root, ...);

っていうか、これをするために Frame を継承しようとするのは間違い。
0668デフォルトの名無しさんNGNG
javaよくしらんのだけど、

xxが間違っている
よりは
xxしろ
xx読め
の方が効果的だね。

設計がおかしいんで、とりあえず、
javaでやるならこうしろって例を挙げよーん
0669デフォルトの名無しさんNGNG
>>668
それは別のスレでやってくれ!

ここはネタ心者スレだ
0670デフォルトの名無しさんNGNG
javaはよくしらんがその通りだった。
0671654NGNG
>>667
ありがとうございます。おかげでなんとかなりそうです。
0672デフォルトの名無しさんNGNG
>>668
そーなんだけど、paint メソッドの間違った理解を正すのは、めちゃめちゃ長い説明が要りそうで鬱。

>>661
とりあえず、paint では描くだけにして、ほかの処理(FileDialogとか)は別の所に移しなさい。
0673574NGNG
javaをよくしらないんだけどさ

J2EEをあの後調べようと思ったわけよ。

でもさ
http://java.sun.com/j2ee/j2sdkee/ja/
とかみるとなんかメニューが化けてんのよ。

sunのサイトをIEで見に行こうってのが間違ってるんだろうけどさ、
「表示」「エンコード」「日本語(自動選択)」にするとさ
メニューが出る替わりに本文が化けるわけよ。

なんかこう、Sunは日本人に本当にJ2EE使ってもらいたいのかって
思うんだよ。
JavaOne横浜でやってもさ
興味を持って、さー、おじさんJavaやるぞー
とかいうひとをさ、舐めてるような気がするんだよね。

で、まだJ2EEがなんなのかよくわかんないんだけどさ
この憤りをなんとかしてくれよ
0674デフォルトの名無しさんNGNG
質問です。
クラスAをクラスBに継承させ、さらに
クラスBをクラスAに継承させてJAVAの六道輪廻から解脱したいのですが
どうやれば良いのですか?
0675デフォルトの名無しさんNGNG
>>667,671
ぜってー意味分かってないと思うんだけどどうよ。何とかなりそうです、だぜ。
0676べんきょうちゅうNGNG
ごめんなさい。教えてください。
イベントマスクってなんですか???

わかんないよーシクシク
0677デフォルトの名無しさんNGNG
javaしらないんだけどさ、

>>676
それってこのスレで聞くことなの?
0678べんきょうちゅうNGNG
>677
わかんない。
書き込んでからよくみたらネタと書いてあった・・・違うのかぁ。
がんばって調べます(涙)
0679煽りじゃねえYONGNG
>>654
あんたは継承禁止。全部委譲でやれ。
やり方ワカランなら「委譲、Composition、delgete」
などで検索しろ。
0680デフォルトの名無しさんNGNG
>>673
java 知らないっていうか、コンピュータ知らないんじゃない?

フレーム右は EUC になってて、左は JIS なのね。
で、フレームごとに漢字コード決められないからどちらかが化ける。
0681デフォルトの名無しさんNGNG
>>680
だから、何でそんなことになってんだYO!
っていう話じゃない?
0682デフォルトの名無しさんNGNG
いや、おれがしらないのはjavaのほうなんだが

>>680
つまり、SunはJ2EEのページをだね、
日本人に読ます気があるのかどうか問いたいわけよ。

たぶん、君たちがMSのサイトかなんかを開いててね、
どっちか片方だ化けてたりしたら、やっぱり、
同じように憤りを感じると思うのよ。

まあ、文字化けのことはここで聞いてもしょうがないんだけどね、
いやもう、J2EEってなんなのよ。
0683デフォルトの名無しさんNGNG
>>681
>>682

なぜ、 sun に言わないの?言って直してもらえば終わりじゃん。
0684デフォルトの名無しさんNGNG
いやほんとにおれjavaもSunもよくしらないんだけど

>>683
Sunにメール出すのはいいんだけどさ、
メールを出して返事を待ってる間に、
J2EEなんてどうでもいいやって気持ちになると思うんだよね。

オレ飽きっぽいのよ。

で、飽きっぽいオレ様がせっかくJavaの総本山にいったのにね
文字化けですよ。

もうなんか、モチベーションの維持は無理ですよ。
0685デフォルトの名無しさんNGNG
もうJavaはどうでもよくなってきたんだけどさ

一応Sunにメールだしとくよ。
文字化けですよって。
ついでJ2EEについても聞こうかと思うけど、
メールを受け取った担当者が困っちゃうと思うから
やめとくよ。
0686654NGNG
何とか動くようにはなったのですが、カレントディレクトリのファイルを読み込むのには問題ないのですが
それ以外のディレクトリのファイルを読み込もうとするとまたダイアログが開いてグラフが表示できません。
どうすればよいのでしょうか?
class MyCanvas extends Canvas {
public void paint(Graphics g){
Color color;
color = Color.green;
try {
Container root = this.getParent();
while(root.getParent() != null){
root = root.getParent();
}
FileDialog fd = new FileDialog((Frame)root,"Select Text File.",FileDialog.LOAD);
fd.setVisible(true);
String fname = fd.getDirectory() + fd.getFile();
System.out.println(fname);
File fil = new File(fname);
FileReader filFR = new FileReader(fil);
BufferedReader filBR = new BufferedReader(filFR);
StringTokenizer filST;
0687デフォルトの名無しさんNGNG
Vectorクラスを継承して、ガンガン詰め込んだものを
ランダムな順番で取り出していける、そんな
麻雀牌を洗牌するような感覚のクラスを
作ってみようと思うんだけど、どう?

あったらいいなと皆が考えるメソッド募集!
0688デフォルトの名無しさんNGNG
>>686
とりあえず、paint では描くだけにして、ほかの処理(FileDialogとか)は別の所に移しなさい。
0689デフォルトの名無しさんNGNG
>>687
void insert(Object o);
Iterator iterator();
とりあえずこれだけあれば充分かと
0690689NGNG
あ、Vector継承するのか。それじゃあ
void randomShuffle();
ってメソッドがあればいいんじゃないかな。
0691デフォルトの名無しさんNGNG
>>690
冷静に考えたらそれだけで十分だね・・・

どのくらい念入りにシャッフルするか、とかの概念を
導入したらおもしろいかな?
0692デフォルトの名無しさんNGNG
>>687
Excelファイルを自由に操作できるAPIくれ。
隅から隅まで弄れるやつ。
それがあれば、帳票出力で苦労せんですむんだが。
0693いい加減にしろYO!NGNG
>>654
だから、paintメソッドは、画面が再描画されるたびに
必ず呼ばれるから、そんなところでダイアログのインスタンス
作るメソッド置いたら、Window動かしたりリサイズしたり、
前後が入れ替わったり、最小化解除したり、そんいった
イベントが起きるたびに新しいダイアログができるぞ。
そんなあほな事がしたいのかYO!お前はYO!あほ!
0694デフォルトの名無しさんNGNG
javaまだよくわからないんだ

たぶんオレ654とおなじくらいあほなんだけどね、
J2EEでWEB+データベース連携をやろうって時にね、
どういうのになるのかな。

JDBCを使えば外のデータベースエンジンを使えるらしいけど
それを使わずに、ナニカ作れるの?ってこと何だけどどう?

むかつくSunの解説ページからはXMLでなんたらかんたらってとこに
リンクが貼ってあったんでね、標準でXMLベースのデータストレージ
は付く得るんじゃないかと思うんだけどね。
RDB用途を、J2EEでやるときって、標準とか、で・ファクトスタンダードて
あるの?
0695デフォルトの名無しさんNGNG
>>684-685
文字化け程度でモチベーション下がるなら VB から出ないほうが良いのではと思う。マジデ。
0696デフォルトの名無しさんNGNG
>>695
禿同
Javaには 今後もっとモチベーション下がることが次々とある
マゾッ気があるとか言語オタクとか以外は
無理して苦労することないよ
0697デフォルトの名無しさんNGNG
javaわからないんだよ。もう、ほんと。

>>695-696
オレもそう思うんだけどさ。
Javaでやった方が楽になる仕事ってのもあるわけでしょ。

その辺の見極めくらいはしておきたいし、
なんか仕事立ち上げるなら、さくっとプロトタイプくらいは
作れるようにしときたいのよ。

で、Javaの本でも一冊買ってやろうかとか思ったんだけどね
体系的なこと書いてある本がみあたらないし、
言語仕様を明確にずばっと書いた本もないし、
古い版の入門書ばかりでげんなりしてたところなのよ。

J2EEの本がね、なんかまともそうだったんだけど、
つまりそれが、最初に読むべき本なのかどうか、困ってるの。
なんとなくあちこち見てるうちに、結局、コレでいいって
見当が付いたんだけどね。

たださあ、J2EEで結局なにができるのか、わからんのよ。
期待してたのと違うなら、本を買うのもばからしいのよ。
一体、なんなのあれ。
0698デフォルトの名無しさんNGNG
>>697
J2EEは、J2SEをつかって、プログラマが手抜きをして
(その業務ごとに本当にしなければいけないロジック
の作りこみ以外は、殆どなにもしなくていいようにして
ある)Webシステムが構築できるように周りを作りこん
でおいたもの、という説明でいいでしょうか。
0699デフォルトの名無しさんNGNG
>>698
javaまだよくわからんけど、ありがとう。

ちなみに、>>694で聞いてる点についてはいかがでしょうか?
0700デフォルトの名無しさんNGNG
>>699
ないです。

が、RelaxとかJAXBとかいうやつでXMLテキスト←→Java
オブジェクトインスタンス/クラスのマッピングを自動的に
やることができるようになりそうなので、それを使って自力
で、という手もあるかと。
0701デフォルトの名無しさんNGNG
>>697
>体系的なこと書いてある本がみあたらないし、
>言語仕様を明確にずばっと書いた本もないし、
これはJavaに限りませんね :)
0702デフォルトの名無しさんNGNG
このスレではじめて欲しい答えが返ってきました。
北斗の拳の第二話で水をもらって感謝する老人のような気持ちでいっぱいです。
ありがとう。

たしかにRelaxというキーワードが出てきていました。

ただー、想像するに、従来用途のDBから置き換えて使うには
非常に不便で非効率なやり方ですね。
RDBを操作するならJDBCを使う、という認識でよいですね?
0703デフォルトの名無しさんNGNG
>>702
そのとおりです。というか、Javaに限らず更新・条件検索
参照とかを整然とミスなく自動的にやってくれる安価?な
ストレージシステムなんていうので、RDBMS以上のものは
未だにないでしょ、どこいったって。

だから、インピーダンスミスマッチを我慢しながら、みんな
一生懸命RDBMS使ってるわけさね。
0704デフォルトの名無しさんNGNG
なんかうざい雑魚がでてきたので去ります。

死ぬ思いで村のために運んできた種はむだになっちゃうけど、
最後にJavaがチョビット分かった気がします。
ではじじいは死にます。さようなら。
0705デフォルトの名無しさんNGNG
>>698の説明は、J2SE1.2までの話ね。
J2SE1.3は統合システム構築っぽいこと
が劇的にいろいろできるようになるYO。
0706デフォルトの名無しさんNGNG
>>687
Vectorを継承して作るのは止めた方がよくない?
なんか、麻雀パイ以外の点棒とか、ライターとかまで突っ込めちゃうよね。
数の制限もかからないし。

なんでjava.util.StackはVectorを継承して作ってるんだろ…。
0707デフォルトの名無しさんNGNG
>>706
じゃあ、どんなObjectでも突っ込める、ってんじゃなくて
突っ込める種類を生成時に限定できるようにしようか。

麻雀だけじゃなくトランプや花札といったカード系ゲームの
シャッフル&引き に使えるものにしたい。
0708デフォルトの名無しさんNGNG
>>707
Genericプログラミングはまだできないと思うが。JDK1.5〜。

なんかのInterface専用ということでWrapするくらいしかでき
ないと思うぞ。

interface Element{}

public class ElementList{
 private List list = new ArrayList();
 public Element get(index i){return (Element)list.get();}
 public void add(Element ele){lis.add(ele);}
}

こんな感じかな?
0709デフォルトの名無しさんNGNG
>>707
カード系ゲームのシャッフル&ディールかぁ…。

牌とかカードの配列を渡すと、その中身をシャッフルして返してくれる
様なディーラークラスを作るとか。

Dealer d = new Dealer(new Card[52]);
d.シャッフル();
Card c = d.配る();

とか。
…なんか変か。
0710デフォルトの名無しさんNGNG
>>709
動物クラスから犬クラスを派生させるみたいな、
陳腐な現実模倣主義を信じるな。
単純に、データとそれを扱う関数で考えよ。
0711 NGNG
話しが少しそれるが、
Java覚えたての人って、無理してまで継承を使おうとする傾向があると思う。
君らの周りにもそういう人いるでしょ?
0712デフォルトの名無しさんNGNG
昔から、その手のたぐいはいる。
無意味にトリッキーなコード書いて、
優越感に浸ってるやつとか。
0713707NGNG
カード系の場合、乱数で一定範囲内から取り出す
ようなアルゴリズムだとカードの出現確率が現実の確率
と異なる場合が多いのでどうしようかと考えたときに
思いついたのがディーラーclassなわけで。

例えば、ランダムにカードを取り出すのも、取り出せば
もうそのカードは次回から当然選ばれないわけで、
でもそういうの重複チェックなんかもいちいち書くのは
面倒なわけで。
0714デフォルトの名無しさんNGNG
>>710
現実模倣でいいじゃん。お客さんから設計者、開発者、PM、運用者等、みんなで設計のモデルを
共有できるから、かなりメリットあるよ。逆に○○ハンドラーとか××プロシジャみたいなクラスが
中心の設計を見ると萎えるね。まず、お客さんが聞いてくれないので後でたいてい要件定義漏れが
出る、障害の説明しても上がよく分からんから「で、いつ直るんだ」の一言になる、など等。
設計の鉄則が KISS だというのも昔から変わらんよ。

>>711
言い古されているけど:

 「A は B である」が成り立つなら「継承 (class A extends B)」。
 「A は B を持つ」が成り立つなら「Composite」。
 「A は B の一部を構成する」が成り立つなら「A を B の inner クラス」。 ← 我流:チョット語弊がある

かな。俺は要件とオブジェクトの定義をむちゃくちゃ大事にした設計をするが、やっぱりこれやらんと
数百人規模の開発はムリだ。○○ハンドラーとか使うと、たいてい各社がそれぞれ俺様システムを
作り始める (藁
0715デフォルトの名無しさんNGNG
>>714
学生発見
0716デフォルトの名無しさんNGNG
>>715 コボラーですか?
0717707NGNG
構想としては大体こんな感じを考えてます。

コンストラクタ
Dealer(Object[] card) cardで表されたカード列を持ったディーラーを生成

追加メソッド
Object deal() 一枚カードを引く。
void shuffle() シャッフルする。残り枚数をクリア。
void sort() ソートする。(生成時のならびにもどす) 残り枚数をクリア。
int talon() 残り枚数を返す。

という感じで、シャッフルまたはソートしたらもう一度一枚目から
引けるようにする・・・と。
これならわりとなんにでも使えるんじゃないかな・・・と。
0718デフォルトの名無しさんNGNG
>>716
なんか低レベルな争いだな。
ジャバラーの多くは、元ブビ厨とコボラーだろ。
仲良くやれよ。
0719714NGNG
>>171
ちょうど良いと思う (凝ったらきりがないんで)。どうせならスレッドセーフにして強固な
ブラックボックス作ってよ。
0720デフォルトの名無しさんNGNG
トランプクラスや麻雀クラスに、
委譲でシャッフルクラスを実装するなら、
ジェネリックプログラミングが必要なんだよ。
0721707NGNG
>>719
で、ついでに質問なんですが、
カードのソート時、汎用的にするためにはどうしたらいいと思いますか?

自分の考えとしては、cardのクラス(麻雀牌かトランプかはしらない)
のhashCode()をオーバーロードしてソート用の値を返してもらうよう
にして、それをもとにソートするようにしたらいいかなぁ と思うんです。
0722707NGNG
>>720
>>717の考えではだめですか?
ジェネリックプログラミングに一応なってると思うんですけど・・・

シャッフルの実装はどうするかまだ考えてませんが
このあたりは昔アルゴリズム辞典でランダムな順列を
得る手法を見たことがあるのでそれをパクろうと思ってます。
0723707NGNG
>>721 補足
まあトランプや麻雀でソートなんてまず使わないだろうから
あんまり気にすることもないとは思いますが。

>>722 補足
今手元にある本を見たらN枚のカードを O(2N) でシャッフル可能
な便利なアルゴリズムがありました。なんかサクッと出来そうかな?
0724デフォルトの名無しさんNGNG
ジェネリックだと面倒だろ。
カードにしか使わないなら、
素直にカードクラスにシャッフルメソッド実装しろ。
麻雀にも使うことが、今わかってないなら、
汎用性を気にしすぎるな。
0725707NGNG
>>724
カードクラスにシャッフルメソッドを実装する、ということは
この場合どういうことでしょうか?

トランプなら、カードクラスにはメンバ変数にスートとシーケンスのみ
麻雀なら、牌クラスには牌種(と数字)のみを保持する
という感じのただのデータクラスをイメージしてました。
(そしてそれをディーラーからひとつずつもらう)

当然、これだとシャッフルメソッドを実装しようもないです。
0726デフォルトの名無しさんNGNG
カードを捨てるメソッドは、どこにあるんだ。
0727デフォルトの名無しさんNGNG
おい、714。
俺はそろそろ逝くから、続きはおまえ流に説明してやれ。
0728707NGNG
>>726
ありません。
単純に、カードをランダムに配るだけのイメージです。
手札や場の管理はしません。

クイズゲームかなんかで重複無く問題を出すような
そういう場面にも使えると思います。
0729707NGNG
>>726
もしかして、牌やカードに
「今誰それの手札にある」とか「場に捨てられてる」とかの
そういった状態を持たせよ、と言っているのですか?
だとしたら、それは設計悪いですよね・・・
0730デフォルトの名無しさんNGNG
714 は逃げたのか?
カードオブジェクトは、ディーラーやプレーヤー毎に持つ。
シャッフル等のカード操作は、カードオブジェクトが行う。
0731デフォルトの名無しさんNGNG
>>684
>>685
来んな!
0732デフォルトの名無しさんNGNG
背牌ていどのことでなぜこれだけ議論しなきゃいかんのよ

Java厨はこんなもんなのか?
0733デフォルトの名無しさんNGNG
>732
730が正しい。他の2人?がアホなだけ。
0734デフォルトの名無しさんNGNG
「static でない 変数 this を static コンテキストから参照することはできません」とエラーが出ます。
調べてみたらFileDialogのカッコの中にはFrame parentを書くらしいですが、それが何なのかよくわかりません。
カッコの中にはなにを書けばよいのでしょうか。
public class Zu2 extends Frame{
static FileDialog fd;
static String fname;
public static void main(String args[]){
JFrame fr = new JFrame(""); // ウインドウの生成(タイトル)
fr.setSize(500, 500); /* 大きさの設定 */
fr.setLocation(0,0); /* 位置の設定 */
MyCanvas cv = new MyCanvas(); /* キャンバスの生成 */
Container c = fr.getContentPane();
Button b1 = new Button("ファイルを開く");
c.setLayout(null);
c.add(b1);
c.add(cv);
b1.setBounds(380,400,100,50);
cv.setBounds(0,0,500,400);
fr.show(); /* ウインドウの表示 */
fr.setDefaultCloseOperation(fr.EXIT_ON_CLOSE);//クローズしたら終了
myListener1 m1 = new myListener1();
b1.addActionListener(m1);
try {
fd = new FileDialog(this,"Select Text File.",FileDialog.LOAD);
fd.setVisible(true);
fname = fd.getDirectory() + fd.getFile();
}catch(Exception e){}
}
}
0735735NGNG
parentはダイアログの所有者と書いてあるのですが、だったらthisでもいい気がするのですが。
例を見たらたいていthisを使っているし。
0736デフォルトの名無しさんNGNG
>>733
「シャッフル等のカード操作は、カードオブジェクトが行う。」
ってのが正しい?ほんと?
カードって一枚単位じゃないの?
一枚でシャッフル?
0737デフォルトの名無しさんNGNG
相変わらずJavaは難しくていまいち把握できないのですが、復帰します。

>>705
ありがとうございます。
1.2と1.3の違いはEJBが使えるようになって分散技術が手軽に使えるように
なった、ってことくらいしか読みとれませんでした。

統合システム構築というのが一体何を指しているのか、
J2SEというのはなんなのか、J2EEとは何が違うのか、
また疑問が増えてしまいましたが、とりあえず、WEBを読んでみます。
0738デフォルトの名無しさんNGNG
>>734
この場合のthisってなんだか分かってる?
その辺を勉強し直した方がよさそう。
0739734NGNG
>>738
thisはZu2クラスだと思いますが
0740デフォルトの名無しさんNGNG
class ThreadList(int, Vector)

for (int i=0; i<3; i++) {
 Vector list1 = new Vector();
 for (int j=0; j<3; j++) {
  Vector list2 = new Vector();
  //List2に詰め込む(省略
 }
  list1.addElement(new ThreadList(i, list2) );
}

Vector型を引数に持つThreadListをさらにVectorに突っ込みたい
んですけど、list2が参照で渡されてる(ですよね?)ので書き換えられて
うまくいきません。list2をThreadListに渡すときにnew出来ればいいのかな?
って思ったんですが・・・、わかんねーっす。
0741デフォルトの名無しさんNGNG
Javaがよく分からないものです。

昨晩送った文字化けむかつくメールの返事が来ました。

あんたはJ2SDKEE 1.2のページを見てるよ。
J2SDKEE 1.3のぺーじをみなさいよ、と言われました。

J2SDKEE というまたよく分からないキーワードの登場です。
馬鹿にしてるとしか思えないのですが、とりあえずWEBページを読んでみます。

ここまでくると略語に意味を見いだせません。
なんとなく、略語は読み飛ばしてバージョンっぽい番号だけ読んでいれば
いいんじゃないかという気もしてきました。

ちなみに、あんまりEEとかついてると、昔のE電を思い出します。
あっという間に廃れて呼ばれなくなってしまいましたね。

ではでは
0742デフォルトの名無しさんNGNG
>>739
で、ファイルダイアログの引数に渡す親ってのは、
そのダイアログが出てる間殺しておきたい親を指定すべき
なんだけど、この場合の親ってのは
JFrame fr = new JFrame("");
って作ったfrになるべきなのは分かる?

わかんなきゃ、何か本を買うべき。
0743デフォルトの名無しさんNGNG
>>739
クラスとインスタンスの意味がわかっていないに10カノッサ。
0744734NGNG
>>742
ああ、なるほど。サンクス。
0745デフォルトの名無しさんNGNG
javaが良く分からないというよりも・・・

センスないんじゃない?
0746 NGNG
>>734
君は毎回自分のコードをまるまるコピペしてくるけど、
せめて問題を再現するための最小のコードをUPしなよ。
ちゃんとインデントも付けてさ。
あとstaticにthisを参照って、自分が何やってるか理解してる?
よく考えな。

>>740
何が何やらさっぱり分からんコードだが。
0747java厨NGNG
今JDBC使ってWEBAP開発中なんですけど、
あるtable(RDBのね)のアクセサークラス(aa)を定義して
ResultSet rs = aa.getResultset();
なんてやった後、外でrs弄りたいんだけど…
実はgetResultset()の中で、テンポラリに
Statement stmt = conn.createStatement();なんて
やって、それから取得したrsなわけです…。
問題は、stmt.close()をそこから出るときに出来ないな〜
ってことなんですが・・・

意味わかりますよね?

やっぱ、rsをそのまま返すという設計が良くない?
別のObjectに内容をコピーして、それを返すべきなのかな?
(ちゃんとstmt.close()して…)
0748java厨NGNG
レスつかない・・・
上の例は分かりにくいですね
aa.getResultSet()じゃなんだから、
ResultSet rs = aa.selectHogeHage( hogeHageGroupID )

とかにしときます。
0749javaむぎ茶NGNG
>>747
Statement と ResultSet を Composit した Class 作って
返すのは?
Pair で使うもんだし
0750java厨NGNG
Statementはガベージコレクトされる時にcloseされるってリファレンスには
書いてあるけど、上記の例だといつそれが行われるのでしょう…
外でrs.close()した後?

実際メソッドを出たあとrsはいじれてるので、関数を出た後では
(rsを介して暗黙の参照はされてるから?)
それは行われていないようです…

わからない…誰か教えてください
0751java厨NGNG
>>749
成る程…
Compositとは目から鱗でした…。
やっぱ、まだ慣れてないや…

ありがとうございます>>749
0752デフォルトの名無しさんNGNG
>>750
ガベージコレクトはメモリヒープに余裕がある限り一生行われない
可能性もある。

xxx.close()とかxxx.dispose()とか
メモリと直接関係ない資源の後始末は
必ず明示的に行わないといけない。
finaliyブロックを活用すると幸せになれるかも。

finalize()に定義されている後始末は
安全装置のような物なので頼るべきではない。

#Win98,MeなどでGUI関係のdispose()を怠るとリソース不足で
#メモリヒープに余裕があるのに(メモリが足りません)
#といわれてシャレにならないぞ。
0753デフォルトの名無しさんNGNG
>>745
ジャアアンタアノサイトヲヨンダダケデゼンブワカルンダ(゚д゚)
0754デフォルトの名無しさんNGNG
ファイルをダイアログから読み込んだら再描画されるようにソースを書いたのですが、
画面を動かしたりしないと再描画されません。どうすればよいのでしょうか?
class MyCanvas extends Canvas{
public void paint(Graphics g){〜〜〜〜
}
class myListener1 implements ActionListener {
public void actionPerformed(ActionEvent ae) {
try {
Zu3.fd = new FileDialog(Zu3.fr,"Select Text File.",FileDialog.LOAD);
Zu3.fd.setVisible(true);
Zu3.fname = Zu3.fd.getDirectory() + Zu3.fd.getFile();
MyCanvas canvas = new MyCanvas();
canvas.repaint();
}catch(Exception e){}
}
}
0755754NGNG
あ、括弧が一つ足りなかったです。正しくはこうです
class MyCanvas extends Canvas{
public void paint(Graphics g){〜〜〜〜 }
}
class myListener1 implements ActionListener {
public void actionPerformed(ActionEvent ae) {
try {
Zu3.fd = new FileDialog(Zu3.fr,"Select Text File.",FileDialog.LOAD);
Zu3.fd.setVisible(true);
Zu3.fname = Zu3.fd.getDirectory() + Zu3.fd.getFile();
MyCanvas canvas = new MyCanvas();
canvas.repaint();
}catch(Exception e){}
}
}
0756デフォルトの名無しさんNGNG
>>754
下から4行目。
canvas.repaint();
ってやってんのは、あなたが再描画したいCanvasとは別だと
思うがどうか。
0757754NGNG
>>756
myListener1クラスを内部クラスにしてみたのですが、これでも駄目です。
Canvasはこれであっていると思うのですが。アドバイスをお願いします。
class MyCanvas extends Canvas{
public void paint(Graphics g){〜〜〜}
class myListener1 implements ActionListener {
public void actionPerformed(ActionEvent ae) {
try {
Zu3.fd = new FileDialog(Zu3.fr,"Select Text File.",FileDialog.LOAD);
Zu3.fd.setVisible(true);
Zu3.fname = Zu3.fd.getDirectory() + Zu3.fd.getFile();
repaint();
}catch(Exception e){}
}
}
}
0758740NGNG
>>740 ですが、分かりにくいですか・・・。
shainっていうクラスと
bushoっていうクラスがあって、部署ごとに社員をVectorでまとめて(内側のループ)
でいくつかある部署をVectorでまとめる。
bushoクラスは、部署名とVectorでまとめた社員を引数に持つって感じです。

bushoクラスのメンバーに社員のVectorでも作る方がいいのかな・・・。
オブジェクト指向難いです。
0759デフォルトの名無しさんNGNG
>>757
再描画されないんじゃなくて、ファイルダイアログが出せないだけだったりしない?
0760デフォルトの名無しさんNGNG
>>757
import java.awt.*;
import java.awt.event.*;

class MyCanvas extends Canvas{

public void paint(Graphics g) {
System.out.println("repaint");
}

public static void main(String[] args) {
Frame f = new Frame();
Button b = new Button("Click");
MyCanvas c = new MyCanvas();
f.add(c,BorderLayout.CENTER);
f.add(b,BorderLayout.NORTH);
b.addActionListener(new myListener1(f,c));
f.setSize(100,100);
f.show();
}

}

class myListener1 implements ActionListener
{
Frame f;
Canvas c;
FileDialog fd;

myListener1(Frame f,Canvas c) {
this.fd = new FileDialog(f,"Select Text File.",FileDialog.LOAD);
this.f = f;
this.c = c;
}

public void actionPerformed(ActionEvent ae) {
try {
fd.setVisible(true);
c.repaint();
} catch(Exception e) {}
}
}
なんか変なコードになっちゃったけど、ダイアログ出すだけ
ならこんなんでもいいんじゃないの?
0761754NGNG
>>759
いや、ダイアログは出せます。
ダイアログで選択したファイルを読み込んだ後、再描写されないんです。
一度画面を最小化したりすると、読み込んだファイルが再描写されます。
0762754NGNG
>>760
ダイアログで数値がいくつか書かれたテキストファイルを読み込んでグラフを描かせたいのです。
0763754NGNG
paintメソッドの中身はこんな感じです。
public void paint(Graphics g){

Zu1.color = Color.green;
try {
Container root = this.getParent();
while(root.getParent() != null){
root = root.getParent();
}
FileDialog fd;
fd = new FileDialog((Frame)root,"Select Text File.",FileDialog.LOAD);
fd.setVisible(true);
String fname = fd.getDirectory() + fd.getFile();
System.out.println(fname);
File fil = new File(fname);
FileReader filFR = new FileReader(fil);
BufferedReader filBR = new BufferedReader(filFR);
StringTokenizer filST;
for(int i=0; i<132; i++){
String filS = new String(filBR.readLine());
if(i==0){//一行目は描かない
continue;
}
filS = new String(filBR.readLine());
filST = new StringTokenizer(filS);
float freq,z,ang,rz,iz;
freq = Float.parseFloat(filST.nextToken());
z = Float.parseFloat(filST.nextToken());
ang = Float.parseFloat(filST.nextToken());
rz = Float.parseFloat(filST.nextToken());
iz = Float.parseFloat(filST.nextToken());
int rzi = (int)rz;
int izi = (int)iz;
g.setColor(Zu1.color);
g.fillRect(rzi-2,-izi*10-2,4,4);
}
}catch(Exception e){}
}
0764デフォルトの名無しさんNGNG
>>763
えっと、描画する中身はどうでもいいんだけど、多分repaintを呼ぶタイミングが
おかしいだけじゃない?
俺の書いたソース読んでくれた?
0765714NGNG
>>721
>>>719
> で、ついでに質問なんですが、
> カードのソート時、汎用的にするためにはどうしたらいいと思いますか?
あれ以上柔軟性を持たせるならカードクラスかインターフェースを導入したほうがいい。
といってもカードをインターフェースにする必要もないかも。
そもそも hashCode() は意味が違うし。

>>730
>714 は逃げたのか?
そんなにあせるなよ (藁

> カードオブジェクトは、ディーラーやプレーヤー毎に持つ。
これはいいんじゃないですか?

> シャッフル等のカード操作は、カードオブジェクトが行う。
あるカードが、場にある全カードの存在や状態を意識する設計になる。

ちゃんと設計するならもっと登場人物を洗い出してモデルをしっかりさせたほうが良い。
今、分かっているものを適当に上げてみると、こんなんか (まだ不十分だけど)。

場: このインスタンス上でゲームが行われる。だれの手にもないカードを持つ。
ディーラー: 場にあるカードのシャッフルと采配を行う (場にやらせても良い)。
カード: 1インスタンスが1枚のカードを表す。プロパティにマークと番号。
プレーヤー: カードを持つことが出来る。プロパティに名前とかチップとか?
ゲーム: ゲームのアルゴリズムを実装するインターフェース。
人?: ディーラーとプレーヤーのスーパークラス。カードを持つことが出来る。

場 has ディーラー×1, プレーヤー×N, カード×N, ゲーム×1
人 has カード×N

>>733
> 730が正しい。他の2人?がアホなだけ。
最後は自作自演かよ! (藁
0766 NGNG
ソートはComparableとComparatorっつうのがあるよ。
0767754NGNG
>>764
ありがとう。これを参考にやって見ます。
0768デフォルトの名無しさんNGNG

すいませんが下記の Bug.java がなぜコンパイルできないのか教えてもらえますか?
http://home.impress.co.jp/books/javaHB/0501/Atom_ant.txt
Bug クラスが 閉じてないので最後に } を付加する必要はあります。

もっとはっきり言えば、「static でない 変数 crazyAnt を static コンテキストから参照
することはできません。」となぜなって、どこを修正すればいいのかなんですけど。
0769768NGNG
>>768

public /* static */ void main(String args[])

としたら、、「static でない 変数 crazyAnt を static コンテキストから参照することはできません。」
はきえましたが、bug.i と crazyAnt.i あたりはおかしいみたい。
0770デフォルトの名無しさんNGNG
>>768
>bug.i と crazyAnt.i あたりはおかしいみたい。
Atom_ant に変数 i が宣言されていないから。

>public /* static */ void main(String args[])
そうした場合、どうやって実行するつもり?

コンパイルを通すことが目的ならそれでいいだろうけど。
0771768NGNG
>>770
> Atom_ant に変数 i が宣言されていないから。

宣言が必要なんですか int i; を入れてみました。

> そうした場合、どうやって実行するつもり?

だめですよね?

どうやったらまともに動くんでしょうか?
0772デフォルトの名無しさんNGNG
>>771
どのように動く事を期待しているのかは、あなたしか知りません。
推測は出来ますが、わざわざそれをする気にはなりません。
「何をしたいか」
「自分はどうやっってみたか」
「その結果どうなったか」
ぐらいは書きましょうよ。
0773デフォルトの名無しさんNGNG
>>768-771
もうむちゃくちゃ
0774770NGNG
>>773
俺もっ?!
0775デフォルトの名無しさんNGNG
>>772
> どのように動く事を期待しているのかは、あなたしか知りません。

プログラム作った人しか知らないと思うけど?
0776772NGNG
>>775
知らないと思うけど、なに?
0777デフォルトの名無しさんNGNG
>>776
772 はあたま悪いんじゃない?(w
0778デフォルトの名無しさんNGNG
>>776
その「けど」は、終助の「けど」だし・・・
0779デフォルトの名無しさんNGNG
注意: Java コンプレックスを持ったコボラーが迷い込んでいます。
0780768NGNG

なんか荒れてますね。すいません。

>>772
> 「何をしたいか」

プログラムを覚えるために、本に書いてあるソースを入力し実行して経験を積んでいます。
このプログラムでクラスの使い方を習得できるようですが、このソースがなぜコンパイル
できないのか、なにが行われるのかはよくわかりません。

ただ、「There are 10 bugs here but only 1atom ant.」と出力されることとなっています。

> 「自分はどうやっってみたか」
> 「その結果どうなったか」

入力してコンパイルしました。なぜ動作しないのかがわからないので、修正する技術もあ
りません。
0781デフォルトの名無しさんNGNG
とりあえずその本のタイトルか著者名を晒せ
0782768NGNG
>>781
David H.Friedel, Jr.、Anthony Potts 著
Javaプログラミングハンドブック

1998年の本です。
0783デフォルトの名無しさんNGNG
>>768 の Atom_ant.java って, Bug の部分はどうやって動作するんでしょう?
プログラムの一部に過ぎないような?
0784デフォルトの名無しさんNGNG
>>780
そのソースが「悪い例」でないのならもう一度うつし間違いがないかチェックしろ。
一字一句その本のソースと違いがないのならその本は捨てろ。
0785デフォルトの名無しさんNGNG
>>782
それは本に書かれたソースがまちがってるの?
それとも、あなたがアレンジしたソースがまちがってるの?

staticは理解してる?
もしstaticの意味を理解してないのなら、そこをまず理解してごらんなさい
あとcrazyAnt = new Atom_ant(); の部分は
Bugクラスのコンストラクタの中など、Bubクラスのメソッドのなかにいれなさい

あるいはオブジェクト変数crazyAntをstaticなオブジェクト変数にしてしまいなさい。
0786デフォルトの名無しさんNGNG
多分「このソースに10個のバグが入ってるから直してみな」という例題だと
思うのだが、正直君にはまだ早い。
0787デフォルトの名無しさんNGNG
>>784
これがうつし間違いレベルだというあなたは威張るべきじゃない。もっと勉強してから威張ったほうがいい。
0788デフォルトの名無しさんNGNG
javaのなかからほかのアプリを実行するにはどうするのですか?
0789デフォルトの名無しさんNGNG
>>788
Runtime rt = Runtime.getRuntime();
rt.exec("notepad");
0790768NGNG
>>786
そんな例題ではないです。

>>785
本に書かれたソースは、 >>768 に掲載されたリンク先のソースです。アレンジはしていません。
0791デフォルトの名無しさんNGNG
>>787「悪い例」だと予想していますがなにか?
0792デフォルトの名無しさんNGNG
ネタにマジレス
java.util.Collections#shuffle(List)
0793768NGNG
>>791
「悪い例」じゃないようです。
0794デフォルトの名無しさんNGNG
javaの開発環境でフリーソフトでいいやつは何ですか?
0795デフォルトの名無しさんNGNG
ハズレタ、鬱だ詩嚢
0796デフォルトの名無しさんNGNG
>>789
ありがとう
あんた神だ
0797768NGNG
私のレベルに合った本はないでしょうか?
0798707NGNG
>>792
あ・・・

というわけで、氏んできます。
0799デフォルトの名無しさんNGNG
教えろごぁあああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ
0800デフォルトの名無しさんNGNG
javaからdosコマンドで
cdとかdirとかを実行するには
どうしたらいいんですか?
0801デフォルトの名無しさんNGNG
>>768
あなたは、その本を買ったのか?
ちょっと、その本のコードを全部打ち込んでアップしてみてくれないか?

>>768のリンク先に、あなたが打ち込んだソースは、
あなた自身が768で書いているように断片的なものでしかないよね?
0802デフォルトの名無しさんNGNG
「XML/DOM」programming(秀和システム)
買ったんだけどこのサンプルプログラムまともに動いてない
これ何とかする方法おしえて
この中にね
swichのcase文の中に再起呼び出ししているのだけど
これがエラーだして次のcase文に続かない
ソースは長いんで(本の中にあるUDOM.java)
0803768NGNG

本に書いてあるソースは同じものです。実行結果も書いてありますので、コンパイルして実行
できるものと思っていましたが、やっぱ、これは断片なんですね?

> >>768のリンク先に、あなたが打ち込んだソース

リンク先は出版元のサイトであって、リンク先に私が打ち込んだソースはありません。
0804デフォルトの名無しさんNGNG
>>802
スレ違い
0805デフォルトの名無しさんNGNG
>>768 下のページをよく読もうよ。
http://home.impress.co.jp/books/javaHB/
>* 現在、リスト5.1、5.6については、作業中です。
と書いてあるように、そのサイトにUPされているソースは不完全だ。
いや不完全であることは一目でわかるが。

サイトにたよらず自分でソースを打ち込んでみたら?
それでも動かなかったら、その本は捨てて結城の入門本からはじめてみたら?
0806デフォルトの名無しさんNGNG
>>803
いや、断片的もなにも、あなたが>>768で書いたように、
そもそも最後の}が書いてないし(汗)
0807768NGNG
>>805
あっすいません 読み落としていました。

> サイトにたよらず自分でソースを打ち込んでみたら?

本にもこれしかないです。

というか、実行するためのソースではないと思って読み進めることにします。
0808768NGNG
>>806
断片でした。
0809デフォルトの名無しさんNGNG
java よくわからないんですけど

768のソースは、 Atom_ant.java というファイル名で問題ないのですか?
0810デフォルトの名無しさんNGNG
>>809
2つのクラスを単一のファイルにするならば問題あり。

ところで君が悩んでる事は、あまりにも初歩の初歩なので
こんな所で質問するより、Javaの入門書を買って読んだ方が
絶対にお勧め。
0811デフォルトの名無しさんNGNG
>>809
Bug.java じゃないのかな?
0812デフォルトの名無しさんNGNG
>>810
「こんな方法もある」って悩んだだけなので、問題ありだっていうならいいや。
0813デフォルトの名無しさんNGNG
>>810
> Javaの入門書を買って読んだ方が絶対にお勧め。

Java 入門書には、正しいことは書かれているけど、
間違いまで説明してあることは少ないと思いますよ。
0814768NGNG
>>810
>>797 でも書きましたけど、お勧めの入門書を教えてください。なお、演算子とか言葉の解説とか
そういう初歩的なことは少ないほうがいいです。
0815デフォルトの名無しさんNGNG
>>814
おいおい。そういうのは大事だぞ。
演算子の優先順位とかにも気を配った方がいいぞ。
0816768NGNG
>>815
それはどの本にも出ています。この本にも出ていますし、他の言語でも使ってます。
初歩的なことがゼロじゃなくてもいいですが、本の半分がそれじゃ困るので・・・
0817810NGNG
>>813
ファイル名のつけ方や、staticの意味や、あの程度の間違い例は書いてあるよ。
入門書さえちゃんと読んでれば、ああいう質問は出てこないはず。

>>814
俺はピアソンの「Javaプログラミングマスターコース上下」をお勧めする。
細かい事までネチネチとしつこく解説してるのが良いよ。電話帳みたいだけどね。
0818デフォルトの名無しさんNGNG
Socketつないだマシンの文字コード取得する方法はないでしょうか?
0819デフォルトの名無しさんNGNG
>>818 Socket 繋がっただけじゃムリ。
0820デフォルトの名無しさんNGNG
>>818
Socketを利用して自分で書きなよ。
0821デフォルトの名無しさんNGNG
>>817
「間違ってる」と自分でわかる人なら別だが、初心者なら >>809 のような質問はでてくるだろ。
「間違いだよね?」と疑問を持たない人は、入門書をどんなに読んだってわからないままいる
だろう。
0822デフォルトの名無しさんNGNG
つうか、入門書を調べれば簡単に分かるような事を質問してくる奴には見込み無し。
自分で調べる気はナッシング?
0823デフォルトの名無しさんNGNG
>>768
ttp://home.impress.co.jp/books/javaHB/
↑ ここのリスト 5.1 と 5.2 は書きかけで、(>>783)
ちゃんとコンパイルできるクラスは リスト 5.3 なんじゃないか?

(´Д`).。oO( 本の読み方くらい理解してくれ… )
0824デフォルトの名無しさんNGNG
>>823
すごいなお前。りっぱりっぱ!

俺には 5.1 と 5.3 は別ものに見えるよ。
0825デフォルトの名無しさんNGNG
>>822
どの質問が入門書読めばわかることなの?
0826デフォルトの名無しさんNGNG
>>823
5.2 もコンパイルできるよ。
0827768NGNG
>>823
> (´Д`).。oO( 本の読み方くらい理解してくれ… )

本にはソースのあとに「実行結果はこうなります」と書いてあり、まるで実行できるように書いてあります。
0828デフォルトの名無しさんNGNG
>>822
ここは「ネタ心者歓迎」。
0829デフォルトの名無しさんNGNG
>>822
人に聞かないで自分で納得して失敗しているやつが うちの会社にはゴロゴロしてる。
気をつけろ!
0830デフォルトの名無しさんNGNG
プログラミング初心者の後輩に
Bruce EckelのThinking in Javaを読ませようと思ってるんだけど
これって新人いじめ?
0831デフォルトの名無しさんNGNG
>>830
いいんじゃない?
英語で読ませるのがいじめというならば「Javaプログラミングマスターコース上」を読ませる。

// 下は失敗だと思う。
0832デフォルトの名無しさんNGNG
Javaがちょびっとわかってきたんだけど

えっける、やはり読んでて眠いです。
K&Rの第一章が延々1000ページ続いてるような気分になります。
0833デフォルトの名無しさんNGNG
>>814
まさしく、Java言語プログラミングレッスン(下)だね。クラスとインスタンスから始まります。
で、それで難しかったら上巻に戻る。
0834デフォルトの名無しさんNGNG
>>832
本家を読んでる?
0835デフォルトの名無しさんNGNG
>>831
内容にくらべて4000円は高いらしい。
0836デフォルトの名無しさんNGNG
>>835
「Javaプログラミングマスターコース」って4000円もするんだぁ?
なら、Java言語プログラミングレッスンを上下そろえたほうがいいかもね。
0837デフォルトの名無しさんNGNG
Javaべつにもう、わからんでもいいかな

>>834
pdfのやつ。英語です。猛烈に眠いです。AcrobatReader、やっぱり使いづらいです。
0838デフォルトの名無しさんNGNG
本を延々読んでも時間の無駄だと思うけどなあ。
とりあえずプログラムを書いて分からなくなったら本を開く方が
モチベーションも維持できるし。
0839デフォルトの名無しさんNGNG
>>837
PDFのヤツってどこにあります? HTMLのヤツは知ってるんだけど
0840デフォルトの名無しさんNGNG
Javaって(Javaに限ったことじゃないかもしれんけど)、同じこと
をやるのにいろんなアプローチがあるんだよね。

ところが無知蒙昧なアホは、最も間抜けな手段を選んで最も苦労する
道を強行突破して、最も保守性の低い実装にたどり着くんだよなあ。

で、苦労したもんだからJavaが嫌いになるのね。無知が原因なだけな
のに。アホか、と思うよ。
0841デフォルトの名無しさんNGNG
>>838
わからなくなったときどんな本を開いていますか?
0842デフォルトの名無しさんNGNG
Jビルダー5をダウンロードしようとしたらマニュアルとあわせて
100メガくらいあるのですが。ふつうのダイアルアップなので
無理です。どこか他に手に入るところはありませんか?
雑誌とか本についているかも。
0843デフォルトの名無しさんNGNG
Thinking in Java Eckel pdf
で検索スレ。
0844デフォルトの名無しさんNGNG
>>841
本じゃないのも多いけど。
APIリファレンス、JavaHouseのML、BlackBook、Javaの格言、
岩谷訳のSwing本、Java言語で学ぶデザインパターン
後はRMI、アプレット、サーブレットなど分野別に1,2冊ずつ。

「どのAPIを使えばいいか」「定石はないのか」を調べるのがメイン。
入門書はJavaへの道とか、例で学ぶJavaとか買ったけど
ただ読んでると眠くなるので読み終えることもなく捨てた。

俺の場合は他の言語の経験(C/C++)があるので、
Java に関しては構文覚えたりオブジェクト指向とは何かというのを飛ばせたのはあるけどね。
暗記するには量が膨大だから使って覚えるしかないと思う。
自分が作ろうとしているプログラムそのものについて書かれた本はないのだし。
あと質問ができる同僚/先輩がいると進みが早い(当たり前か)。
0845デフォルトの名無しさんNGNG
>>843
出てこないね
0846デフォルトの名無しさんNGNG
>>845
ほんとだ。
俺のもってるPDFは、じゃあ、いったいナニ?
0847デフォルトの名無しさんNGNG
独断と偏見で選んだ
参考になると思ったWebドキュメントベスト3

1.Sunの各種チュートリアル+テクニカルTIPS。
 APIリファレンス見ただけじゃ絶対にわかりっこ
 ない技が、ここだけで幾つもあった。
2.JGuruのFAQ。
 英語だけど沢山。
3.IBMのDeveloperWorks。
 プロの人が書いてるから、深いネタが多い。

寒いと思ったWebドキュメントベスト3
1.最近のJavaHouse。
 言わずもがな。
2.@ITのJava関係。
 ミーハーな空気が漂っていて気色悪い。
3.ここ(藁
0848 NGNG
>>845-846
これでしょ?googleで一発だったけど。
http://www.mindview.net/Books/TIJ/
0849デフォルトの名無しさんNGNG
>>848
あ、あったあった、これこれ。
会社用に落としとくよ
0850デフォルトの名無しさんNGNG
>>848
そこがでてきて、 PDF Version をクリックして、 HTML と word しか見えないんだけど?
0851 NGNG
>>850
ミラーサイトがずらずらあるんだから、どこかに落ちてるんじゃない?
0852デフォルトの名無しさんNGNG
あああ、DL中に止まるし。
PDF Versionあるだろー。ちっこいけど
0853デフォルトの名無しさんNGNG
>>851
ミラーは、html版しかないんだよ。
0854デフォルトの名無しさんNGNG
アクセス可能なスーパークラス内の
修飾子protectedにはどんな問題があるんでしょうか?
また、修飾子privateを使ってサブクラスから
スーパークラス内の変数を見えなくする利点に
ついて教えてくれませんか?
よろしくお願いします。
0855デフォルトの名無しさんNGNG
>>851
あるわけないじゃん
0856デフォルトの名無しさんNGNG
>>843
>>848
>>851
調べてから書いてるの?
0857デフォルトの名無しさんNGNG
>>854
protectedだと、同じパッケージからはまる見え。
だから、フィールドがprotectedだと隠蔽が中途半端になる。
privateなら、そのクラス自身からしかアクセスできない。

ということで、フィールドは基本的にprivateにして、サブ
クラスでも利用したい場合は、protectedのセッター&ゲッター
を準備すべき。じゃなかったかな?
0858851NGNG
>>853
んなことねー。有るよ。ってか俺は落とせた。
良く調べてみろ。

>>855
ハァ?? 何を根拠に? ってか有ったし
無責任な事を言わないようにネ。
0859854NGNG
>>857
すばやい回答どうもです。
限定的に操作できるようにするということですよね。
ありがとうございました。
0860851NGNG
しかし、無理してpdf落とすより素直にhtml版落としたほうが良いよ。
pdf版見づらい。
0861デフォルトの名無しさんNGNG
>>858
どこに PDF 版あるかおしえてもらえませんか?
0862デフォルトの名無しさんNGNG
>>858
んな PDFファイルの置き場所を知ってるくらいで自慢するなよ。うざってー
人に聞きまくったやつほどこういううぬぼれするよね。あなたがとは言わないが

>>861
http://web.pdx.edu/~suratman/ejb/books/Java/TIJ2.pdf
0863851NGNG
>>861
ここ
しかしメチャクチャ重い
http://www.codecuts.com/mainpage.asp?WebPageID=314
http://www.planetpdf.com/codecuts/pdfs/eckel/TIJ2.zip
0864デフォルトの名無しさんNGNG
>>860
印刷するわけにはいかないしねぇ。っていうか印刷するなら買ったほういい。(w
0865851NGNG
>>862
>>855みたいにデマをまく方がウザいと思うが?
0866デフォルトの名無しさんNGNG
書籍に比べて PDF は検索できるところがいいね。あっHTMLでもDOCでも可能ですが・・・
0867デフォルトの名無しさんNGNG
クラスファイルのパッケージ化の利点じゃなくて、
難点について分かる人いませんか?
0868デフォルトの名無しさんNGNG
最近このスレ、というか板全体が荒れてる...
0869デフォルトの名無しさんNGNG
>>867
俺はパッケージを増やせばpublicなクラスも増えるのが不満.
それ宿題?
0870デフォルトの名無しさんNGNG
>>869
俺は逆に1パッケージにたくさん放り込むとパッケージプライベートスコープの意味がなくなるのが不満。
それ宿題?
0871867NGNG
>>869
すいません。宿題なんです。
スレ違いだったら申し訳ないんですけど、
JAVAの質問ができそうなスレがここしか見当たらなかったので。
教科書には利点しか書いてないんで質問しました。
0872デフォルトの名無しさんNGNG
>>871

例えばグループ作業している時に自分が管理しているクラスが増えたとして
管理の便宜上、別パッケージにまとめて置きたい時が有る。

しかし、別パッケージからはpublicなクラスしかアクセスできない。
となると他人からもアクセスが可能となってしまう。
だが他人には公開したくない。

って事があるよ。
0873870NGNG
>>869 すげぇ、俺あんたの真似しただけだけど当たってるよ > 宿題 (藁

>>871
慣れた人がいないと「なんじゃこりゃ」というパッケージ構成になることもあるけど
(1 パッケージに 300 クラスとか)、だいたい俺は「一人の人間が頭の中で把握
出来る程度に細分化した機能単位」を 1 パッケージの基準にして、大体一人
1〜3 パッケージを担当分にしてる。特に難しいことはない。
0874872NGNG
>>872
しかしこれは現行のJavaへの不満なだけで、パッケージの難点ってわけでもないか。
0875867NGNG
みなさん、回答してくれて本当にどうもありがとうございます。
なんか書き込みを見てると特に問題点もないような気もしてくるんですが。
他の人に見られたくない物も見えてしまう事があるのは問題かもしれないですね。
でもセキュリティの問題もあるし、1つのプロジェクトにいる場合は当然なのかも。
実際に働いている人の意見が聞けるというのも僕にとっては貴重な体験です。

>>872
立て続けに同じ事を言われたのでかなりあせりました。
まさかいきなり叩かれてるんじゃないかって。
でも皆さん親切なのでよかったです。
0876デフォルトの名無しさんNGNG
>>765
おい 714、おまえ現実を模倣しなきゃならんと言う、悪しきOOの概念に
縛られすぎなんだよ。
動物クラスから猫クラス派生させて、OO最高って喜んでた口だろ。

まず基本は、データとそれを処理する関数なんだよ。これを忘れるな。
現実世界では、シャッフルするのはディーラーだが、
プログラム時は、ディーラークラスはカードオブジェクトの
シャッフルメソッドを呼ぶだけで、自分でシャッフルする必要はない。

ディーラークラスはまず、全てのカードでカードオブジェクトを初期化する。
その後、カードオブジェクトのシャッフルメソッドを呼び、
抽出メソッドを呼び、プレイヤークラスへカードを引き渡す。
プレイヤークラスは、カードオブジェクトの挿入メソッドを呼び、
必要ならソートメソッドを呼ぶ。

場の管理は場クラスに行わせ、当然カードオブジェクトを持つ。

> 全カードの存在や状態を意識する設計
それはおまえの設計だ。

ディーラークラスやプレイヤークラスや場クラスは、
自分のカードオブジェクトだけ考えればよい。
カードクラスも同じだ。
全てのクラスが、全カードの存在など意識しない。
カードに対する操作は、全てカードオブジェクトにまかせればよい。
カードに対する操作は、すべてカードクラスに実装する。
理解できたか?

最後に、おまえ厨房すぎる。
本ばかり読んでないで、実際にプログラムしろ。
プログラム経験が足りないんだよ。
0877デフォルトの名無しさんNGNG
GUIプログラミング周りに強い本ってありませんか?
0878デフォルトの名無しさんNGNG
>>877
グラフィックJava2とかは?
http://www.amazon.co.jp/exec/obidos/ASIN/475613582X/qid=1007743846/sr=1-2/ref=sr_1_0_2/250-3563152-9767451
0879876NGNG
>>876
> まず基本は、データとそれを処理する関数なんだよ。これを忘れるな。

元 C/C++ 出身だから良く分かってるよ。

> 現実世界では、シャッフルするのはディーラーだが、
> プログラム時は、ディーラークラスはカードオブジェクトの
> シャッフルメソッドを呼ぶだけで、自分でシャッフルする必要はない。

「ディーラーはシャッフルする」「カードはシャッフルされる」両方とも成立
するからどちらでもいい。

ただ、カードのインスタンスにシャッフルするメソッドを持たせると、
カードクラス内に全カードインスタンスを static で持つ必要が出
てくるだろ。そうなると VM 上で複数の「場」を立てづらい設計に
なるだろ。だからディーラーに持たせたの。ちなみに君の言う
「オブジェクト」ってインスタンスを指してるの?

ちょっと設計を教えてくれよ。カードのシャッフルメソッドの中で、他の
カードインスタンスをどうやって見つけるつもりなんだ? リスト? ここで
想定している実装イメージがいまいち分からん。

> ディーラークラスはまず、全てのカードでカードオブジェクトを初期化する。
> その後、カードオブジェクトのシャッフルメソッドを呼び、
> 抽出メソッドを呼び、プレイヤークラスへカードを引き渡す。
> プレイヤークラスは、カードオブジェクトの挿入メソッドを呼び、
> 必要ならソートメソッドを呼ぶ。

それでも別段違和感はありませんけど。

> > 全カードの存在や状態を意識する設計
> それはおまえの設計だ。

そうだよ。カード采配のモデルに世界のデファクトスタンダードでもあるのか?
あるとしたら現実に添ったオブジェクトの振る舞いと責任分担じゃないのか?

> ディーラークラスやプレイヤークラスや場クラスは、
> 自分のカードオブジェクトだけ考えればよい。
> カードクラスも同じだ。
> 全てのクラスが、全カードの存在など意識しない。
> カードに対する操作は、全てカードオブジェクトにまかせればよい。
> カードに対する操作は、すべてカードクラスに実装する。
> 理解できたか?

その実装はカードというのファットクラスが出来上がるだろう。カードがゲーム
全体を実装するなら、それは汎用的な設計といえないと思うがどうよ。

> 最後に、おまえ厨房すぎる。
> 本ばかり読んでないで、実際にプログラムしろ。
> プログラム経験が足りないんだよ。

あほ、月百二十万契約のフリーだ。君の言う「現実模倣」をモデルにして
数十〜数百億のプロジェクト 5 個こなしてるよ。

っていうかほとんど趣味レベルの設計の良し悪しなんかどうでもいい。
何で「現実模倣」をモデルにした設計がダメなのかぜひ聞きたい。
0880デフォルトの名無しさんNGNG
>>876
いくつか疑問点が。
・ディーラーに対して、「カードオブジェクトの初期化」を呼ぶのは誰ですか?
・ディーラーがカードに対して「シャッフルしろ」というのを呼ぶ設計のようですが、
 ディーラーに対して「カードをシャッフルしろ」というメッセージを送るのは誰ですか?
・カードオブジェクトって、例えばトランプなら52(53?)枚一組のカード群を指してカード
 オブジェクトと呼んでるんですか?一枚一枚がカードではなくて?
0881デフォルトの名無しさんNGNG
Σ(゚д゚lll)ガーン
まだカードの話しをやってるよ...

お前らのたいそうな設計よりそのへんで
ダンボール巻いて寝てるコボラーに書かせた方がましだ。
0882デフォルトの名無しさんNGNG
かける時間は
設計 8割 コーディング 1割 テスト 1割 ですが何か?
0883デフォルトの名無しさんNGNG
>>879 1/2
>> まず基本は、データとそれを処理する関数なんだよ。これを忘れるな。
> 元 C/C++ 出身だから良く分かってるよ。

> 「ディーラーはシャッフルする」「カードはシャッフルされる」両方とも成立
> するからどちらでもいい。

わかってるなら、設計に反映させたらどうだ?

> ただ、カードのインスタンスにシャッフルするメソッドを持たせると、
> カードクラス内に全カードインスタンスを static で持つ必要が出

カードクラスは、空で初期化することも、
全カードで初期化することも出来るようにする。
全カードインスタンスなどという概念はない。

もしかして、1枚1枚カードインスタンスにするつもりだったのか?
そこまで現実を模倣したいのか?
カードクラスは、複数枚のカードを管理する。

> てくるだろ。そうなると VM 上で複数の「場」を立てづらい設計に

何の問題もない。

> なるだろ。だからディーラーに持たせたの。ちなみに君の言う
> 「オブジェクト」ってインスタンスを指してるの?

そう。

> ちょっと設計を教えてくれよ。カードのシャッフルメソッドの中で、他の
> カードインスタンスをどうやって見つけるつもりなんだ? リスト? ここで
> 想定している実装イメージがいまいち分からん。

見分ける必要はない。

> そうだよ。カード采配のモデルに世界のデファクトスタンダードでもあるのか?

ない。
妥当なら良い。

> あるとしたら現実に添ったオブジェクトの振る舞いと責任分担じゃないのか?

現実に沿わなくても、役割分担できればよい。
あくまでプログラムだ。
0884デフォルトの名無しさんNGNG
>>879 2/2
> その実装はカードというのファットクラスが出来上がるだろう。カードがゲーム
> 全体を実装するなら、それは汎用的な設計といえないと思うがどうよ。

ゲームはゲームクラスが管理する。

> あほ、月百二十万契約のフリーだ。君の言う「現実模倣」をモデルにして
> 数十〜数百億のプロジェクト 5 個こなしてるよ。

その設計からすると、学生としか思えん。

> っていうかほとんど趣味レベルの設計の良し悪しなんかどうでもいい。
> 何で「現実模倣」をモデルにした設計がダメなのかぜひ聞きたい。

模倣しても良い。
模倣しなければならない訳ではない。
固定概念に縛られて、不便な設計をする必要はない。
0885デフォルトの名無しさんNGNG
(Frame)ダイアログを画面中央に出す方法を教えてくらはい。
(,,=´ ω `)ノ
0886デフォルトの名無しさんNGNG
「ユースケース入門」の手法によれば、
現実模倣によるモデルは分析段階のドメインモデルと呼ばれる。
これは属性や操作のないクラス図として書かれる。

ユースケースとドメインモデルによって、そのソフトウェアが
「どう利用するか」と「どのような要素が存在するか」が分析される。
これらは問題領域に属する。

そして、この二つ(など)から「どう動作するか」を表したロバストネス図が書かれる。
クラスの役割、クラス間の関係が抽象度を保ったまま表現される。
ロバストネス図は問題領域から解決領域を導くための図である。

ロバストネス図(など)からクラス図が書かれる。
クラス図には属性や操作が書かれる。
属性や操作は他の図からそのまま移されるものが多いが、
パターン適用などのコーディング上の必要から新たに追加されるものもある。
クラス図は解決領域に属する。
----
駆け足かつ受け売りで書いたけど、
現実模倣はあくまで問題(=作るソフトウェアがどういうものか)を把握するために行なうのであって、
それをそのまま設計に使えることは少ないと思う。
オブジェクト指向プログラムがある程度抽象度の高い書き方ができるといっても、
現実にはプログラムとしての制約、入出力機器の制約、
接続するDBの制約などなどが存在するから。

あ、ネタ心者スレだったのか。スレ違いすまん。
0887デフォルトの名無しさんNGNG
コピペご苦労
0888876NGNG
>>883-884
大体了解した。実装イメージも浮かんだ。俺的にはそういうやり方でもぜんぜんかまわない。

> 模倣しても良い。
> 模倣しなければならない訳ではない。
> 固定概念に縛られて、不便な設計をする必要はない。

神様もウンコも混じって数百人で開発するときの設計の難しいところに、やっぱり設計モデル
の共有というのがあるんだわ。火がつくとヘルプで突然1ヶ月だけ入る人もいるし、ドキュメント
ばっか読んでる奴もいればドキュメント読まずに書き始める奴もいる。そういう環境で設計して
ると、多少不便でも現実に基づいたモデルを持ち込むのが最終的に一番楽なんだわ。
モジュール間の責任分担や振る舞いの実装という面で。第三者に状況説明もしやすいんで
デバッグをやってもらうのもスムーズだし。

昔は教科書卒業したつもりで >>883 みたいな設計もしてたけど、やっぱりOOの教科書に
戻りましたね。俺が現実模倣をやっているのはそういう事。
0889885NGNG
俺の書き込みが、長文に埋もれていく。(欝
0890876NGNG
>>886
あ、現実模倣といってもさすがにそのままで実装するのは無理があるよ。正しくは現実のモデルに
なるべく忠実にしながら、だな。フェーズの頭から実装的な手法を入れるのはなるべく避ける。
最終的に必要な部分だけ実装的な設計手法を織り込んでゆく。これ。
0891デフォルトの名無しさんNGNG
>>889
もっとネタっぽく書かないとダメだって場。
0892876NGNG
>>889 java.awt.Toolkit#getScreenSize() 使って真ん中へピンポイント表示。
0893デフォルトの名無しさんNGNG
>>887
馬鹿馬鹿しいことに手書きだったりする。

>>890
710辺りから読み直してみたが、双方の主義の違いのような気がする。
最終的に動けば(そしてできる限り保守性がよければ)良いのだしね。
0894デフォルトの名無しさんNGNG
>>893
まあな。
主義主張なんてのは、なんの評価対象にもならん。
出来た物が全て、それが現実だ。
0895876 じゃなくて 765NGNG
よく読みなおしたら全部の名前のところの番号書き間違えてる 鬱だ詩嚢...
そして一番冷静なのは >>881 だということが分かった。
0896デフォルトの名無しさんNGNG
setDefaultCloseOperation(.EXIT_ON_CLOSE);ってこの場合どうやって使えばいいのですか?
右上の×を押したら終了させるようにしたいのですが。

public class Test extends Frame{
static FileDialog fd;
static String fname;
static MyCanvas c1;
static Button b1;
public Test() {
super ();
setSize(500, 500);
setLocation(0,0);
c1 = new MyCanvas();
Container c = fr.getContentPane();
b1 = new Button("ファイルを開く");
c.setLayout(null);
this.add(b1);
this.add(c1);
b1.setBounds(380,400,100,50);
c1.setBounds(0,0,500,400);
myListener1 m1 = new myListener1();
b1.addActionListener(m1);
try {
fd = new FileDialog(fr,"Select Text File.",FileDialog.LOAD);
fd.setVisible(true);
fname = fd.getDirectory() + fd.getFile();
}catch(Exception e){}
}
public static void main(String args[]){
new Zu1().show();
}
}
0897デフォルトの名無しさんNGNG
メソッドをstaticにすることはできますか?
0898デフォルトの名無しさんNGNG
>>884 > その設計からすると、学生としか思えん。
765 の美味しい所は学生でも理解できる設計をめざしている事だと思われ
# と学生のオイラが言ってみるテスト
0899 NGNG
public class Test extends Frame{
static FileDialog fd;
static String fname;
static MyCanvas c1;
static Button b1;
public Test() {
super ();
setSize(500, 500);
setLocation(0,0);
c1 = new MyCanvas();
Container c = fr.getContentPane();
String itteyoshi = "\u6b7b\u306d\u3070\uff1f";
b1 = new Button(itteyoshi);
c.setLayout(null);
this.add(b1);
this.add(c1);
b1.setBounds(380,400,100,50);
c1.setBounds(0,0,500,400);
myListener1 m1 = new myListener1();
b1.addActionListener(m1);
try {
fd = new FileDialog(fr,"Select Text File.",FileDialog.LOAD);
fd.setVisible(true);
fname = fd.getDirectory() + fd.getFile();
}catch(Exception e){}
}
public static void main(String args[]){
new Zu1().show();
}
}
0900896NGNG
自己解決したからもういいや
0901某SENGNG
億単位の案件を現実世界で崩し切るってこと?
よっぽどすごい奴か,ただのバカ正直かどっちかだな.
0902デフォルトの名無しさんNGNG
\u57fa\u5730\u5916\u8b66\u5831\uff01
0903 NGNG
\uff08\uff9f\u0434\uff9f)\uff8a\uff67?
0904デフォルトの名無しさんNGNG
>>902 名前:デフォルトの名無しさん 本日の投稿:01/12/08 05:00
基地外警報!


>>903 名前:  本日の投稿:01/12/08 05:02
(゚д゚)ハァ?
0905デフォルトの名無しさんNGNG
for文の中で定義した変数はfor文の中でしか使えないって言うのは不便だよなあ。
BASICなら使えるんだけどなあ。なんとかならないもんかねえ。
0906 NGNG
>>905
\u4f7f\u3048\u3061\u3083\u3046\u65b9\u304c\u4e0d\u4fbf\u3060\u3068\u601d\u3046\u
304c\u3069\u3046\u304b\uff1f
0907デフォルトの名無しさんNGNG
>>862
>>863
どちらも リリース11 だね。
0908デフォルトの名無しさんNGNG
指数ってどうやって表すの?
Math クラスは、指数、対数、平方根、三角関数などの基本的な数値 処理を実行するためのメソッドを含んでいます
とか書いてあるのに探してもないし。
0909908NGNG
とおもったらあったわ
0910デフォルトの名無しさんNGNG
Math.sin
Math.cos
Math.PI
Math.tan ハァハァ
0911707NGNG
カードネタ盛り上がってますね。

私は、単純にカードを偏り無くランダムに引ける
『カードファクトリーもどき』 が作りたかっただけなのですが・・・


要は、1〜N の乱数を偏り無く導ければよく、それなら
ついでにカードを引けるようにすればいいかなぁ、と思っただけでし。
0912デフォルトの名無しさんNGNG
微妙に板違いっぽいですが、どこで聞いたら良いのかわからないので…

ServerSocket 使って簡単な サーバ⇔クライアント でデータをやり取りするのを作りました。
ですが私のNETの環境がアパートの共有LANなので、外から上手くアクセスできないのです。
一応localhostでは動いてますが、
"診断くん"とかで調べたリモートアドレスの適当なポートに繋ごうとすると
java.net.ConnectException: Connection refused: connect
と出てきます。

でも、ZoneAlarm は外部からの特定のポートへのアクセスに反応してます。
外からアクセスする方法はあるんでしょうか?
0913デフォルトの名無しさんNGNG
>>912
アパートの共有LAN?どっかにルーターがいてNATされてるって事?
# つーかネットワーク構成の説明不足すぎ。それじゃどこで聞いても
# まともな回答は得られないと思われ。
0914デフォルトの名無しさんNGNG
>>913
何人だろうあなた
0915デフォルトの名無しさんNGNG
一人に決まってるだろ。
0916デフォルトの名無しさんNGNG
-deprecation オプションを指定するのってどうやるのですか?
0917デフォルトの名無しさんNGNG
>>916
まんまじゃん

そのままいれてみそ
0918916NGNG
C:\WINDOWS\デスクトップ\javafile\examples>-deprecation
コマンドまたはファイル名が違います.

って言われてもわからないです。
俺の持ってる入門本には載ってないし。
0919916NGNG
あ、javacの後に入れるのか
0920デフォルトの名無しさんNGNG
>>918
おいおい かわいいことするじゃん

C:\WINDOWS\デスクトップ\javafile\examples>javac -deprecation Hoge.java
09211NGNG
ちょっと早いけど

★★★ 新スレ立てました ★★★
http://pc.2ch.net/test/read.cgi/tech/1007802486/

1000近くなったら移動してください。
0922デフォルトの名無しさんNGNG
そろそろババ抜きくらいは出来たんだろうな?
0923デフォルトの名無しさんNGNG
>>921
そのスレ 1 に AA 貼ってあるので反対!!
0924デフォルトの名無しさんNGNG
俺は良いと思う。
09251NGNG
もう少し小さなAAにすべきでした。スマソ
0926デフォルトの名無しさんNGNG
iモードではアクセスできないかもね
0927 NGNG
とりあえず残り70以上有るんで、
3に行く前に、もうちっとこのスレ使いましょー!
0928デフォルトの名無しさんNGNG
>>927
新しい話題は向こうで、ここの話題はこちらってことにしましょう。前スレもそうでしたので
0929ねぇねぇねぇNGNG
Javacatsってどうなっちゃったの?

ここ
http://www.javacats.com/

久々行ってみたらなくなってたよ。

結構、アプレットのリソースとかたくさんリンクが貼られてたのに残念。
詳しく知ってる方、経緯をお教えください。

# 気になってしょうがない
0930デフォルトの名無しさんNGNG
>>929
JavaHouse に聞くよろし
0931デフォルトの名無しさんNGNG
appletを継承したクラス以外のクラスで
draw.Imageを使うとして、
ImageObserverにはどう指定すればいいんでしょうか?

public void draw(Graphics g)
{
g.drawImage(img,0,0,???);
}
0932デフォルトの名無しさんNGNG
>931
null
0933デフォルトの名無しさんNGNG
JAVA Beansってコーヒー豆?
0934デフォルトの名無しさんNGNG
文字を、
wordのワードアートのようにいろいろ装飾して表示させたいですが、
良いライブラリとか(できたらフリーで)公開されているの、知りませんか?
ちょっと検索かけたのですが、いまいちみつかりませんでした

自作するしかないのかな
(影付程度ったら、すこしずつずらして書くなどして、実現できそうなんだけど、
複雑なやつが・・・)
0935デフォルトの名無しさんNGNG
http://geroimo.virtualave.net/aaesp/
0936デフォルトの名無しさんNGNG
>>934 Java2D標準ライブラリで十分では
JDKのdemoのディレクトリにあるJava2Dのサンプルを見てみれ。
フォント処理も充実してるでよ
0937デフォルトの名無しさんNGNG
最近、仕事でJAVAを始めた初心者です。
どうしても理解できないコンパイルエラーが出るので
どなたか教えてください。

以下のインタフェースTestIF とそれを実装するクラス
TestCL をひとつのソースファイルにTest.javaに書いて
コンパイルします。(以下参照)
---------------------------- Test.java ---------
interface TestIF
{
 void f();
}

class TestCL implements TestIF
{
 void f() {}
}
------------------------------------------------
すると以下のエラーが出ます。

Test.java:7: TestCL の f() は TestIF の f() を実装できません。
スーパークラスでの定義より弱いアクセス特権 (public) を割り当てようとしました。
class TestCL implements TestIF
^
疑問1
このエラーメッセージで、「スーパークラス」とは何を指しているの
でしょうか?

疑問2
仮に「スーパークラス」を「インタフェース」と解釈
しても、void f() はTestCLクラスで元のインタフェースでの定義
でのデフォルトアクセス修飾(パッケージのみ)と同じなので
「より弱いアクセス特権」というメッセージも理解できません。

疑問3
「(public) を割り当てようとしました。」というのも、、
してねーじゃん!!としかおもえません。

どなたか、アドバイスおねがいします。
0938Kusakabe YouichiNGNG
In article >>937, デフォルトの名無しさん/937 wrote:

> 最近、仕事でJAVAを始めた初心者です。
> どうしても理解できないコンパイルエラーが出るので

ほんとに「どうしても」理解できなんだったら、
何をしても無駄でしょう。
0939デフォルトの名無しさんNGNG
インタフェースで宣言されたメソッドは
すべてpublicになるというルールが存在します。
一冊まともな本を買いましょう。
0940デフォルトの名無しさんNGNG
>>930
JavaHouseみてもわからんでち。おしえれ。
0941937NGNG
>>939

レスどうもです。
言語仕様書
http://java.sun.com/docs/books/jls/second_edition/html/jTOC.doc.html
を調べてみたら、おっしゃる通りでした。
9.4 Abstract Method Declarations
に
Every method declaration in the body of an interface
is implicitly public.
とありましたし、実際リフレクション使って、さきほどの
TestIFのClassクラスからf()の修飾子をみたら、
public と abstract が付加されていました。

で、「すべてpublicになるというルール」を覚えることは
できましたが、どういうポリシーでそうするのかは依然
として謎です。
0942937NGNG
>>939
ちなみに、本は「コア JAVA基礎編」使ってます。
だめっすか?
0943デフォルトの名無しさんNGNG
イメージファイルの幅や高さを取得するにはどうしたらいいですか?
Imageクラスにはそういったメソッドないですよね・・・
0944べんきょうちゅうNGNG
お疲れさんどす。
質問がありもす。
初心者だす。

ファイルにbyteデータを書き込もうと思い、以下の処理を行いました。

�@FileOutputStreamで出力ストリームを作成。
�Awriteを使って書き込み。

ちなみに出力先は存在しないファイルにしてみました。
エラーが出るかと思ったらちゃんとファイルができるのねー。
これってどの時点で出来たの?

FileOutputStream fos = new FileOutPutStream;

て書けばファイルが出来るものなのでしょうか?それともwrite?
0945デフォルトの名無しさんNGNG
>>943 あるよ。
ただし読み込み中は-1とか返すからImageTrackerクラスとかも調べれ。
0946デフォルトの名無しさんNGNG
>>944
出力ストリームを作成した時点で出来るんじゃないかな。
同じファイル名で2回作れないでそ?(作れたら嫌な感じ)
0947943NGNG
>>945
レスどうもです。
MedeaTrackerクラスを使ってイメージをロードすれば
getHeight()で高さが返ってくるようになる。ってことですよね?
で、今それを試してるのですが実行するとエラーでます。
waitForAll()が悪いみたいなんですけど・・・なんでだろ?
0948デフォルトの名無しさんNGNG
public class Test {
public static void main(String[] arguments) throws Exception {
System.out.println(new String("〜".getBytes("SJIS"),"SJIS"));
}
}

この結果は何で「?」になっちゃうんでしょうか?
0949948NGNG
一応環境も。
Win2000でJDK1.3.1です。
0950デフォルトの名無しさんNGNG
>>949
それは、MS932とSJISは別物だからでは?
0951デフォルトの名無しさんNGNG
それは、コンパイル時にエンコードされてるっつーことでは?
Win2kだと MS932だから、後は950と同じで。
0952951NGNG
…全然違った。
950で説明終わってた…
951は間違ってるから記憶から抹消してください。
0953948NGNG
MS932というのを知らなかったので調査のきっかけになりました。
ありがとうございます。

とりあえず、
public class Test {
public static void main(String[] arguments) throws Exception {
System.out.println(new String("〜".getBytes("MS932"),"MS932"));
}
}
で正しく表示されたので納得です。
0954デフォルトの名無しさんNGNG
ネタ心者歓迎!今更ながらにJava相談室  その3
http://pc.2ch.net/test/read.cgi/tech/1007802486/
レス数が950を超えています。1000を超えると書き込みができなくなります。