【初心者】Java質問・相談スレッド70【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/08/21(日) 02:46:50質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
以下のエラーが表示されて、途方にくれているあなたは、下のページへ。
「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
前スレッド
【初心者】Java質問・相談スレッド69【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1121993032/50
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。
JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/
次スレは>>980あたりでお願いしまする。
0002デフォルトの名無しさん
2005/08/21(日) 02:49:380003前すれ911
2005/08/21(日) 02:50:25public void outLine(String s, int x, int y, Color c, Graphics g){
Color hoge = g.getColor();
g.setColor(c);
g.drawString(s, x+1, y);
g.drawString(s, x+1, y+1);
g.drawString(s, x+1, y-1);
g.drawString(s, x-1, y);
g.drawString(s, x-1, y+1);
g.drawString(s, x-1, y-1);
g.drawString(s, x, y+1);
g.drawString(s, x, y-1);
g.setColor(hoge);
g.drawString(s, x, y);
}
0004デフォルトの名無しさん
2005/08/21(日) 02:50:260005デフォルトの名無しさん
2005/08/21(日) 02:57:59>>前すれ911
0006デフォルトの名無しさん
2005/08/21(日) 08:11:18まま内部フレームを dispose() したらツールバーの小ウィンドウだけ残ってしまった。
これって消すためにわざわざ InternalFrameListener 仕掛けなきゃだめか?
消し方は setVisible(false) で良いのか?
0007デフォルトの名無しさん
2005/08/21(日) 08:38:06その状態では、クラスローダーで独自クラスのロードとかもできたりするものでしょうか?
というか、署名付きアップレットとはどこまでの権限が得られるものなのでしょうか。
教えて下さい。また、参考になるサイトがありましたら誘導よろです(意外と適当なサイトが見つからない・・・・)。
0008デフォルトの名無しさん
2005/08/21(日) 08:58:12公式見れば一発です
0009デフォルトの名無しさん
2005/08/21(日) 10:41:30あの、公式サイトのアップレットに関する文書の場所教えて下さい。
なぜか見つからないんです・・・・・・・。よろしくおねがいします。
0010デフォルトの名無しさん
2005/08/21(日) 12:03:010011デフォルトの名無しさん
2005/08/21(日) 12:10:28>>8じゃないので、これが求めるものか知らないけど、これとかは?
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/plugin/developer_guide/contents.html
0012デフォルトの名無しさん
2005/08/21(日) 13:01:06通常1.4のパスが通ってます。
そのつど1.4のパスを消して、1.3にパスを通さないといけないのでしょうか。
0013デフォルトの名無しさん
2005/08/21(日) 13:05:56絶対パスで java コマンドを動かせばいいのでは?
0014デフォルトの名無しさん
2005/08/21(日) 13:47:50tomcat+eclipseでサーブレットを使ったWEBシステムを作ってるんですが、
propertiesファイルやxmlファイルを思ったように読んでくれないんです。
今以下のようにファイルを置いてるんですが、
eclipseディレクトリの直下にファイルを置かないと
動いてくれないし、ログもeclipse直下にしか出してくれないんです。
これをアプリのディレクトリのWEB-INF/classesに出すにはどうしたらいいでしょうか?
何かそれをいじる設定ファイルとかってあるんでしょうか?
001514
2005/08/21(日) 13:48:42eclipse
├─classA-log
├─log4j.xml←ここに置かないとエラーが出る
├─info.properties←ここに置かないと読んでくれない
workspace
│
system
├─jsp
│ ├─jspA.jsp
│ └─jspB.jsp
├─works
├─WEB-INF
│ ├─classes
│ │ ├─classA.class
│ │ ├─etc
│ │ │
│ │ ├─info.properties←ここに置きたい
│ │ └─log4j.xml←ここだけに置きたい
│ ├─lib
│ │ ├─log4j-1.2.11.jar
│ │ ├─etc
│ └─src
│ ├─classA.java
│ ├─etc
│
├─index.html
└─works
001614
2005/08/21(日) 13:50:42import org.apache.log4j.*;
(略)
public class classA {
public String exec(String ID,String PW){
DOMConfigurator.configure("log4j.xml");
Logger log = Logger.getLogger(classA.class.getName());
(処理)
return result;
}
}
ブラウザから実行するとコンソールにこんなログを出します。
log4j:ERROR Could not open [log4j.xml].
java.io.FileNotFoundException: log4j.xml (指定されたファイルが見つかりません。)
0017デフォルトの名無しさん
2005/08/21(日) 13:52:08<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="classA" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="classA-log" /><param name="DatePattern" value="'.'yyyy-MM-dd"/>
<param name="threshold" value="INFO"/><param name="append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss},%p,%m%n" />
</layout>
</appender>
<appender name="System" class="org.apache.log4j.DailyRollingFileAppender" >
<param name="file" value="sys-log" /><param name="DatePattern" value="'.'yyyy-MM-dd"/>
<param name="threshold" value="ERROR"/><param name="append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss},%p [%t] %c (%F:%L) %m%n" />
</layout>
</appender>
<logger name="util.classA">
<level value="info" />
<appender-ref ref="classA"/>
</logger>
<root>
<level value="error" />
<appender-ref ref="System" />
</root>
</log4j:configuration>
0018デフォルトの名無しさん
2005/08/21(日) 14:56:19おおお、これっぽいです。
d(゚Д゚)☆スペシャルサンクス☆( ゚Д゚)b 。
0019デフォルトの名無しさん
2005/08/21(日) 16:55:47を丸ごとコピーして、違うPCのVMで動作を再開させる(プロビジョニングとか言うらしい)って
なことは実現できるかな?ネイティブコード使ってVMからデータを持ってきてもOK。
ただVMに手を加えることはしたくない。どうでしょう?
関連情報でもいいのでキボンヽ(´ー` )ノ
0020デフォルトの名無しさん
2005/08/21(日) 17:47:41javaっつーかプログラム初心者なんで微妙なんだけど、log4j.xmlは
DOMConfigurator.configure("log4j.xml");
ってやるとclassAのフォルダ内の「log4j.xml」を読みに行くことになるんじゃないか?
だからそこにファイルがなければ、NotFoundになると思うんだが。
log4j.xmlのところをしっかりとした相対パスか、絶対パスにすればなんとかなるかもしんない。
./workspace/log4j.xml にすればworkspace内のファイル読むんじゃないかな。
最終手段で絶対パスでしょ。
info.propertiesはやったことなくて分からんです。
002120
2005/08/21(日) 17:51:12パスに問題がありそうだけど、内容まちがっとる・・・orz
0022デフォルトの名無しさん
2005/08/21(日) 18:09:040023デフォルトの名無しさん
2005/08/21(日) 18:18:400024デフォルトの名無しさん
2005/08/21(日) 18:35:26ん、これはどうやら.netの上にVMを起動して〜みたいな感じのようですね。
単純に.net用のバイトコード(って言うのか知らないけど)にコンパイルする
ことはできるものはありませんかね〜
0025デフォルトの名無しさん
2005/08/21(日) 18:50:48それもできるってば・・・もっとよく調べてみろ。
0026GiantLeaves ◆6fN.Sojv5w
2005/08/21(日) 18:53:02JavaVMはIEXPLORER, Sun Javaの他に何がありますか?
また、Java Applet の作り方を教えてください。
それと、アプレットではない方のJavaは何か特別な呼び方があるのでしょうか?
JREとは何ですか?
0027デフォルトの名無しさん
2005/08/21(日) 19:03:08> JavaVMはIEXPLORER, Sun Javaの他に何がありますか?
列挙できないほどたくさんあります。
> また、Java Applet の作り方を教えてください。
書籍を購入して学習することをオススメします。
> それと、アプレットではない方のJavaは何か特別な呼び方があるのでしょうか?
あります。
> JREとは何ですか?
Java Runtime Environment の略語です。
0028デフォルトの名無しさん
2005/08/21(日) 19:12:200029デフォルトの名無しさん
2005/08/21(日) 19:19:480030デフォルトの名無しさん
2005/08/21(日) 19:22:45WebSphere Application Server のお試し版でもダウンロードすれば入ってるんじゃ
0031デフォルトの名無しさん
2005/08/21(日) 19:25:08お試し版DLでも入力求められるよ
おれなんか会社名適当に入力したら折り返し連絡が来て
「正確な情報をお願いします」とか連絡が来たよ
0032デフォルトの名無しさん
2005/08/21(日) 19:31:420033GiantLeaves ◆6fN.Sojv5w
2005/08/21(日) 19:56:340034デフォルトの名無しさん
2005/08/21(日) 20:34:230035デフォルトの名無しさん
2005/08/21(日) 20:56:03自分でサイトを見つけてきた事を、自慢できるほど Google は難しくない。
0036デフォルトの名無しさん
2005/08/21(日) 21:00:32003714
2005/08/21(日) 21:33:34確かにコンパイルのときはWEB-INF/classes(classAがあるところ)を
見に行ってくれてるんですが、
WEBからアプリ実行させるときは
eclipse直下にファイルがないと怒られるんですよ。
(propertiesファイルも同じ)
classesの下のファイルだけ読みに行ってくれるように
したいんですけど、どこで設定すればいいんでしょう?
0038デフォルトの名無しさん
2005/08/21(日) 21:46:41初期化サーブレットを書くことをお勧めする。
でその中でweb.xmlにlog4j.xmlの場所を書いてやるようにすればいい。
ちょっと探したらすぐ出てきたぞ
http://www.ingrid.org/jajakarta/log4j/jakarta-log4j-1.1.3/docs-ja/manual.html
0039GiantLeaves ◆6fN.Sojv5w
2005/08/21(日) 22:00:28いいからJavaVMをとっとと教えろ!
ちなみにIExplorer, Sun Java, Hot Java以外にだぞ。
どうもJavaVMはスタンバイから復帰したときにシステムの不調をきたす場合があるのでな。
0040デフォルトの名無しさん
2005/08/21(日) 22:03:51スタンバイから何度も復帰させてるが問題起こってねーよ
0041デフォルトの名無しさん
2005/08/21(日) 22:07:56Windows2000ProSP4
j2sdk1.5.0_04
Tomcat5.5.9
を使用してローカルの開発環境を作っています。
JDKをインストールしてJAVA_HOMEを設定。
Tomcat5.5.9のZIPファイルを解答してCATALINA_HOMEを設定。
CATALINA_HOME\binのstartup.batを叩いて起動させると、
コンソールに『XML検証は無効です』と出力されます。
しかし、そのままエラーなどは出ずに起動され、
http://localhost:8080にアクセスすると正常に表示されます。
ググってみましたが、同様のエラーメッセージが出てる場合、起動にも失敗してるみたいですし、
解答でもserver.xmlでは?というものでしたが、
server.xmlは全く弄っていませんし、起動自体も成功しています。
何か問題があるのでしょうか?
0042デフォルトの名無しさん
2005/08/21(日) 22:12:27DDL非検証モードですという意味では?
0043デフォルトの名無しさん
2005/08/21(日) 22:17:18| ノ\ ヽ | , -─-'- 、i
/ ●゛ ● | | _, '´ / ヽ、
| ∪ ( _●_) ミ j iニニ, "● ∪ ヽ、
彡、 |∪| | >>39 iニニ、_ ',
/ ∩ノ ⊃ ヽ 〈`'ー;==ヽ、〈ー- 、 !
( \ / _ノ | | `ー´ ヽi`ヽ iノ
.\ “ /__| | ! /
\ /___ / r'´、ヽ
`´ヽノ
0044GiantLeaves ◆6fN.Sojv5w
2005/08/21(日) 22:25:400045デフォルトの名無しさん
2005/08/21(日) 22:27:54すごいバカがいますよ
0046デフォルトの名無しさん
2005/08/21(日) 22:28:36サンクス!ちょっと調べてみますね。
サーブレットのコンストラクタでやるんですか・・・
JSF使ってるけど大丈夫かな
0047デフォルトの名無しさん
2005/08/21(日) 22:29:560048デフォルトの名無しさん
2005/08/21(日) 22:31:030049デフォルトの名無しさん
2005/08/21(日) 22:33:360050デフォルトの名無しさん
2005/08/21(日) 22:38:07鬼の首でも取ったかのごとく「シュミレーション」にツッコミ入れてるが
思いっきり >>1 の思惑通りに釣られてるあたりクオリティが高い
0051デフォルトの名無しさん
2005/08/21(日) 22:53:23全く問題ない。
0052デフォルトの名無しさん
2005/08/21(日) 23:02:54きっと頭はいいのでしょうが、もう少しその頭の使い方を覚えたほうがいい
のでは?
今のままではただのキ○ガイ。
0053デフォルトの名無しさん
2005/08/21(日) 23:55:310054デフォルトの名無しさん
2005/08/21(日) 23:56:59ヒント:皮肉
0055デフォルトの名無しさん
2005/08/22(月) 00:34:150056デフォルトの名無しさん
2005/08/22(月) 00:39:510057デフォルトの名無しさん
2005/08/22(月) 00:42:44「Stringで戻すには」でした。
よろしくお願いします。
0058デフォルトの名無しさん
2005/08/22(月) 01:01:09でしょうか?
0059デフォルトの名無しさん
2005/08/22(月) 01:26:55ファイルチューザーの設定の時点で悩んでます。
ディレクトリ(ファイルではなく)を指定する方法がわかりません。
public String getPath(){
setDialogType(JFileChooser.SAVE_DIALOG);
int i =showSaveDialog(null);
return getSelectDirectory();
}
とすればできると思ったのですが、ディレクトリを選択しても、「開いて内容を表示する」だけで、
キャンセルを押してもダイアログを閉じることができずに強制終了するしかない状態になってしまいます。
0060デフォルトの名無しさん
2005/08/22(月) 01:29:01環境はWinXP
J2SDK1.4.2
「開く」ボタンをつけて、押したらファイル「gif」と「jpg」を選べるようにしたいだけなのですが、
ボタンのアクションを拾ってJFileChooserを起動しようと思っているのですが
appletだとどうやればいいのか見当が付かず困っています。
どなたかわかるかたいらっしゃらないでしょうか
import javax.swing.JApplet;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;
public class TestFileFilter extends JApplet{
public void init()
{
JFileChooser chooser = new JFileChooser(".");
ExampleFileFilter filter = new ExampleFileFilter();
filter.addExtension("jpg");
filter.addExtension("gif");
filter.setDescription("jpg,gif");
chooser.setFileFilter(filter);
}
}
0061デフォルトの名無しさん
2005/08/22(月) 02:22:49これだよこれ。
setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY)
0062デフォルトの名無しさん
2005/08/22(月) 02:25:18JFileChooser のインスタンスはクラス変数に入れておいて
ボタンの ActionListener で出せばいい。
0063デフォルトの名無しさん
2005/08/22(月) 03:00:520064デフォルトの名無しさん
2005/08/22(月) 11:23:57サンドボックス内だとファイル選択ができないけど
WebStartならJNLPAPIでできる
0065GiantLeaves ◆6fN.Sojv5w
2005/08/22(月) 13:25:19talk:>>49-50 いいから趣味で食べるレーションを私に支給してくれ。
talk:>>52-55 お前に何が分かるというのか?
0066デフォルトの名無しさん
2005/08/22(月) 13:51:52巣に帰れよ
0067デフォルトの名無しさん
2005/08/22(月) 14:57:58環境にエクリプスを用い、メインのプロジェクトは他に作ってあるプロジェクトの参照を行っています。
この場合どのようにすれば実際に動かせるようになるのでしょうか?
試したこと:
・エクスポート→jarファイル でエクスポートするプロジェクトで両方指定
・参照プロジェクトのjar化→マニフェストのクラスパスで指定
結果両方とも動きませんでした。
0068デフォルトの名無しさん
2005/08/22(月) 15:08:56釣りケテーイ
006967
2005/08/22(月) 15:31:08・・・・つりじゃないです。。。
ダブルクリックするとマウスポインタは一応作業中になるのですが、
何も起こらずに元に戻っちゃいます。
アプレットみたいにタスクバーにコンソールが表示されるわけでもなく
何が悪いのかまったく原因がわかりません。
0070デフォルトの名無しさん
2005/08/22(月) 15:45:560071デフォルトの名無しさん
2005/08/22(月) 15:48:54コンソールからは実行できるのか。
OSは?
JDKは?
0072デフォルトの名無しさん
2005/08/22(月) 16:03:41「どのように動かないのか」を書かないとまともな回答は得られないよ。
他の参照プロジェクトもJar化する。
動かしたいプロジェクトもJar化してそちらのマニフェストファイルに
クラスパスを設定し、他のプロジェクトのJarをクラスパスに含める。
・・・でうまくいくんじゃね?
0073デフォルトの名無しさん
2005/08/22(月) 16:16:46実行可能jarをダブルクリックだと、標準エラー出力に出るエラーが見えないので、原因がわからない。
まずはコマンドラインから実行して、原因を調べよう。こんな感じで。
java -jar hoge.jar
0074デフォルトの名無しさん
2005/08/22(月) 16:51:11System.currentTimeMillisはWindowsだけ
1ずつ増えないそうで
つまり、MSが改善すれば
Javaは精密な動作を実現できるということ?
0075デフォルトの名無しさん
2005/08/22(月) 17:26:52catch(Exception ex){
System.err.println(ex);
}
ちゃんとエラー処理しろよ
0076デフォルトの名無しさん
2005/08/22(月) 18:04:27WindowsというかOSによって変わるな
同じWindowsでも95,98やnt4,2000とxpすべて動作がばらばら
それにCPU・・・かチップセットによっても動作が大きく変わるの確認済みなんだが
あれもなんとかならんのかね
インテル系は今のはきっちりかえしてるっぽい
AMDは古いのはちゃんとかえしてるっぽいが新しいのはダメとか
逆にLinux等Windows以外はナノタイム取得はちゃんと動いてないっぽいけどな
007767
2005/08/22(月) 18:27:02Exception in thread "main" java.lang.NoClassDefFoundError: org/exolab/castor/xml
/MarshalException
at MainBDIV.main(MainBDIV.java:16)
外部Jarのクラスが見つからない???・・・・クラスパスは通してあるのになんで???
0078デフォルトの名無しさん
2005/08/22(月) 18:39:12java -verbose:class -jar hoge.jar で良く考える
0079デフォルトの名無しさん
2005/08/22(月) 19:22:190080デフォルトの名無しさん
2005/08/22(月) 19:24:270081デフォルトの名無しさん
2005/08/22(月) 19:25:030082デフォルトの名無しさん
2005/08/22(月) 19:45:52(Surface.javaのLogPerformanceメソッド)
0083デフォルトの名無しさん
2005/08/22(月) 19:46:42どっちもSDKに入ってる。
0084デフォルトの名無しさん
2005/08/22(月) 19:49:23Java.util.Timer#scheduleAtFixedRate
使うのが一番楽だった。
0085デフォルトの名無しさん
2005/08/22(月) 20:12:42こういうこと。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/windows/java.html#options
ここの-jarオプションの説明を参照。
対策は、「Java 実行可能 jar」あたりでググれば見つかる。
0086デフォルトの名無しさん
2005/08/22(月) 20:38:20ようですが、文字列が長くなったときに後ろが省略されて「...」となってしまいます。
なんか幅が変わってないようですが、全体を表示させるにはどうしたら良いでしょうか?
treeNodesChanged() だけでなく treeStructureChanged() イベントも飛ばして見ましたが
変わりませんでした。
ちょうど以下のページのような感じ
http://www.javadrive.jp/tutorial/jtree/index2.html
> 恐らく表示する幅が変わっていないため、画像の分だけ文字を表示する幅が少なくなって、
> 「...」のような省略形になってしまっています。原因が今のところわかりません。
0087デフォルトの名無しさん
2005/08/22(月) 21:02:21「...」になる理由が分かりませんとは
ノードの変更をtreemodelに通知してないからかと
変更部分のコードをさらしてみ
0088デフォルトの名無しさん
2005/08/22(月) 22:14:471.Javaプログラムからブラウザを起動
2.その開いたブラウザを閉じる
1はProcessBuilderでできるとして、ブラウザを閉じるというのは
プログラムからできるのでしょうか?
0089GiantLeaves ◆6fN.Sojv5w
2005/08/22(月) 22:16:450090GiantLeaves ◆6fN.Sojv5w
2005/08/22(月) 22:20:14http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/ProcessBuilder.html
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Process.html
0091デフォルトの名無しさん
2005/08/22(月) 22:20:52TreeModel 実装してるので全部載せたらでかいから、TreeModel のイベント通知部分だけ。
ノードとなる Bean のプロパティ変更通知を受け取って TreeModelEvent として配信する
TreeModel を JTree に使用している。nodeLabel プロパティの変更通知が来て画面上も
変更されるのは確認済みです。
if(propertyName.equals("leafNode") || propertyName.equals("nodeIcon")
|| propertyName.equals("openNodeIcon") || propertyName.equals("nodeLabel")){
TreeModelEvent e = getTreeModelEvent(evt);
for(int i=0; i<listener.size(); i++){
((TreeModelListener)listener.get(i)).treeNodesChanged(e);
}
}
treeNodeChanged() の直前に println() 入れてみましたが nodeLabel 変更時の通知は
意図したように行われています。getTreeModelEvent(evt) は Bean からのイベントを
TreeModelEvent に変換しています。必要であればこちらも載せますが。
0092デフォルトの名無しさん
2005/08/22(月) 22:22:20Process#destroy()
まぁ gracefully な終了のさせ方じゃないが。
0093デフォルトの名無しさん
2005/08/22(月) 22:37:47いや、イベント通知ってへんなのやる必要はないよ
ノードのオブジェクトの変更部分のせてみそということだったのだが
0094デフォルトの名無しさん
2005/08/22(月) 22:58:470095デフォルトの名無しさん
2005/08/22(月) 23:11:33TreeModel インターフェースを独自に実装してるから、ノードのオブジェクトに相当するものって
ただの Bean なんだけど。変更部分って setter のこと?
public void setNodeLabel(String nodeLabel){
Object oldValue = this.nodeLabel;
Object newValue = nodeLabel;
this.nodeLabel = nodeLabel;
firePropertyChange("nodeLabel", oldValue, newValue);
return;
}
イベントは以下のように伝わっています。
Bean
↓ <プロパティ変更イベント>
TreeModel の実装クラス
↓ <TreeModel イベント>
JTree
ちなみに TreeCellRenderer は DefaultTreeCellRenderer を継承して以下のように作成しています。
public Component getTreeCellRendererComponent(JTree tree, Object value, ...){
DataNode node = (DataNode)value;
super.getTreeCellRendererComponent(tree, node.getNodeLabel(), sel, expanded, leaf, row, hasFocus);
this.setIcon(node.getNodeIcon());
return this;
}
0096デフォルトの名無しさん
2005/08/22(月) 23:26:48ラベルを使っているアプレットなんですが、手前に画像を表示しようとすると、
ラベルを貼った場所だけ一番手前に出て見えてしまいます。
ラベルと画像が重なった時にラベルを隠すようにしたいのですが、それは可能ですか?
もし可能なら方法を教えてくれると助かります。
こゆ質問でもソースとかうpした方が良ければ、指摘してください。
0097デフォルトの名無しさん
2005/08/22(月) 23:29:44model.valueForPathChanged(path,"あいうえおかきくけこ");
を使うか
root.setUserObject("あいうえおかきくけこ");
model.nodeChanged(root);
だけでいい
なんでJTreeつかってuserObjectがでてこないのかなぁとおもった
0098デフォルトの名無しさん
2005/08/22(月) 23:32:16modelはツリーモデル
pathはツリーパス
rootはルートをさすツリーノード(別にルートである必要もないがテストにルートはらくだから)
"あいうえお"はユーザーオブジェクトのさんぷる
デフォでtoStringの内容を使うというSwingの特徴を考えるとStringはやはり楽だからね
0099デフォルトの名無しさん
2005/08/22(月) 23:46:06ええとですね、DefaultTreeModel や DefaultMutableTreeNode は使っていません。
独自のデータモデル用に TreeModel と TreeCellRenderer を自作してイベント処理含めて
自分でやっています。
ですが >>86 のページのように、それらを使った場合と同じような感じになっているので、
自作云々というよりデフォルトのものを使ってる JTree か DefaultTreeCelLRenderer かなーと
推測しています。
0100デフォルトの名無しさん
2005/08/23(火) 00:04:32初心者っぽいから無理しなけりゃいいのに
valueForPathChangedの実装部分が怪しいと予想
0101デフォルトの名無しさん
2005/08/23(火) 00:35:47valueForPathChanged は GUI 上の変更 (JTree 上での TreeCellEditor 経由での変更) が
TreeModel 側に通知される時に呼び出されるものなので無関係と思います。そもそも今回は
呼ばれていません。
いやもう、最初のレスから勘違い君だと思ってたが。
Defaultなんちゃらしか使ったことないならもう無理スンナw
■ このスレッドは過去ログ倉庫に格納されています