【问题标题】:Can I use CSS for Java Swing?我可以将 CSS 用于 Java Swing 吗?
【发布时间】:2011-08-22 20:26:11
【问题描述】:

有没有办法在使用 Java Swing 的应用程序中重用我的 CSS?

【问题讨论】:

  • 您已经有一个用于其他用途的 CSS 文件?也许是一个网页?你想用 CSS 做什么?只是颜色和字体大小或布局和行为?
  • 是的,我的 Web 应用程序中使用了 CSS 文件,但在我的 Web 应用程序中,我使用的是在 swing 中开发的一个小程序。所以,我想知道是否存在重用我的 css 的可能性。
  • 我不知道我们是否有解析css样式的东西,但是对于我一直在使用Miglayout的Swing应用程序,这不是css的翻译,但它遵循大多数模式

标签: java css swing


【解决方案1】:

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='&#x00F7;' 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;
}

【讨论】:

    【解决方案2】:

    http://code.google.com/p/flying-saucer/ Flying Saucer 采用 XML 或 XHTML 并对其应用符合 CSS 2.1 的样式表,以便使用 Swing 或 SWT 呈现为 PDF(通过 iText)、图像和屏幕

    【讨论】:

      猜你喜欢
      • 2013-12-11
      • 1970-01-01
      • 1970-01-01
      • 2011-03-18
      • 2013-10-30
      • 2019-03-15
      • 2011-07-25
      • 2010-10-30
      • 2015-03-10
      相关资源
      最近更新 更多