【初心者】Java質問 ..
[2ch|▼Menu]
653:デフォルトの名無しさん
08/08/25 17:28:36
>>651ですが
どう設定すればいいか教えてください。おねがいします


654:デフォルトの名無しさん
08/08/25 17:44:14
>>653
入門書なら設定の仕方とかは書いていると思いますよ。
もし書いていないならその本は捨てても構わないと思いますよ。

655:デフォルトの名無しさん
08/08/25 19:36:02
オプションパッケージはインスコするかバンドルするかってちゃんとjavadocに書いてあるだろうがjavadoc嫁。
それにオプションパッケージのreadmeにも書いてある。

JMFのインストーラ版なら決め打ちで勝手にパス通すが。

656:デフォルトの名無しさん
08/08/25 22:04:55
一週間くらい前に、デザインパターン入門の本を教えてくれた人、マジありがとうございます。
いい本ですね。

657:デフォルトの名無しさん
08/08/25 22:24:13
どのあたりがいい本なのか書かないと

658:デフォルトの名無しさん
08/08/25 22:31:38
そもそもどの本だ?

659:デフォルトの名無しさん
08/08/25 22:32:54
文章が読みやすい
例が簡潔でわかりやすい
細かいフォローもばっちり
デザインパターンをそれぞれ関係づけてあって覚えやすい

基礎から実践に近づくために必要な知識が効率的に吸収できます。

660:デフォルトの名無しさん
08/08/25 22:42:54
教えてくれた人にだけわかればいいから質問してくんなよ。ケッ。

661:デフォルトの名無しさん
08/08/26 00:16:44
その本を超えるようなホームページを作ってください!

662:泣きそうです
08/08/26 13:35:45
下記のXMLで、key1とval1を出力したいのですが、
取得の仕方がイマイチ分かりません。
いろいろ試したのですが、コンパイルとかエラーになって・・・
どなたか、取得の仕方を教えて下さい。
-----------[testXml.xml]------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<config>
 <ptn1_data1>
  <element key="a1" val="a01"/>
  <element key="a2" val="a02"/>
 </ptn1_data1>
 <ptn2_data2>
  <element key="x1" val="x01"/>
  <element key="x2" val="x02"/>
 </ptn2_data2>
</config>
--------------------------------------------------------


663:泣きそう
08/08/26 13:47:24
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;

class testXml
{
  public static void main(String args[]) throws Exception
  {
   DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
   DocumentBuilder db = dbf.newDocumentBuilder();
   Document doc = db.parse(new FileInputStream("testXml.xml"));
   Element root = doc.getDocumentElement();
   walk(root);
  }



664:泣きそう
08/08/26 13:49:43
  public static void walk(Node n)
  {
   for(Node ch = n.getFirstChild();
        ch != null;
        ch = ch.getNextSibling()){

     if(ch.getNodeType() == Node.ELEMENT_NODE){
      System.out.println("ELEMENT_NODE:"+ch.getNodeName());
      walk(ch);
     }
     else if(ch.getNodeType() == Node.TEXT_NODE && ch.getNodeValue().trim().length() !=
0){
      System.out.println("  TEXT_NODE:"+ch.getNodeValue());
     } else {
      System.out.println( ・・・・key1を出力したいです);
      System.out.println( ・・・・valを出力したいです);
     }
   }
  }
}



665:泣きそう
08/08/26 13:50:39
長く書いてしまってごめんなさい。
けど、どなたか教えて下さい。
お願いします

666:デフォルトの名無しさん
08/08/26 14:18:49
>>662

Document doc = db.parse(in);
NodeList l = doc.getElementsByTagName("element");
if (null == l) {
  System.out.println("タグ element はありません。");
} else {
  System.out.printf("タグ element は %d 個あります。\n", l.getLength());
  for (int i = 0; i < l.getLength(); ++i) {
    NamedNodeMap n = l.item(i).getAttributes();
    System.out.printf("\t[key=%s],[val=%s]\n"
        , n.getNamedItem("key").getNodeValue()
        , n.getNamedItem("val").getNodeValue());
  }
}


667:デフォルトの名無しさん
08/08/26 14:43:34
それ以前にxmlの設計が腐ってる。
xmlスレ行って出直して来い。

668:デフォルトの名無しさん
08/08/26 15:30:04
>662
コンパイルエラー
URLリンク(javafaq.jp)

669:デフォルトの名無しさん
08/08/27 00:15:27
>>662
普通はこんなかんじ。
indexはいらんかも。

<config>
 <ptn_data index="1">

 </ptn_data>
 <ptn_data index="2">

 </ptn_data>
</config>

670:デフォルトの名無しさん
08/08/27 07:37:12
すいませんが教えてください。
自分で作った実行ファイルがあります(文字コードMS932)→Test.class
これをbatファイル(文字コードEUC-JP)で実行します。
batファイルの中身は
java Test 日本語パラメータ
で、batファイル自体は文字コードEUC-JPです。
この場合引数で受け取った"日本語パラメータ"という文字列を
プログラム内ではMS932として、文字化けせず"日本語パラメータ"として処理を行いたいのですが
どうすればいいでしょうか?

まず、batファイルをダンプして"日本語パラメータ"という文字列を見た場合と
args[0]をarg[0].getBytes()してダンプ出力した結果が違うのです。
ためしにarg[0].getBytes("EUC-JP")してもこれもまた上とはまた違った結果になります。
もう、引数で渡されてきた時点でデータが壊れているのでしょうか?

671:デフォルトの名無しさん
08/08/27 07:59:53
>>670
コマンドラインはプラットフォームのデフォルトエンコーディングで扱
われると思う。batファイルとか書いてあるってことはWindowsかね。で
あれば、コマンドラインはms932で書かないと化ける。

ところで「実行ファイルの文字コードがms932」ってどういう意味?



672:デフォルトの名無しさん
08/08/27 08:02:34
>>670
echo 日本語パラメータ

