为什么除了在 CENTER 上之外,我的图像无法在内容窗格上加载?



我目前仍在学习Java GUI,并在此问题上陷入困境。我只是想知道为什么除了中心外,我不能在任何地方加载它,如何在其他任何地方加载图像?

import java.awt.*;
import javax.swing.*;
public class GUI {
    public static void main(String[] args) {
        GUI gui = new GUI();
        gui.go();
    }
    public void go() {
        JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        Player player = new Player();
        panel.setBackground(Color.darkGray);
        JButton button = new JButton("shock me");
        panel.add(button);
        frame.getContentPane().add(BorderLayout.EAST, panel);
        frame.getContentPane().add(BorderLayout.NORTH, player);

        //frame.getContentPane().add(BorderLayout.CENTER, player);
        frame.setSize(200,200);
        frame.setVisible(true);
    }
}

这是我的球员类

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.util.Random;
import javax.swing.*;
public class Player extends JPanel{
    public void paintComponent(Graphics g) {
        Image image = new ImageIcon("Source/hero.jpg").getImage();
        g.drawImage(image, 3, 4 , this);
    }
}

Player不会覆盖 getPreferredSize()返回值。由于它没有这样做,因此BorderLayout不会在PAGE_STARTPAGE_END约束中分配任何高度,而LINE_STARTLINE_END约束中没有宽度。组件,它只是没有宽度/高度。

CENTER将在那里可见的空间既将组件的宽度和高度都扩展到可用的空间。

相关内容

  • 没有找到相关文章

最新更新