我需要帮助,因为我的 JPanel 组件没有显示在另一个组件中。我曾经使用过这种布局,所以我在这方面有一些经验,但在这种情况下仍然存在问题。请不要回答使用其他布局管理器。我的大部分项目都是基于 GridBagLayout。
所以它是我的父容器:
public class MainArea extends WorkArea
{
private static final long serialVersionUID = 1L;
private GridBagConstraints gbc;
private LogoPanel logo;
public MainArea()
{
gbc = new GridBagConstraints();
logo = new LogoPanel();
JTextField tf = new JTextField(20);
gbc.gridx = 0;
gbc.gridy = 0;
add(logo,gbc);
gbc.gridx = 0;
gbc.gridy = 1;
add(tf,gbc);
}
}
布局管理器在 WorkArea 类中设置,它肯定是正确的。我添加的 JTextField 仅用于测试,它的显示与徽标不同。这是徽标代码:
public class LogoPanel extends JPanel
{
private BufferedImage image;
public LogoPanel()
{
File imageFile = new File("images/Logo.jpg");
try
{
image = ImageIO.read(imageFile);
}
catch (IOException e)
{
System.err.println("Blad odczytu logo");
e.printStackTrace();
}
}
@Override
public void paintComponent(Graphics g)
{
Graphics2D g2d = (Graphics2D) g;
Screen screen = Screen.getInstance();
g2d.drawImage(image, screen.getScreenWidth()/2-200, screen.getScreenHeight()/2-100, this);
}
}
请帮我。我不知道这里可能出了什么问题。我还尝试了重绘方法并在添加后验证但没有结果。