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

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/10/22(日) 13:42:10
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下の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質問・相談スレッド92【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1159700963/

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/

次スレは>>980あたりで。
0052ぴゅあ2006/10/23(月) 20:55:52
あちしは>>28,>>29の言ってることはあり得るんじゃないかと思ってますよ。。。
(その後、どうだったかとかがないし・・・)


>>30
ページ毎に配置して破棄して…なんてごにょごにょやるとかいう地道?なのもあるだろうけど

JFrameのContent Paneに乗せているということならContent PaneってJPanelらしいので、
(APIリファレンスのJFrameの中の「Using Top-Level Containers」辺りも見てみるとか
英語だけど・・・ ググッたらどっかに邦訳とかあったような・・・ 気の所為かも。。。)

Content PaneにJPanelを乗っけてやれば、殆どそのまま今やってるのをJPanel上に移せそうですよね
各ページ毎にJPanelを作って乗せてやって、表示/非表示を切り替えてやればいいんじゃないかと
(表示/非表示についての似た話があったのは前スレだったのかな・・・?)

ただ、JFrameではあまり色々といじってないので、ちゃんと試して確認してね
ですけど。。。

或いは先のページ(中程)を見てみると、Content Paneを差し替えるとかできそうなので
もしかしたら表示/非表示よりシンプルに?行ったりするのかもですけど
ただ、Content Paneごとページ単位で差し替えていいようなデザインとかだったら…だし
通常はJPanelを作って乗せるとかの方がいいのかも
(何かのときに試してみようかとも思ってるけど
もし試してみたら、こんなだったとかあると嬉しかったりするけど…)
0053ぴゅあ2006/10/23(月) 20:58:45
>>51
もしかしてファイルのアップロードとか?
"Servlet アップロード"とかでググってみれば色々出てくると思うけど
0054デフォルトの名無しさん2006/10/23(月) 21:07:15
私はドットコムというサーバー会社を借りています。
昨日私宛に1通のメールが届きました。

http://www.do-to.com/

マイルーム「トピックス:10月22日付」にてご案内の通り一部の
旧コバルトJサーバー復旧にあたりハードディスク取替えのため
各サイトについて担当エンジニアにて至急に再設置作業が行われ
ています。

再設置を完了しだい各サーバーは本日夜間から順次接続を再開し
初期トップページが開きますので下記のサーバー初期アカウント
にて管理ページへログインしパスワード変更及び追加ユーザー・
メールアドレス設定とお手元よりページファイル等のFTP転送
をご処理ください。

私なりに考えてみたのですがこれってサーバーが故障したので別に移しました。
後はそちらでFTPなどし直して下さい。みたいなメールに見えるんですけど
昔からのデータも消えてしまいましたしCGIなどの設定なども解りません。
メール設定なども最初からやらなければならないし。


サーバー会社ってみんなこんな感じなんでしょうか?
0055デフォルトの名無しさん2006/10/23(月) 21:10:56
なにこのうざい語り口調で適当な事しか言わない変な固定
0056デフォルトの名無しさん2006/10/23(月) 21:39:11
すみません意味解んないんですけど私の捉え方が間違っているんですかね?

どうしてもドットコムから送られてきたコノメールが良い様にとらえる事が出来なくて。違う観点があるのでしたら聞かせてもらえますか
0057デフォルトの名無しさん2006/10/23(月) 23:56:43
質問させて下さい。
Javaアプリケーションでファイルコンバータを作ろうと思っています。
Java1.4.2_12
そこでファイルダイアログを開く為にFileDialogクラスを使ってみましたが
・拡張子が選択できない。(”すべてのファイル”しかない。)
・初期参照フォルダパスが設定できない。
FileDialogで上記の設定ができるでしょうか?
もしくは別なファイルダイアログクラスはありますでしょうか?

よろしくお願いします。
0058デフォルトの名無しさん2006/10/24(火) 00:46:12
>>49
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(64);
list.add(32);
Collections.sort(list);
System.out.println(list.get(0));
System.out.println(list.get(1));

要1.5
0059デフォルトの名無しさん2006/10/24(火) 01:10:31
>>57
java.awt.FileDialog だったら

