出现在左上角的按钮具有不同的外观和感觉

时间:2015-11-18 14:11:21

标签: java swing netbeans

我正在尝试为我的Java代码添加Tiny Look and Feel。我正在使用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 个答案:

答案 0 :(得分:0)

目前,我无法重现您的问题,我同意Apple Push Notification Service:请提供更多代码和其他重要信息。您使用的是哪个版本的TinyLaF(我从camickr尝试过TinyLaF 1.4.0)?你使用特定的主题吗?您使用的是哪个版本的NetBeans?您使用的是哪种表单定义文件?您曾使用哪个布局管理器将按钮放在表单上?

如果您提供了更多信息,您可以让人们进一步帮助您,而不必猜测您项目的详细信息。当我们可以重现您的问题时,我们可以更快地搜索解决方案。请扩展您的问题:我们很乐意为您提供帮助。

使用TinyLaF快速尝试使用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);
    }
}