java简单画图板程序 有个问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 13:51:35
我是个初学者,下面写的是一个画图板程序(只实现了点左侧的矩形按钮,然后在画布上上画的功能能)。可是画出来的矩形一直在画布的左侧,画布上什么也不显示,请告诉我问题出在哪,怎么解决,谢谢。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class A extends JFrame implements ActionListener,MouseListener,MouseMotionListener{
JButton b1,b2;
JPanel p1,p2,p3;
Canvas c;
public A(){
getContentPane().setLayout(null);
b1=new JButton();
b1.setIcon(new ImageIcon("画图板/11.jpg"));
b1.setSize(50,50);
b1.setBounds(10,10,60,60);
b1.addActionListener(this);
b1.validate();
b2=new JButton();
b2.setIcon(new ImageIcon("画图板/2.jpg"));
b2.setSize(50,50);
b2.setBounds(0,0,50,50);
b2.addActionListener(this);
b2.validate();
p1=new JPanel();
p1.setBounds(0,0,200,400);
p1.setLayout(null);
p1.validate();
p2=new JPanel();
p2.setBounds(0,400,600,700);
p2.setLayout(null);
p2.validate()

因为你最后写的paint方法是JFrame 的,而不是Canvas的。
应该自己写个继承Canvas的类,然后重构paint方法,
然后在鼠标事件里调用Canvas对象的paint方法。

ps:希望你写程序时给变量起个有意义的名字,不然看着太累了

p1.setLayout(null); ?