我是 Java 新手。 我想创建一个程序,在其中我需要通过拖动鼠标在JPanel上自由绘图。我了解了绘制功能的基础知识并能够实现这一点。
public class DrawLine extends JPanel {
public void paint(Graphics g)
{
g.drawLine(0, 0, 50, 50);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){
public void run()
{
JFrame frame=new JFrame("Top Level Demo");
frame.setSize(300, 250);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel myPanel=new JPanel();
myPanel.setLayout(null);
frame.add(myPanel);
frame.add(new DrawLine());
frame.setVisible(true);
}});
}}
但这会生成这样的输出,其中直线由坐标确定。
请有人帮我在 JPanel 中实现自由绘图。
最佳答案
重写JPanel的paintComponent()而不是paint()方法。
创建要在paintComponent()中使用的Point列表。
循环迭代列表,并为列表中的每一对点调用
g.drawLine(currentPoint.x,currentPoint.y, nextPoint.x,nextPoint.y);
添加拖动监听以在列表中存储拖动点。
关于java - JPanel 内自由绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19786089/