view src/luan/modules/swing/Frame.luan @ 1616:915cb538e2a3

start swing
author Franklin Schmidt <fschmidt@gmail.com>
date Sat, 05 Jun 2021 21:42:29 -0600
parents
children
line wrap: on
line source

local Luan = require "luan:Luan.luan"
local error = Luan.error
local set_metatable = Luan.set_metatable or error()
require "java"
local JFrame = require "java:javax.swing.JFrame"


local Frame = {}

local mt = {}

function mt.__index(frame,key)
	if key == "visible" then
		return frame.java.isVisible()
	end
	error("'"..key.."' not defined")
end

function mt.__new_index(frame,key,value)
	if key == "visible" then
		frame.java.setVisible(value)
		return
	end
	error("'"..key.."' not defined")
end

function Frame.new(title)
	local jframe = JFrame.new(title)
	local frame = { java = jframe }
	function frame.exit_on_close()
		jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	end
	function frame.add(component)
		jframe.add(component.java)
	end
	frame.pack = jframe.pack
	set_metatable(frame,mt)
	return frame
end

return Frame