有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java按钮显示在左上角,具有不同的外观和感觉

我试图在Java代码中添加微小的外观。我正在使用NetBeans IDE表单设计器,并添加了TinyLaf作为它的UI管理器。但是每当我编译我的程序时,我的框架左上角就会出现一些错误。我鼠标悬停的最后一个按钮将出现在屏幕的左上角(只是它的图像,而不是整个按钮)

JFrame的外观和感觉有所不同:-

enter image description here

我遵循TinyLaf文档中的说明:

Toolkit.getDefaultToolkit().setDynamicLayout(true);
System.setProperty("sun.awt.noerasebackground", "true");
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);

try {
    UIManager.setLookAndFeel("de.muntjak.tinylookandfeel.TinyLookAndFeel");
} catch(Exception ex) {
    ex.printStackTrace();
}

我还在NetBeans项目的库中添加了TinyLaf。但这张照片还是出现在屏幕上。 我该怎么办?提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    目前,我无法重现您的问题,我同意camickr:请提供更多代码和其他基本信息。您正在使用哪个版本的TinyLaF(我从muntjak.de/hans/java/tinylaf试用了TinyLaF 1.4.0)?你使用特定的主题吗?您正在使用哪个版本的NetBeans?您使用的表单定义文件是什么?您使用哪个布局管理器在表单上放置按钮

    如果你提供了更多信息,人们就可以进一步帮助你,而不必猜测项目的细节。当我们可以重现你的问题时,我们可以更快地寻找解决方案。请延伸你的问题:我们很乐意提供帮助

    下面显示了使用TinyLaF的一些代码的快速尝试(没有NetBeans,也没有您描述的问题):

    import java.awt.*;
    import javax.swing.*;
    
    public class TinyLafButtonOnFrame {
        public static void main(final String[] arguments) {
            new TinyLafButtonOnFrame().launchGui();
        }
    
        private void launchGui() {
            Toolkit.getDefaultToolkit().setDynamicLayout(true);
            System.setProperty("sun.awt.noerasebackground", "true");
            JFrame.setDefaultLookAndFeelDecorated(true);
            JDialog.setDefaultLookAndFeelDecorated(true);
    
            try {
                UIManager.setLookAndFeel("de.muntjak.tinylookandfeel.TinyLookAndFeel");
            } catch(Exception ex) {
                ex.printStackTrace();
            }
    
            final JFrame frame = new JFrame("Stack Overflow");
            frame.setBounds(100, 100, 800, 600);
            frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    
            final JPanel panel = new JPanel(new BorderLayout());
            panel.add(new JButton("btn1"), BorderLayout.CENTER);
            frame.getContentPane().add(panel);
    
            frame.setVisible(true);
        }
    }