我想知道Java中是否有一个函数可以从坐标(x1,x2)到(y1,y2)画一条线?
我想要做的是这样的事情:
drawLine(x1, x2, x3, x4);
而且我希望能够在代码中的任何时候执行此操作,从而使多行同时出现。
我试图做到这一点:
public void paint(Graphics g){
g.drawLine(0, 0, 100, 100);
}
但是,这使我无法控制何时使用该函数,并且我无法弄清楚如何多次调用它。
希望你明白我的意思!
PS我想创建一个具有许多坐标的坐标系。
绘制线条的摆动组件的一个非常简单的示例。它在内部保留一个列表,其中包含使用方法addLine添加的行。每次添加新行时,都会调用重新绘制以告知图形子系统需要新绘制。
该类还包括一些用法示例。
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.LinkedList;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class LinesComponent extends JComponent{
private static class Line{
final int x1;
final int y1;
final int x2;
final int y2;
final Color color;
public Line(int x1, int y1, int x2, int y2, Color color) {
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
this.color = color;
}
}
private final LinkedList<Line> lines = new LinkedList<Line>();
public void addLine(int x1, int x2, int x3, int x4) {
addLine(x1, x2, x3, x4, Color.black);
}
public void addLine(int x1, int x2, int x3, int x4, Color color) {
lines.add(new Line(x1,x2,x3,x4, color));
repaint();
}
public void clearLines() {
lines.clear();
repaint();
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
for (Line line : lines) {
g.setColor(line.color);
g.drawLine(line.x1, line.y1, line.x2, line.y2);
}
}
public static void main(String[] args) {
JFrame testFrame = new JFrame();
testFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
final LinesComponent comp = new LinesComponent();
comp.setPreferredSize(new Dimension(320, 200));
testFrame.getContentPane().add(comp, BorderLayout.CENTER);
JPanel buttonsPanel = new JPanel();
JButton newLineButton = new JButton("New Line");
JButton clearButton = new JButton("Clear");
buttonsPanel.add(newLineButton);
buttonsPanel.add(clearButton);
testFrame.getContentPane().add(buttonsPanel, BorderLayout.SOUTH);
newLineButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int x1 = (int) (Math.random()*320);
int x2 = (int) (Math.random()*320);
int y1 = (int) (Math.random()*200);
int y2 = (int) (Math.random()*200);
Color randomColor = new Color((float)Math.random(), (float)Math.random(), (float)Math.random());
comp.addLine(x1, y1, x2, y2, randomColor);
}
});
clearButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
comp.clearLines();
}
});
testFrame.pack();
testFrame.setVisible(true);
}
}
A ) 切换列表 显示正在参加派对的朋友列表。 显示被邀请参加的派对列表。 显示曾参加的派对历史记录和喜爱的派对 最多只能显示10个我的最爱,曾参加的派对和我的最爱最多共可显示20个。 B ) (举办派对) 举办新派对。 您可举办多个派对,但只能参加1个。 C ) (返回派对) 轻触图标可返回派对画面。只在参加派对时显示。 D ) 派对的信息 轻触即可显示派对画面,您可由此参加语音/文字聊天。 主
介绍如何使用主要的画面。 主画面 A ) 信息列 显示PS Vita的状态。 B ) 应用程序 显示应用程序的图标。最多可显示100个图标。 C ) 页数指示灯 显示主画面的页数。现在显示的地方会亮白光。 LiveArea™ LiveArea™是应用程序的首页画面,显示的画面因应用程序而异。 A ) 动作图标 轻触图标可启动支持应用程序的功能。显示的图标因应用程序而异。 升级 执行升级 仅限有升级
问题内容: 我找不到用Python库画一条任意线的方法。它允许绘制水平线和垂直线(与和,例如),但我没有看到如何通过两个给定的点划一条线和。有办法吗?有没有简单的方法? 问题答案: 从matplotlib 3.3开始,您可以使用进行操作。
问题内容: 我有一个JPanel,我为此设置了一些图像作为背景。我需要在图像上方绘制一堆圆圈。现在,圆将基于某个坐标x,y进行定位,其大小将基于某个整数大小。这就是我上课的时间。 如何创建可以执行此操作的方法? 问题答案: 您的方法可能与此类似,其中您也使用一个类来容纳所有圆和绘制例程:
我已经尝试了很多,但我能得到的只是第一个图像,而不是动画GIF。 目前最好的解决方案是加载一个动画gif到图标,但我需要文件。代码如下: 这里有人能帮忙吗? 这段代码只获得gif的第一个图像(不是动画):
问题内容: 尝试使用awt canvas上的鼠标来绘制图形(目前为线)。Iam首次尝试Java图形。所以不确定如何去做。这是我的第一次尝试: 问题:1)将窗口最小化并还原后,绘制的线条消失了(由于要重新绘制)2)我要的是该线条应跟随鼠标移动(拖动时)。最后一行应该从按下位置到释放鼠标的位置。现在请礼节,当鼠标移动时,将绘制新的线条。我不确定如何清除画布上的中间线。 有人可以帮我解决这些问题吗? 问