【初心者】Java質問・相談スレッド94【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/11/21(火) 06:11:54質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
前スレッド
【初心者】Java質問・相談スレッド93【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1149349035/
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/
次スレは>>980あたりで。
0652648
2006/12/05(火) 20:20:27d.repaintをつけても同じでした。
というか配列にうまく入れられていないっぽいですorz
>>651
適当な初期化をしてみましたが変わりません。。。
どこかにもっと大きなミスがあるのでしょうか。
0653デフォルトの名無しさん
2006/12/05(火) 21:12:55public class Draw extends Applet{
char[] data = new char[1];
public void init(){
this.addKeyListener(new MyKeyAdapter());
}
public void paint(Graphics g){
g.setFont(new Font("Plain", Font.PLAIN,36));
g.drawChars(data, 0,1,20,20);
}
}
class MyKeyAdapter implements KeyListener{
public void keyPressed(KeyEvent e){
Draw d = (Draw)e.getSource();
d.data[0] = e.getKeyChar();
d.repaint();
}
public void keyTyped(KeyEvent e){
}
public void keyReleased(KeyEvent e){
}
}
それから、最初はフォーカスが得られてないだろうから、クリックするなりなんなりフォーカスを与えてやること。
0654デフォルトの名無しさん
2006/12/05(火) 21:22:46書いたソースのアプレットをhtmlで動かしたいのですがどうすればいいのでしょうか?
0655デフォルトの名無しさん
2006/12/05(火) 21:37:45ありがとうございました!
フォーカスという概念は初めて知りました。
ググってみたところrequestFocus();とかいう関数なんかもあるんですね。
0656デフォルトの名無しさん
2006/12/05(火) 21:55:20class Test{
private List testList = new ArrayList();
public void testMain(){
List localList = new ArrayList();
for(int i=0; i<5; i++){
getList();
localList = testList.get(i);
・
・
・
}
}
private void getList(){
Map tempMap; ← 何か値を入れる
testList = new ArrayList();
testList.add(tempMap);
}
}
0657デフォルトの名無しさん
2006/12/05(火) 22:02:43JLabelにセットする文字列の頭が<html> で始まってると、
その先はHTMLとして解釈される。
setText("<html><font color='red'>ほげ</font>")
とか。
個人的には大嫌いな仕様だが。
0658デフォルトの名無しさん
2006/12/05(火) 22:11:23「正常な動作」を定義してくれんと。
0659デフォルトの名無しさん
2006/12/05(火) 22:30:130660654
2006/12/05(火) 23:36:05専用スレがあればいいんですが。。。
0661ぴゅあ
2006/12/06(水) 00:04:37>SunのJava Studio Enterprise8を使っています。
と前置きしているところで微妙に判らないような気もしますけど
(申し訳ないけどJava Studio Enterprise8とやらは使ってないです)
>アプレットをhtmlで動かしたい
アプレットの勉強を始めるとたぶん普通に初っ端からでてきたりするんだろうと思うようなところではない?
SunのJava Studio Enterprise8に対して何かしたいのか
http://www.hellohiro.com/applet.htm
に説明されているようなことなのか(適当にググッた)
よく判らんのですが。。。
後者なんかは「そんなんわかっとるわい」とかなりそうだし?
0662デフォルトの名無しさん
2006/12/06(水) 00:24:40始点はコンストラクタでなんとかなりました。
終点はこのプログラムだとどう入れたらいいのでしょうか?
72〜73行目でそれを書いているのですが現在のプログラムだと
ex、eyが見つかりませんと言われコンパイルエラーですorz
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=28891
0663デフォルトの名無しさん
2006/12/06(水) 00:41:35Super クラスのサブクラスのフィールド ex,ey の存在なんて知らない
だからアクセスできない
setStartPoint と setEndPoint メソッドはソースの肥やしか?
ご丁寧にスーパークラスに用意されてるんだから
ちゃんとサブクラスで実装して使え
0664ぴゅあ
2006/12/06(水) 00:48:30"Super union[]"ですよね
"union[j].ex"とかしたときex(或いはまたey)あります? Superクラスの中
あと目に付いたのは…
まだ書き忘れているだろうと思いますけど
>Super union[] = new Super[100];
でSuperクラスのインスタンスを保持する配列(入れ物)は確保していますけど
インスタンス化の処理は何処へ・・・
0665662
2006/12/06(水) 08:32:32とりあえずコンパイラが通るか練習用に、setEndPointメソッドと同じものを
別名で作って試したりしていました。しかし上手くいかなかったものでsetEndPointは保留にしていました。
SuperクラスにsetEndPointって名前であるからこそ使えるんですねorz
>>664
おっしゃっていることの意味が若干理解できていません私orz
48行目あたりの文でインスタンスを生成し、始点であるsx,syが
mousePressedで決定されたのでついでにコンストラクタで代入している。
のち49行目で配列に格納。というつもりで書いてます。。。
0666デフォルトの名無しさん
2006/12/06(水) 09:53:270667デフォルトの名無しさん
2006/12/06(水) 10:44:54メモリサイズはどのようにして割り出せば良いのでしょうか。
例えば、int は何バイトで、String なら何文字の時に何 byte, と言ったような。
0668667
2006/12/06(水) 10:50:56ttp://ufcpp.net/study/csharp/cmp_type.html
等を見ると、
int = 4byte
long = 8byte
String = char(2byte) * 文字数
などと考えても良いものなのでしょうか。
また、配列の場合は単純に掛け算すれば良いのでしょうか
(int[3] の場合 12byte といった)
0669デフォルトの名無しさん
2006/12/06(水) 11:11:130670デフォルトの名無しさん
2006/12/06(水) 11:24:43メッセージ?
swing関係で例外出すのはこのへんだが
0671デフォルトの名無しさん
2006/12/06(水) 12:01:15フォルダの中にデータやフォルダがあると削除できない仕様になっています
これを指定したフォルダ以下のデータを纏めて削除するにはどうすればよいでしょうか?
0672デフォルトの名無しさん
2006/12/06(水) 12:07:37具体的には
byte[] data1=null;
byte[] data2=null;
data1=readByte("test1.jpg"); //readByte(String );は
data2=readByte("test2.jpg"); //ファイルのバイトデータを返すと思ってください
を
for(int i=1; i<=2; i++){
data[i]=readByte("test"+i+".jpg");
}
のように扱いたいときはどう記述すればいいのでしょうか?
0673デフォルトの名無しさん
2006/12/06(水) 12:22:33ファイル削除してから再度ディレクトリ削除するメソッド実装すればいいんじゃね。
0674デフォルトの名無しさん
2006/12/06(水) 13:16:51byte[][] data = new byte[ 10など #ここは必須# ][];
data[0] = readByte( *** );
〜〜〜
って感じだが、宣言時にサイズ指定しなければいけない。(new byte[] [] は無理)
数が不定なら、ArrayListでも使ってみたら?
0675672
2006/12/06(水) 13:27:52ありがとうございます
>byte[][] data = new byte[ 10など #ここは必須# ][];
>data[0] = readByte( *** );
これでOKなんですね
[]の数が2つなら使うときも2つじゃないとダメかと勘違いしていました
サイズ指定するのはやむをえないのでしょうね。
>数が不定なら、ArrayListでも使ってみたら?
実はiアプリなので使えないです。。
0676デフォルトの名無しさん
2006/12/06(水) 13:30:48private int a, b;
public a(int a, int b) {
this.a = a;
this.b = b;
}
public static void main(String[] a) {
if (a.length == 4) {
new a(Integer.parseInt(a[0]), Integer.parseInt(a[1])).a();
new a(Integer.parseInt(a[2]), Integer.parseInt(a[3])).a();
} else {
System.err.println("java a 一つ目の縦 一つ目の横 二つ目の縦 二つ目の横");
}
}
private void a() {
System.out.println("縦:" + a + ",横:" + b + ",面積:" + a * b);
}
}
エラー文字:
Kadai7_0203.java:3: メソッドの宣言が不正です。戻り値の型が必要です。
public a(int a, int b) {
^
エラー 1 個
どのように直せばいいのか教えてください
0677デフォルトの名無しさん
2006/12/06(水) 13:42:19boolean が 4byte ってのはスタックに積まれてる時とかの話じゃないか?
VM仕様では boolean[] は byte[] 使う事になってるから 1byteだし。
あとはオブジェクトインスタンスには VM仕様では
特に何バイトと定義されてないオブジェクトヘッダが付くとか、
細かい事を考えればいっぱいある。
100万文字の String1個 なら、大体 2メガバイトぐらい使うだろう
みたいな大雑把な計算には使えるけど、
"a" と new byte[5] と int 各1個づつで何バイト使うか?
みたいのは、そのプログラムを実行する VMの実装を調べないとわからないよ。
0678デフォルトの名無しさん
2006/12/06(水) 13:42:58○ public void a(int a, int b){
0679デフォルトの名無しさん
2006/12/06(水) 13:56:26一番簡単な修正方法は
クラス名を Kadai7_0203 から a に変える
だが本当にそれでいいのか?
aって名前が多過ぎて自分で訳わかんなくなってないか?
068087のプログラムwo
2006/12/06(水) 14:02:21シンボル: クラス a
場所 : Kadai7_0203 の クラス
new a(Integer.parseInt(a[0]), Integer.parseInt(a[1])).a();
^
Kadai7_0203.java:10: シンボルを解決できません。
シンボル: クラス a
場所 : Kadai7_0203 の クラス
new a(Integer.parseInt(a[2]), Integer.parseInt(a[3])).a();
^
エラー 2 個
になりました(;w;
679>提出する際学籍番号を入れて出すんですがプログラムを製作最中に番号がわからなくなったのでわかり易いaにしたんです^^;;
0681↑ミスりました・・・本当は676のスレ主です
2006/12/06(水) 14:06:23680のスレ主です・・・題名ミスりました
0682デフォルトの名無しさん
2006/12/06(水) 14:15:56じゃあ678のは間違いでした。スマソ。
Kadai7_0203.java ってファイルを a.java に変えて
679氏の策に従えばとりあえず動くかとは思う。
とは言え書くあなたはともかくとして、読む方は泣く。
(それだけ回答が得られにくくなる。)
課題なら採点者の心象もアレになる。
0683質問1/2
2006/12/06(水) 14:17:24public class Test08 {
public static void main(String[] args) {
StringBuffer val01 = new StringBuffer("aaa");
String val02 = new String("aaa");
Sample02a myClassA = new Sample02a();
Sample02b myClassB = new Sample02b();
System.out.println(val01);
myClassA.myMethod(val01);
System.out.println(val01);
System.out.println("------------------------");
System.out.println(val02);
myClassB.myMethod(val02);
System.out.println(val02);
}
}
class Sample02a {
void myMethod(StringBuffer data) {
data = data.append("bbb");
}
}
class Sample02b {
void myMethod(String data) {
data = data + "bbb";
}
}
0684質問2/2
2006/12/06(水) 14:17:57aaa
aaabbb
------------------------
aaa
aaa
となります。
StringとStringBufferで2回目のoutputが違うのはなぜですか?
0685デフォルトの名無しさん
2006/12/06(水) 14:25:27data = data + "bbb";
この部分は、"bbb"という文字列を加えた新しいオブジェクトを生成して
それをdataに代入してるかららしいよ。
ところで質問です。Webアプリケーションサーバはどれを使うのがいいでしょうか?
Sunのやつ、Tomcat?お勧めのものがあれば教えてください。
0686685
2006/12/06(水) 14:30:22WebLogicやWebsphereのような高価なものはいりません。
0687デフォルトの名無しさん
2006/12/06(水) 14:33:55あー新たにオブジェクトを作ってしまうんですか・・・
回答ありがとうございます。
Tomcatで十分だと思います。
0689667
2006/12/06(水) 17:57:40ありがとうございます。ううむ、そうですか。
では目方を変えて、その大ざっぱな計算の仕方と言いますか、
あるオブジェクトが何個あったらこれ位、と言った計算をするための
材料を集めるにはどのようなことを調べればいいでしょう?
MemoryMXBean beforeBean = ManagementFactory.getMemoryMXBean();
MemoryUsage beforeUsage = beforeBean.getHeapMemoryUsage();
long beforeUsed = beforeUsage.getUsed();
Foo foo = new Foo(); // Foo オブジェクトのサイズを計りたい(ここでは一つだが複数個生成、など)
MemoryMXBean afterBean = ManagementFactory.getMemoryMXBean();
MemoryUsage afterUsage = afterBean.getHeapMemoryUsage();
long afterUsed = afterUsage.getUsed();
などとして、afterUsed - beforeUsed を計算してみたのですが、変わったり
変わらなかったりで… foo を計算の後に参照させたりもしてみたのですが、
特に、何故全く変わらない事があるのかよく分かりません(少しでも振れると思ったのですが)
0690デフォルトの名無しさん
2006/12/06(水) 18:06:49多重の警告を表示できるように,警告の契機の度にスレッドを作成し,
そのスレッド上でshowConfirmDialogを呼んでいるのですが、ダイアログは警告分表示されるものの
OKボタンを押せるのは最新のダイアログのみとなっています。
表示されたどのダイアログに関してもOKボタンを押せるという仕様にするにはどうすればよいでしょうか。
ご指導願います。
0691デフォルトの名無しさん
2006/12/06(水) 18:58:17> すべてのダイアログはモーダルです。各 showXxxDialog メソッドは、ユーザの対話が終了するまで現在のスレッドをブロックします。
リファレンスはちゃんと読もうね。
どうしても必要なら自分でモードレスなJDialogを構成して表示。
0692690
2006/12/06(水) 19:07:49マルチスレッドにすれば対応可能かな・・・と思ったんですが。
やはりモードレスなダイアログを作成するしかないようですね。
有難うございました。
0693デフォルトの名無しさん
2006/12/06(水) 20:12:17呼び出すスレッドを別のものにしても、
グラフィックスの処理自体はEDTで一元的に処理されてるから。
0694ぴゅあ
2006/12/06(水) 21:23:43何処が解らなかったのかが判らないけど(いちお2つのことを書いてるし)
>>663の前半の話についても調べてみれば?
そこには全く触れてないみたいだし
0695ココ電球(∩T∀T) ◆tIS/.aX84.
2006/12/06(水) 21:27:53マルチスレッドじゃだめね
マルチプロセスならおけ
0696ぴゅあ
2006/12/06(水) 21:30:28スレッドを使ったというのはそのダイアログを出したいがためだけ?
そのダイアログにあたるものを1個にするとかいうのもありそうだけど
それだと考えてた仕様から変わることになるよねぇ。。。
(自分で作らなきゃいけないだろうという点は同じか・・・)
0697662
2006/12/06(水) 21:41:53はい、単なる知識不足ですorz
あれから助言を元に色々調べまして、mousePressedとmouseReleasedで決定した始点と終点をもとに
ボタンで選択した図形を描画できるところまでいきました。
ここで疑問なのですが、73行目でrepaintをしてから74行目でjをインクリメントしているにも
関わらず(初めての描画の際はj = 0でrepaint文に入るはず)
42行目の条件文を突破してdrawEverythingメソッドが実行できている(アプレットで実際に動作確認)のはなぜなのでしょうか?
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=28912
0698デフォルトの名無しさん
2006/12/06(水) 21:47:04いちよーJava関連なので質問さしてください。
AクラスのaメソッドはAクラスのbメソッドが呼び出された後でなくてはならない時に
例外を投げたいのですが、
その時のメッセージはどんな感じでしょうか?
A#a must be called after A#b has been called
A#a must be called after A#b was called
いかがでしょう?
0699デフォルトの名無しさん
2006/12/06(水) 22:03:34isはダメなんですかね。
ぐぐってみると A#a must be called after A#b.で止めてる例が結構ありますね。
個人的にはYou cannot call A#a before A#b.と書きます。
0700デフォルトの名無しさん
2006/12/06(水) 22:04:16> after A#b was called
文法的には was じゃなくて is 。
0701デフォルトの名無しさん
2006/12/06(水) 22:06:09エクリプスでjarファイルにしてパッケージ化し、ダブルクリックで実行できるようにしたのですが
コマンドプロンプトが表示されなくなってしまい困っています(dos窓に色々な情報を表示させているので)。
プログラムでコマンドプロンプトを表示させる方法はどのような文を追加すればよいのでしょうか?
0702デフォルトの名無しさん
2006/12/06(水) 22:06:56なるほど、A#a must be called after A#b.で止めても問題ないですね
そして文法の勉強もできました
ありがとうございました
0703デフォルトの名無しさん
2006/12/06(水) 22:17:25.jarと同じディレクトリにバッチファイルを置く方法ではダメだろうか?
0704701
2006/12/06(水) 22:38:04ありがとうございます。
バッチファイルでコマンドプロンプトは出たのですが、
その窓にはプログラム中のSystem.out.printが効かないようです。
もう少し調べてみます
0705ぴゅあ
2006/12/06(水) 22:53:53イベントに(何の対処もなしに)順序性を求めるのはあまりよくないのかも
と思ったりしますけど…
実際にどのようにして、どんな問題が出てます?
(若干作りとして気になるところもあるけどそれは関係はない筈
"フィールドでjを初期化しててinitやstartメソッドではやってないけど、それはunion[]も同じなので"
まぁ気になるようなところはいっぱいあるので… それは追々見ていってください)
0706デフォルトの名無しさん
2006/12/06(水) 22:54:44JSP実行には、どのクラスのどの関数をCALLすれば良いですか?(サーバーサイドで実行されていることをクライアントで実行したい)
目的としては、サーバーに負荷をかけたくないので、よくアクセスされるものに関しては、HTML化しておきたいんです。
0707デフォルトの名無しさん
2006/12/06(水) 23:06:17指定のURLからHTMLソースを得るプログラムなのですが、日本語のみ文字化けしてしまいます。
URL dairly_add = new URL(rss_add);
connector = (HttpURLConnection)dairly_add.openConnection();
connector.setRequestMethod("GET");
BufferedReader dairly = new BufferedReader(new InputStreamReader(connector.getInputStream(),"JISAutoDetect"));
while (( str = dairly.readLine()) != null) {
System.out.println(str);
}
dairly.close();
connector.disconnect();
文字コードの変換はJISAutoDetectで大丈夫かと思ったのですが、無理でした。
ご教示お願いします。
0708デフォルトの名無しさん
2006/12/06(水) 23:06:47.batファイルからjavaを起動すれば良いんじゃないかな?
0709662
2006/12/06(水) 23:08:15まずmousePressedとmouseReleasedを完成させて、
mouseReleasedで終点が決定した時点で描画するようにできました(697のプログラム)。
その後mouseDragged中にも描こうとしている図形が表示される仕様にしたいのですが、これが上手くいきません。
mouseDraggedメソッド内でsetEndPoint、repaintを入れてみましたが
dragg中に確かに激しく点滅はするのですが図形の描写はありません。
そしてpaintメソッドの条件の問題かと思って確認なんかをしていたら697の疑問に気付いたりとorz
いやしかし様々なアドバイスありがとうございます。
0710デフォルトの名無しさん
2006/12/06(水) 23:12:090711ぴゅあ
2006/12/06(水) 23:21:24以前あったと思うんですけど見つけられない。。。
コマンドプロンプトに代わるビューを作って…とかいうのではない?
0712ぴゅあ
2006/12/06(水) 23:27:34いちお(若干気にならないでもないけど@自分の中で)
>(初めての描画の際はj = 0でrepaint文に入るはず)
というのは問題にならないんじゃないかと思うんですよ…
単に疑問として思ったのか、実際に何か問題が起こっているのを確認したのか
とかによると思いますけど
>dragg中に確かに激しく点滅はするのですが図形の描写はありません。
というのはたぶん>>697より後に作り込んで行ったコードですよね?
0713707
2006/12/06(水) 23:31:32このクラスに引数で指定した文字コードでエンコードするってことなのでしょうか?
0714デフォルトの名無しさん
2006/12/06(水) 23:45:36import java.awt.BorderLayout;
import javax.swing.*;
import java.io.*;
public class TextPaneOutputStream extends ByteArrayOutputStream {
private JTextPane text;
public TextPaneOutputStream(JTextPane text) {
super();
this.text = text;
}
public synchronized void write(byte[] b, int off, int len) {
Document doc = text.getDocument();
try {
doc.insertString(doc.getLength(), new String(b, off, len), null);
} catch (BadLocationException e) {
// ignore or log
}
}
public static void main(String[] args) {
JTextPane text = new JTextPane();
JFrame f = new JFrame("Test");
f.add(text, BorderLayout.CENTER);
System.setOut(new PrintStream(new TextPaneOutputStream(text)));
f.setSize(300, 300);
f.setVisible(true);
for (int i = 0; i < 10; i++) { System.out.println("hello!"); }
}
}
0715デフォルトの名無しさん
2006/12/06(水) 23:46:190716662
2006/12/06(水) 23:47:25実際問題との関連としては、mouseDragged中にmouse位置を終点としてrepaintさせたいのですが
public void mouseDragged(MouseEvent e){
union[j].setEndPoint(e.getX(),e.getY());
repaint();
}
とmouseReleasedと同じように記述しても細かな点滅のみで表示はさませんでした。
理由についてj番目であるunion[j]が42行目(i > j)の条件にそぐわずdrawEverythingが実行されなかったからだと思いました。
しかしよくよく見たらmouseReleasedもjのインクリメントはrepaintの後に行っていて、
なぜ(i < j)でj = 0なのにしっかり表示されてしまうのか、
その疑問の解決がmouseDraggedでうまく表示させるのに必要な手順だと思いました。
0717ぴゅあ
2006/12/06(水) 23:58:26わざわざありがとう
いや、前にこのスレッド(たぶん2つ前くらい前までの間)で
その手の話が挙がったような気がしたんですけどね
見つけられなかった…ということです
(コードまでは挙げられてなかったと思うけど)
>>704宛てにどうぞ
0718662
2006/12/07(木) 00:02:18ただし定数にしてしまったことでその5、6個の図形の描画しかなされない状態に当然なっています。
やはりj番目より1つ前までの図形の描画を行っていて、j番目であるマウス位置によって形の変わる
図形の描画はpaint文の条件にはねられてdrawされないということなのでしょうか。。。
それならmouseReleasedもなぜ表示されるのか不明ですし、混乱しますorz
0719デフォルトの名無しさん
2006/12/07(木) 00:06:13ちがう。向うからヘッダが返ってきてるからそこからcharsetを読み取る。
ヘッダに含まれていないときはhtmlならmetaタグ中のを読む。
でも、
>URL dairly_add = new URL(rss_add);
って変数名を見るに、RSS?
ならローカルファイルシステム上のXMLファイル扱う要領でok.
0720デフォルトの名無しさん
2006/12/07(木) 00:09:34JSPで生成されるJavaのコード見てないからわからないけど、
レスポンスに直接出力されてた気がする。
ベロシティー使えば確実にできるよ。JSPじゃないけど。
サーブレットの後ろにフィルター置けば、HTML取れるのかな?取れる?
0721ぴゅあ
2006/12/07(木) 00:10:58>しかしよくよく見たらmouseReleasedもjのインクリメントはrepaintの後に行っていて
やはりそんな風に考えていたんですね
(でも実際にjの値がどうなっているのかまでは確認してないのですよね)
いちお言われているところによく判らないところもあるから書かずに置いておいたところですけど
「repaintは"なるべく早い時期に"paintを呼び出そうとする」というのがあって
paintが呼び出されるのが続くj++より前になるか後になるかは判らないし
それだけ(repaintに対してpaintが何時呼び出されるか…だけ等)に依存するコードとするのはよくないだろうと思います
加えてマウスイベント処理内でrepaint,j++をやっているので
paintはそのイベント処理(mouseReleased)が終わった後まで待たされる可能性が高い(その直後かどうかは保証がない)
と考えていいと思います
つまり、j=0なんだからdrawEverythingが呼ばれるのはおかしいというのではなく
実際にはj=0でない状態にあるからdrawEverythingが呼ばれていた可能性がある
と考えられると思います
(それを確認するためには「実際にjの値がどうなっているのか」を確認してみることです)
ついでに訂正(>>717)
コードはあったような気もした。。。
0722707
2006/12/07(木) 00:22:02RSSから対象アドレスを取得してるからrss_addなのです。
仰る意味も理屈も理解出来るんだけど、手段が出てこないですorz
XMLはDocumentクラスで解釈して各要素を取り出す程度しかやったことないですし……。
レスポンスヘッダっていうのは、指定URLにアクセスした際に自動的に返って来るものですか?
そこに文字コード等が載ってるから、それを読み取るっていう認識でOK?
ちょいと自分で調べてみます。
0723デフォルトの名無しさん
2006/12/07(木) 00:25:12うはw
まさにやりたいのはこれ。ありがとう!!
0724デフォルトの名無しさん
2006/12/07(木) 00:28:33ByteArrayOutputStream#writeToを使うのがオススメ、Velocityとも相性がいい
0725デフォルトの名無しさん
2006/12/07(木) 00:33:10URLConnection#getContentType()
サーバー側で付けてくれてなければあとは
HTTP4.01のW3C勧告を参考にしてクライアント側で頑張る。
0726ぴゅあ
2006/12/07(木) 00:33:39>たぶん>>697より後に作り込んで行ったコードですよね?
を前提として話してますが
(そういったコードは実装されてなさそうだし、実際にそうならないし)
考えるのに適当かどうかはなんとも言えないところですけど、気になった部分のひとつ
mouseReleasedメソッドでやっているj++をunion[]を何個使ったかという意味合いにして
mousePressedメソッドで
>union[j] = ...;
の後ででもやってやるというのはどうでしょう
(このjugde[]の使い方も気になるところですが…)
彼方此方jの扱いをちゃんと見直す必要とかも出てきてしまうので
どうか…とも思いはしますが。。。
(mousePressedの後には必ずmouseReleasedが呼ばれることになるので
union[]が必ず1個使われることになるのでもあり考え方としても問題ない)
>union[j].setEndPoint(e.getX(), e.getY());
がまだ呼ばれていないときがあるじゃないかというのはdrawEverythingで工夫(後にでも?)
その後の実装が判らないのでちらつきというのがどういう風に見えているのかは判らないですけど
描画時のちらつきを除去にはどうするか(ダブルバッファリング)とか調べてみればいいのだろうかと
そういうちらつきであるとするなら、ちらつくというのはまだ放っておいていいんでしょう
>表示はさませんでした。
というのはドラッグ中の処理がうまく書けていないからかな?
0727725
2006/12/07(木) 00:34:030728デフォルトの名無しさん
2006/12/07(木) 00:39:41先輩にこれ何ですか?と聞いたら「setterとgetterだけのクラスを
Beanというんだ」と言われました。
それでググってみたのですが、Beanの正しい意味はわかりませんでした。
この先輩の説明はあっているのでしょうか?
0729707
2006/12/07(木) 00:46:36親切な回答ありがとう。
俺の頭がアフォなせいで、理解してるのか怪しいけど、実際に弄りながら勉強していきます。
明日早いから今日は寝て、明日またやってみます。
0730デフォルトの名無しさん
2006/12/07(木) 01:13:07今、JARファイルを作成しようと思い、色々とやっているのですが
インナクラスの扱い方がちょっとよく分かりません。
マニフェストファイルを作成し、普通のクラスをいくつかまとめてJARファイルにすることはできたのでるのです。
しかしそこにインナクラスがひとつでも絡むと
そのクラスについてのみ「●●.classというファイルまたはディレクトリはありません」
というメッセージがDOS窓に表示されてしまうのです。
で、その●●というインナクラスを持つ、△△クラスだけでJARファイルにしてみたのですが
そうすると今度はJARファイルにはなるのですが、それをダブルクリックしてもエラーメッセージが出るだけになってしまって・・・。
素人丸出しの質問で申し訳ないのですが、どうかよきアドバイスをよろしくお願い致します。
0731デフォルトの名無しさん
2006/12/07(木) 01:32:17Beanであるためには、プロパティにアクセスするためにsetXxx getXxx
というメソッドを使える必要があるが、逆にsetXxx getXxxでアクセスするものすべてをBeanと呼ぶわけではない。
さらにいえば、BeanだからといってxxxBeanと名付けなければいけないわけでもない。
0732デフォルトの名無しさん
2006/12/07(木) 01:32:54JAR にまとめる時はどうやってます?
△△.java をコンパイルすると △△.class 以外にも △△$1.class とか出来るはずだけど
出来上がった JAR にこれもきちんと含めてます?
0733デフォルトの名無しさん
2006/12/07(木) 01:40:190734デフォルトの名無しさん
2006/12/07(木) 01:42:57初めて聞く流儀ですが、例えばどこで使われてます?
0735デフォルトの名無しさん
2006/12/07(木) 01:45:140736デフォルトの名無しさん
2006/12/07(木) 01:47:53for-each ループを使用可能にするには、-source 1.5 を試してください
というエラーがでてきました。
javaのバージョンは1.5.0_08なのですが、何かおかしいところがあるのでしょうか?
0737デフォルトの名無しさん
2006/12/07(木) 01:50:32Eclipseが相変わらず1.42のJREを参照してればそうなるんじゃない?
0738デフォルトの名無しさん
2006/12/07(木) 01:56:16antでビルドをしています。
MANIFEST.MFは以下の通りです。
Ant-Version: Apache Ant 1.6.5
Created-By: 1.5.0_08-b03 (Sun Microsystems Inc.)
0739デフォルトの名無しさん
2006/12/07(木) 02:01:17てかjarはあんま関係ないのでは?
コンパイルに対する内容しだいなので。
0740デフォルトの名無しさん
2006/12/07(木) 02:09:27[echo] Compiling with Java 1.5 from 1.4 source to 1.4 target,
と出るので、1.4であることは確実なのですが、
これを1.5にすることはant側で出来るのでしょうか?
0741デフォルトの名無しさん
2006/12/07(木) 02:13:21インナークラス含めてコンパイルしたらこんなものが出来るとすら知りませんでしたorz
仰るとおりに、△△$1.classも含め実行したら
ちゃんとJARになり、またダブルクリックした後の処理もきちんとされました。
どうもありがとうございました。
0742デフォルトの名無しさん
2006/12/07(木) 02:18:10build.xmlを晒しなさい。
0743デフォルトの名無しさん
2006/12/07(木) 02:23:05build.xmlで指定はしていなかったのですが、
build.propertiesにてversion変更したら無事実行できました。
相談させていただくことにより、一旦頭が冷えて解決することができました。
ありがとうございました。
0744デフォルトの名無しさん
2006/12/07(木) 09:35:15そりゃ、EJBのValue Objectの命名規則じゃないか?
EJBの場合、同じエンティティを表すクラスが複数現れる
(EJBObjectやHome/Remoteインタフェース、Value Objectなど)
ので、そういう面倒な命名規則が役に立つけど。
0745デフォルトの名無しさん
2006/12/07(木) 12:09:47回転させた画像についてはAffineTransformクラスを使って作成することができました。
では傾けた画像を得るにはどのようなクラスを用いればいいのでしょうか?
0746デフォルトの名無しさん
2006/12/07(木) 12:16:23AffineTransformクラス
0747デフォルトの名無しさん
2006/12/07(木) 15:56:132D軸と3D軸の話か?
0748デフォルトの名無しさん
2006/12/07(木) 15:59:210749デフォルトの名無しさん
2006/12/07(木) 16:04:38それなりのプログラムを書こうとするときにいつも
クラス名、変数名、メソッド名で困ってしまいます。
クラス名はそんなに多くないからどうにかなりますが変数とメソッドは悩みます。
どういう基準で名前をつければ良いでしょうか?
思いつかない場合ですと int temp とか int kazu, kazu1とか日本語まで取り入れてしまう始末です。
メソッドでもpublic void setKazu(){]とかとか。
気がついたらグローバルとローカルで重複の変数になっていてちゃんと動作しなくて悩んだことも多々あります。
皆さんの基準などを教えていただけたらうれしいです。
アドバイスよろしくお願いします。
0750デフォルトの名無しさん
2006/12/07(木) 16:13:31kazu1はマズイ。こんなんするぐらいならいっそ日本語で
private int 生徒数;
public void 生徒数設定(int 生徒数){...
の方が分かり易い分マシだと思う
0751デフォルトの名無しさん
2006/12/07(木) 16:40:33いくつか候補のうち、どれにしようか・・・ はあるけど、適当に付けるような事態にはならない。
適当に付けると後で困るからな。
■ このスレッドは過去ログ倉庫に格納されています