> 拡張子が選択できない。
setFilenameFilter 使う。
ただし、Sun のJDK使ってるなら、Windowsでは機能しないらしい。

> 初期参照フォルダパスが設定できない。
setDirectory 使う。

Swing だと JFileChooser かな。
0060デフォルトの名無しさん2006/10/24(火) 01:14:11
JFileChooser chooser = new JFileChooser();
FileFilter pngFilter = new FileFilter() {
public boolean accept(java.io.File f) {
return f.isDirectory() || f.getName().toLowerCase().endsWith(".png");
}
public String getDescription() {
return "PNGファイル(*.png)";
}
};
FileFilter jpgFilter = new FileFilter() {
public boolean accept(java.io.File f) {
return f.isDirectory() || f.getName().toLowerCase().endsWith(".jpg");
}
public String getDescription() {
return "JPEGファイル(*.jpg)";
}
};

chooser.setCurrentDirectory(new java.io.File("C:\\Program Files"));
chooser.addChoosableFileFilter(pngFilter);
chooser.addChoosableFileFilter(jpgFilter);
chooser.setFileFilter(pngFilter);
chooser.showDialog(null, "ファイルを開く");
0061572006/10/24(火) 01:49:22
>>59-60
回答ありがとうございます!
探し求めていたものはまさにこのようなクラスです。
本当に助かりました。
感謝です!!
0062302006/10/24(火) 02:41:45
>>52
まさかこんなに丁寧に答えてくださるとは思ってもみませんでした
ありがとうございます
がんばってみますね
もしその方法を試されて成功された場合はまた教えてください
0063ぴゅあ2006/10/24(火) 13:55:35
>>53
ドンピシャです!参考になりそうなソースが出てきました。ありがとうございます!
0064デフォルトの名無しさん2006/10/24(火) 13:57:11
なんでマ板ってID出ないのかな。
出た方が便利なのに。
0065512006/10/24(火) 14:09:17
>>63は私じゃありません!誰かがぴゅあさんを陥れようとしているのです。。。
0066デフォルトの名無しさん2006/10/24(火) 15:51:24
ぴゅあが出てからAA荒らしがなくなったのが全てを物語ってる
0067デフォルトの名無しさん2006/10/24(火) 16:54:05
javaの画像処理について初投稿します
       public PixelGrabber(Image img,int x,int y,int w,int h,int[] pix,int off,int scansize)
を使用してimgのピクセルデータをint型のpixに格納はできました。
int型のpix(例えばpix[0])には-16705004というイミフな数字が格納されます。
このpix[0]に対して
r_pixels[a][b]=(color_in2[a][b]>>16) &0x000000ff;
g_pixels[a][b]=(color_in2[a][b]>>8) &0x000000ff;
b_pixels[a][b]=(color_in2[a][b]) &0x000000ff;
を行うと、各rgb成分として1,26,20が取り出せました。
このようなint型のrgb成分から-16705004のようなイミフな数字を逆に取り出すにはどのようにすればいいのでしょうか?
よろしくお願いしますm(_ _)m
0068672006/10/24(火) 16:58:57
r_pixels[a][b]=(color_in2[a][b]>>16) &0x000000ff;
g_pixels[a][b]=(color_in2[a][b]>>8) &0x000000ff;
b_pixels[a][b]=(color_in2[a][b]) &0x000000ff;
でななくて
red = (pix[0] >> 16) & 0x000000ff;
green = (pix[0] >> 8) & 0x000000ff;
blue = (pix[0]) & 0x000000ff;
です
0069デフォルトの名無しさん2006/10/24(火) 17:03:15
>>67
半透明を指定するアルファ値を不透明に固定で良いなら

final int alpha = 0xFF;
int argb = (alpha << 24) | (red << 16) | (green << 8) | blue;

