简单画板的总结
最近搞完了一个比较低级的画板和计算器,逐渐熟悉了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(newGridLayout(a,b,c,d));
除了按钮,窗体上通常还有文本输入栏,这个可以用JTextField()设置,其中()里面输入数字说明文本栏的长度。
现在以画板来总体说明一下。画板我总共搞了一个菜单栏和三个面板,三个JPanel类面板分别以BorderLayout的布局分布在JFrame窗体的西,南和中部。西面的JPanel存放工具栏,大约14个按钮按照GridLayout(2,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){
//具体的动作要求要在这里弄
}
};定义了一个内部匿名类后要给分别给ColorPanel和ToolsPanel添加这个监听器。除了界面的布局外,还得给画板的画图添加具体的处理方法。
DrawingLIstener dr = new DrawingListener(这里面要存放要用到的被传递的参数);在画图板中在DrawingListener类继承了MouseListener接口和MouseMotionListener接口。在添加的各种方法中就会写关于画图的。在画板中主要用到了 DrawLine();DrawOval();DrawRect();来画直线,椭圆和矩形。在画椭圆和矩形的时候要注意各种坐标的组合,这样才能画出正确图形。画喷枪的时候要定义一个随机数,搞刷子的时候要用到
//设置线条的粗细
Graphics2D g2 = (Graphics2D)gr;
g2.setStroke(new BasicStroke(10));
搞橡皮的时候把颜色设置成为白色。除了画多边形的时候要定义两组变量来存储,其它图形没有什么难度。以上就是我做简单画图板的总结,有不对的地方欢迎大家指教。
<!--EndFragment-->
分享到:
相关推荐
NULL 博文链接:https://13808498112.iteye.com/blog/1207509
NULL 博文链接:https://pengchenming.iteye.com/blog/1399196
总结问题 设计过程: A. 界面设计 新建一个Jframe容器,然后定义一个panel( Panel convas2),convas2是工具栏。用borderlayout布置容器的边框布局,将工具栏放在 NORTH部分。完成界面设计。 add(canvas2,...
总结问题 设计过程: A. 界面设计新建一个Jframe容器,然后定义一个panel〔 Panel convas2〕,convas2是工具栏.用borderlayout布置容器的边框布局,将工具栏放在NOR TH局部.完成界面设计. add,BorderLayout.NORTH>; ...
NULL 博文链接:https://xiaoyjj.iteye.com/blog/1702155
本资源分为两部分,记录我学习AD(Altium Designer)时所遇到的大部分操作问题,包括基本的铺铜,3D旋转,room设置,封装,不显示飞线,封装变绿,开槽,拼板,...知道这些操作后,基本可以画PCB板入门,且操作简单熟练。
本文就对在 校教师进行多媒体课件培训及自身课件制作过程中出现的问题进行综述,通过对问题的 分析及解决途径,进行总结与归纳,为当前教师进行课件制作提供便捷、高效的方法。 一、课件制作软件使用状况 目前学校...
本资源分为两部分,记录我学习AD(Altium Designer)时所遇到的大部分操作问题,包括基本的铺铜,3D旋转,room设置,封装,不显示飞线,封装变绿,开槽,拼板,...知道这些操作后,基本可以画PCB板入门,且操作简单熟练。
用到的知识点总结: 1.Canvas和pint的使用,我们用它画点,线,字 2.View的基本用法 其实做这个东西还是很简单的,总体思路步骤如下: 1.准备一个Canvas。 2.向Canvas里面画几条斜杠。 3.向canvas里面画100个小点。 ...
) 原理图设计是前期准备工作,经常见到初学者为了省事直接就去画板了,这样将得不偿失,对简单的板子,如果熟练流程,不妨可以跳过。但是对于初学者一定要按流程来,这样一方面可以养成良好的习惯,另
9. 5110屏幕布局时放倒了,以后画板时要和搭档多交流。 10:电压过高,导致显示频黑屏,蜂鸣器不受软件控制,一直响。 解决方法:将220转12的变压器换成220转6伏的变压器。 11:AD接反 解决方法:将排针反过来焊接 12:AD...