だけの内容のbatファイルをEUC-JPで作成して試してみ?
たぶん引数の前、コマンドラインシェルが解釈した段階で化けてると思うぞ。

673:デフォルトの名無しさん
08/08/27 11:33:28
一旦バイトコードに変換してから処理したいんですが
文字化けを起こして出来ません。

PrintWriter out = response.getWriter();
//String val = request.getParameter("kanji");
//byte[] byteData = val.getBytes("Shift_JIS");
//val = new String(byteData, "Shift_JIS");
out.print(val);

コメントアウトを外すと文字化けを起こします。
表示先は文字コードはShift_JISであっている筈なんですが・・・
単純に両方Shift_JISをピンポイントで指定してるのに
なぜ化けるのでしょうか?バイトコードへ変換して戻す処理の中で何かデータの欠損でも起きているのでしょうか?


674:デフォルトの名無しさん
08/08/27 12:30:06
SJIS外の文字は入ってないの?

675:デフォルトの名無しさん
08/08/27 12:43:56
>673
1. response の PrintWriterオブジェクトの文字コードは何なのかしら?
2. request は正しい文字コードで入力を読み取ってるかしら?
3. 674 のように Shift_JIS外の文字は入ってないかしら?
4. response で出力した先の文字コードは 1 と同じかしら?

676:デフォルトの名無しさん
08/08/27 15:35:15
行き詰まっているので質問させて下さい。
データベースに日付を管理するresettime・・・というテーブルがあります。
そのテーブルにはtimeというdate型のカラムがあり2008-08-27という値が格納されています。
んでソースです。
public void checkDate() {
Date now = new Date();//今日の日付
String sqlIndex = "select * from resettime";
try {
db.connect();//データベースに接続する
ResultSet rs = db.executeQuery(sqlIndex);//Statementのと同じ機能
rs.next();
if(now.after(rs.getDate("time")//今日の日付のはず)) { //※問題の箇所
String[] sql = new String[2];
sql[0] = "delete from popularmovieinfunnymoviechannel";
sql[1] = "update resettimeinfunnymoviechannel set time = '"+now+"'";
db.addBatch(sql);
db.executeBatch();//Statementのと同じ機能
}
}
catch(SQLException e) {

}
finally {
db.disConnect();//データベースを切断する
}
}
問題の箇所がtrueとなってしまい上手くいきません。バグっぽい箇所が在ればご教授下さい
jreは6_7です。



677:デフォルトの名無しさん
08/08/27 15:38:43
nowは今日の日付に加えて現在の時刻も入ってるはず
そのDBのdate型が時刻を格納してないなら00:00:00になるはず
今日の現在時刻と今日の00:00:00を比較したらどうなるかというと・・・

678:デフォルトの名無しさん
08/08/27 15:43:11
RMiの呼ばれる実装クラスにて、要求先のIPアドレスを取得する方法はあるでしょうか?
引数で情報を渡すはなしでお願いします。

679:デフォルトの名無しさん
08/08/27 15:51:05
>>673
request.setCharacterEncodingでSHIFT_JISを有効にする。
あと、Tomcat5.0以降のバージョンでGetの処理すると、
デフォルトの動作でsetCharacterEncodingが無効になるから注意。
server.xmlの変更で対処して。そのあたりはググれば出てくる。

680:デフォルトの名無しさん
08/08/27 15:55:34
>>677 nowをjava.sql.Date()のインスタンスにしてもtrueになるんですけど・・・
jre変えてみまッス。


681:デフォルトの名無しさん
08/08/27 16:05:40
>>680
java.sql.Dateも一緒
Javadoc見てみ、時間をミリ秒で表すって書いてある
URLリンク(java.sun.com)

682:デフォルトの名無しさん
08/08/27 16:20:08
結局データーベースから取ったDateとDateインスタンスは比較しても無駄って事ですか?

683:デフォルトの名無しさん
08/08/27 16:24:51
>>682
java より先に小学生レベルの時刻の概念から学んだ方がいい

684:デフォルトの名無しさん
08/08/27 16:28:50
>683 あいそうします。ありがとうございました。

685:デフォルトの名無しさん
08/08/27 16:55:15
時間・時刻を比較したいのか

686:デフォルトの名無しさん
08/08/27 17:11:31
afterとbeforeの動作を誤解してるとかじゃないよね?

nowが現在の時刻なんだから、それよりもafterな時刻なんて
存在しない……だから、”問題の箇所”は常にtrueになって当たり前。

687:686
08/08/27 17:13:43
「それよりもafter」って変だったorz

現在の時刻よりも、未来の時刻は存在しないから
”問題の箇所”は常にtrueって言いたかった……

688:デフォルトの名無しさん
08/08/27 21:01:43
>>686 もしjava.sql.Date型同士のインスタンスを比較するとして両方のインスタンスが
同年同一日ならafterでもfalseが帰る。

689:680
08/08/27 21:20:11
>681 nowの方の日にちを調整することで解決させました。
このまま行ってたら大きな誤解を持ったまま行くところでした。thx。

690:デフォルトの名無しさん
08/08/27 21:30:00
Component component = new JScrollPane(new JPanel());
JTabbedPane jtp = new JTabbedPane();
jtp.addTab(component);

のように書いた時に、後々componentを取得する方法はあるで
しょうか。
ご教授お願いします。

691:690
08/08/27 21:40:35
すみません。690ですが
取得したいのはcomponentではなくて、
スクロールペインの中のJPanelでした。

宜しくお願いします。

692:デフォルトの名無しさん
08/08/27 22:16:21
Strtusについて質問です。

public void setGoods(ArrayList<String> goods){
this.goods = goods;}
public void setNumber(ArrayList<String> number){
this.number = number;}

このようにしてBeanに格納したArrayListを、

<logic:iterate id="name" name="Bean">
<bean:write name="name" property="number" />:
<bean:write name="name" property="goods" /><br>
</logic:iterate>

上記のJSPで出力しようとしてもエラーが出ます。

<logic:iterate id="name" name="Bean" property="number">
<bean:write name="name" />
</logic:iterate>
<logic:iterate id="name" name="Bean" property="goods">
<bean:write name="name" />
</logic:iterate>

こういった書式だと値の表示は可能ですが、当然出力位置が変ってしまいます。

number1:goods1
number2:goods2
number3:goods3

最終的にこういう表示をさせるにはどういった書き方をすればいいでしょうか。


693:デフォルトの名無しさん
08/08/27 23:17:58
>>691
((JScrollPane)component).getViewport().getView()

694:デフォルトの名無しさん
08/08/28 01:24:16
>>693

ありがとうございます。
お陰で無事解決しました。

695:688
08/08/28 09:17:37
ごめ、嘘ブッコイタ。

696:デフォルトの名無しさん
08/08/28 10:11:00
>>678
java.rmi.server.RemoteServer.getClientHost() でガマンしろ。

697:デフォルトの名無しさん
08/08/28 11:33:18
まったくの初心者です。よろしくお願いします。

Javaの勉強をしようと思い
「JDK 6 Update 7」をダウンロードしてインストールしてみました。
環境変数を設定した後に、バージョンが正しいか確認してみたのですが、

C:\>java -version
java version "1.4.2_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)

と表示さてれました。
ただし、

C:\WINDOWS\system32>java -version
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)

