トップページ⇒tech
1001コメント320KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/

これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

以下のエラーが表示されて、途方にくれているあなたは、下のページへ。
「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path%2Cclasspath

前スレッド
【初心者】Java質問・相談スレ50【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1089936202/


/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */

また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/
0002デフォルトの名無しさんNGNG
javaアプレットとアプリケーションって
JAVAを勉強したら両方できるようになるの?
0003デフォルトの名無しさんNGNG
なるよ
0004デフォルトの名無しさんNGNG
1発目からしょっぱいのきたなー
0005デフォルトの名無しさんNGNG
コマンドプロンプトからjavaを実行したときに
ウィンドウのフレームを表示しないように(全画面表示)したいのですが可能でしょうか?
0006デフォルトの名無しさんNGNG
ほいな
http://www5.airnet.ne.jp/sakuraba/java/laboratory/JDK1.4/Graphics/FullScreen/FullScreen.html
0007デフォルトの名無しさんNGNG
>>6
ありがとうございました
試してみます
00085NGNG
以下の部分が全画面表示することは分かりました。
GraphicsDevice device;

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
device = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = device.getDefaultConfiguration();

try{
JFrame frame = new JFrame(gc);
frame.setUndecorated(true);
device.setFullScreenWindow(frame);
frame.setVisible(true);
}catch(Exception ex){
device.setFullScreenWindow(null);
System.exit(0);
}
でも今まで自分はjavaswingではなくjava2d?を使ってきました。←おかしな表現ですが・・・
MyUniverse universe = new MyUniverse(this);
Canvas3D canvas = new Canvas3D(config);
以上のような感じです。
その結果ウィンドウが2つに・・・
1つにするためにはjavaswingでプログラムを1から書き直すしかないのでしょうか?
0009デフォルトの名無しさんNGNG
>>8
表現がおかしいのは分かってないからでしょ
それは java3D 。Swing とは話の次元が違う。

>1つにするためにはjavaswingでプログラムを1から書き直すしかないのでしょうか?

> JFrame frame = new JFrame(gc);
これを書いたことで1つ増えたんだから、これ消して代わりに今でてる Window もってくれば?
0010デフォルトの名無しさんNGNG
jspを作れる人はサーブレットも作れるのですか?
逆とか。
片方しかできない人もいますか?
普通はセットでできるものですか?
0011デフォルトの名無しさんNGNG
>>10
普通はセットでできる物だが。
0012デフォルトの名無しさんNGNG
そんなこと聞いてどうするんだ
0013デフォルトの名無しさんNGNG
たとえば、jsp単体でも掲示板とか作れますよね。
そうしたらサーブレットは使えないんじゃないかなと思ったんです。
0014デフォルトの名無しさんNGNG
いや、だから使えなかったからどうしたというんだ。
0015デフォルトの名無しさんNGNG
webブラウザでアップレットを起動した場合、
ファイル読み込みはできるんでしょうか?
001615NGNG
失敬。アプレットでした
0017デフォルトの名無しさんNGNG
>>13
できるできない、書ける書けない、使える使えない、なんてくだらないこときくな。
プログラミングなんて、覚えればできる。覚えなきゃ出来ない。それだけのことだろ。
誰でもいつか覚えられるんだから誰でもいつか書ける。
JSP は単純にサーブレットに変換される。変換の定石が覚えられれば誰でもできる。
近いもんなんだからすぐに覚えられる。だからすぐに書ける。
ある分野を勉強してる奴は短時間でその分野のソースが書ける。
でも勉強したことあってもぼんくらなら時間がかかる。
勉強したこと無い奴はそれだけ時間がかかる。
でもプログラミングが得意な奴の、性格・経験的に合ってる分野ならサンプルソースみただけで即座に自分のものにできる。

さぁ、ほんとのところ君は一体何が聞きたいのだね。
ぼんくらでもかたっぽで実践積めば同時に両方習得したことになりますか? ってことか?
ぼんくらには無理。

>>15
基本的にはできない。もし知らんユーザに使わせるつもりなら、やめたほうがいい。
001815NGNG
>>17
やっぱりそうですか、、
アプレットビューアでは読み込みできてブラウザだとできないんで
「あれ?」と思ってました。
ありがとうごまいます
0019デフォルトの名無しさんNGNG
短距離を速く走れる人は
ハードル競技も速く走れますか、みたいな無駄な質問
小学生か
002013NGNG
あん?お前らスレタイ読めねーのか?
「初心者大歓迎」って書いてんだろ?
大歓迎してもてなせや。
0021デフォルトの名無しさんNGNG
>>20
ここはぼったくりバーなんだよ。
ど素人はすっこんでろ。
0022デフォルトの名無しさんNGNG
俺のほうが初心者歴なげーんだよ、俺に挨拶もなしにでけー態度とるな
上下関係大事なんだよ初心者界じゃ、ごめんなさいしなさい。
0023デフォルトの名無しさんNGNG
jvm から os の環境変数ってどのようなクラスを使用したら獲得できますか?
初心者っぽい質問ですまそ。
0024デフォルトの名無しさんNGNG
>>23
System.getProperties()
002523NGNG
>>24
ありがとうございます。しかし、自分も
System.getProperties().list(System.out);
でgetProperties() が os に依存する環境変数まで持ってきてくれるのかと思っていた
んですが、やはりダメでした。 例えば、os (Windows 2000です) で設定されている
`KANWADICTPATH' という環境変数はどのようにしたら jvm 内で取得可能なのでしょうか?
0026デフォルトの名無しさんNGNG
>>25
System.getenv()
deprecatedだけど
0027デフォルトの名無しさんNGNG
基本的にはできません。
OS 上で動き環境変数を利用するのはあくまで JVM であり、
JVM の中で動いているプログラムからは OS 独自の情報は取得できません。
1) シェルスクリプトにおいて、main の引数に与えましょう。
2) JNI を使いましょう。
3) org.apache.tools.ant.taskdefs.Execute などを利用しましょう
4) 1.5 でなら取得できる模様です
 http://www5.airnet.ne.jp/sakuraba/java/laboratory/J2SE1.5/TinyTips/EnvVariables/EnvVariables.html

002823NGNG
>>26さん
私の使用するjava1.4.2_5 では、 getenv は使用できないようです。
java.lang.Error: getenv no longer supported, use properties and -D instead: CLASSPATH
at java.lang.System.getenv(System.java:691)
at A.main(A.java:18)
Exception in thread "main"
002923NGNG
>>27さん
いやーありがとうございました。m(_ _)m
助かります。

自分の場合(1) が今のところ有力候補ですが、(4) はビックリしました。
タイガーでは使えるなんて・・・
JNI は、ちょっと時間かかっちゃうかなー。
(3) の ant.taskdefs はこれからget してみようかなと思います。

では。
003023NGNG
>>27さん
ハハ、`org.apache.tools.ant.taskdefs.Execute' 面白いですね。
環境変数が全部でてきましたわ。 ^^;
00315NGNG
>>9
それはそうなのですが
public class FirstApplet extends Applet {
public FirstApplet() {
}
public static void main(String[] args) {
FirstApplet applet = new FirstApplet();
MainFrame frame = new MainFrame(applet, 500, 500);
}
}
こういう書き方なのでどうやってやればいいのかさっぱり・・・
public class FirstApplet extends Applet {
public FirstApplet() {
}
public static void main(String[] args) {

GraphicsDevice device;
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
device = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = device.getDefaultConfiguration();
try{
ここになんて書けばいいのでしょうか><
frame.setUndecorated(true);
device.setFullScreenWindow(frame);
frame.setVisible(true);
}catch(Exception ex){
device.setFullScreenWindow(null);
System.exit(0);
}
}
0032デフォルトの名無しさんNGNG
俺はJava3D は全く分かっていないので以下そのつもりで。

MainFrame は Window のサブクラスだけどコンストラクタ中で既に表示されてるわけだから、
setUndecorated は適用できない。
というわけであとから表示できる Window を作らなければならない。
だから JFrame のインスタンスを作って Applet を add するようにしてみたとする。つか、してみた。
JFrame frame = new JFrame();
frame.getContentPane().add(applet);
frame.setUndecorated(true);
device.setFullScreenWindow(frame); //ここで勝手に setVisible されるので改めてしなくてもいい
そうするとだな、少なくとも手元の環境では Canvas3D が何にも表示してくれない。
配置はされている。MouseListener をしかけるとクリックに反応してるのがわかる。
OpenGL か何かしらんが、3Dエンジンが出力先を見失ってるんじゃないかと思うんだがなんともわからん。

ちなみに、undecorated して fullscreen せず setBounds だけしておいた Frame から、
alt 押してメニュー出して最大化すると期待通りの結果になる。こうなるといいんだが。
力になれなくてもうしわけないね
00335NGNG
>>32
できました!!!!
質問に答えてくださった皆様ありがとございました。
0034デフォルトの名無しさんNGNG
>>10
ServletができるならJSPもできる。
JSPができてServletできないこともあろうが
デバッグなどをやっているとServletもできないと話にならなくなる。
0035デフォルトの名無しさんNGNG
>>18
jarsignerで署名すればできるぞ。
Apache Antを使えば楽に署名できる
0036デフォルトの名無しさんNGNG
>>22
while(true){
 System.out.println("ごめんなさい");
}
0037デフォルトの名無しさんNGNG
でも近頃の流れだとServletはJavaコーディングだけど
JSPなんてタグばっかり・・・
0038デフォルトの名無しさんNGNG
>>33
何でわしの環境でできないんだろう。哀しひ。
0039デフォルトの名無しさんNGNG
いまから、このスレッドに
ごめんなさいオブジェクトをセッションに格納する。
public static final String SORRY = "SORRY";
session.setAttribute(SORRY, "ごめんなさい。");

謝罪要求されたときは以下の文字列を貼り付けよ。
session.getAttribute(SORRY);
貼り付けるだけで謝罪したことになる。

>>36
session.getAttribute(SORRY);


よし、謝罪完了!
0040デフォルトの名無しさんNGNG
>>37
Strutsだ
Tapestryだ
0041デフォルトの名無しさんNGNG
謝罪コードを使いやすくする!

public String sorry(){
 return (String)session.getAttribute(SORRY);
}

これを使うときは

sorry()とするだけで謝罪完了だ!
0042デフォルトの名無しさんNGNG
session.setAttribute(SORRY, "てやんでこんちくしょう");
0043デフォルトの名無しさんNGNG
public static final String SORRY = "ぬるぽ";
0044デフォルトの名無しさんNGNG
コンテキストに保存してさらに使いやすくしよう。

public abstract class SorryServlet extends HttpServlet {
 protected void init(ServletConfig servletconfig) throws ServletException {
  super.init(servletconfig);
  if(servletConfig.getServletContext().getAttirbute(SORRY) == null){
   servletConfig.getServletContext().setAttirbute(SORRY, "悪ぃな。おめえが謝れっていうから謝ってやるよ。");
  }
 }
}
0045デフォルトの名無しさんNGNG
String strSyazai = "すみません";
for(;;){
 strSyazai += strSyazai;
 System.out.println(strSyazai);
}
0046デフォルトの名無しさんNGNG
StringBuffer strSyazai = new StringBuffer("すみません");
for(;;){
 strSyazai.append(strSyazai);
 System.out.println(strSyazai.toString());
}
こっちのほうが倍々に増えていい
0047デフォルトの名無しさんNGNG
Aというクラス内にある int a を、
実装されたB,Cにおいて共有したいのですが、可能でしょうか?

たとえば、
B.a = 100; としたら、
C.a も自動的に100にしたいのです(内部でつながっている状態)。

0048デフォルトの名無しさんNGNG
Aの同じインスタンスを、BとCで持つ。
Aをシングルトンにするってのもいいなー。
0049デフォルトの名無しさんNGNG
static
0050デフォルトの名無しさんNGNG
Integer
0051デフォルトの名無しさんNGNG
>>50
ダウト
0052デフォルトの名無しさんNGNG
age
0053デフォルトの名無しさんNGNG
いまこそ本スレage
0054デフォルトの名無しさんNGNG
>>990
ガッ
0055デフォルトの名無しさんNGNG
おぼえてないな。
まちがいなくおぼえてないな。
990までは。
0056デフォルトの名無しさんNGNG
前スレのでしょう
ごめんぬる○なさいのでしょう
0057デフォルトの名無しさんNGNG
996にしてほしかったな。
0058デフォルトの名無しさんNGNG
>>47
> Aというクラス内にある int a を、
> 実装されたB,Cにおいて共有したいのですが、可能でしょうか?
>
> たとえば、
> B.a = 100; としたら、
> C.a も自動的に100にしたいのです(内部でつながっている状態)。
>
>

●Propertiesクラス、直列化を使ってファイルか呼ぶ。
●Aクラス、Bクラス、Cクラスの共通のスーパークラス、インターフェースを作り変数を
スーパークラスまたはインターフェースにプルアップする。

ただしこの場合は定数でないときはやめたほうがいい。
定数でないときはスーパークラス内のフィールドはprivateまたはpackage privateまたはprotectedにして
getterメソッドからのみアクセスできるようにする。setterも用意する。
しかしいずれにしてもこのやり方は煩雑になりやすい。
よってプロパティファイルやXMLファイルから拾うとかのほうがいい。
定数なら。

0059デフォルトの名無しさんNGNG
ようするに設計が悪い。
0060デフォルトの名無しさんNGNG
aを静的に宣言するんじゃだめなのかなー・・
006147NGNG
>48-60


色々意見ありがとう。
JAVA入門書を図書館で借りたのですが、そこまで突っ込んで書いてある部分が無かったので困ってました。
キーワードがいっぱい出てきたのでヒントになりました、調べて見ます。

0062デフォルトの名無しさんNGNG
Javaアプレットでおしえてくだちい。プログラムの実行を、
ある地点で完全に停止させたいのですが、いい方法ありま
すか?while(true) { ; } だと CPU 占拠しちゃうんで、
それ以外で。stop() 呼び出してもうまく止まらないし。
sleep() 長時間呼び出しの場合、それで Thread 呼び出し
しないといけないのはナシの方向で・・・御願いします。
0063デフォルトの名無しさんNGNG
いや、考え方の問題なだけであって、ちゃんと書いてある。
クラスが何なのか、インスタンスが何なのか分かってれば、
んで文法がわかってればどうすべきかも分かる。
そこあいまいにしとくと幾ら本を調べてもうまくいかない。

共有したいものをプリミティブ型の、各クラスに直接ぶら下がったフィールド値にしたい、
という、はっきりした条件を君が示したからそれなりの答えも出ているが、
その条件自体が適切であるかどうかは、君がどんなプログラムを組みたいか分からないので評価できない。
はっきり言って、みんなちょっと疑問に思いながら回答している。
0064デフォルトの名無しさんNGNG
>>62
完全に停止、の定義がわからない。
各 Component がユーザの要求に対してなんらの反応を示さない、ということ?
0065デフォルトの名無しさんNGNG
>>64
アプレットをその時点で明示的に破棄してくれるのが理想です。

たとえば、
 処理A
 if (条件 true) {
  プログラム停止(アプレット破棄)
 }
repaint() ;
 処理B
という流れで、repaint() されない所でプログラム停止させたいの
でつ。本当はスマートじゃないのは重々承知ですが。
0066デフォルトの名無しさんNGNG
exitとかで脱出とか無理だっけ・・・?
0067デフォルトの名無しさんNGNG
>>65
設計がおかしいだけでは?
そのコードが走るイベント部分がどーなってるかだけ
0068デフォルトの名無しさんNGNG
多分ポカーンとしている人が沢山いる気がする。

アプレットはブラウザ上で実行されるわけで
ブラウザを操作される以上描画自体は阻止できないと思うが。

paint()
 if(!条件)処理/*条件を満たすといつもの内容は描画しない*/
みたいなのを加えればいいとかそういう次元の話なのかしら?
0069デフォルトの名無しさんNGNG
なんでrepaint呼んじゃまずいのか気になってしかたない。
0070デフォルトの名無しさんNGNG
paint メソッドの中にいろいろ書いてるからでしょう。
初心者とか、バカが書いてサイトで垂れ流してるコードにありがち。
>>68 でも理解できなかったら我々にとっては放置した方が身のためかも知れん。
0071デフォルトの名無しさんNGNG
public class MyApplet extends Applet ...
 MainPane pane;

 if (条件) {
  remove(pane);
 }

class MainPanel extends Panel ...

これでもだめか。

なんにせよ「停止」なんちう言葉が
ほんとうに似つかわしいかどうか一回深く考えた方がよい。
0072デフォルトの名無しさんNGNG
>>47
もう答えは出てますよ。
Aクラスのint aをstaticにすればいいだけです。
そうすればB.aとC.aは連動します。同じ変数なのですから。
ただそれだけです。
ちなみに>>58はネタ師です。簡単な問題をわざとひねくり回して
しっちゃかめっちゃかな事を言う性質の悪い人です。
スルーしてください。
0073デフォルトの名無しさんNGNG
>>72
そこまでいいきるのはおかしい。

将来、新たにAを継承したDとEを作り
aを共有しようとする可能性だってある。
aがstaticなら望まずともBともCとも共有してしまう。
Aをベースにポリモフィズムという設計なら破綻する。

継承ではなく委譲にすれば
柔軟な形で共有することもできる。
静的なアクセスにしばられることもない。

というわけで
>>47に書かれた情報だけで
解決策がstaticとはいいきれない。

なんつってまぁ多分解決だろうけど。
ちょっと書いてみたかっただけよん:p
0074デフォルトの名無しさんNGNG
Stinrg#split( String regex )
でregexに"\\"をいれるとどんな文字列で
メソッドを実行しても↓のようなエラーがでてしまします。

java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
^

\で文字列を区切りたいんですが、どうしたらいいでしょうか?
0075デフォルトの名無しさんNGNG
>>74
こうしてください。

int index=text.indexOf("\\");
String s1=text.substring(0,index);
String s2=text.substring(index);
0076デフォルトの名無しさんNGNG
JTextFieldのMS-IMEがデフォルトでONになってしまいます。
テキストコンポーネントのインプットメソッドをONにしたりOFFにしたりするにはどうしたらいいですか?
0077デフォルトの名無しさんNGNG
>>47   例えばこういうやり方もある。

class A {
  static class Data {
    int a;
  }
  private static Data dat=new Data();
  Data mydat;

