プログラムdeタマゴ

nodamushiの著作物は、文章、画像、プログラムにかかわらず全てUnlicenseです

JAVA

JUnit4でJMockitを使いつつ@Theoryを使う方法

Javaのテストをするときに、JMockitやMockitoなどのモックライブラリを使うことがあると思います。 Mockitoはちょっとしたことをしたいときに便利なのですが、実デバイスのシミュレータなど、モックにかなり複雑な処理をさせたい場合は、JMockitの方が便利と…

Javaにlambda修飾子が欲しい

機能(関数)をクラス内に実装せずに、外部に委譲することがある。単純な例ではこんな感じ。 public class Action{ private Runnable action; public void setAction(Runnable action){this.action = action;} public void action(){ if(action != null) act…

jshellを自分のプログラムに組み込みたかった

はい。タイトルの通りです。しょーもないことしてました。 jshell JDK9から付属することになっているちまたで話題のJavaのREPL。 私は全く興味がなかったんですけど、ふと思ったんですよ。これ自分のプログラムに組み込めないかな? GUI系のプログラムは毎回…

Java9のVarHandleを使ってみた

AtomicIntegerを使う必要が出てきた場面で、ふとVarHandleのことを思い出し、ちょっと試してみました。 試したコードは最後に載せておきますが、やってみたことはこんな感じ。 staticなint型変数のVarHandleの取得 setとsetVolatileの実行 int,volatile int,…

JavaFXでConsole作ってみた

JavaFXってConsole的な物なくね? ググっても出てこなくね? と、いうわけで、作ってみました、こんなもの。 System.outを今回作ったSimpleConsole.outに変更可能。 マルチスレッド対応(たぶん) 最低限の機能はあるんでない?誰かがしっかりした物を作って…

ファイル選択のControl作った

ウィーっす。 さて、昨日は入力候補が出るTextFieldを作ってみました。入力候補が出るTextField作ってみた - プログラムdeタマゴnodamushi.hatenablog.com で、これを利用してファイル選択用のConrolを作ってみました。 こんな感じに動作します。 うん、使い…

入力候補が出るTextField作ってみた

夏風邪ひいて熱が出たり咳が出たり鼻水出たりでしんどいですが、皆さん体調いかがでしょうか。 さて、風邪ひいていようと暇なものは暇なので、タイトル通りの物を作っていました。 イメージとしてはこんなのね。(Firefoxの検索窓) ソースコードはこちら。No…

JavaFXのTooltipの挙動を変えるTooltipBehavior作った話

JavaFXでTooltipを使ったことがあるだろうか? うん、みなまで言わなくてもいい。 使いにくいよね ざっと欠点を挙げるとするならば、 表示されるまでが遅い 表示されるまでの時間を変えられない 表示時間が短い 表示時間を変えられない フォーカス持っていな…

JavaFXのWebViewがマウスイベントでJVMごとクラッシュする

いろんな訳あってブレークポイントをつけれるエディタを内蔵したいのだ。でも、JavaFXには良いテキストエディタがない。(だいたい、いつになったら全角文字がなんか変な色がつくの直るんだ?) Threadをまたぐのは正直面倒くさいけど、背に腹は代えられない…

Graphicを設定したRadioButtonをSkinで使うと表示がおかしくなる

ControlのSkinにRadioButtonを使う。RadioButtonには画像も表示させたい………。そんなに特別な場面ではないだろう。ところが、おそらくJavaFX8のバグと思われる妙な挙動をしたので、ここで報告しておく。すでにバグとして登録されているかはよく知らない。 問…

ToggleButtonの集合を簡単に扱えるようにしてみた

はてなにお布施の時期が過ぎていたので、ついでにはてなブログに移行してみました。プロの値段…高いよ………。 さて、そんなこんなで、今日もJavaFXネタ。 RadioButtonって複数のRadioButtonを並べて表示するって使い方が普通の場面だと思う。でも、これをする…

cloneなどのメソッドのオーバーライドを強制させるAnnotation作った件について

cloneをサブクラスに実装を強制させたい。でも出来ない。 かといって、「必ず実装する。とらすとみー」なんて言えるほど賢くない。むしろ愚かであることを信用している。 「cloneを利用する実装がそもそも間違いで悪手。cloneを使うなとEffective Javaにもあ…

JOGL,JOCLのEclipse環境を整える

2年ぶりぐらいにJOCL書くかーって思って環境整えようとしたら結構手惑いました。私が利用していたのはJogAmpだったので、今回もJogAmpのJOCLを使おうと思ったんですが、なんか、JOGLが結構2年前と変わってますね。櫻庭さんのJOGLの記事とか、今とインターフ…

Javaでマルチスレッドするときの注意をまとめてみた

数年ぶりとかいうレベルでJavaのスレッドに触ったもんだから色々忘れてたので、忘れてたことまとめておく。 ダブルチェックロッキングパターンって何でダメなんだっけ? Javaではダブルチェックロッキングパターンって場合によってはクリティカルにヤヴァい…

シンタックスハイライトするプログラムをとりあえず公開してみた

Lamuriyan連携用に作っているシンタックスハイライトプログラムを公開してみました。 Ver0.1 今やSyntax HighlighterがあるのでLamuriyanで使う以外にあまり意味はないと思いますが、折角必死に整理したので公開させてください(-_-) 特徴としてはトークン単…

シンタックスハイライトする為のプログラム作ったった

いい加減、ntex改め、Lamuriyanなんとかしないとな〜と手を付けようと思ったのですが、その前に前々から何とかしたいと思っていたソースコードのシンタックスハイライトのプログラムの改善に手を付けることにしました。 まだ私以外の人が動かせるよう整備は…

Javaで始める画像処理ーフィルタをかける

もうすでに何度もこのブログでは当たり前の様にフィルタ処理〜とかたたみ込み〜とか言っていますが、今後の記事の内容のために、ささっとまとめておきます。 フィルタをかける フィルタをかける操作って言うのは、「フィルタの値×ピクセルの値」を各フィルタ…

Java画像処理をはじめよう。初めての縮小(・∀・)

今までこのブログでも何回か拡大縮小の話が出てきたことがありますが、もう一度やっておきましょう。 今回は縮小についてです。 最も簡単な縮小処理 間引き法(最近傍法) 画像を小さくするとピクセルも一緒に小さくなってくれたら嬉しいのですが、そんなわ…

Java画像処理をはじめよう。初めての画像処理(・∀・)

というわけで、なんでか知らんけどJavaで画像を弄らんといけなくなった。手っ取り早く画像処理をしてみたい。そんな人のために書くことにしたよ。 一応シリーズにするつもり。もちろん、気が向いたときにしか更新しないけど。最終的にどこまで踏み込んだ内容…

続・JPenをアプレットで使う際の注意点

ここまでJPenの記事を書いておいたので、もののついでです。Nicolas氏から「アプレットで使う際のセキュリティーホールの問題が見つかった」との報告がありましたので、報告しておきます。日本語の記事なんて探してもここしかないからね。 Java拡張機能とし…

JPen2をアプレットで利用する場合の注意

もうちょっとだけJPenの内容が続いたんじゃよ。 タイトル通りJPenをJava appletで使いたいな、とNicolas Carranza氏(開発者)に聞きに行ってきました。 今までは、セキュリティーマネージャーに引っかかりJPenをJava appletでは動かすことができませんでし…

Javaで筆圧を取得しよう3 〜JPen〜

疲れましたが、これで終わりです。いや、もうちょっとだけ続いたんじゃよ まぁ、実装の仕方に関してはこれで終わりです。 PKindEventを処理する PKindはPButtonEventの処理でちょろっとお話ししましたが、ポインターを操作するデバイスを表しています。 これ…

Javaで筆圧取得してみよう。集まれJPanJPenユーザー

Javaで筆圧取得といえばJTabletである。文句は受け付けない。 特に日本ではほぼJTabletが主流だ。日本製のJavaペイントソフトのしぃペインターやたかみんがJTabletに対応していることが大きな理由だろう。 もっとも、これらで用いられたのは、一般人が簡単に…

Javaで筆圧を取得しよう 2 〜JPen〜

前回から続けてJPen2やっていきますよ〜。今回はレベルイベントを処理していきます。 PLevelEventを処理する レベルイベントは値が変化したときに発生するイベントです。そのとき渡されるイベントはPLevelEventです。マウスイベントに変換する際はMOVEDとDRA…

Java7のswitch(String)構文のJavaコンパイラーとEclipseコンパイラーの違い

Eclipse3.7.1が今日正式にリリースされました。これでEclipse上でもJava7構文が大手を振って使えます。 さて、Java7で投入されたswitchにStringが使えるという構文。 switch(s){ case "abc": System.out.println("ok");break; case "bbb": System.out.printl…

int,byte配列からBufferedImageを作成する

画像のint,byte配列データを直接弄りたいときは、BufferedImageの持つWritableRasterからDataBufferを取り出して、クラスによってDataBufferByteかDataBufferIntに変換し、データを取り出す。何かクールじゃないよね。BufferedImageが用意してくれた配列を私…

パッケージ内のクラスを取得する

JavaCompilerからJavaFileManagerを取得するやり方が簡単だ。 JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); JavaFileManager fm = compiler.getStandardFileManager( new DiagnosticCollector<JavaFileObject>(), null, null); Set<JavaFileObject.Kind> kind = new HashSet<JavaFileObject.Kind>();</javafileobject.kind></javafileobject.kind></javafileobject>…

気をつけろ、javax.swing.TimerはEDTで動くぞ!

どーもアプリケーションの応答が思わぬところで悪くなる。原因を探っていたら、なんとjavax.swing.Timerが原因だった。 javax.swing.Timerはjava.lang.Timerに比べてシンプルで使いやすいので、よく使っていたのだが、なんと、javax.swing.TimerはEDT(Event …

Java7で透明ウィンドウ、非矩形ウィンドウの作り方が変わってた。

驚きですね。なんと、 window.setBackground(new Color(0,0,0,0)); で背景が透明なウィンドウが作れるようになってました。jre1.6ならcom.sun.awt.AWTUtilitiesのsetWindowOpaqueでなんかなぁ、的な感じで透過していたのに。そのほか、ウィンドウ全体の不透…

複合長方形を長方形で分割

どうも、一ヶ月ぶりです。月に一度の更新は目指していますが、書く内容がない(もしくは、書くのが面倒すぎる)という状況だったので放置してました。いや、JavaFX2.0(beta)でiTunesとかmacとかで画像を表示するときみたいな画像ビューアを作ったのをネタに…