車輪を発明なんていいますよね。でも自前で直せるっていうメリットはあります。
あれ?これなんでないんだろうって思ったらネットで探してなければ作る。この精神(勢い)が大事ですね。
よく考えてみると作れる!ってのは存外いけます。作ったら仕組みが理解できます。
Java アダプターの話です。アダプターってのは addActionListener() でリスナーをつけるとき、リスナーを実装したクラスを使うのでなくてその場で内部クラス(アダプター)をつくる方法です。
機能がまとまって書けるのでコードが読みやすくなります。
この便利なアダプターですが、なぜか ActionListener のがない。
で、作りました。アダプターってなんだろうって考えたわけですね。なんかのクラスでリスナーが実装されていればいい。
これで動きます。これだけなんですね。んー なんか探すより作ったほうが早い。
こんなケースもあるわけなんですね。
水曜日, 4月 26, 2017
土曜日, 4月 22, 2017
文字列変換:変換文字列をそれぞれ指定する
学校で習うような複雑なアルゴリズムを使う機会ってのは実際ほとんどないですね。
クイックソートを実装するなんてのはまずない。あれを一発で通せなんていう無茶な要求がありましたよね。ハノイの塔とか。
複雑であればライブラリを使う。
それでも多少は面倒なときもあります。
文字列を分割するとか。
これ、特定の文字列を変換するコードです。全ての文字列を単変換ならライブラリがありますが、各変換ごと数値を当てはめるとかカスタマイズするとなるとやっぱり書かざるを得ない。
クイックソートを実装するなんてのはまずない。あれを一発で通せなんていう無茶な要求がありましたよね。ハノイの塔とか。
複雑であればライブラリを使う。
それでも多少は面倒なときもあります。
文字列を分割するとか。
これ、特定の文字列を変換するコードです。全ての文字列を単変換ならライブラリがありますが、各変換ごと数値を当てはめるとかカスタマイズするとなるとやっぱり書かざるを得ない。
金曜日, 4月 21, 2017
Java: タイムアウト実践編
タイム・アウト実践編です。
終わらない(かもしれない)仕事を時間制限をつけて実行します。
ここはスレッドを用いたクラスを用います。
スレッドを synchronized された関数で呼び出します。
一定時間のち interrupt() を呼び出してスレッドを終了します。
FileTask の定義です。
時間がかかるファイルアクセスをスレッドで実行します。コマンドを走らせて終了時フラグをセットします。
これで終わらない仕事は強制終了です。
終わらない(かもしれない)仕事を時間制限をつけて実行します。
ここはスレッドを用いたクラスを用います。
スレッドを synchronized された関数で呼び出します。
一定時間のち interrupt() を呼び出してスレッドを終了します。
FileTask の定義です。
時間がかかるファイルアクセスをスレッドで実行します。コマンドを走らせて終了時フラグをセットします。
これで終わらない仕事は強制終了です。
木曜日, 4月 20, 2017
Java: タイム・アウト
この仕事が終わらない
なんて状態はよくあります。
終わらないなら強制終了させねばなりません。
指定時間内で終わらない仕事は強制終了する、そんな方法(コード)をお見せします。
Java で時間を指定するならスレッドを使うしかありません。
便利なクラスが提供されていますが基本はスレッドです。
行う動作を別スレッドで走らせて、指定時間が来たら interrupt() をかけます。
なんて状態はよくあります。
終わらないなら強制終了させねばなりません。
指定時間内で終わらない仕事は強制終了する、そんな方法(コード)をお見せします。
Java で時間を指定するならスレッドを使うしかありません。
便利なクラスが提供されていますが基本はスレッドです。
行う動作を別スレッドで走らせて、指定時間が来たら interrupt() をかけます。
登録:
投稿 (Atom)
Qt: 外部プログラムを起動する
Qt/C++ のアプリは、外部へ直接アクセスできます。これはネットアプリでは不可能な Qt のメリットです。 外部プログラムを起動することもできます。QProcess::startDetached() を使うと独立したプロセスを立ち上げることができます。 この QProces...
-
コンデンサマイク 極性があります コンデンサマイクがようやく届きました。モジュールではないのでそのままでは信号が弱いので使えません。信号を増幅する必要があります。 ちょっとした手間ですが、首尾よく動いてくれました。この回路の応用で、使えるマイクが出来ます。 ...
-
Flask/SQLAlchemy 使ってる方、jinja で困ってませんか? 本体で Python の関数を書いてもいいんですが、テンプレートでも関数が呼べます。 日付を出したい場合、フォーマットなら strftime() が使えます。 わざわざ文字列を作って渡す必...
-
PowerBuilder では Time, Date, DateTime などという型があります。 デフォルトの表示形式から変更する場合は String() 関数を使います。 String(Date('1/12/2016'),'yyyy-mm-dd...