  A() {
    setData(dat);
  }
  void setData(Data d) { }
}
class B extends A {
  void setData(Data d) {
    mydat=d;
  }
}
class C extends A {
  void setData(Data d) {
    mydat=d;
  }
}

こうすると Bオブジェクトの「int a」(=mydat.a)と
Cオブジェクトの「int a」(=mydat.a)は、連動する。
なお、Aを拡張してD,Eクラスを作った時にsetData(Data d)を
上記の様にオーバーライドしなければ、そのクラスの「int a」(=mydat.a)は
B,Cの「int a」(=mydat.a)とは連動しない。(>>73の言う様になる)
よって「int a」(=mydat.a)が連動するサブクラスを選ぶ事ができる。
0078デフォルトの名無しさんNGNG
>>74
"\\\\"
0079デフォルトの名無しさんNGNG
>>76
java.awt.im.InputContext#setCompositionEnabled(boolean)
java.awt.Component#getInputContext()

java.awt.Component#enableInputMethods(boolean)
0080デフォルトの名無しさんNGNG
>>61
デザインパターンを勉強せよ
ぶっちゃけ  

  
0081デフォルトの名無しさんNGNG
んな大げさな。ぶっちゃけ。
0082デフォルトの名無しさんNGNG
ありえない。
0083デフォルトの名無しさんNGNG
自動的にONになってるというのが解せんが、
JavaにはインプットメソッドのON/OFFという概念はない。

Windows版でおそらく質問者の意図に近い解決法は

入力文字種を漢字に。(日本語インプットメソッドの擬似的ON)
>> getInputContext().setCharacterSubsets(new Character.Subset[] {InputSubset.KANJI});
入力文字種を制限しない。(日本語インプットメソッドの擬似的OFF)
>> getInputContext().setCharacterSubsets(null);

だが、これは厳密にはインプットメソッドのON/OFFをしているわけではない。
現在のAPI実装では結果的にはそうなってるように見えるが。

JavaHouse Brewers MLの 24510、24682あたりのスレッド参照。
ttp://java-house.jp/ml/archive/j-h-b/024510.html
ttp://java-house.jp/ml/archive/j-h-b/024682.html
0084デフォルトの名無しさんNGNG
>>75
>>78
レスどうも
ためしてみます
0085デフォルトの名無しさんNGNG
>>83
JavaHouse Brewers MLの 24510、24682あたりのスレッドって、1.2時代の話でしょ。

1.3からは>>79が書いてるように
java.awt.im.InputContext#setCompositionEnabled(boolean)
が使えるから、そーゆー事しなくても良いはず。
0086デフォルトの名無しさんNGNG
eclipseスレとどっちで質問するか迷ったのですが、あっちは荒れてるみたいなので
こっちで質問させてください。
eclipse2.1.3を日本語化したものを使ってるのですが、日本語版J2SEドキュメント
を http://java.sun.com/j2se/1.4.2/ja/download.html から落として、
JREの設定からJavadoc URLで、解凍したドキュメントのdocsディレクトリを指定した
のですが、エディタでSystem.out.printlnとかにマウスカーソルをホバーさせても
英語で説明が表示されます。docsの中のhtmlを見てみると日本語で書かれているので
間違えて英語版を落としてきたとかいうことはありません
どうすれば日本語のドキュメントを読むことができるのでしょうか
0087デフォルトの名無しさんNGNG
>>86
Eclipse Wikiの日本語化のとこに書いてあるだろ。
0088デフォルトの名無しさんNGNG
>>86
そこはJavadocじゃなくてソースコードをみているから。
0089デフォルトの名無しさんNGNG
>>87
おお、こんな便利なものがありましたか
ありがとうございます

>>88
てことは、Javaプログラマの皆さんは、マニュアルが必要なときはブラウザを開いて
直接docs/ja/index.htmlから読んでるということでしょうか
0090デフォルトの名無しさんNGNG
>>89
> てことは、Javaプログラマの皆さんは、マニュアルが必要なときはブラウザを開いて
> 直接docs/ja/index.htmlから読んでるということでしょうか

EclipseならJavadocのURLを設定しておけばShift + F2でAPIドキュメント開けるでしょ。
俺はmergedoc使ってるけど。
0091デフォルトの名無しさんNGNG
意外とブラウザで開いておくのもみやすいもんだよね

タブブラウザなことが前提だけど
ブックマークしていくと面白いようにさがせるよ
0092デフォルトの名無しさんNGNG
>>89-90
それすらめんどくさくて英語を読んでいます
職業プログラマは少なからずそのまま読んでおることでしょう
0093デフォルトの名無しさんNGNG
ていうか読まざるを得ないからな、標準APIはともかく
commonsとかは
0094デフォルトの名無しさんNGNG
>>92
DOCを読む事自体が、すでに面倒くさい行為でしょう。
職業プログラマならSEのクラスは、ほぼ暗記してるので
脳内のAPIリファレンスから参照してるはずです。
0095デフォルトの名無しさんNGNG
>ほぼ暗記してるので
>脳内のAPIリファレンスから参照してるはずです。

ということは、自分が今知っている範囲のことしかできないってことね。

記憶力の無駄遣いだと思う。
丸暗記より「どこを見れば何がわかる」をたくさん知っている方が効率的。
0096デフォルトの名無しさんNGNG
Javaは多重継承出来ないって聞いたんですが本当ですか?
0097デフォルトの名無しさんNGNG
>>96訂正します。
Javaではクラスの多重継承が出来ないと聞いたのですが本当ですか?
0098デフォルトの名無しさんNGNG
本当です
0099デフォルトの名無しさんNGNG
そうですか、残念です。
0100デフォルトの名無しさんNGNG
ややこしくなるから、わざとできないようにしてあるんでしょう・・・?
多重継承はなくても、多重継承みたいなことはできるはず。
0101デフォルトの名無しさんNGNG
javaを使って、WindowsマシンにつけたGPIBボードを操作したいのです。
ボードメーカーからは、dllが供給されています。

そこで質問なのですが、javaで下記のようなことはできるのでしょうか。

バイナリデータ列を任意に作ってそこへのポインタを引数にする。例えば、
 01 02 03 58 00
という5バイトのデータ列を作り、その先頭データへのポインタを、DLL呼び出しの
引数に使うことができるか、です。perlだとpack()が使えるケースです。

すいませんが教えてください。
0102デフォルトの名無しさんNGNG
そういうのはJNI使ってブリッジ用のDLLを作ったほうが楽。
だけど、メーカーによってはたとえばNIだったらGPIBボード
用のJavaライブラリ公開しているとこあるよ。
0103デフォルトの名無しさんNGNG
>>102
なるほど、JNIというのがあるんですね。これならできそうです。

今はperl/Tkでいろいろ書いているんですが、javaに乗り換えようかな、とも思っています。
でも速度の点でどちらのほうが優位なのか分からず踏み切れずにいます。
perl/Tkは日本語をサポートしていないことが最大の問題なのではありますが…
0104デフォルトの名無しさんNGNG
Javaで掲示板とかチャットを作ってみたいんだけど、参考になるソースはどこかにあるかな?
0105デフォルトの名無しさんNGNG
>>101
byte[] binaryData = {0x01, 0x02, 0x03, 0x58, 0x00};

簡単にできます。
0106デフォルトの名無しさんNGNG
>>101
byte[] binaryData = {0x01, 0x02, 0x03, 0x58, 0x00};
callDllOfGPIB( bynaryData );

簡単にできます。
0107デフォルトの名無しさんNGNG
>>104
はい、どこかにあります。
0108デフォルトの名無しさんNGNG
http://www.geocities.co.jp/SilkRoad/5552/ColorTriangle2.html

このページで公開されてるjava3Dとかいうのがまったく見れないんですが
java3dをみるためには何かインストールする必要があるんですか?
初心者な質問ですいません・・・
0109デフォルトの名無しさんNGNG
見るだけならいらないと思う。
0110デフォルトの名無しさんNGNG
必要
0111デフォルトの名無しさんNGNG
>>109
そうなんですか?
うーん・・・
なんでみれないんだろ・・・
0112108NGNG
いろいろDLして試してみたんですが
ぜんぜん変化なしです
他のページのjava3dも試してみたんですが
http://www.takana.info/java3d/doc/
このページとかエラーになっちゃってやっぱり実行できないです
どうやったらいいですか?だれかアドバイスください・・・。
0113デフォルトの名無しさんNGNG
Java3D Runtime for the JRE
0114デフォルトの名無しさんNGNG
>>102
大規模なDLLだとスタック足りないってなるのがかなり問題
すこしおおきくしてほしいものだなぁ
0115デフォルトの名無しさんNGNG
すいません、
あるフォルダにあるファイルのListを取り出す方法を教えてもらいたいのですが。

そういうAPIが見つかりません。
0116デフォルトの名無しさんNGNG
>>115
探し方が足りません。File#list
0117115NGNG
>>116
あ・・・すいません。
未熟者です。

ありがとうございました。
0118デフォルトの名無しさんNGNG
>>115
まじめに探したとは思えません。
File#list()
0119デフォルトの名無しさんNGNG
シンボルが解決できないというのはどういうことですかね?
importもしてるし。
わからん。

WorkPlus.java [315:1] シンボルを解決できません。
シンボル: メソッド setListData (java.lang.String)
場所 : javax.swing.JList の クラス
jList1.setListData(fName[c]);
^
エラー 1 個
コンパイルエラー WorkPlus.
0120デフォルトの名無しさんNGNG
多分、馬鹿なんだと思う
0121デフォルトの名無しさんNGNG
修正
jList1.setListData(fName[c]);
   ^
0122デフォルトの名無しさんNGNG
修正してる暇があったらよく見直せ
void setListData(Object[] listData)
void setListData(Vector listData)
0123デフォルトの名無しさんNGNG
>>119
別に馬鹿じゃないですよ。
fName[c]をfNameにしてくださいませ。
0124119NGNG
>>123
解決しました。
助かりました。
ご迷惑おかけしました。
0125とほほNGNG
JDesktopPaneのインナーフレームにステイタスバーを表示したいのですが
こんなエラーがでてしまいます。

シンボル: メソッド showStatus (java.lang.String)
場所 : DesktopTest の クラス
showStatus(eventname) ;

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
もしてるんですが・・・
良い方法を、教えてください。
0126デフォルトの名無しさんNGNG
showStatus なんてメソッド標準 API にはない。
自分で勝手に作ったメソッドだろ?
DesktopTest とは別のクラスに作ったんだろうよ。見直せ。

>>119 もそうだが、
指定のメソッドのあるなしに import は関係ない。
import の意味も分かってないのに報告すな。
0127デフォルトの名無しさんNGNG
あ、Applet にあったか。Applet じゃないんだろ?
なら呼べないわ。
0128デフォルトの名無しさんNGNG
無意識下で、自分は間違っていないということを裏付けたいがために
「importもしてます」と強調するんだろうな。
その時点で心がけが間違ってる。
0129とほほNGNG
いや、エラーが出る時点で自分が間違っていることは認識してる。
一応、cで食ってるのでimportの意味は解ってる。
importが足りない可能性も有るから、書いた。

とりあえず、128は市ね
0130デフォルトの名無しさんNGNG
>一応、cで食ってるのでimportの意味は解ってる。
ぎゃはははは
0131とほほNGNG
いや失礼。

>指定のメソッドのあるなしに import は関係ない。
本当か?
0132とほほNGNG
あれ?どうしたの
ぎゃははははの人
早く答えてよ。
0133デフォルトの名無しさんNGNG
import はパッケージ名の無い、クラス名とおぼしきシンボルを解決させるだけの意味しかない。
import をどうこねくり回しても本来あるはずのメソッドを見失うようにはならない。
稀だが、違うパッケージの同名のクラスが import から導き出されたら関係あるがな。
でもまさかそういう可能性まで考えて報告したんではないだろう。
そこまで分かってたら原因から除外できるのも分かるはずだ。
0134とほほNGNG
それで? >>130 のぎゃはははの意味がわかんないんだけど。
さっさと答えてよ。
0135デフォルトの名無しさんNGNG
CのincludeとJavaのimportは機能が違うからだろ
0136とほほNGNG
>134
おまえは、誰だ。
>133
私の間違い。失礼しました。
メソッド名を長々書くならjavaでimportは不要でした。
0137デフォルトの名無しさんNGNG
CとJavaのimportを一緒にしている奴がいるスレはここでつか?ぎゃはははは!
0138デフォルトの名無しさんNGNG
ギャーギャー騒ぐな。初心者スレだ
0139デフォルトの名無しさんNGNG
でも基地害スレじゃないよ
0140デフォルトの名無しさんNGNG
Socketの読み取り可能なバイト数を取得する方法はないですか?
0141デフォルトの名無しさんNGNG
InputStream#available() ではなくて?
0142デフォルトの名無しさんNGNG
Cみたく動的にメモリを配置したいんですが
Javaではどうすればいいのでしょうか?
mallocみたいなものって・・ないよねwポインタがないし。
0143デフォルトの名無しさんNGNG
ここは基地害スレじゃないよ
0144デフォルトの名無しさんNGNG
>>141
NIOを使用しているのでInputStreamは使えないんです。
0145デフォルトの名無しさんNGNG
>>142
配置したいって何?

確保したいとは違うの?
0146デフォルトの名無しさんNGNG
>>140
J2SE 1.4 だったら、java.nio.channels.SocketChannelというのがあるけど、
実際に読み込みを実行しないとバイト数は分からんみたいね。
0147デフォルトの名無しさんNGNG
>>142
ByteBuffer#allocateDirectじゃダメ?
JNIを使うとC,C++で直接ヒープをさわれるけど。
0148デフォルトの名無しさんNGNG
何なんですか? この雰囲気は?
とほほ氏に対して重箱の隅をつつくような批判をさも大げさに
繰り広げているけど、いい加減にして欲しいですね。
要は、showStatus(String s)がContainerクラスに所属してるものと
勘違いしただけの事でしょうが。
それならimport指定の有無が関係あると考えるのは当然の事でしょうが。
0149デフォルトの名無しさんNGNG
つりはやめれ。
0150デフォルトの名無しさんNGNG
>>142
byte[] buffer = new byte[バイト数]
とするしかないと思う
0151デフォルトの名無しさんNGNG
>>146
SocketChannelを使用していると無理ですか。
java.net.Socketだとselectが使えないですしね。
ありがとうございました。
0152デフォルトの名無しさんNGNG
>>142
Vectorなどの動的に管理できる
コレクションクラスを使うとよいのでは。

ポインタあるよ。
"NullPointerException"
ほらあった。
0153デフォルトの名無しさんNGNG
>>140
その瞬間での読み取り可能数を知る方法は、実際に読み込む以外に
ないですね。
その通信単位の読み取り可能数はプロトコルによって取得法が
0154デフォルトの名無しさんNGNG
>>142
たくさんあります。
0155デフォルトの名無しさんNGNG
StringBuffer fileLog[];
int c;
fileLog[c] = new StringBuffer();

こうすると、なぜか例外処理が発生し、fileLog[c]が使えません。
なぜなのでしょうか?
0156デフォルトの名無しさんNGNG
cは、forループとなってます。
初期値は0です。

for(c = 0;c < curLogList.length ; c++)
{

fileLog[c] = new StringBuffer();
fileLog[c].setLength((int)f.length());
fileLog[c].append(sb);
}

sbは、StringBufferで、ファイルからReadしたデータが格納されてます。
それをappendで、fileLogへ追加したいのですが、
例外が発生してしまいます。
0157デフォルトの名無しさんNGNG
>>156
StringBuffer fileLog[] = new StringBuffer[curLogList.length];
という風に配列オブジェクトを生成してないから
ぬるぽが発生しているのではないかな?
0158デフォルトの名無しさんNGNG
>>142
ポインタあるし。
Javaのオブジェクトは動的メモリ配置させないほうが難しい。
0159デフォルトの名無しさんNGNG
Javaの勉強を始めたものです。
SunからSDKダウンロードしてDOSプロンプト上で
簡単なjavaプログラム、javaアプレットを実行する所まで出来ました。
ところでデスクトップ上に「java Web Start アプリケーションマネージャ」
というショートカットが出来てるのですがこれは何ですか?
何のために使うのでしょうか?
0160156NGNG
>>157
ご返答ありがとうございます。

StringBuffer fileLog[] = new StringBuffer[curLogList.length];とし、
内部では、fileLog[14]とインスタンス化されましたが、

そのあと、fileLog[0]に、ファイルからReadしたデータをappendすると例外が発生してしまいます。
なぜなのかがわかりません。
只今も格闘中です。

int c;
char recv[] =new char[100000];
StringBuffer fileLog[] = new StringBuffer[curLogList.length];

for(c = 0;c < curLogList.length ; c++)
{
File f = new File(curPath + curLogList[c]); ←Readするファイル(.txt)のあるPath
FileReader fr = new FileReader(f);

while(-1!=fr.read(recv)) {
fileLog[c].append(recv); ←ここで例外発生。
}
}
0161デフォルトの名無しさんNGNG
>>152
ガッ
0162デフォルトの名無しさんNGNG
>>160
fileLog[0]がヌルポインタだからです。
fileLog[0]=new StringBuffer();
としてから、append()してくださいませ。
0163デフォルトの名無しさんNGNG
for(c = 0;c < curLogList.length ; c++)
{
fileLog[c] = new StringBuffer(); ←こうしてくださいませ。

File f = new File(curPath + curLogList[c]); ←Readするファイル(.txt)のあるPath
FileReader fr = new FileReader(f);

while(-1!=fr.read(recv)) {
fileLog[c].append(recv); ←ここで例外発生。
}
}
0164デフォルトの名無しさんNGNG
>>159
実行すればいいじゃない
0165デフォルトの名無しさんNGNG
>>164
実行したらパソコンが壊れちゃった
0166デフォルトの名無しさんNGNG
>>165
その今書き込んでる奴を使え
0167デフォルトの名無しさんNGNG
仕込み漫才かYO
YOUかYO

サンプルだよサンプルデモ。げぇむもついてるYO
赤いたまも黒いたまもむつかしいYO
これだYO
ttp://java.sun.com/products/javawebstart/ja/demos_ja.html
016876NGNG
>>79
>>83
>>85
レスありがとうございます。

>>79の方法でやろうと、
myjtextfield.getInputContext().setCompositionEnabled(false);
としてみたんですけど、
InputContextインスタンスが取得できずに、nullpointerexceptionが出てしまいました。

いろいろ調べたら、
http://java-house.jp/ml/archive/j-h-b/043354.html
の方法

texiFieldがFocusGainedされた時
Input Method Frameworkにより
IMEをオフにして直接入力
textField3.getInputContext().setCharacterSubsets(null);

があり、これをしたらMS-IMEがoffになってくれました。

でもデフォルトでMS-IMEがonになるって>>83さんのいうように自分のjreは変なんですかねぇ。
0169デフォルトの名無しさんNGNG
> InputContextインスタンスが取得できずに、nullpointerexceptionが出てしまいました。
それは>>168の使い方が悪いだけ。
017076NGNG
>>169
んじゃどうやったら取得できるんですか?
0171デフォルトの名無しさんNGNG
今日はJAVAでJAVAJAVA洗濯しました。
0172デフォルトの名無しさんNGNG
>>170
> textField3.getInputContext().setCharacterSubsets(null);
こっちでは取得できてんだろ。使い方が悪いだけ。
0173160NGNG
>>163
ご返答の程、ありがとうございます。

ご指摘のとおり記述しなおしたところ、うまくビルドできました。
StringBuffer fileLog[] = new StringBuffer[curLogList.length];のままだと、まだnullの状態なんですね。
知らなかったです。

本当に助かりました。
017476NGNG
>>172
>> textField3.getInputContext().setCharacterSubsets(null);
>こっちでは取得できてんだろ。
おおそういえばそうです。

ためしにやったらできした。
何でできなかったのかな??
0175デフォルトの名無しさんNGNG
Javaの印刷について詳しく載ってるサイトってあります?
0176デフォルトの名無しさんNGNG
Graphicクラスだけど、
drawString使うと、文字列中の改行が無視されてしまいます。
改行をきちんとされるようにしたいのですが・・・。
0177デフォルトの名無しさんNGNG
JavaでGUIを勉強し始めようとおもっているのですが
AWTとSWINGどっちからやるのがおすすめですか?
0178デフォルトの名無しさんNGNG
>>177
SWINGがいいと思います。
AWTは古いコンポーネントなので処理も重く使い勝手が悪いです。
SWINGはそのAWTを改善したものですので、
SWINGを勉強しましょう。
0179デフォルトの名無しさんNGNG
>>178
即レス�dくすです。

早速、SWINGを勉強してみます。
0180デフォルトの名無しさんNGNG
軽量コンポーネントって誤解をまねくよな
0181デフォルトの名無しさんNGNG
大文字、小文字、全角、半角
少しは気にしてくださいよ
0182デフォルトの名無しさんNGNG
すくなくともAWTが一番軽いよ
ネイティブだしな

でも、機能少なすぎてお話にならないのでSwingでいい
何も考えずsetSizeするのだけやめれば大丈夫

分からなかったらNetBeansつかえ

0183デフォルトの名無しさんNGNG
Bean とか、Beans とかって何ですか?
豆?

なんかコンポーネント化されたクラスみたいな解説は見たことがあるがいまいちはっきり分からない。
だれか簡潔に一言でスカッとトロトロに解説してください。(略してスカトロ)
0184デフォルトの名無しさんNGNG
>>183
ウンコ喰って氏ね
0185デフォルトの名無しさんNGNG
OK.ウンコだけじゃアレなのでリンゴも食って寝ます。
0186デフォルトの名無しさんNGNG
SocketでHTTPプロトコル通信プログラムを作成してるのですが
転送コーディング無しのエンティティボディをストリームクラス
(BufferedReader)で読み込むと、Content-Lengthの80%位
読み込んだ後に-1が返ってきてそれ以上読み込めなくなってしまいます。
例えば10万バイトなら8万バイト読み込むと-1が返ってきてしまうのです。
その後にRangeヘッダ指定の部分GETで、残りの2万バイトを読み込もうと
すると、今度は1万6千バイト位読み込むと-1が返ってくるのです。
大きいボディでも小さいボディでも同じなのです。
300バイトだと250バイトで-1が返ってくるのです。しかもどのURLでもです。
一度もボディを全て読み込めた事がありません。
どうか解決策を教えてください。
0187デフォルトの名無しさんNGNG
>>180
軽量コンポーネントってOSのリソースを使わないって意味だからな。
GUIの描画にOSの機能(ネイティブ)使うのと、
Javaを使うのとどっちが速いかは言うまでも無い。
「遅い軽量コンポーネント」と言うようにすれば勘違いも減るだろう。
0188デフォルトの名無しさんNGNG
え、逆でしょ
0189デフォルトの名無しさんNGNG
>>186
読み込んでる部分のコードがないと何とも答えられんと思うが。
0190デフォルトの名無しさんNGNG
>>188
Swing勉強した方がいい
0191デフォルトの名無しさんNGNG
またまたご冗談をw
Swingは軽量コンポーネントなので遅いですよ。
0192183NGNG
俺の質問は・・・?
0193デフォルトの名無しさんNGNG
無視
0194デフォルトの名無しさんNGNG
>>186 readLineで読み込んだ文字列の長さを積算して、
「80%しか読めない」とかいってるわけじゃないよね? まさか。
0195デフォルトの名無しさんNGNG
>>192
>>184
0196デフォルトの名無しさんNGNG
>>191
SWTは?
0197デフォルトの名無しさんNGNG
>>191
横槍だけどさ。
その遅いってのは何と比べて?
SwingはAWTをベースに軽量化&高速化した物って
俺の持ってる本には載ってる。
また、別の本だったかサイトだったかに
AWTは重量コンポーネントと呼ばれるってのも読んだ事がある。

軽量コンポーネントの「軽量」とは軽いって意味じゃないのか。
違うなら詳しい説明よろしく。
0198デフォルトの名無しさんNGNG
>>194
違います。
例えばHTMLソースのエンティティボディを読み込んで
そのバイナリデータを出力すると、明らかに途中で途切れてるのです。

>>189
コートは簡単なものです。
レスポンスヘッダ部分を読み終えた後に
size = r.read(buffer, 0,buffer.length); (rはBufferedReader)
をsizeの合計がContent-Length以上になるまで
ループしてるだけなのです。しかし、その途中で-1が
返ってきてしまうんです(泣)しかも大体8割位のとこで。。。
0199デフォルトの名無しさんNGNG
>>196
SWTは速い重量コンポーネント。

>>197
> その遅いってのは何と比べて?
ネイティブ、AWT、SWT全て

> SwingはAWTをベースに軽量化&高速化した物って
作者が勘違いしているのでしょう。
軽量化は正しい、しかし軽いという意味ではない。

> AWTは重量コンポーネントと呼ばれるってのも読んだ事がある。
OSのリソースを食うというだけで重いわけじゃない。
win9x系ではリソースが少ないので問題が発生することがあるが、
それ以外ではなんの問題も無い。

> 軽量コンポーネントの「軽量」とは軽いって意味じゃないのか。
違う。
0200デフォルトの名無しさんNGNG
>>198
Readerのreadメソッドの返り値はバイト数ではなく文字数だから,文字コード変換
の結果として実際にソケットから読み出したデータのバイト数よりも小さい整数値を
返したとしても不思議ではない。
0201デフォルトの名無しさんNGNG
シングルトンに関することで教えてください。

シングルトンの、「インスタンスの生成を1つに制限する」という機能は、
「クラスのコーディング時に静的属性や静的メソッドだけ使うようにする」
ということで実現できてしまう気がするのですが、
あえてシングルトンを使うメリットはどんなところにあるのでしょうか?

シングルトンの実装の方法はわかったのですが、
メリットが見えないのです…。
0202デフォルトの名無しさんNGNG
> シングルトンに関することで教えてください。
一人身のブタです。
かわいそうなのでほっといてやってください。
0203デフォルトの名無しさんNGNG
>>201
「クラスのコーディング時に静的属性や静的メソッドだけ使うようにする」 ように気をつけなくても良くなる。
0204デフォルトの名無しさんNGNG
>>198 バイナリデータをreaderで読むなよ。
0205デフォルトの名無しさんNGNG
>>199
ぜんぜん理解できん。

何が重量で何が軽量なんだ?
うーん・・・
OSのGUIが重量で、JAVAが提供してるGUIが軽量なのか?
0206デフォルトの名無しさんNGNG
java始めようと思って、sunで最新版(1.4.2_05)をDLして
インストールした訳だが、インストールの途中で以下のエラーが出る。
--------------------------------------------------
jre\bin\awt.dll:Old File not found. However a file of the same name was
found. No update done since file contents do not match.
--------------------------------------------------
古いファイルがないって・・・。Update専用って話じゃないし。
マシンを2台持ってて、OSはどちらともWin2k。
メインのマシンは、問題なくインストールできた。
開発用として使おうと思ってるマシンで、このエラー。
ちなみにOSクリーンインストールしてパッチも最新版にしてこの有様。
当然だが、クロックアップなぞ一切していない。
プログラム始める前から躓いてる俺ってorz。
誰か救ってください。
0207デフォルトの名無しさんNGNG
>>201
そのクラスを使用するクラスを選別する事ができます。
静的メソッド&静的属性だと、どのクラスからでも呼び出せて
しまうので、どのクラスから使用されてるのか掴みにくくなってしまいます。
さらに、そのクラスがアクティブかどうかが、実行上の重要なキーワードと
なる時に必要となります。
静的属性&メソッドだと常にアクティブになってしまうので、その選択が
できません。
さらに、そのクラスが大規模なデータを持つ場合にメモリの節約になります。
必要な時だけ実体化させ、それ以外の時は0にできます。
静的だと常に属性がメモリを占有する事になってしまいます。
0208デフォルトの名無しさんNGNG
>203さん
ご解答ありがとうございました。やっとすっきりしました。

>202さん
…ほっといてあげます。
0209デフォルトの名無しさんNGNG
>>204
実は、BufferedInputStreamも試したのです。
結果は同じでした。8割くらいでー1が帰ってきます。
chunked転送コーディング時は、どっちにしろBufferedReaderを
使わねばならないので、プログラム上スッキリさせる為に
Readerを用いてるのです。
0210201 208NGNG
>207さん
ご丁寧にありがとうございます。
非常によくわかりました。
シングルトンの場合では、必要がない場合には
アクティブにさせないこともできるということが
ポイントなのですね。

どうもありがとうございました。
0211197&205NGNG
あー見つけた!
うーん、どうやら>>199の言う通りAWTを高速化したってのは作者の勘違いなのか?

OSのGUI部品とJAVAで定義されたGUIクラスを二重で持ってるから重量と呼ばれる。
それに対し、SwingはJAVAだけで完結してるから軽量って意味とあった。
動作が軽いって意味ではないと。

ただ、AWTは形状や機能の一貫性が保障されないし、
Swingは物凄く機能強化されてるから、Swingを使うのがお徳だよとある。
新しいSwingが遅いってのは、OS依存がないって利点の負の副産物だったんだな〜。

何冊か参考書読んだけど、こういう根本的な事書いてる本なかったな。
すげー基本的な事なんだろうけど勉強になった。
>>187と>>199に感謝。
0212デフォルトの名無しさんNGNG
すいません、C#の話なのですが質問をさせてください。

javaにはGUI設計手段としてSwingとかSWTがありますが、C#にはあるのでしょうか?
0213デフォルトの名無しさんNGNG
Windows.Formsか、それともUser32.dllを無理やり読み出して自前でウィンドウ作るか、とか
0214デフォルトの名無しさんNGNG
>>209 194や200も書いているけど、Reader系は文字ストリームだから
エンコーディング変換の処理が入る。だから普通使わない。
#まあSunのiso-8859-1が8bitクリーンである実装に依存する書き方する人いるけど。

で、BufferedInputStreamも試して駄目なら他でおかしいところが
あるはずだから、状況を再現する一番短いコードをさらしたら?
0215デフォルトの名無しさんNGNG
>>212
俺は使った事も無いし使う予定も無いが、monoのGtk#とか。
http://www.mono-project.com/using/gtk-sharp.html
0216デフォルトの名無しさんNGNG
>>210=201=208
203や207の言ってることはどっちかというと電波発言だぞ。
静的メソッドでは動的束縛ができないというのが本質だ。
0217デフォルトの名無しさんNGNG
>>211
> ただ、AWTは形状や機能の一貫性が保障されないし、
それはどのOSでも一貫性が保証されないという意味であり、
逆にいえばSwingはどのOSでも一貫性が保証される。

が、それはJavaアプリの場合の話であり、
それを動かしているOSやJava以外のアプリとの一貫性は保証されない。

ようするに、JavaアプリはどのOSでも同じように見える代わりに、
他のアプリとは同じように見えなくなるということ。

多くのユーザーは複数のOSで同じアプリを使わんよ。
それよりか、自分の使っているOSと同じようなインターフェースを望む
0218デフォルトの名無しさんNGNG
>SwingはどのOSでも一貫性が保証される。
これが大事なんだろ
OSごとに作る必要がなくなってOSの垣根を越えて
ユーザーを獲得できる
0219デフォルトの名無しさんNGNG
2兎追うものは..
0220デフォルトの名無しさんNGNG
泥棒のはじまり。
0221デフォルトの名無しさんNGNG
>>218
それは作る側の論理だな。
そりゃ、どのOSでも同じインターフェースだと作るほうは楽だろうよ。
でも使う側からみりゃ、OSや他のアプリと違うインターフェースは見難い使いにくい。
結果的に、SWTみたいにOSネイティブの機能を使って、そのOSのインターフェースに
あわせた使いやすいインターフェースにするのがユーザーを獲得することにつながる。
SUNもそれに気づいたから、SwingにOSネイティブを入れることにしたんだろうよ。
0222デフォルトの名無しさんNGNG
俺、SwingのUI好きだよ
UIを自分で自作できたりする所なんかもいいね
0223デフォルトの名無しさんNGNG
基本的にSystemLAFでほとんど間に合うけどね
たとえばWinだとALT押したらメニューにカーソルいくとかよくできてる
ま〜ネイティブで高速化するなら大歓迎だけどね
しかも大概文句言う人はWinユーザーだからちょうどいい

なんとなくWEBサービスに載せにくいSWTはEclipse専用になりそうな予感
って現行でもほぼEclipse専用か
なんだかんだでSwingは業務系アプリ作りやすいのでそれなりに価値があるかと
0224デフォルトの名無しさんNGNG
文字エンコーディングにUS-ASCII、CP-1252、ISO-8859を指定して
Readerでバイトデータを読み込むと、そのbyteデータがそのまま
1バイト拡張される形でcharに格納されるのでしょうか?
0225デフォルトの名無しさんNGNG
>>224
対応する文字についてはそうだが、それ以外のbyteコードがある場合は?に変換される
0226デフォルトの名無しさんNGNG
>>225
ありがとうございました。
0227デフォルトの名無しさんNGNG
>>226
今チェックしてみたけど出力されるまでは、?に変換されずにちゃんと持ってるみたい。

一応アホなテストコードを
String a = "abcdあああああああああscdcdscsd";
byte[] b = a.getBytes( "Shift_JIS" );
Reader in =new BufferedReader( new InputStreamReader( new ByteArrayInputStream( b ), "ISO8859-1" ) );
char[] c = new char[1024];
Arrays.fill( c, '\0' );
in.read( c );
int i = 0;
while ( c[i] != '\0' ) {
System.out.print( c[i] );
System.out.print( ':' );
System.out.println( Integer.toHexString( c[i] ) );
i++;
}
0228デフォルトの名無しさんNGNG
>>227
InputStreamReaderのAPIリファレンスには含まれない文字の扱いについて
書かれていないから、実装依存である可能性は認識しておいたほうがいいと思う。
Charset#encodeには明確にデフォルトの置換文字列に置き換えるって書かれているけど。
0229デフォルトの名無しさんNGNG
>>227
>>228
ありがとうございました。

>>214
あなたの言うとおりでした。何とか問題が解決しました。
0230デフォルトの名無しさんNGNG
>>227
わざわざテストまでしてくれて、どうもありがとうございました。
0231デフォルトの名無しさんNGNG
>>228
以前のサーブレットは、国際化の仕様にバグがあったので、
この手法を使って無理やりSJISを通してたよ。
実装依存で問題が出た例はないみたいだけど、
あまりやるべきことではないな。
0232デフォルトの名無しさんNGNG
>>206
過去スレに何度か同様の報告が出てるので、なんとか探してみて下さい。
4スレくらい前で解決した例があった気がします。
そのときは質問者が余計なことをしてインストールしたファイルを上書きしたか何かで
みんな飽きれてそれ以降問答が続かなかったような気もしますがとにかくインストール自体は成功したようです。
この手の問題は、遭遇してない人には、
遭遇した人のマシンをあちこち調べでもしないとなかなかアドバイスしにくいと思うんでそこをひとつよろしく。
0233デフォルトの名無しさんNGNG
>>206 >>232の言うのを探してみた。46スレだな。
「どかせたものを戻す」辺りが意味分からん流れだったが。
まあ、普通は戻さなくても動く・・・・・・んじゃないか?

>553 名前:デフォルトの名無しさん 投稿日:04/06/01 13:07
>>>549
>同じファイルがあって邪魔って書いてあるじゃねーか
>jre以下をどかせ

>554 名前:549 投稿日:04/06/01 14:08
>>>553
>\j2sdk1.4.2_04\jre 以下を一旦どかせたら無事インストール完了しました。^^;
>どかせたものをその後元に戻したらVMのバージョン情報もかえってきました。
>ありがとうございます。
0234デフォルトの名無しさんNGNG
こんにちわ
えっと早速ですが質問です

Javaにはポインタがありませんよね?

Cで関数名の配列に対応させた関数へのポインタの配列を用意して
関数を呼び出す処理をJavaで書くにはどのようにしたら良いのでしょうか
0235デフォルトの名無しさんNGNG
インタフェースを定義して、それを実装したクラスを定義して、
そのクラスのインスタンスを生成して、インタフェースの配列を生成する。
などなど。無名クラスについて知っておくとなお良いかも。

とりあえずメソッドへのポインタは用意できないからしょうがない。
リフレクションちうのもあるけどあんま関係ない。

>Javaにはポインタがありませんよね?
イメージ的には、クラスを型にした変数はインスタンスへのポインタだよ。演算できないけど。
あんまり端的に言い放つと不毛な議論がはじまるから今後慎重にどうぞ。
0236デフォルトの名無しさんNGNG
>>235
すんません(;´Д`)
以後気を付けます
0237デフォルトの名無しさんNGNG
×インタフェースの配列を生成する。
○インタフェースの配列を生成して、配列から各インスタンスへ参照させる。
0238デフォルトの名無しさんNGNG
>>234
JAVAにも似た様なものがあります。
例えば同じクラス内のStringオブジェクトを引数とする3つのメソッドをindexの値によって、
どれか呼び出す時にはこうします。

void func() {
  String[] methodList = {"funcA", "funcB", "funcC"};
  int index;
  String text;
  ・
  ・
  getClass().getDeclaredMethod(methodList[index], new Class[1]{ String.class}).
  invoke(this, new Object[1]{text});
}

void funcA(String str) { }
void funcB(String str) { }
void funcC(String str) { }
0239デフォルトの名無しさんNGNG
MyFunction を実装した無名クラスのインスタンスを返す例。
こういう方が好きだなぁ。リフレクションと違ってコンパイル時に名前解決するし。
クラスだらけになるけど。
なお、必要なければいちいち create せずに Caller のコンストラクタで一個用意してもいいし。

public interface MyFunction {
 public void funcX(String str);
}

public class Caller {
 void func() {
  MyFunction[] funcs = { createFuncA(), createFuncB(), createFuncC() };
  //略
  funcs[index].funcX(str);
 }
 public MyFunction createFuncA() {
  return new MyFunction() {
   public void funcX(String str) {
    //場合によっては TheClass の内部にアクセスするなんやかや
   }
  };
 }
 public MyFunction createFuncB() {
  return new MyFunction() { /*略*/ };
 }
 public MyFunction createFuncC() {
  return new MyFunction() { /*略*/ };
 }
}
0240デフォルトの名無しさんNGNG
>>238
へェーへェーへェーへェー(゚д゚)つ"
それなんかの本に載ってるかい?
0241デフォルトの名無しさんNGNG
# WEBプログラミング板に妥当なスレがあるのか無いのか・・・見つからないので、もしあったら誘導してください(_ _)

Apache2.0.48、Tomcat5.0 を JK2 でつないで Solaris8 上で動作させています。
Java Servlet から日本語ファイル名の URL にリダイレクトする必要があり、
当初は UTF-8 で URL エンコードしていましたが、
お客さんがファイル名が読めないのはどうしても嫌だと言い張って、
何とか日本語表示できないかと考えています。
クライアントはとりあえず IE6 のみで。

JK2 が UTF-8 エンコードで送信するのに、
IE がファイル名を Shift_JIS としてデコードしてしまうらしく文字化けが発生するので、
下記のようにその逆の操作をはさんでみましたが

response.sendRedirect( baseURL + new String( fileName.getBytes("Windows-31J"), "UTF-8" ));

状況が改善されません。
最終的には JK2 のコードに手を加える道も残ってはいますが、
できればコード側で対処したいです。
お知恵をお貸しください。
0242デフォルトの名無しさんNGNG
>>238
>>240
リフレクションは一見便利なようだけど、安易に使わない方がいいよ。
プログラムが読みにくくなったり、パフォーマンスが落ちたりする。
正しい使い方としては、設定ファイルを読み込んで、オブジェクトを初期化する処理がある。
JavaBeansなんかも内部ではリフレクション使いまくっているし。
あとは、Javaでスクリプト言語のインタプリタを実装するときとか。
0243デフォルトの名無しさんNGNG
java.net.URLEncoderを使って、
new String( fileName.getBytes("Windows-31J"), "UTF-8" )
の部分を
URLEncoder.encode(fileName, "Shift_JIS")
としたらいけないかなぁ。

webprog板なら、このスレ
http://pc5.2ch.net/test/read.cgi/php/1087331455/l50
0244デフォルトの名無しさんNGNG
>>239
それも良い。
いいんだけど、>>238の方がいろいろ応用がきくんじゃないかな?
>>238は、少し変えればメソッドのパラメータ構成もそれぞれ別にできるし
返値もそれぞれ別にできる。
ケースによっては、外にも幾つか応用がきく。
0245デフォルトの名無しさんNGNG
>>241
無理。URLとして使用できる文字はRFCで決められている。
それ以外の文字を使うとブラウザが正しく動作しない。
画像ファイル名を日本語にすると表示しないのと同じ。

インターネットにはRFCという規格・仕様があって、
ブラウザはそれに沿って作られているので、規格外のURLは扱えません、
とでもお客さんには説明するんだね。
0246デフォルトの名無しさんNGNG
>>241
せめてローマ字で我慢してもらうしかないのでは。。。
お役に立てず申し訳ない
0247デフォルトの名無しさんNGNG
>>244
お前、>238だろ。
>238なんて単なるオナニーコードだろ。
0248デフォルトの名無しさんNGNG
違うよ。
アンタこそ>>240=>>247だろ。
このホットジャバ野郎。
0249デフォルトの名無しさんNGNG
すみません、質問です。
テキストファイルから一行読み込んでHTMLに変換し、結果を返したいのですが、

aaa;bbb;cccなら
<td>aaa</td><td>bbb</td><td>ccc</td>と返し、

aaa;j3なら
<td colspan="3">aaa</td>、

aaa;bbb;j2cccなら
<td>aaa</td><td colspan="2">bbb</td><td>ccc</td>

という解析を入れたいので正規表現で実現しようとし、
一番上は簡単に出来ましたがcolspanが絡んでくるとどうもアイディアが浮かびません。

どうしたらよいでしょう?
0250デフォルトの名無しさんNGNG
>>249
テキストファイルからHTMLに変換する仕様がなけりゃ
答えようがないべ。
単純にセミコロン(;)区切りの行を分割したいなら、
java.util.StringTokenzerを使って、
for(i = new StringTokenizer(line, ";"); i.hasMoreTokenz();) {
...
}
というようなループを作って回せ。
0251デフォルトの名無しさんNGNG
240は俺どえす。
0252デフォルトの名無しさんNGNG
line.split(";")
0253249NGNG
StringBuffer strBuf = new StringBuffer();

Pattern pattern = Pattern.compile(";");
Pattern joinPattern = Pattern.compile(".*;j[0-9].*")

String[] joinToken = joinPattern1.split(str);
String[] token = pattern.split(str);

Matcher matcher = joinPattern.matcher(str);

if (token.length == 1);
else if (!matcher.matches()) {
 strBuf.append("<tr>");
 for (int i = 0; i < token.length; i++) strBuf.append(addTDTag(token[i]));
 strBuf.append("</tr>\r\n");
}
return strBuf.toString();

で変換します。
ただこのままでは二番目と三番目の解析が出来ないので
これに追加、若しくは変更してできるようにしたいのです。

因みに
addTDTag()は渡された文字列を<td></td>ではさむだけの単純なメソッドです。
0254241NGNG
やはり難しそうですね・・・。
JK2 を書き換えたとしてもネスケでは表示できないし・・・。
一応出来る可能性はかなり低いと思ってくださいとは言ってありますが(^^;

ふとクライアントサイドにいったん処理を戻して、
スクリプトなどを使ってファイルを読みに行かせる方法を思いついたので
そっち方向で試してみたいと思います。
0255デフォルトの名無しさんNGNG
>>249
StringBuffer sb=new StringBuffer();
StringTokenizer st=new StringTokenizer(text, ";");
String prevToken=null;
while(st.hasMoreTokens()) {
  String token=st.nextToken();
  if(token.startsWith("j")) {
    int count=0;
    try {
      count=Integer.parseInt(token.substring(1, token.length()));
    } catch (NumberFormatException ex) { }
    if(count>0 && prevToken!=null) {
      sb.append("<td colspan=\"" + count + "\">");
      sb.append(prevToken);
      sb.append("</td>");
      prevToken=null;
      continue;
    }
  }
  if(prevToken!=null) {
    sb.append("<td>");
    sb.append(prevToken);
    sb.append("</td>");
  }
  prevToken=token;
}
if(prevToken!=null) {
  sb.append("<td>");
  sb.append(prevToken);
  sb.append("</td>");
}
0256249NGNG
>>255
ありがとうございます。
StringTokenizerでやるなんて考えもしませんでした。
0257デフォルトの名無しさんNGNG
>>256
ね、念の為にコンパイルして、textに適当な文を入れて、
sb.toString()を出力してみてくださ〜い(汗)
0258249NGNG
java test aaa;bb;ccc
<td>aaa</td><td>bb</td><td>ccc</td>

java test aaa;bb;ccc;j2
<td>aaa</td><td>bb</td><td colspan="2">ccc</td>

java test aaa;bb;j2ccc
<td>aaa</td><td>bb</td><td>j2ccc</td>

java test aaa;bb;j2;ccc
<td>aaa</td><td colspan="2">bb</td><td>ccc</td>

java test bb;j2;ccc
<td colspan="2">bb</td><td>ccc</td>

3番目の例も4番目のようにすればいいので
成功といっていいでしょう。本当にありがとうございました。
0259デフォルトの名無しさんNGNG
教えてください!

文字を描画するときにDrawStringを使うと一行表示できたのですが、
指定領域内で自動改行する文字列を描画するにはどうすればよいのでしょうか。

よろしくお願いいたします。
0260デフォルトの名無しさんNGNG
できません。自分で改行してください。
使ったこと無いけどこのあたりが関係するでしょう
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/awt/font/LineBreakMeasurer.html
0261デフォルトの名無しさんNGNG
まじですか・・・
これ試したのですが、フォントがDrawStringと違ってしまいます。
(いろいろ設定してみたのですが・・・)

0262デフォルトの名無しさんNGNG
アプレットでゲーム作ったんですが、
WindowsMEの人に、グラフィックが表示されないと言われました。
OSによって、絵が出ないことってありえることですか?
0263デフォルトの名無しさんNGNG
無いとは言えないけど副次的要素だな
それより調べなきゃならないことがやまほどある
Java コンソール見てもらった? VM は同じ? ブラウザは? バージョンは?
テスト環境との違いは全部当らなきゃだめ。
0264デフォルトの名無しさんNGNG
>>261
class MyLabel extends JLabel {
  public void paint(Graphics gg) {
    super.paint(gg);

    String text="適当な文章";
    Graphics2D g=(Graphics2D)gg;
    Font font=new Font("Dialog", Font.BOLD, 15);
    g.setFont(font);

    Rectangle rect=new Rectangle(100,100,100,100);
    float head=(float)rect.getX();
    float row=(float)rect.getY();
    float height=(float)g.getFontMetrics().getHeight();

    Map attrMap=font.getAttributes();
    AttributedString attrStr=new AttributedString(text, attrMap);
    AttributedCharacterIterator it=attrStr.getIterator();
    FontRenderContext frc=g.getFontRenderContext();

    LineBreakMeasurer lbm=new LineBreakMeasurer(it, frc);
    TextLayout line;
    while((line=lbm.nextLayout(rect.width))!=null) {
      line.draw(g, head,row);
      row+=height;
      if(!rect.contains(head, row+height)) break;
    }
  }
}
0265デフォルトの名無しさんNGNG
↑は、サイズ100の正方形範囲内に文字列を書く例です。
0266訂正NGNG
class MyLabel extends JLabel {
  public void paint(Graphics gg) {
    super.paint(gg);

    String text="適当な文章";
    Graphics2D g=(Graphics2D)gg;
    Font font=適当なフォント;
    g.setFont(font);

    Rectangle rect=new Rectangle(100,100,100,100);
    float head=(float)rect.getX();
    float base=(float)rect.getY();

    Map attrMap=font.getAttributes();
    AttributedString attrStr=new AttributedString(text, attrMap);
    AttributedCharacterIterator it=attrStr.getIterator();
    FontRenderContext frc=g.getFontRenderContext();

    LineBreakMeasurer lbm=new LineBreakMeasurer(it, frc);
    TextLayout line=lbm.nextLayout(rect.width);
    if(line==null) return;
    base+=line.getAscent();
    while(rect.contains(head, base)) {
      line.draw(g, head, base);
      base+=line.getDescent();
      line=lbm.nextLayout(rect.width);
      if(line==null) break;
      base+=line.getAscent();
    }
  }
}
0267デフォルトの名無しさんNGNG
おぉ!

すばらしいです!
英数は途中で途切れないですし、理想的な文字描画になりました。

自分が書いたときはLineBreakMeasurerのところで処理に時間が
掛かっていたのですが、これだと速いです。

感謝!
0268デフォルトの名無しさんNGNG
java.util.Hashtableのようなんだけど、
put()する側がkeyを指定するのではなく
ユニークなものを自動発行してくれるようなのってありますか?

なければつくるのですが、
標準的なものがあればその方がいいので。
0269268NGNG
keyは整数もしくは文字列に限定したいので、value自体をkeyにはできません。
0270デフォルトの名無しさんNGNG
>>268
ArrayList
0271268NGNG
270さんレスありがと

ArrayListはjava.util.ArrayListのことだと思いますが、
add(Object o)した直後にsize()することで確かにoに対するkeyはもらえます。
でもこの操作はatomicでないし、要素をremove()すると破綻するのでダメなんです。
0272デフォルトの名無しさんNGNG
>>268
単にユニークなキーならシーケンスを使ってもよいと思うけど、
セッションIDみたいな、予測不可能なキーを生成したいのであれば、
java.security.SecureRandomがよい。
0273デフォルトの名無しさんNGNG
>>271
だとすると自分で実装になるかね。
頑張れ。
0274デフォルトの名無しさんNGNG
>>271
element: 任意の要素
map: HashMap
rnd: SecureRandom

synchronized(map) {
for (;;) {
Integer key = new Integer(rnd.nextInt());
if (map.contains(key)) {
continue;
}
map.put(key, element);
break;
}
}

こんな感じかな。
上は書き込み処理だけど、アトミックな動作を保証するなら
読み込みもsynchrinizedしないといけない。
Hashtableはそれ自体が同期化されているので、
同期化されていないHashMapを利用して、それをラッピングするような
クラスを作って実装するのがよいぞ。
0275268NGNG
みなさんどうも
がんばって自前で実装してみます。

ところで要素の数はたかだか数千なんですが、このコードは手抜きすぎですか?
int key = value.hashCode();
while (this.containsKey(Integer(key))) { key++; }
0276デフォルトの名無しさんNGNG
>>275
手抜き杉。
それだと、同じ値のvalueをたくさん突っ込むと。
whileのループを回る回数がどんどん増えていくぞ。
そもそも、hash codeってそういう使い方をするためのものじゃないし。
0277デフォルトの名無しさんNGNG
>>267
ただ、あのコードはいろんなフォント(属性)が入り混じった
テキストを枠内描画する為のものでして、単一フォントのテキストなら
GraphicsとFontMetricsだけを使って自前で位置計算した方が
いいと思います。
0278デフォルトの名無しさんNGNG
と思いましたが、外にもっと便利なやり方があるかもしれません。
0279デフォルトの名無しさんNGNG
と思いましたが、他にやり方はありません。
0280デフォルトの名無しさんNGNG
↑ニセモノです。
0281デフォルトの名無しさんNGNG
ネットワークの勉強のため「javaネットワークプログラミング」っていう本を買ったんですが
この本に載ってる下のようなプログラムを実行しようとするとなぜかエラーになってしまいます。実行する際はコマンドプロンプトを2つ立ち上げ、それぞれのプロンプトで
サーバー側のプログラムとクライアント側のプログラムをコンパイルして
実行しました。クライアント側の実行には
本にも書かれてるように「java client 自分のIP username」
という風にしました。しかし、何度やっても接続ができずタイムアウトエラーになってしま
います。なぜこうなるんでしょうか?
考えられる原因を教えてください。


http://private.rocketbeach.com/~mms1617/2ch/upload/dat/0004.txt
http://private.rocketbeach.com/~mms1617/2ch/upload/dat/0002.txt
0282デフォルトの名無しさんNGNG
>本にも書かれてるように「java client 自分のIP username」
>という風にしました。
初心者は自分の行ったことをもっと正確に報告するように心がけましょう。

とりあえず
1) IP が間違ってる。 localhost ではうまくいったのか?
2) ノートンセキュリティが邪魔してる
0283282NGNG
自分のIPは診断君で確認しました
(ちなみに自分のIPは202.71.73.101でした)
それと、ノートンは常駐させてません
ウィルスチェックにはAVG6.0というのを常駐させてますが一応
AVGを切ってから再び実行してみたんですがまったく変化が無かったです

一応実行文とエラーの際表示されたメッセージ載せときます
D:\java prog\samples\smp2>java client 202.71.73.101 unko
java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at client.main(client.java:33)
0284デフォルトの名無しさんNGNG
案の定な回答でんな。
要するに最初から IP アドレスも含めてコマンドラインに打った全文を書いときましょうということですのよ。

診断君で表示されるのは、ルータがプロバイダから貰ってる IP アドレスでしょうたぶん。ダイアルアップなどのナマ接続でない限り。
あなたのマシンが直接属するネットワークはルータより内側だから、通用する IP アドレスは
192.168.x.x と 127.0.0.1 ですよ。

[ 診断君 ] −インターネット− [202.71.73.101 ルータ 192.168.0.1(例) ] −LAN− [ 192.168.0.2(例) あなたの PC 127.0.0.1 ]

大体こんな感じ。
client.class から 202.71.73.101 へのリクエストは、自分の IP ではなくルータへのリクエスト。
インターネットから一旦外に出てもっかい中に入ろうとするような感じで伝達される。
しかしルータは 12345 番のポートをあけていない。あけてるのは内側の 192.168.0.2 。だから到達しない。だからタイムアウトになる。
到達させるためには到達されうる IP アドレスをしてしなければならない。
もしインターネットの向こうにいる友達などに、192.168.0.2 で立ち上がってるサービスを公開したい場合は、
ルータに NAT やらなにやらの設定を行わなければならない。板違いなのでよそで聞いてね。
0285デフォルトの名無しさんNGNG
ちなみに w2k 系なら ipconfig、win98 なら winipcfg。
これらで表示されるのが自分の IP アドレス。
0286デフォルトの名無しさんNGNG
>>283
IPアドレスを外部に公開する設定を行ってない限り
IPアドレス指定ではServerSocketにつながりません。
localhostにしてください。

D:\java prog\samples\smp2>java client localhost unko

これなら上手くいきます。
0287デフォルトの名無しさんNGNG
 ストリームクラスをラップするストリームクラスの close() メ
ソッドを見てみると、自分が保持しているストリームの close を
呼ぶとか、underlying なストリームを close するとかいう説明の
ものがある一方、ただ単にストリームを閉じるとだけ書いてあるも
のがあります(例えば 1.4.2 のドキュメントでは
InputStreamReader がそうでした)。

 これはラップしたクラスを close した後に、ラップされたクラ
スも明示的に close しなければならないということなのでしょう
か。それともラップしたクラスの close を呼べば自動的に下層の
クラスも close されていくことが保証されているのでしょうか。
すみません、よろしければお教え下さい。
0288デフォルトの名無しさんNGNG
>>287
ストリームのラッパ系のクラスは
ラップされたクラスも自動的にcloseする。
安心して使ってくれたまい。
0289デフォルトの名無しさんNGNG
>>288 今の実装がそうなっているのはそうだとして、
closeされることが誰か/何かによって保証されているの?
0290287NGNG
>288
 クラスによってドキュメントの記述が違うので、
その挙動のルールがどこかで規定されているといいのですが…。
そうでないと、「どうして close してないんだ!リソースリークだ!」
といちゃもんをつけられたときに言い返せないのです…(⊃д`)
0291デフォルトの名無しさんNGNG
>>290
ラップするストリームのクラス(FilterInputStreamなど)に内部ストリームを取り出す
メソッドが無いというのが全てを物語っていると思うが。
0292287NGNG
>291
 ラッパーのコンストラクタにラップされるストリームを渡すとき
にはそれをあらかじめ変数に入れておいて、取っておかなくてはな
らないのだろうか、と考えていたんです。まぁサンプルコードとか
でも直接 new した一時オブジェクトを入れているし、大丈夫なん
でしょうけど…。

