
表題について質問させて下さい。
通常重たい処理はスレッドで処理し、逐次プログラムを
進めていくのが定石!?なのでしょうが、今回はPNGファイルを
作成(重たい処理)して、そのファイルができるまで処理を
止めておきたいのですが可能でしょうか??
//JFreeChartでPNGデータを作成
ChartUtilities.saveChartAsPNG(file, chart, 540, 240);
//PNGデータが作成されるまで待機
//file(PNGデータ)が存在するまでループ
while(file.exists()){
sleep(1000); //sleep関数はwait(Object型)で自作実装
}
(ChartUtilities.saveChartAsPNGはファイル生成してから次に
進むのではなく、生成前でも次に進みます。スレッドで実装
している??)
このソースだと、システムの状態!?を確認・更新していないので
「ファイルが無い」と無限ループします。(もちろんですが...)
DelphiですとApplication.ProcessMessagesで状態を更新させれる
(ファイルが存在するか確かめれる)のですが、Javaでこれに変わる
命令文などありますでしょうか??
(↑の文章を ネットで調べるためのキーワードが重い浮かびません
でした。無知ですみません。)
そもそも、もっと違った方法で実現するのでしょうか??
皆様ご教授願います。
OS : WinXP SP3
JVM: 1.6.0_10-b33
No.1ベストアンサー
- 回答日時:
jfreechart-1.0.12で確認したけど
スレッドなんか使ってなかったわ。
普通に処理が終了するようよ。
生成される前に先に進んでしまうはずないんだけど。
状態の更新が何を言っているのかわからないけど
file.exists()
は現在の状態を確認しているわ。
仮に、ChartUtilities.saveChartAsPNGの変わりに
file.createNewFile()
してあげればfile.exists()==trueを得られるのが確認できるはず。
そんなわけで、何かもっと別の要因があるんじゃないかと
思うんだけど。
askaaskaさん回答ありがとうございます!!
askaaskaさんの指摘通り別の要因でした。
//JFreeChartでPNGデータを作成
ChartUtilities.saveChartAsPNG(file, chart, 540, 240);
//PNGデータが作成されるまで待機
while(file.exists()){
sleep(1000);
}
↑の【file】はChartUtilities.saveChartAsPNGを実行する前に
定義したものですので、実行前の【file】をループで調べても
出てくるはずがございませんでした。ファイルが作成されると
【file】内のデータも勝手に更新されると勘違いしておりました。
ChartUtilities.saveChartAsPNGを実行後に保存先のフォルダを
File型で参照すると無事検知できました。こんな初歩的なことで
ミスを発見できなくて恥ずかしい限りです。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- その他(プログラミング・Web制作) uwscとWinShotを使いスクリーンショットを撮る 1 2022/06/30 21:15
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- iPhone(アイフォーン) iphoneで撮影した写真、動画を連番のファイル名で保存したい。 1 2022/04/28 02:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アコーディオンメニューをアン...
-
Javaプログラムからポップアッ...
-
Javaでのデバッグコード削除
-
jQueryでdiv作成後まで待ってか...
-
ExcelVBA で文字列の特定の文字...
-
重い処理中のアニメーションgif...
-
onBlurとonFocusの処理順序につ...
-
tryの終了
-
Tomcat高負荷時の設定について
-
do - while文
-
処理時間測定について質問があ...
-
「スレッド」の概念について質問
-
JSP、サーブレットの初期処理
-
JAVA ID重複処理
-
Tomcatのスレッドを破棄する方法
-
ftp 同時複数接続の負荷テスト...
-
数値の定数を付ける時
-
JavaScriptからJAVAクラスを呼...
-
JAVAにおける画像のJPEG保存の...
-
ラジオボタンの選択判定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
tryの終了
-
Tomcat高負荷時の設定について
-
Javaプログラムからポップアッ...
-
Javaでのデバッグコード削除
-
アコーディオンメニューをアン...
-
C#で別スレッドの終了を知りたい
-
onBlurとonFocusの処理順序につ...
-
Javaアプリケーション実行の返...
-
JavaScriptからJAVAクラスを呼...
-
表示待ち時間に「処理中...」の...
-
ExcelVBA で文字列の特定の文字...
-
C#の処理をリアルタイムに表示...
-
ラジオボタンの選択判定
-
Javaの再帰でメソッド呼び出す...
-
数値の定数を付ける時
-
[Java] while(true)の意味
-
Javaプログラムから外部コマン...
-
WaitForSingleObjectの復帰時間
-
Tomcatのスレッドを破棄する方法
-
重い処理中のアニメーションgif...
おすすめ情報