第七次总结(java编写简单画板)

编写一个简单画板,要求能够绘制直线、矩形、圆形、圆角矩形及三角形。

效果图如下:

##################################分割线##################################

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class DrawingBoard extends JFrame{

 /**
  * @param args
  */
 public static void main(String[] args) {
 
  DrawingBoard db = new DrawingBoard();
  db.initUI();

 }
 //画板类的属性值
 private String shape="line";
 //构造方法
 public DrawingBoard() {
  
 }
 //获得按钮所指示的形状的方法
 public String getShapes(){
  return shape;
 }
 //初始化界面的方法
 public void initUI() {
  this.setTitle("简单画板");
  this.setSize(600, 500);
  this.setDefaultCloseOperation(3);
  this.setLocationRelativeTo(rootPane);
  
  JPanel northPanel =new JPanel();
  
  //创建按钮组件并设置大小
  JButton line =new JButton("直线");
  line.setActionCommand("line");
  JButton rect =new JButton("矩形");
  rect.setActionCommand("rect");
  JButton oval =new JButton("圆形");
  oval.setActionCommand("oval");
  JButton roundrect =new JButton("圆角矩形");
  roundrect.setActionCommand("roundrect");
  JButton triangle =new JButton("三角形");
  triangle.setActionCommand("triangle");
  line.setPreferredSize(new Dimension(90,40));
  rect.setPreferredSize(new Dimension(90,40));
  oval.setPreferredSize(new Dimension(90,40));
  roundrect.setPreferredSize(new Dimension(90,40));
  triangle.setPreferredSize(new Dimension(90,40));
  
  
  //匿名内部类直接“实例化”一个接口
  ActionListener al = new ActionListener(){
   //事件处理方法
   public void actionPerformed(ActionEvent e) {
    //获取按钮的动作命令
    shape = e.getActionCommand();
    System.out.println("shape = "+shape);
   }
   
  };
  //为各个按钮组件添加监听器方法并绑定事件处理类对象
  line.addActionListener(al);
  oval.addActionListener(al);
  rect.addActionListener(al);
  roundrect.addActionListener(al);
  triangle.addActionListener(al);
  //将各个按钮组件添加到南部面板上
  northPanel.add(line);
  northPanel.add(rect);
  northPanel.add(oval);
  northPanel.add(roundrect);
  northPanel.add(triangle);
  //将南部面板添加到窗体的南部
  this.add(northPanel,BorderLayout.NORTH);
  
  //创建中部面板
  JPanel centerPanel = new JPanel();
  //设置背景色为白色
  centerPanel.setBackground(Color.WHITE);
  //将中部面板添加到窗体的中部
  this.add(centerPanel,BorderLayout.CENTER);
  
  this.setVisible(true);
  //画图形必须在setVisible之后
  
  
  //
  Graphics g=centerPanel.getGraphics();
  //创建一个鼠标事件处理类对象
  DrawingListener dl = new DrawingListener(this,g);
  //为中部面板添加监听器方法并绑定处理类对象
  centerPanel.addMouseListener(dl);
  
 }

 
}

猜你喜欢

转载自358251441.iteye.com/blog/1912909