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

このエントリーをはてなブックマークに追加
830デフォルトの名無しさん:2005/05/18(水) 16:54:59
ここjavaか、失礼
831デフォルトの名無しさん:2005/05/18(水) 17:09:58
>>825
Listの<T> T[] toArray(T[] a)ですかね?
double d[] = m.getDoubleList().toArray(double[] d);
としてもトークンに構文エラーがあると言われますし、googleでtoArrayを調べても
引数はT[] aではなくObject[]だと書かれています…
832デフォルトの名無しさん:2005/05/18(水) 17:33:15
>>824(831)
>(double[])とキャストしようとしても駄目でした

キャストするならこうする。↓
double d[] = (double[])(m.getDoubleList().toArray());

833デフォルトの名無しさん:2005/05/18(水) 17:43:00
>>832
Object[]からdouble[]へのキャストはできないと言われるんですが
834デフォルトの名無しさん:2005/05/18(水) 17:46:08
>>831
それ構文おかしいから

本当に検索したのか?
835832:2005/05/18(水) 17:48:26
ごめん。プリミティブ型か・・・。

ん?

Σ( ̄□ ̄)



double の List ってそもそもなんやねん・・・。
836デフォルトの名無しさん:2005/05/18(水) 17:51:35
ちょっと待って
Doubleかも
837デフォルトの名無しさん:2005/05/18(水) 17:58:14
(m.getDoubleList()).toArray(Double[]);
じゃないの。
838デフォルトの名無しさん:2005/05/18(水) 18:04:07
Double [] d0 = (Double[])m.getDoubleList().toArray();
double [] d = d0;
839デフォルトの名無しさん:2005/05/18(水) 18:08:30
double [] d = new double[d0.length];
for (int i = 0, m = d0.length; i < m; i++) {
d[i] = d0[i].doubleValue();
}

こうしないといけないのかなあ?
840デフォルトの名無しさん:2005/05/18(水) 18:22:51
申し訳ない。そのクラスのJavadocにdoubleて書いてたんだけど、Doubleの
間違いだったみたいです
Double[]でキャストすると例外が出る理由はわからないけど…
841832:2005/05/18(水) 18:28:25
Double でいいんなら

Double d[] = (Double[])(m.getDoubleList().toArray());

> 例外が出る理由はわからないけど…
その例外が何かくらい書け。
842デフォルトの名無しさん:2005/05/18(水) 18:37:31
だからtoArray(Object[])のほうだとなんd
843デフォルトの名無しさん:2005/05/18(水) 18:54:27
Double d[] = (Double[])(m.getDoubleList().toArray(new Double[m.getDoubleList().size()]));
844デフォルトの名無しさん:2005/05/18(水) 19:01:24
一人わざと通らない書き方を教えようとしてるやつがいる
845デフォルトの名無しさん:2005/05/18(水) 19:44:05
匿名内部クラスにをスレッドを
書いたのですがそれのstartの
させ方はどうすればよいのですか?
846デフォルトの名無しさん:2005/05/18(水) 19:58:45
>>845
好きにすればいい。
っつか、start() 出来ない理由がわからん。
847デフォルトの名無しさん:2005/05/18(水) 20:21:30
とりあえず助詞をはっきりさせてくれないと、解釈できん。
848デフォルトの名無しさん:2005/05/18(水) 20:32:10
>>840
toArray()は、List内の型に関係なく、Object[]を返す。
Double[]をObject[]にキャストしたものではなくて、new Object[]したものを返す。

で、Object[]はDouble[]にキャストできない。ダウンキャストになってないし、Object[]型はDouble型に
変換できない。

Object o = new Object();
Double d = (Double)o;

がエラーになるのと同じこと。
これが (Object[])new Double[]ってな、もともとDouble[]型だったものをObject[]にキャストした
ものだったら、Double[]型に戻せるわけだが、toArray()が返すのは new Object[]で作ったものだ。

new Double[]したものを返して欲しかったら、他の人が言ってるように引数付きのtoArray()で
newする型を指定してやらないといけない。
849:2005/05/18(水) 23:13:05
サウンドを取得再生する方法を教えてくださいm(__)m
850デフォルトの名無しさん:2005/05/18(水) 23:49:49
JavaSoundは調べたのかい?
851デフォルトの名無しさん:2005/05/18(水) 23:53:04
JavaSounds
852デフォルトの名無しさん:2005/05/18(水) 23:53:58
単にappletでauファイルをサーバーから取ってきて鳴らしたいだけだったら笑えるな。
853デフォルトの名無しさん:2005/05/18(水) 23:54:51
JDK 1.4 使って XML + XSL から HTML 作っています。XSL の出力エンコーディングで
euc-jp を指定してやると (<xsl:output method="html" encoding="euc-jp" />) 出力される
HTML のダブルバイト文字がすべて &#dddd; のエンティティ表記になります。

