我正在尝试制作一种策略游戏,但我无法让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);
我不知道为什么要这样做,它应该从我所见过的方面运作良好。 谢谢 - 不会接管宇宙的不是很好的编码员
答案 0 :(得分:0)
如果你想让JPanel填充整个JFrame,那么给一个框架
setLayout(new GridLayout(1,1));
(如果你只有这个JPanel)。另外别忘了使用
getContentPane().add(panel);
如果您的Frame上还有其他几件东西,或者Frame中的面板嵌套在其他东西中,那么请使用GridLayout来最大化它。