没错,将帧设置为不固定似乎不会为其高度和宽度增加10个像素,至于我为什么不能说,这似乎是更新本机对等端的副作用,但是…
您可以在通话
Jframe#pack后通过通话将其重置
Jframe#setResizable
public class TestResizableframe { public static void main(String[] args) { new TestResizableframe(); } public TestResizableframe() { EventQueue.invokeLater(new Runnable() { @Override public void run() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { } Jframe frame = new Jframe(); frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE); frame.setLayout(new BorderLayout()); frame.add(new FixedPane()); frame.setResizable(false); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } }); } public class FixedPane extends JPanel { @Override public Dimension getPreferredSize() { return new Dimension(200, 200); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); Dimension size = getSize(); String text = size.width + "x" + size.height; FontMetrics fm = g.getFontMetrics(); int x = (getWidth()- fm.stringWidth(text)) / 2; int y = ((getHeight() - fm.getHeight()) / 2) + fm.getAscent(); g.drawString(text, x, y); g.setColor(Color.RED); g.drawRect(0, 0, getWidth() - 1, getHeight() - 1); } }}


