CSSBuilder可以在没有Griffon的情况下使用吗?
我有一个独立的Swing应用程序,我使用Groovy作为编程语言 我发现,尝试使用CSS应用样式并为此搜索一些工具 问题是CSSBuilder与Griffon框架集成在一起,所以我不能使用它与Griffon分离的所有特性,例如“cssClass”选择器CSSBuilder可以在没有Griffon的情况下使用吗?,css,swing,groovy,griffon,Css,Swing,Groovy,Griffon,我有一个独立的Swing应用程序,我使用Groovy作为编程语言 我发现,尝试使用CSS应用样式并为此搜索一些工具 问题是CSSBuilder与Griffon框架集成在一起,所以我不能使用它与Griffon分离的所有特性,例如“cssClass”选择器 因此,我的问题很简单:有人做过这样的事情吗?刚刚写了一个快速测试,这似乎有效: @GrabResolver( name='codehaus', root='http://repository.codehaus.org' ) @Grab( 'org
因此,我的问题很简单:有人做过这样的事情吗?刚刚写了一个快速测试,这似乎有效:
@GrabResolver( name='codehaus', root='http://repository.codehaus.org' )
@Grab( 'org.codehaus.griffon:cssbuilder:0.4' )
import griffon.builder.css.*
import groovy.swing.SwingBuilder
import java.awt.BorderLayout as BL
def style = '''* {
background-color: red;
}
jbutton {
background-color: blue;
}
.active {
color: green ;
font-size: 50%;
}
jlabel {
color: pink ;
font-size: 200% ;
}'''
Class klass = javax.swing.JComponent
if( !AbstractSyntheticMetaMethods.hasBeenEnhanced(klass) ) {
AbstractSyntheticMetaMethods.enhance(klass,[
"getCssClass": {-> delegate.getClientProperty(ClarityConstants.CLIENT_PROPERTY_CLASS_KEY) },
"setCssClass": { String cssClass -> delegate.putClientProperty(ClarityConstants.CLIENT_PROPERTY_CLASS_KEY, cssClass) }
])
}
new SwingBuilder().edt {
int count = 0
def frame = frame( title:'CSS Test', size:[ 300, 300 ], show: true ) {
borderLayout()
textlabel = label(text:"Click the button!", constraints: BL.NORTH)
button(text:'Click Me',
cssClass: 'active',
actionPerformed: {count++; textlabel.text = "Clicked ${count} time(s)."; println "clicked"},
constraints:BL.SOUTH)
}
CSSDecorator.applyStyle( style, frame )
}
我从