绘画方法中的绘画-Java
我只是发布相关代码。我对java相当陌生,现在我正在构建一个程序,允许用户使用draw方法。但是,当我在界面中单击绘图按钮时,它会自动在页面的任何位置生成一条随机线,并且不允许用户交互。我认为错误发生在我的mouseListener方法中,但我不确定,因为这是我第一次这样做。任何帮助都将不胜感激。谢谢大家! 另外,输出的错误是:线程“AWT-EventQueue-0”java.lang.NullPointerException中的异常绘画方法中的绘画-Java,java,Java,我只是发布相关代码。我对java相当陌生,现在我正在构建一个程序,允许用户使用draw方法。但是,当我在界面中单击绘图按钮时,它会自动在页面的任何位置生成一条随机线,并且不允许用户交互。我认为错误发生在我的mouseListener方法中,但我不确定,因为这是我第一次这样做。任何帮助都将不胜感激。谢谢大家! 另外,输出的错误是:线程“AWT-EventQueue-0”java.lang.NullPointerException中的异常 public class SimplePaint exten
public class SimplePaint extends JFrame {
JButton drawing = new JButton();
Line2D draw = new Line2D.Float();
Point start = null;
Point end = null;
public SimplePaint() {
JPanel panel = new JPanel() {
{
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
start = e.getPoint();
}
public void mouseReleased(MouseEvent e) {
start = e.getPoint();
//start = null;
}
});
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseMoved(MouseEvent e) {
end = e.getPoint();
}
public void mouseDragged(MouseEvent e) {
end = e.getPoint();
repaint();
}
});
}
};
drawing.setText("Draw");
panel.add(drawing);
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == drawing) {
draw = new Line2D.Float(start.x, start.y, end.x, end.y);
}
repaint();
}
};
drawing.addActionListener(actionListener);
}
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2 = (Graphics2D) g;
Line2D line = new Line2D.Float(0, 250, 2000, 300);
g2.draw(draw);
}
}
您正在调用JPanel的重新绘制,并且绘制方法在JFrame中,请尝试将侦听器添加到JFrame。您可以提出问题并发布错误和stacktrace吗?您是否阅读了此帖子:?然后阅读此帖子:仔细查看<代码>绘制属于您的面板,请改用
绘制组件
。您还忘了将panel添加到框架中。您正在调用JPanel的重新绘制,并且绘制方法位于JFrame中,请尝试将侦听器添加到JFrame。您可以提出问题并发布错误和stacktrace吗?您是否阅读了此帖子:?然后阅读此帖子:仔细查看<代码>绘制属于您的面板,请改用绘制组件
。您还忘了将面板添加到框架中。