方法がわかりませんでした。背景画像のプロパティはありません。答えを調べましたが、パネル内に null レイアウトのラベル アイコンを設定することしか見つかりませんでした。これは機能し、私の画像はそこにありますが、1 つのテキスト フィールドを除くすべてをカバーしています。このラベルの Z 値を変更できますか? 「背面に移動」オプションがある場合、それが表示されません。
1 に答える
1
これで問題が解決するはずです:
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class TestImage {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
ContentPane panel = new ContentPane();
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
});
}
private static class ContentPane extends JPanel {
BufferedImage image = null;
public ContentPane() {
try {
String pathToImage = "C:/Users/Branislav/Pictures/sun.jpg";
image = ImageIO.read(new File(pathToImage));
} catch (IOException e) {
e.printStackTrace();
}
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, null);
};
@Override
public Dimension getPreferredSize() {
return new Dimension(image.getWidth(), image.getHeight());
}
}
}
基本的にはJPanel
(ContentPane)に画像を設定します。また、サイズJPanel
は画像のサイズに依存します(少なくともこの場合)。
よろしく。
于 2013-05-09T17:36:04.470 に答える