gpt4 book ai didi

java - JLayered Pane 无法正确显示图像

转载 作者:行者123 更新时间:2023-12-01 14:24:17 25 4
gpt4 key购买 nike

由于某种原因,每个图像仅显示 1/5(或更少)。由于它是分层 Pane ,因此至少应完全显示 1 个。布局为空,因为这是一个学习程序为什么会发生这种情况?

代码如下:类测试1

import javax.swing.*;
import java.io.*;
import java.awt.*;
import java.awt.image.*;
import javax.imageio.*;
import java.awt.Image;
import java.net.URL;


public class test extends JPanel
{
private JFrame frame=new JFrame("");
private JLayeredPane layered =new JLayeredPane();
private BufferedImage image;
private test2 image2=new test2();



public test()
{
try
{
image=ImageIO.read(new File("im1.png"));

}
catch (IOException e)
{
//Nothing
e.printStackTrace();
}
}

public void draw()
{
frame.setLayout(null);
image2.setLayout(null);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setResizable(true);
frame.setSize(800,800);
frame.add(layered);
this.setBounds(30,50,70,80);
layered.add(this,new Integer(1));
image2.setBounds(100,120,170,400);
layered.add(image2,new Integer(1000));
frame.setContentPane(layered);
frame.setVisible(true);
}

@Override
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawImage(image,0,0,null);
}
public static void main()
{
test t=new test();
t.draw();
}
}

测试2类

import javax.swing.*;
import java.io.*;
import java.awt.*;
import java.awt.image.*;
import javax.imageio.*;
import java.awt.Image;
import java.net.URL;


public class test2 extends JPanel
{
private JPanel thepanel=new JPanel();;
private BufferedImage image2;



public test2()
{
try{image2=ImageIO.read(new File("im2.png"));}
catch(IOException e){e.printStackTrace();}
}

@Override
protected void paintComponent(Graphics g)
{ super.paintComponent(g);
g.drawImage(image2,0,0,this);
}
}

我也不明白 setOpaque(true/false) 到底是什么以及何时需要它。

最佳答案

当您使用 null 布局并将绘制图像的容器的边界设置为小于以下尺寸时,每个图像仅显示 1/5图像

this.setBounds(30,50,70,80);

image2.setBounds(100,120,170,400);

使用 layout manager ,将 JPanels testtest2 添加到 JFrame 并调用 JFrame#pack 。通过覆盖 getPreferredSize 确保两个面板都具有首选尺寸。

旁白:Java 命名约定显示类名以大写字母开头,例如 TestTest2

关于java - JLayered Pane 无法正确显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17286436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com