- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 Java 1.7 的应用程序中使用 Synthetica Black Eye LAF ( http://www.jyloo.com/synthetica/)。似乎当我启用 Synthetica LAF 时,如果我将屏幕拖到更大的第二台显示器上,然后通过双击或单击最大化图标来最大化窗口,该窗口占用的空间与主监视器上的“全屏”大小。当我没有启用 LAF 时,它不会执行此操作。就好像它没有意识到它在哪个屏幕上的尺寸。有什么解决方法吗?
我已经有效地做到了这一点: Java Toolkit Getting Second screen size和 java & fullscreen over multiple monitors这很好,因为现在我可以将首选尺寸设置为较大显示器的尺寸,但这对我的最大化问题没有帮助。
这是我的代码:
package mil.innovation.bewear.maintenance.windows;
import de.javasoft.plaf.synthetica.SyntheticaBlackEyeLookAndFeel;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class Windows {
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(new SyntheticaBlackEyeLookAndFeel());
} catch (Exception e) {
System.out.println("Look and feel not started");
}
Dimension dimension;
GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] devices = graphicsEnvironment.getScreenDevices();
GraphicsDevice biggest;
if (devices.length > 1) {
biggest = devices[0];
for (GraphicsDevice device : devices) {
if (device.getDefaultConfiguration().getBounds().getSize().getWidth() > biggest.getDefaultConfiguration().getBounds().getSize().getWidth())
biggest = device;
}
dimension = biggest.getDefaultConfiguration().getBounds().getSize();
} else if (devices.length == 1)
dimension = devices[0].getDefaultConfiguration().getBounds().getSize();
else {
throw new RuntimeException("No Screens detected");
}
String filePath = "C:\\Users\\Bewear2\\IdeaProjects\\bewear_windows\\imgNotFound.png";
JFrame frame = new JFrame("Example");
JLabel lblPicture = new JLabel();
lblPicture.setPreferredSize(dimension);
lblPicture.setSize(dimension);
BufferedImage image;
try {
image = ImageIO.read(new File("imgNotFound.png"));
lblPicture.setIcon(new ImageIcon(image));
}catch (IOException ex) {
System.out.println("Error loading the picture that is supposed to load when loading a picture fails" + ex);
}
try {
image = ImageIO.read(new File(filePath));
Image bufferedImg = image.getScaledInstance(lblPicture.getWidth(), lblPicture.getHeight(), Image.SCALE_SMOOTH);
lblPicture.setIcon(new ImageIcon(bufferedImg));
} catch (IOException ex) {
System.out.println("Error loading picture " + ex);
}
frame.setContentPane(lblPicture);
frame.pack();
frame.setVisible(true);
}
最佳答案
来自客户支持的电子邮件:
这主要是多屏环境中的一个已知 Java Swing 问题,只有在使用不同的屏幕分辨率时才会发生 - 请参阅 http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6829250 .它的目标是在 V9 中修复。但是,还有另一个问题 (#7010721 http://bugs.java.com/bugdatabase/view_bug.do?bug_id=7010721) 会影响窗口大小,因此请确保使用最新的 JVM。如果问题仍然存在,一个可能的解决方法是启用 native 框架装饰(请参阅 FAQ Window Decoration #1 http://www.jyloo.com/synthetica/faq/#windowDecoration-1)另一个解决方法是将系统属性“synthetica.frame.fullscreen”设置为 true,但这将覆盖任务栏操作系统。
关于Java - 使用 Synthetica Look and Feel (LAF) 和多显示器最大化窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31374187/
例如,可能有不同的 LAF。 JPanel 及其所有子项? 我的程序的核心(全部在一个 JPanel 中)严重依赖于组件的高度和宽度(通过不同的 LAF 进行更改),因此必须有一个恒定的 LAF。其余
我自定义我的 JComboBox 如下。 该程序在默认 LAF 下运行正常,但是每当我将 LAF 更改为 System LAF(另一个 LAF,Nimbus 也可以)时,单击按钮后就会出现无限循环。我
我有一个用 Java 编写的应用程序。当我使用跨平台 LAF(金属)从 eclipse 运行它时UIManager.setLookAndFeel(UIManager.getCrossPlatformL
我正在 Netbeans 中构建一个 GUI,它在设计器中看起来不错,但当我运行该程序时,它看起来很垃圾。我使用的是 Mac,所以我觉得使用 Mac OS LAF 看起来会更好,但是当我在 Windo
在我编写的“Battleship”程序中,我包含了将程序的“外观和感觉”更改为 SystemDefault、“Metal”(Java 默认)或“Motif”(也包含在 Java 中)的可能性。如果您从
我正在使用 Netbeans IDE,并且我想在 Java 应用程序中使用 Insubstantial LAF (http://insubstantial.posterous.com/)。但是,我不知
我有一个带有两个 JPanel 的应用程序,它们必须具有不同的样式。我使用 Synth LaF,但我不知道如何在一个 xml 文件中拥有两种不同的样式。我定义了一种样式并将其绑定(bind)到“面板”
我们在带有Solaris的服务器上运行构建。将 jre 1.6 更改为 jre 1.7 后,运行所有测试的实用程序开始抛出异常(抱歉我的英语): [java] Exception in thread
我是 Java 的新手,我搜索了很多网络和 Java 文档,但我不明白如何将 JTatto LAF 集成到我的应用程序中。 我下载了 .jar 文件并将其保存到我的类(class)所在的同一文件夹中。
我有一个应用程序在几个地方使用禁用的 JTextFields,这些地方是透明的 - 允许显示背景而不是文本字段的正常背景。 当运行新的 Nimbus LAF 时,这些字段是不透明的(尽管设置了 set
当我使用 Nimbus 外观时,我在 addPropertyChangeListener 处收到 NullpointerException 。当我使用 Linux 标准 LAF(金属)时,一切工作正常
如何子类化 JTabbedPane 并为子类的每个实例提供与默认 LaF 不同的外观?我仍然想访问默认的 JTabbedPanel,因此简单地覆盖全局 LaF 不是一个选项。 谢谢。 最佳答案 您可以
使用 Synth LaF,我无法将 JLabel 的前景颜色设置为“禁用”状态。有人成功做到这一点吗?这是 LaF.xml 文件中标签的样式定义。
我想删除 LAF JCheckbox 周围的蓝色东西: 我该怎么做? 非常感谢 最佳答案 图标是 LAF 的一部分。 如果您不喜欢默认图标,那么您可以随时提供自己的图标: checkBox.setIc
如何从 Swing JComboBox 中删除 LAF 样式? 最佳答案 实际上您无法删除 LAF,因为那时不会呈现任何内容,但您可以仅为该组合框设置另一个 LAF。 像这样: combo.setUI
我正在通过动态更改 UIDefaults 来自定义 Swing 应用程序。最终目标是更改其中的许多内容(颜色、字体、大小、边框等)并根据每个用户保存结果。虽然它可能会给应用程序带来一些非标准的外观,但
我最近一直在尝试将系统转换为统一的外观和感觉(在本例中为 Nimbus)。然而,某些组件需要更改默认值,我不想仅仅因为单个组件而更改默认值。 我正在尝试覆盖 JTree 组件的行突出显示颜色。我已经设
我目前正在使用 swing 应用程序。对于开发人员来说,最重要的是用户必须熟悉 GUI。我想开发一个应用程序,它可以具有所有平台的 native (平台的默认)外观在计算机上使用的(我的意思是说我的应
最近我一直在使用 Nimbus Look and Feel 开发一个 Swing 项目。我想将 JOptionPane 中的所有按钮设置为具有相同的大小,但徒劳无功。 import javax.swi
我刚刚注意到,当我在第二个屏幕(没有任务栏)上最大化一个框架时,它最终会达到人们预期的边界(如果任务栏在那里)。 我刚刚注意到这一点已经切换到 Windows 7。以前在 Vista 中,我有一个实用
我是一名优秀的程序员,十分优秀!