swing swing app OSX / Windows中的兼容性问题

时间:2015-10-30 16:53:45

标签: java windows macos swing

我有一个小型绘图应用程序,我已经看到在Windows机器上工作,但我似乎无法在Mac上运行时将绘制的线条粘贴到画布上。

它以指定的白色背景启动,但只要我点击并拖动,背景就会消失。

在白色背景消失后,线条的小碎片有时会被绘制到画布上。在移动时,"刷"有一个可见的尾巴,但没有一个坚持。

这是一个疯狂螺旋的悲惨结果:http://i.imgur.com/UZ66rMr.png

我看过这个:Java Swing drawing app not drawing似乎有点回答这个问题,但我真的很想知道这个具体的代码,因为我已经看到它在另一台机器。

非常感谢您的帮助!

以下是代码:

DrawingApp.java

public class DrawingApp {

public static void main(String[] args) {
    new Window();
  }

}

Window.java

import java.awt.Color;
import javax.swing.*;

public class Window extends JFrame {

public Window() {
    setTitle("Tegneprogram");
    setSize(500, 400);
    Draw draw = new Draw();
    add(draw);
    setVisible(true);
  }


}

Draw.java

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.*;

public class Draw extends JPanel implements MouseMotionListener {

Point start = null; 
Point end = null;

public Draw() {
    addMouseMotionListener(this);
  }

public void mouseDragged(MouseEvent evt) {
    start = end;
    end = new Point(evt.getX(), evt.getY());
    repaint();
  }

public void mouseMoved(MouseEvent evt) {
    end = null;
  }

public void paint(Graphics g) {
    if (start != null && end != null)
        g.drawLine(start.x, start.y, end.x, end.y);
  }

public void update(Graphics g) {
    paint(g);
  }


}

0 个答案:

没有答案