Shift_JIS や utf-8 だとこんなことはないのですが、euc-jp で日本語を出すにはどうしたら
良いでしょうか?
854デフォルトの名無しさん:2005/05/18(水) 23:58:10
どういうPG組んでるか?
856デフォルトの名無しさん:2005/05/19(木) 00:02:18
>>855
ちがうって、多分アジア系の留学生だろ
857デフォルトの名無しさん:2005/05/19(木) 00:03:34
ピグモン?
858デフォルトの名無しさん:2005/05/19(木) 00:05:09
>>854
StreamSource xslsrc = new StreamSource(xslfile);
StreamSource xmlsrc = new StreamSource(xmlfile);
StreamResult htmlresult = new StreamResult(htmlfile);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(xslsrc);
transformer.transform(xmlsrc, htmlresult);

だがこういう意味じゃなくて? xslfile, xmlfile, htmlfile は File 型。
元の XSL ファイルは Shift_JIS、XML は utf-8 だす。
859デフォルトの名無しさん:2005/05/19(木) 00:06:16
アナタ シャチョか?
860デフォルトの名無しさん:2005/05/19(木) 00:07:32
シャチョさん
861デフォルトの名無しさん:2005/05/19(木) 15:04:42
JAVA1.5では1.4のときと比べて
GUIのTextAreaの使い方変わってませんか?
862デフォルトの名無しさん:2005/05/19(木) 15:17:56
そう思う理由は?
863デフォルトの名無しさん:2005/05/19(木) 18:02:00
Javaでwebブラウザを作ろうと思うのですが、
HTMLの描画に関して、IEコンポーネントなどを
使うなんて事はできるんでしょうか?
864デフォルトの名無しさん:2005/05/19(木) 19:08:38
>>863
Firefox+Javaでググリマクリスティ
865デフォルトの名無しさん:2005/05/19(木) 19:28:08
シャチョか?
866デフォルトの名無しさん:2005/05/19(木) 20:04:00
シャチョさんシャチョさん
867デフォルトの名無しさん:2005/05/19(木) 20:33:08
>>863
JDIC でブラウザコンポーネント使えるように頑張ってる。
https://jdic.dev.java.net/
868デフォルトの名無しさん:2005/05/19(木) 22:17:02
>>864
ググってみましたが、特に関係ありそうな結果はでず・・・
どういうことなんでしょう?

>>867
おお、そこのデモにあるブラウザは確かにIEコンポーネントのようですね。
JDICパッケージならば使えるって事なのかな?
調べてみる事にします。
869デフォルトの名無しさん:2005/05/19(木) 22:25:05
抽象クラスとインタフェースがイマイチよく理解できません。
分かりやすく教えてください。
870デフォルトの名無しさん:2005/05/19(木) 22:32:43
871デフォルトの名無しさん:2005/05/19(木) 23:21:35
違うクラスでも、呼べるメソッドが同じならもう一緒ってことにしとこうよ、というのがインターフェース。

同じくスーパークラスが同じだったら、もう同じってことにしとけるよね。スーパークラスはサブクラスで
置き換え可能だから。

じゃあ継承することが前提の、共通部分だけ実装した基礎クラスみたいなの作っちまって、サブクラスで
未実装のとこだけ実装させようってのが抽象クラス。抽象クラス自体はインターフェースみたいな役割も
もってる。
872デフォルトの名無しさん:2005/05/19(木) 23:58:26
>>871
abstractは完全抽象クラスじゃなくてもいいんだ。やば、仕事でOOなんか使わないから忘れつつある。
873デフォルトの名無しさん:2005/05/20(金) 00:38:51
switch文を使い、成績が5→「大変優秀」、4→「優秀」、3→「普通」、それ以外→「もっとがんばろう」
というメッセージを出すプログラムを作成しなさい。

さっぱりです、おねがいします。
874デフォルトの名無しさん:2005/05/20(金) 00:45:40
>>873
★★ Java の宿題ここで答えます part51 ★★
http://pc8.2ch.net/test/read.cgi/tech/1112154540/

もっとがんばろう。
875デフォルトの名無しさん:2005/05/20(金) 00:47:55
switch(hoge)
case 5:
 大変優秀
・・・略・・・
case 3:
 普通

default:
 もっとがんばろう


