Ответ 1
http://code.google.com/p/flying-saucer/ Flying Saucer принимает XML или XHTML и применяет к нему стили CSS, совместимые с CSS 2.1, для рендеринга в PDF (через iText), изображений и на экране с помощью Swing или SWT
Есть ли способ повторно использовать мой CSS в приложении, использующем Java Swing?
http://code.google.com/p/flying-saucer/ Flying Saucer принимает XML или XHTML и применяет к нему стили CSS, совместимые с CSS 2.1, для рендеринга в PDF (через iText), изображений и на экране с помощью Swing или SWT
Java swing обычно не построен, чтобы отделять свои элементы управления от его представления, но существует инфраструктура с открытым исходным кодом под названием Jaxx, которая было написано, что может вам помочь. С Jaxx вы можете сделать что-то вроде this:
<Application title='Calculator'>
<style source='Calculator.css'/> //your style goes here...
<script source='Calculator.script'/>
<Table fill='both' id='table'>
<row>
<cell columns='4'><JLabel id='display' text='0'/></cell>
</row>
<row>
<cell columns='2'><JButton id='c' label='C' onActionPerformed='clear()' styleClass='clear'/></cell>
<cell><JButton id='ce' label='CE' onActionPerformed='clearEntry()' styleClass='clear'/></cell>
<cell><JButton id='equals' label='=' onActionPerformed='equal()' styleClass='operator'/></cell>
</row>
<row>
<cell><JButton id='d7' label='7' onActionPerformed='digit(7)' styleClass='digit'/></cell>
<cell><JButton id='d8' label='8' onActionPerformed='digit(8)' styleClass='digit'/></cell>
<cell><JButton id='d9' label='9' onActionPerformed='digit(9)' styleClass='digit'/></cell>
<cell><JButton id='plus' label='+' onActionPerformed='add()' styleClass='operator'/></cell>
</row>
<row>
<cell><JButton id='d4' label='4' onActionPerformed='digit(4)' styleClass='digit'/></cell>
<cell><JButton id='d5' label='5' onActionPerformed='digit(5)' styleClass='digit'/></cell>
<cell><JButton id='d6' label='6' onActionPerformed='digit(6)' styleClass='digit'/></cell>
<cell><JButton id='subtract' label='-' onActionPerformed='subtract()' styleClass='operator'/></cell>
</row>
<row>
<cell><JButton id='d1' label='1' onActionPerformed='digit(1)' styleClass='digit'/></cell>
<cell><JButton id='d2' label='2' onActionPerformed='digit(2)' styleClass='digit'/></cell>
<cell><JButton id='d3' label='3' onActionPerformed='digit(3)' styleClass='digit'/></cell>
<cell><JButton id='multiply' label='x' onActionPerformed='multiply()' styleClass='operator'/></cell>
</row>
<row>
<cell><JButton id='d0' label='0' onActionPerformed='digit(0)' styleClass='digit'/></cell>
<cell><JButton id='sign' label='+/-' onActionPerformed='toggleSign()' styleClass='operator'/></cell>
<cell><JButton id='dot' label='.' onActionPerformed='dot()' styleClass='digit'/></cell>
<cell><JButton id='divide' label='÷' onActionPerformed='divide()' styleClass='operator'/></cell>
</row>
а затем включить файл css для стилизации ваших компонентов:
Application {
lookAndFeel: system;
}
#display {
background: #BCE5AD;
opaque: true;
horizontalAlignment: right;
border: {BorderFactory.createBevelBorder(BevelBorder.LOWERED)};
font-size: 22;
font-weight: bold;
}
написать облачное приложение с J2SE + CSS и подключить его с Android/iPhone/J2ME где угодно.
см. исходный код https://github.com/javalovercn/homecenter