import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class BackgroundPanel extends JComponent
{
public BackgroundPanel()
{
JFrame JF = new JFrame("加载背景图片 ");
Container cp = JF.getContentPane();
NewPanel p = new NewPanel();
cp.setLayout(new BorderLayout());
cp.add(p,BorderLayout.CENTER);
JF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JF.setBounds(0,0,800,600);
JF.setVisible(true);
;
}
public static void main(String[] args)
{
new BackgroundPanel();
}
}
class NewPanel extends JPanel
{
int x = 0;
int y = 0;java.net.URL imgURL = getClass().getResource("stile.gif");//此处换成你的图片路径
ImageIcon icon = new ImageIcon(imgURL);public NewPanel()
{
}
public void paintComponent(Graphics g)
{//g.drawImage(icon.getImage(),x,y,getSize().width,getSize().height,this);
while(true)
{
g.drawImage(icon.getImage(),x,y,this);
if(x > getSize().width && y > getSize().height)
{
break;
}
if(x > getSize().width)
{
y += getSize().height;
x = 0;
}
else
{
x += getSize().width;
}
}
}//paintComponent()}//class NewPanel
import java.awt.event.*;
import javax.swing.*;
public class BackgroundPanel extends JComponent
{
public BackgroundPanel()
{
JFrame JF = new JFrame("加载背景图片 ");
Container cp = JF.getContentPane();
NewPanel p = new NewPanel();
cp.setLayout(new BorderLayout());
cp.add(p,BorderLayout.CENTER);
JF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JF.setBounds(0,0,800,600);
JF.setVisible(true);
;
}
public static void main(String[] args)
{
new BackgroundPanel();
}
}
class NewPanel extends JPanel
{
int x = 0;
int y = 0;java.net.URL imgURL = getClass().getResource("stile.gif");//此处换成你的图片路径
ImageIcon icon = new ImageIcon(imgURL);public NewPanel()
{
}
public void paintComponent(Graphics g)
{//g.drawImage(icon.getImage(),x,y,getSize().width,getSize().height,this);
while(true)
{
g.drawImage(icon.getImage(),x,y,this);
if(x > getSize().width && y > getSize().height)
{
break;
}
if(x > getSize().width)
{
y += getSize().height;
x = 0;
}
else
{
x += getSize().width;
}
}
}//paintComponent()}//class NewPanel
import java.awt.event.*;
import javax.swing.*;
import java.awt.image.BufferedImage;
public class BackgroundPanel extends JComponent
{
public BackgroundPanel()
{
JFrame JF = new JFrame("加载背景图片 ");
Container cp = JF.getContentPane();
NewPanel p = new NewPanel();
cp.setLayout(new BorderLayout());
cp.add(p,BorderLayout.CENTER);
JF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JF.setBounds(0,0,800,600);
JF.setVisible(true);
//addKeyListener(this);
System.out.print(p.getWidth());
System.out.print(p.x);
}//paintComponent()public void keyReleased(KeyEvent e)
{
}//KeyReleased()
public void keyTyped(KeyEvent e)
{}
public static void main(String[] args)
{
new BackgroundPanel();}
}
class NewPanel extends JPanel implements KeyListener
{
int x = 0;
int y = 0;
BufferedImage bimage;public NewPanel()
{
this.addKeyListener(this);//添加键盘控制监听器
//加载图片
Image image = this.getToolkit().getImage(ClassLoader.getSystemResource("stile.gif"));
MediaTracker mt = new MediaTracker(this);
mt.addImage(image,1);
try{
mt.waitForAll();
}catch(Exception e){
e.printStackTrace();
}
//创建缓冲区图像
bimage = new BufferedImage(image.getWidth(this),image.getHeight(this),
BufferedImage.TYPE_INT_ARGB);
Graphics2D g2D = bimage.createGraphics();
g2D.drawImage(image,x,y,this);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2D = (Graphics2D)g;
g2D.drawImage(this.bimage,this.x,this.y,this);
}//paintComponent()public void keyPressed(KeyEvent e)
{
int keyCode = e.getKeyCode();
int x = 0;
int y = 0;
if(keyCode == KeyEvent.VK_LEFT)
{
this.x -= 5;
if(this.x < 0) this.x = 0;
repaint();
}
else if (keyCode == KeyEvent.VK_RIGHT)
{
this.x += 5;
//if(this.x>getSize().width-this.width) this.x = getSize().width-this.width;
repaint();
}
else if(keyCode == KeyEvent.VK_UP)
{
this.y -= 5;
if(this.y < 0) this.y = 0;
repaint();
}
else if(keyCode == KeyEvent.VK_DOWN)
{
this.y += 5;
//if(this.y > getSize().height-this.height) this.y = getSize().height - this.height;
repaint();
}
}//KeyPressed(KeyEvent e)public void keyReleased(KeyEvent e)
{
}//KeyReleased()
public void keyTyped(KeyEvent e)
{
}
}//class NewPanel
我修改成这样了,但是还是控制不了,大哥,能帮帮吗?是用键盘控制的,谢谢啦