小编Lor*_*y A的帖子

在 JavaFX 中的主题之间切换

我开发了一个 Java FX 应用程序,并使用 CSS 进行样式设置。该应用程序几乎对所有内容都使用默认颜色,因此我发现只需在 .css 中添加一个更暗的底色即可:

/* DarkTheme*/
.root {
   -fx-base: rgba(60, 60, 60, 255);   
}
Run Code Online (Sandbox Code Playgroud)

我得到了一个黑暗的主题效果,所有的颜色都会相应地调整。我只是找不到一种以编程方式执行此操作的方法,实际上是通过添加#setStyle 的那一行:

1)我应该在哪个节点上使用 setStyle 此规则将影响所有节点。

2)我传递给什么字符串 setStyle我假设:

<node>.setStyle("-fx-base: rgba(60, 60, 60, 255);"); //dark theme
<node>.setStyle("-fx-base: <something>");            //back to light def. theme
Run Code Online (Sandbox Code Playgroud)

3)一旦我找到了正确的元素,如果我想回去,我该怎么做? 我是否需要再次调用 set style,传递基色(我需要从一些元数据中提取?),或者我可以以某种方式删除以前的样式添加?**

最终结果应该是一个控件(按钮、radiob 等),允许在深色和浅色主题之间快速切换。

css java javafx javafx-8

5
推荐指数
1
解决办法
3027
查看次数

Java apache poi:excel cell color

我正试图用apache poi改变一个单元格的背景.

我知道有很多关于此的答案,但我使用的是最新版本(3.16)并且它们都被弃用了.

例如,所有答案都表明我使用了

CellStyle#setFillPattern(CellStyle.SOLID_FOREGROUND);
Run Code Online (Sandbox Code Playgroud)

但它完全被弃用了.

因此,在apache文档之后,我用新的函数替换了所有已弃用的函数,并提出了这个MCVE:

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class Mcve{
    public static void main(String[] args) {

    //Make workbook and first sheet
    XSSFWorkbook workbook = new XSSFWorkbook();
    XSSFSheet sheet = workbook.createSheet("sheet1");

    //Make a style
    XSSFCellStyle style = workbook.createCellStyle();
    style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
    style.setFillBackgroundColor(IndexedColors.RED.getIndex());

    //Fill first line
    Row row = sheet.createRow(0);

    int i = 0;
    while (i < 5) { …
Run Code Online (Sandbox Code Playgroud)

java apache excel javadoc colors

4
推荐指数
1
解决办法
1万
查看次数

Swing drawString:文本边界和换行

我需要使用Graphics#drawString绘制文本

我正在绘制一个JPanel在宽度和高度上都会改变的(通过拖动).

我正在寻找一个生成边界的解决方案,这样我就可以自动扭曲线条并相应地调整文本,而不会溢出.

我想我可以通过使用fontMetrics获取像素的长度来自己进行硬编码,但是,我宁愿有一个自动执行此操作的组件(drawString也不支持'\n').

在文档,以及在这个其他答案,我发现这一点:

Graphics2D g = ...;
Point2D loc = ...;
Font font = Font.getFont("Helvetica-bold-italic");
FontRenderContext frc = g.getFontRenderContext();
TextLayout layout = new TextLayout("This is a string", font, frc);
layout.draw(g, (float)loc.getX(), (float)loc.getY());

Rectangle2D bounds = layout.getBounds();
bounds.setRect(bounds.getX()+loc.getX(),
              bounds.getY()+loc.getY(),
              bounds.getWidth(),
              bounds.getHeight());
g.draw(bounds);
Run Code Online (Sandbox Code Playgroud)

哪个绘制字符串和边界,但它们没有效果,所以这里没有运气.

我可以使用的任何课程?

java graphics layout swing

3
推荐指数
1
解决办法
1064
查看次数

标签 统计

java ×3

apache ×1

colors ×1

css ×1

excel ×1

graphics ×1

javadoc ×1

javafx ×1

javafx-8 ×1

layout ×1

swing ×1