読者です 読者をやめる 読者になる 読者になる

読める!クラスファイル

この記事は変態アドベントカレンダーの24日目です。 23日目はkshojiさんの実機TAS-codingコントローラを作るでした。 さて、周りの変態たちを見ていると、事あるごとにクラスファイルを逆アセンブルするのが嗜みのようなのでこのエントリではクラスファイル…

SwingでUIアーキテクチャパターン Supervising Controller編

今回はMVPパターンのうちSupervising Controllerと言われるパターンで「BMIによる肥満度判断」のサンプルを実装してみます。 前回のMVCパターンで問題となったプレゼンテーションの状態・ロジックを持つのがプレゼンターになります。また、MVCのビューはモデ…

SwingでUIアーキテクチャパターン MVC編

前回に引き続き、今回はMVCパターンです。 まずはモデルですが、BMIの計算に関するドメインオブジェクトとして実装します。 また、MVCにおけるモデルは、ビューとオブザーバパターンの関係を作る必要があるため、オブザーバを保持するためのEventListenerLis…

SwingでUIアーキテクチャパターン

@ITさんのこちらの記事「開発者が知っておくべき、6つのUIアーキテクチャ・パターン」に触発されて、あとは自分の考えを纏めるために、以上の記事で紹介されているアーキテクチャパターンをSwingとJavaで実装して見ようかと思います。 サンプルは同じく「BMI…

XMLファイルからXPathで内容を取り出すワンライナー

JavaでXPathを簡単に使えないかと聞かれたので、試しにやってみたらこうなった。 NodeList nodes = (NodeList)XPathFactory.newInstance().newXPath().compile( "xpath" ).evaluate( DocumentBuilderFactory.newInstance().newDocumentBuilder().parse( "fil…

「お題:ある金額になるコインの組み合わせ」をJavaで挑戦してみた

お題:ある金額になるコインの組み合わせ - No Programming, No LifeTL眺めてたらまたお題が出てたので取り敢えず正攻法?でやってみた import java.util.ArrayList; import java.util.Collections; import java.util.Deque; import java.util.LinkedList; i…

「お題:文字列を先頭から見て同じところまで除去」をJavaで挑戦してみた

お題:文字列を先頭から見て同じところまで除去 - No Programming, No Life先にソートしたら楽じゃね?と思ったのでやってみた。 import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Odai{ public static List<String></string>…

Javaの文字列結合について

第3回Effective Java読書会で項目51「文字列結合のパフォーマンスに用心する」がテーマに上がったのでそのあたりのお話を少しまとめておこうかと思います。まず、Effective Javaの項目51には 文字列結合演算子は(+演算子)は便利だけど、使いどころを間違える…

大阪EffectiveJava読書会 第1回

本日、初めての読書会として大阪で行われたEffectiveJava読書会 第1回に行ってきました。 一言に読書会と言っても、一人ずつ音読したり、各々が黙々と読んで質問したりすると色々とスタイルがあるらしく、今回の私が参加したこの読書会は、3人のチーム*4組…

XMLContext.java改良版

コメントの着色に対応してみた。 せっかくなので公開しておいてみる。 XMLContext.java import java.awt.*; import javax.swing.text.*; public class XMLContext extends StyleContext implements ViewFactory { public View create(Element elem) { return…

テキストカラーリング用のEditorKitを自作する

自分でXMLをカラーリングしてくれるエディタを作ろうとしてとりあえず StyledDocumentからgetTextしたのを解析してタグ部分にsetCharacterAttributesしてみたもののオーバーヘッドがすごいことに。 (一文字入力するごとに全体を再構成しなおすという適当な実…