java panel paint_在paintbrush类型的GUI中,java – paintComponent()和paint()和JPanel对Canvas
I’ve been trying to find a workarounds, but have not found one,
especially for the getGraphics() method: how else can the graphics be
added to the panel?
你记得需要绘制一个变量,并在paintComponent()中使用它.
例如,你似乎在尝试在你的另一个问题上看起来像:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class PaintRectangle extends JPanel {
private Point mouseLocation;
public PaintRectangle() {
setPreferredSize(new Dimension(500, 500));
MouseAdapter listener = new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
updateMouseRectangle(e);
}
private void updateMouseRectangle(MouseEvent e) {
mouseLocation = e.getPoint();
repaint();
}
@Override
public void mouseDragged(MouseEvent e) {
updateMouseRectangle(e);
}
@Override
public void mouseReleased(MouseEvent e) {
mouseLocation = null;
repaint();
}
};
addMouseListener(listener);
addMouseMotionListener(listener);
}
private Rectangle getRectangle() {
if(mouseLocation != null) {
return new Rectangle(mouseLocation.x - 5, mouseLocation.y - 5, 10, 10);
}
else {
return null;
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Rectangle rectangle = getRectangle();
if(rectangle != null) {
Graphics2D gg = (Graphics2D) g;
gg.setColor(Color.BLUE);
gg.fill(rectangle);
gg.setColor(Color.BLACK);
gg.draw(rectangle);
}
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().add(new PaintRectangle());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
java panel paint_在paintbrush类型的GUI中,java – paintComponent()和paint()和JPanel对Canvas相关推荐
- java获取panel面板画笔_java - paintComponent()与paint()和JPanel vs Canvas在画笔类型的GUI中 - 堆栈内存溢出...
我一直试图找到一个解决方法,但没有找到一个,特别是对于getGraphics()方法:如何将图形添加到面板? 你记得需要绘制的变量是什么,并在paintComponent()中使用它. 例如,您在其他 ...
- jni java c 变量对应_GitHub - jkangzhang/JNIDemo: JNI中Java和C的数据传递
基本类型 对于基本类型的传递,只需要按照表格找到对应即可. Java Type Native Type Description boolean jboolean 8 bits, unsigned by ...
- java获取linux下面所有线程,获取Linux中Java线程的线程ID
最后,我发现JNI方式是解决我的问题的最佳方式.作为参考,我张贴代码,并建立它(基于example在维基百科)说明: Java类负责接口的C代码(GetThreadID.java): public c ...
- windows10中java调用python脚本
文章目录 1. windows基础环境 1.1 java安装 1.1.1 下载jdk(版本可自选) 1.1.2 安装jdk 1.1.3 配置java环境变量 1.2 python安装 1.2.1 py ...
- Java程序设计学习笔记(四)—— GUI
时间:2016-3-24 11:24 天道酬勤 --GUI(图形用户界面) 1.GUI Graphical User Interface(图形用户接口). 用图 ...
- java swing开发窗体程序开发(一)GUI编程
Java SWing就是java提供的一个类库专门用于开发窗体程序的,相对于C#的winform,java swing的开发要比C#更加麻烦,他不像C#拥有可视化的界面编辑工具 而是需要像QT一样纯代 ...
- java的图形用户界面_Java学习之GUI(图形用户界面)
一.GUI 概述 1.概述: 1.GUI:Graphical User Interface,即图形用户界面,用于计算机与用户交互的一种方式 2.计算机与用户交互的形式:GUI和CLI GUI: Gra ...
- java事件绑定,Java编程GUI中的事件绑定代码示例
程序绑定的概念: 绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来.对java来说,绑定分为静态绑定和动态绑定:或者叫做前期绑定和后期绑定 静态绑定: 在程序执行前方法已经被绑定,此时由编译 ...
- Java聊天室项目GUI界面化实现(Java聊天室 IO流 Socket流 GUI界面 )
Java聊天室项目GUI界面化实现(Java聊天室 IO流 Socket流 GUI界面 ) 文章目录 Java聊天室项目GUI界面化实现(Java聊天室 IO流 Socket流 GUI界面 ) 1.J ...
最新文章
- 一个域名可以对应多个ip地址吗_域名解析 | A记录 ,CNAME,MX,NS 你懂了吗
- Ubuntu命令行下安装,卸载软件包的过程
- python编程入门到实践pdf下载-Python编程从入门到实践的PDF教程免费下载
- inline hook学习
- python3.9出了吗_Python 3.9 正式版要来了,会有哪些新特性?
- 1.3.1 操作系统的运行机制和体系结构(大内核、小内核)
- 343. Integer Break
- python webservice接口测试传参数_Python3 webservice接口测试方法是什么
- elf文件格式实例解析
- 小程序监听android返回键,如何监听小程序返回按钮事件?
- Hi3519AV100 SDK文档解读
- 【所见即所得】数据分析最有用的25个 Matplotlib图【附代码】
- native链接mysql报错_连接报错'mysql_native_password'
- 「驱动安装」HighPoint RocketRAID R2722 磁盘阵列卡 驱动安装教程
- 机器学习:kNN算法(一)—— 原理与代码实现(不调用库)
- 通过JS定义一个Iframe
- 小米嵌入式工程师面试-心得
- 大数据背后的神秘公式:贝叶斯公式(万字长文)
- 智能建筑中高低压配电设备集成监控和管理系统应用分析-李亚俊
- 最长公共子序列问题——LCS算法