java循环在JFrame中显示图像
你好,我正在尝试让一个图像充满屏幕。图像为20x20像素。我真的不知道该怎么解释。我想代码可能会解释得更好谢谢你的帮助。屏幕为800x600像素。我找了几天,什么也没找到。我想让它用这张图片填满整个屏幕。我就是拿不到它,要填满它,我需要它重复,而不是只用一个正方形java循环在JFrame中显示图像,java,swing,Java,Swing,你好,我正在尝试让一个图像充满屏幕。图像为20x20像素。我真的不知道该怎么解释。我想代码可能会解释得更好谢谢你的帮助。屏幕为800x600像素。我找了几天,什么也没找到。我想让它用这张图片填满整个屏幕。我就是拿不到它,要填满它,我需要它重复,而不是只用一个正方形 private int GLW = 0; private int GLH = 0; private int add = 20; private int redo1 = 0
private int GLW = 0;
private int GLH = 0;
private int add = 20;
private int redo1 = 0;
while(redo1 < 24000){
int redo = 0;
if(redo < 1){
//image here
java.net.URL imageURL = getClass().getResource("grass.png");
img = new JLabel(new ImageIcon(imageURL));
JPanel pan1 = new JPanel();
pan1.add(img);
add(img, BorderLayout.CENTER);
img.setVisible(true);
img.setBounds(GLH,GLW,20 ,20 );
GLW = GLW + add;
GLH = GLH + add;
}
GLW=GLW+20;
}
private int GLW=0;
私有整数GLH=0;
私人整数相加=20;
私有int redo1=0;
而(redo1<24000){
int-redo=0;
如果(重做<1){
//图像在这里
java.net.URL imageURL=getClass().getResource(“grass.png”);
img=newjlabel(newimageicon(imageURL));
JPanel pan1=新的JPanel();
pan1.添加(img);
添加(img,BorderLayout.CENTER);
img.setVisible(真);
img.挫折(GLH、GLW、20、20);
GLW=GLW+相加;
GLH=GLH+add;
}
GLW=GLW+20;
}
我正试图让一个图像填满屏幕。图像为20x20像素
然后需要平铺图像
查看允许您将图像添加到面板并支持平铺的功能。基本准则是:
BackgroundPanel panel = new BackgroundPanel(image, BackgroundPanel.TILED);
frame.add( panel );
您需要创建一个扩展JPanel的自定义类,然后覆盖paintComponent方法。 这对我很有用:
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JPanel;
public class BackgroundPanel extends JPanel {
private Image backgroundImage;
public BackgroundPanel(String fileName) {
backgroundImage = Toolkit.getDefaultToolkit().createImage(fileName);
}
@Override
public void paintComponent(Graphics g) {
int width = this.getWidth();
int height = this.getHeight();
for(int y = 0; y < height; y += backgroundImage.getHeight(null)) {
for(int x = 0; x < width; x += backgroundImage.getWidth(null)) {
g.drawImage(backgroundImage,x,y,null);
}
}
}
}
不,实际上,代码没有解释太多。你希望它做什么,它做什么你不喜欢?编辑您的问题,我建议在您提问时添加
java
标记。
import java.awt.EventQueue;
import java.io.IOException;
import javax.swing.JFrame;
public class Main {
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame("Background Image Example");
String imageUrl = "path/to/image.extension";
BackgroundPanel panel = new BackgroundPanel(imageUrl);
//add any other elements and customize panel
frame.add(panel);
//add any other elements and customize jframe
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}