嘗試在 JFrame 中繪製矩形時,設定框架大小、可調整大小屬性以及矩形的座標可能不會導致矩形在框架內居中。
這種差異的根本原因在於框架的裝飾,例如邊框和標題列。這些裝飾佔據框架內的空間,影響矩形的位置。
為了確保正確居中,至關重要的是在框架的內容區域上繪製,而不是直接在框架上繪製。內容區域本質上是框架的內部部分,不包括裝飾。
範例程式碼:
public class CenteredRectangle { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { } // Create a JFrame with a content pane JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().setPreferredSize(new Dimension(800, 400)); frame.pack(); // Create a component to be centered JPanel panel = new JPanel(); panel.setBackground(Color.RED); panel.setPreferredSize(new Dimension(700, 300)); // Add the component to the content pane frame.getContentPane().add(panel); frame.validate(); // Position the frame at the center of the screen frame.setLocationRelativeTo(null); frame.setVisible(true); } }); } }
在此範例中,設定了JFrame 的內容區域首選大小為800x400,而要居中的元件JPanel 則設定為首選大小700x300。透過在內容窗格上使用 validate() 方法,計算並套用元件的實際大小和位置。
現在,組件應該在 JFrame 中正確地水平和垂直居中。
以上是如何讓元件在 JFrame 的內容窗格中居中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!