必要があるなら & 0xFF とかでマスクする。
0070672006/10/24(火) 17:11:38
ありがとうございます!
上記の方法で解決しました!
2chでこんなやさしくされたの初めてだ(´ー`)
0071デフォルトの名無しさん2006/10/24(火) 17:17:31
ColorConvertOpを使ってフルカラーをインデックスカラーに変換したいのですが、
以下のようなソースだと、あらかじめパレットを用意しておく必要がでてきてしまいます。
パレットを自動的に最適化してくれるような方法はないでしょうか?

//パレット
byte[] rs = {-1, 127, 0, 0};
byte[] gs = {-1, 0, 127, 0};
byte[] bs = {-1, 0, 0, 127};
IndexColorModel colormodel = new IndexColorModel(2, 4, rs, gs, bs);

//一時的に使うイメージ
BufferedImage tmpimg = new BufferedImage(
orgimg.getWidth(), orgimg.getHeight(), BufferedImage.TYPE_BYTE_BINARY, colormodel);

//変換
ColorConvertOp colconvop = new ColorConvertOp(null);
colconvop.filter(orgimg, tmpimg);

また、パレットを作成するときにbyte配列を取りますが、
Javaではbyteは-128から127なので、128以上は表現上マイナスになってしまいます。
これは仕様なのでしょうか?
0072デフォルトの名無しさん2006/10/24(火) 20:38:46
初歩的な質問ですが...
GUIアプリケーションを作成した後, アイコンをダブルクリックして実行するようには出来ないんですか?
0073ぴゅあ2006/10/24(火) 20:44:19
>>65
そんな仕様もないのは放っときゃあいいと思うけど
肝心の質問の方は解決できましたか?
0074ぴゅあ2006/10/24(火) 21:01:40
前のスレッド
http://pc8.2ch.net/test/read.cgi/tech/1159700963/702
以降と似た話だと思いますよ

>アイコンをダブルクリックして実行する
ということだけを求めるのなら
バッチファイルにしたのでもいいんじゃないかと思うんですけど
0075デフォルトの名無しさん2006/10/24(火) 21:18:59
>>72
exewrap や JSmooth でぐぐる
0076デフォルトの名無しさん2006/10/24(火) 21:47:27
>>75
ありがとうございます.
また質問ですが, jarコマンドでマニフェストファイルを一緒に格納したのですが,
圧縮後のアーカイブファイルの中のマニフェストファイルのMain-Class: xxxの行が消えてしまうのです.
何故でしょうか?
0077762006/10/24(火) 21:58:53
事故解決しました\(^o^)/
0078762006/10/24(火) 22:28:37
度々すみません.
別PCで試してみたところ, "JavaVMを作成できませんでした"というコメントが出てきたのですが, これは何が問題なのでしょうか?
0079デフォルトの名無しさん2006/10/24(火) 23:06:01
JREはインストールしてある?
0080デフォルトの名無しさん2006/10/25(水) 10:55:01
>>78
JREが複数インストールしてあって、レジストリと呼び出すjava.exeの整合性が取れてないとか?
0081デフォルトの名無しさん2006/10/25(水) 16:02:24
Jamesを触り始たのですが、最初の起動から躓きましたorz

run.batを起動すると,
Using PHOENIX_HOME: C:\java\james-2.2.0
Using PHOENIX_TMPDIR: C:\java\james-2.2.0\temp
Using JAVA_HOME: C:\jdk1.5.0_05
Invalid or corrupt jarfile C:\java\james-2.2.0\bin\phoenix-loader.jar

と言われてしまいます。
JAVA_HOMEをjdk1.4.2にしても同様です。

run.batの中身は替える必要があるのでしょうか?
Jamesのバージョンは2.2です。よろしくお願いいたします。

0082デフォルトの名無しさん2006/10/25(水) 16:59:10
(1) org.xml.sax.InputSource から getCharacterStream() で Reader を取得する。
(2) Reader から順に文字を char[] へ読み込む(実際にはこの後これをリモートへ転送)
(3) char[] を受け取った側はファイルに書き込む。

と言う処理を行おうとしています。

(3)でファイルを書き込む際、エンコーディングを指定しておかないとまずいように
思うのですが、それは InputSource#getEncoding() の結果と言うことになるのでしょうか?
例を書かせて頂きますと
●local(読み込み)●
char[] buffer = new char[256];
Reader reader = inputSource.getCharacterStream();

for (int n = 0; (n = reader.read(buffer)) != -1; ) {
//...buffer を転送...
}
●remote(書き込み)●
File serverImage = new File("foo");
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(serverImage, true));
                   //★encoding指定の場合はここに引数追加
writer.write(buffer, 0, length);

※上書きフラグが true になっているのは転送<->書き込みを繰り返して完成させるためです。

目的は、(3)で書き込まれるファイルが、(1)の元々 InputSource が示していたものと
同じイメージであることなのですが、InputSource#getEncoding() は必ずしも
エンコーディングを返してくれるものではないように読めるので、心配しています。
なお、別の都合で InputSource#getByteStream を当てにするのは無理になっています。
うーん、InputSource を理解してない?
0083デフォルトの名無しさん2006/10/25(水) 17:49:46
>>82
入力のInputSourceをどうやって作成したかによって、できることとで
きないことがある。

A. new InputSource(InputStream)だった場合
→getEncoding()はnull、getCharancterStream()はnull
B. new InputSource(Reader)だった場合
→getEncoding()はnull、getByteStream()はnull
C. new InputSource(String)だった場合
→getEncoding()がnon-nullのこともあるかもしれない
いずれの場合も、setEncoding(String)が呼ばれていればgetEncoding()
がnon-nullかもしれない。

なので、InputSourceがどう作られるかの仮定が持てない場合は、「元
と同じエンコーディングにしたい」は不可能。
0084デフォルトの名無しさん2006/10/25(水) 18:01:50
>>83
ありがとうございます。オーバーヒートしかけてましたが、
悩みつつあった内容と同じでした。

もう少しゴテゴテと周辺で起こりそうなことを加えると

・(挙げていない点でしたが)Reader で渡している以上、Reader の読み込み時点で
 文字化け等が起こって無いことは渡すものの責任

・Reader と言うことは内部的には Unicode で渡るのだから、明示的にエンコーディングを
 指定した転送後の展開を意図するならば、「例えば」setEncoding しておけ。
 と言っても、これを見るかどうかは受け取り側次第。
 その結果文字化けが発生したらどうしようもない。強いて言えば決めてないことが悪い。

・ストリームであれば復元に関してこのような考慮は無いので、
 一般的には Reader やシステム ID でなくストリームで渡す。
 (ファイルへ書くだけならそのままであるし、その後にエンコーディングが必要な
  パーズ処理などをもしやるのであれば、正しくコピーされたファイルの中身
  から判別、といった道も自由)

つまり元々の回答には答えがないと言うか…
0085デフォルトの名無しさん2006/10/25(水) 19:43:04
C言語のソースをJavaのソースにコンバートしてくれるツールってないですか?
0086デフォルトの名無しさん2006/10/25(水) 20:17:35
>>85
実はその逆をやってくれるツールが欲しい。
探してるのですがそういうのをご存知なら加えて教えてもらいえないでしょうか?
0087ぴゅあ2006/10/25(水) 21:24:48
>>85,>>86
その手のには、java2cとかjava2c++とか(或いはその逆)
或いはj2cとか・・・
名前が付けられたりする傾向があったりするし
"Java C コンバート"とかでもググッてみるとか

色々組み合わせて探してみると
何か出てくるかも?というところですけど
0088デフォルトの名無しさん2006/10/25(水) 21:46:58
cのJVM向けのコンパイラでも用は足りるな
0089デフォルトの名無しさん2006/10/26(木) 00:35:35
AspectJを学ぼうとしたら何処のサイトがいいでしょうか?
すれ違いならば何処のスレで聞けばいいですか?
0090デフォルトの名無しさん2006/10/26(木) 10:52:43
"AspectJ"とかでもググッてみるとか

色々組み合わせて探してみると
何か出てくるかも?というところですけど
0091デフォルトの名無しさん2006/10/26(木) 16:16:12
Java 5.0 Update 8で、1と0が1600個並んだ文字列を指定してFileInputStreamを開いたら、
Windowsごと落ちた。
1.4.2_12だと単にFileNotExceptionをスローするだけで、JVMもOSも無事だった。

JVMのバグ?
0092デフォルトの名無しさん2006/10/26(木) 16:30:46
>>91
1.5.0_09-b01 では FileNotFoundException 投げるけど。

import java.io.*;
public class test{ public static void main(String[] args) throws Exception {
 String s = "";
 for(int i = 0; i < 800; i++) s+="10";
 FileInputStream in = new FileInputStream(s);
 in.close();
}}

みたいな感じのコードでチェック。
0093デフォルトの名無しさん2006/10/26(木) 17:55:17
同時ダウンロードのアルゴリズムを教えてください。
例えばファイルAが複数のサーバ上にあり、それぞれのサーバに接続しデータを受信
することにより早くダウンロードしたいのです。
0094デフォルトの名無しさん2006/10/26(木) 17:59:42
"同時ダウンロードのアルゴリズム"とかでもググッてみるとか

色々組み合わせて探してみると
何か出てくるかも?というところですけど
0095デフォルトの名無しさん2006/10/26(木) 18:38:59
ここのスレの回答はググレばっかりだなw
0096デフォルトの名無しさん2006/10/26(木) 19:31:14
iアプリをちまちま作りたいと思っているんですが、アプリ作成に最適なフリーソフトは何ですか?

携帯からスマソ
0097デフォルトの名無しさん2006/10/26(木) 19:45:14
"iアプリ、最適なフリーソフト"とかでもググッてみるとか

色々組み合わせて探してみると
何か出てくるかも?というところですけど
0098デフォルトの名無しさん2006/10/26(木) 21:19:21
JavaはあるバージョンのSDKで書かれたコードを別のバージョンのSDKに変えてもそのまま通ってくれるんですか?
0099デフォルトの名無しさん2006/10/26(木) 21:22:15
バージョンによる
0100982006/10/26(木) 21:29:54
>>99
そうなんですか、ややこしいですね…


v1.3で書かれたコードからv5.0では、どういう実情なのでしょうか?
0101デフォルトの名無しさん2006/10/26(木) 21:42:24
>>100
1.4 とか 5.0 で deprecated になったメソッド使ってるとか、
1.4 で予約語に指定された assert、5.0 で予約語に指定された enum とかを
変数名、フィールド名、メソッド名に使ってなければ大丈夫だと思うけど。
0102デフォルトの名無しさん2006/10/26(木) 21:51:22
enum予約語化のインパクトは絶大だった・・・
0103デフォルトの名無しさん2006/10/26(木) 21:56:15
ではv1.4.1で書かれたコードからv5.0ではどうでしょうか?
0104デフォルトの名無しさん2006/10/26(木) 22:02:47
>>103
>>101  の通り。
基本的に昔のコードはコンパイルは通る。
まずは試してみればOK。
0105982006/10/26(木) 22:06:58
>>101
ドキュメント読んでみて、非推奨項目に引っかからなければ原則大丈夫ってことかな。

とりあえず5.0で試してみます。ありがとうございました。
0106デフォルトの名無しさん2006/10/26(木) 22:19:18
1.4 → 5.0 のインパクトに比べれば、どんなこともインパクトに欠ける。
0107デフォルトの名無しさん2006/10/26(木) 22:34:17
数字のインパクトか!?
0108ぴゅあ2006/10/26(木) 22:50:08
>>105
取り敢えず見てみるというところでは
コンパイルしてみれば
ワーニングやエラー出してたり(出させられたり)してなかったかなぁ?

それに対してどうしようかってときに
リファレンス見ていったりしたのでもよいだろうと思うけど
0109デフォルトの名無しさん2006/10/26(木) 22:53:31
>>102 そうでもなかった。
0110デフォルトの名無しさん2006/10/26(木) 23:03:12
setTimeoutでページをジャンプさせる時に履歴を残さないようにしたいのです。
location.replaceを使えばいいように思うのですが、どうしてもうまく出来ません。
よろしくお願いします。

0111デフォルトの名無しさん2006/10/26(木) 23:51:51
>>110
JavaScriptならこっち
http://pc8.2ch.net/php/
0112デフォルトの名無しさん2006/10/26(木) 23:52:38
こっちでしたorz
http://pc8.2ch.net/hp/
0113デフォルトの名無しさん2006/10/27(金) 01:41:58
"setTimeout ページをジャンプ"とかでもググッてみるとか

色々組み合わせて探してみると
何か出てくるかも?というところですけど

0114デフォルトの名無しさん2006/10/27(金) 11:09:28
deprecatedなだけなら残ってるんじゃ
1.3未満の環境で作ったGUI周りは動きがおかしくなる事が間々あるな
0115デフォルトの名無しさん2006/10/27(金) 11:47:55
package 宣言がないとコンパイル出来ない、等も。
いずれにせよ、対処はそれなりに簡単。
0116デフォルトの名無しさん2006/10/27(金) 13:10:19
これってお金とかかかるんですかぁ〜?
タダなら始めようと思ってるんですけど
0117デフォルトの名無しさん2006/10/27(金) 13:14:20
計算結果(誤り表示)部分をクリックするとすべてがクリアされるようにせよ

クリアするメソッド?クラス?はなんですか?
0118デフォルトの名無しさん2006/10/27(金) 14:08:39
"計算結果(誤り表示)部分をクリックするとすべてがクリアされるようにせよ

クリアするメソッド?クラス?はなんですか?"とかでもググッてみるとか

色々組み合わせて探してみると
何か出てくるかも?というところですけど
0119デフォルトの名無しさん2006/10/27(金) 14:45:58
>>118
ぴゅあさん。ありがとうございます。
自己解決しました!
0120デフォルトの名無しさん2006/10/27(金) 17:21:51
現在アプリケーションを自作しているのですが、
CardLayoutでだいたいJPanel(正確にはJPanelを継承したクラス)70から80枚。
そして各1枚に平均4枚ほどのJPanelそしてその上にJLabelやJButtonや他の
コンポーネントも多数張り付けています。(JButtonはだいたい4つぐらいが平均かと思います。
JLabelは多いもので40ぐらいそのほかJListやJTextFiedも多用)です。
レンダリングが旨くいっていないということではなくFrameががくがく震えます。

Jarファイルのサイズとしては6mbから7mbぐらいでそれほど大きくはないのですが、
フルスクリーン表示で画面がときどき小刻みに揺れます。
他のマシーンでも動かしてみたのですが、やはり時々ゆれてしまいます。
2台ともかなりHigh specなマシーンです(1台目は4の3.8にメモリ2GB・2台目は3.0のメモリ1GB)。
ただ2つともノートン2006がインスコされてあり原因がどちらだかわかりません。
これからアンインストールして試して見ますが、
このぐらいコンポーネント数でやはりリソース不足か何かでこういう現象が起きてしまうのでしょうか?
できるだけリソースを開放するように作ってありますが、CardLayout上に張ってあるコンポー
ネント群はnewすると切り替えにかなりの時間がかかってしまい出来れば避けたいのでいい
方法はないでしょうか?宜しくお願いします。



0121デフォルトの名無しさん2006/10/27(金) 17:35:08
何のソフトを入れているとWindowsが重くなるのかリスト
ttp://gigazine.net/index.php?/news/comments/20060911_system_delay/
0122デフォルトの名無しさん2006/10/27(金) 17:40:11
120へ。
そんなにゆれる?
ソースは?
0123デフォルトの名無しさん2006/10/27(金) 18:32:26
>>119
なんで「デフォルトの名無しさん」が、ぴゅあ様だってわかったんだろ?
0124デフォルトの名無しさん2006/10/27(金) 18:40:31
>>120
CardLayout直下のJPanel 半分ぐらい削って、がくがく震えるかってのを
JPanel の数が無くなるまで繰り返してみる、とかして原因特定できないか?
0125デフォルトの名無しさん2006/10/27(金) 18:54:01
>>123
あれだけAA荒らしで荒れてたスレがぴゅあが来てから不自然に静かになったことから察しろ
0126デフォルトの名無しさん2006/10/27(金) 19:03:16
普通にとんでもない量のリソースを食うんじゃなかろうか。
0127デフォルトの名無しさん2006/10/27(金) 19:08:09
>121
�dクスです。Norton先生がトップを走っているので怪しいと思うのですが、マシンがかなり
早いので大丈夫かと思っていたのですが・・・ノートン板で前にその記事をみたのでそうかと思った
のですが、プロセスをみているとそれほどメモリ食っていないんですよね・・・でも最終的には
ノートン外してみます。他のマシンでも試したいのですが、自分の使えるのがこの2台と
ロースペックのノート1台なので・・・

>122
はい、かくかくと揺れます。丁度、PowerPointやJavaScriptのホームページ
でブルブル震えるようなエフェクト。あれを小さくした感じです。頼まれた人に見せたのですが、別に
気にならないだけどと言ってくれますが、リソース不足でプログラムが落ちる可能性もなくはないので
ことが心配なので放っても置けません。javaのオプションでヒープ領域は大目にとってありますが、
他のoptionは入れていません。

後ソースは本当に長すぎて出せないです・・・大体170クラスあって平均しても一クラス800から
1000行程度はあるのでとてもだせないです。全部一人で書いているので許可がいるとかそういうこと
はないんですが・・・

原因の箇所がわかっているかもしくはこの部分を見れば分かるというのであればだせますが・・・

自分はコンパイラ(コード生成部)とかレンダリングエンジンを書いたことはあるのですが、
Javaを使ってGUIのシステムを作ってくれと頼まれたので本やインターネット上で探しつつ
3ヶ月ほど前から気合を入れて作ってようやく完成にちかづいたのですが、GUIを使っての製作
は今回が初めてなものでコレぐらいのコンポーネントでゆれてしまうのかなぁ・・・と思い投稿させ
ていただきました。

あまりGUIを使ったプログラムを書いた経験がないのでもしそういう現象があればお聞きできれば
と投稿させていただきました。宜しくお願いします。
0128デフォルトの名無しさん2006/10/27(金) 19:16:20
>124
そうですね。最終的にそれ以外のリソースを削りまくってだめならプログラムを
分割する予定ではいます。あとNortonを外して・・・ でもあとできることといったら
Objectをプールして使いまわすぐらいなんですよね。

最終的にはプログラムのチューニングは徹底的にやろうとは思うのですが、やはりCardLayoutに
はってあるコンポーネントを外すしかないんですかね・・・できれば避けたかったのですかね・・・

>126
そうですよね・・・
0129デフォルトの名無しさん2006/10/27(金) 19:55:28
ところで震えるのは、フレーム(アプリの一番外側)なんでしょうか?
0130デフォルトの名無しさん2006/10/27(金) 20:10:01
>129
そうですね。フルスクリーンでやっているので中がゆれるというよりも
フレーム(JFrame継承したフレーム)ごと揺れるといった現象です。
当たり前ですが、フルスクリーンといってもゲームやスライドショー等
で使われるレンダリング手法は取っていません。

リサイズも出来なければ右上のcloseボタンで閉じることも禁止しています。
0131ぴゅあ2006/10/27(金) 21:31:37
>>130
結構乗せているものは多そうと受け取りましたけど
レイアウトってそのサイズや配置を自動的に算出してくれますよね
実際に試してみなきゃ判らないとは思っているけど
・なんか計算し直しばかりが繰り返されてしまっている
・各コンポーネントに対して計算するときに変な端数が?
とかあったりするとかあるのかなぁ?とか思ったりしてみますけど・・・

最近あまり触ってる時間とか作れてないので
自分でもやってみようかな?というところまでは
行けなかったりするだろうなぁ
というところだったり。。。
0132デフォルトの名無しさん2006/10/27(金) 21:47:49
Apache(Tomcat) や Jakarta Commons の FileUpload にバグってありますか?
最近、趣味で Servlet と JSP を使ってアップローダを作成したのですが、
その中の部品として上記 Commons を利用しているので気になっています
また、Commons を利用して作ったアップローダを公開するのはライセンス
違反になってしまいますか?
この辺の事情に詳しい方、どうか教えてくださいm( _ _ )m
0133デフォルトの名無しさん2006/10/27(金) 22:16:28
何のライセンス違反?
0134デフォルトの名無しさん2006/10/27(金) 22:22:47
>>133
Commons のです
0135デフォルトの名無しさん2006/10/27(金) 22:23:51
まず、ライセンス読んでみた?
0136デフォルトの名無しさん2006/10/27(金) 22:26:58
英語なので挫折しました・・・orz
0137デフォルトの名無しさん2006/10/27(金) 22:29:58
>>130
ここで言うフルスクリーンと言うのは、
画面一杯に広がるような処理を書いてたりするんでしょうか。
(どちらかというと「最大化」に近いようなもの。)
その場合、画面サイズ取得・サイズ更新が
不必要に起きてないか確認すると
何かの手がかりが得られるかも知れません。
0138デフォルトの名無しさん2006/10/27(金) 22:49:41
A.javaとB.javaをパッケージに含んでいて、

A.javaで
public class A{
B[] b=new B[10];

public A(){
for(int i=0;i<10;i++)
b[i].member=i;

for(int i=0;i<10;i++)
System.out.println(b[i].member);
}

B.javaで
public class B{
public static int member;
}

自分としては出力結果が0,1,2,3,4,5,6,7,8,9となって欲しいんですけど、
9,9,9,9,9,9,9,9,9となってしまいます。
C言語のtypedef structの感じでclassを使ってるのが良くないのか、よく分かりません。
エスパーで指示して貰えませんか?
0139デフォルトの名無しさん2006/10/27(金) 22:57:59
staticやめればちゃんと表示される
0140ぴゅあ2006/10/27(金) 23:00:28
>>138
>エスパーで
というのがどんなものか教えて貰えませんか?

エスパーで指示とか解らんので、取り敢えず

>public static int member;
クラス変数(クラスフィールド)について理解してみるのがいいでしょう
01411322006/10/27(金) 23:02:31
ライセンスについてはもう一度調べてみることにします
ところで、バグの方はどうでしょうか?
01421382006/10/27(金) 23:03:29
>>139-140
thx

>>140
ごめんなさい。
【マジレス】超初心者の質問に答えるスレ17【エスパー】
http://pc8.2ch.net/test/read.cgi/win/1161170982/
こんなものです。
0143デフォルトの名無しさん2006/10/27(金) 23:19:34
>>138
public class A{
public static void main(String args[]){
new A();
}

public A(){
B[] b=new B[10];
for(int i=0;i<10;i++) {
b[i] = new B(i);
b[i].member=i;
}
for(int i=0;i<10;i++){
System.out.println(b[i].member);

}
}
}


class B{
public int member;
B(int a){
member = a;
}
}
0144ぴゅあ2006/10/27(金) 23:24:55
>>142
なるほど ありがとう

でも、エスパーでなくても答えを考えられるだけのものを
質問としてちゃんと揃えられていると思いますよ


>A.javaとB.javaをパッケージに含んでいて、
は、まぁこの場合余計なものだったりするだろうけど

・期待している結果
・期待通りではなかった実行結果
・それを分析できる材料(ソースコード…分析するに十分な)
01451382006/10/27(金) 23:25:40
>>143
ありがとう。
NullPointerExceptionで困ってました。
0146ぴゅあ2006/10/27(金) 23:26:37
あ・・・

>>142
で、「よく分かりません。」がなんとかなりそうだったか
というところが重要だろうけど・・・
0147ぴゅあ2006/10/27(金) 23:30:26
>>145
あぁ 確かに・・・

>B[] b=new B[10];
で入れ物は作ってるけど
クラスBをインスタンス化して入れてるところがなかったね
01481382006/10/27(金) 23:34:02
>>147
いろいろありがと。
時間とらせてスマンかった。
0149ぴゅあ2006/10/27(金) 23:55:12
ごめんなさい

>>147のは>>145,>>143と入れた方がよかったかな・・・と
書いたあとでちょっと気になりました。。。
0150デフォルトの名無しさん2006/10/28(土) 00:04:11
>>132
ライセンスは問題なし。ASLに従って
「このプロダクトにはApache Software Foundationの製品が含まれています」の
一文が製品情報に含まれていればOK。
バグはある。というか無いわけがない。
Apacheのjiraを見れ。
0151デフォルトの名無しさん2006/10/28(土) 08:42:39
import java.awt.*;

public class Awt01 {
Frame frame;

public Awt01() {
frame = new Frame( "フレーム" );
frame.setSize( 200, 100 );
frame.setVisible( true );
}

public static void main( String[] args ) {
Awt01 awt01 = new Awt01();
}
}
上のコードは入門のJAVAテキストに書いてあったものですが、
これをeclipseで実行しようとすると、エラーが出てしまいます。
public class Awt01  のpublicを消すとなぜか普通に動きます。

eclipseには”public 型 Awt01 はそれ独自のファイル内に定義されなければなりません。”とでてました。
どういう意味なのかさえ検討つかないのです。教えてください。
■ このスレッドは過去ログ倉庫に格納されています