簡體   English   中英

如何修復 Java Swing JFrame 的尺寸錯誤

[英]How to fix size error of Java Swing JFrame

我正在練習 Swing 布局。 我求 JFrame 的實際大小與 size Dimension 不匹配

import java.awt.*;

import javax.swing.*;

public class GridRanFruit {
    public GridRanFruit() {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setPreferredSize(new Dimension(600, 600));
        frame.setLayout(null);

        JPanel primary = new JPanel();
        primary.setBounds(new Rectangle(0, 0, 600, 600));
        primary.setLayout(new GridLayout(4, 4));

        JPanel panels[][] = new JPanel[4][4];

        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 4; j++) {
                JPanel panel = new JPanel();
                panel.setBackground(Color.gray);
                primary.add(panel);
                panels[i][j] = panel;
            }
        }

        int ranSeed = (int) (Math.random() * 16);
        panels[ranSeed/4][ranSeed%4].setBackground(Color.green);

        frame.getContentPane().add(primary);
        frame.pack();
        frame.setVisible(true);

    }
}

您可以從下面的圖片中找到小錯誤。 怎么解決呢? 我正在使用setPerferredSize方法。 這意味着JFrame尺寸與JPanel不匹配,盡管尺寸相同

誤差高度

誤差寬度

正常尺寸

嘗試將設置大小的行替換為

frame.setSize(600,600);

就像其中一位評論者所說,setPreferredSize() 用於內容窗格(框架內可以放置東西的空間)而不是框架本身(窗口的邊框)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM