1
这是我的代码来画多条......无法立刻
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.lang.*;
public class LineDrawing {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
createWindow();
}
});
}
private static void createWindow() {
JFrame mainFrame = new JFrame();
mainFrame.add(new myPanel());
mainFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
mainFrame.setBackground(Color.white);
mainFrame.setLocationRelativeTo(null);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setVisible(true);
}
}
class myPanel extends JPanel {
int startX;
int startY;
int endX;
int endY;
public myPanel() {
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
startX = e.getX();
startY = e.getY();
repaint(startX, startY, endX, endY);
}
@Override
public void mouseReleased(MouseEvent e) {
endX = e.getX();
endY = e.getY();
repaint(startX, startY, endX, endY);
}
@Override
public void mouseClicked(MouseEvent e) {
startX = e.getX();
endX = startX;
startY = e.getY();
endY = startY;
repaint(startX, startY, endX, endY);
}
});
addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
endX = e.getX();
endY = e.getY();
repaint(startX, startY, endX, endY);
}
});
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.black);
g.drawLine(startX, startY, endX, endY);
repaint();
}
}
我想画多条,同时保持前那些仍然存在的在屏幕上(框架)... 但是,当我再次点击前行被擦或删除了......
我试图设计一个图表分析的应用程序(它会告诉输入图形是否同构或不...
我的问题是,我无法绘制多条线,但只有一条线......
请参阅[自定义绘画方法](https://tips4java.wordpress.com/2009/05/08/custom-painting-approaches/),了解执行此操作的两种常用方法。 – camickr