Mercurial Hosting > luan
view src/luan/modules/swing/Label.luan @ 1996:d5c21ca9703e default tip
move threads to admin
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 04 Jul 2025 11:39:41 -0600 |
parents | bb12d502b72e |
children |
line wrap: on
line source
local Luan = require "luan:Luan.luan" local error = Luan.error local set_metatable = Luan.set_metatable or error() local Utils = require "luan:swing/Utils.luan" local fail = Utils.fail or error() local make_metatable = Utils.make_metatable or error() local remove = Utils.remove or error() local check_empty = Utils.check_empty or error() local Component = require "luan:swing/Component.luan" local super__index = Component.__index or error() local super__new_index = Component.__new_index or error() local super_construct = Component.construct or error() require "java" --local JLabel = require "java:javax.swing.JLabel" sucks because can't copy local JTextField = require "java:javax.swing.JTextField" local UIManager = require "java:javax.swing.UIManager" local Logging = require "luan:logging/Logging.luan" local logger = Logging.logger "swing/Label" local Label = {} function Label.__index(label,key) local rtn = super__index(label,key) if rtn ~= fail then return rtn end if key == "text" then return label.java.getText() end return fail end function Label.__new_index(label,key,value) local rtn = super__new_index(label,key,value) if rtn ~= fail then return end if key == "text" then label.java.setText(value) return end return fail end local mt = make_metatable(Label) function Label.new(props) local jlabel = JTextField.new() jlabel.setEditable(false) jlabel.setBorder(nil) jlabel.setOpaque(false) jlabel.setFont(UIManager.getFont("Label.font")) local label = { java = jlabel } super_construct(label,props) local text = remove(props,"text") if text~=nil then jlabel.setText(text) end check_empty(props) set_metatable(label,mt) return label end return Label