だと、きちんと「JDK 6 Update 7」がインストールされているぽいのですが・・・

これってちゃんとインストールされた状態になったのでしょうか?

698:デフォルトの名無しさん
08/08/28 11:36:50
すでにインストールされてたっぽい JRE 1.4.2_03 は特に使わないなら削除してしまえ
あと javac -version も

699:デフォルトの名無しさん
08/08/28 11:45:50
>>698
レスありがとうございます。

C:\>javac -version
javac version "1.6.0_07"

C:\WINDOWS\system32>javac -version
javac version "1.6.0_07"

でした。

1.4.2_3の削除についてですが、

プログラムの追加と削除に無く、
レジストリ内も検索してみたのですがそれらしいのが無いため

どこから削除すればよいでしょうか?


700:692
08/08/28 11:54:23
自己解決しました。
ありがとうございました。

701:デフォルトの名無しさん
08/08/28 11:55:18
>>699
環境変数の PATH を確認する。
恐らく "C:\jdk1.4.2_03\bin" みたいなのが含まれているはず。

702:デフォルトの名無しさん
08/08/28 15:08:43
デザインパターンの本を買った人へ。
貴方のほらふきの癖を治せば、少しは友達が増えると思います。

703:デフォルトの名無しさん
08/08/28 16:32:37
javaでゲームのようなものを作っているのですが、(GUIです)質問させていただきます。
ゲームを起動すると
ログイン画面→どのゲームを選ぶかの選択画面→ゲームの画面
と画面を入れ替えていきたいのですが、どうやって処理すればいいでしょうか?
やはりカードレイアウトを使うしかないのでしょうか?画面の切り替えには・・・


704:デフォルトの名無しさん
08/08/28 16:50:41
質問させてください。
while文を回して配列に格納した多くのデータを、
終了後にファイルに出力するにはどうするのが一番効率的でしょうか?
ファイルの入出力がよくわからなくて…よろしくお願いします。

705:デフォルトの名無しさん
08/08/28 17:06:04
Ubuntuなら
update-alternativeっていうコマンドでやる。
PATHには入ってないんじゃないかな?
javaのパスを直接指定する人も珍しいだろうし。
とりあえず気休めだが、
JAVA_HOMEをいじっておけ。

706:デフォルトの名無しさん
08/08/28 17:58:51
>>704
効率なんか気にせず作ってみる
だいたい気にするほど遅くないことが多い
実際に気になるほど遅かったらそのときに訊くといい

707:デフォルトの名無しさん
08/08/28 18:01:26
>>703
古いコンポーネントをremoveして新しいコンポーネントをaddすることもできるよ

708:704
08/08/28 18:50:07
>>706
ありがとうございます。とりあえず作ってみます。

709:デフォルトの名無しさん
08/08/28 19:30:56
>>707
ありがとうございます。removeで取り除くことを忘れてました。。
カードレイアウトとどちらが良いんでしょう・・・

710:デフォルトの名無しさん
08/08/28 19:32:27
>>707
ありがとうございます。removeで取り除くことを忘れてました。。
カードレイアウトとどちらが良いんでしょう・・・カードは重くなりそうな印象で

711:デフォルトの名無しさん
08/08/28 19:35:01
二重・・・すいませんov2

712:デフォルトの名無しさん
08/08/28 23:13:00
>>710
印象で選択するのは危険。
実測してみればいい。

713:デフォルトの名無しさん
08/08/28 23:39:43
他のスレで話題に上がってて気になったんで質問。
Javaでチャット機能作る場合は一人に1スレッド設計しか無理なの?
サーバからのメッセージも随時受け取らないとダメだし

714:デフォルトの名無しさん
08/08/29 00:06:32
一人の何に1スレッドを当てるの?

715:デフォルトの名無しさん
08/08/29 00:55:57
スレッドは常にwhileで受信の準備をしてるんじゃない?

716:デフォルトの名無しさん
08/08/29 01:31:12
非同期

717:デフォルトの名無しさん
08/08/29 01:43:05
genericsについて質問です。
Parentクラスを継承するChildクラスを定義して下記コードを記述しました。

List<? extends Parent> list = new ArrayList<Child>();
list.add(new Parent());

上記コードでコンパイルエラーが出ます。
型を見るとadd()の引数がnullになってました。

きっとadd()しちゃいけないから引数の型がnullなんでしょうけど、
理由がよくわかりません。教えてくだしあ。

718:717
08/08/29 01:53:34
すんまそん。コードの2行目は

list.add(new Parent());
じゃなくて
list.add(new Child());
でした。どっちにしろ結果は同じなんですけどね。

719:デフォルトの名無しさん
08/08/29 02:02:59
>型を見るとadd()の引数がnullになってました。



