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);
}
}
私を助けてください。ここで何が問題なのかわかりません。また、追加後に再描画メソッドと検証を試みましたが、結果はありませんでした。