首页 > 代码库 > 画图2

画图2

按钮流动排列:

frame.setLayout=new FlowLayout();

添加图形按钮到窗体:运用数组

String[] shape={"自定义图形","随意三角形","直角三角形","等腰三角形","绿色"};
for(int i=0;i<shape.length;i++){
JButton shapebutton=new JButton();
shapebutton.setText(shape[i]);
shapebutton.addActionListener(DrawL);
frame.add(shapebutton);}

在监听器中(Released下)

if("等腰三角形".equals(action)){

g.drawLine(x1, y1, x2, y2);
g.drawLine(x1, y1,2*x1-x2 , y2);
g.drawLine(2*x1-x2, y2, x2, y2);


}

 

若想点三个点,然后自动画出三角形:(前面已将i设为3)

public void mouseClicked(MouseEvent e){

if("随意三角形".equals(action)){

if(i==3){
x3=e.getX();
y3=e.getY();
i++;
}
else if(i==4){     ......要写else,否则点击一次三个if都执行了
x4=e.getX();
y4=e.getY();
i++;
}
else if(i==5){
x5=e.getX();
y5=e.getY();

g.drawLine(x3, y3, x4, y4);
g.drawLine(x3, y3, x5, y5);
g.drawLine(x4, y4, x5, y5);
i=3;     .........最后将i又变成初值,不然循环只能执行一次画出一个三角形
}
}

 

因为添加了按钮,有动作事件:

事件名:public class DrawListener implements MouseListener,ActionListener

 

public void actionPerformed(ActionEvent e){
action=e.getActionCommand();    ...........getActionCommand()获取一个字符串,如果事件源没有设置ActionCommand,获取出来的就是按钮上的文字,否则就是设置   System.out.print("action:"+action);                                           的ActionCommand。

}

                                                            

画图2