Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更改JTable标题光标的大小_Java_Header_Jtable_Cursor - Fatal编程技术网

Java 更改JTable标题光标的大小

Java 更改JTable标题光标的大小,java,header,jtable,cursor,Java,Header,Jtable,Cursor,因此,我知道您可以通过以下方式更改jtable标题的光标: jTable.getTableHeader().setCursor(MyClient.greenResizeHorizontal); 如何更改列标题之间的水平调整光标大小 --编辑-- 根据@MadProgrammer,我试图搞乱UI委托,并且能够以与上面相同的方式更改光标。仍然不知道如何更改零件的大小。有人吗 jtable.getTableHeader().setUI(new BasicTableHeaderUI(){ JT

因此,我知道您可以通过以下方式更改jtable标题的光标:

jTable.getTableHeader().setCursor(MyClient.greenResizeHorizontal);
如何更改列标题之间的水平调整光标大小

--编辑--

根据@MadProgrammer,我试图搞乱UI委托,并且能够以与上面相同的方式更改光标。仍然不知道如何更改零件的大小。有人吗

jtable.getTableHeader().setUI(new BasicTableHeaderUI(){
    JTableHeader header;

    public void installUI(JComponent c) {
        header = (JTableHeader) c;
        header.setCursor(MyClient.greenResizeHorizontal);

        super.installUI(c);
    }
});

不幸的是,没有“好”的方法来修改这个光标。
BasicTableHeaderUI
正在使用默认的调整光标大小,它包含专用静态字段,名为
“resizeCursor”
。 此外,Swing
UIManager
不提供任何允许更改光标的属性(请参阅)

我发现的唯一方法是使用反射修改此字段的值(我使用的是手动光标,其他任何字段都可以在这里):


但这是一个黑客程序,因为它使用了privat的东西,它可能会停止使用任何Java更新,而且如果你的应用程序的jar被签名(),那么-AFAIR将无法工作。

上次我检查时,你需要了解一下外观delegate@MadProgrammer刚刚对“外观和感觉”代理内容进行了编辑。我现在又卡住了。你认为我需要一个鼠标事件来检查我是否在列之间吗?这似乎有点夸张。有什么想法吗?
table.getTableHeader().setUI(new BasicTableHeaderUI(){
    public void installUI(JComponent c) {
        try {
            final Field f = getClass().getSuperclass().getDeclaredField("resizeCursor");
            f.setAccessible(true);
            f.set(null, Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
        } catch (ReflectiveOperationException | SecurityException | IllegalArgumentException e) {
            e.printStackTrace();
        }
        super.installUI(c);
    }
});