java绘画图形_java – 动态图形对象绘画
试图找出最好的方法来做到这一点(并且没有跨越任何具体细节,不是我不知道的).
我正在以可视方式显示图形(各种节点,边缘连接它们),圆圈和线条代表这样.每个节点都将在运行时添加,我无法对其进行硬编码.根据我的理解,所有绘画都需要在paint(Graphics g)方法中完成 – 这没有用,因为我无法更改参数,而且似乎只在初始创建期间调用它?
现在我正在考虑让它调用各种其他方法,传递Graphics对象,并依赖于其他变量 – 我将决定这是否是我甚至想要调用的(因为paint()方法是我唯一可以调用的方法).
我完全错了吗?从来没有打扰过这个.
为了让您更好地了解我想要最终得到的内容:我希望能够传递我想为节点添加的形状的坐标,然后将其添加到目前为止我在图表上的任何内容.然后与边缘相同,我希望能够传递线的起点和终点,以便在当时存在的任何内容上重新绘制.
不完全是我现在想要的 – 但是你会从我到目前为止拼凑的内容中得到这个想法:
import java.awt.*;
import javax.swing.*;
public class MyCanvas extends Canvas
{
public MyCanvas()
{
}
public void paint(Graphics graphics)
{
// Keep this until I figured out if it's painted on load or not.
graphics.drawLine(10, 20, 350, 380);
}
public static void main(String[] args)
{
MyCanvas canvas = new MyCanvas();
JFrame frame = new JFrame();
int vertexes = 0;
// Change this next part later to be dynamic.
vertexes = 10;
int canvasSize = vertexes * vertexes;
frame.setSize(canvasSize, canvasSize);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(canvas);
frame.setVisible(true);
}
public void drawNode(int x, int y, Graphics g)
{
// Treat each location as a 10x10 block. If position 1,1 then go to (5,5) - If position 3,5 then go to (25, 45) eg: (x*10)-5, (y*10)-5
int xLoc = (x*10) - 5;
int yLoc = (y*10) - 5;
g.setColor(Color.white);
g.fillOval(xLoc, yLoc, 8, 8);
g.drawOval(xLoc, yLoc, 8, 8);
}
public void drawArc(int x, int y, int xx, int yy, Graphics g)
{
int xLoc = (x*10) - 5;
int yLoc = (y*10) - 5;
int xxLoc = (xx*10) - 5;
int yyLoc = (yy*10) - 5;
g.drawLine(xLoc, yLoc, xxLoc, yyLoc);
}
}
编辑:(安德鲁的回应)
import java.awt.*;
import java.awt.image.BufferedImage;
import javax.swing.*;
public class MyCanvas extends JPanel
{
public MyCanvas() {
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
}
public static void main(String[] args)
{
int vertexes = 0;
// Change this next part later to be dynamic.
vertexes = 10;
int canvasSize = vertexes * vertexes;
JFrame frame = new JFrame();
JLabel label = new JLabel();
BufferedImage bImage = new BufferedImage(canvasSize, canvasSize, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = bImage.createGraphics();
g2d.drawLine(50, 50, 300, 300);
ImageIcon iIcon = new ImageIcon(bImage);
label.setIcon(iIcon);
frame.add(label);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
g2d = drawNode(1,1,g2d);
label.repaint();
}
public static Graphics2D drawNode(int x, int y,Graphics2D g2d)
{
// Treat each location as a 10x10 block. If position 1,1 then go to (5,5) - If position 3,5 then go to (25, 45) eg: (x*10)-5, (y*10)-5
int xLoc = (x*10) - 5;
int yLoc = (y*10) - 5;
g2d.setColor(Color.white);
g2d.fillOval(xLoc, yLoc, 8, 8);
g2d.drawOval(xLoc, yLoc, 8, 8);
return g2d;
}
public static void drawArc(int x, int y, int xx, int yy)
{
int xLoc = (x*10) - 5;
int yLoc = (y*10) - 5;
int xxLoc = (xx*10) - 5;
int yyLoc = (yy*10) - 5;
// g.drawLine(xLoc, yLoc, xxLoc, yyLoc);
}
}
java绘画图形_java – 动态图形对象绘画相关推荐
- 【java】java反射机制,动态获取对象的属性和对应的参数值,并属性按照字典序排序,Field.setAccessible()方法的说明【可用于微信支付 签名生成】...
方法1:通过get()方法获取属性值 package com.sxd.test.controller;public class FirstCa{private Integer num;private ...
- java绘制图形_Java绘制图形
1.了解什么是事件监听 写好一个界面后,我们就会对界面进行一些操作.比如,在输入框中输入数据,点击按钮或者菜单.这些操作我们称之为一个事件. 就比如我们要监视一间房子中会发生什么事情,就会给这间房子装 ...
- 实验楼Java写计算器_Java版图形界面计算器
Java 版图形界面计算器 实验说明及介绍 环境登录 无需密码自动登录,系统用户名 shiyanlou,密码 shiyanlou 环境介绍 本实验环境采用带桌面的 Ubuntu Linux 环境,实验 ...
- java表格界面_Java自学-图形界面 表格
Swing 使用 JTable详解 示例 1 : 基本表格 显示一个Table需要两组数据 一维数组: String[]columnNames 表示表格的标题 二维数组: String[][] her ...
- java 字母图形_Java字母图形
问题描述 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形,请找出这个图形的规律,并输出一个 ...
- java动态添加属性_java – 动态添加对象的属性
你好: 在我们的应用程序中,我们从数据库中检索了一些数据,例如,表格中包含以下字符:id,name,age,address,email. 然后我们将根据客户获得一些这些属性. 如果客户端需要id,na ...
- java 验证码 算术_java生成图形验证码(算数运算图形验证码 + 随机字符图形验证码)...
平凡也就两个字: 懒和惰; 成功也就两个字: 苦和勤; 优秀也就两个字: 你和我. 跟着我从0学习JAVA.spring全家桶和linux运维等知识,带你从懵懂少年走向人生巅峰,迎娶白富美! 关注微信 ...
- java 界面 菜单栏_Java自学-图形界面 菜单
如何在Swing中使用菜单JMenu GUI的菜单分为 菜单栏,菜单和菜单项 步骤 1 : 菜单栏和菜单 菜单栏和菜单 package gui; import javax.swing.JFrame; ...
- java 类定义_JAVA类与对象(二)----类定义基础
类是组成java程序的基本要素,是java中的一种重要的复合数据类型.它封装了一类对象的状态和方法,是这一类对象的原型.一个类的实现包括两个部分:类声明和类体,基本格式: class { 属性 方法 ...
最新文章
- caffe linux 教程,CentOS7安装Caffe的教程详解
- windows系统服务器添加ssl证书
- 什么从什么写短句_从什么到从什么造句
- java断言assertequals_如何实现Java测试的自定义断言
- 金融数据分析与挖掘实战4.1 Matplotlib(一)
- 18、led驱动程序的实现
- 利用DllPlugin分割你的第三方库
- php在线考试系统详细步骤
- 卡巴世界,卡巴斯基,卡巴斯基key,卡巴斯基激活码,软件下载,每天更新
- 【Linux系统开发】Study210开发板刷安卓系统
- Android中的Drawable(一)
- bugkuCTF—杂项—旋转跳跃
- 服务器手机远程控制,向日葵远程控制让手机也能远程管理
- 打开网站服务器显示403,打开网站显示403是什么意思
- UnityShader 图片像素化风格渲染
- Marvell88Q5192 switch调试记录(BSTA1000B平台)
- PPP over Ethernet(PPPoE)协议
- Spring学习笔记-狂神版
- seata: endpoint format should like ip:port
- is running 8724480B beyond the ‘PHYSICAL‘ memory limit.
热门文章
- windows 程序禁用中文输入法
- 004--Keil使用--出现expected a “{“
- 适合小白的重装系统方式
- HTML期末大作业~海贼王中乔巴专题漫画学生网页设置作业源码(HTML+CSS+JavaScript)
- Agg vs. Cairo 二维绘图引擎之比较和选择
- 获取java应用PID的几种方式
- 2020-2-25(93)
- MQ46# 实战|RocketMQ分区阻塞应急处理
- DECLARE_MESSAGE_MAP()、BEGAIN_MESSAGE_MAP()和 END_MESSAGE_MAP()
- 厦门国际动漫节金海豚 “创造未来”游戏开发大赛