在Swing中改变组件的外观和感觉

3

我正在使用Swing的Substance外观插件,每当我通过以下方式更改主题时

SubstanceLookAndFeel.setSkin(new BusinessBlackSteelSkin());

或者通过:
  UIManager.setLookAndFeel(L);
    frame.setCursor(
            Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
    SwingUtilities.updateComponentTreeUI(twisting_frame);

边框在GUI上的列表和面板中显示出来,我尝试调用validate()、pack()、repaint(),但没有任何效果!主题正在更改,但是丑陋的边框仍然出现,非常感谢您的帮助。
2个回答

2

您没有展示frame的类型,但是setCursor()应该可以使用。下面是一个可行的例子:

import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;

/** @see https://dev59.com/LFPTa4cB1Zd3GeqPh0p_ */
public class CursorTest extends JPanel {

    public CursorTest() {
        this.setPreferredSize(new Dimension(640, 480));
    }

    private void display() {
        JFrame f = new JFrame("CursorTest");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(this);
        f.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
        f.pack();
        f.setLocationRelativeTo(null);
        f.setVisible(true);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                new CursorTest().display();
            }
        });
    }
}

0
尝试打开和关闭表单的可见性。
setVisible(false); 

然后

 setvisible(true);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接