720:デフォルトの名無しさん
08/08/29 03:21:38
>717
何度書いたか分からんが、ジェネリクスは静的解決、キャストは動的解決。

List<? extends Parent>
という宣言を書いたからオカシイ。

そもそも、宣言部分の代入式のほうで、<Child> としているではないですか。
何故、List<Child> と書かないのですか?

721:717
08/08/29 03:26:41
>>719
Eclipseでの話となりますが・・・
「list.」までを入力するとメソッド一覧が出てきますよね?
そこでaddの定義を見ると、add(null arg0)となっているんです。

addをCTRL+左クリックで表示されるクラスファイルエディターでも確認できます。

722:デフォルトの名無しさん
08/08/29 03:38:10
なんでジェネリックス入れてRTTI入れなかったんだっけ?
VMの実装が複雑になるから?

723:デフォルトの名無しさん
08/08/29 03:53:44
それがJavaだから。

724:デフォルトの名無しさん
08/08/29 04:10:33
>>717
List<? extends Parent>
には、Parent を継承したクラス Child1 や Child2 などを用いた
List<Child1> や List<Child2> などが代入されているかもしれない。
これらが同時に安全に add できるものは、
どんな型にもキャストできる null しかない。

725:デフォルトの名無しさん
08/08/29 09:03:12
デュアルコアのCPUが2スレッドを同時に処理するJavaプログラムを動かすとします。
この場合1コアあたり1スレッドなんていう動作になるんでしょうか?

もしそうだとすればnコアでn未満のスレッドを動かしたときどうなるのか非常に気になりますが。

726:デフォルトの名無しさん
08/08/29 10:10:19
>>725
Sun の Java VM であればネイティブスレッドなので 1 コア 1 スレッドで動くことができる。
というか、1 コアが 1 スレッドしか動かせないと思ってないか?Intel だって Hyper Threading
で 1 コア 2 スレッド動かせるし、Sun の Niagara 3 にいたっては 1 コア 16 スレッド(1 CPU
16 コアなので全体で 256 スレッド)動くぞ?

> もしそうだとすればnコアでn未満のスレッドを動かしたときどうなるのか非常に気になりますが。
別に気にならないだろ。普通に動くだけだが、何か変な妄想してないか?
空いてるコアは別の仕事するだけだ。

727:デフォルトの名無しさん
08/08/29 10:22:07
従来のシングルコアで10スレッド動かしたら
1コア当たり何スレッドの処理をするんだろうか?
Javaプログラムだと5スレッドかもしれないし、100スレッドかもしれない
しかし、これだと処理されないスレッドが発生し、さらに
他のスレッドも待ち状態のままになり、見かけ上ではフリーズしたのと同じだ
これを回避するためにPentium4のHT技術が開発されたんだな
Intelすげえという電波ですねわかりません

728:デフォルトの名無しさん
08/08/29 14:55:48
コア数よりスレッド数が多い場合は見かけ上ではあるがOSがタイマー割り込みで実現する。
シングルCPU時代のスレッドは基本的に待機スレッド。
ビジースレッドの並列処理で処理効率をあげるような手法はマルチじゃないと意味はないが、
基本的にIOやイベント待ちでスレッドは止まっているものだ。
それからHTは微妙でビジースレッドの並列処理向きじゃないんだよな。


729:デフォルトの名無しさん
08/08/29 15:13:40
新規質問。

Servlet 作ってて困っているのだけど、
スレッドID ってスレッドが動いてる時に突然変更されることってありえる?

730:デフォルトの名無しさん
08/08/29 15:17:10
>>729
ない
ってJavadocに書いてあるよ

731:デフォルトの名無しさん
08/08/29 16:00:09
intelがjava bytecodeとclassesを直接読み取っちゃうCPU命令を実装してくれればいい。

732:デフォルトの名無しさん
08/08/29 20:56:38
>>731
死屍累々ってほどでもないが、すでにそういうチップは作られていて全く普及して無い。picojavaとか。
そもそも Java の byte code 自体がハードで実装するには不向きな内容だし。
昨今は実行時プロファイリングでホットスポットを解消するほうが実行速度が上がるし。

733:デフォルトの名無しさん
08/08/29 21:24:02
intelのfloatや超越関数とかの機械語は、ibmやsunから見ればハードでの実装は不向きな内容であって、
それこそsin[x]なんかはソフトウェア(ライブラリ)で実装するもんだろうな。

つまり、java bytecodeはハードでは不向きという考えは古い考えじゃないの?
君みたいなゴミにとってはこれぐらいの話しすらついて来れないんだろうけどww

734:デフォルトの名無しさん
08/08/29 21:26:14
jvmとjavaはもともとは家電(ハード)組み込みの設計だったしなぁ

735:デフォルトの名無しさん
08/08/29 21:53:26
>>>732
おまえはどこに行っても相手にされないし無能なやつだな

736:デフォルトの名無しさん
08/08/29 23:41:58
テキストファイルのエンコーディングが予めわかっていない場合
どうやって適切なエンコーディングで読むのでしょうか?
Javaのライブラリを使用すれば、自動的に適切なエンコーディングで読んでくれるものがあるのでしょうか?

737:デフォルトの名無しさん
08/08/29 23:47:19
教授目指してみようかな。
それは結構面白いかも知れない。
戦国時代に生まれたかった。
そして戦場で野垂れ死にしたかった。

738:デフォルトの名無しさん
08/08/30 00:14:47
先生にも2つのタイプがあってな、1つは研究者で教えるのが仕事じゃなくて技術の追求が仕事で、もう1つは教えるのが仕事の教師でどちらかといえば過去・既存技術に精通していて教えたり話したりするのが好きで上手な人。
聞きかじった最先端の雑記を偉そうに語るのは、先生じゃなくても無能なサルでも出来るけど、お前のタイプはどっちだ?

739:デフォルトの名無しさん
08/08/30 00:27:33
MITの教授になりたい。

