一、Canvas 中绘制超大图片要点 ---- 1、设置 JFrame 窗口自动关闭 创建 JFrame 窗口后 , 通过调用 JFrame#setDefaultCloseOperation 可以设置窗口自动关闭...; // 创建 JFrame 窗口 JFrame frame = new JFrame("Large Canvas"); // 设置窗口关闭行为 点击右上角关闭按钮...关闭窗口并退出应用 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 2、获取并绘制图片 在 AWT 中 , 使用 Toolkit.getDefaultToolkit...+= dy; } }); 4、画布偏移 初始时 , 画布偏移为 0 , 但是 在鼠标不断拖动的过程中 , 偏移量 ( offsetX , offsetY ) 一直在累加...窗口 JFrame frame = new JFrame("Large Canvas"); // 设置窗口关闭行为 点击右上角关闭按钮 关闭窗口并退出应用
Java Swing的基础 首先需要注意的就是JFrame这个类,如果在main类整直接new一个出来是没有任何的变化,需要设置一个setvisible为true来显示出来。...public class AlgorFrame extends JFrame { private int canvasWith; private int canvasHeight;...JFrame是最上层的一个窗口,如果要绘制的话是不可以在窗口本身绘制的。MenuBar就是最大化最小化关闭等等的操作。...Content Pane其实是一个容器,可以装载其他的组件,最常用的就是面板,Jpanel就是一个面板,后面的绘制都会画在Jpanel上。也就是说想要画上东西就需要在Jframe上加入Jpanel。...绘制 在Jpanel类里面有一个paintComponent方法,这个方法
一、报错信息 ---- 实现一个需求 , 按键 数字 按键 , 让 Canvas 画布中绘制的图像根据按下的数值进行缩放 ; 在 AWT 自定义 Canvas 组件中 , 添加按键事件 , 下面定义的...} } }); 出现问题的博客代码 : 【Java AWT 图形界面编程】使用小键盘按键缩放 Canvas 画布中绘制的背景图像...( 键盘按键监听 + 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 ) ; 二、解决方案 ---- 鼠标事件 , 可以添加到具体的 Component 组件上..., 但是凡是涉及到 键盘 的事件 , 必须添加到顶级组件 , 也就是窗口组件上 , 如 : Frame / JFrame 组件上 , 才能生效 ; 否则就会出现上述情况 , 为 组件设置的 KeyAdapter..., 即可实现想要的功能 ; JFrame.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e
JFrame JFrame是Swing中的顶级容器,用于展示应用程序的主窗口。通常,你的应用程序会有一个JFrame实例。...void main(String[] args) { JFrame frame = new JFrame("My First JFrame"); frame.setSize...它可以有自己的布局管理器,也可以自定义绘制。...如果直接将组件添加到JFrame,可能会导致布局混乱。 避免方法:先创建JPanel,再将组件添加到JPanel,最后将JPanel添加到JFrame。 3....按钮没有监听器,就无法响应用户的点击。 避免方法:为JButton添加ActionListener,处理actionPerformed事件。
一、键盘按键监听 - 要点分析 ---- 如果要为 Java AWT 界面编程的应用设置键盘按键监听 , 必须为 Frame / JFrame 窗口设置键盘监听 , 为组件设置是无效的 ; 下面是设置键盘监听的核心代码...-- 在 【Java AWT 图形界面编程】Canvas 中绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame 窗口自动关闭 | 获取并绘制图片 | 鼠标拖动计算位移 | 画布偏移 ) 博客中...本博客中实现的案例 , 在上面的基础上 , 添加了鼠标滚轮缩放的中心点设置为当前鼠标中心点 ; 1、代码示例 import javax.swing.*; import java.awt.*; import...窗口 JFrame frame = new JFrame("Large Canvas"); // 设置窗口关闭行为 点击右上角关闭按钮 关闭窗口并退出应用...frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 创建画布 LargeCanvas canvas = new
} } 二、绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放示例 ---- 在 【Java AWT 图形界面编程】Canvas 中绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame 窗口自动关闭...| 获取并绘制图片 | 鼠标拖动计算位移 | 画布偏移 ) 博客中 , 绘制了超大图像 , 可以使用鼠标拖动 , 这里在上述基础上 , 新增鼠标滚轮缩放示例 ; 1、代码示例 代码示例 : import...g2.drawImage(image, 0, 0, this); } public static void main(String[] args) { // 创建 JFrame...窗口 JFrame frame = new JFrame("Large Canvas"); // 设置窗口关闭行为 点击右上角关闭按钮 关闭窗口并退出应用...frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 创建画布 LargeCanvas canvas = new
JFrame是最上层的一个窗口,如果要绘制的话是不可以在窗口本身绘制的。MenuBar就是最大化最小化关闭等等的操作。...Content Pane其实是一个容器,可以装载其他的组件,最常用的就是面板,Jpanel就是一个面板,后面的绘制都会画在Jpanel上。也就是说想要画上东西就需要在Jframe上加入Jpanel。...绘制 在Jpanel类里面有一个paintComponent方法,这个方法是自带的一个方法,需要绘制的操作都要在这里面画。paintComponent带了一个画笔参数。...cirle); //g.drawOval(50, 50, 300, 300); } } 如果想要设置颜色,就可以直接调用setColor即可,而这个条件会一直持续要后面结束为止...在我们视觉上就会看到闪烁了一下,有一个经典的解决方法,就是用双缓存,也就是两个画布,用画布的切换来演示动画的运行。
---- 在游戏中相应的实现即主要窗体用Frame和JFrame来构建。...设置抗锯齿属性也会失效 Ps:问题到目前为止还没有很好的处理,可能相应的用JPanel进行绘制会解决问题(暂未尝试!)...update()—>paint(); 默认的upadate()中自带clearRect()方法,即清屏功能,程序运行时我们调用repaint()方法刷新则会造成屏幕刚清空,又继续重新调用paint()方法往窗体上绘制...,重绘函数只需要在截图的画布上绘制即可,不必在从底层绘制 paint(gre); //将接下来的图片加载到窗体画布上去,才能考到每次画的效果 g.drawImage...这也就是JFrame本身的一种处理方法。 但是我们用JFrame编程并且重新update()实现双缓冲后,窗体一样狂闪不停!原因为何? 下面引用一张图来说明: ?
展示爱心前,可以先复制love链接在浏览器打开,就会有下面图片展示哦!...接下来是爱心代码及展示效果 代码展示: import javax.swing.*; import java.awt.*; public class heart extends JFrame {...this.setBackground(Color.BLACK); // 设置窗口关闭方式 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE...4; //设置画笔颜色 drawOffScreen.setColor(Color.PINK); // 绘制椭圆
计算机在屏幕上显示的内容都是由屏幕上的每一个像素组成的。例如,计算机显示器的分辨率是800×600,表示计算机屏幕上的每一行由800个点组成,共有600行,整个计算机屏幕共有480 000个像素。...像素是一个密度单位,而厘米是长度单位,两者无法比较。 介绍-快速入门 绘图原理 在面板上画一个小圆。...Component类提供了两个和绘图相关最重要的方法:1. paint(Graphics g)绘制组件的外观 repaint()刷新组件的外观。...当组件第一次在屏幕显示的时候,程序会自动的调用paint()方法来绘制组件。...//g.drawOval(10, 10, 100, 100); //演示绘制不同的图形..
2021/2/23 9:35 */ public class StartGames { public static void main(String[] args) { // 1.绘制一个静态窗口...JFrame JFrame jFrame = new JFrame("兮动人-贪吃蛇小游戏"); // 设置界面大小 jFrame.setBounds(...jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 2....面板 JPanel 可以加入到JFrame jFrame.add(new GamePanel()); // 让窗口能够展现出来 jFrame.setVisible...蛇的坐标 X int[] snakeX = new int[600]; //蛇的坐标 Y int[] snakeY = new int[500]; // R:右,L:左,U:上,
设置之后窗口就会一直在其他窗口的上面显示 去除窗口边框: setUndecorated();方法,写true就是除去窗口的边框, false则反之: ? 运行效果: ?...设置窗口对象的默认关闭方式: setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 直接关闭虚拟机 setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE...); 隐藏关闭,对象不会销毁 setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 销毁对象关闭 窗口标题: setTitle();方法,可以设置窗口的标题...流式布局里的组件会随着窗口的拉动而改变 卡片布局: CardLayout是卡片布局对象,可以直接在setLayout();方法里new这个卡片布局对象,就可以实现流式布局了: ?
--------------------------------------------- addSelectionInterval(int anchor, int lead):在已经选中列表项的基础上,...DefaultListModelTest().init(); } } 使用ListCellRenderer改变列表外观 前面程序中的 JList 和 JComboBox 采用的都是简单的字符串列表项, 实际上...super E> cellRenderer)方法,把自定义的ListCellRenderer对象传递给JList,就可以按照自定义的规则绘制列表项组件了。....*; public class ListCellRendererTest { private JFrame mainWin = new JFrame("好友列表"); private...private Color background; //定义绘制单元格的前景色 private Color foreground;
代码实现 创建窗口 首先创建一个游戏窗体类GameFrame,继承至JFrame,用来显示在屏幕上(window的对象),每个游戏都有一个窗口,设置好窗口标题、尺寸、布局等就可以。.../* * 游戏窗体类 */ public class GameFrame extends JFrame { public GameFrame() { setTitle("飞机大战...不允许修改界面大小 } } 创建面板容器GamePanel继承至JPanel package main; import java.awt.Graphics; import javax.swing.JFrame...上 jmi1.addActionListener(this); jmi1.setActionCommand("Restart"); jmi2.addActionListener(this); jmi2...创建我方飞机 创建MyPlane类,属性有坐标x、y,宽高、图片、是否存活、是否可以移动等;方法主要有绘制、移动、射击等。
; import java.awt.Container; import java.awt.Graphics; import javax.swing.Icon; import javax.swing.JFrame...jf=new JFrame();//创建一个JFrame窗口 Container container=jf.getContentPane();//将窗口转换为容器 container.setBackground...import java.net.URL; import javax.swing.Icon; import javax.swing.ImageIcon; /** * 1:Swing中的图标除了可以绘制以外...* 调用setImage(Image image)方法来操作 * 第二直接从图片源创建图表 * 第三除了可以直接从图片源创建图表之外,还可以为这个图标添加简短的描述 * 第四利用位于计算机网络上的图像文件创建图标...JFrame jf=new JFrame();//创建一个窗体 Container container=jf.getContentPane();//将窗体转化为容器
-- 效果展示 ---- 目录 效果展示 一、游戏界面 二、得分情况 项目介绍 项目背景 总体需求 实现过程 代码展示 主类 :Demo类 MyPanel类 ①构造方法 ②初始化方法 ③绘制方法...实现过程 (1)绘制窗体对象。 (2)静态UI设计(包括小蛇,食物,游戏区域和标题区域)。 (3)使用键盘监听事件和定时器实现小蛇的移动。 (4)小蛇与食物碰撞的实现。...KeyEvent arg0) { // TODO Auto-generated method stub } } 框架Ui类 package Demo; import javax.swing.JFrame...; public class Ui { public static void main(String[] args){ JFrame frame=new JFrame("无尽版贪吃蛇");...---- 总结 本游戏的设计思路类似于游戏“贪吃蛇大作战”,程序在一些功能的实现上还存在许多不足,但该项目的实现对Java新手的实战能力有很大的提升。
Part1 前言 Swing是一个用于开发java图形界面程序的工具包,一直用着挺顺手的,美中不足就是没有好用的浏览器组件,只能引用第三方jar包,比如说JxBrowser、DJ Native Swing...有一个很形象的比喻,JFrame是一张桌子,各个组件是一盘又一盘的菜,而JPanel就是一个托盘,装了选好的菜品(组件)后放到JFrame桌子上。...Swing添加Javafx的webview组件 Netbeans没法拖拽JFXPanel,那么我们可以这样,在JFrame上先放一个JPanel,然后手动敲代码在JPanel上添加一个JFXPanel,...JFXPanel上放一个scene场景,在其上面放一个Javafx的webview组件,具体看如下操作: JFrame-->JPanel-->JFXPanel-->scene-->webview,需要手写的代码量很少...至此一直困扰我的swing浏览器组件编写问题完美解决! 专注于网络安全技术分享,包括红队、蓝队溯源、渗透测试、代码审计等 每周一篇,99%原创,敬请关注
独占模型意味着:(1)Windows无法重叠全屏幕窗口,因此 //当已存在全屏幕窗口时,再调用此方法会导致现面的全屏幕窗口返回窗口化模型!...该类封装了 Java支持的基本呈现操作所需要的状态信息: 1、需要在其上绘制的Component对象 2、呈现和剪贴坐标的转换原点 3、当前的剪贴区 4、当前的颜色...绘制图形轮廓的操作是通过使用像素大小的画笔 遍历像素间无限细分路径的操作,画笔从路径上的锚点向下和向右绘制,填充图形的操作是填充图形 内部区域无限细分路径操作。...(JFrame对象)。...如果,这样做,那么这个怪物在不同的机器上移动的速度就会不一样!性能好的机器上的怪物运行比较快,而性能慢的机器上的怪物运行比较慢。而怪物的动画我们使用主动呈现的技术来实现。
Prefuse API中主要解读的是prefuse.data包中的主要接口,并利用《漫谈可视化Prefuse(一)---从SQL Server数据库读取数据》中例子,将参数配置模块剥离出来,实现界面传值,绘制图形...jf = new JFrame(); 53 jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 54 jf.add(display...图形展示效果如下: 121950592129282.jpg Demo2:打破输入输出流的垄断亲自绘制图形——Graph的使用 之前几篇介绍的例子主要依赖于prefuse.io中的读入写出操作类进行数据的导入...InGroupPredicate("graph.edges"), edgeRenderer); 这里采用EdgeRenderer边渲染器,将边渲染为曲线,并统一应用到组“graph.edges”中的元素上,...拿Demo2中的图形来说,处在中间的节点可以不收节点控制(无法拖拽,不能交互),人家兄弟姐妹多,就拿那些势力若的边缘小弟拖过来拽过去^_^。
系统用例图 图片查看系统用例图 二、概要设计 JPG.java class PaintCanvas extends Canvas类, 这个代码实现了一个绘图 Canvas 组件,用户可以在 Canvas 上用鼠标拖动绘制线条...private void drawPath(Graphics2D g2D) 方法用于遍历 pathPoints 列表,并使用 Graphics2D 对象在 drawingArea 上绘制连接这些点的直线...public void paint(Graphics g)方法被重写,用于在 Canvas 组件上绘制 drawingArea 的内容。...WindowCanvas 类实现了一个简单的绘图应用程序,可以创建了一个包含绘图面板和保存按钮的窗口应用程序,允许用户绘制图形并将绘制结果保存为PNG图像文件。继承自 JFrame,表示整个窗口。...JFrame,和接口ActionListener,FilenameFilter实现对绘制的图片进行查看,或者对已有的图片进行旋转、放大、缩小、下一张、上一张和删除 成员变量: 在查看图片的时候控制数组的下标
领取专属 10元无门槛券
手把手带您无忧上云