问题描述
||
我正在尝试一些Swing LaF代码,但遇到了问题。
Active LaF: Substance.
Active Substance Skin: RavenSkin (tested with others).
我正在内容窗格上使用带有BorderLayout的JFrame。我添加了一个带有侧面按钮的JPanel,并且在中间添加了一个JPanel到目前为止,一切都很好。使用鼠标可以动态调整窗口大小。
现在,我将画布添加到中心的JPanel中。突然之间,调整大小的代码存在一个错误-我可以通过拖动边角来放大窗口,但不能缩小它。我留下了一个奇怪的行为,即JFrame变得越来越大-显然不是最佳的。
当我更改为其他LaF(默认值为Nimbus)时,行为将按预期进行,并且可以缩小和放大。错误行为似乎仅限于物质。
这是程序包本身的错误吗?如果是这样,有没有办法在仍使用画布的情况下对其进行修复/解决?
注意:我需要能够使用Canvas-这样做的目的是在JFrame中包含一个LWJGL应用程序,我希望能够使用外观比默认外观更好的LaF。
根据要求,以下是一些可编译的,可运行的代码,用于显示错误(至少在我的计算机上):
import java.awt.Canvas;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import org.pushingpixels.substance.api.SubstanceLookAndFeel;
import org.pushingpixels.substance.api.skin.RavenSkin;
public class CanvasTest extends JFrame
{
private static final long serialVersionUID = -6209080597456869531L;
public Canvastest()
{
super(\"JFrame - Canvas Test\");
setSize(600,400);
setLocationRelativeto(null);
getContentPane().add(new Canvas());
setDefaultCloSEOperation(JFrame.HIDE_ON_CLOSE);
}
public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
SwingUtilities.invokelater(new Thread() {
public void run()
{
try
{
UIManager.setLookAndFeel(\"org.pushingpixels.substance.\" +
\"api.skin.SubstanceBusinessLookAndFeel\");
}
catch (Exception e)
{
e.printstacktrace();
}
SubstanceLookAndFeel.setSkin(new RavenSkin());
}
});
new Canvastest().setVisible(true);
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)