我使用JFrame在eclipse中编写了一个程序,以显示将在单独的PC上运行的GUI。为了适应屏幕,我使用了Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
和setSize((int)screenSize.getWidth(), (int)screenSize.getHeight());
,但是由于某些原因,当我在另一台PC上运行JAR文件时,它太大了。使它适合运行JAR文件的任何屏幕的最佳方法是什么?
编辑:我添加了此问题的示例代码,并注释掉了我尝试失败的4个“选项”。
package testDisplay;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Point;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JLabel
import javax.swing.JPanel;
public class Main {
public static void main(String []args) {
Display display = new Display();
}
}
@SuppressWarnings("serial")
public class Display extends JFrame {
/**
* Constructor for Display
*/
public Display() {
// Create Window
setTitle("Production Perfomance");
setUndecorated(true);
setVisible(true);
setLocation(new Point(0,0));
setLayout(null);
getContentPane().setBackground(Color.BLACK);
// Option 1:
//GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
//setSize((int)gd.getDisplayMode().getWidth(), (int)gd.getDisplayMode().getHeight());
// Option 2:
//Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
//setSize((int)screenSize.getWidth(), (int)screenSize.getHeight());
// Option 3:
//setSize(MAXIMIZED_HORIZ, MAXIMIZED_VERT);
// Option 4:
//setExtendedState(MAXIMIZED_BOTH);
// Add Panel with Label
JLabel title = new JLabel("<- - - - - - - - - - - - - - - ->");
title.setFont(new Font("Arial Black", Font.BOLD, 140));
title.setForeground(new Color(53, 203, 253));
JPanel bTitle = new JPanel();
bTitle.setBackground(new Color(39, 67, 157));
title.setBounds(0, 90, getWidth(), 150);
bTitle.setBounds(0, 400, getWidth(), 300);
add(bTitle);
bTitle.add(title);
}
}
答案 0 :(得分:-1)
没有其他方法可以获取监视器的当前大小。如果Toolkit由于某种原因(可能是您的代码中的问题)无法正常工作,那么使框架适合屏幕的唯一另一种方法是对屏幕尺寸进行硬编码。