740:デフォルトの名無しさん
08/08/30 00:29:47
>>736
不可能です。
あきらめてあてずっぽやるか、人間さまに直接おたずねください。

741:デフォルトの名無しさん
08/08/30 00:39:06
少なくとも、最新技術を追いかけるのは最先端のオナニー・ショウを見てるようなものでしかないよ。
それよか、過去の技術や発明・基盤技術をちゃんと知ってるかどうかじゃないの?
大学でやってんならなおさらPCの歴史とかPCがたとどって来た道を知らないとねぇ。

ハードよりなら制御とか組み込みだし、ソフトよりならアルゴ・ライブラリとかコンパイラじゃないの?
すくなくとも、intelの機械語sin[x]は実際はハード内部でデコードしてハード・ロジックのライブラリを呼び出してるだけだしw

まずは自分用のCコンパイラを作れるかじゃないかな?

742:デフォルトの名無しさん
08/08/30 00:42:41
>>741
針が太すぎて、ブランコ代わりに腰掛けられるよ・・・

743:デフォルトの名無しさん
08/08/30 00:43:36
先端オナニーですね、分かります。

744:デフォルトの名無しさん
08/08/30 00:46:00
じゃう゛ぁとともにあらんことを。

745:717
08/08/30 00:55:29
>>720
それだけじゃ>>724みたいな結論にたどり着けないっすよ先輩。
理解してる人しか理解できないヒントというか何というか。

>何故、List<Child> と書かないのですか?
Genericsの勉強中に、クラス間に継承関係があっても
 List<Base> = new ArrayList<Child>();
のような事はできませんが、
<? extends Base>を使えば可能、という記述を見つけたので
試していただけです。で、add()ができないのは何故かと。

>>724
仮に可能であれば、
Child hoge = list.get(0);
とした時にChild1やChild2を返してしまいClassCastExceptionが発生するため危険、
という事でいいですか?

List<? extends Base>#get()の返り値の型をBase型として返せば
いいような気もしますが、それもやはり不都合があるんでしょうか。

746:デフォルトの名無しさん
08/08/30 01:02:26
ジャヴァーは、言語仕様や文法よりも「ライブラリ☆命」なんですが・・・

747:デフォルトの名無しさん
08/08/30 01:35:25
>>745
List<? extends Parent> list = new ArrayList<Child1>();
list.add(new Child1());
list.add(new Child2()); // ←ココ

748:デフォルトの名無しさん
08/08/30 02:02:49
>>745
>List<? extends Base>#get()の返り値の型をBase型として返せば
 List<? extends Base> list = new ArrayList<Child>();
を例えば
 List<Child> childList = new ArrayList<Child>();
 List<? extends Base> list = childList;
としてみましょう。
 list.add(new Base());
が実行された場合、list.get() は Base インスタンスを返せるでしょうが、
childList.get() は Child のインスタンスを返せる(返すことを保証できる)でしょうか。

749:デフォルトの名無しさん
08/08/30 10:08:37
>>743
SFCの『ラブクエスト』を思い出した。
「先っちょ、先っちょ、気持ち良い!」

750:デフォルトの名無しさん
08/08/30 10:43:44
>>733
コプロセッサって知ってるか?

>>735
そうだな。オマエくらいしか相手にしてくれなくて人生寂しいよ。
でもオマエがこうやってレスしてくれて、マジな話ちょっとうれしかった。
無視されるのが一番辛い。煽りでもなんでも、反応してもらえてサンキュ。

751:デフォルトの名無しさん
08/08/30 12:18:08
ぬるぽ

752:デフォルトの名無しさん
08/08/30 12:36:16
KeyTypedの中でgetKeyCharを使って入力をコンソールに表示しようとしても0としか表示されません。
getKeyCharなら、アルファベットキーは表示されるのですが、矢印キーの時は何も表示されません。
どうしてでしょうか?

753:デフォルトの名無しさん
08/08/30 15:32:44
JScrollPaneのJTableについて質問です。

例えば、あるボタンを押したらJScrollPaneがJTableの1行分だけ
下または上にスクロールする、というようなことは可能でしょうか。

JTable内で選択されている行を、そのボタンを押せば自動的に
ひとつ次or前の行に選択を移動させるようにしようと考えているのですが、
ScrollPaneに表示されている行内の終わりからボタンでさらに選択を奥に移動させると、
選択行は変わりますが、スクロールはしてくれないので、どうしたものかと悩んでいます。

754:デフォルトの名無しさん
08/08/30 15:42:13
>>752
> KeyTypedの中でgetKeyCharを使って入力をコンソールに表示しようとしても0としか表示されません。
のgetKeyCharはgetKeyCodeの書き間違い?
なら、
> KEY_TYPED イベントの場合、keyCode は VK_UNDEFINED
なのでVK_UNDEFINED(=0)が返る。
矢印キーなどのキーコードが取りたければ、
keyTypedでなくkeyPressedやkeyReleasedでイベントを捕まえる。

755:752
08/08/30 15:50:11
>>754
その通りCharじゃなくてCodeでした。

756:デフォルトの名無しさん
08/08/30 16:12:37
>>753
これは使えないかな?
URLリンク(java-house.jp)

757:デフォルトの名無しさん
08/08/30 16:58:51
String str = "ABCDE";
という文字列があって、この文字列を逆にして表示させたいです。
最終的に、System.out.println(str); で、画面には
EDCBA と表示させたいです。
文字列を引数にとって、それを反転して返すメソッドがあるのは
分かったのですが、そういうのを使わないで、配列やforをうまく使って
自力で反転させたいのです。
charAt(int index)やfor辺りで試行錯誤したのですが、どうも辿り着きません。
方法を教えてもらえませんでしょうか?

758:デフォルトの名無しさん
08/08/30 17:03:41
>>757
無駄なコードを書くことに、うまい方法なんて無いのでは?

759:デフォルトの名無しさん
08/08/30 17:06:24
>>749
>>750
>>751
ぬるぽ
ぬるぽ
ぬるぽ
ぬるぽ


760:デフォルトの名無しさん
08/08/30 17:06:38
>745
申し訳ありません。724 や 748 の話を良く聞いてください。
お詫びに、関係しそうな記事を置いていきます。

Javaの理論と実践: Generics、了解!
URLリンク(www.ibm.com)


761:デフォルトの名無しさん
08/08/30 17:13:23
>>756
どうもありがとうございます。その先に記述されているのをヒントとして、
ほぼ完成というところまでたどり着けました。
ただ、スクロールバーの▼・▲のボタンや、バーで移動させた際に、
その移動をさせたことを検出させて、かつ移動した距離を知りたいのですが、
どうにか知る術はないものでしょうか?たびたびすいません。

762:デフォルトの名無しさん
08/08/30 17:17:03
>757
Stringオブジェクトは、作成後、状態を変更できません。
ということは、反転した Stringオブジェクトを作成する時点で、
既に反転した状態を持つ「何か」を用意する必要があります。

「何か」は、char配列でも良いですが、単に追加するだけなら
java.lang.StringBuilder/Buffer が良いと思います。

763:デフォルトの名無しさん
08/08/30 17:19:30
URLリンク(www.apple.com)

このページの最上部のメニューバーみたいなのをウェブサイトに実装したいのでですが
何かオススメのスクリプトありませんか?

カテゴリ(ジャンル)が20個ぐらいありそれを1つのページに表示させたいです。



764:デフォルトの名無しさん
08/08/30 17:57:51
相変わらずひねくれてる奴多いな。
>>757はそりゃアルゴリズムの問題でjavaとはあまり関係ないない。

str2=new StringBuffer().append(str).reverse().toString();

これがjava流。良くAPIを読むとサロゲートはreverseしないとかがまたいい!

765:757
08/08/30 18:13:46
>>758
確かにうまくはないですね、言い方が悪くてすいません。
ただ、専用のメソッドを使うより、他のやり方を考えたら
プログラムの理解度も高まるかなーと思いまして。まだ初心者なんです。
>>762
配列を反転する方法がわからなかったので、
結局配列もStringBuilder/Bufferも使わないアナログなやり方で完成しました(´・ω・`)
ありがとうございます。
>>764
ひねくれものですかね?ヽ(´ー`)ノ

766:デフォルトの名無しさん
08/08/30 18:46:46
>>765
理解したいなら、reverseのソース読むべきじゃね?

767:デフォルトの名無しさん
08/08/30 18:53:12 BE:511027586-2BP(5957)
ボタンを押すと定められた波形・音程で音が鳴る、という簡単なアプレットをMac OS X上で作りました。
当然Mac上では問題なく動くのですが、Windowsではうまく動きません。
音意外の部分は問題ない挙動なのですが、どうにも音だけが出ません。(サンプルレート8000、ビットレート16、モノラル)
Javaのバージョンも最新です。
何か心当たりのある方、教えて頂けると助かります。お願いします。

768:デフォルトの名無しさん
08/08/30 19:15:02
テーブルで常に一行だけしか選択できないようにする方法ってあります?


769:デフォルトの名無しさん
08/08/30 19:32:00
>>702
じゃあ、これから正直になりますので、友達になってください。

770:デフォルトの名無しさん
08/08/30 19:45:00
>>768
APIドキュメント見てもいないのか?
JTable#setSelectionMode 辺りを探れ

771:デフォルトの名無しさん
08/08/30 19:49:13
>>765
どんな方法にしろ、目的を達成するプログラムが書けたのならOKだ。
後は 766 の言うように他の同じことをするプログラムを見て、違いを観察するんだ。
自分で書き、他人のを読み、違いを吸収して次に生かせばいい。

772:デフォルトの名無しさん
08/08/30 20:29:55
>>761
AdjustmentListenerは?
scrollPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener(){
int oldValue = 0;
public void adjustmentValueChanged(AdjustmentEvent e){
if(e.getValueIsAdjusting()) return;
System.out.println("Adjusted: " + (oldValue - e.getValue()));
oldValue = e.getValue();
}
});
とかで

773:デフォルトの名無しさん
08/08/30 21:00:41
java初心者です。お聞きしたいことがあります。
javaからPHPにバイナリデータを渡したいのですがデータの中に0x00が
含まれていると2byteの0x5c,0x30に置き換わってしまいます。
どなたかご教授おねがいします。

String postParams = "p1=";
byte[] byteBuf new byte[1024];
OutputStream oStream = null;
:
con = (HttpConnection)Connector.open("URLリンク(localhost)", Connector.READ_WRITE, true);
con.setRequestMethod(HttpConnection.POST);
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

oStream = con.openOutputStream();
oStream.write(postParams.getBytes());
oStream.write(byteBuf); //←ここのDATAに0x00が含まれていると
oStream.close();

con.connect();
:

774:デフォルトの名無しさん
08/08/30 22:45:54
>>773
>byte[] byteBuf new byte[1024];
コンパイル通ってるコード?
byteBufに実際は何を入れてるのか。

775:デフォルトの名無しさん
08/08/30 22:54:34
HTTP POST でベタにバイナリなんて送れたっけ?

776:デフォルトの名無しさん
08/08/30 23:00:20
JTableでアクティブな行は青色になりますよよね?
それに加えて行の中でクリックしたセルだけ青い囲みがかかるんですけど
このセルの囲いをなくすことってどうやったらできるんでしょうか?
検索してもちょっとわからないので、、、ご教授ください。

777:デフォルトの名無しさん
08/08/30 23:02:31
>>772
おお、ありがとうございますm(_ _)m
無事にできました。

778:デフォルトの名無しさん
08/08/30 23:12:07
>>776
setCellSelectionEnabled(boolean)とかなかったっけ?

779:デフォルトの名無しさん
08/08/30 23:16:39
>774,775さん

