El uso de componentes de interfaz Java y la realización de funciones de dibujo simples.

Mi experiencia con el código es solo un curso de Python de un semestre, y entré en contacto con Java por primera vez hoy. Si hay algo que no está bien escrito o no es riguroso, ¡espero que puedas criticarme y corregirme!

Tipo 1
Elementos clave: atributos (variables), métodos (funciones)
que deben usarse en el proceso de implementación del programa y generarán una gran cantidad de datos.Si queremos almacenar estos datos, necesitamos usar variables. Cómo lograr el objetivo requiere el uso de métodos.

Método para crear una clase:
nombre de clase de clase pública { }

1.1 属性(变量)
变量分为全局变量和局部变量,全局变量就是一个变量名在整个程序中都指向一个变量;而局部变量是只在某一个方法中指向一个变量。
变量类型,一开始我以为java中的数据类型和python相似,分为整型,浮点,字符串等,但是查了一下基本数据类型好像不是这几个?这个地方学的不是很明白,希望以后能搞清楚。
变量名,变量名是变量的必备要素。之前听说变量名最好不要使用拼音,查了一下发现应该是拼音容易模糊,因为一个相同的拼音很有可能指代两个不同的意思,造成混淆。
1.2 方法(函数)
方法可以看作是程序的大脑和手,接受输入,进行运算,然后产生输出(但是也不一定要同时具备这三个条件)。

2 Interfaz La
interfaz es similar a la clase, y su función es reservar un método de acceso para el trabajo a realizar en el futuro. Por ejemplo, configuramos el marco general del programa antes de que comience la tarea, pero los métodos específicos de cada parte pueden requerir que diferentes personas lo perfeccionen y completen en diferentes momentos, luego debemos reservar interfaces para las partes sin terminar. (Al igual que cuando estaba escribiendo este blog, primero enumeré el título, luego el subtítulo, y luego escribí algunos puntos clave debajo del subtítulo, y luego lo agregué en detalle después de completar el marco general. El subtítulo aquí puede considerarse como me La "interfaz" a la izquierda, y el punto clave dentro es el método abstracto que necesito escribir en detalle más adelante)

2.1 类与接口的区别
接口中所有的属性都是public,static,final的,类需要增加这些属性时需要在class前加限定词。
2.2 调用接口的方法
首先需要创建一个放置接口的子类,然后导入并编写接口的全部抽象方法。

调用方法:
public class 子类名 implements 接口名1,接口名2,……{
}

3 El uso del detector de
eventos Fuente de eventos, método de monitoreo de acciones, clase de procesamiento de eventos

	3.1 事件源
	事件源就是发生动作的组件,比如“鼠标划过窗体”这一事件发生在组件窗体中,所以在这里窗体就是事件源。窗体可以接收鼠标的动作有长按、点击、松开、进入窗体、离开窗体,其中点击往往是伴随长按和松开同时发生的。
	3.2 动作监听方法
	在实例2“简单绘图功能实现”中,我们使用到的动作监听方法是MouseListener和ActionListener两个接口。想要使用这两个接口首先要创建一个子类来实现它们(这里创建的是DrawMouse)。
	DrawMouse mouse=new DrawMouse();
	jf.addMouseListener(mouse);
	3.3 事件处理类
	创建了子类DrawMouse后,我们就可以在对应的抽象方法中获取鼠标动作、文本内容,然后作出响应了。
	//获取按钮上的内容(但是如果按钮没有文字怎么办?)
	String name = e.getActionCommand();
	//获取鼠标点击/松开时的点对应的坐标
	x1 = e.getX();
	y1 = e.getY();

如果需要在两个类中传递变量的话,可以使用以下方法
//在DrawFrame下
mouse.g=g;
//在DrawMouse下
public Graphics g;
通过此法可以把DrawFrame中的g传递到DrawMouse中

4 Demostración práctica de proyectos

4.1 界面组件使用
	4.1.1 主函数
	主函数的作用:自己调用自己,让程序运作起来
	public static void main(String[]args){
	DrawFrame df=new DrawFrame();
	df.showFrame();
	}
	4.1.2 窗体的建立
	窗体大小、窗体位置、窗体可见、布局格式
	//窗体大小,括号中是窗体的长和宽,单位是像素
	jf.setSize(600,600);
	//设置窗体位置,括号中null代表居中放置,其他摆放位置可以通过按住ctrl,然后点击setLocationRelativeTo查看其源代码
	jf.setLocationRelativeTo(null);
	//设置窗体布局格式,先用布局方法创建一个布局变量,然后将这个变量设置为窗体的布局格式
	FlowLayout flow=new FlowLayout();
	jf.setLayout(flow);
	//设置窗体可见(需要注意的是所有可视化组件的添加都需要放到该代码的前面,否则无法正常显示组件)
	jf.setVisible(true);
	//设置窗体退出操作,3代表的是EXIT_ON_CLOSE,即退出后关闭
	jf.setDefaultCloseOperation(3);
	4.1.3 组件
	文本框、按钮
	//添加文本框
		//创建文本框
		JTextField jtf1=new JTextField();
		//文本框不能直接设置大小,需要用Dimension方法创建一个尺寸变量,然后才能将文本框设置为该变量中的尺寸
		Dimension dm=new Dimension(30,30);
		jtf1.setPreferredSize(dm);
		//将文本框添加到窗体jf中
		jf.add(jtf1);
	//添加按钮
		//创建按钮
		JButton jbu1=new JButton("直线");
		//将按钮添加到窗体中
		jf.add(jbu1);
		//为按钮赋予功能:参见3 事件监听器的使用
4.2 简单绘图功能实现
	4.2.1 绘制直线
	首先分析绘制直线的动作,点击鼠标,拖动鼠标,松开,然后就画好了一条线。在这个过程中,我们只需要使用监听器收集到鼠标点击的坐标和鼠标松开的坐标,然后将两点连接起来就可以得到一条直线了。
	//为窗体赋予绘画功能
	Graphics g=jf.getGraphics();
	//将点(x2,y2)与(x3,y3)连接起来
	g.drawLine(x2, y2, x3, y3);
	4.2.2 绘制椭圆
		4.2.2.1按照鼠标拖动方向绘制椭圆
		g.drawOval(flag, flag, flag, flag);
		通过上面这段生成椭圆的代码我们可以看出,在Java中生成椭圆需要四个数据,分别是椭圆矩形左上角的点的横纵坐标、椭圆矩形的长和宽(椭圆的长轴和短轴)。所以说如果我们想要按照鼠标拖动方向绘制椭圆,就必须选取点击和放开两个点中的横纵坐标都取最小的那个点作为椭圆矩形左上角的点。
		x4 = Math.min(x1, x2);
		y4 = Math.min(y1, y2);
		g.drawOval(x4, y4, Math.abs(x1 - x2), Math.abs(y1 - y2));
	4.2.3  用线段和点绘制三角形
	flag(指针)的使用
	4.2.4 改变画笔颜色(以rgb坐标改变颜色)
	建立三个文本框分别收集rgb的三个坐标,然后使用以下方法实现该功能
	r1=Integer.parseInt(jtf1.getText());
	g1=Integer.parseInt(jtf2.getText());
	b1=Integer.parseInt(jtf3.getText());
	g.setColor(new Color(r1, g1, b1));

5 Diferencias entre Java y Python
Python es más conciso y sencillo, fácil de entender y tiene una poderosa biblioteca de terceros. Hay muchas funciones que se pueden importar directamente desde la biblioteca de terceros. Y el formato de escritura de Python también es más "limpio", por ejemplo, Python no tiene las molestas llaves en Java.

Supongo que te gusta

Origin blog.csdn.net/weixin_44710412/article/details/111147999
Recomendado
Clasificación