JPanel没有正确调整大小

时间:2015-07-12 16:22:05

标签: java jframe jpanel

我正在尝试制作一种策略游戏,但我无法让JPanel填充整个JFrame。我在论坛上看了一下,关于这个的其他帖子都没有帮助我。这是我的代码:

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class FCG extends JPanel{
static JFrame frame = new JFrame("Fleet Commander Greg");
static JPanel panel = new JPanel();
static JLabel ship = new JLabel();
public static void main(String[] args) {
    ship.setIcon(new ImageIcon("/Users/Alexander/workspace/Fleet Commander Greg/src/res/sprite_1.png"));
    ship.setBounds(32,32,0,0);
    panel.add(ship);
    frame.getContentPane().add(panel);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(1800,900);
    frame.setVisible(true);
    }
}

非常感谢任何帮助,谢谢。 - 有朝一日统治宇宙的超级好编码员

编辑: 好吧,所以我让它工作,(有点)但在框架的顶部和图像的顶部之间仍然有一些景观。这是我的主要方法:

stars.setIcon(new ImageIcon("/Users/Alexander/workspace/Destroy the World/res/stars_1.png"));
     stars.setBounds(0,0,400,500);
     panel.add(stars);
     frame.setLayout(new BorderLayout());
     frame.add(panel);
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setSize(400, 500);
     frame.setVisible(true);

我不知道为什么要这样做,它应该从我所见过的方面运作良好。 谢谢 - 不会接管宇宙的不是很好的编码员

1 个答案:

答案 0 :(得分:0)

如果你想让JPanel填充整个JFrame,那么给一个框架

setLayout(new GridLayout(1,1));

(如果你只有这个JPanel)。另外别忘了使用

getContentPane().add(panel);

如果您的Frame上还有其他几件东西,或者Frame中的面板嵌套在其他东西中,那么请使用GridLayout来最大化它。