swing

ちょー簡易な電卓を作ってみました

勉強がてら電卓を作ってみました。 計算機能はevalに任せてしまった安易なものです。いまさら電卓のサンプルなんて作ってもあまり新鮮味はないですが。。。 それでもやっぱり一度は作っておかないとネ。 require 'rubeus' Rubeus::Swing.irb JFrame.new "den…

JEditorPaneでswingブラウザを作ってみましたが。。。

JEditorPaneを覚えたので、ちょー簡易ブラウザを作ってみました。 require 'rubeus' Rubeus::Swing.irb JFrame.new "swing browser" do |f| f.layout = BoxLayout.new :Y_AXIS JPanel.new do |p| p.layout = BoxLayout.new :X_AXIS JLabel.new "Site: " @url…

JEditorPaneのハイパーリンクから外部ブラウザを起動する

JEditorPaneはHTML形式を表示させるのに便利です。 ここでは、ハイパーリンク表示とハイパーリンクをクリックした時にOS既存ブラウザを起動するコードをメモします。↑リンクをクリックするとブラウザが起動しリンクを表示します。ソースコードはこちら。 req…

JTextAreaとJTextFieldのサンプル(不具合対応あり)

Rubeus練習のため、テキストフィールドに文字列を打ち込んでEnterキーを押したらテキストエリアに貼り付ける、といった簡単なプログラムを作ってみました。ソースコードはこちら require 'rubeus' Rubeus::Swing.irb JFrame.new do |frame| frame.layout = B…

JEditorPaneでswingブラウザを作ってみましたが。。。

JEditorPaneを覚えたので、ちょー簡易ブラウザを作ってみました。 require 'rubeus' Rubeus::Swing.irb JFrame.new "swing browser" do |f| f.layout = BoxLayout.new :Y_AXIS JPanel.new do |p| p.layout = BoxLayout.new :X_AXIS JLabel.new "Site: " @url…

JEditorPaneのハイパーリンクからブラウザを起動する

JEditorPaneはHTML形式を表示させるのに便利です。 ここでは、ハイパーリンク表示とハイパーリンクをクリックした時にOS既存ブラウザを起動するコードをメモします。↑リンクをクリックするとブラウザが起動しリンクを表示します。ソースコードはこちら。 req…

JTextAreaとJTextFieldのサンプル(不具合対応あり)

Rubeus練習のため、テキストフィールドに文字列を打ち込んでEnterキーを押したらテキストエリアに貼り付ける、といった簡単なプログラムを作ってみました。ソースコードはこちら require 'rubeus' Rubeus::Swing.irb JFrame.new do |frame| frame.layout = B…

JTableにてExcel風の行ヘッダ付きテーブルを作ってみました

SwingのJTableは、デフォルトでは列ヘッダは付きますが行ヘッダが付きません。 Excelのように行ヘッダ(1,2,3,4...)を付けるサンプルを作成したのでメモします。意外と情報が無かったんですが、実際ソースにしてみると結構シンプルに書けました。 require 'ru…

JMenuを使う(ちょい古いようで)

最新のRubeusはJMenuBarを扱うことができるようです。 ただし、gemで取得できるのはエラーになるようで直接githubから取得しないとダメなようです。https://github.com/akm/rubeusJMenuBarのサンプルは、以下が参考になります。https://github.com/akm/rubeu…

Rubeusのシンプルさに感動!

JRubyでswingをやっていて思うことは、どうしても記述がJavaっぽさが抜けず、少なからずモチベーションが下がることです。 せっかくRubyを使ってるのになんだか活かしきれていない歯がゆさを感じます。で、調べてたらRubeusっていうライブラリがなんだかよさ…

JTreeで指定ディレクトリ階層下をツリー表示してみる

JTreeの勉強のため、指定ディレクトリ階層下をツリー表示させてみます。 require 'java' %w[JFrame JTree].each {|c| eval c+"=javax.swing."+c } TreeNode = javax.swing.tree.DefaultMutableTreeNode def tree_walk(path="./", node=nil) unless node node…

JRuby+swingでinvokeLaterを使ってみる

