1616
|
1 local Luan = require "luan:Luan.luan"
|
|
2 local error = Luan.error
|
|
3 local set_metatable = Luan.set_metatable or error()
|
|
4 require "java"
|
|
5 local JFrame = require "java:javax.swing.JFrame"
|
|
6
|
|
7
|
|
8 local Frame = {}
|
|
9
|
|
10 local mt = {}
|
|
11
|
|
12 function mt.__index(frame,key)
|
|
13 if key == "visible" then
|
|
14 return frame.java.isVisible()
|
|
15 end
|
|
16 error("'"..key.."' not defined")
|
|
17 end
|
|
18
|
|
19 function mt.__new_index(frame,key,value)
|
|
20 if key == "visible" then
|
|
21 frame.java.setVisible(value)
|
|
22 return
|
|
23 end
|
|
24 error("'"..key.."' not defined")
|
|
25 end
|
|
26
|
|
27 function Frame.new(title)
|
|
28 local jframe = JFrame.new(title)
|
|
29 local frame = { java = jframe }
|
|
30 function frame.exit_on_close()
|
|
31 jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
|
32 end
|
|
33 function frame.add(component)
|
|
34 jframe.add(component.java)
|
|
35 end
|
|
36 frame.pack = jframe.pack
|
|
37 set_metatable(frame,mt)
|
|
38 return frame
|
|
39 end
|
|
40
|
|
41 return Frame
|