【发布时间】:2014-10-22 15:12:48
【问题描述】:
我创建了一个网格,扩展了 JPanel 覆盖图形,我添加了一个 JPanel,它是一个 GridBagLayout 并将 JPanel 添加到 JFrame。但只有部分网格显示出来,其余全部隐藏在网格的右下角和左上角,接触 JPanel 的中间。
JFrame 的:setSize(500, 300);
JPanel 的:setSize(250, 250);
一直在想办法,但无法...请帮忙。
编辑:下面是代码
public class Start extends JFrame{
public Start(){
setSize(500, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel jp = new JPanel(new GridBagLayout());
jp.add(grid);
add(jp, BorderLayout.CENTER);
setVisible(true);
}
}
//main method calling new Start();
public class DrawGrid extends JPanel{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
setSize(250, 250);
Graphics2D g2 = (Graphics2D) g;
//Grid algorithm here 20 x 20
}
【问题讨论】:
-
考虑提供一个runnable example 来证明您的问题。这将导致更少的混乱和更好的响应。也看看Laying Out Components Within a Container。 Swing 组件通过
preferred/minimum/maximumSize属性向布局管理器提供大小提示 -
是的,请提供完整的示例或更大的代码 sn-p
-
没有更多代码很难说,但我猜这就是您初始化 GridBagLayout 的方式。
-
@MadProgrammer 编辑
-
请考虑提供网格代码
标签: java user-interface grid