上記例では部分抜き出しで書きましたがコンパイルは通ってます。
データは仮に
[0xff,0x10,0x00,0xff]だとしたらPHPで受け取って
そのまま送り返して調べた結果では、
[0xff,0x10,0x5c,0x30,0xff]となってます。
画像データなども送りたいと考えているのですが。

宜しくお願いします。


780:デフォルトの名無しさん
08/08/30 23:55:40
データの持ち方について質問です。
プリミティブ型はスタックにデータを持ってて、ヒープ領域は使わないと認識してますが合ってますでしょうか。
それと、プリミティブ型の配列はヒープ領域を使ってて、要素0のデータへのアドレスをスタックに格納して、ヒープ領域では連続した領域に格納されているという認識で合ってますでしょうか。
あと、オブジェクト型の配列でも同様に、ヒープ領域では連続した領域に保持されているのでしょうか?

781:デフォルトの名無しさん
08/08/31 00:04:13
>>778
うーむ、それだとセルのみ選択したときに色がつくようになっちゃうんですよね・・・。
逆のことをしたいんですが、何かないでしょうかね。

782:デフォルトの名無しさん
08/08/31 00:11:39
>>779
>byte[] byteBuf new byte[1024];
なんて、コンパイル通る訳無いだろ。
コンパイルも通らないコードなんか載せられても何も答えられんわ

783:デフォルトの名無しさん
08/08/31 02:01:47
>>780
jvm.dllの実装上の問題です。普通はそのように実装するんですけど、あなたにピッタシのAPIはByteBuffer.allocateDirectですかね。

784:デフォルトの名無しさん
08/08/31 02:42:37
>>782さん

あああ!、申し訳ないです。'='←書くの抜けてました。
プログラム上ではちゃんと書いてます><

byte[] byteBuf = new byte[1024];
何度もすみません。

785:デフォルトの名無しさん
08/08/31 03:11:15
>>779
コード 0x00 (NUL) が 0x5C 0x30 (\0) に変換される、と。

773 では、Content-Type に application/x-www-form-urlencoded を指定しています。
この指定自体は、form を送信する際の一般的な設定だと思います。

しかし、この指定によって、クライアントかサーバか、どちらか分かりませんが、
変換が行われてると、私は思います。

つ【パケットキャプチャ】かな?

786:デフォルトの名無しさん
08/08/31 03:33:00
>>781
TableCellRenderer を見れ。

787:デフォルトの名無しさん
08/08/31 03:40:28
>>779
>そのまま送り返して調べた結果では、

PHP が受け取ったモノをチェックしろよ。
送り返して調べたって、送り返す時にヘマしてたら分かんなくなるだろ。

788:デフォルトの名無しさん
08/08/31 10:26:08
URLリンク(www12.plala.or.jp)
これの真ん中あたりにあるアプレット動く?
うちのXPだとIEでもFirefoxでも動かん。

789:デフォルトの名無しさん
08/08/31 11:31:32
x-www-form-urlencodedの意味を考えろってことで。


790:デフォルトの名無しさん
08/08/31 11:34:44
>785,787さん
PHP側では
<?php
$p1 = isset($_REQUEST['p1']) ? $_REQUEST['p1']: '';
$p2 = isset($_REQUEST['p2']) ? $_REQUEST['p2']: '';
if ( $p1 ){
echo ($p1);
}
?>
としているのですが。

PHP側でも調べてみます。

791:デフォルトの名無しさん
08/08/31 11:43:07
>>773
お前の書いたsetRequestMethodとsetRequestPropertyを一万回読み返せ
BASE64でエンコード/デコードするか、URLにエンコードするか、
Content-Typeをimage/jpegにするか、バラバラすぎる。
あと受け側がどう処理するかによって異なる。

792:デフォルトの名無しさん
08/08/31 13:31:24
酷い流れデツネ

793:717
08/08/31 15:31:20
>>747 >>748
すんません。
実際に返されるインスタンスの型が問題であって
返り値の型をBaseクラスにしても全然解決になってないですね。
質問に答えてくださった先輩方ありがとう。

794:デフォルトの名無しさん
08/08/31 15:39:43
JPanel上でImageIOつかいたい
どうしたら良い?

795:デフォルトの名無しさん
08/08/31 16:04:53
というかHTTPすらろくに理解してないんじゃないのか?
x-www-form-urlencodedでバイナリ送るとか吹いたぞw

796:デフォルトの名無しさん
08/08/31 16:13:39
ホームページのフォームからJava servletでMySQLに複数の名前と番号のセットを
入力したいのですが参考になるホームページが見つかりません。
参考になるサイトやブログを教えていただけないでしょうか。

797:デフォルトの名無しさん
08/08/31 16:38:00
795のように書けばあたかも知ってるように見えるが大概は知らない場合が多い