ってか、この問題が本当にさっぱりわかんないんだったらプログラム向いてないぞ
876デフォルトの名無しさん:2005/05/20(金) 00:49:20
>>875
error:ツッコミどころが多すぎます。

Error:1
877デフォルトの名無しさん:2005/05/20(金) 00:49:25
>>874
誘導有難うございます。
当方JAVA初心者で自宅のPCにJAVAを落としたのですが
いまいち使い方がわからなくて(学校のと違うため)かきこんでしまいました。
878あんま良いネタ思いつかねぇ:2005/05/20(金) 00:51:56
end:
switch(seiseki){
case 5:
  System.out.println("大変優秀");
  break end;
default:
  switch(seiseki){
  case 4:
    System.out.println("優秀");
    break end;
  default:
    switch(seiseki){
    case 3:
      System.out.println("普通");
      break end;
    default:
      System.out.println("もっとばんがろう");
      break end;
    }
  }
}
879デフォルトの名無しさん:2005/05/20(金) 01:10:59
880デフォルトの名無しさん:2005/05/20(金) 01:11:35
>>878
>end:

ラベルがポイントか?
881デフォルトの名無しさん:2005/05/20(金) 01:19:20
>>880
おお、これで一気に抜けられるぜw
882デフォルトの名無しさん:2005/05/20(金) 01:50:56
以下、文法規則すら違う>877の「学校のJava」と「自宅のJava」とは何なのかについて推察するスレ。
883デフォルトの名無しさん:2005/05/20(金) 01:55:50
学校のJava = JavaScript
884デフォルトの名無しさん:2005/05/20(金) 01:56:46
派遣のJava = JavaScript
885デフォルトの名無しさん:2005/05/20(金) 02:31:57
JavaScriptのほうが難しい
Webにまともなリファレンスが少ないし、IDEの補間もないし、バグでほうだいだし
886デフォルトの名無しさん:2005/05/20(金) 03:13:02

以下、C言語理解は優れるが日本語理解が乏しい>>882が日本語を学ぶスレ
887デフォルトの名無しさん:2005/05/20(金) 12:35:58
>>886
>学校のと違うため
っていうところじゃないか?
888デフォルトの名無しさん:2005/05/20(金) 12:37:45
単にバージョンが違うか学内専用のJAVAなのかというだけだろ

889デフォルトの名無しさん:2005/05/20(金) 12:45:30
java.lang.Longクラスを見ていたら、
JavadocにはlongValueというメソッドが記述されているのに、
PCにインストールした1.4.2_04にはそのメソッドが無い。

他にも相違するメソッドがちらほら。なんでだろ?
890デフォルトの名無しさん:2005/05/20(金) 12:52:55
891デフォルトの名無しさん:2005/05/20(金) 13:09:07
update()とかpaint()以外で g.drawString() するには
どうしたらいいですか?
CでWM_PAINT以外でTextOut()するならGetDC()でHDCが
得られますが、javaでは g を得る方法ってありますか?
public class _2ch extends Applet
{
public static void main(String[] args){
func();//ここでこのパネルのgを引数で渡す?
}
public void mygraph(){
g.drawString("2ch world!", 30, 30);//このgを得たい
}
}
892デフォルトの名無しさん:2005/05/20(金) 13:36:54
public void mygraph(Graphics g){ 略 }
ってやればいいんじゃない?
そういう問題じゃない?
893デフォルトの名無しさん:2005/05/20(金) 13:40:55
>>889
longValueってNumberで定義されてるし、ないってことはあるんか
894デフォルトの名無しさん:2005/05/20(金) 13:42:18
>>891
Graphics取得すればいい

