小编Pig*_*lvy的帖子

"-fx-shape"与"-fx-background-image"兼容吗?

我想将纹理应用于自定义形状.我认为这样可行:

.myTextureShape {
-fx-shape: "M0 0 L0 50 L25 25 L50 50 L50 0 Z";
-fx-background-image: url("resources/texture_bg.png");
-fx-background-repeat: repeat;
}
Run Code Online (Sandbox Code Playgroud)

但事实并非如此!我得到了正确的形状,但没有纹理.我所有其他区域都正确纹理化,所以我知道语法是正确的.我想这是因为它们默认是矩形的.

如果我使用以下样式:

.myTextureShape {
 -fx-shape: "M0 0 L0 50 L25 25 L50 50 L50 0 Z";
 -fx-background-color: red;
}
Run Code Online (Sandbox Code Playgroud)

然后我得到一个正确的红色背景.

如果两个属性都不兼容,如何将纹理应用于自定义SVG-pathed-shape?

PS:我的纹理PNG文件,是一个小的10*10光栅,我重复填充我的区域.

css svg javafx-2

9
推荐指数
2
解决办法
6805
查看次数

为什么Mockito跳过我的抽象类的成员变量的初始化

我正在尝试测试一个抽象类,而Mockito没有初始化我的成员变量.这是一个向您展示我的问题的简单示例.

这是一个初始化其"field"成员的抽象类:

import java.util.ArrayList;
import java.util.Collection;

public abstract class Foo {
    private final Collection field = new ArrayList();

    protected Foo() {
        System.out.println("In constructor");
    }

    public boolean isNull(Object o) {
        field.add(o);

        return o == null;
    }

    abstract void someAbstractMethod();
}
Run Code Online (Sandbox Code Playgroud)

这里的测试类:

import org.junit.Assert;
import org.junit.Test;
import org.mockito.Mockito;

public class FooTest {
    @Test
    public void testSomething() {
        final Foo foo = Mockito.mock(Foo.class);

        Mockito.when(foo.isNull(Mockito.anyObject())).thenCallRealMethod();

        Assert.assertFalse(foo.isNull("baaba"));
    }
}
Run Code Online (Sandbox Code Playgroud)

当测试运行时,它会抛出一个NPE,因为变量'field'没有被初始化!

我究竟做错了什么?

java abstract-class unit-testing mockito

9
推荐指数
1
解决办法
7111
查看次数

Nimbus和备用行颜色

我不明白Nimbus的替代行着色是如何工作的.看起来真的很疯狂!我想在这里澄清一切.

对于演示,让我们说我们想要一个交替红色和粉红色行的JTable(我不关心哪个颜色是第一个).

如果没有重新定义执行自己的"模2"的自定义cellRenderer,并且没有覆盖JTable的任何方法,我想列出启动一个应用程序和使用Nimbus属性获取具有自定义备用行颜色的JTable之间的必要步骤.

以下是我希望遵循的步骤:

  1. 安装Nimbus PLAF
  2. 自定义"Table.background"nimbus属性
  3. 自定义"Table.alternateRowColor"nimbus属性
  4. 使用简单的数据/标头创建JTable
  5. 将jTable包装在JScrollPane中并将其添加到JFrame
  6. 显示JFrame

这里的源代码:


public class JTableAlternateRowColors implements Runnable {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new JTableAlternateRowColors());
    }

    @Override
    public void run() {
        try {
            UIManager.setLookAndFeel(new NimbusLookAndFeel());
        } catch (UnsupportedLookAndFeelException e) {
            e.printStackTrace();
        }

        UIManager.getDefaults().put("Table.background", Color.RED);
        UIManager.getDefaults().put("Table.alternateRowColor", Color.PINK);

        final JFrame jFrame = new JFrame("Nimbus alternate row coloring");
        jFrame.getContentPane().add(new JScrollPane(new JTable(new String[][] {
                {"one","two","three"},
                {"one","two","three"},
                {"one","two","three"}
        }, new String[]{"col1", "col2", "col3"}
        )));
        jFrame.setSize(400, 300);
        jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); …
Run Code Online (Sandbox Code Playgroud)

java swing render jtable nimbus

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

如何在MigLayout中显示JLabel省略号?

使用默认布局管理器,JLabel在调整框架大小时显示其省略号.

如图所示:

public static void main(String[] args) {
    final JFrame jFrame = new JFrame("JLabel, show me your ellipsis!");

    jFrame.getContentPane().add(new JLabel("Sure darling! Shrink me and I'll show you"));

    jFrame.pack();
    jFrame.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)

但是,MigLayout不会显示此类行为!

public static void main(String[] args) {
    final JFrame jFrame = new JFrame("JLabel, show me your ellipsis!");

    jFrame.getContentPane().setLayout(new MigLayout());
    jFrame.getContentPane().add(new JLabel("Nope! I just do not know you well enough!"));

    jFrame.pack();
    jFrame.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)

我尝试了所有可以想到的布局/组件约束.有没有人知道Mig中是否还有这样的东西?

java layout swing miglayout

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