 いろいろありがとうございました。上の人に「一番外で close
するだけでいいよね?」と言質を取ろうと思います(w
0293デフォルトの名無しさんNGNG

簡単に手に入るものは、載ってるようで載ってない。書籍の方に何かあるのかな。
http://java.sun.com/j2se/1.4/ja/docs/ja/relnotes/devdocs-vs-specs.html

http://java.sun.com/docs/books/tutorial/essential/io/overview.html
ここの最後に「gc するとき勝手に閉じる」って書いてあるから、
とりあえず「gc はされるんでリークは解消されます」とは言えるんじゃない?だめ?
0294287NGNG
>293
 レスありがとうございます。

>「gc はされるんでリークは解消されます」
 いや、それだと close() は全くしなくていいってことになっちゃうので…(w
「gc されるんだからいいだろうが(゚Д゚)ゴルァ!!」とはむちゃくちゃ言いたいんですけどね…。

 そういえばふと思ったんですが、

new FileOutputStream("c:\\hoge");

 みたいにして一時オブジェクトを生成すると、gc されるかプロ
グラムが終わるまでファイルは開きっぱなしなんでしょうかね?
0295デフォルトの名無しさんNGNG
InputStream#close()
>Closes this input stream and releases any system resources associated with the stream.
>この入力ストリームを閉じて、そのストリームに関連するすべてのシステムリソースを解放します。

これだけじゃ不満なのか?
0296デフォルトの名無しさんNGNG
>>294
試せばすぐ分かるがyes.
0297デフォルトの名無しさんNGNG
もっと怖いのはこれ。
Reader in = new InputStreamReader(new FileInputStraem(filename), "シフトJIS");

UnsupportedEncodingException?
0298287NGNG
>295
 サブクラスで close がオーバーライドされている場合、スーパ
ークラスのドキュメントは使えないと思うので…。

 今ちらちらドキュメントを見てみると、説明が Close the
stream. だけってのは Reader Writer のサブクラス(の一部)だ
けみたいですね。Stream 系はきちんと書いてあるっぽい…。

>296
 試せばよかったですね。不精してしまってすみません。

>297
 例外処理の後も filename のファイルが開きっぱなしということ
でしょうか…?やっぱり finally でラップの全てのレベルで
close しないといけないのかな…でも非常に煩雑だしなぁ…('A`)
0299デフォルトの名無しさんNGNG
>>298
InputStream の一般的な規約だから、
InputStream を継承するクラスは基本的に >>295 を守る。
普通は >>295 を守るし、普通は守らない場合は考慮しない。
OutputStream や Reader、 Writer も同様。

っつーかネストしたストリームも全部 close するのって
石橋を叩いて叩いて叩きまくって、しまいには壊すタイプだな。
普通は2重closeで例外食らうし。
0300デフォルトの名無しさんNGNG
> サブクラスで close がオーバーライドされている場合、スーパ
>ークラスのドキュメントは使えないと思うので…。

逆じゃないのか?ドキュメントに明確に記述してある場合以外は
スーパークラスの仕様が適用されると考えるのが自然。interfaceも同様。

Reader/Writerもthe streamってのはそれがラップしてるものに他ならない
わけだから、それを閉じるってことは・・・
と考えていけば外側のストリームのclose()ですべてOKと考えられる。

厳密なことを言い出すとキリが無い(あるいは不安にさせるSunが悪いか)が
外側のストリームclose()だけで良いってのが非常に一般的だ。

>やっぱり finally でラップの全てのレベルでclose しないといけないのかな…

原発でも制御しない限りそんな必要はない。

ただし、finallyでのclose()だけは必須。
0301デフォルトの名無しさんNGNG
ちなみに、「ドキュメントに明確に記述してある」の例は、
java.util.IdentityHashMap
0302287NGNG
 そうですね、よく考えたらスーパークラスの仕様を参考にできな
いんだったら interface の存在意義がなくなっちゃいますもんね…。
みなさんいろいろありがとうございました。とても勉強になりました。
0303282NGNG
ありがとうございました
0304デフォルトの名無しさんNGNG
RMIで、無名パッケージに全部コード書いて動作させると動くんですが、
パッケージ化させるとクラスパスの関係か?なんだか知りませんが、動作しません。

どうしたらいいですか?
0305282NGNG
と、一応実行できてうれしいんですが
実はまだよくわかってません
診断君ででてくるIPと
ipconfigとかで出てくるIPは
いったいどういう違いがあるんですか?
グローバルなIPとローカルなIPみたいな関係ですか?
でも自分は自宅から光でインターネットにつないでるだけで
LANにはつないでないはずなんでローカルなIPなんてあるとは
思えないんですが・・・。
あほみたいな質問ですいません。
0306デフォルトの名無しさんNGNG
あほだし、あほ故にスレ違いにも気づかない
0307デフォルトの名無しさんNGNG
>>306
そんなこといわずに。教えて。ください。おね。がいします。
0308デフォルトの名無しさんNGNG
java.utiljのこと、コレクションのことなんだけど

Hashtable使うんだったらHashMap
HashMap使うんだったらTreeMapですよねえ?
0309デフォルトの名無しさんNGNG
>>308
いちがいには言えない
0310デフォルトの名無しさんNGNG
きちがいには言えない
0311名前は開発中のものです。NGNG
javaでうんこをパッケージングしたいんですけど。
クラス設計はどうしたらいいかな。
0312デフォルトの名無しさんNGNG
いまJavaでプログラムをしていたのですが、
わからないところがあるので質問させてください。

コンソールから文字列を入力させて、CSV形式で保存したいと考え、
File csv = new File("output.txt");
BufferedWriter wr = new BufferedWriter(new FileWriter(csv, true));
InputStreamReader sr = new InputStreamReader(System.in);
として、
while(true) {
i = sr.read();
if (i == '\n'){
break;
}
else{
wr.write((char)i);
}
}(このあとコンマをいれたり、flushしたり

というふうにしたのですが、Enterを押してwhileを抜けると
ファイルにも改行が入力されてしまいます。
回避する方法はないでしょうか?
0313デフォルトの名無しさんNGNG
>>312 環境がわからないからそのものずばりは言えないけど
\r, \n とかCR, LFとか大丈夫? 何が入力されて
何が出力されているかちゃんとモニタしてごらん。
でも、自分だったらreadLine使って人任せにする。
0314デフォルトの名無しさんNGNG
>>312
自分が試してみた所、(BufferedWriterをSystem.outから構築)
Writerをflush()しても改行されなかった。(末尾に改行コードがない)
おそらく、そちらの環境では改行すると\r\nと二文字入るのではないかな?
0315デフォルトの名無しさんNGNG
>>305
診断君ででてくるIPとipconfigとかで出てくるIPは同じです。
IP以外に問題があるのです。
ファイアーウォールがあると、インターネット側からのアクセス
を自動的に排除してしまいます。
またプロバイダによっては、同じく排除するように
自動設定してるところもあります。(安全の為に)
0316デフォルトの名無しさんNGNG
>>313
>>314
環境を書くのを忘れていました。すいません
win2000pro j2sdk1.4.2_05 パスを通してコマンドプロンプトでコンパイルしています。 

windowsなので、改行コードは\r\nの2文字が入ってるようです。
0317 NGNG
Java1.5ていつでるの?しばらくプログラムからはなれてたけど、もう出てるのかと思った。
0318デフォルトの名無しさんNGNG
5.0だっつってんだろぉぉー
0319デフォルトの名無しさんNGNG
java3Dのアプレットを表示しようとするとなぜか
java.lang.NoClassDefFoundError:javax/media/j3dGroup
というのが表示されてアプレットがエラーになってしまいます
なぜなんでしょうか?
一応java2SDKはインストールしています
osはwindows2000です
0320305NGNG
>>315
ありがとうございました
0321デフォルトの名無しさんNGNG
>>319
java3Dはjava2SDKには付属していません。
0322SunNGNG
>>308
ごめん。HashtableとVectorは見なかったことにして
0323デフォルトの名無しさんNGNG
深夜のネタ大会
0324デフォルトの名無しさんNGNG
ネタっていうか起きてたっていうか
0325デフォルトの名無しさんNGNG
>>316 line.separatorが\r\nって自分でわかってるのなら、
行末の判定を\nだけでやるのは駄目ってのは理解できるよね。
0326デフォルトの名無しさんNGNG
>>322
つーかそれぞれ同期が入ってる分別物だろ
StringBufferとStringBuilderくらい違う

単純にこれをつかえというのは愚か
場合に応じて使い分けるのが正解
0327デフォルトの名無しさんNGNG
ネットゲームの課金問題で運営側と裁判中
ログよむと面白い
荒らすなよwww
ttp://ryozanpaku.s59.xrea.com/






0328312=316NGNG
>>325
そうでした・・・。理解できてます。

そこでまたわからないのですが、
行末の判定を\r\nの2文字でやるにはどうしたら良いんでしょうか。
0329デフォルトの名無しさんNGNG
File csv = new File("output.txt");
BufferedWriter wr = new BufferedWriter(new FileWriter(csv, true));
InputStreamReader sr = new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(sr);

while(true) {
  String line=br.readLine();
  if(line.equals("")) break; //enterキーのみの空文で終了

  (lineを加工=このあとコンマをいれたり)
  wr.write(line);
  wr.flush();
}
0330デフォルトの名無しさんNGNG
HashMapとTreeMapってどっちが出し入れ速いかな?
0331デフォルトの名無しさんNGNG
>>329 readLine()がnullを返したときの処理が抜けてるよ。
0332デフォルトの名無しさんNGNG
>>331
特別な事をしない限り、コンソール入力ストリームに終了はない。
0333デフォルトの名無しさんNGNG
>>330
HashMapの実装の仕方とその扱うデータ集合との相性によって
大きく異なるが、大規模なデータになるほど理論上はHashMapの方が速い。
0334デフォルトの名無しさんNGNG
>>333
サンクス。
上の方でHashMapならTreeMapみたいな事書いてあるの見たから、どっちが良いのかなとちょっと気になった。
0335デフォルトの名無しさんNGNG
>>332 そう? 標準入力を要求するプログラムにパイプでデータを流すとか
特別なことじゃないと思うけどな。type con | java Hogehogeで実行して
^Z打ったときにnullが返るのってそんなに特別?
0336デフォルトの名無しさんNGNG
HashMapとTreeMapは、SortedMapインタフェースが保証する機能、
つまり、キーの順序付けが必要かどうかで使い分けるんじゃないかな。
0337335NGNG
type conは例が悪いか。パイプの元のプログラムがエラーで終了する
ことってかなりありえるよねってこと。
0338デフォルトの名無しさんNGNG
while(true) {
  String line=br.readLine();
  if(line==null || line.equals("")) break;

  (lineを加工=このあとコンマをいれたり)
  wr.write(line);
  wr.flush();
}
0339デフォルトの名無しさんNGNG
>>336
そうだよ。そんなことこのスレの住人なら皆知ってるよ。
0340デフォルトの名無しさんNGNG
違うよ。それだと、逆に言えばキーの順序付けが必要でなかったら
Hashを使えって事になっちゃうじゃん。
0341デフォルトの名無しさんNGNG
<%@ page language="java" contentType="text/html;charset=Shift_JIS" %>
<html>
<head><title>forward.jsp</title></head>
<body>
<jsp:forward page="http://www.yahoo.co.jp" />
元のページ。
</body>
</html>

こうやっても飛ばないのですがなぜでしょう。
0342デフォルトの名無しさんNGNG
なっていいじゃん。
0343デフォルトの名無しさんNGNG
TreeMapの方が速いなら、順序づけがあろうと無かろうとHashMapの代替に使っても良いかなと思ったのですよ
0344デフォルトの名無しさんNGNG
>>341
jsp:forwardにしろRequestDispatcher#forward()にしろ、
別サーバ上のリソースにフォワード出来ない。
response.sendRedirect()しましょう。
0345デフォルトの名無しさんNGNG
>>343
それじゃ HashMap の存在意義ってなんだよ
つか構造考えてみるなり 手元の VM で計測してみるなりすれば?
0346ゲソNGNG
>>341
jsp:forwardはサーブレットエンジン内部で転送するものだけぇ、
同じサーブレットエンジン内のページにしか飛ばせん。
responseのsendRedirectメソッドを使いんさい。
こっちはリダイレクトっていって、クライアントのブラウザに
別のURLに接続しなおさせるものだけぇ、別のサイトに対しても使えるだわい。
0347ゲソNGNG
>>343
TreeMapは2色木、HashMapはハッシュ表だけぇ、
TreeMapから要素を取り出すために要する時間は、
全要素数nに対してlog(n)時間かかる。
HashMapはnの大きさに関係なくほぼ一定の時間で取り出せる。
ちゅうことは、要素がようけ入っとるほどHashMapの方が速い。
要素が少ない(10以下くらい)なら、Map使うよりかは、
配列を線形探索した方が多分速いで。
0348デフォルトの名無しさんNGNG
10万個の要素から1万回取り出す操作で試してみたが、気にするほどの速さの差は無いっぽい。
確かにHashMapの方が速いんだけど、それでもミリ秒単位。
キーも値もStringだからかな。
0349デフォルトの名無しさんNGNG
hash 作る時間が関係しとるんだろう
それにしても値は関係ないだろなに言うとんねん
0350デフォルトの名無しさんNGNG
いや、データ量の多いクラスがキーなら、差がもっと出るのかなと
0351デフォルトの名無しさんNGNG
自分が馬鹿なのかと思って一生懸命意味考えてます私
0352デフォルトの名無しさんNGNG
横からすんません、質問をば
LinkedHashMapって列挙も早いよって理解でいいんですかね
0353デフォルトの名無しさんNGNG
>>352
Mapに登録した要素の順序が問題になるときに使うクラス。
ttp://www-6.ibm.com/jp/developerworks/java/020111/j_j-mer0821.html
0354デフォルトの名無しさんNGNG
>>350
実行時間がlog(n)オーダーというのは、
本当にデータ数が大きくなったら、実行時間の増加がほとんどなくなるということだよ。
データ量が無茶苦茶大きい場合はどの種類のMapもあんまり違いはないかも。
ただ、理論的にはHashMapが全般に速いはずなので、後々扱うデータの数が増えることを考えたら
とりあえずHashMapを使うのがよい。
ただし、辞書順で表示しないといけないとか、範囲で検索するとか、
要素を登録した順序を維持したいとか、単純なMapを超える特性が求められる場合は
他の物を使った方が効率が良くなる場合がある。
0355デフォルトの名無しさんNGNG
盆休みで暇な方、ここの418のやつ作ってくれませんか?
http://pc5.2ch.net/test/read.cgi/tech/1089527630/

419さんがつくってくれたんだけど、コンパイルでエラーがおきちゃいます。
0356デフォルトの名無しさんNGNG
>>355
vec.deleteになってるところを、vec.removeにしろ
0357305NGNG
java3Dのアプレットを表示しようとするとなぜか
java.lang.NoClassDefFoundError:javax/media/j3dGroup
というのが表示されてアプレットがエラーになってしまいます
なぜなんでしょうか?
一応java2SDKはインストールしています
java3Dもインストールしてます
(java3d-1_3_1-windows-i586-directx-sdk.exe
っていうのと
java3d-1_3_1-windows-i586-opengl-sdk.exe
っていうやつです)
原因としてはいったい何が考えられますか?
どなたかアドバイスを・・・

0358デフォルトの名無しさんNGNG
>>357
ttp://www6.ocn.ne.jp/~tmitsu/Java/Config/j3d.html
0359357NGNG
>>358
Java2 Runtime Environment
っていうやつをダウンロードしたいんですが
ダウンロードするところがわかりません
すいませんが直でリンク張ってもらえます?
0360デフォルトの名無しさんNGNG
>>359
SDK入れてるなら入ってるから。
0361名前は開発中のものです。NGNG
JAVAで簡単なキー入力のゲームを作っています。
ときどきウインドウの大きさを変えたりなんかして、
アプレットにフォーカスがなくなり、キー入力が聞かなくなります。
いろんな頁で「画面をクリックしてみてください」と書いてありますが、
キーボードのフォーカスがなくなったら、アプレットに「画面を
クリックしてください」と表示したいのです。
addFocusListener(this);
を使用すればいいというところまでは分かったのですが、何を登録して
いいのかわかりません。この場合画面でしょうか。patnt(g)のg?
それともアプレット自体を登録する方法があるのでしょうか。
よろしくお願いします。
0362デフォルトの名無しさんNGNG
まず想像しましょう。
'addFocusListener' なんだから、当然 FocusListener を add するんです。

でもきちんと知識を蓄えましょう。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
該当クラスの addFocusListener についての情報を見てください。
載ってなければ親クラスの頁を辿っていくと書いてあります。

>それともアプレット自体を登録する方法があるのでしょうか。
FocusListener は インタフェースですから、
Applet を継承したクラスで、ついでに FocusListener を実装しとけば可能です。
0363357NGNG
>>360
そうなんですか?
じゃあなんでjava3dアプレットが表示できないんでしょう・・・?
うーん・・・わからん。
0364デフォルトの名無しさんNGNG
>>363
ちゃんと下まで読んで設定はしたのか?
0365デフォルトの名無しさんNGNG
>>363
これを見て、
ttp://www6.ocn.ne.jp/~tmitsu/Java/Config/j2re_win.html#Part5
J2SDKをインストールしたディレクトリを指定すればいいと違うのか?
ちなみにこのウィンドウは、コントロールパネルのJava Plug-inから開ける。
0366デフォルトの名無しさんNGNG
RMI/IIOP やっとるんですが、なんかバグっぽいのを発見しました
これは既知なのか、それともバグではなくてちゃんとした仕様なのか・・・
どなたか情報をいただけたら幸いです。

リモートメソッドを呼ぶとき String→String or Integer な HashMap を渡しているのですが、
value の方に "" リテラルがあると転送中に例外が発生するのです。
これが何故か、new StringBuffer().toString() とか new String("") だと問題ない。
どんな例外だかコードが出るだけなのでよく分かりませんが、展開中に失敗しているような感じ。

他にも "" を送っているところはあると思うのですが(ちと膨大なのでまだつかめてません)、
何故か特定の部分でだけ起こるっぽい。同時に送っているほかのデータに関係しているのか・・・

こんなの聞いたことある方いらっしゃいますか?
0367デフォルトの名無しさんNGNG
Javaはぬるぽって本当ですか?
0368287NGNG
 度々すみません。

 HttpURLConnection のことなのですが、APIドキュメントを見る
と、そこから得られた InputStream、OutputStream のいずれかを
close した場合、インスタンスに関係するネットワークリソースは
開放されるが、共有された下層の持続的なコネクションは開放され
ない、とあります。

 disconnect() を使うとその下層のソケットが開放されることも
ある、と書いてありますが… disconnect() の説明をみると、サー
バに当分リクエストを発行しないだろうことを示す、とあります。

 HttpURLConnection を使用した場合、InputStream か
OutputStream を閉じれば disconnect() は呼ばなくてもよいので
しょうか。それとも何かの基準で呼ばなければならないのでしょう
か。

 すみません、お答えいただけますと幸いです。
0369デフォルトの名無しさんNGNG
>>368

HTTP の keep-alive について調べてみよう。
0370デフォルトの名無しさんNGNG
いきなりHttpURLConnectionから入ると逆に難しいんじゃない?
httpプロトコルの仕様見たほうが簡単だと思うよ、すっごく単純だから

やったら畏まった記述してるけど斜め読みすればさくっと
あとは右脳にまかせるんだ、毎夜好きなあの子を淫らに妄想して自主トレできる奴はそのまま、好きなあの子を機械臭い中高年のおっさんにかえて、B80の小ぶりなブラジャーをあけずにPort80開くんだ!!!そこがストリームだあああ
0371デフォルトの名無しさんNGNG
質問です。
行列の掛け算の消費メモリ、スピードを出来るだけ節約したく思っています。
以下2種類のクラスを記しますが、
クラスAの方がBよりわずかにスピードは上なのですが、メモリをかなり消費してしまいます。
その理由がわかりません。どこか無駄のある処理をしている部分はありますでしょうか?
0372続きNGNG
**************
public class A {

public static void main(String[] args) {
System.out.println("残りメモリ1=" + Runtime.getRuntime().freeMemory());
int limit=300;
long start = System.currentTimeMillis();
double[][] A=new double[limit][limit];double[][] B=new double[limit][limit];double[][] C=new double[limit][limit];
for(int i=0;i<limit;i++){
A[i][i]=1.0; B[i][i]=1.0;
}
C=times(A,B);
long end1 = System.currentTimeMillis();
long time1 = end1 - start;
System.out.println("time1=" + time1);
System.out.println("残りメモリ2=" + Runtime.getRuntime().freeMemory());
}
0373デフォルトの名無しさんNGNG
俺のナレーションでみんな出そうなっただろ?恥ずかしがるな、お前だけじゃない
0374続きNGNG
public static double[][] times(double[][] A, double[][] B) {
int gyou = A.length;i nt gyou2 = A[0].length; int retu = B[0].length;
double[][] ans = new double[gyou][retu];
for (int i = 0; i < gyou; i++) {
for (int j = 0; j < retu; j++) {
double d = 0;
for (int k = 0; k < gyou2; k++) {
d += A[i][k] * B[k][j];
}
ans[i][j] = d;
}
}
return ans;
}
}
**********

0375続きNGNG
public class B {

public static void main(String[] args) {

System.out.println("残りメモリ1=" + Runtime.getRuntime().freeMemory());
int limit = 300;
long start = System.currentTimeMillis();
matrixM A = new matrixM(limit);
matrixM B = new matrixM(limit);
matrixM C = new matrixM(limit);
for (int i = 0; i < limit; i++) {
A.put(i, i, 1.0);
B.put(i, i, 1.0);
}
C = A.times(B);
long end1 = System.currentTimeMillis();

long time1 = end1 - start;
System.out.println("time1=" + time1);
System.out.println("残りメモリ2=" + Runtime.getRuntime().freeMemory());
}
}
0376続きNGNG
class matrixM {
double data[][];
int ncol, nlin;

public matrixM times(matrixM x) {
matrixM ans = new matrixM(nlin);
for (int i = 0; i < ans.nlin; i++) {
for (int j = 0; j < ans.ncol; j++) {
double d = 0;
for (int k = 0; k < ncol; k++) {
d += data[i][k] * x.data[k][j];
}
ans.data[i][j] = d;
}
}
return ans;
}
public matrixM(int n) {
data = new double[n][n];
ncol = nlin = n;
}
public void put(int i, int j, double d) {
data[i][j] = d;
}
}

**************************************************
0377デフォルトの名無しさんNGNG
>>368
HTTP1.1は、持続的接続がデフォルトの設定になっています。
1.0以前は、同じホスト内のどれかのファイルパスを対象とする送受信が
終わると同時にその接続はcloseされてしまい、その度にソケット接続を
やり直さねばなりませんでしたが、1.1以降は一度そのホストにアクセスしたら
しばらく接続状態が続き、同じソケットで複数の送受信ができる様になり、
いちいちソケット接続をやり直さなくてもよくなりました。
そうなると新しいcloseの基準が必要となりますが、一つは一定時間送受信が
無いと接続を終了するというものであり(timeout)、もう一つは
JAVA式に言えばリクエストプロバティのConnectionフィールドにcloseを
記入してリクエスト送受信を行う事です。closeを含めるとそのリクエスト送受信を
最後に接続が終了する事を相手サーバーに伝える事になります。
disconnect()とは、リクエストヘッダにConnection: closeを含める事なのです。
よって次のInputStreamかOutputStreamの実行で、そのソケット接続は終了する事を
相手サーバーに伝えます。
disconnect()の使用の基準は、相手サーバーに明確に接続終了を伝える事がアプリケーション上
必要なケースか、又は相手サーバーに無駄なaccept待機を使わせない様にする為の礼儀です。
0378デフォルトの名無しさんNGNG
>>371
double[][] ans = new double[gyou][retu];
これが無駄です。

double[][] ans = new double[gyou][retu];
↓
double[][] ans = new double[ gyou * retu ];

ans.data[i][j] = d;
↓
ans[ j*i + j ] = d;

こうした方がいいでしょう。
0379間違えた 訂正NGNG
>>371
double[][] ans = new double[gyou][retu];
これが無駄です。

double[][] ans = new double[gyou][retu];
↓
double[][] ans = new double[ gyou * retu ];

ans.data[i][j] = d;
↓
ans[ i*retu + j ] = d;

こうした方がいいでしょう
0380287NGNG
 みなさんいろいろお返事ありがとうございます。persistent
connection って言葉からもしかしたら TCP/IP コネクションを使
いまわすやつのことかな…と想像はしていたんですが、やっぱりそ
うなんですね。

> disconnect()とは、リクエストヘッダにConnection: closeを含める事なのです。
> よって次のInputStreamかOutputStreamの実行で、そのソケット接続は終了する事を
> 相手サーバーに伝えます。

 …ということは、disconnect() を呼んでも即座に TCP/IP コネ
クションが切断されるわけではないんですね。HTTPリクエストが勝
手に発生しても困るから当たり前なのかもしれませんが…意外でした。

 …で、本題なのですが…一般的に(といっても何をもって一般的
というのかはわかりませんが…)、disconnect() しない、という
ことは普通なのでしょうか。それとも、FileStream を閉じないな
どのしてはいけないレベルのことなのでしょうか…?どうもそこら
へんの常識がわからなくて…。「コネクションやストリームは開い
たら閉じなければならない」という原則に反するので、いいものか
どうか迷っているのです…。
0381378-379NGNG
すいません。上を前面的に撤回します。
パッと見してans.data[i][j]が、ans.data[i][i]に見えてしまいました。
んな事するわけないですな。
0382デフォルトの名無しさんNGNG
質問です。
行列の掛け算の消費メモリ、スピードを出来るだけ節約したく思っています。
以下2種類のクラスを記しますが、
クラスAの方がBよりわずかにスピードは上なのですが、メモリをかなり消費してしまいます。
その理由がわかりません。どこか無駄のある処理をしている部分はありますでしょうか?
0383デフォルトの名無しさんNGNG
**************
public class A {

public static void main(String[] args) {
System.out.println("残りメモリ1=" + Runtime.getRuntime().freeMemory());
int limit=300;
long start = System.currentTimeMillis();
double[][] A=new double[limit][limit];double[][] B=new double[limit][limit];double[][] C=new double[limit][limit];
for(int i=0;i<limit;i++){
A[i][i]=1.0; B[i][i]=1.0;
}
C=times(A,B);
long end1 = System.currentTimeMillis();
long time1 = end1 - start;
System.out.println("time1=" + time1);
System.out.println("残りメモリ2=" + Runtime.getRuntime().freeMemory());
}
0384デフォルトの名無しさんNGNG
public static double[][] times(double[][] A, double[][] B) {
int gyou = A.length;i nt gyou2 = A[0].length; int retu = B[0].length;
double[][] ans = new double[gyou][retu];
for (int i = 0; i < gyou; i++) {
for (int j = 0; j < retu; j++) {
double d = 0;
for (int k = 0; k < gyou2; k++) {
d += A[i][k] * B[k][j];
}
ans[i][j] = d;
}
}
return ans;
}
}
**********
0385デフォルトの名無しさんNGNG
public class B {

public static void main(String[] args) {

System.out.println("残りメモリ1=" + Runtime.getRuntime().freeMemory());
int limit = 300;
long start = System.currentTimeMillis();
matrixM A = new matrixM(limit);
matrixM B = new matrixM(limit);
matrixM C = new matrixM(limit);
for (int i = 0; i < limit; i++) {
A.put(i, i, 1.0);
B.put(i, i, 1.0);
}
C = A.times(B);
long end1 = System.currentTimeMillis();

long time1 = end1 - start;
System.out.println("time1=" + time1);
System.out.println("残りメモリ2=" + Runtime.getRuntime().freeMemory());
}
}
0386デフォルトの名無しさんNGNG
class matrixM {
double data[][];
int ncol, nlin;

public matrixM times(matrixM x) {
matrixM ans = new matrixM(nlin);
for (int i = 0; i < ans.nlin; i++) {
for (int j = 0; j < ans.ncol; j++) {
double d = 0;
for (int k = 0; k < ncol; k++) {
d += data[i][k] * x.data[k][j];
}
ans.data[i][j] = d;
}
}
return ans;
}
public matrixM(int n) {
data = new double[n][n];
ncol = nlin = n;
}
public void put(int i, int j, double d) {
data[i][j] = d;
}
}
*************************************************
0387デフォルトの名無しさんNGNG
みなさんいろいろお返事ありがとうございます。persistent
connection って言葉からもしかしたら TCP/IP コネクションを使
いまわすやつのことかな…と想像はしていたんですが、やっぱりそ
うなんですね。

> disconnect()とは、リクエストヘッダにConnection: closeを含める事なのです。
> よって次のInputStreamかOutputStreamの実行で、そのソケット接続は終了する事を
> 相手サーバーに伝えます。

 …ということは、disconnect() を呼んでも即座に TCP/IP コネ
クションが切断されるわけではないんですね。HTTPリクエストが勝
手に発生しても困るから当たり前なのかもしれませんが…意外でした。

 …で、本題なのですが…一般的に(といっても何をもって一般的
というのかはわかりませんが…)、disconnect() しない、という
ことは普通なのでしょうか。それとも、FileStream を閉じないな
どのしてはいけないレベルのことなのでしょうか…?どうもそこら
へんの常識がわからなくて…。「コネクションやストリームは開い
たら閉じなければならない」という原則に反するので、いいものか
どうか迷っているのです…。
0388デフォルトの名無しさんNGNG
>>387

WWWブラウザ使ったことないのか(w

1回の接続で1つのリソースしか取ってこないんなら毎回切ってもいいだろうが。
0389デフォルトの名無しさんNGNG
javaアプレットを実行しようと思ったらjava.lang.NoSuchMethodError:sun.net.www.http.KeepAliveCache.get(Ljava/net/URL;)Ljava/lang/Object;
っていうエラーが表示されてしまいます
なぜですか?
0390JAVA一年生NGNG
みなさんがJAVAに開眼した本などあったら教えてください。
0391デフォルトの名無しさんNGNG
お前が馬鹿だからだな
0392287NGNG
>388
 いえ、disconnect() しなくていいのならできればしたくないので…。

 Sun のサイトの、

ttp://java.sun.com/docs/books/tutorial/networking/urls/readingWriting.html

 なんかをみると、HttpURLConnection を使っているっぽいのに
disconnect() を呼んでない(というより URLConnection で受けて
いるので disconnect() が呼べない)ので、やっぱり
disconnect() はなしでも大丈夫なのかな…。みなさんいろいろあ
りがとうございました。
0393デフォルトの名無しさんNGNG
>>390
他クラスのメソッドを呼ぶのに何通りも方法があるのに気付いて、
1日潰して「色んなHelloWorld」を作ってみたことがある。
new とか static とか implements とか import とか、普段何気なく
使っていたキーワードの意味が次々に繋がって、まさに「開眼」だった。
それ以来解説サイトで飛び交うやりとりがするすると頭に入るようになったよ。
0394デフォルトの名無しさんNGNG
gccでjavaのコンパイルってできますか?
0395デフォルトの名無しさんNGNG
jvmのコンパイルはできるんじゃない?
0396389NGNG
エラーが消えなくてこまってます
どなたかおしえてください
0397デフォルトの名無しさんNGNG
馬鹿が消えなくて困ってます
どなたかおしえてください
0398394NGNG
>>395

JAVAは超入門者なもんで、JVMの意味が理解できません。
0399デフォルトの名無しさんNGNG
>>394
くわしくはこちらをどうぞ。
「gcjって使ってる人います?」
ttp://pc5.2ch.net/test/read.cgi/tech/1046627795

>>395
はいはい、よかったね。
0400394NGNG
>>399

激しく感謝します。m(_ _)m
0401389NGNG
うーん・・・
何かの設定ミスですかね?
もう一回javaをインストールしてみようかなぁ
0402デフォルトの名無しさんNGNG
すいません。質問です。

int a = 0;
InputStreamReader br = new InputStreamReader(System.in);

a = b.read();

System.out.println(a);

最後のprintのところで
キーボードから入力したとおりの数値が出ません。
どうすればいいのでしょうか。
0403デフォルトの名無しさんNGNG
>>402
スペースキー押したら 32 を表示したいとかだったらそれで良いのだが。

何を入力して、期待した出力は何で、実際の出力は何だったわけ?
0404デフォルトの名無しさんNGNG
>>390
青柳本を読んだときかなぁ。
ttp://www.amazon.co.jp/o/ASIN/4769203721/ref=noism

絶版だけど……
0405デフォルトの名無しさんNGNG
javaアプレットを実行すると、アプレットビューアで
「Start:アプレットは初期化されていません。」
と言われます。
どうしたら初期化できますか?
0406デフォルトの名無しさんNGNG
>>402
br と b の関係は? typo?
0407デフォルトの名無しさんNGNG
>>402
キーボードから入力できるのは数字。その場合数字を表す数値が入力されている。
じゃなくて数値を表す数字を入力して数値に変換するには、
BufferedReader あたりを使って 1行入力し、Integer クラスで変換する。

>>405
Javaコンソール見てからもっぺんこい
0408デフォルトの名無しさんNGNG
SocketでHttp通信プログラムを作ってるのですが
HTMLソースを読みこんで解釈して、次はその中に記述されてる
リソースURLにアクセスすると、200以外のコードが返ってきて
アクセスできなくなる事が、稀にあります。
しかし、プログラムを再起動して初めからいきなりその
リソースURLを読み込むと成功するのです。
下層Socketの使い回しが原因なのかと思って、一アクセスごとに
Socketを作り直し、常にConnection: closeにして、さらに試験的に
一アクセスごとに数秒待機するようにしても、HTMLソースを読み込んだ次だと
アクセスが失敗してしまうのです。プログラムを再起動して初めから
そのリソースURLを指定すると普通に読み込めるのにです。
リクエストラインとリクエストヘッダは全く同じ文章を送っています。
Referも正確に記述してますし、UserAgentを初めとする各ヘッダも
ある標準の製品ブラウザと全く同じ文章を送っています。
それなのに起動後、同ホストに1回目と2回目のアクセスでは
リソースURL成功の結果が違うのです。
どうか対処法を教えてくださいませ。
0409905NGNG
>>408
Http通信するならJakarta commonsのHttpClientとか使えば。
JavaでhttpしゃべるのにSocket使うのなんて苦労が多いだけで意味ないと思うが。
HttpURLConnectionとかあるし。
0410デフォルトの名無しさんNGNG
ネスケ4.7でJavaScriptからAppletのメソッドにアクセスできません。
IEでは出来ているんですけど、なぜでしょうか?
0411デフォルトの名無しさんNGNG
>>410
根輔が対応してないから。要するに無理。
0412デフォルトの名無しさんNGNG
質問です。

諸般の事情で、Javaでhttpプロトコルをいじる雲行きになりそうなのですが、
一冊、Javaのネットワークプログラミングに関する本を購入したいと思っております。

>>281の本とかどうなのでしょう?また、お勧めの本等ありましたら紹介していただけると幸いです。
0413デフォルトの名無しさんNGNG
RFC
0414デフォルトの名無しさんNGNG
/の逆を打とうとすると¥になっちゃうんですが、
Shiftを押すとちゃんと”_”になります。
autoexec.batを変な設定にしてしまったからでしょうか?
ちなみにSET PATHがふたつありました。
ふたつとも”;c:j2sdk1.4.2_05\binを付け加えた方がいいですか?
0415デフォルトの名無しさんNGNG
バックスラッシュ=¥でNP
0416デフォルトの名無しさんNGNG
>>413
いや、なるべく一般書の範囲で(;´Д`)
0417414NGNG
>>415
>>416
ありがとうございます
0418デフォルトの名無しさんNGNG
>>413
英語なんか読める訳ないだろ。
0419デフォルトの名無しさんNGNG
和訳読めば。
0420デフォルトの名無しさんNGNG
>>412
確かURLConnectionクラスはソースがあるから参考にしてみては
0421デフォルトの名無しさんNGNG
eclipseでjavadocってどうやって作るんですか?

javadocコマンドの欄になにを指定していしていいかわからないです。

わかる方よろしくお願いします
0422デフォルトの名無しさんNGNG
>>421
ここ来る前にやるべき事があるだろ
0423414NGNG
C:\PROGRA~1\NETWOR~1\MCAFEE~1\SCAN.EXE C:\ /NOBREAK /SILENT
NLSFUNC は Windows の DOS コマンドプロンプトからは組み込めません.
という表示がでたのですが 対処のしかたが分かりません
PATHの表示は
PATH=C:\FJUTY;C:\PROGRA~1\NETWOR~1\MCAFEE~1;C:\J2SDK1.4.2_05\BIN
です。
0424デフォルトの名無しさんNGNG
【Java/C/PHP/他】統合開発環境Eclipse M13
http://pc5.2ch.net/test/read.cgi/tech/1089456669/
0425デフォルトの名無しさんNGNG
質問です。
パッケージ名に「x」がつくのとつかないのとは意味的にどういう違いがあるの?
javax.swingとか・・。

xが付加されるパッケージ名にはなにかあるのでしょうか?
0426デフォルトの名無しさんNGNG
xがつくとカコイイ!
0427デフォルトの名無しさんNGNG
javaxのxとはextensionの略で、ズバリ拡張パッケージの事なのです。
今までにない新時代のjavaパッケージであると表現してるのです。
SUNは大げさな名前が好きですからね。
イベント発行もfireとかして、僕もつられてfire系メソッドを
書く時は、映画パトリオットを思い出しながらファイアーと叫んでいます。
0428デフォルトの名無しさんNGNG
ありがとうございます。
xはextensionのx。ちぃ覚えた。
0429名梨産@ bf202.opt2.point.ne.jpNGNG
拙作の httpd です。随分長い間放置している上に汚いソースですが、
参考の一助にでもなればお使いください。現在連続稼働(放置)40日目でつ。

URL
http://yoda.myhome.cx/
ソースのダウンロード
http://yoda.myhome.cx/yoda/2ch.txt
0430名梨産@ bf202.opt2.point.ne.jpNGNG
ソースはこっちだった。。。_| ̄|○
http://yoda.myhome.cx/products/
0431デフォルトの名無しさんNGNG
Emailクライアントを作ろうと考えてるのですが、自分の使ってるメールサーバーの
IPが何なのか分かりません。
SMPTサーバーのアドレス
smtp.onyx.dti.ne.jp
からIPアドレスを取得する方法は有るのでしょうか。

よろしくお願いします。
0432デフォルトの名無しさんNGNG
>>431
202.216.228.39
0433デフォルトの名無しさんNGNG
>>432
有難うございます。
宜しければ後学のためにどのようにこのIPを取得したのか
教えていただけますでしょうか
0434デフォルトの名無しさんNGNG
>>433
DOS窓なりシェルなりで
ping smtp.onyx.dti.ne.jp
0435デフォルトの名無しさんNGNG
>>433
あ、なるほど。
基本的なことが抜けてるなぁ。。
本当に有難うございました!。
0436デフォルトの名無しさんNGNG
彼は自分のプログラムの中にpingを埋め込むつもりなんだろうか・・・
0437デフォルトの名無しさんNGNG
>>436
いえ、ただ単に、Propのなかに入れる自分のメールサーバーのIPを
調べる方法が分からなかったので。。。
IPさえ分かれば普通にそれをハードコードするだけです。
0438デフォルトの名無しさんNGNG
>普通にそれをハードコードするだけです。

ヲイ!
0439デフォルトの名無しさんNGNG
別にいいんじゃないか。
ハードコーディングする以上は自分専用なんだし。
ツッコム位ならマシな方法を知っているんだろうから
教えてやってはどうか。
0440デフォルトの名無しさんNGNG
439==431
0441デフォルトの名無しさんNGNG
Stringの配列に任意の文字列が含まれているかを
調べるメソッドってないでしょうか?
0442デフォルトの名無しさんNGNG
Swing のコンポーネントで MouseEvent を受け取らない方法ありませんか?
setEnable(false) でも MouseEvent は受信してしまうみたいです。
setVisilble(false) は使うわけにはいきませんので、MouseEvent 完全無視の
良い方法があったら教えてください。
0443デフォルトの名無しさんNGNG
>>431
JavaMailなんて使ったこともないけど
わざわざIPアドレスで指定しないといけないの?

まぁ誰もツッコミ入れてないので、きっとそうなんだろう
0444デフォルトの名無しさんNGNG
>>442
一つの方法です。compoが対象コンポーネントです。

MouseListener[] mls=compo.getMouseListeners();
for(int i=0; i<mls.length; ++i) {
  compo.removeMouseListener(mls[i]);
}
0445デフォルトの名無しさんNGNG
>>441
indexOf()
含まれてたら0以上、なかったらー1
0446441NGNG
>>445
配列全体に対してつかえましたっけ?

[0]〜[100] の配列のどれかにその文字列が
含まれてるか?という感じなんですが。
0447デフォルトの名無しさんNGNG
ああ、す、すみません。。。。
自分でループ処理するしかないと思います。。。
0448431NGNG
>>446
matches(String regex)
0449デフォルトの名無しさんNGNG
Arrays.asList(String[]).contains(string)
てのでもいいけど
自分で処理した方が早いかな
0450デフォルトの名無しさんNGNG
ああ、String配列の要素に、検索文字列がequalで存在してるかどうか
だったのですか。
String配列内のどれかのStringに、検索文字列がsubStringとして含まれてるか
どうかと思ってしまいました。。。
0451431NGNG
>>448
俺を貶めるな
0452デフォルトの名無しさんNGNG
最近Javaやりだしました。
Javaのオブジェクト指向プログラミングって、結論言ってしまえば、

「クラスごとにインターフェイスを実装して、自分を利用したいクラスは、
そのインターフェイスを利用してやり取りするもの」

でいいですか?
0453デフォルトの名無しさんNGNG
>>452
人がいいのもほどほどに、あまり利用されないようにね。
0454デフォルトの名無しさんNGNG
>>452
それは単に、インタフェースの使い方の説明でしょう。
0455452NGNG
>>454
うん…。

どうしても構造化プログラミングから頭が離れなくて、
なにか一言でオブジェクトな頭になる考え方ないですか?
0456デフォルトの名無しさんNGNG
>>455
ポリモフィズムを理解しろ
0457452NGNG
>>456
ポリモフィズムを表現するのにインターフェイスが最適っぽかったので、
めぐりめぐって>>452インターフェイスの使い方の説明になってしまったのかも。
ってことは>>452でいい?
0458デフォルトの名無しさんNGNG
そんなもの。
0459441NGNG
レスどうもです。
とりあえず、自分でまわすことにしてみました
0460デフォルトの名無しさんNGNG
>>452
違います
0461デフォルトの名無しさんNGNG
>>457 それだとクラスの継承はオブジェクト指向と関係ない機能
であるということになるがそれでいいと思う?
0462452NGNG
>>461
うん、そう思ってました。

もう継承は、クラスやインターフェイスの「機能の拡張(構造化の延長)」にしか使わないと割り切って、
極端な話、始めは使わない方向でいくのがいいと判断しました。
それにオブジェクト指向というよりは構造化の便利機能のようにおもっているんですけど。
0463デフォルトの名無しさんNGNG
>>462
いや、その考えで正しい。
ボリフォリズムは「動作」に基づくのであって、機能に基づくのではない。
よってextendsは機能拡張(継承)であり、inplementsは多態性を実現させるものと
するのが、純粋な理論上では、すっきりと整理されてる正しい意見だ。
extendsも当然多態性を実現させるけど、多態性を実現させる為「だけ」に
extendsするのは下手なOOPだよ。
0464デフォルトの名無しさんNGNG
ボリフォリズム
0465デフォルトの名無しさんNGNG
多態性はオブジェクト指向の中でも論じられる概念だけど、イコールではないよね。
0466デフォルトの名無しさんNGNG
ポリホモフィズム
0467デフォルトの名無しさんNGNG
ケツ掘りズム
0468452NGNG
なんか、ひとつすっきりしました。みなさんありがとうございました。
0469デフォルトの名無しさんNGNG
質問させてください。
Vectorクラスのvecがあって、
それの要素iが0かどうか調べる時、
if ((Integer)vec.elementAt(i) == 0)
とすると
演算子 == は java.lang.Integer,int に適用できません。
とコンパイラに言われてしまいます。
どうしたら比較できますか?
vecにはintしか入れていません。
0470デフォルトの名無しさんNGNG
> どうしたら比較できますか?
vec.elementAt(i).equals(new Integer(0))

> vecにはintしか入れていません。
java.lang.Vector には参照型しか入らないので
プリミティブ型である int は入れられません。
0471デフォルトの名無しさんNGNG
>>469
if( ((Integer)vec.elementAt(i)).intValue() == 0)
0472デフォルトの名無しさんNGNG
>>470さん、>>471さん、ありがとうございます。
お二方の通りにしたらできました。
ここでひとつ疑問が生まれてしまったのですが、
Integerとintってなにが違うんですか?
0473デフォルトの名無しさんNGNG
オブジェクトとプリミティブ型
0474デフォルトの名無しさんNGNG
スーパークラス型にサブクラスを代入した場合、
サブクラスで新規で作った、変数、メソッドは
捨てられるってことだよね??

オーバーライドしたところは、そのまま置き換わる
でいい?
0475デフォルトの名無しさんNGNG
intは、-2147483648〜2147483648の範囲の数値そのものであり、
Integerは、簡単に書くと
class Integer {
  int value;

(いろんなメソッド)
}
と、intの数値を内包しているクラスオブジェクトなのです。
0476デフォルトの名無しさんNGNG
>>474
捨てられないですよ。
ただサブクラスのメソッド&フィールドが
アクセスできなくなるだけですよ。
0477デフォルトの名無しさんNGNG
>474

捨てられるって表現でいいのかなぁ?
実際そのスーパークラス型の変数をキャストすればちゃんと
使えるし。
0478デフォルトの名無しさんNGNG
>>474
> スーパークラス型にサブクラスを代入した場合、
> サブクラスで新規で作った、変数、メソッドは
> 捨てられるってことだよね??
「捨てる」というのが何をさしてるのか良くわからんが、
サブクラスで宣言されたクラスメソッド、クラス変数、インスタンス変数、
およびスーパークラスで宣言されなかったインスタンスメソッドは一時的に見えなくなるだけ。

もっかいサブクラス型の変数に代入すれば全部見えるようになる。
0479デフォルトの名無しさんNGNG
振る舞いをスーパーのものに「制限する」って感じじゃないかと。
0480469NGNG
>>473さん>>475さんありがとうございます。
よくわかりました。Integerの方が便利なんですね。
0481デフォルトの名無しさんNGNG
ああ、制限というより
中身はどうであれ
「スーパーであるかのように振舞う」だね。
0482デフォルトの名無しさんNGNG
>>480
便利だが隣の店に車で買い物に行くようなもの
0483474NGNG
>476 >477 >478 >479

そうだったんか・・・間違えて理解してた。。
良く分かりました。ありがとう。
0484デフォルトの名無しさんNGNG
MIDP上で、RandomのnextInt()を使うと小数点になってしまいます。
Mathにも小数点を丸める方法がありませんでした。
どうしたら小数点を丸められますか?
そもそも乱数の使い方が違うのでしょうか?
0485デフォルトの名無しさんNGNG
>>484
お前の目は毛穴だな
0486442NGNG
444 さんありがとうございます。一応その方法も検討したのですが、
永続的に MouseEvent を拒否したいのではなく、その都度切り替えたかったので
setEnable のように簡単な方法がないかな〜と。
結局、removeMouseListener する前に現状のリスナーを保存しておき、後で戻して
やるしかなさそうですね。どうもでした。
0487デフォルトの名無しさんNGNG
>RandomのnextInt()を使うと小数点になってしまいます。
もはやカオスだな
0488デフォルトの名無しさんNGNG
>>485,>>487
かけ算するのはわかってるんです。小数点が丸められないんです。
0489デフォルトの名無しさんNGNG
>>486

未確認ですけど、
Component#disableEvents(AWTEvent.MOUSE_EVENT_MASK);
でどうなります?
0490デフォルトの名無しさんNGNG
何言ってんのか、何に困ってんのかサッパリ分からん。
>小数点が丸められないんです。
フォントが小さいからじゃないの?
複数ピクセル使うフォントなら丸くなるよ。
0491デフォルトの名無しさんNGNG
丸めるって表現じゃ理解できないですか?
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=%E5%B0%8F%E6%95%B0%E7%82ケ%E3%82%92%E4クク%E3%82%81%E3%82%8B&num=50

Round使いたいけど使えないんです。
MIDPのMathクラスにRoundが入ってないんです。
0492デフォルトの名無しさんNGNG
>>489
おお、そ、それだ!
0493デフォルトの名無しさんNGNG
>>491
7件しかヒットしないものを、何偉そうに貼ってんだ。
>Round使いたいけど使えないんです。
はじめからそう言えよ。つかそんなの (int) でキャストすりゃいいだろ。
切捨て切り上げは小学生レベルの問題だしあほくさい。

そもそも nextInt で何故に実数になるの?(小数"点"にはなりえないのはおいといて)
0494デフォルトの名無しさんNGNG
>>489
>>492
俺の試し方が悪いのかもしれないが、効かないかもしれないぞ。
それを試した上でだめで、前に同じ質問して同じ remove せよとの回答貰った。
今試しても効いてない。
KeyEvent を enable するのには使えてるんだがなぁ・・・
0495デフォルトの名無しさんNGNG
>>493
ありがとうございます。できました。
じゃぁ国語辞典に載っていてもだめですか。
http://dictionary.goo.ne.jp/search.php?MT=%B4%DD%A4%E1%A4%EB&kind=&mode=0&jn.x=40&jn.y=17
0496デフォルトの名無しさんNGNG
>>495
丸めるという表現の意味は当然分かってます。
小数点になってしまいます、小数点を丸めたいですというアホな日本語を馬鹿にしています。
点にはならね−し小数点は普通丸いっつの。

せめて小数点「で」といってほしかった。
0497デフォルトの名無しさんNGNG
間違えてごめんなさい
0498デフォルトの名無しさんNGNG
>>484の言っていることも
>>490の言ってることも
本気でわからん。
0499デフォルトの名無しさんNGNG
↓これ全部で小数
1.398424
 ↑この点は小数点
0500デフォルトの名無しさんNGNG
>>498
ごめん。明朝でないとだめだ。
0501デフォルトの名無しさんNGNG
そんなことをネチネチ言ってたのかYO
ちとちいさすぎねぇか
0502デフォルトの名無しさんNGNG
11cm なら平均ちょっと下回るくらいだろ
0503デフォルトの名無しさんNGNG
すると俺の方が小さいということに・・・。
0504デフォルトの名無しさんNGNG
丸め誤差かもよ
0505デフォルトの名無しさんNGNG
確か勃起時で13cmが平均
0506デフォルトの名無しさんNGNG
ネットワーク関係を勉強中のネット初心者君です。
ヤフーメッセンジャーのエミュレーター版のソフトで「ヤフーエミュレーター」
っていうのがあるんですがああいうのってどうやって作るんですか?
ヤフー側のサーバーにログインするにはまず何から始めればいいのかという
基本的なことからわからないんですが。
こういうのって普通に「javaネットワークプログラミング」とかいう本を読んでるだけで
できるようになるんですか?
0507デフォルトの名無しさんNGNG
本読むだけで作れるようなら苦労しないなぁ。

>ああいうのってどうやって作るんですか?
まずヤフーメッセンジャーみたいなソフトの作り方を勉強する。
ガワを参考にするぐらいにして、独自に。
そしたらどうやってエミュレータ作ればいいか、ほんわかと分かる。
0508デフォルトの名無しさんNGNG
Math#round()でだめな理由は何よ
0509デフォルトの名無しさんNGNG
>>507

メッセンジャーみたいなソフトの作り方ってどうやって勉強したらいいんでしょうか?
あと、ガワってなんですか?
0510デフォルトの名無しさんNGNG
>>509
>メッセンジャーみたいなソフトの作り方ってどうやって勉強したらいいんでしょうか?
じゃぁまぁ好きな本から読んでけや。

>あと、ガワってなんですか?
ガワって方言なのかな? 普段使ってて普通に通じてたけど・・・
外観のこと。ボタンがどこについてようが、フォントがどうだろうが、
果ては Window が表示されずにコンソールアプリになってしまおうが、ソフトウェアの本質、必要な要件は同じ。
メディアプレーヤのスキンみたいな位置付けだとでも思っておくれ。

コンソールアプリって何ですかとか聞かないこと。きりが無くなる。
0511デフォルトの名無しさんNGNG
>>506
ヤフエミュを作れるスキルのあるやつはここにはいないから安心しろ
0512デフォルトの名無しさんNGNG
ここには >511 レベルの馬鹿しかいないからな。
0513デフォルトの名無しさんNGNG
サーブレットでのPrintWriterによるHTML出力を1行ずつ
逐次表示したいのですが、可能でしょうか?

PrintWriter out = response.getWriter();
for (int i=0; i<100; i++) {
  out.println(i + "回目"); // この行をHTMLに逐次表示
  Thread.sleep(1000);
}

これだと、for文がすべて回ってから一気に表示されてしまいます。

実際にはfor文ではなくて処理の重い作業をやっているのですが、
ブラウザ側ではステータスバーが進むだけで、どこまで処理が行っているのか
ユーザがわからないので、随時HTMLを出力したいのです。
0514デフォルトの名無しさんNGNG
>>513
out.flush()
0515デフォルトの名無しさんNGNG
>>513

1ページ分ちゃんと出さないとブラウザで表示できるかどうかは
わからないんじゃないの?
0516デフォルトの名無しさんNGNG
今23歳なんですが大学の3年次編入の受験を受けようかどうしようか迷ってます
親はお金のことは心配するなといってくれているんで好きなように
やらしてもらおうかと思ってるんですが
やっぱり年齢的にきついんで素直に中途採用でどこかの小さな会社に入ったほうがいいの
かなあとかいうふうにも思ったりしてます。
どうしたらいいですか?
0517デフォルトの名無しさんNGNG
JtoolBarをNorthに2つつけることはでき巣か?
0518デフォルトの名無しさんNGNG
northにJPanelかBoxをつけて、そこにJToolBarを二つつければOK
0519デフォルトの名無しさんNGNG
>>514
意味ないです。

>>515
そう言われるとそうですが、ということは実現不可能?
一旦リクエストを終了して、自動的にリクエストを繰り返す方法だと、
変数の中身が引き継げないし・・・
不可能なのか・・・
0520デフォルトの名無しさんNGNG
>>516
プログラマーになる前提で。
PGM出来るなら若いうちにどこでもいいんで会社入って経験積んだほうが
いいと思われ。
年取るとPGM出来ても経験ないと雇ってくれないとこ多い。
まあ、まだ卒業しても25歳?なら問題ないと思うが。

もしかして誤爆?
0521517NGNG
>>518
ありがとうございます。
JPanelにセットしたら希望通りのデザインにできました。
0522516NGNG
>>520

>まあ、まだ卒業しても25歳?なら問題ないと思うが。
年齢のこと一番気にしてたんでそれ聞いて安心しました
それにいくら経験つんでも大卒じゃないと大手には入れ無いと思うんで
やっぱり大学に入ってみます
ありがとうございました
0523デフォルトの名無しさんNGNG
>>522
いまどき2年も時間を無駄にするような選択はしない方が良い
0524デフォルトの名無しさんNGNG
イベントの処理の仕方にはいろいろあると思うんですが、

add○○Listener(new ○○Listener(){メソッド});ここに全部書く
add○○Listener(this);JFrameにリスナーを実装する
add○○Listener(MyAdapter);別のクラスを自分で作る
etc

どの方法が一番美しいですか?
0525デフォルトの名無しさんNGNG
どれも美しくないっていう意味かな?
0526デフォルトの名無しさんNGNG
>>525
どの方法がもっとも拡張しやすく、コンパクトで、
一般的かなと思いまして。
0527デフォルトの名無しさんNGNG
javaAppletを作成したのですがeclipseからは実行できるのにアプレットを貼り付けたhtmファイルからは実行できません
なぜなんでしょうか?
0528デフォルトの名無しさんNGNG
>>527 OSとブラウザの種類、JavaPluginを入れているか、VMのバージョン、
Javaコンソールの出力、アプレット内で使用しているAPIのバージョン(1.1系か
Java2系か)とコンパイルオプションは実行系と一致しているか、
「実行できない」とはどういう意味か(htmファイルをworkbench内でダブル
クリックしてもブラウザが立ち上がらないとか、ブラウザは立ち上がるが
アプレットが表示されないとか)、くらいあると答えやすいよ。
0529デフォルトの名無しさんNGNG
>>526
場合によりまくる
0530527NGNG
>>528
早速の回答ありがとうございます!

OSはWindows2000
ブラウザはIE6
javaのバージョンは1.4.2_05です

ステータスバーに「アプレットの読み込みに失敗しました」と出ます
コンソールに "access denied (java.io.FilePermission map1.dat read)" と表示されたので、外部ファイルが読み込めていないっぽいのかなぁと思っています

Permissionって属性のことですよね
えーと、どうすればいいんだろう...
0531デフォルトの名無しさんNGNG
アプレットでは基本的にファイル読み書き不可

http://hogehoge.hoge/hogeappret/←こんなのうっかり踏んでファイルごっそり消されたらたまらんだろ
0532527NGNG
>>531
ぇぇぇぇぇ、そうなんですか!
じゃあゲームでハイスコアとかできないのかな

ああ、でもすごい納得
ありがとうございました... ぅう
0533デフォルトの名無しさんNGNG
ハイスコアはサーバー側に置く
0534527NGNG
>>533
んん?
アプレットでファイルの読み書きはできないんですよね

よかったらもう少し詳しく...
0535デフォルトの名無しさんNGNG
アプレットは、サーバから PC へブラウザにダウンロードしてもらって、ユーザが使う
アプレットはそのサーバと(だけ)通信ができる
サーバ側にサーバのファイルとアクセスするプログラムを置いておけば、ハイスコア管理できる
CGI がおけるなら CGI でよい
Perl などでやるように GET や POST の時にパラメータを送る
やり方はちょっと探せばあちこちで紹介してる
0536527NGNG
>>535
なぁるほど
あくまでアプレットとは別のプログラムになってしまうんですね

色々試してみます
ありがとうございました
0537デフォルトの名無しさんNGNG
ディスクトップマスコットのようなものを作りたいんですが
フレームレスな画像の表示はどうしたらできますか?
0538デフォルトの名無しさんNGNG
LayeredEX
0539デフォルトの名無しさんNGNG
JWindowからサブクラスを作って、paint()で透過色と非透過色を使って
画像を表示しませう。
0540デフォルトの名無しさんNGNG
test
0541デフォルトの名無しさんNGNG
アプロダってどうやってつくればいいんですか?
サイト運営についての質問ってココでOKですか?
0542デフォルトの名無しさんNGNG
全然違う
このスレ的な回答したとしてもおそらく期待はずれ
0543デフォルトの名無しさんNGNG
110番で年金について聞くってのは
きっとこういう奴なんだろうな
0544デフォルトの名無しさんNGNG
absctractってなんの為に使うのですか?
0545デフォルトの名無しさんNGNG
仕様は固まってるけど実装が固まらない時
public abstract void actionPerformed(ActionEvent ev);
ボタンが押されたら呼ばれる が 何を行うかは未定
public abstract int compareTo(Object obj);
比較結果を返す が 比較方法は未定
0546デフォルトの名無しさんNGNG
抽象クラス、メソッドの定義に使う。
継承先で振る舞い決めろや、って時に。
0547デフォルトの名無しさんNGNG
>>545
若干訂正 "呼ぶ側の"仕様ね
0548デフォルトの名無しさんNGNG
>>544
Javaのabstractは、共通の処理をまとめたクラスを作って、
その機能を継承するサブクラスを作るのを容易にするという
ユーティリティ的な性格が強い。
それに対して、複数のクラスに対して
共通のアクセス手段を作るために使うのがinterface。
いずれにしても一言では説明しきれないので、
SUNのJavaDocからabstractクラスの例を探して使われ方を
調べてみたら?
それからデザインパターンの本を読むのがよい。
0549デフォルトの名無しさんNGNG
>>541
JAVAなら簡単に、サーバーアプリケーションを構築できる。
シンプルなアップローダー程度なら簡単。
0550デフォルトの名無しさんNGNG
PHPの方がいいよ。
0551デフォルトの名無しさんNGNG
あるもの使えばいいじゃない
0552デフォルトの名無しさんNGNG
>>549
Javaでサーバープロセス作らせてもらえるかどうかが問題じゃないのか。
0553552NGNG
複数人が更新権限持ってるサーバーでそういうことをしたいなら、CGIのように
毎回プロセス立ち上げるほうが無難かと。でもって、そういうことをしたいなら、
プロセス生成が遅いJavaは徹底的に不向き。
Javaでサーバーを立てたいなら、APサーバーへのデプロイができるサイトにする
が良いと思う。管理マンドクセーけど。
0554デフォルトの名無しさんNGNG
Javaは何番目に難しい言語ですか?
0555デフォルトの名無しさんNGNG
ハンバーグは何番目に難しい料理ですか?
ぐらい無意味な質問
0556デフォルトの名無しさんNGNG
Javaは9番目くらいに難しい。
ハンバーグは395番目くらいに難しい。
0557デフォルトの名無しさんNGNG
Javaは11番目だった
0558デフォルトの名無しさんNGNG
すいません、ArrayListってどうやって展開したらいいのですか?
0559デフォルトの名無しさんNGNG
展開ってどういう意味? オレ用語は使わないでね
とりえあえず get(int) か iterator() あたり。
0560デフォルトの名無しさんNGNG
一個ずつ表示したいのです。
0561デフォルトの名無しさんNGNG
相手の電脳に侵入したいので防壁Arrayを展開したいのです。
0562デフォルトの名無しさんNGNG
>>560
一個を表示する処理を、個数分だけ繰り返せば?
0563デフォルトの名無しさんNGNG
その一個を表示する処理がわからんのです。
0564デフォルトの名無しさんNGNG
君は本当にアホやな
好きな方使え
1.
for ( int i = 0; i < a.size(); i++ ) {
String s = (String)a.get( i );
System.out.println( s );
}

2.
for ( Iterator i = a.iterator(); i.hasNext(); ) {
String s = (String)i.next();
System.out.println( s );
}
0565デフォルトの名無しさんNGNG
ClassCastException がどうたら言ってきても
みなさん 無視しませウ
0566デフォルトの名無しさんNGNG
>>564
ありがたき幸せ。
0567デフォルトの名無しさんNGNG
JavaのiteratorのhasNextってなんか不自然でない?
0568デフォルトの名無しさんNGNG
なんでだい?
0569デフォルトの名無しさんNGNG
1つ目の要素をとってくるのにいきなりnext使うから?
0570デフォルトの名無しさんNGNG
next の本当の名前は
getCurrentElementAndAdvanceToNextPosition
0571デフォルトの名無しさんNGNG
でもそれだとやっぱりhasNextって嘘を返すんだよね?
0572デフォルトの名無しさんNGNG
じゃ、こっちだな。
getNextElementAndAdvanceToNextPosition
0573デフォルトの名無しさんNGNG
current, hasCurrent にして欲しいってことか? 前にもそんな話あったな・・・
2回目以降がニュアンス的に next でぴったりくるからそれでいいじゃないか。
どんな単語が一番いいかは英語圏の人間にまかせとけよ。
0574デフォルトの名無しさんNGNG
javaに限らずiterator全般の話なわけね。
0575デフォルトの名無しさんNGNG
forの終了条件とiteratorの組み合わせが不自然なのかも
0576デフォルトの名無しさんNGNG
だから
for (String str : list) System.out.println(str);
0577デフォルトの名無しさんNGNG
それは1.5?
0578デフォルトの名無しさんNGNG
パターンとしての iterator は否定する理由もないが、
今の方法ではマンドクセ。
だから 1.5 の拡張 For ループじゃね?
0579デフォルトの名無しさんNGNG
質問です。

「メソッド「‥‥」のコードが65566バイトの制限を越えています。」

というエラーが発生してコンパイルできないのですが、
この原因は何なのでしょうか、又メモリを増やすなどの解決方法はありますでしょうか?。
0580デフォルトの名無しさんNGNG
>>579
メソッドを小さくする。
メモリを増やしても無理。Java の仕様。
0581579NGNG
すみません。

メソッドを小さくするというのは、具体的にどうすればよいのでしょうか?
変数をできるだけ作らないようにすればよいのでしょうか?

初心者ですみません。。m(__)m
0582デフォルトの名無しさんNGNG
>>581
メソッド分割、クラス分割。
0583デフォルトの名無しさんNGNG
>>576
そーいうソルトシンタックスを無闇に増やすから、そのうちあれもこれもって
いろんな構文を増やして、だんだんゴチャゴチャ分かりにくくなるんだ。
Iterator処理のたった2行程度を書くのを惜しんでどうするのか?
そんな機能増やす時間があるなら、SEのパッケージクラスを
再構築してもっとパワーアップしろ。まだ中身がスカスカなままじゃないか。
0584デフォルトの名無しさんNGNG
1個のメソッドで65Kですか?
0585デフォルトの名無しさんNGNG
>>583
偉くなってから JCP で発言ヨロ。
0586579NGNG
すみません、最後にそのメソッドが何バイトあるのかを確認する方法が
あれば教えていただけないでしょうか?

ちなみに自分はeclipseを使っています。
0587デフォルトの名無しさんNGNG
そんなクソなソースコードは捨ててしまえ
0588デフォルトの名無しさんNGNG
いったいどんなメソッドなんだ
0589デフォルトの名無しさんNGNG
>>583
ソルトシンタックスって聞いたことないんだけど
もしかしてシンタックスシュガーのこと?

0590デフォルトの名無しさんNGNG
} の閉じ忘れか何かじゃないのか?
「65566バイトを越えているメソッド」っての、想像できてる?
自分でおかしいと思わないの?
0591579NGNG
メソッド分割していたら、なんとかうまくいきました。

いろいろ、ifなどの条件をつけていったら9000行くらいいってしまって‥‥

}の閉じ忘れとかじゃあないと思います。
0592デフォルトの名無しさんNGNG
80KB越えのjspなら見たことあるぜ!
0593デフォルトの名無しさんNGNG
9000行かよ
あとから保守する奴の身にもなってやれよ
0594デフォルトの名無しさんNGNG
500KB超えのHTML出力なら見たことある
0595デフォルトの名無しさんNGNG
>>591
9000 行?
まずクラス分割したほうが良い。
コンパイルがとおる、動作すれば良いってもんじゃない。
0596デフォルトの名無しさんNGNG
>591
コンパイルじゃなしとりあえずメソッド切り刻む事からしないと
100行でも自分は多いと思う、そんなソース見せられたら
ぎゃあああああああーおとーさーーーーーーーーーーーーーん
0597デフォルトの名無しさんNGNG
自分の仕事じゃなければそのソース見てみたいな
0598デフォルトの名無しさんNGNG
クラス分けてすむ問題じゃなくて、最初から設計みなおすべき。
if文の嵐なら規則があるはずだから、ただアフォみたく並べるんじゃなくて
配列なり何なりで最適化出来るはず。
まさかループ使ってないとかじゃないよね?
0599デフォルトの名無しさんNGNG
if文のネストとか10超えてたりしそう(w
0600デフォルトの名無しさんNGNG
1クラスでさえ多くても400行程度でしょう・・・
0601デフォルトの名無しさんNGNG
>>598
クラス分割は、if文を多態で置き換えることを考慮するもんだ。
0602デフォルトの名無しさんNGNG
>>600
じゃ、6000行ある javax.swing.JTable は糞か?
インナークラス満載ではあるが。
0603デフォルトの名無しさんNGNG
JTable はやることが多いもの。特別許してやろうよ。
0604デフォルトの名無しさんNGNG
そのソースくれたら美麗に直してやる。
つーかコンテストやりたいコンテスト 暇人自由参加で
0605579NGNG
多態とか、ネストとかそもそもそういう専門用語がわからないので、勉強したあとで
また来ます。

どうもありがとうございました。
0606デフォルトの名無しさんNGNG
そんなんで9000行も書いたのか
どんな処理内容だ?
0607デフォルトの名無しさんNGNG
たぶん普通に書くと100行くらいで収まるんだろうな
0608デフォルトの名無しさんNGNG
SJC-Pを取ったばかりの新人に読ませたいんだけど、
今でもコアJavaが本格的な入門書の定番なのかな?
いきなり、Java言語仕様じゃキツイよね。
0609デフォルトの名無しさんNGNG
行数でクラスを切り分けるなんて始めて聞きました。
皆さんすごいですね。
僕はフィールドで切り分けていました。
つまり、関連性の少ないフィールドがあれば、それを別のクラスに追い出すとかです。
クラスの主役はデータなのだと考えていました。

これからは行数で切り分けてみようと思います。
これで僕も上級者の仲間入りですよね?
0610デフォルトの名無しさんNGNG
恐ろしい根気だな
C スレにも配列なしで 100変数くらい作ったやつがいたが
「こんなに苦労するはず無い!
 プログラミングがこんな苦労するものなら、
 誰かがもっと簡単化できる方法を編み出して、みんなそれを使ってるはず!」
とはどうしても思えないらしい。
思ってても自分の知ってる範囲で解決するので手一杯、勉強まで気が回らないらしい。
0611デフォルトの名無しさんNGNG
以上な行数はリファクタリングのシグナルの一つだろ
必ずしもクラス分割ってわけじゃないが見直しする必要はある
0612デフォルトの名無しさんNGNG
>>609
一所懸命煽るネタ考えたらしいけど遅かったね
つか誰も行数でクラスを切り分ける話なんかしてないからたいして煽りになってない
0613デフォルトの名無しさんNGNG
>>609
行数で切り分けるのが昔くさいと言いだげだが、
クラスの主役がデータってのはいつの話だ?

クラスの主役はデータ、操作どちらかではない。
両方だ。多態は分かるか?
0614デフォルトの名無しさんNGNG
もしかして行数が多い方が工数が増えて報酬も増えるとかさ
0615デフォルトの名無しさんNGNG
ByteBuffer を String にしたいのですが、
やり方がわかりません。
いろいろ調べたのですが、どうもうまくいかないのです。
どなたか分かる方教えてください。
よろしくお願いします。
0616デフォルトの名無しさんNGNG
dejavu?
0617デフォルトの名無しさんNGNG
>>611
Javaの世界では、リファクタリングがとても重要らしいですね。
昔、どこかのスレで「VSにはリファクタリングツールがついてこない。
これではとても人に薦められない。初心者にはきちんとリファクタリングから教えるべきだ。」
と、書いてありました。
僕の俺常識では、初心者にまず教えるべきなのは、なるべくリファクタリングが必要にならない上手な設計
ということになっていたので新鮮な驚きでした。
そのスレを読んで、僕は始めて初心者になれたのです。
それまでは屑でした。
0618デフォルトの名無しさんNGNG
>>617
> 僕の俺常識では

僕か俺かはっきりしろ。バカ。
0619デフォルトの名無しさんNGNG
>>617
>>617
いやまだ屑でしょ。
0620デフォルトの名無しさんNGNG
何をどう煽り言いたいのかさっぱ分からん。
0621デフォルトの名無しさんNGNG
>>617
煽り乙
そりゃ最初から完璧な設計ができれば一番だがそうはいかないことの方が多いのさ
まずは動かすことが優先される場合も多いしな
0622デフォルトの名無しさんNGNG
>>613
そんなに昔に教わったことではないのですが・・・
Javaは日進月歩らしいですから、すでに古い常識なんでしょうね。
僕が教わったのは、まずフィールドから設計を始めるということでした。
もう古臭いんでしょうね。
0623デフォルトの名無しさんNGNG
>>622
でクラス設計とJavaって何か関係あんの?
0624デフォルトの名無しさんNGNG
>>622
教わった? とりあえずそいつの言うことは信用するな。
そいつはデータベースに詳しくないか?
0625デフォルトの名無しさんNGNG
>>615
正確には、ByteBufferの補助配列をStringにする事になりますが。。。

ByteBuffer bb=wrapかallocate&putでStringのbyteデータを構築
new String(bb.array());
0626デフォルトの名無しさんNGNG
>>624
どこの会社でも必ず教えることだと思うんですけどね。
あなたの会社は新しいというか・・斬新なんでしょうね・・・
0627デフォルトの名無しさんNGNG
>>626
どこの会社でもクラスはフィールドで切り分けると教えられるのか・・・
俺、釣られてるのか?
0628デフォルトの名無しさんNGNG
ネタと煽りを同時にやって失敗してるようにしか見えないんだよね俺には
0629デフォルトの名無しさんNGNG
>>626はDB設計とOO設計に違いが分かっていないと思われ
>>626がいってるのは正規形に適合させることをフィールド切り分けと
いってるに過ぎない
0630デフォルトの名無しさんNGNG
>>629
素人が口出すな。
0631デフォルトの名無しさんNGNG
>>628
行数で切り分けるほうがネタだと思うんだけど・・
0632デフォルトの名無しさんNGNG
>>630
ネタじゃなかったようだな w
データオリエンテッドで全てを解決することは出来ないよ。
0633デフォルトの名無しさんNGNG
>>632
素人が口出すな。
0634デフォルトの名無しさんNGNG
なんだやっぱりDOA信者かよw
0635デフォルトの名無しさんNGNG
>>633
まぁな。お前はプロだからな w
0636デフォルトの名無しさんNGNG
>>628
だから行数で切り分ける話なんぞ誰一人しとらんつーの
「素直に書いていったらたかだかこんなぐらいの行数で済むんじゃないか」
といっとるだけだ
0637デフォルトの名無しさんNGNG
>>632
いつの間に「全て」なんて前提が…
0638デフォルトの名無しさんNGNG
>>634
あのさ、理解できないなら書き込むなよ?
ほかの奴はおとなしくなっただろ?
なんでかわかるか?
普通に新人教育受けてある程度仕事してる奴は、
みんな意味理解できてんだよ。
お前だけなんで理解できない?
素人だからだろ?
0639デフォルトの名無しさんNGNG
>>637
>609 を見る限り、俺にはそうとしか受け取れん。
0640デフォルトの名無しさんNGNG
>>638
で、お前の結論はクラスはフィールドで分けるんだな。
さすがプロだな。
0641デフォルトの名無しさんNGNG
何このネタスレ
0642デフォルトの名無しさんNGNG
>>640
何故、フィールドから設計して、フィールドで切り分けるかわからんのなら、
おそらく、独習Java読みましたってレベルなんだろ?
もうお前帰れよ。
いらないよ。
0643デフォルトの名無しさんNGNG
>>638
問題はお前のネタの振り方と煽り方がうんこすぎ。
中途半端なんだよバカ。
0644デフォルトの名無しさんNGNG
>>640
素人が口出すな。
0645デフォルトの名無しさんNGNG
表現力のなさにみんなあきれてるだけだろ
0646デフォルトの名無しさんNGNG
えーと、「クラスを切り分ける目安としてフィールドを考慮する」程度の表現だったら良いってだけの話?
0647デフォルトの名無しさんNGNG
> 「クラスを切り分ける目安としてフィールドを考慮する」
「クラスを切り分ける目安の一つとしてフィールドを考慮する」
0648デフォルトの名無しさんNGNG
それならまあ妥当な表現
だけど基本は責任範囲モデル
プログラムはデータだけで構成されているわけじゃない
データを扱う側の設計ができなきゃ意味がないよ
0649デフォルトの名無しさんNGNG
>>648
帰れって言ったはずだよな?
0650デフォルトの名無しさんNGNG
>>659
厨房の俺にしか相手にしてもらえないかわいそうな香具師が何いってんだ?
0651デフォルトの名無しさんNGNG
お前は、行数で切り分けとけ。
バーヤ。氏ね。
0652デフォルトの名無しさんNGNG
>>651
さすが園児ニアはちがうなw
0653デフォルトの名無しさんNGNG
ここまで煽っといてなんですが、俺Javaやったことありません。
続きは野口スレでw
0654初心者NGNG
質問には全然答えないクセに、こんな明らかに釣りのプログラミング設計論争が
あると、やたら書き込むなんて何を考えてるんですか?
もうちょっと真面目にやってください。
0655デフォルトの名無しさんNGNG
>>654
ここって初心者しかいないんじゃない?
野口スレおいでよ。
面白いよw
0656デフォルトの名無しさんNGNG
野口スレってどこよ
ポインターくらい貼れよ
0657デフォルトの名無しさんNGNG
つい最近まで隣にあったんだけどね
0658デフォルトの名無しさんNGNG
ここかい?
http://pc5.2ch.net/test/read.cgi/tech/1076394124/
0659デフォルトの名無しさんNGNG
600 :デフォルトの名無しさん :04/08/16 20:17
1クラスでさえ多くても400行程度でしょう・・・

まぢで?
0660デフォルトの名無しさんNGNG
もういいって。
0661デフォルトの名無しさんNGNG
じゃーJava1.4APIのほとんどのクラスはクソということで
0662デフォルトの名無しさんNGNG
野口スレツマンネ
0663デフォルトの名無しさんNGNG
>>659
そのくらいだろ。800行超えたら危険な匂いがするだろ
0664デフォルトの名無しさんNGNG
夏休みっていつまでですか?
0665デフォルトの名無しさんNGNG
終わらない夏休み
0666デフォルトの名無しさんNGNG
Java厨ってほんとにいるんだな・・・
まさか、行数で判断してるとは・・・
全く恐れ入るわw
0667デフォルトの名無しさんNGNG
ttp://www.sankei.co.jp/news/040816/sha097.htm
0668デフォルトの名無しさんNGNG
9000行あるクラスについて何か変だと疑問を持つことはそんなにいけないことですか?
0669デフォルトの名無しさんNGNG
メソッドが長いという話からいつのまにかクラスの長さの話になってるな
0670デフォルトの名無しさんNGNG
      
    |┃三             _________
    |┃              / お前たち!
    |┃ ≡    _、_   <     ケンカはやめろ!
____.|ミ\___( <_,` ) _ \   俺が・・・来てやったぜッ!
    |┃=___    \    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    |┃ ≡   )   人 \ ガラッ
0671デフォルトの名無しさんNGNG
65KB程度のメソッドも扱えないJavaはやっぱり糞だな
さっさと死滅しろ
0672デフォルトの名無しさんNGNG
http://www.sankei.co.jp/news/040816/sha097.htm
0673デフォルトの名無しさんNGNG
600 :デフォルトの名無しさん :04/08/16 20:17
1クラスでさえ多くても400行程度でしょう・・・

歴史に残る名言だな。
0674デフォルトの名無しさんNGNG
終わらない夏休み
0675初心者NGNG
Javaスレも眺めてるとなかなかおもしろいですね。
0676デフォルトの名無しさんNGNG
愉快ですね、朝からごちそうさま。笑い我慢しすぎて腹筋オーバーフローしそうでした
俺にもこんな夏休みください
0677デフォルトの名無しさんNGNG
こんばんわ

コマンドプロンプトからjavacで自作の「WorkPlus.java」をコンパイルして「WorkPlus.class」をつくり、コマンドプロンプトからjavaで実行したところ、
次のようなエラーが表示されます。

>C:\Documents and Settings\admin>java D:\java\WorkPlus
>Exception in thread "main" java.lang.NoClassDefFoundError: D:\java\WorkPlus

この問題を解決する方法を教えていただきたいのですが。
よろしくお願いいたします。
0678デフォルトの名無しさんNGNG
ちなみに、ソースコードは下記の通りとなります。

import javax.swing.JList;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
import javax.swing.border.*;
import java.net.*;
import java.io.*;
import java.util.*;
import javax.net.ssl.*;
import java.security.*;
import java.lang.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.print.*;

public class WorkPlus extends JFrame {

public WorkPlus() {
}

private void exitForm(java.awt.event.WindowEvent evt) {
System.exit(0);
}

public static void main(String args[]) {
new WorkPlus().show();
}
}
0679デフォルトの名無しさんNGNG
>>677
java -cp D:\java WorkPlus

javaコマンドで指定するのは、クラスファイルの名前ではなくクラスの名前です。
0680677NGNG
>>679
解決しました
ありがとうございました。
0681パソコン初心者NGNG
ある自然数nより大きい最小の素数を計算して表示するプログラムをjava言語で作るにはどうしたらいいですか?よかったら説明もつけてお願いします。
0682デフォルトの名無しさんNGNG
宿題は宿題スレへ
http://pc5.2ch.net/test/read.cgi/tech/1089527630/l50
0683デフォルトの名無しさんNGNG
アプレットをダウンロードしてソースを参考にしたいのですが、どうしてもできません。
どなたか解決方法を教えてください。

■やってみたこと
1. HTMLのappletタグにあるcodebase、codeよりパス、ファイル名を取得。
2. それを元にダウンロードソフト(Nettransporter)でDL。一応レファラはアプレットを起動するURLで指定。しかしDLできず。
3. codeにあるファイル名は ***.class ではなく ***.***.class であった。
4. パスをきちんと指定すれば、他のHTMLファイルからでもアプレットは実行できる。
0684デフォルトの名無しさんNGNG
>>609
うおっほっほ。まったくこやつはう゛ぁかか天才のどっちかじゃな。うおっほっほ。
by チェスマスターヘックス
0685デフォルトの名無しさんNGNG
クラスファイル落としてリバースエンジニアリング?すごいね。
0686デフォルトの名無しさんNGNG
すごいことなのか?
0687デフォルトの名無しさんNGNG
Bitを後ろから読み直すように変換するにはどうしたらよいのでしょうか

例:
16進数の「C1」は「1100 0001」なので、
後ろから順に読み直して
「1000 0011」
16進に直して「83」という値が欲しい
0688デフォルトの名無しさんNGNG
int s = 0xc1, d = 0;
for (int i=0; i<8; i++) {
 d = (d << 1) | (s%2);
 s >>= 1;
}
System.out.println(d);
0689デフォルトの名無しさんNGNG
>>683
その前に、自分の作った class ファイルでからソースが読み取れるか試してください。
0690デフォルトの名無しさんNGNG
>>689
逆コンパイル知らないのか?
Jad とか JadClipse でぐぐってみれ。
ttp://www.google.com/search?hl=ja&ie=UTF-8&q=JadClipse&lr=lang_ja

簡単なのならjavapコマンドでもいけるし。
SDKインスコしてるのならおまいのマシンにも入ってるよ。> javap
ttp://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/win32/javap.html
0691デフォルトの名無しさんNGNG
689は本当に無知だな
0692デフォルトの名無しさんNGNG
>>688
さんくすこ
キミはすごい
0693デフォルトの名無しさんNGNG
>>690
知ってるよ
>>683 みたいなレベルのことを聞きにくるような奴のことだから
class ファイルから"直" でソースが読めるもんだと勘違いしてるんじゃないかと思って書いただけ
0694デフォルトの名無しさんNGNG
>>693
いいから、お前はもう出てくるな。
0695683NGNG
ごめんなさい。私のアホな質問でご迷惑をおかけしました。

classファイルから逆コンパイルの方法は分かりましたが、肝心のclassファイル自体
がダウンロードできません。どうすれば良いですか?
0696デフォルトの名無しさんNGNG
1. HTMLのappletタグにあるcodebase、codeよりパス、ファイル名を取得。
2. それを元にダウンロードソフト(Nettransporter)でDL。
ここもうちょっと詳しく書いてよ。
0697デフォルトの名無しさんNGNG
>>694
馬鹿の相手はいいから答えてやれよ
0698デフォルトの名無しさんNGNG
>>694
何、それ位の事で得意気になってるのか。逆コンパイルなど
レクチャーするレベルじゃないじゃん。低脳は低脳の回答をするもんだな。
ひっこむのは君の方だ。
0699デフォルトの名無しさんNGNG
それくらい、って何?
そもそも逆コンパイルはもとめられてる回答じゃないし。
0700683NGNG
>>696

http://www.xxx.com/***/aaa.html
上で動くアプレットのclassファイルです。

aaa.htmlのappletタグを見たところ、
codebaseは一応記述してありましたが、="./"でした。
codeはpackagename.classname.classという形式での記述でした。

しかし
http://www.xxx.com/***/packagename.classname.class
をダウンロードしようと試みても、ファイルが存在しません。

なんだか余計分かりにくい説明かも。実際のサイトを見てもらえれば分かりやすいんだろうけど
具体的なURLを出すのってやっぱまずいですか?
0701デフォルトの名無しさんNGNG
無知といわれて必死だな
0702デフォルトの名無しさんNGNG
>>700
http://www.xxx.com/***/packagename/classname.class
とかかもね。パッケージとクラスパス等について調べるといいように思うよ。
0703デフォルトの名無しさんNGNG
>>700
ブラウザを使っているのがWindows環境だったら、ブラウザからアプレットを実行して
C:\Documents and Settings\ユーザ名\Application Data\Sun\Java\Deployment\cache\javapi\v1.0\jar
あたりにxx.zip があると思うから解凍してみ。
「C:\Documents and Settings\ユーザ名」は環境に合わせて適当に読み替えて。
0704683NGNG
>>702
ビンゴ!でした。ありがとうございました!

>>703
そういう方法もあるのですね。勉強になります。


くだらない質問でご迷惑おかけしました。皆さん本当にありがとうございました。
0705デフォルトの名無しさんNGNG
>>701
必死なのはそっちじゃないのかな?
恥ずかしさと怒りのあまり、レスの文字が震えてるようだが
0706デフォルトの名無しさんNGNG
>>694=697だろ。
自作自演までして必死だなw 自分でバカを演じてちゃしょうがないな。
0707デフォルトの名無しさんNGNG
インスタンスをシリアライズして入出力するクラスはなんですか?
0708デフォルトの名無しさんNGNG
またネタか。
0709デフォルトの名無しさんNGNG
>>707
java.lang.ShiriaraisuIO
0710デフォルトの名無しさんNGNG
>>706
>>694だが、たった今戻ったところだ。何もかも自演に見えてしまう君の可哀想な思考回路には心底同情するよ。
0711デフォルトの名無しさんNGNG
バカとバカが罵りあうスレはここです
0712デフォルトの名無しさんNGNG
訂正
バカとバカとバカが罵りあうスレでした
0713デフォルトの名無しさんNGNG
コンストラクタはどうして必要なのでしょうか。
クラスの頭でフィールド変数の宣言と同時に初期値を設定すればいいと思ってしまう僕を許してください。
0714デフォルトの名無しさんNGNG
初期化パターンが複数ある場合にはどうするんですか
0715デフォルトの名無しさんNGNG
>>713
じゃインスタンス作る時どうするの?
Integer クラスのインスタンスを得る例を提案してみてよ。
0716713NGNG
やった、釣れたー
0717713NGNG
>>714-715
僕は馬鹿だから分かりません
0718713NGNG
>714
気づきませんでした。

>715
ちょっと僕には難しい話です。
0719デフォルトの名無しさんNGNG
>>683に情報の不足は無い。
てことは、>>685ですぐ回答があっていいはずなんだよね。
何故、>>702まで引っ張る必要があったの?
0720デフォルトの名無しさんNGNG
初心者大歓迎って、初心者が質問に答えるスレって意味だった?
0721デフォルトの名無しさんNGNG
今ごろ気付きましたか?( ̄ー ̄)
0722デフォルトの名無しさんNGNG
チョイスに対しsetFontで設定しても、適用されるフォントと適用されないフォントがあるんでしょうか?
SerifなんかだとちゃんとSerifになるんですが、
MS ゴシックやMS 明朝だと、Dialogのままになってしまいます(フォント名は変わってくれるんですが)。
グラフィックやテキストフィールドなんかは、ちゃんとMS ゴシックやMS 明朝にも反応するんです。
何故なんでしょうか?
0723デフォルトの名無しさんNGNG
なんか違うんだよな。
逆汗するって言ってるんだからjavapとかJADとか一言書くだけでいいんだしさ。
ちょっと間違ってるよな?
0724デフォルトの名無しさんNGNG
もしかして400行の制限とかあるのかい?
0725デフォルトの名無しさんNGNG
質問です。
渡された文字列が、ひらがなだけで構成されているかを判断する為に、
文字こーどが必要だと思い、
一文字ずつCharacter.getNumericValue()メソッドで判別しようとしたが
どの文字も-1しか返ってこないので
このメソッドは文字コードを返さない事がわかった。

文字コードを取得するためにはどうすればよいのですか?
0726デフォルトの名無しさんNGNG
DBに登録したjpegファイルをImageIOでサーブレットに出力すると、画質が落ちてしまいます。
どうすれば、DBに登録した時のファイルサイズで読めるんでしょうか。
下が問題のソースです。

response.setContentType("image/jpeg");
os = response.getOutputStream();

Iterator readers = ImageIO.getImageReadersByFormatName("jpeg");
ImageReader reader = (ImageReader) readers.next();

iis = ImageIO.createImageInputStream(rs.getBinaryStream(1));
reader.setInput(iis, true, true);

ImageReadParam param = reader.getDefaultReadParam();
BufferedImage srcImg = reader.read(0, param);

ImageIO.write(srcImg, "jpeg", os);
reader.dispose();
0727デフォルトの名無しさんNGNG
オラオラ!早く答えろよ!
0728デフォルトの名無しさんNGNG
>>725 ICUを使う。 >>726 ImageIOを使わない。
0729デフォルトの名無しさんNGNG
>>725
文字コードを気にせずに済むこんな方法も。
public static boolean isHiragana(String str){
 for(int i = 0; i < str.length(); i++){
  if(Character.UnicodeBlock.of(str.charAt(i)) != Character.UnicodeBlock.HIRAGANA){
   return false;
  }
 }
 return true;
}
0730デフォルトの名無しさんNGNG
はっきりいってUnicodeBlockを使う方法はお薦めできない
0731デフォルトの名無しさんNGNG
>>726
jpggファイルを展開した後に、またそれをjpeg変換で書き込んだら
画質が落ちるのは当然のように思うが。。。。
0732デフォルトの名無しさんNGNG
>>725
宿題スレにカタカナバージョンがあるよ
0733デフォルトの名無しさんNGNG
検索画面で入力項目に値が入っていない場合はその項目を検索条件から外す様にしたい。
ここでSQL文は外部のファイルにあるものとします。
例)SQL:SELECT * FROM HOGE WHERE HOGE_ID = ? AND HOGE_NAME = ?
ここで検索画面にHOGE_ID:'999',HOGE_NAME=''の値が入力された場合
SELECT * FROM HOGE WHERE HOGE_ID = '999'と同等の検索結果を得ようとした場合は
どのように実装すればよいでしょうか?できるだけPreparedStatementを使用したいです。
日本語がへんだったらすみません。
0734デフォルトの名無しさんNGNG
馬鹿?
0735デフォルトの名無しさんNGNG
>>725
正規表現
0736725NGNG
質問に答えて下さった皆様ありがとうございます
色々方法があるようなのですが、
文字列を一文字ずつshort型に変換して、
その値が3041〜3093までかどうかで判別しようと思います。
0737デフォルトの名無しさんNGNG
>>733
HOGE_NAMEにワイルドカードを入れればいい。
でも、最適化したSQL使った方が速いよ。
0738デフォルトの名無しさんNGNG
>>722
フォントに関してはSwingとAWTなどで挙動が違うよ。

>>722の書き込みだけでは、私にはよくわからないが、
>グラフィックやテキストフィールドなんかは、ちゃんとMSゴシックやMS明朝にも反応するんです。
というところからして、MS明朝の指定が有効にならないのは、
AWTなコンポーネントなのではないだろうか。

詳しくは>>1のリンク先にあるSunのドキュメントから国際化のページと、
そのページにあるフォントについて調べるといいとおもう。
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/intl/index.html
0739デフォルトの名無しさんNGNG
配列でa[-1]とか負の値を扱えるようにするのってどうやったらいいんでしょうか?
0740デフォルトの名無しさんNGNG
>>739
配列じゃ無理。
HashMapでも使うがいい。
0741739NGNG
>>740
そうなんですか、ありがとうございます
勉強してみます
0742デフォルトの名無しさんNGNG
インスタンスメンバの利点は何ですか?
クラスメンバの方はインスタンスを生成しなくてもすぐ利用できるから
便利だと思います。
0743デフォルトの名無しさんNGNG
>>742
同じようなの前も見たな。釣りか?
0744デフォルトの名無しさんNGNG
>>742
じゃ複素数をあらわすクラスでも試しに作って、
あとは引きこもって出てこないでください。
0745デフォルトの名無しさんNGNG
>>739
>>740
配列の大きさがあくまでも有限で、1つの区間で表現できるなら、
値をずらずことで可能だぞ。
例えば、-5から+5までの範囲の配列なら、
a[-1 + OFFSET]
という感じでやればよい。
C++なら配列演算子をオーバーライドすることで、
a[-1]というような配列へのアクセスが有効になったりするんだが、
Javaは演算子をオーバーライドできないので、
java.util.Listを実装するようなクラスを作るしかない。
0746742NGNG
ぷぷ、僕の釣りテクニックは最高ですね。
また、>>743と>>744の2匹をつれちゃいましたw
0747743-744NGNG
はははは 釣れた釣れた
レスしてやると必ず釣れる
0748739NGNG
結局誰も突っ込まなかったですね。
配列で負のインデックスなんてネタ質問以外の何物でもないんですけどね。
今日は大漁大漁♪
0749デフォルトの名無しさんNGNG
>>745
すっごい違和感あるんだけど
0750デフォルトの名無しさんNGNG
9000ステップ超過させた仕様書をだうんろーどできるりぽじどり教えてください
0751デフォルトの名無しさんNGNG
逆に9000行にしなければならない理由なんかどこにもないだろ
現に質問者だってメソッドわけられたんだから、、、
質問者のコーディングの問題だ
仕様書が悪いとは思えないね
0752デフォルトの名無しさんNGNG
でもいかにリファクタリングにできるかッてのはやりたいよな
9000行のコードうpきぼん
0753デフォルトの名無しさんNGNG
リファクタリングってレベルじゃないだろ。
9000行のコードなんて外部仕様もらってゼロから作り直したほうが絶対早いって。
0754デフォルトの名無しさんNGNG
シンクロナイズドについて質問なんですけど、下の2つは同じ意味ですか?

class A{

public syncronized void method(){

//ここに動作を記述

}

}

と

class A{

public void method(){
syncronized(this){

//ここに動作を記述

}
}

}
0755デフォルトの名無しさんNGNG
同じ
っていうかsynchronized節の目的は必要な処理だけを排他して
一つのスレッドのモニタ確保時間を短縮して処理効率を上げるためだから
全ての処理を囲むなよ

0756デフォルトの名無しさんNGNG
>>755
どうもありがとうございます。

0757デフォルトの名無しさんNGNG
シンクロナイズド修飾詞と節はThreadとRunnableの関係みたいなものですね。
0758デフォルトの名無しさんNGNG
ファイルを読み込んでソートしたものを読み込んだファイルと
同名のファイル名で書き込むにはどうすればいいんですか?
0759デフォルトの名無しさんNGNG
>>758
1. Reader で読む
2. Collections.sort か TreeSet でソートする
3. Writer で書く
0760デフォルトの名無しさんNGNG
>>759
メモリーにおさまらないような巨大ファイルだったらどうすんだ?

>>758
RandamAccessFileを使え
0761デフォルトの名無しさんNGNG
Runtime#exec("sort hoge.txt")
0762デフォルトの名無しさんNGNG
Javaの魅力って何?
0763デフォルトの名無しさんNGNG
VMが小さい
0764デフォルトの名無しさんNGNG
>>762
厨房でも使える簡単な言語仕様
0765デフォルトの名無しさんNGNG
J2SE 5.0 Beta 2 になってから、何か変わった?
0766デフォルトの名無しさんNGNG
言語仕様っていうか、ライブラリの分かりやすさ。
0767デフォルトの名無しさんNGNG
リリースノート嫁
0768765NGNG
>>766
ライブラリがわかりやすくなったの?
0769デフォルトの名無しさんNGNG
768は偽者です。 ご注意ください。
0770デフォルトの名無しさんNGNG
騙る意味が分からん。
0771777NGNG
まじで9000どっかアップしてよ!ここに居る暇な人達が書き直したコード見たら
みんな勉強なるじゃんか?こゆーコード書いてるとこーゆー人になっちゃうとか
なあ?頼むよ!よし、じゃーこうしよう、レス番指定してくれたら該当者は無理してでも暇作って書くって
わかった!追加オプションもつける!複数回に及ぶ番号指定もsageてない奴には有効とします!
0772デフォルトの名無しさんNGNG
777
777
777
0773デフォルトの名無しさんNGNG
javaでマクロツールを作りたいのですが
参考サイトないですか?
0774デフォルトの名無しさんNGNG
>>749
配列に関する固定観念を捨てるのだ。
java.util.ArrayListは+方向のみ拡張可能だけど、
これを-方向にも拡張できるようにすると考えればよかろう。
0775デフォルトの名無しさんNGNG
>>773
Cでいうプリプロセッサのようなものかい?
http://jappo.opensourcefinland.org/
こんなんじゃだめかな。
0776デフォルトの名無しさんNGNG
コンソールのようにテキストを表示してくれるコンポーネントないですか?
0777デフォルトの名無しさんNGNG
こんにちは
JAVAで印刷に挑戦しています。(JDK1.4)
Printableインターフェイスを実装し、printに印刷内容を
記述しています。

この際、pageFormatでgetImageableX等の情報で印刷可能範囲を
取得できるのですが、この余白がプリンターの設定できる最小の
余白よりかなり広いようです。
そこで、印刷範囲等の制御をしてみたいのですが、プリンターが
持つ印刷可能範囲といった情報を知るにはどのようにすれば良い
のでしょうか。
ご教授宜しくお願いいたします。

また、印刷に関して参考になるサイト等ありましたら教えていた
だけますでしょうか。
重ねがさねよろしくお願いいたします。
0778デフォルトの名無しさんNGNG
Assert機能を使うため、-eaオプションを付けたいのですが、
Antではどのようにすれば良いのでしょうか?直接javacを起動しないと無理でしょうか?
0779デフォルトの名無しさんNGNG
>>776
java.awt.TextAreaまたはjavax.swing.JTextArea

Telnetクライアントが欲しいなら、こんなのがあるぞ
http://www.jcraft.com/jcterm/
0780776NGNG
>>779
レスありがとうございます。
今日から始めたので通信関係とか高度なことはしてません。
文字を複数行出したかっただけです。
ほんと助かりました。
0781デフォルトの名無しさんNGNG
>>776
System.out.printlnとかで出したいという意味なら、出力先が
JTextPaneなPrintStreamを作るのがいい。(前作った)
0782デフォルトの名無しさんNGNG
>>777
ごめんね、分からん
>>778
<javac source="1.4" ...
でコンパイルすればよい。
実行時については、英語だけど、この辺に書いてある
http://ant.apache.org/manual/CoreTypes/assertions.html
ただし、Ant1.6以降でないと使えないので、
古いAntを使うなら<arg>要素で直接コマンドを指定すればよい。

0783デフォルトの名無しさんNGNG
>>778
javacタスクにsource="1.4"をつけてコンパイルして、実行は以下のとおり。
<java classname="foo.bar.Buz" fork="true">
 <jvmarg value="-ea"/>
</java>
jvmargでJavaVMに引数を渡すのと、fork="true"で別のVMを動かすのがポイント。
0784776NGNG
今日も2匹釣れました。
ありがとうございました。プゲラ
0785778NGNG
>>782, 783
ありがとうございます。早速やってみます。
0786776NGNG
>>784
すごく気分が悪い
0787779NGNG
>>776
もうお前には教えてやらん。
氏ね。
0788デフォルトの名無しさんNGNG
AWTで2ちゃんブラウザ(ホットゾヌとか)みたく
一つのウインドウに複数のパネルを組み込むには
どうしたよいですか?
0789デフォルトの名無しさんNGNG
>788
JSplitPaneを組み合わせな
0790デフォルトの名無しさんNGNG
>>789
AWTのみでは無理ですか?
0791デフォルトの名無しさんNGNG
AWTでは簡単には無理
0792デフォルトの名無しさんNGNG
その簡単ではない方法の
例とかって無いですか?
0793デフォルトの名無しさんNGNG
>>792
何をしたいの?
パネルを配置したいだけじゃなくて、
個々のパネルの幅をマウスで変えたいんでしょ?
0794デフォルトの名無しさんNGNG
>>792
自分でスプリットペーンを実装する
0795デフォルトの名無しさんNGNG
今現在AWTで作ってるアプリケーションがあるんですが
それの周りに他の画面をくっつけてメニューみたいなものを作りたいんですよ。
難しいですかね?
0796デフォルトの名無しさんNGNG
単に配置するだけならレイアウトマネージャ使えるけど?
0797デフォルトの名無しさんNGNG
>>795
簡単に出来ますよ??
何がわからないんですか?
0798デフォルトの名無しさんNGNG
>>796-797
レイアウトマネジャだと自分で自由に大きさを変えられなくないですか?
自分で自由に配置したり大きさを変えたいんですよ。
0799デフォルトの名無しさんNGNG
JavaのGUIって糞だよな。VBみたいにいかないもんかね。
0800デフォルトの名無しさんNGNG
>>798
ああそうですか。
じゃぁ好きにしなさい。
0801デフォルトの名無しさんNGNG
>>798
なるほどね
残念だけどそれはコンポーネント自作するしかないね
まあでもコーディング量的には150行くらいかな
0802デフォルトの名無しさんNGNG
>>798
レイアウトマネージャを自作すればいいじゃん。
0803デフォルトの名無しさんNGNG
>>800
結局無理って事ですか?
0804デフォルトの名無しさんNGNG
君には簡単には無理
0805デフォルトの名無しさんNGNG
>>803
だから、簡単だって言ってるだろ?
0806デフォルトの名無しさんNGNG
>>801-802
自作ですか・・・
分かりました、やってみます。
ありがとうございました。
0807デフォルトの名無しさんNGNG
>>805
お前本当に分かってるのか?
0808名前は開発中のものです。NGNG
コンポーネントよりトウモロコシの方がうまいよ。
0809デフォルトの名無しさんNGNG
暇だからSplitPaneLayout作ってやろうか?
0810デフォルトの名無しさんNGNG
>>809
ぜひお願いします!
0811デフォルトの名無しさんNGNG
あげ
0812デフォルトの名無しさんNGNG
2ちゃんねるブラウザのレイアウトに名前ってあるんですか?
0813デフォルトの名無しさんNGNG
pane.setLayout(new 2chLayout());
0814デフォルトの名無しさんNGNG
んじゃ今から作るよ
ちょっと時間くれ
0815デフォルトの名無しさんNGNG
>>814
お願いします!
0816デフォルトの名無しさんNGNG
つかれた、、、とりあえず原理だけね
適当に作ったからバグありありだけど後は直してくれ
まず、テスト用クラス

import java.awt.*;

public class Test extends Frame {
public Test() {
setSize(100, 100);
this.setLayout(new SplitLayout());
add(SplitLayout.FIRST, new Button("b1"));
add(SplitLayout.SECOND, new Button("b2"));
}
public static void main(String[] args) {
new Test().setVisible(true);
}
}
0817デフォルトの名無しさんNGNG
レイアウトマネージャ

import java.awt.*;
import java.awt.event.*;

public class SplitLayout implements LayoutManager {
public static String FIRST = "FIRST";
public static String SECOND = "SECOND";
private static Dimension minimum = new Dimension(1,1);
private static Dimension preferred = new Dimension(10, 10);
private Component firstComponent;
private Component secondComponent;
private Container parent;
private int position = 50;

public SplitLayout() {
}
public void addLayoutComponent(String name, Component comp) {
if (name.equals(FIRST)) firstComponent = comp;
else if (name.equals(SECOND)) secondComponent = comp;
}
public void removeLayoutComponent(Component comp) {
if (firstComponent == comp) firstComponent = null;
else if (secondComponent == comp) secondComponent = null;
}

つづく
0818デフォルトの名無しさんNGNG
public Dimension preferredLayoutSize(Container parent) { return preferred; }
public Dimension minimumLayoutSize(Container parent) { return minimum; }
public void layoutContainer(Container p) {
if (p == null) return;
if (firstComponent == null) return;
if (secondComponent == null) return;
p.addMouseMotionListener(new Nob());
int width = p.getSize().width;
int height = p.getSize().height;
int fw = position - 4;
int sx = position + 4;
int sw = width - (position + 10);
firstComponent.setBounds(0, 0, position, height);
secondComponent.setBounds(sx, 0, sw, height);
parent = p;
}
public class Nob extends MouseMotionAdapter {
public void mouseDragged(MouseEvent e) {
if (parent == null) return;
Container c = (Container)e.getComponent();
if (parent != c) return;
int width = parent.getSize().width;
position = e.getX();
if (position < 5) position = 5;
if (position >= (width - 5)) position = width - 5;
parent.doLayout();

}
}
}
0819デフォルトの名無しさんNGNG
>>816
おお、この短時間で作るとはさずがですね!
有り難く使わせていただきます!
本当にありがとうございました!!
0820デフォルトの名無しさんNGNG
p.addMouseMotionListener(new Nob());

は

if (parent == null) p.addMouseMotionListener(new Nob());

のまちがいな。
0821デフォルトの名無しさんNGNG
Layoutマネージャを簡単に自作できるJAVAって面白いですね。

ところで、JBuilderを使用しているのですが、自作したlayoutと
constraintsをソース上ではなく、設計画面上で設定できるよう
する方法はありますでしょうか。
ご存知の方がいましたらよろしくお願いいたします。
0822デフォルトの名無しさんNGNG
>>821
それはJBuilderの拡張の話ですね
JBuilderのまにあるをよみませう
0823デフォルトの名無しさんNGNG
親クラスのコンストラクタ呼び出しに関する質問です。

下のようにすると、親、子のコンストラクタが両方呼び出されますが、
これは言語の実装としてなにか意味があるのでしょうか?

親コンストラクタを明示的に呼び出したいなら(こんな仕様が無くても)
super()を書けばいいだけです。
が、例えば、親コンストラクタを呼びださずに子クラスのコンストラクタを呼び出す、
という実装が出来ません(そんなことをするのかどうかはともかく)。

(ちなみに、この問題の元ネタは数日前の某@○TのMLです。)

class Parent{
Parent(){
System.out.print(1);
}
}
class Child extends Parent {
Child(){
System.out.print(2);
}
}
class Test {
public static void main(String[] args) {
new Child();
}
}
0824デフォルトの名無しさんNGNG
>>823

オーバライド - メソッドの上書き
継承したクラスで処理が少し違う場合など、オーバーライドを使って上書きをし
新しい処理を書き換え可能にした。


自分は上記のように認識してます。
0825デフォルトの名無しさんNGNG
>>823
オブジェクトを作るときはコンストラクタを呼ぶ(たとえ親の部分でも)
0826デフォルトの名無しさんNGNG
>>823
コンストラクタというのは、
そのオブジェクトの構築に最低限必要な情報を渡すところだから、
デフォルトでサブクラスからスーパークラスのコンストラクタが呼ばれない仕様だったら、
初期化ミスによるバグが頻発することになる。
> が、例えば、親コンストラクタを呼びださずに子クラスのコンストラクタを呼び出す、
> という実装が出来ません(そんなことをするのかどうかはともかく)。
こうするのであれば、親に必ず空のコンストラクタを用意するべき。
親のコンストラクタを呼び出さなくてもよい場合があるということは、
親に空のコンストラクタを用意できるということなんだから。
0827デフォルトの名無しさんNGNG
mainメソッドの引数(argv)の内容を
VMが動いているPCのLANGがenの状態で
日本語で書きたいのです。

java ClassName 日本語

みたいな感じで。この日本語部分を日本語として
扱うことは無理なのでしょうか?
1.4.1ではjava -Dfile.encodingでいけたのですが、
1.4.2ではどうやっても????になってしまいます。。
0828デフォルトの名無しさんNGNG
うーん、難問じゃ
少し姑息な手じゃが、
String b = new String(a.getBytes("ISO-8859-1"), "Shift_JIS");
でいけんかの?
0829デフォルトの名無しさんNGNG
あたまでっかちに考えれば
親のコンストラクタを呼ばないというのは
継承の本来の狙いに反するよね。
なんのために継承したのか、
本当に継承関係であるべきなのか。
そんな継承に対する思想も見え隠れ。
>>823の例だとわかりやすい。
0830827NGNG
>>828
それは以前試してたんですが、もう一度試してみました。
結果は?????のままです。。JISAutoDetectでもダメでした。
もしかして標準入力(System.in)からargvに渡されるときに、
すでに????に変換されちゃってるんでしょうか?
そうするとたぶん無理なんですよね??(@_@)
0831デフォルトの名無しさんNGNG
>>830
渡された物が既に?になってるかどうか確かめてみては?
a.getBytesで中身見て。
0832デフォルトの名無しさんNGNG
JBossでアプリ開発してます。
深いところでExceptionが起こった場合に、stacktraceを表示すると、

at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:164)
... 93 more

みたいな感じで省略されてしまうのですが、
これを全部表示する方法を御存知ありませんか?
0833デフォルトの名無しさんNGNG
javaであるメソッドを高速化したいときに行う手段としてはどのようにするのが
定石なのでしょうか?もうjavaの書き方をいろいろ工夫して変えても一向に早くならない状況です。

例えば、その部分だけC言語やfortranで置き換えるとかはどうでしょうか?
0834827NGNG
byte[] bytes = argv[0].getBytes("ISO-8859-1");
String str = "";
for(int i = 0; i < bytes.length; i++) {
  int k = (new Byte(bytes[j])).intValue();
  str = str + Integer.toHexString(k).toUpperCase();
}
System.out.println(str);

>>831
こんな感じでやってみたんですが、これで確認できているんでしょうか。。
これで問題ないとすると、3F3F3F3F3F3F3F3F3F3F3F3Fと表示されるので、
??????になってるっぽいです。。ちょっと泣きそうです。。
なんで1.4.1ではfile.encodingがOKで1.4.2ではNGになったんでしょう。。

>>833
どういうことをしたいのか書いてないので具体的な方策は示せませんが、
大局的には、javaの起動オプションにserverとかすれば早くなるらしいです。。
0835デフォルトの名無しさんNGNG
javaのJテキストエリアでは、atokのカーソル近くの表示がでません。
どうしたらいいですか?
0836デフォルトの名無しさんNGNG
>>834
1.4.1 は Windows の codepage 情報を無視してたけど
1.4.2 からは解釈するようになったんじゃなかったっけ?
java.lang.String#charAt(int) で \uFFFE になってないか調べてみれば?

っつーか、コマンドライン引数でなくてファイルとかから読み込めば良いだけのような。
0837デフォルトの名無しさんNGNG
>>833
高速化したいならJNI化するってのも一つの方法だけど、
メソッドの粒度が小さいとオーバーヘッドが大きくてJNI化前より遅くなる事もあるので注意してくらさい
0838デフォルトの名無しさんNGNG
>>819さんと似た質問なんですが、
配置した個々のパネルの幅をマウスで変えるにはどうしたらよいのでしょうか?
0839デフォルトの名無しさんNGNG
>>833
はい、ドゾー
ttp://www-6.ibm.com/jp/developerworks/java/020809/j-javaopt.html

何より大切なのはボトルネックを特定することでしょう。
闇雲に自称最適化を行っても的外れなことをやっている場合があるので。

コーディングレベルで気をつけても効果は薄いかな。
例外処理の回数を減らすくらいなら有効だと思う。

「Java 最適化」でググれば結構見つかるので、自分で調べてもいいんじゃないでしょうか。
0840827NGNG
>>836
今調べてみたんですが、file.encodingはシステムプロパティなのでダメ、ということらしいです。
http://www.simeji.com/wiki/pukiwiki.php?Java%a4%ce%cd%ab%dd%b5#content_1_5
ちなみにlinuxなんですが、LANGをEUC_JPにしてれば読めるのですが、
LANGを設定するのはjava起動の直前ではだめで、サーバの起動時に設定しないとダメだったので、
ほかのアプリケーションのことを考えるとLANGはenのまましかあり得ないのです。。

>java.lang.String#charAt(int) で \uFFFE になってないか調べてみれば?
すいません、これによって何がわかるんですか? 無知ですいません。。

>っつーか、コマンドライン引数でなくてファイルとかから読み込めば良いだけのような。
目から鱗です。。ショッキングです。。
0841デフォルトの名無しさんNGNG
>>838
AWTなら、しこしこと自作するしかねぇべ。
SwingならJLayeredPaneやJSplitPaneを利用して
希望に近いことができるぞ。
0842デフォルトの名無しさんNGNG
>>840
> すいません、これによって何がわかるんですか? 無知ですいません。。
悪い。FFFE じゃなくて FFFD だったかも。

http://www.unicode.org/charts/PDF/UFFF0.pdf
> FFFD REPLACEMENT CHARACTER
> • used to replace an incoming character
>  whose value is unknown or unrepresentable in Unicode
> • compare the use of 001A as a control
>  character to indicate the substitute function
0843833NGNG
どうもありがとうございました
0844デフォルトの名無しさんNGNG
>>841
レスありがとうございます!
やはり自作ですか、自分なりにがんばってみようとおもいます。
あと一つ質問ですが、今現在AWTってあまり使われていないんでしょうか?
Swingの方がいいですかねぇ?
0845デフォルトの名無しさんNGNG
>>844
Swingの方が多機能だし、本当の意味でプラットフォーム非依存なので、
JDK1.2以降ならそちらを使った方がいい。
どうしてもAWTでなければならないのは、JDK1.1.x以前対応の
アプレットを作る場合くらい。
最近はSWATという選択肢もあるぞ。
0846デフォルトの名無しさんNGNG
ごめん、SWTだった
0847デフォルトの名無しさんNGNG
言語プロパティファイルをユーザがブラウザ上で書き換えるロジックを作成中です。
Servletからnative2asciiを起動するには、どうやればいいんでしょうか。
もしくはServlet内でユニコードで変換した方がスマート?
0848デフォルトの名無しさんNGNG
>>846
SwingとSWT検討してみたいと思います。
ただ自分の技術で移行作業がスムーズにできるか不安ですが・・・
何回もありがとうございました!
0849デフォルトの名無しさんNGNG
>>847
プロパティファイルって、ただload/saveすればVM内の文字列(String=UTF-8)と
ファイル上の\u表記の間で相互変換されるから変換ロジックなんて他に要らないんじゃ?
0850デフォルトの名無しさんNGNG
>>849
> プロパティファイルって、ただload/saveすればVM内の文字列(String=UTF-8)と
String は Java の char (符号無し16ビット整数)の配列を使ってるので UTF-16。
0851デフォルトの名無しさんNGNG
UCS-2だろ?
0852デフォルトの名無しさんNGNG
すいません、初歩的な質問をさせていただきます。
Shift_JISにエンコードした文字列のバイト数を取得しようとしています。


import java.io.*;

public class MojiCode{

public static void main(String args[]){

String string = "あいうえお12345";

System.out.println("エンコード前は" + string.length() + "文字");

try {
byte[] sjis_arr = string.getBytes("SJIS");
}catch(UnsupportedEncodingException e){
System.out.println("エンコードエラー");
}

System.out.println("エンコード後は" + sjis_arr.length + "文字");

}

}

で、実行させると”シンボルを解決できません。”とはじかれてしまいます。
tryの括弧の中でのbyte[]宣言が問題らしいことは分かったのですが、それ以上
のことがさっぱりわかりません。どなたか教えていただけますでしょうか?
0853デフォルトの名無しさんNGNG
>>852
sjis_arr をtryブロックの中で宣言しているから、
tryブロックの外側では解決できない。
0854デフォルトの名無しさんNGNG
>>852

import java.io.*;

public class MojiCode{

public static void main(String args[]){

String string = "あいうえお12345";

System.out.println("エンコード前は" + string.length() + "文字");

try {
byte[] sjis_arr = string.getBytes("SJIS");
System.out.println("エンコード後は" + sjis_arr.length + "文字");
}catch(UnsupportedEncodingException e){
System.out.println("エンコードエラー");
}

}

}
0855デフォルトの名無しさんNGNG
>>852
> try {
>  byte[] sjis_arr = string.getBytes("SJIS");
> }catch(UnsupportedEncodingException e){
>  System.out.println("エンコードエラー");
> }
>
> System.out.println("エンコード後は" + sjis_arr.length + "文字");
sjis_arr は宣言されたブロック(この場合はtryブロック)内でしか使用できない。
ブロック外で使用しようとしてるのでエラー食らっただけ。
0856デフォルトの名無しさんNGNG
>>853レス感謝です!
>tryブロックの外側では解決できない。
まじすか、じゃぁByte配列はtryの括弧より前で宣言しなきゃならないってことでしょうか?
0857デフォルトの名無しさんNGNG
>じゃぁByte配列はtryの括弧より前で宣言しなきゃならないってことでしょうか?
そういうこと。
0858デフォルトの名無しさんNGNG
>>856
>>854みたいに中に入れてもいい
外に出すとこんな感じか

byte[] sjis_arr = null;
try {
sjis_arr = string.getBytes("SJIS");
}catch(UnsupportedEncodingException e){
System.out.println("エンコードエラー");
}

if ( sjis_arr != null )
System.out.println("エンコード後は" + sjis_arr.length + "文字");
0859デフォルトの名無しさんNGNG
こんばんわ

DoJa3.5でiAppliを開発してますが、
ビルドして起動したんですが、仮想端末上のスクリーンが白黒のままでカラーになりません。

例として、DialogのsetBackground(Graphics.GREEN);
としてるんですが、白黒として表示されてしまいます。
仮想端末をカラー表示させるにはどのようにすればいいのでしょうか?

0860デフォルトの名無しさんNGNG
こっちいきなはれ。

【初心者歓迎】iアプリ相談室
http://pc5.2ch.net/test/read.cgi/tech/1089530578/
0861859NGNG
>>860
失礼しました
0862デフォルトの名無しさんNGNG
>>352
TreeMap, TreeSetはTreeMap#put()した時点で
ソートしてくれるからその分HashMap, HashSetよりも遅くて当たり前。

LinkedHashMapとHashMapとの速度違いについては
JavaでHelloworldに説明が載っている。
もちろん、ArrayListとLinkedListとの速度の違いも同様。

Linkedでない系 挿入、削除が遅い。インデックスアクセスは速い。 LinkedHashMap, LinkedHashSetは挿入された順序を保持する。
Linked系 挿入、削除が速い。インデックスアクセスは遅い。
Tree系 挿入削除は遅い。挿入時にソートしてくれる。

詳細は
http://www.hellohiro.com/collections.htm
0863デフォルトの名無しさんNGNG
IBMのJREはどこにあるのでしょうか?

IBMのwebpageを探しても見付かりませんでした
0864デフォルトの名無しさんNGNG
今はWindows用のは単体では配布してなかったと思われ。
0865デフォルトの名無しさんNGNG
Freenetに流れて枡
0866デフォルトの名無しさんNGNG
>>864
そうなのかどうりで見付からないわけだな

でもLinux用のはあるということですか?
0867デフォルトの名無しさんNGNG
>>866
Linux 用のと AIX 用のは単体で配布してると思われ。
0868デフォルトの名無しさんNGNG
>>864 単体ではないけど、いまは
IBM Developer Kit for EclipseといってEclipse3.0と抱き合わせで
配布している。契約上なにかと抱き合わせにしないと配布できないんだよね、Win版は
昔はWebServiceToolkitと抱き合わせだった。
0869868NGNG
>>863 はい。
http://www-106.ibm.com/developerworks/java/jdk/
ただWin版はインストーラがついてないのでJavaPluginが
そのままだとインストールされない。手動でやること。
0870868NGNG
あ、あともしこのJDKをEclipseと一緒につかうことがあったら、
eclipse.exeのオプションに-vmargs -Xj9をつけること。IBM JDK/x86のJIT
部分のバグのせいでJ9 VMに逃げないとTask viewかどっかで誤動作するから。
0871856NGNG
>>858亀レスだがサンクスです
>byte[] sjis_arr = null;
配列の初期化はこうやればOKでしたか。
初期化がうまいことわからなかったんでtryの中に入れてたんですわ。
>>854,855,857.858どうもありがとうございました。
0872デフォルトの名無しさんNGNG
>>862
でも、なんかの雑誌のArrayListとLinkedListの比較記事で、
LinkedListはArrayListより全般的に操作が遅い、ってことになってたんだよね。

LinkedListは挿入、削除の時のカーソル移動にインデックスを辿っているからとか。
しかもArrayListに比べると大量のデータ(十万件程度が限界?)を保持できない、
とかなってると存在意義すら疑ってしまう。
0873デフォルトの名無しさんNGNG
>>872
10万件のリストの3番目に要素を追加する時の動作を考えたら、
LinkedListの存在意義がわかる。





・・・ってのは理屈で、実際にLinkedListなんぞ使うことは99%ない。
よっぽどの特殊用途でのみ。
なんででかって言うと、一般に連続したメモリ領域の一括操作は激速だから。
配列操作がすごく速いのと同じようにArrayListもすごく速い。
0874デフォルトの名無しさんNGNG
律儀に使い分けてた…
0875デフォルトの名無しさんNGNG
どーせ配列に入るのはポインタだしな。
0876デフォルトの名無しさんNGNG
JLabel。
すごい機能性が高いと思ったら
やっぱりプログラミングとして慣れるのにかなり大変だとわかった。
うむむ・・・。
0877876NGNG
まちがえたJTableねw
0878デフォルトの名無しさんNGNG
JTableが機能性が高い?
表をカラム単位でしか操作できない時点でー50点だ。
なんか作りかけで発表して、その後ほったらかしにしてるって感じ
なんだよな。使用感も例えるなら普通車を運転するのに大型車並の
労力が必要で、それでいてその大型車は十分な操作ができないって
感じ。JFCの中でもあのクラスは、クラス設計に無駄な部分が多い。
機能の実現を中途半端で終了してしまったから、結果として
そういう無駄な部分ができてしまったのだろうが。
0879デフォルトの名無しさんNGNG
>表をカラム単位でしか操作できない時点でー50点だ。

詳細キボーン
0880863NGNG
レストンクスでした

とても参考になりました。
0881デフォルトの名無しさんNGNG
JTable使えないヤツがいるな
ageてる時点でお察しください
0882デフォルトの名無しさんNGNG
いつみてもJavaMailがDLできません……
俺が見に行ってる先が間違っているのでしょうか。
JavaMailはどこでDLするべきなんですか。
0883デフォルトの名無しさんNGNG
>>882
http://java.sun.com/products/javamail/downloads/index.html
0884デフォルトの名無しさんNGNG
DLできない…… T^T
いつになったら出来るのであろうか……
0885デフォルトの名無しさんNGNG
プロクシ通してやってみれば
0886デフォルトの名無しさんNGNG
ガーベッジコレクタ使ってますか?
 System.gc() だっけ?
0887デフォルトの名無しさんNGNG
>>886
下手に使うと逆に遅くなったりするけどね。
0888デフォルトの名無しさんNGNG
>>872-873


Jakarta Commons Connlectionの
コレクション系クラスとかは使わないのか?
ListとHashが合体したようなコレクションもあるそうだ。
0889デフォルトの名無しさんNGNG
>>886
java.lang.ref.SoftReference
を使ってやったほうが速いぞ。
0890デフォルトの名無しさんNGNG
JTableのRowサイズの変更のしかたは簡単にわかるけど、
Columnサイズの変更の仕方ってどうするんですか?
リファレンス見てものってないんですよ。

すいませんが教えていただきたい。
0891デフォルトの名無しさんNGNG
嘘つくでない
リファレンスにのってるよ

探せないといえばいいのにのってないと言い切るあたりがすごいな
0892デフォルトの名無しさんNGNG
JTableは複雑なので
簡単に見つかりません。
誰かご存知な方はいますか?
0893デフォルトの名無しさんNGNG
>>891
0894デフォルトの名無しさんNGNG
>>892
こうやってみたらうまくいくかも。

DefaultTableColumnModel cm=(DefaultTableColumnModel)(jTable1.getColumnModel());
TableColumn column0 = cm.getColumn(0);
column0.setMinWidth(200);

カラムのindexが0のものの最小値を200に設定する〜。

個々のカラムの管理はTableColumnがおこなっています。
JTableではありません。
カラムの最大値、最小値(上記)など、様々な設定ができます。
この辺は、javadocのTableColumnを参照すればわかるはずです。
0895894NGNG
>>892
初心者のうちはJTableはやや難かもね。
俺もまだ初心者です(^^

あと、>>891 >>893のような荒らしもいるんで
気にせず落ち込まず頑張ってJavaをマスターしてくださいね。
世の中悪い人も居ます。
0896デフォルトの名無しさんNGNG
ルックアンドフィールの必要性って?
0897デフォルトの名無しさんNGNG
>>896
解決です。見た目ですね。
0898デフォルトの名無しさんNGNG
スキンみたいなものだよ、きっと。
あとWindows使ってるのに、「やっぱMacだぜー」とか言いたいマカーとか。
0899デフォルトの名無しさんNGNG
896ですorz
import com.sum.java.swing.plaf.motif.*;
import com.sum.java.swing.plaf.windows.*;
import com.sum.java.swing.plaf.mac.*;
ってインポートしたら
パッケージcom.sum.java.swing.plaf.motifは存在しない
と怒られました。パスが通ってない?
0900デフォルトの名無しさんNGNG
>>899
sumってorz
すいませんsunでした。
もう来ません。
0901デフォルトの名無しさんNGNG
>>895
アホだな、>>891を荒らしと言い切るとは。2chの使い方ってもんがわかってない
0902デフォルトの名無しさんNGNG
>>901
まぁまぁ。
純真な中学生には夢を見させてあげないと。
0903デフォルトの名無しさんNGNG
>>884
普通にDLできるじゃん。そっちの設定がおかしいよ。
0904デフォルトの名無しさんNGNG
>>903
釣られてダウンロードましたねw
0905884NGNG
マジ?いましてみたけど出来ないんだけど?
しかたないから、ファイル名で検索して、本家じゃないところでDLしてました。
javamail-1_3.zipってファイルなんだけど、最新ってjavamail-1_3_2.zipなのかな??
できれば最新のファイル名とMD5の値を教えてほしい。
0906デフォルトの名無しさんNGNG
>>905
まさかと思うがライセンスに同意してるよな?
0907884NGNG
いまいったら、やっと繋がった!
ご迷惑をお掛けしてすまんかった。
ファイル名はjavamail-1_3_2-ea.zipだったんだな。
0908デフォルトの名無しさんNGNG
eaってのはearly access版だが、いいのか?
0909デフォルトの名無しさんNGNG
JakartaスレってDAT落ちしてるの?
0910デフォルトの名無しさんNGNG
リモートのファイルを取得する一般的な方法について教えてください。
0911デフォルトの名無しさんNGNG
JAVAでWORDファイルのプロパティを取得することは可能ですか?
0912デフォルトの名無しさんNGNG
>>911
可能です
0913デフォルトの名無しさんNGNG
Javaの落とし穴の続編みたいのってないの?
あれってもう古くなったんじゃない?
J2EEの落とし穴みたいな。
0914デフォルトの名無しさんNGNG
>>910
リモートにファイル一覧を返答するなんらかのサービスを起動して、クライアントからそのプロトコルに従って問い合わせます。
0915デフォルトの名無しさんNGNG
javaコマンドとかで空白を含む引数やパラメターを指定できますか?
0916デフォルトの名無しさんNGNG
""でかこめば普通に入るだろ?
0917デフォルトの名無しさんNGNG
>>916
レスありがとうございます。

いろいろ実験してわかったことなんですが、My Documentsなどにコンパイルしたいファイルがある場合
直前のcdコマンド(WinXPコンソールの場合)で""を囲まないと、
だめになるみたいです。

0918デフォルトの名無しさんNGNG
それはJavaの話じゃなくて、コマンドシェル全般の話だよ。
空白がパラメータの区切りに使われている以上、
何らかの形でエスケープしてやらねばダメだってこと。

それとXPならエクスプローラからアイコンをドロップすれば
自動的に””で囲んでくれるよ。
0919デフォルトの名無しさんNGNG
 なんでファイル名やディレクトリ名に空白を使えるようになんて
したんだろうな…。激しく使いにくい…
0920デフォルトの名無しさんNGNG
パスセパレータ以外の文字は最大限使えるように設計するのは
普通だと思うけど? Linux系でもちゃんと空白使えるよね。
Windows系で使いにくいのはまともな補完を実装していない
cmd.exeのせい。
0921デフォルトの名無しさんNGNG
>>919
今更なに言ってんだ。
0922デフォルトの名無しさんNGNG
>913

J2EE・EJBのアンチパターン系の本でいいんじゃねーの
0923デフォルトの名無しさんNGNG
XPのcmd.exeは一応補完を実装してるよな。
Tabキーで補完するよ。
まあ、bashには遠くおよばないけどな。
0924デフォルトの名無しさんNGNG
doskeyつかえ。
0925デフォルトの名無しさんNGNG
すれ違い。
0926886NGNG
>>889
どうも。次から使ってみます。
0927デフォルトの名無しさんNGNG
JavaWebStartって、マックOS上のネットスケープでも動きますか?
0928デフォルトの名無しさんNGNG
マックなんかでJava使ってる奴は馬鹿
0929デフォルトの名無しさんNGNG
マックはJavaなしじゃうごきませんよ。(ぷ)
0930デフォルトの名無しさんNGNG
マックと聞くとすぐ釣られる奴はバカ。
0931911NGNG
>>912
どうも。

参考になる、HPとかあったら教えてください。
0932デフォルトの名無しさんNGNG
マックは糞だろ?
0933デフォルトの名無しさんNGNG
ただ自分が多数派だというだけでマックに優越感を感じているウィン厨は
中国人が自分は世界の中心だと思ってるのと一緒(キモッ
0934デフォルトの名無しさんNGNG
中国よかインドのが人口多くないか?
0935デフォルトの名無しさんNGNG
へりくつこねるマカーは氏んだ方がいいね
マックのJavaの互換性のなさといったらまじでひどすぎ
ふざけんな
0936デフォルトの名無しさんNGNG
どこの誰が多数派ということを理由にしてるんだ?
0937デフォルトの名無しさんNGNG
人工知能を作るにはどうしたらいいですか
0938デフォルトの名無しさんNGNG
>>937

>>934レベルの人口無能なら頭を半年ぐらいひねれば比較的簡単に出来るんじゃないかと
0939デフォルトの名無しさんNGNG
>>937
class AI{
  public void main(String[] args){
    System.out.println("こんにちは");
  }
}

あいさつをする人工知能。
0940デフォルトの名無しさんNGNG
あ、インド10.5億ぐらいで中国13億ぐらいなのか orz
最近2050年にインドの人口が世界一になるって記事よんで混乱してた
0941デフォルトの名無しさんNGNG
>920
 そうなんだ。UNIX系でもスペースが使えるとは知らんかった…orz
 でもそうすると、スペースがあるパスでは "" で囲まなきゃいけ
ないからワイルドカードの指定はできないっていうことで自分の理
解はあってる…?その場合、空白ありのディレクトリにある複数の
*.java ファイルを javac コマンドで一度にコンパイルする時は、
全ての *.java ファイルを直指定したり、cd したりしないと無理…?
0942デフォルトの名無しさんNGNG
>>941
関係ない
javac */*.javaでOK
0943デフォルトの名無しさんNGNG
>>941
D:\Temp>dir *.txt
2004/08/22 21:29 0 a h o ?.txt
2004/08/22 21:29 0 aho?.txt
0944デフォルトの名無しさんNGNG
>>936は文盲
0945デフォルトの名無しさんNGNG
>>944
おまえがな
0946デフォルトの名無しさんNGNG
>>937
人工知能とかはわざわざJavaでやる意味ないよ。
どうしてもやりたいならルールエンジンとかでググってみそ。
0947デフォルトの名無しさんNGNG
>>945
さっきからなに必死になってるの?
0948デフォルトの名無しさんNGNG
>942
 あ、なるほど、空白入りのディレクトリもワイルドカードで指定
すればいいんですね。…と思ったら… windows (というか
windows の javac)では無理でした…。

 後、bash では javac "ho ge"/*.java でも上手くいきそうなこ
とに気づきました(cygwin では確認)。ちょっと気持ち悪いです
が…。windows の javac ではこれも無理。アプリ側に至れり尽く
せりのワイルドカード展開を求めるのは酷なのかもしれませんが…。

>943
windows で
javac "ho ge\*.java"
だと javac が * を文字として認識してしまうのです。
今の最新の javac だとわかりませんが…

 みなさんレスありがとうございました。
0949デフォルトの名無しさんNGNG
>>948
まだ誤解が入ってるようだけど
コマンドラインを最初に解釈するのはシェル(WinならCMD.EXE)
つまりシェルが解釈してmainの引数に渡してくれるわけだ
で、ワイルドカードはシェルの機能だからシェルしか解釈できない
java側はシェルによって展開されたものをそのまま使ってるに過ぎない
だから"*.java"とした場合、javaが解釈できなくて当然

で、なんでWinでだめかというと、
CMD.EXEはディレクトリに対するワイルドカードの解釈で
一致するものが二つ以上あると処理をエラーにしちゃうからなのだ
ためしにDIR */*.javaとかやってみればすぐわかるよ
単にCMD.EXEの機能が低いだけ
0950デフォルトの名無しさんNGNG
>>949
>で、ワイルドカードはシェルの機能だからシェルしか解釈できない
あなたも説明怪しいなあ。
ためしにcmd.exe上での
echo *
の動作を解説してみてよ。
0951デフォルトの名無しさんNGNG
ECHOはCMD.EXEの組み込みコマンドだもの
どうとでも動作を変えられるよ
0952デフォルトの名無しさんNGNG
これで実はcmd.exeじゃなくてcommand.com使ってました
とかだと話はさらにややこしくなるな。
0953デフォルトの名無しさんNGNG
switch〜case文についての質問なのですが・・・
case1: case2: case3:
これでこのどれか一つだけが実行されるのではなくて
case1:→case2:→case3:
と順に実行されるようにしたいのです・・・

他に方法があるなら別に
switch〜case文じゃなくても構いません。

よろしくお願いします。
0954デフォルトの名無しさんNGNG
放っときゃそうなると思うが
0955デフォルトの名無しさんNGNG
>>953
switch(1){
 case 1:
  someprocess();
 case 2:
  otherprocess();
 case 3:
  moreprocess();
}

っていうか、わざわざswtch〜case使わずに順に記述すればいいだけだと思うが。
0956デフォルトの名無しさんNGNG
てか逐次処理になぜswitch文、、、はっ、釣られてるのか?
0957デフォルトの名無しさんNGNG
だから行数で給料が決(ry
0958デフォルトの名無しさんNGNG
while文についての質問なのですが

while(index<Integer.MAX_VALUE) {
}

とやるとほぼ無限に近いループが出来ますが完璧では
ありません。無限ループを実現させるには
どうしたらいいのでしょうか?
0959デフォルトの名無しさんNGNG
>>958 ()の中がいつもtrueなら無限ループになる。
でもその手のコード書くときってループの終了条件が
ループのどっかに埋もれて読みにくいときあるから、
可能な限り他の方法にいったほうがいいとおもうけどな。
0960デフォルトの名無しさんNGNG
>>958
まずはコンパイルを通して下さいねw
0961デフォルトの名無しさんNGNG
釣られるなよ・・
0962デフォルトの名無しさんNGNG
>949

 なんと…。windows はワイルドカード展開せずに引数をそのまま
渡して、UNIX 系はシェル側でワイルドカード展開を行う…と思っ
てたんですけど、勘違いだったんですね…。もしかして
command.com はワイルドカード展開せずに cmd.exe だとワイルド
カード展開するってことなんでしょうか?

 ちなみに自分が今使っているのは Windows XP なので、使ってい
るシェルは cmd.exe だと思います。

 結局、javac */*.java だとだめなんですね…。空白つきのパス
を許すのなら "ho ge"\* くらいは展開して欲しいなぁ…
0963デフォルトの名無しさんNGNG
みんなマラソン観戦のひまつぶし?
for( ; ; ){ 無限ループ}
0964デフォルトの名無しさんNGNG
環境変数使えばよくない?
0965デフォルトの名無しさんNGNG
>>962
ていうかそんなに困ってるならAnt使ったら?
Antのワイルドカードのパス指定は便利だよ
0966デフォルトの名無しさんNGNG
ああ、環境変数じゃ通らないな、すまぬ
0967デフォルトの名無しさんNGNG
ライフサイクル管理できるフリーのコンポーネントって有りませんか?
Jakartaを漁ってみても見当たりませんし、Tomcatのソース見たら外部コンポーネント
使用せずに自前で実装してました。

もし無いのであればTomcatのセッション管理を参考に自分で作る事になるんで、
ちょっと鬱になってます。

宜しくお願いします。
0968デフォルトの名無しさんNGNG
ライフサイクルって具体的には何を管理すんの?
0969デフォルトの名無しさんNGNG
>>968
ライフサイクルだけでは具体的ではありませんか?
0970デフォルトの名無しさんNGNG
というかライフサイクルを起こすトリガーは?
Webのsession timeoutにあわせるってこと?
0971967NGNG
ライフゲームのライフサイクルのことです。
どうしてそんなことも分かりませんか!
0972デフォルトの名無しさんNGNG
ライフゲームかよ
わからねーよそんなの
腹抱えて笑っちまったぜ夜中なのに
俺釣られてんの?
0973デフォルトの名無しさんNGNG
ほほえましいのか
釣りなのか
騙りなのか
見当がつかんなw
0974975NGNG
>>967
要は ObjectPool ってこと?
ほんとライフサイクルだけじゃわからんばい・・・。
ライフル? っていうか、アイフル?
お金に困ってんのか・・・。
あ! キミの人生のライフサイクルを考えたいってこと?


0975デフォルトの名無しさんNGNG
Object PoolならJakarta Commons Poolが使えんじゃないの?
でも質問者はセッション管理を参考にして、、といってるから
もっと高位の実装が欲しそうなんだなとはおもうけど、、、。
0976デフォルトの名無しさんNGNG
>>971
まじでライフゲームだとして
そんなのセッション管理の仕組みでやったら重くてしょうがないだろ。
シミュレータ内を流れる時間はどの種族にも同じなんだから
タイマーが一つと世界を表すint[][]の配列、
後は種族ごとの動作を表すシングルトンオブジェクトがあれば
基本的に作れるだろ?(移動、敵策、戦闘、突然変異、、、)
いちいちオブジェクトを生成消滅させる必要なんか全くなし。
かわりにマップ上の数値が変わればOK。
0977デフォルトの名無しさんNGNG
こんにちは
質問ですが

JTableに使われるフォント(Font)の詳細はどのようにして調べるのでしょうか?
0978977NGNG
すいません
修正します

JTableのColumn(上部のタイトル側)に使われるフォントはどうやって調べるのでしょうか?
0979デフォルトの名無しさんNGNG
UIManager.getFont("TableHeader.font");

設定は同じくputかと。
0980unkNGNG
誰かこの問いに答えられるヒトいない?

ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=14068&forum=12&2
Tomcat4.1でRemotePortを取得するにはどうすればよいのでしょうか?
0981デフォルトの名無しさんNGNG
質問者の名前がクソだな
0982unkNGNG
>>981
ハァ?
おめーは脳ミソがクソなんじゃねーの
0983デフォルトの名無しさんNGNG
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=14068&forum=12&2
0984初心者1号NGNG

房な質問をさせていただきます

いつも仕事でservletを製作する場合、servletを製作した後javacをして
Tomcatを再起動させて動作を確認しています

今回、自作ホームページでservletを使用しようと思っています
ローカルサーバでjavacを行ってサーバー上にアップさせて動作を
確認することになりますが、Tomcatを再起動させなくてもservletは
動作可能なのでしょうか?
(たしかTomcatは再起動した際、ディレクトリのソースファイルを
読み込むときいたような気がします)

また、WEB-INF以下に設置しなくても動作可能なのでしょうか?
0985デフォルトの名無しさんNGNG
うんこはクソだろ・・・?
0986デフォルトの名無しさんNGNG
>>984
> Tomcatを再起動させなくてもservletは動作可能なのでしょうか?

可能です。

> また、WEB-INF以下に設置しなくても動作可能なのでしょうか?

不可能です。


初心者なら、NetBeans使え。
0987初心者1号NGNG
ご回答ありがとうございます >>986

ということはローカルでjavacを行い、サーバ上のWEB-INF以下に
アップロードしweb.xmlをWEB-INF以下に設置しパスを指定すれば
よいということですよねぇ?
0988うんこNGNG
>>980
request.getServerPort()で得られるものとはどう違うんでしょう?
0989デフォルトの名無しさんNGNG
>パスを指定すれば
激しく意味不明
0990987NGNG
servlet-mappingのことなんですが
/servlet/*....
みたいなパスで呼び出せるようにするみたいな
0991デフォルトの名無しさんNGNG
すいません、いくら調べても結論のでている回答がないので質問させてください。
DNSのキャッシュに関してなんですが、

java.security.Security.setProperty("networkaddress.cache.ttl","0");
java.security.Security.setProperty("networkaddress.cache.negative.ttl","0");
でもダメで、
System.setProperty("networkaddress.cache.ttl","0");
System.setProperty("networkaddress.cache.negative.ttl","0");
でもダメで、
  起動コマンドに、
  java -Dnetworkaddress.cache.ttl=0 hoge.class
でもだめで、
  $JAVA_HOME/lib/security/java.security ファイルにnetworkaddress.cache.ttl=0を
  追加したら、想定通りにDNSキャッシュを無効に出来ました。

セキュリティマネージャーがロード時にこの値を取り込んでくれるようなのですが、
この値をファイル編集ではなく、プログラム内から変更することはできないのでしょうか。


0992デフォルトの名無しさんNGNG
>>985
うんこなんてどこにも書いてないよ
0993デフォルトの名無しさんNGNG
ゆ、ゆないてっど・きんぐだむ
0994デフォルトの名無しさんNGNG
画像Aと画像Bを読み込んでピクセル毎に平均を取った画像Cを出力するプログラムを作ろうとしました。
MemoryImageSource source;
source = new MemoryImageSource(640, 480, pix, 0, 640);
Image im = createImage(source);
if (ImageIO.write((BufferedImage) im, "png", outfile)) { //

3行目で、シンボルを解決できません。
シンボル:メソッド createImage (java.awt.image.MemoryImageSource)
場所  :ImageIOTest2 の クラス
      Image im = createImage(source);
            ^
となってしまいます。JAVAはJ2SDK 1.4.2_05で、importは
java.awt.*; java.awt.image.*; java.awt.Graphics;
java.awt.image.MemoryImageSource;
javax.imageio.*; java.io.*;
をしています。どなたかご教授ください。
0995デフォルトの名無しさんNGNG
>>994
そのコードがあるクラスのスーパークラスがcreateImageメソッドを持ってないんだと思うが。
0996デフォルトの名無しさんNGNG
>>995
いえいえ・・
ちゃんと持ってますよ。
勝手に決め付けないでください。(--);
0997デフォルトの名無しさんNGNG
>>991
プログラムから変更できたらセキュリティマネージャの意味ないじゃん

dnscache.propertiesファイル
-------------------------------------------------------------
networkaddress.cache.ttl=0
networkaddress.cache.negative.ttl=0
-------------------------------------------------------------

java -Djava.security.properties=dnscache.property Foo

とかじゃだめかい?
0998デフォルトの名無しさんNGNG
998!!
0999デフォルトの名無しさんNGNG
>>996
コンパイラが解決できねーっつてんだ。
ソース見直せ。
1000デフォルトの名無しさんNGNG
1000
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。