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

勉強がてら電卓を作ってみました。
計算機能はevalに任せてしまった安易なものです。

いまさら電卓のサンプルなんて作ってもあまり新鮮味はないですが。。。
それでもやっぱり一度は作っておかないとネ。


require 'rubeus'
Rubeus::Swing.irb

JFrame.new "dentaku" do |f|
  f.layout = BoxLayout.new :Y_AXIS

  @field = JTextField.new 
  @field.editable = false
  @field.preferred_size = "200x20"
  @field.background = Color::GREEN

  JPanel.new do |pn|
    pn.layout = GridLayout.new(4,5)
    ['7','8','9','/', 'C',
     '4','5','6','*', '(',
     '1','2','3','+', ')',
     '0','.','<','-', '='].each do |n|
      case n
      when 'C'
        JButton.new n do
          @field.text = ''
        end
      when '='
        JButton.new n do
          begin
            @field.text = eval(@field.text).to_s
          rescue SyntaxError
            puts "Error"
            @field.text = ''
          end
        end
      when '<'
        JButton.new n do
          @field.text = @field.text.chop
        end
      when /^.+$/
        JButton.new n do
          @field.text += n
        end
      else
        JLabel.new #dummy
      end
    end
  end
  f.location_relative_to = nil
  f.pack
  f.visible = true
end

なんとか50行ぐらいに収まりました。
使い道はあんまりないんで本当に勉強用って感じです。
でも、ものすごい桁数の多い計算できます。Rubyのよさですネ。

とりあえず、ここまで。