如何以像素为单位获得屏幕分辨率(宽x高)?
我正在使用JFrame和java swing方法.
我正在努力使照片适合JLabel.我希望将图片尺寸缩小到更适合我的Swing JPanel的尺寸.
我尝试使用setPreferredSize但它不起作用.
我想知道是否有一种简单的方法可以做到这一点?我应该为此目的缩放图像吗?
我使用myEclipse Matisse创建了java GUI.当我的屏幕分辨率为1024x768时,它工作正常,但当我更改分辨率时,我的GUI工作不正常.我希望我的GUI窗口应该根据屏幕分辨率重新调整我正在扩展JFrame来创建主窗口.
public class MyClass extends JFrame {
//I am putting some controls here.
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setBounds(0,0,screenSize.width, screenSize.height);
setVisible(true);
pack()
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,我做什么,设置大小硬编码或使用ToolKit,帧大小保持不变.
我在Windows机器上使用Netbeans,会发生的情况是,如果我运行主java文件,我得到的外观与我运行整个程序的情况不同.这意味着如果我这样做:

我明白了

但是,如果我这样做

我明白了 
您是否看到了两个java输出的外观和感觉上的差异?为什么会这样?我希望当我将它导出到Jar时它应该像第一种情况一样打开,看起来很漂亮的按钮.怎么样?
更新1: 我在main的开头找到了以下代码:
public static void main(String args[]) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(FormTTS.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(FormTTS.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(FormTTS.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(FormTTS.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//Some code here...
}
Run Code Online (Sandbox Code Playgroud)
所以它应该设置灵气的外观和感觉,但问题是当我打开罐子时,Nimbus的外观和感觉不存在
更新2:我的导航器外观

更新3:文件结构
