タグ

javaに関するvoidy21のブックマーク (274)

  • 内部クラスの使いどころ

    話のネタを仕入れたはいいものの、使いどころに困ってはいませんか? バーでの会話で話題に絡めた小洒落た話を咄嗟にひろげられると粋ですよね。 内部クラスの階層の話ではクラスにも階層があるね、というお話でした。 今回はそのエンクロージング内部クラスの使いどころのお話です。 プログラミングというのは美術などと同じく、画材を知ったからと言って即、作品になるわけではありません。 新しい道具を得たからと言って、それを使ってどう新しい創作をするかというのは難しい問題です。 エンクロージング内部クラスは親のインスタンスへアクセスを許可された特別なクラスですが、 では、どういったときにこの特権を使えばいいのでしょうか? 今回はそのサンプルを挙げてみようと思います。 内部クラスのメリットは、外部クラスと秘密のやり取りができるというところです。 外部クラスはそのさらに外に情報を公開することなく、しかし、内部クラス

    voidy21
    voidy21 2009/12/30
  • 今更だけどJavaFXを触ってみる - voidy21の日記

    JavaFXって何? JavaVM上で動くRIAプラットフォーム コンパイルできるスクリプト言語 インタプリタ版もある XMLみたいな記法でGUIを作っていけるので従来のSwingよりも書きやすい(はず) もちろん今まで作ったJava生成物を利用することも可能 Java生成物 => JVM上で動くならJavaでもJythonでもJRubyでもおk! GUIJavaFXで、内部ロジックは好きな言語で書ける すなわちJavaFXは「Java + α」 Javaを超越した存在 でもあまり盛り上がってないのよね AdobeAIRとSilverlightに負けてる感はある 日語で解説してるページはまだ少ない 解説もちょっと少ない(というかJavaFX1.2に対応したってあるのか?) 細けぇことはいいん(ry 今更触ってみる理由 JavaFX1.0の時点ではLinux用のSDKが用意されて無か

    今更だけどJavaFXを触ってみる - voidy21の日記
  • アプレットを開いたユーザに拒絶感を与えない方法 - kaisehのブログ

    Javaアプレットが載ったHTMLページを開くと、こういうスプラッシュ画像が出てきます。 この画像が目に入った瞬間、反射的にページを閉じる習慣が身に付いてしまっているユーザは、僕を含めて多いと思います。 Java SE 6 Update 10でサポートされたimageパラメータを使うと、この画像を任意に置き換え可能なようです。 追記: imageパラメータ自体は、もっと前からあったようです。Java SE 6 Update 10以降は、画像をセンタリングするcenterimageパラメータやアニメーションGIFが追加サポートされたようです。 <applet ...> <param name="image" value="another_image.gif" /> </applet> 例えば以下のFlex風画像で代替すると、ユーザにかなり安心感を持ってもらえるんじゃないでしょうか。

    アプレットを開いたユーザに拒絶感を与えない方法 - kaisehのブログ
  • 高木浩光@自宅の日記 - 久しぶりのSwing開発で躓いたところ

    ■ 久しぶりのSwing開発で躓いたところ 10年ぶりにSwingでデスクトップアプリを開発し、いつのまにか格的に実用に耐えるフレームワークに仕上がっていたのを知った。NetBeans IDEはとても快適で、API仕様の確認やAPIライブラリのソースコードの確認も簡単にできる。わからない部分があっても、Web検索をすればたいていのことが解説されているのを発見できた。しかし、それでもいくつか、解決策がすぐには見つからない点があった。せっかくなのでここに書き残しておく。 1. テキストコンポーネントのHTML機能を殺す Swingでは、登場した当初からテキストコンポーネントでHTMLが使えるようになっていた。つまり、テキストの冒頭が「<html>」で始まっていると、それ以降のテキストがHTMLとして解釈される。IEでセキュリティ問題を引き起こしたのと同根のうざい仕様だ。JavaScript

    voidy21
    voidy21 2009/12/29
  • Java、Swing、Twitter4jを使ってあなただけのTwitterアプリを作成しよう

    import javax.swing.*; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.*; class LoginDialog extends JDialog implements ActionListener { JLabel labelName; JLabel labelPass; JTextField textName; JPasswordField passField; JButton okButton; JButton cancelButton; JDialog dialog; public LoginDialog() { JPanel panelOne = new JPanel(); labelName = new JLabel("Name")

    Java、Swing、Twitter4jを使ってあなただけのTwitterアプリを作成しよう
    voidy21
    voidy21 2009/12/29
  • キーボードショートカットを作る(Java) - voidy21の日記

    こんな感じのやつ キーボードのjかkで上下に移動させるやつを実装する 何も考えずにKeyListenerを使ってやってみる import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.MutableTreeNode; @SuppressWarnings( "serial" ) public class TreeSample extends JFrame implements KeyListener { public TreeSample(MutableTreeNode t

    キーボードショートカットを作る(Java) - voidy21の日記
    voidy21
    voidy21 2009/12/29
    blog書いた : "キーボードショートカットを作る(Java)"
  • Javaが不憫すぎる - 矢野勉のはてな日記

    JavaJavaの匿名クラスを使ってかっこよくオブジェクトを初期化するテクニック - 矢野勉のはてな日記を書いて反応などをみて... Java...かわいそうに...小公女のようだ... StrutsみたいなJavaでなくてもいいような、オブジェクト指向ですらないような存在にイメージを固定化されて、フルスペックを知られることもないのか... 初期化ブロックというものがあまり知られていないということにちょっと驚きつつ、昨今の匿名クラスとかを使うのも気持ち悪いという風潮とか、初期化ブロックも知らないで「Javaは退屈」みたいなことを言われてもいい迷惑だと思ったりしました。すみませんJava厨なもので。だって、Java 1.1のころからあるのに... だってJavaの原典とも言えるプログラミング言語Java 第4版 (The Java Series)にはもちろん載っているし、Javaの認定試験S

    voidy21
    voidy21 2009/12/29
  • Javaの匿名クラスを使ってかっこよくオブジェクトを初期化するテクニック - 矢野勉のはてな日記

    JavaJavaの匿名クラスはすごくかわしいかわいい技術でいろいろキモイことができます。匿名クラスは基的に「サブクラス生成のための特殊記法」であって、クロージャではありません。匿名クラスとクロージャを対比して云々するのはそもそも誤りです。なんならクロージャでサブクラス作ってみなよってことです。匿名クラスによって、Javaではなにかのサブクラスを任意の場所で即座に作り出すことが出来るんです。なにかのクラスのメソッドを三つほど書き換えた新しいクラスをさっと作れるのは、なかなか面白い機能ですよ。 その匿名クラスを利用したカッコイイ(でも使うのは躊躇されている)記法として、次のようなのがあります。(追記:この用法はヨシオリさんところで見たのが最初です) List list = new ArrayList() {{add("a"); add("b"); add("c");}}; Javaには「初期

    voidy21
    voidy21 2009/12/29
  • Iteratorより基本forループでArrayListのget()を使ったほうがいいなんて話はもはや百害あって一利なしです。 - 矢野勉のはてな日記

    Java yoshioriさんがいいこと書いてるのを発見しました。私も大賛成。今までArrayListが返ってきていたから getでfor文を書いていたとき。 フレームワークをバージョンアップして もしもそこがLinkedListになっていたら それだけでかなりのパフォーマンスの低下になる。 (Iteratorの誤差など遙か彼方へ吹き飛ぶほどに) そのリストを使っているfor文を全部調べ上げて すべて書式を変更するのはかなりの作業になるだろう。 だから、JavaではIteratorを使うべきだ。 関連記事はこのあたりかな。 http://d.hatena.ne.jp/BlacksmithMirai/20061017/1161081012LinkedListに関する不適切な説明J2SE 5.0虎の穴 拡張 for 文 Iteratorと基forループとの話は、櫻庭さんまで上記虎の穴のリンク

    voidy21
    voidy21 2009/12/29
  • http://homepage1.nifty.com/algafield/javanotes-gui.html

    Javaの手帖 − GUI分冊 先日、Javaプログラミングの豆記事を載せる/見る場所を一化するた めに、[Javaの手帖]と題するページを新設しました。しかしGUI関連の記 事をそのページに載せていくのは、ためらいがありました。JavaGUIプ ログラミングは、そのたった一つの分野だけで、細かい話題が無限に(?!) 豊富にあるからです。 そこで、GUIに関しては、このような別ページを作りました。 この分野の、情報量の圧倒的な豊富さに対して、個人の細腕はまるでウ サギに対するカメですが、重要と思われる事例をわかりやすく紹介してい きたいと思います。 なお、JavaGUIプログラムを書くための必読の文献の一つといえる [Painting in AWT and Swing]の日語訳、[AWTとSwingのペイントの仕組み]を、 2008年6月に作成しました。 0005(061125)

  • 403 Forbidden

    voidy21
    voidy21 2009/12/29
    InputMap & ActionMap
  • JUnit4をやってみよう

    最終更新日 : $Date: 2013-11-09 01:12:39 +0900 (Sat, 09 Nov 2013) $ 引っ越しました 引っ越しました。自動的に引越し先に遷移しない場合はこちらをクリックしてください。 https://kazurof.github.io/work/tryjunit4/tryjunit4.html

    JUnit4をやってみよう
    voidy21
    voidy21 2009/12/27
  • Ubuntu 8.04でOpenJDKの日本語フォントを変更する - Sickly Life はてな版

    Ubuntu, Java | 20:44 | デフォルトだとKochi Gothicやさざなみゴシックを使用するようになっているが、一部のメニューなどにアンチエイリアスがかからなかったりして見苦しいので、設定を変更する。 アプリケーション > アクセサリ > 端末 でGNOMEターミナルを起動し、 sudo leafpad /etc/java-6-openjdk/fontconfig.properties と実行して管理者権限で設定ファイルを開き、Font File Namesの設定を以下のように変更する。変更前 省略 filename.-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0=/usr/share/fonts/truetype/kochi/kochi-gothic.ttf filename.-sazanami-

  • レビューで鍛えるJavaコーディング力 その1(日付バリデーション) - 谷本 心 in せろ部屋

    現場でJavaのソースをレビューしていると、一目で「問題だ」と気づくコードによく出会います。 しかも、同じような問題をアチコチで見かけることも、少なくありません。 FindBugsを導入したおかげで、そういう問題が多少減ったものの、 やはりゼロになるわけではありません。 、、、ということで、 そんな問題コードに即座に反応できるようになるために、 私が見てきた問題コードをクイズ形式で紹介していきます。 ぜひ皆さんも、脊髄反射でNG部分を見つけてください。 見つけられなければ、適当にブクマでもしてください(笑 では今回は、日付チェックに関する問題です。 問題 以下のコードの問題を指摘し、修正してください。 ただし、問題は複数あることもあれば、全くないこともあります。 /** * 日付が正しい形式であり、存在する日付であることを検証します。 * * @param date 日付を示す文字列 *

    レビューで鍛えるJavaコーディング力 その1(日付バリデーション) - 谷本 心 in せろ部屋
    voidy21
    voidy21 2009/12/25
  • Java Work Studio

    Java Work Studio 学生時代から JDK1.0.2 や JDK1.1.7 を使い、現在では業務で Java2SDK1.3.1 を使ってます。 ので、今や Java 言語は自分の得意なプログラミング言語であり、セールス・ポイントでもあります。 「趣味プログラミングをしている時間がない」という理由から長い間<準備中>でしたが、 それなら業務中に培った技術を小技集として紹介しようと最近ふと思いつきました。 今まで頭の中にあった「 Web サイトで JavaApplet 」というイメージを脱却して、小技集サイトとして新装開店です。 と、ツラツラと偉そうなことを書いていますが、それほど小技を持っている訳でもなく、やっぱり仕事のほうが忙しいので、小技は不定期追加です。 なお、小技は全てバージョン 1.3.x の Java2 環境を対象にしていますが、上位バージョンでも通用するテクニ

    voidy21
    voidy21 2009/12/24
  • Value Objects と Immutable - かとじゅんの技術日誌

    おつかれさまです。そろそろ、プログラミングに関するエントリも書かなければw DDDの勉強を開始するにあたって、一番最初にEntitiesとValue Objectsに出会う。 今回は、まず先にValue Objectsと関連が深いImmutableについて、考えてみよう。なぜ、Value ObjectsかというとOODの基礎をなすからだ。基礎が弱いとその上の建造物ももろいものとなってしまう。だからValue Objectsがまず先。なーんだ、ただのJavaBeansなんでしょ、と思うと痛い目にあうよw 値を表すのがValue Objects。説明することが目的のオブジェクトである。ここに説明されているとおり。 ● Value Objects(値オブジェクト)パターン エンティティとは逆に、たとえば「色」や「量」のように、その属性だけが重要で、アイデンティティを考えることに意味のないオブジェ

    Value Objects と Immutable - かとじゅんの技術日誌
    voidy21
    voidy21 2009/12/23
  • http://homepage1.nifty.com/algafield/jjd.html

    voidy21
    voidy21 2009/12/23
  • Java GUIプログラミングの、とてもBasicなFAQ

    原著者の快諾を得て、comp.lang.java.guiのFAQの日語訳をここに掲出します。 080609: JavaGUIとそのためのプログラミング技術を正しく理解するために欠かせない、最重要資料の一つであるPainting in AWT and Swing(by Amy Fowler)の日語訳を作成しました。 2006年6月14日に発表されたRevision 1.20を6月14日に訳出しました(Q5.9ウィンドウの最大サイズや最小サイズを、どうやって指定しますか? の記述がJDK 1.5に合わせて詳しくなりました)。 2006年2月12日に発表されたRevision 1.19を2月13日に訳出しました(「Q6.2.2 JTreeのノードのアイコンをカスタマイズしたいのですが?」のコードサンプルが、より分かりやすい形に改訂増補されました)。 2005年11月11日に発表されたRev

  • 2009-12-21 - Secret Sword!!!

    なぜか? おまじないの量が多くなってしまうから 一般的なHelloWorld public class HelloWorld { public static void main(String[] args) { System.out.println("Hello,World!"); } } staticとかStringとかSystemとかmainとか色々難しそう あと、このHelloWorldだと色々省略した結果このコードになっていることに気づけないんじゃないだろうか どうやったら初心者にやさしいJavaになるんだろうか 色々と省略しないで書いてみる public class HelloWorld { public static void main(java.lang.String[] args) { java.lang.System.out.println("Hello,World!")

    2009-12-21 - Secret Sword!!!
  • Java Swing「JTree」メモ(Hishidama's Swing-JTree Memo)

    モデル JTree内で実際にデータを管理するのがTreeModel(インターフェース)。 基的にはそれを実装しているDefaultTreeModelクラスが使われる。 TreeModelにはデータを取得する系統のメソッドしか宣言されていない。 データを操作(追加・削除)するメソッドはDefaultTreeModelの方にある。 個々のデータ(要素)はTreeNodeインターフェース(後から子ノードを増減する場合はMutableTreeNodeインターフェース)の実装クラス(デフォルトではDefaultMutableTreeNodeクラス)で保持する。 DefaultTreeModelはルートノード(一番上の要素)だけを保持し、子ノードの一覧(リスト)は各ノードがそれぞれ保持する。 メソッド 概要 更新日

    voidy21
    voidy21 2009/12/20