标签:Java 窗口 KeyEvent 标签 GUI 设置 new 运用 jLabel
接下来我们综合运用GUI所学的知识,创建一个窗口,设置好窗口的属性,接着在窗口上添加一个标签,再在标签上添加一个所需的照片,通过对键盘上下左右键的监听,实现通过键盘控制飞机图片上下左右移动的功能
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.net.URL;
public class Plane1 extends JFrame {
private int x = 900; //设置图片的初始坐标位置x,y
private int y = 900;
public Plane1(){
this.setSize(500,500); //设置窗口的初始大小
this.setLocationRelativeTo(null); //设置窗口位置为居中
this.setTitle("飞机"); //设置窗口的标题为"飞机"
this.setBackground(new Color(255,255,255)); //设置窗口的背景颜色为白色
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗口的关闭方式
this.setIconImage(new ImageIcon("j20.jpg").getImage()); //设置窗口的图标
JPanel jp1 = new JPanel(null); //new一个面板
jp1.setBackground(Color.white); //设置面板的背景颜色为白色
JLabel jLabel = new JLabel(); //在面板上面设置一个标签
jLabel.setSize(50,85); //设置标签的初始大小
jLabel.setLocation(x,y); //设置标签的初始位置
URL u1 = Plane1.class.getResource("j20.jpg"); //此段为给标签添加一个可以设置图片大小的方法
ImageIcon i1 = new ImageIcon(u1);
Image image1 = i1.getImage();
Image sc1 = image1.getScaledInstance(50, 85, Image.SCALE_DEFAULT);
ImageIcon imageIcon1 = new ImageIcon(sc1);
jLabel.setIcon(imageIcon1);
jp1.add(jLabel); //将标签添加到面板上
this.addKeyListener(new KeyAdapter() { //设置键盘的监听方法
@Override
public void keyPressed(KeyEvent e) { //重写键盘按压操作keyPressed()
if (e.getKeyCode()==KeyEvent.VK_UP){ //按压上键图片上移10个像素
y=y-10;
jLabel.setLocation(x,y);
}
if (e.getKeyCode()==KeyEvent.VK_DOWN){
y=y+10;
jLabel.setLocation(x,y);
}
if (e.getKeyCode()==KeyEvent.VK_LEFT){
x=x-10;
jLabel.setLocation(x,y);
}
if (e.getKeyCode()==KeyEvent.VK_RIGHT){
x=x+10;
jLabel.setLocation(x,y);
}
}
});
this.add(jp1); //将面板添加到窗口
this.setVisible(true); //将该语句放在最后一行,设置将面板显示出来
}
public static void main(String[] args) {
new Plane1();
}
}
标签:Java,窗口,KeyEvent,标签,GUI,设置,new,运用,jLabel 来源: https://blog.csdn.net/weixin_52629592/article/details/122050110
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。