798:デフォルトの名無しさん
08/08/31 16:55:19
コンソールで入力した文字列から、特定の文字が何文字含まれているか
表示するプログラムを作りたいのですが(例えば「javaprogram」と入力したら
「aは3個含まれています」と表示されるような感じです。
どうすればできるでしょうか?相当考えたのですが…
何の構文やメソッドを使うのか…どうかヒントをば…

799:デフォルトの名無しさん
08/08/31 17:00:25
>>798

ヒント:配列

800:デフォルトの名無しさん
08/08/31 17:13:04
String#indexOf

801:デフォルトの名無しさん
08/08/31 17:41:51
>>794
BufferedImage と ImageIcon の合わせ技。

802:デフォルトの名無しさん
08/08/31 17:44:52
BufferedImage bi = jPanel1.getComponent(0).getGraphicsConfiguration()
.createCompatibleImage(10,10);
これでいいのかな

803:デフォルトの名無しさん
08/08/31 17:48:50
>>796
1個のデータは登録できるのか?
できてないなら、無理すんな。
まずは単一で考えなよ

804:デフォルトの名無しさん
08/08/31 17:50:12
>>798
・char[] にしてまわす
・StrigBufferにしてまわす
どちらでも好きな方を


805:デフォルトの名無しさん
08/08/31 18:54:53
または、特定の文字をすべて削除した文字列を作って長さを比べる
自分も質問なんだけど、テキストエリアの後ろに画像を入れるにはどうしたら良いのかな。

806:デフォルトの名無しさん
08/08/31 18:59:19
正確にはJScrollPaneだった・・

807:デフォルトの名無しさん
08/08/31 18:59:44
HTMLDocument使うとか、画像に対応したDocumentとViewを作ればいいんでない?

808:デフォルトの名無しさん
08/08/31 19:00:48
ん?やりたいことがいまいち分からない・・
背景に画像?
JScrollPaneのViewportに画像描画してJTextAreaを透明にってこと?

809:デフォルトの名無しさん
08/08/31 19:27:46
>>786
すんません、調べてみたんですがどうしてもわからない・・・
CellRendererの中にクリックでアクティブになったセルに関する設定項目が見つからないっす。
説明が下手なんですが、わかりやすく言うと、クリックされたセルのある行は薄青になりますよね?
それとは別に、その薄青の行の中でクリックしたセルだけボーダーラインが太くなりますよね。
あの太いボーダラインをなくしたいんです。

setRowSelectionIntervalを利用すると行が薄青になるだけなので、テーブルのMouseListenerに

1 int rowIndex = jTable.getSelectedRow();
2 jTable.removeRowSelectionInterval(rowIndex, rowIndex);
3 jTable.setRowSelectionInterval(rowIndex, rowIndex);

とやってみたのですが、これだと2の部分では薄青だけ消えて、太いボーダーラインが残ってしまいます。
どうすりゃ消えるんでしょうか、、、

810:デフォルトの名無しさん
08/08/31 19:48:48
>>
vewportでやってみたのですが、イメージがやけに暗く表示されてしまいました。
バッファしてる間に暗くなるとかあるのかな・・・

811:デフォルトの名無しさん
08/08/31 19:56:39
ないない。
もうちょっと詳細を教えてくれないと何とも言えないよ

812:デフォルトの名無しさん
08/08/31 20:00:09
すいません。
出かけ先にいるので帰って見直してみます。
ありがとうございました。

813:796
08/08/31 20:12:47
>>803
単一では出来ます。
URLリンク(www.atmarkit.co.jp)
を参考にコンパイル、MySQLの設定及びデータベースとテーブルも設定しております。
問題は、同じようなデータがありそれを複数同時に入力できないところです。

814:デフォルトの名無しさん
08/08/31 20:21:40
>>813
最大10件とかならば、name-1, value-1 のように固定でHTMLに埋めてしまえ
完全可変にするならば、動的にJavaScriptでinputを作っていけばいい

815:デフォルトの名無しさん
08/08/31 20:23:18
>>805
Swingの話かHTMLの話か解らない
SwingだったらTextAreaとLabelを配置したパネルを作って、それを配置する方が楽だし、再利用しやすい形になると思う

816:796
08/08/31 20:52:25
>>814
すみません説明不足がありました。
仰るとおりHTMLのフォームはname[1],name[2]...のようにフォームに番号を付けています。
servletの方ではこれをループでMySQLに入力するようにしています。
また、名前(漢字)と数字なので先にループで配列に入力するといった方法も出来ませんでした。
JavaScriptによる入力ですが技術的に難しいです。

817:796
08/08/31 21:02:33
肝心なことを忘れてました。
もし、フォームに名前はあっても番号はない場合は登録せず
次のフォームを読み取らせ、ループは名前が無くなったら出るというシステムです。

長々となってしまいまして申し訳ありません。

818:デフォルトの名無しさん
08/08/31 21:05:26
ネイティブ言語や .NET 言語で実現できることは、Java でも実現できますか?

819:デフォルトの名無しさん
08/08/31 21:06:14
無理。

820:デフォルトの名無しさん
08/08/31 21:08:23
こんな感じでできるだろ
for(int i = 1; i < n; i++) {
 getParameter("name[" + i  + "]");
 getParameter("value[" + i  + "]");
}

821:796
08/08/31 21:13:43
>>820
データは取得できるとは思うのですが、
データを保存またはMySQLに連続して登録するときはどのようにすればよろしいでしょうか。

822:デフォルトの名無しさん
08/08/31 21:24:00
>>821
Valuesをつなげるか、何回もUpdateとかInsertする

823:デフォルトの名無しさん
08/08/31 21:42:17
beginTransaction();
for(int i = 1; i < n; i++) {
 getParameter("name[" + i  + "]");
 getParameter("value[" + i  + "]");
 insertOrUpdate(data);
}
commit();


824:デフォルトの名無しさん
08/08/31 22:37:08
テーブルでソートを行うために
setAutoCreateRowSorter(true)を使っているのですが、
ソートを一時的に無効にしたい場合が生じました。
setAutoCreateRowSorter(false)ではだめなようなので、
setRowSorter(null)を使っているのですが、
このような方法でよいものでしょうか。

825:デフォルトの名無しさん
08/08/31 22:47:13
>824
APIドキュメントは読みましたか?
そこに書いてありませんか?

826:798
08/08/31 23:05:53
>>799 >>800 >>804
ヒントありがとうございます。
ヒントを頼りにここまではできたのですが、
URLリンク(hisazin-up.dyndns.org)
文字列を入力するとwhile文が無限ループになります。
無限になるのはわかるんですが、何を入れれば無限がとめられるのかわかりません。
もうこれ以上しぼっても何にも出てこないので、どうか何が足りないのか指摘をお願いしますorz

827:デフォルトの名無しさん
08/08/31 23:06:51
>>819
実現な無理なことって何?
※中間言語を介しているのでネイティブより遅いってのはナシ

828:デフォルトの名無しさん
08/08/31 23:08:16
× 実現な無理
○ 実現が無理

829:デフォルトの名無しさん
08/08/31 23:08:28
while(!(s = br.readLine()).equals("end")){
.....
}
こうして、読み込みと同時にループ判定ってのをJavaではよく使うよ。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4359日前に更新/268 KB
担当:undef