「java画图线条」java如何画图
今天给各位分享java画图线条的知识,其中也会对java如何画图进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java怎么同时画出两条线?并记录线的轨迹?求教了
- 2、java 如何在jpanel上画垂直线、水平线、平行线?
- 3、java 绘图板 如何实现画直线的功能
- 4、java怎么画出一条直线呢?高手进吧。
- 5、画图时如何设置线条的粗细
- 6、一个关于JAVA绘制线段的问题.
java怎么同时画出两条线?并记录线的轨迹?求教了
“同时画出”是关键词,呵呵,如果要同时画,复杂点,用同步语句块,不过不推荐~
简单点,在你线程里,把你画第一条线的句子,再复制一个进去就行了~-
-,可能这个方法有点土`~~~能详细描述下你想实现的功能吗?
记录轨迹。。。。你画出的线就是一条轨迹吧!,还用记录吗?如果非要实现这个记录诡计,你就画一个跟踪你线的坐标的诡计点,这个你可以用图片drawImage来画,也可以用drawString("."......)来画,当然你你这个诡计要和你的线或者其他东西一起,简单的方法J2ME里有GameCanvas来做你这个东西,因为这样你可以把你的线的“头部”当成一个精灵Sprite来做,用getX()
getY()来得到你“头部”的坐标,而且getX()
getY()是不断变化的,所以你可以吧getX()
getY()放到你用来记录轨迹的函数坐标里,这样就简单的跟踪你的线的轨迹了!
-----
不过,我想你是想实现那种动态显示出你的线不断在画的效果吧,就是两条线由短到长,那样的效果,你要给你的线drawLine()里的起点和终点坐标设置成变量,并在线程里让变量++,这样才是动态的,不然你画的线,可能直接就一下子画完了drawLine(int
x1,
int
y1,
int
x2,
int
y2)
里,x1,y1,x2,y2,可以都是变化,也可以你固定起点,然后终点x2++,y2++,这里就很灵活了,可以调下看看!
---
如果还有不明白,请你告诉我你具体想实现什么样效果,本人是做J2ME游戏开发的,可能这个回答与JAVA里画图方法不同,但是道理都是一样的,你去改下命令函数就行了!呵呵!
java 如何在jpanel上画垂直线、水平线、平行线?
定义一个类继承JPanel类,重写 JPanel 的 paint 方法,使用 Graphics 绘制线段,如下代码:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
class MyPanel extends JPanel {
@Override
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.RED);
for (int i = 0; i 10; i++) {
g.drawLine(10, 10 + i * 20, this.getWidth() - 10, 10 + i * 20);
}
for (int i = 0; i 10; i++) {
g.drawLine(10 + i * 20, 10, 10 + i * 20, this.getHeight() - 10);
}
}
}
public class App extends JFrame {
public App() {
this.setSize(400, 400);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MyPanel panel = new MyPanel();
this.add(panel, BorderLayout.CENTER);
}
public static void main(String[] args) {
new App().setVisible(true);
}
}
运行结果:
java 绘图板 如何实现画直线的功能
这个简单
可以调用方法drawline(int x1, int y1, int x2, int y2)
其中(x1, y1), (x2, y2)分别为直线起点和终点的坐标
特意给你写了个小例子,希望能帮到你
***************************************
import javax.swing.*;
import java.awt.*;
public class DrawLine extends JPanel {
public static void main(String[] args) {
JFrame frame = new JFrame("DrawLine");
frame.getContentPane().add(new DrawLine());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setVisible(true);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawLine(50, 50, 200, 250);
}
}
****************************
将程序复制到记事本中并改名为DrawLine.java(注意大小写)
然后在命令行中用 CD+文件夹 使命令范围到DrawLine.java的文件夹中
然后执行命令javac DrawLine.java
再执行命令java DrawLine
你会看到结果
java怎么画出一条直线呢?高手进吧。
我晕,组件要重绘,就使用paintComponent方法吧,没有什么灵活不灵活的
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
public class FrameDemo extends JFrame {
private JPanel contentPane;
TestComponent tc1, tc2;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
FrameDemo frame = new FrameDemo();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public FrameDemo() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(new GridLayout(2, 1, 10, 10));
tc1 = new TestComponent();
tc1.setBorder(BorderFactory.createLineBorder(Color.BLUE));
tc2 = new TestComponent();
tc2.setBorder(BorderFactory.createLineBorder(Color.PINK));
contentPane.add(tc1);
contentPane.add(tc2);
}
}
class TestComponent extends JComponent {
public void paintComponent(Graphics g1) {
Graphics2D g = (Graphics2D) g1;
g.setColor(Color.RED);
g.drawLine(0, 0, this.getWidth(), this.getHeight());
}
}
画图时如何设置线条的粗细
画图时设置线条的粗细步骤如下:
1、画布上有一线条,直线为例,对其细化处理,先使用魔棒【W】。
2、然后点击线条选中后---点击 选择。
3、然后点击修改--缩放或扩展--这里选择缩放。
4、然后在弹出的属性栏里修改缩放的像素--填充或右键反选删除多余像素。
一个关于JAVA绘制线段的问题.
import java.awt.*;
import java.io.*;
import java.util.ArrayList;
import javax.swing.*;
public class Draw {
@SuppressWarnings("unchecked") //去掉泛型的警告信息
public static void main(String[] args )throws Exception {
File file=new File("data.txt");
FileReader fr=new FileReader(file);
BufferedReader br=new BufferedReader(fr);
String str="";
JFrame f=new JFrame("画线段");
MyCanvas p=new MyCanvas();
//不知道你的屏多大,所以直接取屏幕分辨率的大小了
p.setPreferredSize(Toolkit.getDefaultToolkit().getScreenSize());
f.add(p,BorderLayout.CENTER);
f.pack();
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ArrayListint[] array=new ArrayList();
//把每行数字转为数组加入ArrayList
while((str=br.readLine())!=null){
//文件中的数字是用空格分的吧
String[] temp=str.split(" ");
int[] i=new int[temp.length];
int n=0;
for(String s:temp){
i[n++]=Integer.parseInt(s);
}
array.add(i);
}
p.setMyCanvas(array);//把array传给画图对象
p.repaint();//开始画图
}
}
class MyCanvas extends JPanel{
ArrayListint[] array;
public void setMyCanvas(ArrayListint[] array){
this.array=array;
}
public void paint(Graphics g){
for(int[] i:array){
g.setColor(new Color(i[4],i[5],i[6]));
g.drawLine(i[0],i[1],i[2],i[3]);
}
}
}
我也初学,写的比较笨,而且不够健壮,没有考虑文本文件中格式不对的问题。另外,因为不知道怎么处理paint方法每次画线会覆盖之前图像的问题,就把所以数据放入了集合里,最后一起画出来的。参考一下吧,测试通过了。把你的data.txt和这个程序放一个文件夹里就行。
ps:楼上的“我是王志伟”比我强多了,写的代码水平比我的好很多,只是有个语句应该用while他写成if了,另外他的格式在粘贴的时候自动换行了,用的时候需要调整一下。我也得学习一下,呵呵。
java画图线条的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java如何画图、java画图线条的信息别忘了在本站进行查找喔。
发布于:2022-11-25,除非注明,否则均为
原创文章,转载请注明出处。