java – JPanel周围不需要的边框
发布时间:2020-12-15 08:31:06 所属栏目:Java 来源:网络整理
导读:我正在创建一个带有JPanel的表单,用于某些图形和一些用于控制该事物的按钮.出于某种原因,我必须指定JPanel比我想放入的实际图形宽10 px,高30 px.是什么导致这个问题? 这是代码: public class Window { public Sheepness sheepness; public ButtonPanel but
我正在创建一个带有JPanel的表单,用于某些图形和一些用于控制该事物的按钮.出于某种原因,我必须指定JPanel比我想放入的实际图形宽10 px,高30 px.是什么导致这个问题?
这是代码: public class Window { public Sheepness sheepness; public ButtonPanel buttonPanel; public PaintPanel paintPanel; public JFrame frame; public Window(Sheepness sheepness) { this.sheepness = sheepness; frame = new JFrame("Sheepness simulation"); frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); //frame.setSize(width,height); BorderLayout frameLayout = new BorderLayout(); JPanel background = new JPanel(frameLayout); background.setBorder(BorderFactory.createEmptyBorder(5,5,5)); buttonPanel = new ButtonPanel(this); background.add(BorderLayout.SOUTH,buttonPanel.buttonBox); paintPanel = new PaintPanel(this); paintPanel.setPreferredSize(new Dimension(320,240)); background.add(BorderLayout.CENTER,paintPanel); frame.getContentPane().add(background); frame.pack(); frame.setResizable(false); frame.setVisible(true); } } public class PaintPanel extends JPanel { public Window window; public PaintPanel(Window window) { this.window = window; } @Override public void paintComponent(Graphics g) { g.setColor(Color.blue); g.fillRect(0,320,240); } } 屏幕截图的首选尺寸为320 x 240: Can’t find source image http://www.cmbi.ru.nl/~estens/Sheepness/Sheepness_simulation_border.png. 您可以看到320 x 240 fillRect未完全填充JPanel,宽度为10 px且高度保持30 px的边框. 屏幕截图的首选尺寸为310 x 210: Can’t find source image http://www.cmbi.ru.nl/~estens/Sheepness/Sheepness_simulation_noBorder.png. 现在它完全适合320 x 240 fillRect! 有任何想法吗? 解决方法
不同的布局管理器使用不同的规则来计算实际的托管控件大小,即只有在对其调用’setPreferredSize()’时,才能指望该面板具有特定的大小.
请随意检查所有目标布局管理器的javadoc,以获取有关每种特定情况下使用的算法的更多详细信息. 另请注意,您可以避免使用布局管理器,并通过’setBounds()’方法绝对定义所有大小. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |