<!--[if !supportLists]-->一.
<!--[endif]-->实现画图板更好的布局
以往我们用的是Flowlayout流式布局,现在要用BorderLayout,这个没什么技术含量,需要注意的是以下几点:
左(右)边的高度=窗体高度-(下边组件的高度+上边组件高度);
这句话的意思是不论你怎么定义它的高度,即使定义为0抑或更极端的直接取窗体高度。它都不会实现,只会按照那个定义式取值。
下(上)边的宽度=窗体的宽度;
中间部分的高度和宽度不用定义他的高和宽取的是四周取过后剩下的部分。
我们现在来实现它:
仿XP画图板的模式,我们把整个板块分成三部分(左中下),分别放图形选择、画图区、颜色选择,为此我们要做三件事:
第一件事是先创建布局管理器BorderLayout,并添加到窗体上;
// 创建流式布局管理器
java.awt.BorderLayout border = new
java.awt.BorderLayout();
// 给窗体添加布局管理器
this.setLayout(border);
第二件事是创建三个面板,并将面板添加到窗体上;
//画布面板
JPanel jp_draw = new JPanel();
jp_draw.setBackground(Color.white);
//图形选择面板
JPanel jp_select = new JPanel();
jp_select.setPreferredSize(new
Dimension(80,0));
jp_select.setBackground(Color.DARK_GRAY);
//颜色选择面板
JPanel jp_color = new JPanel();
jp_color.setPreferredSize(new
Dimension(0,80));
jp_color.setBackground(Color.LIGHT_GRAY);
//将面板加在窗体上
this.add(jp_draw,BorderLayout.CENTER);
this.add(jp_select,BorderLayout.WEST);
this.add(jp_color,BorderLayout.SOUTH);
第三件事是将组建加在面板上
<!--[if gte vml 1]><v:shapetype
id="_x0000_t202" coordsize="21600,21600" o:spt="202" path="m,l,21600r21600,l21600,xe">
<v:stroke joinstyle="miter" />
<v:path gradientshapeok="t" o:connecttype="rect" />
</v:shapetype><v:shape id="_x0000_s1026" type="#_x0000_t202" style='position:absolute;
left:0;text-align:left;margin-left:282.5pt;margin-top:9.15pt;width:169.75pt;
height:109.5pt;text-indent:0;z-index:251660288;mso-width-relative:margin;
mso-height-relative:margin'>
<v:textbox style='mso-next-textbox:#_x0000_s1026' />
</v:shape><![endif]--><!--[if !vml]-->
<!--[endif]--><!--[if !mso]-->
<!--[endif]-->
<!--[if !mso]--> |
<!--[endif]--><!--[if !mso & !vml]--> <!--[endif]--><!--[if !vml]--> |
<!--[endif]-->jp_select.add(radio1);
jp_select.add(radio2);
jp_select.add(radio3);
jp_select.add(radio4);
<!--[if !supportLists]-->二.
<!--[endif]-->添加选定颜色功能
这是一快比较有意思的部分,有以下几种方法。在开始前我们先把准备工作完成。
准备工作:创建一个“选择颜色”按钮,加在相应的面板上。
准备工作完成后,我们要实现的功能是我点击这个颜色选择按钮可以选择以后将要画图形的颜色。
为了实现这个功能,我们需要给这个JButton加一个Actionlistener。好我们现在来具体具体实现。
实现这个的第一种方法创建内部类加在画图板这个类中,在画图板的属性部分加一个Color类型的color,并定义初值。创建一个内部类继承Actionlistener并实现方法具体代码是:
class ColorListen implements
ActionListener{
public void
actionPerformed(ActionEvent e) {
color =
javax.swing.JColorChooser.showDialog(null, "颜色选择", Color.black);
}
接下来我们需要把刚才内部类取出的“color” g.setColor(board.color);添加到图形上。随着这步的完成,这个功能基本就O了。
实现这个功能的方法二,创建一个类来继承Actionlistener方法同上只不过这个类不是内部类,现在就是三个类了我们可以把Color的对象传到 MouseListener中,在Color中定义一个方法
public Color getColor(){
return color;
}、
然后把C_lis传到MouseListener,再用C_lis调用方法。
分享到:
相关推荐
【Java简易画图板】是一个基于Java编程语言开发的简单图形绘制工具,它为用户提供了一个基本的画布,用户可以通过各种绘图工具进行创作。这个程序包含了一系列基础的图形元素和编辑功能,如直线、铅笔、圆形和矩形,...
总的来说,这个C#实现的画图板项目涵盖了计算机图形学的基础知识、事件驱动编程、用户界面设计以及文件操作等多个IT领域的关键概念,对于学习C#编程和Windows应用开发的初学者来说,是一个很好的实践项目。...
下面将详细介绍这些知识点。 1. **Java GUI**: - Java Swing和JavaFX是Java提供的两种主要的GUI工具包。Swing是基于Java AWT(Abstract Window Toolkit)的,而JavaFX提供更现代的图形和动画效果。考虑到描述中的...
【简易画图板程序java】是一个基于Java编程语言实现的简单图形绘制软件,它涵盖了图形学的基本概念和技术,为用户提供了一个交互式的平台,可以进行基本的图形绘制操作。这个程序的核心功能包括画直线、绘制圆以及对...
下面,我们将深入探讨如何使用Java实现这样一个画图板,并讨论其中的关键知识点。 首先,我们来了解一下Swing库。Swing是Java Foundation Classes (JFC)的一部分,用于构建桌面应用的用户界面。它提供了一组组件,...
这个画图板项目可能使用了这两个库来构建窗口、按钮、菜单等元素,以及进行图形绘制。 2. **Canvas 组件**:`java.awt.Canvas`是AWT库中的一个类,它允许程序员在窗口上进行低级别的图形绘制。在这个项目中,`...
在JAVA编程环境中,创建一个简易的画图板是一项有趣且实用的...以上就是实现"JAVA实现画图板"所需的主要技术点。通过组合使用这些知识点,我们可以创建一个功能丰富的图形编辑环境,让非程序员也能轻松地进行图形创作。
在Java编程环境中,创建一个画图板程序是一个典型的图形用户界面(GUI)应用程序开发任务。这个程序允许用户通过鼠标操作在屏幕上绘制各种图形,如点、线、圆、长方形和扇形,并提供橡皮擦功能进行擦除。以下是这个...
【标题】"Java+写的画图板,可以学到不少知识源码整理"是一个与Java编程相关的项目,旨在提供一个简单的图形界面应用,让学习者能够理解并实践Java GUI(图形用户界面)编程。这个画图板应用允许用户在屏幕上绘制...
"vb画图板,是我自己这集的哦"和"画图板vb画图板,是我自己这vb画图板"这两个描述可能是指个人开发的一个基于VB的画图程序,用户可以通过它在屏幕上自由绘画。 **知识点1:VB的控件与窗体** 在VB中,我们首先需要...
例如,直线可以用两点间的距离公式,圆则需要知道圆心坐标和半径。 7. **用户交互**:为了提供良好的用户体验,我们需要处理用户的各种输入,如选择颜色、线条宽度、形状类型等,并动态更新画布。 这个项目不仅...
总的来说,这个C++ MFC画图板项目是一个很好的实践案例,它涵盖了图形用户界面的设计、事件处理、图形绘制以及颜色和样式控制等基础知识。通过分析和学习这个项目,开发者可以深入理解MFC的工作原理,提升Windows...
下面将详细解释其中涉及的关键知识点。 首先,我们需要了解Java Swing库,它是Java AWT(Abstract Window Toolkit)的一部分,用于构建图形用户界面。在这个项目中,Swing被用来创建窗口、按钮、菜单等组件。例如,...
下面将详细讲解这两个知识点。 首先,我们来看“纯虚函数”。在C++中,虚函数是用于实现多态性的关键机制,允许子类重写基类的方法。而纯虚函数则是在基类中声明的,不提供具体实现,只定义接口,强制要求任何派生...
通过以上知识点,你可以创建一个功能完备的Java画图板程序,允许用户自由地绘制、选择颜色、擦除,并保存或加载他们的作品。在实际开发中,还可以添加更多的功能,如图层管理、撤销/重做、工具选择等,以增强用户...
1. **画直线**:用户可以通过鼠标点击并拖动来绘制直线,这通常涉及到监听鼠标事件,计算两点之间的距离并绘制线段。 2. **画圆形**:用户可以选择画圆,通过点击起点和拖动来确定半径,这需要处理鼠标按下、移动和...
这个“java画图板代码”项目很可能是基于Java的AWT(Abstract Window Toolkit)或Swing库来创建的,这两个库为开发者提供了构建图形界面的工具。下面将详细讨论涉及的知识点。 1. Java AWT和Swing库: AWT是Java最...
下面我们将分别探讨Java和C#在实现画图板时的关键知识点。 **Java绘图技术** 1. **Java AWT 和 Swing**:Java中的图形用户界面(GUI)构建主要依赖于Abstract Window Toolkit (AWT) 和 Swing 框架。AWT提供基本的...
在“基于MFC的画图板实现”项目中,主要涉及以下几个关键知识点: 1. **CWinApp**:这是每个MFC应用程序的入口点,负责初始化、运行和结束应用程序。在这个项目中,我们需要创建一个继承自CWinApp的类,用于设置...