Java 出现在左上角的按钮具有不同的外观和感觉
我试图在Java代码中添加微小的外观。我正在使用NetBeans IDE表单设计器,并添加了TinyLaf作为它的UI管理器。但是每当我编译我的程序时,我的框架左上角就会出现一些错误。我鼠标悬停的最后一个按钮将出现在屏幕的左上角(只是它的图像,而不是整个按钮) JFrame的外观和感觉有所不同:- 我遵循TinyLaf文档中的说明:Java 出现在左上角的按钮具有不同的外观和感觉,java,swing,netbeans,Java,Swing,Netbeans,我试图在Java代码中添加微小的外观。我正在使用NetBeans IDE表单设计器,并添加了TinyLaf作为它的UI管理器。但是每当我编译我的程序时,我的框架左上角就会出现一些错误。我鼠标悬停的最后一个按钮将出现在屏幕的左上角(只是它的图像,而不是整个按钮) JFrame的外观和感觉有所不同:- 我遵循TinyLaf文档中的说明: Toolkit.getDefaultToolkit().setDynamicLayout(true); System.setProperty("sun.awt.n
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。但这张照片还是出现在屏幕上。
我该怎么办?提前谢谢 目前,我无法重现您的问题,我同意:请提供更多代码和其他基本信息。您使用的是哪个版本的TinyLaF(我从中试用了TinyLaF 1.4.0)?你使用特定的主题吗?您正在使用哪个版本的NetBeans?您使用的表单定义文件是什么?您使用哪个布局管理器在表单上放置按钮 如果您提供更多信息,您可以让人们进一步帮助您,而不必猜测项目的细节。当我们可以重现您的问题时,我们可以更快地寻找解决方案。请回答您的问题:我们很乐意提供帮助 下面显示了使用TinyLaF的一些代码的快速尝试(没有NetBeans,也没有您描述的问题):
张贴演示您如何将按钮安装到框架上的帖子。谢谢您,先生!我尝试了你的代码,但不幸的是同样的事情发生在我身上。当我单击任何控制按钮(最小、最大、关闭)时,它仍会在框架的左上角显示控制按钮。我正在使用您链接的TinyLaF网站上的TinyLaF 1.4.0。您是否使用特定的TinyLaF主题?您正在使用哪个版本的NetBeans?您使用的表单定义文件是什么?您使用哪个布局管理器在表单上放置按钮?是的。我将夜间主题设置为默认主题。我正在使用NetBeans 8.0.2。什么是表单定义文件?我使用NetBeans的默认布局管理器(自由形式)来安排表单中的内容。因此,当您单击框架右上角的窗口控件按钮时,是否遇到了问题?当问题发生时,你能用这个答案中的代码做一个屏幕截图吗?我仍然无法在我的系统上实现这一点(Windows8.1、Java1.8.0@、IntellijIDEA15)。您使用什么操作系统和Java的哪个版本?
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);
}
}