Java GUI综合运用
2021/12/25 11:08:27
本文主要是介绍Java GUI综合运用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
接下来我们综合运用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 GUI综合运用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)