简单画板的总结

简单画板的总结

 最近搞完了一个比较低级的画板和计算器,逐渐熟悉了java中的界面内容,现在做一个总结。

java中,它会给用户提供组成界面的各个部分,我们所做的就是把这些东西找出来加以调用,将它们拼成一个完整的界面,Java中提供这些东西的包叫做swing。以一个计算器为例,首先要有一个大容器来装载所要用到的零件,这个最大的容器叫做JFrame。显示文档的东西叫做JTextField,添加按钮可以用到

JButton,添加菜单可以用到JMenuBar。。。。。。所有这些东西可以添加到JFrame中,比JFrame小一个等级的是JPanel类,这个东西可以存放出去JFrame类的其他东东,其它用法和JFrame类一样。

 由上而下,首先要用到的组件是JMenuBar,这个东西是一个菜单栏。菜单栏从左到右有各种选项,这些选项的建立要用到JMenu,实例化一个JMenu后,就可以在它的上面利用数组和循环添加N多的按钮。这些按钮又会有各自的子按钮,搞定这些字按钮要用到JMenuItem,这个也要用数组和循环添加其中的子选项。比如一个菜单栏上有三个按钮,第一个按钮有四个选项,第二个有两个,第三个也有两个。我们需要定义一个一维数组和一个二维数组

JMenuBar jm = initJMenuBar();

public   JMenuBar  initJMenuBar(){ 

String [] array1 = {1,2,3}

String [] array2 = {{1,2,3,4}{1,2}{1,2}}

for(int  i=0;i<array1.length;i++){

JMenu   jm =  new  JMenu(array1[i]

for(int   j=0;j<array2[i].length;j++){

JMenuItem jt = new JMenuItem(array2[i][j])

 }

jm1.add(jt);

}

jm.add(jm1)

}

    搞定了菜单栏,就会有一个文本输入栏,先实例化后添加到窗口上,而窗口默认的是将这个文本居中显示,占了所有的空间,所以要设置它的布局,可以要先设置其布局,在计算器中我给它设置了一个边框布局jf.setLayout(jt,GridLayout.NORTH)。之后我们会用到很多按钮,定义一个数组用来循环生成按钮。实例化按钮要用到JButton类。为了让按钮看着好看,我们要用到网格布局,

假设放置按钮的面板为jp1,则其格式为

jp1.setLayout(newGridLayoutabcd));

 除了按钮,窗体上通常还有文本输入栏,这个可以用JTextField()设置,其中()里面输入数字说明文本栏的长度。

现在以画板来总体说明一下。画板我总共搞了一个菜单栏和三个面板,三个JPanel类面板分别以BorderLayout的布局分布在JFrame窗体的西,南和中部。西面的JPanel存放工具栏,大约14个按钮按照GridLayout2,7)的布局分布在上面。南面的JPanel存放颜色板。中部的JPanel弄了一个画布,利用Graphics gr=jp3.getGraphics搞定。Jp1上的画板工具按钮要用一些图片表示,这就需要我们定义一个数组来存储图形。

String [] array = {"image/图片的名字.格式"。。。。。。。};

我们要把这个数组添加到图标上,然后再将这些图标添加到按钮上。实例化图标的格式是

ImageIcon im = new ImageIcon(array[i]);

JButton jb = new JButton(im);类似的,在jp2中也要定义一个数组搞定颜色栏。

Color [] array={Color.WHITE,new Color(x,y,z)};

要实现对这里的各种按钮的选定,要给这些按钮添加一个监听器,这里我以内部匿名类的方式添加一个监听器。

ActionListener  ac = new ActionListener(){

//实现具体的动作

public void ActionPerformed(ActionEvent e{

//具体的动作要求要在这里弄

}

};定义了一个内部匿名类后要给分别给ColorPanelToolsPanel添加这个监听器。除了界面的布局外,还得给画板的画图添加具体的处理方法。

DrawingLIstener dr = new DrawingListener(这里面要存放要用到的被传递的参数);在画图板中在DrawingListener类继承了MouseListener接口和MouseMotionListener接口。在添加的各种方法中就会写关于画图的。在画板中主要用到了 DrawLine();DrawOval();DrawRect();来画直线,椭圆和矩形。在画椭圆和矩形的时候要注意各种坐标的组合,这样才能画出正确图形。画喷枪的时候要定义一个随机数,搞刷子的时候要用到

//设置线条的粗细

    Graphics2D g2 = (Graphics2D)gr;

    g2.setStroke(new BasicStroke(10));

搞橡皮的时候把颜色设置成为白色。除了画多边形的时候要定义两组变量来存储,其它图形没有什么难度。以上就是我做简单画图板的总结,有不对的地方欢迎大家指教。

 

 

 

 

<!--EndFragment-->
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值