2012-01-01から1年間の記事一覧

Propertiesクラスが散らかってるのが気に入らない人のためのクラス

設定ファイル要るな→Propertiesクラス便利→うわ順番めちゃくちゃやん →作ろう import java.io.*; import java.util.ArrayList; /** * * @author standstonecraft */ public class MyProperties { private ArrayList<String> keyList; private ArrayList<String> valList; pub</string></string>…

設定ファイルを使う

コンフィグファイルが必要になる機会は結構多いですよね 特に記憶する内容がなくても、ウィンドウの位置や大きさは保持したいものです テキストを入出力するクラスはあるし行単位で読みこめばそう難しいことでもないのですが、 設定ファイルを操作するProper…

文字列を置換したい、でも制御文字だからできないそんなとき

Windowsでは、ファイルのパスを「C:\hoge\bar」などのように表します しかし他のOSでは「/hoge/bar」などのように表します JavaのいいところはどんなOSでも動くところ、でも気をつけないとこの記号の違いでファイル操作がうまくいきません Windows限定のソフ…

7セグメントディスプレイにアルファベットを表示してみる

前回公開したクラスは何もいじらない状態では数字+記号2つしか表現できません しかしラジカセ(化石)などでは"no disc"のようなメッセージが表示されます 7セグメントには一応アルファベットの対応が決められているんですが、相当読みづらいです とりあえず自…

7セグメントディスプレイ公開

前回画像で紹介した、数字をデジタルに表示するためのライブラリを作りました デジタル時計とかストップウォッチなんかを作るときに若干見栄えが良くなるので使って見て欲しいです(明らかな検索用) プログラム例兼、簡単なレイアウト見本としてサンプルプロ…

図形を描画する(画像処理)

GUIを作っている時、画像を生成したり表示したりしたいときがあります ペイントソフトが代表例として挙げられますが、画像を描くのが主目的でなくてもあると便利な場合はあります 今「あります」とタイプしながら何も思い浮かばなかったので自分の使用例をあ…

入力していくだけで自動で次のフィールドに移動

ネットの各種サービスのアカウント登録で、郵便番号を求められることがあります そのとき郵便番号の前半部と後半部でフィールドが分かれていることってありますよね 123-4567を入力する時、123、次のフィールドをクリック(またはtabキー)4567… 面倒です。ロ…

複数のボタンのイベントを1箇所で受け取って処理

javaでソフトキーボードを作る場合、JButtonが最低でも26個必要になります しかし僕のようなニワカプログラマがNetBeansでイベント処理しようとすると、〜〜actionPerformedを26個作りがちです ですがこれは完全に無駄な作業です実際にどうすればいいかとい…

エニグマ暗号機作ってみた

Javaでエニグマ暗号機作ってみました 参考にしたのはサイモン・シン著「暗号解読」です エニグマ暗号とはなにかというと、暗号の発祥から話さなければならないのですが、 文章力がないので流れを書くと アルファベットを数文字ずらすシーザー暗号(abc⇒BCD)や…

自作クラスは一つの道具箱へ

煩雑な処理とか流用を考えて作ったものを別クラスに書くのは普通のことなんですが、他のプロジェクトで使うときどうすればよいかわからずわざわざコピーしてました でもこれだと書き換えた時もう一方に反映されないじゃないですか これをどうにかできないか…

キーバインドを設定し直す

JTableにはもともとキーストロークによる動作が決まっています(Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle) ですがエンターを押した時表を更新したいとか、タブキーを押した時に右に行くのではなく下に行きたいと…

Javadocを書く

Javadocというのはプログラムの説明書みたいなものです 過去のプログラム例にも度々でてきてるんですが /** * 本のリストの特定の位置に本を追加します * @param index 位置 * @param name 書名 * @param volume 巻数 * @see #add(java.lang.String, int) */…

詰んだ

JTableで、2次元の表を数枚(つまり3次元)扱うソフトを作ってるんですが、数字しか入力させないので他の文字キーをいろんな機能のショートカットにしたいんですが表のセルにその文字が入ってしまってどうしようもありませんキーが押されたイベントが終わった…

ポップアップメニューを表示する キー入力のイベント

ポップアップメニューって右クリックだけじゃなくてキーボードからも開けますよね キーボード右下のそれっぽいキーです キーが押されたイベントを作ってそこで押されたキーがそのキーだったかを判別して実行します private void tableKeyPressed(java.awt.ev…

ポップアップメニューを表示する マウスクリックのイベント

普段使うソフトのほとんどにポップアップメニュー(右クリックメニュー)が実装されていますね これがあるだけで機能的なソフトに見えてきます netbeansのデザイン画面で、パレットにポップアップメニューがあるから簡単に追加できると思ってたのですがいまい…

表を描く その5 表の項目を移動する

表で情報を整理する場合ソートは重要な要素ですが、名前順では物足りないことがあります。もちろん項目にタグを付ける感覚で(一般コミック)[小梅けいと]*1狼と香辛料*2というふうにすれば名前ソートで整然と並ぶんでしょうが、ユーザーに熱心さやアングラ*3…

テキストフィールドを全選択する

すでに文字列が入っているJTextField(JTextAreaでもいいけど)を編集するとき、クリックした時全文が選択状態(青く反転表示)になってくれると、0から書き直すときバックスペース長押ししなくてすみます。バックスペースを1,2秒長押する手間を数分かけて取り除…

表を描く その4 列のタイトルをクリックするとソートする

パソコンのエクスプローラとかもろもろのソフトで表の列ヘッダ(タイトル部分)をクリックすると名前順とかで並べ替えてくれますよね この機能はJavaで表を設置しただけでは有効になってません この一文を追加する必要があります(追記:書かなくてもプロパティ…

表を描く その3 選択されたセルの値を他の場所に表示する

やっぱり表をいじるときは、セルまたは行を選択した時にどこかのテキストフィールドに表示して、それを書き換えて編集ボタンをクリックすると表の内容が変わるっていうのがかっこいいですよね そこで普通ならデザイン画面でおもむろに表を右クリックして「セ…

JTextFieldに数字が入っているか判定する 数字入れろっつってんだろボケ!

テキストフィールドに特定の文字の入力を禁止するのはググる限りイベントをどうのリスナーがどうのと面倒くさそうです しかし、文字を入力したからには決定ボタンを押すとか次にフォーカスを移すとかいう行動があるはずで、これらは僕でもイベントを拾えます…

ファイルを一気に出力 BufferedWriterを継承した何かを作る

では出力です ※こちらも書き換えました。エンコード方式を指定できるようになってます public class BufferedWriterPlus extends BufferedWriter { public static String ISO2022JP = "ISO2022JP"; public static String SJIS = "SJIS"; public static Strin…

ファイルを一気に入力 BufferedReaderを継承した何かを作る

ちょっと表から離れて大好物のファイル入出力を3行のコードで一括でできるように拡張しました 拡張というのは継承クラスでするわけなんですが今日勉強したので完全理解はしてません。動けばいいや(禁句) オブジェクト指向初めてすぐって別ファイルに物を書く…

表を描く その2 (わりとどうでもいい)

では次にこのリストをもとに表を書いていきます public bookList book = new bookList(); //入力したりファイルから読み込んだりして本のリストbookを作る まず表にしたいリストを作ったらこれを実行させます private void writeTable() { dtm = (DefaultTab…

表を作るための準備 その1 Cでいう構造体的なもの

表を楽に操作するために数回に渡り下準備の変数づくりから表を操作するメソッドまでを作ってみます というか細切れでかくのが面倒だしコピペしづらいので完成品を貼ろう ちなみに今回は昨日の「所有してる本の名前と巻数を管理する」というのを例にやってい…

表を描く その1

俺得。なにか実用的なソフトを作ろうと思うと表が絶対出てくるんですよね 表というのはjTable。表にキーボードから打ち込んだセルの値を取ってくるまではググらなくても誰でもできるのだけどそれ以外が詰みやすい気がします というのもテーブルモデルとjTabl…

行単位でのファイル入出力

手始めに、ググれば一瞬なんだけど手始めに コピペで動くはずなので下の解説は読む価値はない まず入力※ファイルのエンコード方式を指定する方法はファイルを一気に入力で書いてますのでそちらへ private void readFile(File file) throws FileNotFoundExcep…

忘備録始めました

どのブログにしようか迷ったけど、はてなにしましたなぜなら、はてなでプログラム関連のこと書いてあるのを見ると「こいつ…知識人!」という錯覚を起こせるような気がしたからですでも出来るひとではありません、雑魚グラマですですから、ここが参考になるひ…