Java JPanel的大小调整不正确

Java JPanel的大小调整不正确,java,jframe,jpanel,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

我试图做一种策略游戏,但我无法让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);
我不知道它为什么这样做,从我所看到的来看,它应该工作得很好。
谢谢你-一个不太好的程序员,他永远不会接管整个世界

如果你想让JPanel填满整个JFrame,那么就给它一个

setLayout(new GridLayout(1,1));
(如果您只有这个JPanel)。也别忘了使用

getContentPane().add(panel);

如果您的框架上有其他一些东西,或者框架内的面板嵌套在其他东西中,则使用GridLayout将其最大化。

我不理解您的问题。将包含图像的标签添加到框架中。标签确实占据了所有的空间。但是,图像将按其实际大小绘制。也就是说,图像不会自动缩放以填充帧的大小。帧的默认布局是BorderLayout。在不指定约束的情况下将构件添加到框架时,构件将移到中心。中心将占据框架的所有可用空间。坚持边界布局。它提供了将工具栏添加到框架或状态栏的选项。无需将框架限制为单个构件。此外,由于JCK4,您不再需要使用getContentPane()。您可以直接将组件添加到框架中,它将为您添加到内容窗格中。