Javaインターフェースコンポーネントの使用と単純な描画機能の実現

私のコード経験は1学期のPythonコースに過ぎず、今日初めてJavaに触れました。うまく書かれていない、または厳密でないものがある場合は、私を批判して訂正していただければ幸いです。

タイプ1
重要な要素:属性(変数)、メソッド(関数)
は、プログラムの実装プロセスで使用する必要があり、大量のデータを生成します。これらのデータを保存する場合は、変数を使用する必要があります。目標を達成する方法には、メソッドの使用が必要です。

クラスを作成する方法:
public class class name { }

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

2インターフェース
インターフェースはクラスに似ており、その機能は、将来完了する作業のためにアクセスメソッドを予約することです。たとえば、タスクを開始する前にプログラムの全体的なフレームワークを設定しますが、各部分の特定の方法では、さまざまな人がさまざまな時間にプログラムを改良して完了する必要がある場合があり、未完成の部分のインターフェイスを予約する必要があります。(このブログを書いているときと同じように、最初に見出しをリストし、次にサブタイトルをリストし、次にサブタイトルの下にいくつかの重要なポイントを書き、フレームワーク全体が完成した後に詳細に追加しました。ここのサブタイトルは次のように見なすことができます。 me左の「インターフェース」、そしてその中の重要なポイントは、後で詳細に書く必要がある抽象的なメソッドです)

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

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

3イベントリスナーの使用
イベントソース、アクション監視メソッド、イベント処理クラス

	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実用的なプロジェクトのデモンストレーション

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 JavaとPythonの違い
Pythonは、より簡潔でわかりやすく、理解しやすく、強力なサードパーティライブラリを備えています。サードパーティライブラリから直接インポートできる関数は多数あります。また、Pythonの書き込み形式もより「クリーン」です。たとえば、PythonにはJavaの煩わしい中括弧がありません。

おすすめ

転載: blog.csdn.net/weixin_44710412/article/details/111147999