>>892
重症
895デフォルトの名無しさん:2005/05/20(金) 13:49:47
>>892
凡人
>>894
エスパー
896デフォルトの名無しさん:2005/05/20(金) 14:04:23
>>894
不親切
897デフォルトの名無しさん:2005/05/20(金) 14:09:23
getGraphics()
898デフォルトの名無しさん:2005/05/20(金) 14:11:23
おおっもう少しです!!
import java.applet.*;
import java.awt.*;
public class _2ch extends Applet
{
public static void main(String[] args){
mygraph();//ここでこのパネルのgを引数で渡す?
}
public static void mygraph(){
Graphics g = Graphics.getGraphics();
g.drawString("2ch world!", 30, 30);//このgを得たい
}
}
899デフォルトの名無しさん:2005/05/20(金) 14:12:19
出ましたっ!!
C:\WINDOWS\デスクトップ\新しいフォルダ>javac _2ch.java
_2ch.java:9: シンボルを解釈処理できません。
シンボル: メソッド getGraphics ()
位置 : java.awt.Graphics の クラス
Graphics g = Graphics.getGraphics();
^
エラー 1 個
900デフォルトの名無しさん:2005/05/20(金) 14:20:18
アプレットのほうのGraphicsを取得しろよ・・・
901デフォルトの名無しさん:2005/05/20(金) 14:33:55
うまくいかないでし。
import java.applet.*;
import java.awt.*;
public class _2ch extends Applet
{
public static void main(String[] args){
mygraph();//ここでこのパネルのgを引数で渡す?
}
public void mygraph(){
Graphics g = this.getGraphics();//thisはこのアプレット
g.drawString("2ch world!", 30, 30);
}
}
///static でない メソッド mygraph() を static コンテキストから参照できない
902デフォルトの名無しさん:2005/05/20(金) 14:55:06
なんで main から呼び出そうとしているのか
というか、もっと考えようよ
アプレット以前の問題じゃないかい?
903デフォルトの名無しさん:2005/05/20(金) 15:14:46
アプレットとアプリケーションの区別がついてないってか
904デフォルトの名無しさん:2005/05/20(金) 15:30:10
適当なアプレットのソースを見た方が解決が早い。
905デフォルトの名無しさん:2005/05/20(金) 16:01:25
_2ch ni = new _2ch();
ni.mygraph();
906デフォルトの名無しさん:2005/05/20(金) 16:25:49
アプレットのプロジェクトが、急に起動しなくなりました。
sun.applet.AppletViewer at localhost:1304
Thread [main] (Suspended (exception NullPointerException))
TrueTypeFont.open() line: 246
TrueTypeFont.verify() line 368
TrueTypeFont.<init>(String, Object, int, boolean) line 153
FontManager$1.run() rine: 205
AccessController.doPrivileged(PrivilegedAction<T>) line not available [native method]
(以下略)

TrueTypeFontとか出てますが、プロジェクトでもExplorer上でも、
いじったりなどしていないし…なんでしょう?
907デフォルトの名無しさん:2005/05/20(金) 16:34:26
>>775で動的なJNLPの動的な応答について、質問したものです。
前よりマシな方法があったので、レスしておきます。

>>777で書いたように、
1) ブラウザから呼出 → サーブレット → パラメータを処理してjnlpを返却
2) Java Web Startが起動
3) 受け取ったJNLPのhrefを属性を見て、Java Web StartがJNLPファイルをリクエスト
4) jarのダウンロードと、アプリケーションの実行

3)の、「href属性を見て、Java Web StartがJNLPファイルをリクエスト」してくる時に、
サーバー側で、1)と同じレスポンスができない事が問題でした。
1)で返すJNLPレスポンスで、href=""として返すようにしたところ、
3)のリクエストが来なくなり、1)で返したJNLPデータで起動するようになりました。

その代わり、アプリケーションマネージャには、ダウンロード済みのアプリケーションとして
表示されなくなりました。ローカルのJNLPファイルのキャッシュが作成されなくなりました。
(ダウンロードされるJARファイルはキャッシュされます)

>>775参考サイトのように、アプリケーションマネージャに、
同じアプリがたくさん表示されるよりはマシだと思います。
908デフォルトの名無しさん:2005/05/20(金) 20:59:35
XMLEncoder encoder = new XMLEncoder(new FileOutputStream(file));
encoder.writeObject(this);
encoder.close();

でXMLでファイルに永続化しようとしたんですけど、ファイルには

<?xml version="1.0" encoding="UTF-8"?>
<java version="1.5.0_02" class="java.beans.XMLDecoder">
<object class="Config"/>
</java>

しか書かれません

どうすれば、インスタンスの情報をファイルに書き出せますか?
909デフォルトの名無しさん:2005/05/20(金) 21:08:11
おまえら おかしすぎ わらってしまった Applet&main
910デフォルトの名無しさん:2005/05/20(金) 21:40:58
お笑いの人?プロフェッショナルなボケですね
911デフォルトの名無しさん:2005/05/20(金) 21:44:27
>>908
書き込もうとしてるオブジェクトはJavaBeans?
912908:2005/05/20(金) 23:14:43
>>911
普通に作ったクラスです
JavaBeansとかじゃないとダメなんですか?
どうすればJavaBeansにできますか?
913デフォルトの名無しさん:2005/05/20(金) 23:16:41
>>912
普通にクラス作っただけでもJavaBeansっちゃあJavaBeans。
>>911が何を聞きたいのかしらんけど、セッターゲッターでのプロパティを持つかどうかかな。
914デフォルトの名無しさん:2005/05/20(金) 23:33:43
昔はJavaBeansっていったら、BeanDevelopmentKit(BDK)で使うものっていう解説が多かったな
java.beans.BeanInfo 使っているやついるのかな?いまでも
915デフォルトの名無しさん:2005/05/20(金) 23:53:06
>>913
JavaBeansじゃないとXMLEncoderはきれいにまわらんよ
つまりせったーとげったー使ってるわけだが
916908:2005/05/21(土) 00:06:09
セッターとゲッターをちゃんと作ってやれば、XMLで出力できるんですね
とりあえず、Eclipseで作ってみましたけど、まだ同じ結果でした