SwingUtilities.invokeLaterというものを自分なりに理解してみました。 swingのスレッドについて Swingのスレッドは、通常スレッドセーフではありません。また、Swingには次のようなスレッドポリシーがあります。従わないと最悪デッドロックが発生することも…

JRuby+swingでスレッドを実行

JRubyのThreadを使って並列実行させるプログラムを作ってみました。 正直正しく書けているか自信がありません。ボタンを押すと、そのボタンが10秒間だけ無効となり、カウントダウンが終わると再び有効となります。2つのボタンは非同期で動作します。サン…

JRuby+swingで画像をドラッグ&ドロップで表示する(JPanel)

前回、ファイルをドラッグ&ドロップしてファイル名をテキスト表示できたので、今度はドラッグ&ドロップで画像表示に挑戦してみました。 以下に、サンプルプログラムを記載します。 require 'java' DataFlavor = java.awt.datatransfer.DataFlavor %w[ JFra…

JRuby+swingでtextile風の表記法からレイアウトしてみる(実験)

swingのレイアウトをJRubyで書こうとすると結構手間です。 GUI設計を手書きで書くのは、Rubyのスクリプト記述の手軽さがあると言えども、ベタ書きだとどうしても地味で冗長なコーディングになってしまいます。 なんというか、美しくないです。もやもやします…

フリーのルック&フィールを試してみる(JTattoo)

swingにはじめからインストールされているルック&フィール以外を試してみます。 とりあえず目についたものを試します。 JTattoo http://www.jtattoo.net/ここからJTattoo.jarを落とします。 require './JTattoo.jar' import javax.swing.UIManager UIManage…

JRuby+swingでファイルのドラッグ・アンド・ドロップを試す

Windowsとかからファイルをドラッグ&ドロップできるようにします。 swingの"TransferHandler"を使うと簡単に実現できるようです。 メモします。 ↓ドラッグ&ドロップ 全ソースコード # coding: cp932 require 'java' JFrame = javax.swing.JFrame JLabel = …

JRuby+swingでJFileChooserを試す

swingで外部ファイルを選択して何か操作するとき、"JFileChooser"を使うと便利です。 JFileChooserはファイル選択のための専用ダイアログで、使用するのがとても簡単です。 何かしらアプリを作ろうと思った時使いそうなのでメモします。 以下に全ソースコー…

JRuby+swingでJFileChooserを試す

swingで外部ファイルを選択して何か操作するとき、"JFileChooser"を使うと便利です。 JFileChooserはファイル選択のための専用ダイアログで、使用するのがとても簡単です。 何かしらアプリを作ろうと思った時使いそうなのでメモします。 以下に全ソースコー…

JRuby+swingでJavaクラスの冗長な呼び出しをeach文で記述する方法

たとえば、JRubyにてswingのJFrame, JButton, JLabelを使うとき JFrame = javax.swing.JFrame JButton = javax.swing.JButton JLabel = javax.swing.JLabel と書くが、これは冗長な記述でもう少し工夫したいと思い、いろいろ調べた所eachでできることがわか…

JRuby+swingを使って]画像を表示する(ImageIcon)

JRubyとswingを使って簡単に画像表示ができます。 以下にサンプルを示します。 require 'java' frame = javax.swing.JFrame.new "sample window" icon = javax.swing.ImageIcon.new "./img/baboon.png" label = javax.swing.JLabel.new icon frame.content_p…

JRubyでSwingしてみる

最近JRubyをよく使っています。(仕事でも) 何かと複数ファイルの文字列操作とかデータ操作とかの単純作業でRubyを使うんですが、 JRubyってJavaで動くからWindowsでも使えるので気に入っています。 プラスしてJRubyはJavaのクラスが簡単に呼べるのでJavaをRu…

ルックアンドフィールを設定する

swingはルックアンドフィールを設定できます。 調べるのに意外と苦労したのでメモしておきます。 知っている人にとってはどおってことない話だと思いますが。。 ルックアンドフィール一覧表示 まずは設定できる種類を一覧表示してみます。 require 'java' im…