セッターとゲッターがちゃんと作られてるかみなおしてみます
917デフォルトの名無しさん:2005/05/21(土) 00:09:31
getの後は大文字で・・・とかそういう決まりごとどっかにあったような・・・
それに反すると駄目だよね

>>908
ソース見せろ
918908:2005/05/21(土) 00:26:38

ソースは、ここの
http://www.geocities.jp/retort_curry119/StockGraphSrc0.4.jar

Config.java です
よろしく〜
919デフォルトの名無しさん:2005/05/21(土) 01:07:51
まず短いコードでやってみな
920908:2005/05/21(土) 01:32:58
多分判りました
セッターでセットした値でないと書き出されないみたいですね
921デフォルトの名無しさん:2005/05/21(土) 01:45:25
なにを当たり前のことを・・・
922デフォルトの名無しさん:2005/05/21(土) 01:50:30
Eclipseユーザだったら、EMF使うと気持ちいいんだけどね。
オブジェクトの永続化とか。いろいろプラグイン突っ込んでると
知らない間にインストールされてるし。
923908:2005/05/21(土) 02:09:03
上手くいったと思ったけど、やっぱりダメです

短いのを作ってみたけど、上手くいかなかったです
http://www.geocities.jp/retort_curry119/Tesxml.java

t.setA(777) のコメントを外すと、 a だけは書き出されたんですけど。

セッターでセットした値じゃなくても、
コンストラクタでセットした値は書き出して欲しいです
924デフォルトの名無しさん:2005/05/21(土) 02:40:32
>>923
JavaBeansのコンストラクタは引数を持てなかったはず。
あとBetwixtでは駄目なの?
フォーマットを変えたくなった時とかでも、.betwixtを書き
替えるだけで済むし、なにより簡単。
925924:2005/05/21(土) 02:42:40
今、ソース見た。
コンストラクタの中でセットした値って意味かorz
2行目は取り消しということで
926デフォルトの名無しさん:2005/05/21(土) 02:51:59
>>924
×JavaBeansのコンストラクタは引数をもてない
○JavaBeansは引数のないコンストラクタを持たなければならない

>>923
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/beans/XMLEncoder.html
>コンパクトな構造: XMLEncoder クラスは内部で冗長性削減アルゴリズムを使用するため、
>Bean のプロパティのデフォルト値がストリームに書き込まれない

たぶん読み込みなおしたらどうせ設定されるんだから書き込む必要はないということだ。
927デフォルトの名無しさん:2005/05/21(土) 03:00:19
>>924
Betwixtは知りませんでした
ググってみます

>>926
なるほどー
コンストラクタ内で値を設定すると
それと同じ値をセッターでセットしても書き出されないんですね


ありがとうございました
928デフォルトの名無しさん:2005/05/21(土) 03:10:35
LinuxでMySQLに接続できません。

DriverManager.getConnection("jdbc:mysql://localhost/testdb?useUnicode=true",user,pass);

で↓こんな例外がでるのですが、、

Exception in thread "main" java.sql.SQLException: null, message from server: "Host 'localhost.localdomain' is not allowed to connect to this MySQL server"

これってどんなエラーか分かりますか?
DBもつくってあるのですが、、MySQLとコネクタの相性か?ともに最新で、次のものを使ってるのですが。
LinuxはFeradoCore2 MySQLは3.23.58-9.1、コネクタは3.2.0-alpha

だれか助けて〜
929デフォルトの名無しさん
簡単に言うと
MySQLはユーザIDとパスワードの他に接続元のIPアドレスの3つの組で接続の許可・拒否している
MySQLのコマンドで
mysql>select * from mysql.user;
ってやてみたらわかる
その中の
Host,User,Passwdが一致していないと駄目だ
(ちなみにPasswdは暗号化されている)
そこに無ければlocalhostのユーザ追加してやれ