Java week12.1
2025.05.20 Tue AM 10:03 ・ 91Minutes 52seconds
2025 年 05 月 20 日 周二 上午 10:03 ・ 91 分钟 52 秒
ZHANG YIWEN
张一文
Attendees 1 00:00
与会人员 1 00:00
봤을까요? 한 마지막에 했던 문제 한번 다시 해볼 건데 오늘 거기에 더 추가할 내용이 있어서 우리 키보드 번호 1 2 3 4 눌러서 빨간 노트 파나보 눌러서 바뀌게 색깔 백그라운드 다 바꾸는 거 있잖아요.
我们是不是可以再看一看?我们将重新做最后一次练习,因为今天我还想在那里添加一些内容。比如我们可以通过按下键盘上的 1、2、3、4 号键来改变笔记本的背景颜色。
키보드 입력 이벤트 한번 해볼게요 하고 거기에서 추가 내용이 있기 때문에 하셔야지 제가 거기에 더 추가
我们来尝试一下键盘输入事件,并且因为还有一些额外内容需要补充。
Attendees 2 00:27
出席者 2 00:27
적으로 설명을 드릴 게 있어요. 한번 넣어보시고 76제는
我想详细地给你解释一下。请尝试一下,第 76 题是
Attendees 1 00:38
与会者 1 00:38
이렇게 백그라운드에 있으면 기본 색깔은 아무거나 넣으시고 1번 눌렀을 때 색깔 바꾸기 하고 가능하시면 코드도 한번 숫자 바뀔 때 한번 넣어보실래요 아니면 빨간색 파란색 이렇게 하셔도 되고요.
如果在背景中,您可以放置任何默认颜色,并且当按下 1 时更改颜色。如果可能的话,也可以添加一些数字变化的代码,或者直接使用红色和蓝色等颜色。
키보드 받은 문자 값도 한번 넣어보세요.
请将键盘输入的字符值也尝试一下。
Attendees 1 01:04
参加者 1 01:04
이거 문제 기억이 잘 안 나면 요거 이거 맞나요? 이거 이거 문제 예제 7번입니다.
这个问题我记得不太清楚,是这个对吗?这是第 7 题的问题。
7번 확인하시면서 하시면 되겠습니다. 될 수 있으면 안 보고 한번 해보시고요.
请您查看第 7 题。如果可以的话,请先尝试不看答案。
Attendees 1 02:09
出席者 1 02:09
오늘 그래서 이벤트는 다 할 거거든요.
今天我们将全部处理这些事件。
Attendees 2 02:14
与会者 2 02:14
이 마우스 이벤트 키보드 이벤트 포커스 처리하고
处理鼠标事件、键盘事件和焦点
Attendees 2 03:05
出席人员 2 03:05
여기
这里
Attendees 2 03:28
听众 2 03:28
될 수 있으면 일단 처음부터 새로 만들어 볼게요. 나중에 아니 안 하셔도 돼요.
如果可能的话,我将从头开始重新创建。之后如果不行,也不要紧。
Attendees 2 13:34
参会人员 2 13:34
실수 있으면 저렇게 쉽지 않을 그렇게 쉬울 것 같지는 않아 하나님이 되어 있을 것 같은데 안 하는
如果出现错误,可能并不会那么容易,看起来似乎并不会那么简单,好像上帝已经存在,但并未采取行动
Attendees 2 13:49
参会者 2 13:49
팀장님들은 이름이 혹시 이미 다른 자라에 들어 있으면 그래서 그 그래서 안에서 세트 카트를 생각하고 파일명으로 관리 제 생각은 크게 잘 모시고
团队负责人们,如果姓名已经存在于其他文件中,因此,他们会考虑在该文件内部设置购物车,并以文件名进行管理,这是我的看法
Attendees 2 14:44
出席者 2 14:44
그래서 그렇게 하고 싶지 않은데 냐면 저번 주에 컨테이너스를 이제 이유가
所以我不想那样做,因为上周容器是现在的原因
Attendees 2 15:02
出席者 2 15:02
이거도 문제는 안 되는데
这个也没问题
Attendees 2 15:46
参会者 2 15:46
고 생각보다 또 저번 주에 그랑 잘하고 왔는데 그래도 막상 하니까 고요
我本来想得比较简单,但上周也做得不错,尽管现在开始时还是感觉有些安静
Attendees 2 17:16
2 号参与者 17:16
디스크라는 라키 키프레스나 이런 것도 이미 쓰고 있거든요.
我已经在使用磁盘作为类似键盘按键这样的东西了。
아 그래서 이름을 또 이세스가 되고 있는
啊,所以名字又变成了伊塞斯
Attendees 2 17:35
参会者 2 17:35
여러분 프로젝트 만들고
大家创建项目
Attendees 1 17:38
参会人员 1 17:38
자바 클래스 만들 때 이름은 될 수 있으면 자기만의 고유한 이름으로 만들어 주세요.
创建 Java 类时,请尽可能使用自己独特的名称。
우리가 보통 이그 젠플 01 이렇게 한 것처럼 또는 날짜 대이 05일 이렇게 해서 중복되지 않을 것 같은 이름으로 선언해 주세요.
就像我们通常使用的例如"01"或者"05 日"这样的方式,请以不太可能重复的名称进行声明。
예를 들어서 이미 제 프레임이라든지 자바 스윙에서 사용할 것 같은 개 텍스트 개 키 아니면 백그라운드 아니면 t 프레스 이건 이미 그 안에서 사용하는 메소드들이잖아요.
例如,在我的框架或者 Java Swing 中,像这些文本、这些键,或者背景,或者按 T 键,这些都是已经在其中使用的方法。
아니면 예를 들어 내가 이걸 꼭 굳이 쓰겠다 하면 본인의 이름 하나 키 프레스 이런 식으로 넣는 건 괜찮아요.
或者,例如,如果我一定要使用,可以把自己的名字或者按键这样的方式放进去。
근데 그냥 똑같이 이렇게 쓰면 어디선가 쓰여질 가능성이 크기 때문에 컴파일러가 그 파일을 퍼블릭으로 돼 있기 때문에 다 찾을 수가 있잖아요.
因为如果这样直接写的话,在某处被使用的可能性很大,编译器可以因为该文件是公开的而找到所有内容。
그러다 보니 충돌이 날 수 있어서 될 수 있으면 고유 이름으로 프로젝트를 만드실 때 고유 이름으로 본인의 작업 클래스를 만드시면 좋을 것 같아요.
所以可能会发生冲突,建议在创建项目时尽量使用独特的名称来创建您自己的工作类。
그래서 가끔 안 될 때는 그걸 확인하시고 이름이 조금 의심스럽다 할 때는 새로 만드는 게 좋습니다.
所以有时候如果无法确认时,当对名称有些许怀疑时,最好重新创建。
Attendees 1 18:51
与会者 1 18:51
계속 그거 연연해서 붙들고 앉아서 어디가 틀려 찾고 있으면 못 찾는 경우가 많아서 그럴 때는 코드에 문제가 없다면 그거밖에 없어요.
如果一直纠结于此,拘泥于找出哪里出错,往往会一无所获。所以如果代码本身没有问题,就别在这上面浪费太多时间了。
Attendees 1 19:06
参会者 1 19:06
됐어요 넘어가도 될까요? 아니면 좀 더 시간을 줄까요?
算了吧,可以过去吗?还是给你们多一点时间?
다 한 사람 손 들어 볼까 다 한 사람 생각 아직 다 못했어요.
我们来看看已经完成的人,还有人还没想完。
다시 좀 시간 드릴게요. 이게 왜 어렵지 잠깐 그럼 같이 해볼까 왜 맨날 이거 그냥 잘하고 갔는데 예진아 그치 안 돼 오늘은 왜 그럴까 그러면 다들 뭐 몰라서 못했을 것 같진 않고 뭔가 꼬여서 문제가 생겼을 것 같은데 일단 체크부터 한번 해볼게요.
再给你一些时间。这为什么很难呢?稍等,我们一起看看。为什么每次都能轻松完成,对吧,叶真?不行啊,今天为什么会这样?可能大家不是因为不懂而没做成,而是遇到了一些纠结的问题,我先来检查一下。
이거를 해야지 다음 문제를 다음 여기다 추가적으로 넣을 수 있는데 이게 안 되면 안 되는데 먼저 프로젝트 만들고 이거를 같이 해볼까요?
只有这样才能在下一个问题中添加额外的内容,如果这个解决不了,就行不通。不如我们先创建一个项目,一起来看看?
그러면 너무 시간이 오래 끌릴 것 같은데
这样的话可能会拖延太长时间了
Attendees 1 20:07
参会人员 1 20:07
먼저 프로젝트부터 한번 제가 만들 테니까 여러분도 같이 따라 해보실래요?
我们先一起创建一个项目,你们也跟着一起操作看看怎么样?
그러면 오늘 이그잼플 0520으로 하겠습니다.
那么今天我们将使用例程 0520。
프로젝트 만들고 그다음에 여기서 소스를 클래스 만들게요.
创建项目,然后在这里创建源代码类。
이름은 제 이름으로 이렇게 하겠습니다. 그리고 퍼블릭 선언하고 피니시 하겠습니다.
我将以我的名字来命名。然后声明为公共类并完成。
이름은 될 수 있으면 본인의 클래스를 만드시고 노드 림포에서 리파이어 하겠습니다.
如果可能的话,请创建自己的类,我将在节点林波上进行重构。
Attendees 1 21:00
参会人员 1 21:00
자바 데스크탑 하고 준비가 된 상태에서 제일 먼저 해야 될 게 자 우리 하나 이그잼플이라는 클래스를 만들었고 얘는 자바 스윙에서 익스텐즈를 받을 거라 익스텐즈 제2 프레임을 가져올 거예요.
在准备好 Java 桌面开发时,我们首先要做的是创建一个名为 ExamPle 的类,它将继承自 JFrame,这是 Java Swing 中的一个框架。
그래서 스윙을 쓸 거니까 인폴트 해줄게요. 인폴트 자바 스 스윙 알겠습니다.
由于我们将使用 Swing,所以我们需要导入相应的包。导入 java.swing 包,明白了。
그래서 일단은 내가 만들어 놓은
所以首先是我已经制作好的
Attendees 1 21:41
参会人员 1 21:41
하나 ex를 생성자를 불러오도록 하겠습니다. 그래서 생성자를 불러올 건데 생성자가 없어도 다행히 아무것도 지금 뜨지는 않지만 생성자가 자동으로 디폴트로 만들어지죠.
我将创建一个 Hana Ex 的构造方法。所以我要调用构造方法,即使没有构造方法,现在也不会显示任何错误,因为构造方法会自动默认创建。
그렇지만 우리 내 거 클래스인 하나 ex를 생성자를 한번 만들어 볼게요.
不过,我将为我的类 Hana Ex 创建一个构造方法。
접근할 수 있도록 퍼블릭으로 선언하고요. 제2 프레임으로 만들어지면 가장 먼저 해야 될 초기화를 해줘 초기화합니다.
将其设置为公共的,以便可以访问。当创建第二个框架时,首先需要进行初始化。
제일 먼저 초기화 해야 될 함수 네 가지가 있다 했어요.
我之前说过,有四个首先需要初始化的函数。
뭐라 했죠? 얘기해 주세요. 뭐 해야 돼요? 셀 사이즈부터 네 가지 기억나시죠?
他们说了什么?请告诉我。我该做什么?还记得四种单元格大小吗?
일단은 좀 크게 한 5000 정도로 만들어 볼게요.
那么我们先尝试把它做大一点,大约 5000 左右。
새 타이틀 한번 만들어 볼게요.
让我们一起创建一个新的标题。
Attendees 1 23:04
与会者 1 23:04
만들었고 그다음에 x표를 눌렀을 때 꺼질 수 있도록 s 디폴트 클로즈 오퍼레이션을 하겠습니다.
我创建了它,然后设置了默认的关闭操作,这样点击关闭按钮时窗口就能关闭。
오케이 프레임 이게 원래 안 뜨나
好的,这个框架原本是不显示的吗?
Attendees 2 23:27
出席人员 2 23:27
그러지 이따 안 먹었구나
原来你还没吃饭啊
Attendees 1 23:46
参会者 1 23:46
네 그리고 맨 마지막에 셋트 비저블 수료하겠습니다.
是的,我将在最后设置为可见。
여기 문제없죠 지금까지 아무것도 없는 상태에서 먼저 화면 출력하는 거 했습니다.
好的,现在我们从零开始,先把屏幕显示出来。
우리 여기에서 컨테이너를 한번 만들어 봐야겠죠 그러면
那么在这里我们应该先创建一个容器。
Attendees 1 24:11
与会者 1 24:11
1번으로 할까 0번으로 하겠습니다. 0번 컨테이너 생성해 봅시다.
我们将使用 1 号或 0 号。让我们创建 0 号容器。
컨테이너 생성할 때 원 프레이너 내가 c라고 만들어 놓고 컨테이너를 생성을 하기 위해서는 기본적으로 제 프레임에서 지원해 주는 겟 콘텐츠 펜을 호출하시기만 하면 됩니다.
创建容器时,我将 c 原样创建,要创建容器,基本上只需调用 JFrame 提供的 getContentPane 方法。
이게 콘텐트 펜을 했습니다. 컨테이너를 왜 빨간색을 땄을까 철자가 틀렸나요?
这是我进行了内容面板操作。为什么容器被标记为红色?是不是拼写错误了?
컨테이너 일단은 오류가 나는지 확인해 보고 컨테이너가
容器首先检查是否会出错,然后是容器
Attendees 2 24:56
出席者 2 24:56
호출이 아니다. 그러면
不是调用。那就是
Attendees 1 25:02
参与者 1 25:02
상태에서 일단 뒤에 부분을 좀 넣어볼게요. c 셋 먼저 세팅을 해야죠.
我先在这个状态下在后面部分添加一些内容。我们首先要设置 c。
백그라운드 칼라를 한번 넣어보겠습니다. 칼라를 오렌지로 두겠습니다.
我们来尝试添加一个背景颜色。我将把颜色设为橙色。
오렌지 지금 이제 밑에서 사용하니까 컨테이너가 빨간 줄이 지워졌네요.
现在橙色已经使用,所以容器的红线已经消失了。
그래서 컨테이너가 만들어지고 백그라운드를 하나 생성을 했습니다.
因此创建了容器,并生成了一个背景。
컨테이너에 레이아웃 굳이 뭐 둘 필요 없어서 생략할게요.
容器的布局我就不特意设置了,就省略掉。
그러면 일단은 이렇게 만들어졌으니까 얘를 키보드 입력을 받도록 한번 해볼까요?
既然已经这样创建了,那我们来尝试让它接收键盘输入吧?
이벤트 컨테이너 이벤트
事件容器事件
Attendees 1 25:52
参与者 1 25:52
컨테이너 이벤트 만들기 위해서 우리 뭐 해줘야 돼요?
为了创建容器事件,我们需要做什么?
만약에 키보드 리스너를 받을 거야 그러면 어떤 걸 애드를 해야 되죠?
如果要接收键盘监听器,那么我们应该添加什么?
에드 에드하고 리스너 중에 그 가운데에 키를 받을 거면 키 리스너 마우스를 받을 거면 마우스 리스너를 받을 거야 이렇게 됐어요.
如果你想接收事件,就使用相应的监听器:如果要接收键盘事件,就使用键盘监听器;如果要接收鼠标事件,就使用鼠标监听器。就是这样。
그런데 여기에 지금 뭘 만들지 모르겠어. 내가 모르는데 여기에 내가 만들 클래스를 키보드 입력 키보드 입력 이벤트를 추가해 봅시다.
现在我不知道要做什么。我不知道,让我们在这里添加一个键盘输入类,添加键盘输入事件。
그럼 내가 만든 키보드를 입력을 추가를 하려면 클래스가 필요해.
那么要添加我创建的键盘输入,我需要一个类。
어쨌든 여기다가는 이벤트를 내가 만든 걸 밑에서 하게 될 겁니다.
无论如何,我将在下面执行我创建的事件。
그러면 일단은 키보드 입력은 밑에서 한다 치고 그러면 여기서 키보드 입력을 받기 위해서는 우리 반드시 해줘야 된다고 했어.
那么首先,我们假设是在下面进行键盘输入,为了接收键盘输入,我们必须执行某些操作。
키보드 입력을 받아서 처리하기 위해 반드시 두 개의 호출이 필요한데요.
为了接收和处理键盘输入,必须调用两个方法。
세팅이 필요한데 뭐가 있었죠? 혹시 기억나요? 키보드 마우스 입력은 상관이 없는데 키보드 입력을 할 때는 세팅을 뭔가 해줘야 돼요 반드시 뭐였죠?
还需要进行设置,但具体是什么来着?您还记得吗?虽然键盘和鼠标输入没有关系,但在进行键盘输入时,确实需要进行某种设置。到底是什么来着?
혹시 기억나요?
您还记得吗?
Attendees 1 27:23
与会者 1 27:23
뭘 해줘야 돼? 포커스가 돼 있어야 돼. 그러니까 우리가 예를 들어 포커스라는 건 뭐냐면 그 창에서 어떤 게 활성화가 돼야지 키보드 입력을 할 수 있어요.
我们需要做什么?必须要有焦点。也就是说,举个例子,焦点是指在那个窗口中哪些内容被激活,这样才能进行键盘输入。
예를 들어서 여러분 이름도 있고 패스워드 창이 여러 개가 있잖아.
例如,你有一个名字输入框和多个密码框。
그럼 내가 키보드 입력을 하면 어디에 글자가 들어갈 건지를 먼저 포커스가 되어 있어야 돼요.
这时,当我进行键盘输入时,必须首先将焦点放在要输入文字的地方。
그럼 내 컨테이너에 포커스가 되어 있어야 키보드 입력을 받으실 있잖아요.
那么只有当我的容器获得焦点时,才能接收键盘输入。
예를 들어 이름이 있고 패스워드가 있는데 내가 막 패스워드를 이름 창에다 쓰면 이름 내가 원하는 마음으로는 내가 패스워드에다 넣고 싶은데 이름 창에 막 드면 안 되죠 어떻게 해야 돼요?
举个例子,有一个名字输入框和密码输入框,如果我不小心在名字输入框中输入了密码,而我希望密码应该在密码输入框中输入,这样显然是不对的。那么我该怎么办呢?
내가 어디로 지정할 건지 포커스를 해줘야 돼요. 그럼 반드시 포커스를 해줘야 되는데 포커스를 어디다가 해야 돼 어디다 해야 돼 c에다 해야 되죠.
我需要指定焦点的位置。必须指定焦点,那么我应该把焦点放在哪里?必须放在 c 上。
왜 어디다가 만들 거니까 c에다가 에드 추가를 했으니까 그러면 c에다가 뭘 해줘야 돼?
为什么要在某个地方创建?因为已经在 c 上添加了内容,那么接下来要在 c 上做什么?
셋 여러분 이거 한 거 잘 들어 있는지 보세요.
各位,请检查一下这个是否已经正确记录。
Attendees 1 28:27
参会人员 1 28:27
포커 서블이 들어 있어야 돼 얘를 먼저 트루로 만들어 주고 그다음에 어떻게 리카이어를 리퀘스트를 해야 되죠?
首先应该有焦点服务,先将它设置为真,然后再如何发出请求?
리퀘스트를 포커스를 해 주어야지만 내가 키보드 입력을 하겠다고 허락을 해 주는 거예요.
只有请求获得焦点,我才会允许进行键盘输入。
됐어요. 그러면 여기까지 이렇게 된 상태야. 그런데 내가 이 컨테이너를 컨테이너를 일단 실행부터 해볼게요.
算了。那就是目前的状态了。不过我先尝试运行这个容器。
오류가 났으니까 오늘부터 이거 내가 지금 아직 키보드 입력도 안 했는데 이렇게 글자를 대충 써놨으니까 오류가 당연히 난 것 같고 그러면 이제 여기까지 이렇게 해놨는데 이 컨테이너가 내가 만들 이제 만들을 이벤트를 추가를 할 건데 이벤트를 추가하는 방법이 여기가 1번 1번 그다음에 만드는 위치예요.
出错了,因为我现在还没有输入键盘,但是随意写了些文字,所以错误是很正常的。那么现在我已经做到这一步了,接下来我将要为这个容器添加事件,添加事件的方法是在这里,第一个,然后是创建的位置。
여기가 2번 그다음에 여기 3번, 그다음에 여기 4번이 있어요.
这里是 2 号,然后这里是 3 号,接下来是 4 号。
그런데 제가 원래는 4번에다 만들기 원했었는데 제 프레임을 쓰다 보니까 공용으로 전역 변수를 쓰려고 보다 보니 여기다가 이제 전역으로 얘를 컨테이너를 옮길 거예요.
本来我是想在 4 号上创建,但是在使用我的框架时,当我想使用全局共享变量时,现在我将把这个容器移到全局。
Attendees 1 29:45
听众 1 29:45
이렇게 얘 하나만 옮겨도 되고 다 한꺼번에 옮겨도 되고 그거는 여러분 마음대로 하세요.
无论是只移动一个还是一次性移动全部,都完全由你们自己决定。
일단 저는 컨테이너 c를 그냥 처음 생성할 때만 만들어 놓고 선언은 이 밑에서 할게요.
首先,我将只在一开始创建容器 c,然后在下面进行声明。
이렇게 해서 전역으로 컨테이너를 썼단 말이죠. 그러면 이 전역으로 c를 접근할 수 있는 위치는 어디냐면 접근할 수 있는 위치는 어디 1번 여기 저녁으로 쓰려면 위치 여기 1번 1번 그다음에 2번 3번 4번 중에 저녁으로 쓸 수 없는 위치가 어디예요?
这样就是全局使用了容器。那么,可以访问这个全局 c 的位置在哪里呢?可以访问的位置是哪里?第 1 个位置,如果要在晚上使用,位置在这第 1 个,第 1 个,然后是第 2 个、第 3 个、第 4 个,那么哪些位置不能在晚上使用?
4번이에요. 그래서 원래는 제가 4번으로 하고자 했었는데 얘 때문에 4번을 못하게 됐죠.
是我的 4 号位。本来我是想放在 4 号位的,但因为它的缘故,我无法使用 4 号位了。
그래서 어디다가 하라고 했어요. 여기 1번에다 해야 돼요.
所以我被告知要放在哪里。这里必须放在 1 号位上。
2번에다 해야 돼요. 3번에다 해야 돼요. 2번이나 3번 둘 중에 하나 하시면 돼요.
你得在 2 号上做。要在 3 号上做。2 号或 3 号两者之间选一个就行。
근데 저는 2번에다 할게요. 왜 대체적으로 씨도 그렇고 모든 프로그램 메인이 제일 밑에 있거든요.
但是我将在 2 号上做。因为总的来说,无论是什么类型的程序,主程序都通常位于最底部。
그래서 그냥 공통으로 그렇게 하고 싶어요. 그냥 제가 그래서 저는 2번에다 만들 텐데요.
所以我只是想这样共同进行。所以我会在第 2 项中创建。
Attendees 1 31:00
与会人员 1 31:00
여러분들은 2번이나 3번 제가 허락은 해드릴 해드리겠습니다.
我会允许你们进行 2 次或 3 次尝试。
일단 그래서 만약에 만드실 때 1번에다 만드시면 안 되겠습니다.
首先,如果你们制作的话,不应该在选项 1 上进行。
4번도 안 되겠습니다. 그러면 이제 여기다가 내가 뭐라고 만들 거냐면 내가 새로 만들 이거 일단 지우지 말고 2번에다가 아이고 됐다.
4 次也不行。那么现在我想在这里做些什么,先别删除这个,放在第 2 个上面,哎,算了。
2번에다가 내가 키 프레스 에 해당되는 이벤트를 넣고 싶어.
我想在第 2 个上面添加与键盘按压相关的事件。
그래서 여기다가 3번 키보드 입력 이벤트를 만들 거야.
所以我要在这里创建第 3 个键盘输入事件。
이벤트를 만들어 생성해 봅시다. 그래서 키보드 입력으로 내가 만들 건데 얘는 클래스로 만들어야 돼요.
让我们创建一个事件。因此我要通过键盘输入来创建它,这个事件必须用类来实现。
그럼 내가 만든 거야. 마이 이름도 마음대로 할 수 있어요.
那就是我做的。我的名字我也可以随意改。
나 이렇게 하고 싶으면 이렇게 해도 돼요. 하나 키 이렇게 해도 됩니다.
如果我想这样做,就可以这样做。一个键也可以这样做。
그러면 나는 하나 키 리스너로 할게요. 하나의 키가 아니라 리스너니까 리스너를 써주는 게 좋겠어.
那么我会使用一个键盘监听器。既然不是单个键,而是监听器,我们最好使用监听器。
안 써도 상관은 없습니다. 근데 얘가 우리 임플리먼츠를 뭘로 할 거예요?
不写也没关系。但是这个我们要用什么来实现呢?
인플리먼츠를 뭘 해야 돼요?
我需要实施什么?
Attendees 1 32:09
参与者 1 32:09
키 리스너를 하기 때문에 키 리스너를 하기 위해서 이게 리스너인지를 구분해 주는 거야.
因为要进行按键监听器,所以需要识别这是什么类型的监听器。
클래스 이름에다가 아예 아이고 철자 틀렸어요.
我的天,类名拼错了。
Attendees 1 32:24
参会人员 1 32:24
리스
列表
Attendees 1 32:30
参与者 1 32:30
키리스 어 네 철자 안 틀렸죠 그래서 키 리스너를 만들 거기 때문에 될 수 있으면 내가 만든 이름은 얘랑 좀 비슷하게 만들어 주는 게 좋아요.
这个名称拼写没错吧,因为我们要创建一个键监听器,所以最好能让我创建的名称尽可能与之类似。
그래야지 리스너 리스너끼리 약간 얘가 하는 역할이 리스너의 역할이구나를 미리 알 수 있도록 그럼 내가 만들었는데 리스너의 경우는 반드시 키보드 리스너는 3개의 함수가 필요하다고 했어요.
这样就可以让监听器展示它应该承担的角色,让我们提前了解监听器的角色。那么,对于监听器,我特别强调过键盘监听器必须要有 3 个函数。
얘는 내가 만들지 않더라도 원래는 자바 스윙 자바 스윙 프로그램인 자바 x라는 프로그램을 깔면 얘가 이렇게 리스너를 하면 3개의 3개의 함수를 지정되어 있는 청사진과 같은 인터페이스로 되어 있는 청사진과 같은 함수를 자동으로 만들어주지만 우리는 이 클래스로 만들기 때문.
即便我不创建,原本在 Java Swing、Java Swing 程序,也就是 Java X 程序里面,当你设置监听器时,它会自动生成 3 个预定义的函数,就像是一个带有蓝图的接口。但是因为我们是通过类来创建的。
이클립스로 만들기 때문에 함수를 바로 우리가 생성해 주셔야 합니다.
因为使用 Eclipse,所以我们需要立即创建这个函数。
오버로딩을 해줘야 돼요.
必须进行重载。
Attendees 1 33:34
与会者 1 33:34
그런데 이름은 뭐냐면 허블릿 이거는 그냥 책 보고 참조를 하시고 시험 볼 때는 당연히 어쩔 수 없이 외워야 되는 부분이지만 키 프레스를 통해서 받을 수 있는 이벤트 키 이벤트 2를 받으셔서 어떻게 함수 3개를 만들어 놔야 돼?
但是关于名称,说实话,这本书只是参考,在考试的时候你必然需要记住,但是通过按键获取事件,按键事件 2,你应该如何创建 3 个函数呢?
일단 만들어 봅시다. 안 그러면 얘가 이 빨간 줄이 안 없어질 것 같아.
先做吧。不然这个红线似乎不会消失。
왜냐하면 얘는 반드시 이게 없으면 에러 처리가 나기 때문에 이거를 다 쓰지 않으면 요 빨간 줄이 없어지지 않아요.
因为它必须要有这个,否则就会出现错误处理,如果不写这个的话,这个红线就不会消失。
그래서 이렇게 쓰는 거야. 그래서 p 이벤츠 p 해서 만들고 또 하나 더 필요합니다.
所以就这样写。所以使用 p 事件 p 来创建,还需要再添加一个。
퍼블릭 태블릿 보이즈 키 타입 키 이렇게 해서 함수를 3개 만들어 놔야지 됩니다.
需要创建三个类型为键的函数,像是公共的平板电脑男孩键这样。
그러면 그럼에도 불구하고 얘가 안 됐으니까 이거 먼저 만들어 보겠습니다.
不管怎样,既然这个不行,我就先来做这个。
뉴 해서 내가 만든 아이를 호출을 해야 돼요. 그래서 그거 오타가 났나요?
我需要创建一个新的,然后调用我创建的对象。所以,是不是有什么打字错误?
오타 났는지 한번 체크 좀 해 주실래요?
能帮我检查一下是否有拼写错误吗?
Attendees 1 34:58
参会人员 1 34:58
퍼블릭 이벤트를 안 넣어서 그런 없다 디폴트 자바 awt의 이벤트 이벤트 를 넣어주고 그러면 여기 이제 됐고 그다음에 하나 키 인 리스너를 했더니 빨간 불이 떴어요.
因为没有添加公共事件,所以没有默认的 Java AWT 事件,如果添加事件的话,那么现在就可以了,然后当我添加了一个键盘监听器后,红色灯就亮了。
아무것도 없어서 그런가 그래서 실행이 지금 아무것도 없으니까 실행은 안 돼 이것만 되고 이름 하나 걸리니까 이거를 y로 바꿔볼게요.
是不是因为什么都没有,所以现在无法执行,只有这一个名称,我试着将它改为 y。
그리고 그래도 이름 뜨네 이거 실행을 이거 작성을 해야 될 것 같아요.
那么还是要写这个名称,看起来需要执行它。
일단은 여기까지 하시면은 이렇게 그냥 껍데기는 나옵니다.
现在为止,就像这样,基本的框架就出来了。
이제 이렇게 만들어 놓은 거에다가 우리가 이제 키보드 입력을 받아서 처리를 할 수 있도록 해주어야 합니다.
现在我们需要对已经制作好的内容添加键盘输入处理功能。
일단 됐고 키 프레스를 받아서 처리를 하기 위해서는 여기 프레스로 할 거예요.
首先,我们将通过按键事件来处理按键输入。
그래서 클래스를 만들어 놓은 것 중에서 우리가 키보드 입력을 받을 수 있도록 키 이벤트 키 프레스 함수만 호출할 거고 나머지 릴리즈와 타 타입은 사용하지 않아도 돼요.
因此,在我们创建的类中,我们将只调用键盘输入的键事件键按下函数,而不需要使用其他释放和其他类型的事件。
만약에 혹시라도 나 이런 거 다 귀찮다 하면 얘를 키 어댑터로 바꾸면 된다 했죠.
如果觉得这些都太麻烦,我们可以将其转换为键适配器。
Attendees 1 36:35
与会者 1 36:35
그래서 그 내용도 설명을 드렸고 일단은 내가 키 코드 값을 받고 싶어 그러면 어디에 데이터가 들어 있냐면 이 키 프레스라는 이 이벤트를 받을 땐 2에서 받아요.
所以我已经解释了那部分内容,如果我想获取键盘码值,那么数据存储在哪里呢?当你接收到键盘按下事件时,是在第 2 个地方接收的。
그래서 다시 말하면 키 이벤트에서 키보드 입력에 해당되는 데이터 값이 들어와요.
所以再说一遍,在键盘事件中会传入对应键盘输入的数据值。
그러면 얘가 정수로 받게 되면 만약에 정수로 코드 값을 키보드 입력을 받아서 정수로 받게 되면 2점 gt 코드가 나올 거예요.
如果接收到整数,如果以整数形式接收键盘输入的代码,那么就会出现 2 点的 gt 代码。
얘는 무슨 뜻이냐면 c언어에서 얘는 키보드 입력의 경우 우리 시연에서 프린트만 쓰잖아요.
这是什么意思呢,在 C 语言中,我们在演示时只使用打印。
키보드 입력 스캔f 해서 그럴 때 스캔f 받은 아이는 퍼센트 뭐로 써요?
当扫描键盘输入时,使用 scanf,那么接收到的值该如何用百分号等写?
퍼센트 d요 얘 퍼센트 d랑 똑같은 아이예요. 그럼 내가 얘를 캐릭터 키 코 있는 캐릭터니까 이렇게 할까?
百分号 d 和百分号 d 对我来说是一样的。那么我是不是可以这样处理,因为这是一个字符键?
캐릭터에서 키보드 입력을 받은데 그 키보드 입력을 받은 걸 내가 문자로 받고 싶어 그럴 땐 퍼센트 뭐예요?
在字符中接收键盘输入时,如果我想将这个键盘输入作为字符接收,那么百分号是什么?
문자로 입력을 받고 싶어 c예요. 그러면 얘는 퍼센트 c하고 같아요.
我想通过字符接收输入。那么这个和百分比 c 是一样的。
그러면 코드로 한 아이는 퍼센트 d와 같다고 보시면 돼요.
那么在代码中,这个和百分比 d 是一样的。
인트로 선언했어.
我声明了一个引言。
Attendees 1 37:57
参会者 1 37:57
캐릭터의 경우는 퍼센트 c로 입력을 받았구나. 그렇지만 값은 둘 다 같은 정수 값을 갖고 있고 변환만 그렇게 해 주는 거잖아요.
对于字符的情况,是通过百分号 c 来接收输入。但是,值实际上都是相同的整数值,只是转换方式不同。
그래서 여기다가 한번 실행을 해보자 이거야. 시스템 점 아웃점 프린트 ln 하셔서 ln 하셔서 코드 값은 뭔지 코드 값은 퍼센 c로 했다 했으니까 얘가 진짜 문자로 나오는지 한번 출력해보고 이렇게 키 코드 % d로 출력이 되는지 확인하고 그다음에 문자로는 얘가 뭘까 체크를 하기 위해서 문자도 한번 키 캐릭터를 받으라 이거죠.
所以我们现在来执行一下。使用系统输出打印 ln,打印 ln,因为代码值是通过百分号 c 来表示的,所以我们来看看它是否真的能输出为字符,然后通过百分号 d 来输出键盘码,并检查它的字符是什么。
그래서 일단 여기까지 다 한번 해보세요. 못한 사람은 여기 하시고 그다음에 오늘 추가적으로 설명할 내용이 여기 여기 부분이에요.
所以首先请大家尝试完成这里。没完成的人可以在这里完成,然后我将在这里补充今天额外需要讲解的内容。
우리 저번 시간에 인티저 투 스트링 캐릭터 2 스트링 그다음에 키 이벤트 이거 다 했었거든요.
我们在上节课已经学习了整数转字符串、字符转字符串以及键盘事件等内容。
그래서 그거를 그 의미를 조금 더 알아두시고 그래야 키보드 입력을 할 수 있거든요.
所以你需要先多了解这个意思,这样才能进行键盘输入。
여기까지 여러분들 각자 해보시고 다 되시면 이제 넘어갈게요.
请大家尝试一下,完成后我们就继续往下进行。
Attendees 1 43:22
与会者 1 43:22
여기까지 됐을까요? 여기에서 중요한 거는 자 오늘 여기에 키 코드하고 캐릭터 2개를 받았는데 여기서 오늘도 추가적으로 설명할 게 세 가지가 있습니다.
我们到此为止了吗?在这里面,重点是我们今天在这里接收了两个键码和字符,对于今天,我还有三个额外的要点需要说明。
먼저 인티저 인티저 점 투 스트링이라는 아이를 먼저 설명을 할게요.
首先,我将为大家讲解整数的 toString 方法。
우리 인티저 점 2 스트링을 활용하기 위해서는 코드부터 퍼센트 d에 해당되는 다시 말해서 숫자로 구성되어 있는 아이를 지금 출력을 하면 1을 키보드를 키보드 입력을 받으면 49라고 뜰 거예요.
为了使用整数的 toString 方法,我们从%d 开始,也就是说,如果输出由数字组成的内容,当我们从键盘接收输入时,1 会显示为 49。
그리고 문자로는 1이래요. 그런데 내가 이 포문을 써서 얘가 1인지 아니면 49인지를 체크를 해야 되는데 얘가 숫자인지 문자인지 먼저 구분을 확실히 해두셔야 되죠.
然后它是字符 1。但是我想通过这个循环来检查它是 1 还是 49,所以你必须先确定它是数字还是字符。
먼저 인티저 여기 인티저는 대문자로 실행을 하셔야 돼요.
首先要用大写的 Integer。
그러면 이 뜻은 뭐냐면 정수를 문자열로 바꾼다는 얘기예요.
那么这个意思是说要将整数转换为字符串。
그럼 내가 지금 정수가 키코드와 키 캐릭터 중에서 어떤 게 정수에 속합니까?
那么我现在想知道键码和键字符中哪个属于整数。
Attendees 1 44:47
与会者 1 44:47
네 키 코드가 정수예요. 그러니까 여기다 좀 써볼게요.
是的,键代码是整数。所以我将在这里写一下。
인티저 정수를 문자 문자열로 바꾸는 역할을 해주는데 무엇을 무엇으로 키 코드 값을 바꿔주는 거예요 그러면 키 코드 값이 49니까 49를 문자로 바꿔준단 말이야.
这段话是将整数转换为字符串的作用,将键码值转换为字符,如果键码值是 49,就将 49 转换为对应的字符。
그러면 이 얘기는 49라는 아이를 문자로 49로 바꾸는 거야.
也就是说,将数字 49 转换为字符 49。
우리가 1이라는 문자하고는 49는 다르지만 얘를 처리하는 방법에서 문자열로 바꿀 가능 프로그램 하다 보면 그럴 필요가 있을 때가 있잖아요.
尽管数字 1 和 49 不同,但在处理程序时,有时需要将它们转换为字符串。
예를 들어 49라는 숫자지만 49라는 문자로 바꿔서 텍스트 창에다가 띄우게 하고 싶을 때가 있을 테니까 그건 경우에 따라 다른 지 그러면 얘를 한번 해보자 이거죠.
例如,当你想将数字 49 转换为文本形式并显示在文本框中时,这种情况可能会有所不同,那么我们就来尝试一下这种情况。
시스템으로 한번 시스템 아웃 프린트 ln으로 인티저 이걸 한번 써볼게요.
我将用系统输出打印 ln 输出一个整数。
우리 인티저 점 to 스튜딩한 값을 여기는 코드라고 쓰세요.
请在这里编写将整数转换为字符串的代码。
코드 그래서 이 값을 한번 출력해 볼게요. 시작 똑같으니까 카피야로 그래서 실제로 얘 코드 값이 t 값이 나왔는지 체크를 해봅시다.
让我们来输出这个值。因为开头都一样,所以让我们来检查一下这段代码的值,看看 t 值是否已经出现。
Attendees 1 46:26
参会人员 1 46:26
이렇게 그래서 실행을 해보면 내가 1을 눌렀을 때 여기 보시면 창이 어떻게 나와요?
这样执行后,当我按下 1 键时,你可以看到窗口是什么样子?
60 a를 눌렀네요. 제가 a를 눌렀더니 65라는 코드 값이고 이 65라는 코드를 문자로 표현한 거예요.
嗯,按下了字母 a。我按下 a 后,它显示的是 65 这个代码值,这个 65 代码值对应的字符表示。
그러면 이거는 제가 여기다가 좀 추가를 했는데 이건 주석 처리하도록 하겠습니다.
那么这个是我在这里添加的,我将把它注释掉。
어쨌든 키코드 값을 받고 그 65라는 아이를 문자로 했어요.
无论如何,我获取了键码值,并将 65 这个值转换为字符。
그러면 얘가 진짜 문자인지 연산이 되는지 확인하면 되잖아.
那么我们可以检查这是否是真正的字符,看看是否可以进行运算。
여기 더하기 1을 한번 해볼게 예상했을 때는 65라는 숫자 더하기 1에서 66이 나와야 될 것 같지만 실행해 보면 어때요?
来,让我们尝试加 1 看看。按照预期,65 加 1 应该得到 66,但实际运行结果会是什么样呢?
실행해 보면 65 더하기 1이 아니라 6 5 문자열이기 때문에 연산을 못하고 어떻게 1이 출력이 된 거예요 다시 말해서 얘는 문자열이구나 이렇게 표현을 해 주시면 됩니다.
如果运行的话,65 加 1 并不是数学运算,而是因为 65 是字符串,所以无法进行运算。那么为什么会输出 1 呢?换句话说,这是一个字符串。
그래서 인티저 투 스트링은 정수라는 값을 문자로 표현한 거예요.
因此,Integer.toString()是将整数值转换为字符串表示。
그래서 연산이 안 됩니다. 얘의 결과는 연산이 불가능하다 이 뜻이에요.
所以无法进行运算。这意味着它的结果是无法运算的。
Attendees 1 47:39
参会人员 1 47:39
그다음에 두 번째 이번에는 캐릭터 to 스트링을 해보도록 하겠습니다.
接下来,第二个,这次我们来尝试字符转字符串。
얘는 무슨 뜻이냐면 캐릭터니까 뭐를 뭐로 바꿔주는 것 같아요?
这是什么意思呢?因为是字符,好像是可以把某些东西转换成某些东西。
어 캐릭터가 뭐죠? 문자 문자를 뭐로 바꿔주는 거예요?
啊,字符是什么?是把文字转换成什么吗?
문자열로 바꿔주는 거예요. 그럼 예를 들어서 내가 a를 넣었어 이렇게 a라는 문자를 넣으면 얘는 문자열로 바꿔주는 게 사실 뭐 별 차이가 없지만 a라는 문자는 a라는 문자열로 바꿀 수 있는데 내가 예를 들어 a b라는 문자 문자는 a b로 만들 수가 없어요.
将它转换为字符串。举个例子,如果我输入 a,这样的字符 a 会被转换为字符串,看起来似乎没什么大不了的,但是 a 这个字符可以转换为"a"这个字符串。而如果是 a b 这样的字符,就无法直接转换了。
왜냐하면 문자는 하나밖에 존재하지 않기 때문에 이렇게 이렇게 돼 있기 때문에 따로따로 하나씩 하나씩이잖아요.
因为字符只能单个存在,它们是分开的,一个一个的。
그래서 이 문자에 대한 값을 문자열로 처리하는 것은 좀 다른 내용이에요.
因此,处理这个字符的值为字符串是有些不同的。
그래서 이 문자를 문자열로 바꿔주는 역할을 합니다.
因此,这个字符的作用是将其转换为字符串。
그러면 실제로 코드 값이 잘 그렇게 처리가 되는지 실행을 해 봐야겠죠.
那么我们实际上应该运行代码来验证这些值是否能正确处理。
그래서 시스템 아웃 프린트 ln 해서 우리 캐릭터 2 스트링 한 걸 한번 볼게요.
因此,我将使用系统输出打印语句来看看我们将字符转换为字符串的情况。
Attendees 1 49:06
听众 1 49:06
그러면 여기에는 들어가는 게 문자 문자에 해당되는 게 들어가야 되고 실제 잘 만들어졌는지 봅시다.
那么在这里应该输入对应字符的字符,让我们看看是否真的正确创建了。
문자니까 뭐가 들어가야 돼요? 키 코드예요. 키 캐릭터예요.
因为是字符,所以里面应该放什么?是键码还是键字符。
키 캐릭터예요. 키 캐릭터를 넣어서 a라는 아이가 진짜 a가 됐는지 보면 되죠.
是键字符。将键字符输入,然后查看 a 是否真的成为了 a。
뭐 실행해 볼게요. a라는 문자를 제가 눌렀었는데 이번에 소문자를 눌렀거든요.
我来执行一下。我之前按下了字母 a,这次按的是小写字母。
그래서 소문자에 대한 값이 들어갔습니다. 그래서 이렇게 처리가 됐고 그다음에 이번에는 여기까지 괜찮죠 얘는 인티저는 여기 뜻이 정수를 문자열로 문자를 문자열로 바꾸는 방법이고 어차피 키보드 입력을 받으면 코드 아니면 문자니까 그래서 이렇게 처리를 하시고 그다음에 키보드 입력을 받아서 그러니까 이거는 키보드가 우리나라는 지금 한글이니까 한글 자판에 대한 값이 나오지만 만약에 일본이라든지 중국이면 문자열이 다 다르잖아요.
所以小写字母的值已经输入了。这样处理之后,接下来这部分是正确的,这里的意思是将整数转换为字符串,将字符转换为字符串的方法。反正键盘输入要么是代码,要么是字符,所以这样处理。然后是接收键盘输入,因为我们现在是韩语键盘,所以会出现韩语键盘的值,但是如果是日语或中文,字符串就会完全不同。
Attendees 1 50:17
出席人员 1 50:17
우리가 자음을 a를 누르면 미음이 되는 건데 이 코드 값에 따라 달라집 그쵸.
当我们按下辅音 a 时,它会变成一个元音,这取决于这段代码的值,对吧。
그래서 그 코드 값의 이벤트를 받는 게 키 이벤트예요.
因此,这些代码值的事件就是键盘事件。
이 키 이벤트는 어디 있냐면 여기 있죠. 우리 이벤트 키보드 이벤트 받을 때 e 했죠.
这个键盘事件在哪里呢?就在这里。当我们接收键盘事件时,我们使用了 e。
이 키보드 이벤트에 대한 함수 처리를 해주는 것이 키 이벤트 클래스에서 처리합니다.
在键事件类中处理这些键盘事件的函数。
그래서 여기서 똑같이 키 이벤트 갭 키 키 텍스 함수를 호출하면 되는데 얘는 뭐냐면 키보드에서 키보드 코드를 입력을 받아요.
因此,在这里同样调用键事件间隙键文本函数,它是指从键盘接收键盘代码输入。
그럼 이제 a라면 65가 될 거고 1이라면 49가 될 건데 그 숫자를 입력을 받아서 그거를 뭘로 변환해 주냐면 얘는 ime 환경에 따라서 우리 지금 한글이니까 ime 환경에 따라서 문자를 변환해 주는 역할을 해요.
那么现在如果是 a,就会变成 65,如果是 1,就会变成 49。它会根据输入的数字,并根据输入法环境(由于我们现在是韩文)转换字符。
그래서 얘도 한번 그러면 처리를 해보도록 하겠습니다.
那么我们就来处理一下这个问题。
시스템 아웃 프린트 ll 그래서 a라는 문자를 누르면 영어 알파벳 a가 나오고 한영 키로 바꿔서 누르면 어때요?
系统输出打印 ll,如果按下 a 字符,就会出现英文字母 a,是不是可以通过切换中英文键盘来输入?
같은 키를 입력을 받았는데 미음이 나오잖아요.
尽管是同一个键的输入,但却出现了不同的结果。
Attendees 1 51:32
与会者 1 51:32
그런 것처럼 이해 갔죠 무슨 말인지 그래서 키보드 입력에 따라서 im의 환경에 따라 문자가 바뀝니다.
就像这样理解了吧,这是什么意思。所以根据键盘输入,根据输入法环境,字符会发生变化。
마찬가지로 a라는 문자가 미음도 될 수 있지만 영어 영어 아니 중국어라든지 일본 키보드 환경이랑은 또 다른 문자가 되겠죠.
同样地,字母"a"可能会成为谐音,但在不同的语言环境下,比如英语、中文或日语的键盘环境中,它可能会变成不同的字符。
그와 같은 방법으로 변환해 주는 역할을 하고 그게 키 이벤트예요.
这种方式是用于转换的,这就是键盘事件。
그러면 키 이벤트 텍스트를 봅시다. 얘를 똑같이 이 환경을 해주고 얘는 코드 값을 입력을 받아야 합니다.
那么让我们来看看键盘事件文本。同样要建立这个环境,它需要接收代码值。
그래서 코드를 처리를 해주는데 코드 값이니까 t 코드 하시면 되겠죠.
因此,处理代码时,因为是 t 代码,你可以这样处理。
그래서 이렇게 처리를 하면 내가 여기서 뭐가 화가 났나요?
因此,如果这样处理,我为什么会感到生气呢?
키 코드 잡아 놨네요. 키코드 값이고 지금 괜찮아
我抓到了键码。这是键码值,现在很好
Attendees 2 52:37
参会者 2 52:37
된 것 같아요.
感觉已经完成了。
Attendees 1 52:43
参会人员 1 52:43
혀가 났나 키 이벤트 키 이벤트 어디서 우타가 났지 좀 같이 좀 찾아보죠.
我的舌头被咬伤了,键盘事件出现在哪里?让我们一起来查找一下。
b 플러스 인텔은 키즈 주소 기 킥보드 문자 코드 못 찾겠다.
b 加上英特尔无法找到键盘字符代码。
아까는 잘 됐었는데 뭐가 문제일까 키 코드가
刚才明明好好的,到底出什么问题了,这个键码
Attendees 2 53:23
参会人员 2 53:23
케이블 대문자가 오케
线缆大写字母来了
Attendees 1 53:25
与会者 1 53:25
어디요? 여기요? 네 그럼요. 그래서 a라는 문자를 받았더니 이벤트 코드 값에 a라고 나오죠.
哪里?这里?是的,那就这样。所以当我接收到字符 a 时,事件代码值显示为 a。
이렇게 그래서 이 환경에 따라서 하나만 더 체크를 해 주시
就这样,根据这个环境,再多检查一下。
Attendees 1 53:48
1 号出席者 53:48
하고 있고 제가 한양 키를 바꿨거든요. 일단 이거 상 좀 좀 닫을게요.
我正在做,并且我已经更改了汉阳键。总之,我将关闭这个窗口。
너무 많이 떠가지고
飘得太过分了
Attendees 1 54:04
与会者 1 54:04
어디 갔어 그다음에 있죠. 그다음에 여기서 이제 중요한 건 뭐냐면 우리가 문자열로 받을 때 1번의 경우는 이렇게 할까 정수로 먼저 해볼게요.
它去哪里了,下一个在这里。现在重点是什么呢?当我们以字符串接收时,第一种情况是这样,我们先尝试处理整数。
정수로 처리하는 방법부터 해볼게요. 정수 정수로 처리할 때 우리 만약에 내가 받은 문자가 받은 키 값이 1이면 하고 싶어 내가 받은 문자 값이 1이라는 문자와 비교를 하게 하고 싶어 그러면 어떤 값을 넣어줘야 돼요?
我们先尝试用整数处理。处理整数时,如果我收到的字符,或者说是按键值是 1,我想将它与字符"1"进行比较,那么我应该放什么值呢?
지금 여러분들이 해야 될 문제를 지금 이 순서대로 한번 바꿔보는 거야.
现在你们需要按照这个顺序尝试改变这个问题。
내가 1이랑 이 문자 1이랑 구분을 하고 싶은데 여기서 비교할 만한 애가 뭐예요?
我想区分数字 1 和字符'1',在这里有什么可以比较的方法吗?
1이랑 같은지를 구분하는 게 키 코드예요. 키 캐릭터예요.
区分是否为 1 的是键码。是键字符。
인티저 투 스트링이에요. 캐릭터 2 스트링이에요.
整数转字符串。字符转字符串。
키 이벤트 키 텍스트예요. 문자 문자 얘 하나짜리 문자는 키 캐릭터예요.
这是关于键事件的键文本。一个单字符是键字符。
이런 내가 키 캐릭터를 이렇게 비교를 하고 싶을 때는 왜 문자니까 됐어요?
当我想这样比较键字符时,为什么说是字符就可以了?
이거는 문자 문자니까 문자일 때는 이렇게 하시면 됩니다.
因为这是字符,所以字符的情况就是这样处理。
Attendees 1 55:26
参会人员 1 55:26
문자랑 비교하고 싶을 때 그러면 이번에는 이렇게 한번 해보고 싶어 뭔지는 모르겠지만 내가 49랑 비교하고 싶어 49 이거는 뭐로 비교하면 돼요?
当我想要比较字符时,我想这次尝试一下,虽然不太确定,但我想与 49 比较。49 应该怎么比较呢?
49라는 아이는 이제 문자 1에 대한 키 코드 값이에요.
49 是 1 这个字符的键码值。
뭐 뭐라고 해야 될까요? 그럼 49랑 이프 문을 쓰고 싶어 네 키 코드예요.
我该说点什么呢?那么我想使用 49 和 if 语句,这是一个键盘代码。
이해 가세요. 지금 내가 무슨 말 하는지 이거는 정수로 비교할 때 여러분이 이렇게 결과는 똑같지만 이렇게 해 주셔야 돼요.
明白了。现在我告诉你们,在比较整数时,结果是一样的,但你们应该这样做。
그러면 이번에는
那么这次
Attendees 1 56:12
参会人员 1 56:12
뭔지는 모르겠지만 이렇게 하고 싶어 그럴 때 이 문자로 표현할 때는 뭐 뭐 자 이퀄즈로 해야 되기 때문에 이렇게 쓸게요.
虽然不太清楚是什么,但我就是想这么做。当用这个字符表达时,需要用等于号,所以我这样写。
이퀄즈로 해야지 되기 때문에 느는을 쓰지 않고 하나짜리는 느는을 쓰겠지만 지금 문자열의 경우는 이퀄즈라는 함수를 써야 하기 때문에 뭐 뭐 쩜 이퀄즈를 하고 싶어.
必须使用等于号,因此不使用 null,单个的可能会使用 null,但对于字符串的情况,需要使用 equals 方法,所以我想使用点 equals。
그럼 얘는 뭐로 해야 될까요? 1이라는 문자열과 비교하고 싶어 네 캐릭터 2 스트링을 하셔야 돼요.
那么这个应该怎么做呢?要比较字符串"1",你需要将它转换为字符串 2。
근데 여기다 캐릭터 스트링 다 써도 되겠지만 너무 길지만 일단 한번 넣어볼게요.
不过在这里虽然可以写入完整的字符串,但太长了,我先试试看。
비교는 나중에 바꿔서 치환해서 해야 되는데 지금은 이렇게 키 코드 값이 여기 뭐를 뭐로 여기 문자를 이퀄즈 해야 되니까 문자가 뭐해야 돼 문자 뭐야 키 캐릭터 이렇게 바꿔주셔야 된다는 거예요.
比较应该稍后通过替换来完成,现在这里需要根据键码值来判断字符相等,所以需要将字符转换,也就是说要将键字符这样转换。
그러면 얘는 문자 열과 비교하는 방법입니다. 다 똑같은 결과를 나타내지만 방법이 여러 개 있다는 걸 지금 보여주고 있는 거예요.
这就是字符串比较的方法。它们都显示相同的结果,现在我正在展示有多种方法可以实现这一点。
이번에는 키보드
这次我们来看键盘
Attendees 1 57:43
听众 1 57:43
키보드 입력에 키보드 입력 이벤트에 대한 문자를 이미 가지고 있는 키 코드 값 한번 볼게요.
让我们看看键盘输入中与键盘输入事件相关的字符的键码值。
제가 키 코드 값을 다 외우는 건 아니어서 키 코드 값이 vka라고 할게요.
我并不是要把所有的键码值都记住,所以我就说键码值是 vka。
vka 그러면 키보드에서 a 값을 비교하는 거예요.
那么是在键盘上比较 a 值。
그러면 v vk a 랑 비교를 하고 싶어 vka랑 비교를 하고 싶은데 그러면 얘는 어떻게 하면 될까요?
那么我想要与 v vk a 进行比较,想要与 vka 进行比较,那么这种情况该如何处理呢?
키 코드야 키 캐릭터야 키 이벤트야 키 이벤트예요.
键码啊,键字符啊,键事件啊,这是键事件。
그래서 이 경우에는
因此在这种情况下
Attendees 1 58:37
听众 1 58:37
잠시만요. 이벤트 값 여기 다 써도 되지만 키 이벤트가 이미 위에 있으니까 여기서 키 이벤트를 미리 만들어 놔도 되고 지금은 그냥 불러올게요.
稍等。虽然可以把事件值都写在这里,但由于键盘事件已经在上面了,所以也可以提前创建键盘事件,现在我就直接调用一下。
이 이벤트의 겟 키 코드 값을 불러오면 됩니다. 개 키 코드 값을 여기서도 하나 더 미리 만들 거고 그랬나 됐어 됐어 일단 이렇게 할게요.
调用此事件的获取键代码值。我将在这里再准备一个键代码值,就是这样吧。
개 키 코드 값을 불러와서 얘가 뭐랑 똑같아야 되냐면 키보드 입력 우리 칼라 한 거랑 똑같이 점 이거랑 같으면 됩니다.
调用键代码值,它需要与什么相同?与我们之前做的键盘输入颜色相同,只需要与这个点相同即可。
그래서 이것도 미리 만들어 놔야겠지만 지금은 얘도 하나 만들어 볼까요?
那么这个也应该提前准备好,现在我们来创建一个,好吗?
이미 미리 있는 것 중에서
在已经预先存在的内容中
Attendees 2 59:31
参会人数 2 59:31
그다음에
接下来
Attendees 1 59:59
参与者 1 59:59
아무튼 그래서 이렇게 해서 처리를 하셔도 됩니다.
无论如何,就这样处理就可以了。
이 코드는 이렇게 코드는 대문자로 해야 되네요. 해서 이렇게 처리를 하셔도 됩니다.
这段代码确实应该使用大写字母处理。您也可以这样处理。
그래서 다음 예제가 뭐냐면 지금 일단 여기까지 확인해 주시고 못한 건 여러분 나중에 또 시간 드릴게요.
因此,下一个示例是什么呢?现在请先确认到这里,尚未完成的部分我稍后会再给你们时间。
오늘 할 내용은 뭐냐 하면 키보드 이벤트 조금 전에 했던 요 세 번 이 네 번째 방법이에요.
今天要讲的内容是键盘事件,是我们之前讲过的第三种或第四种方法。
문자 정수 문자열 처리하는 건 이제 다 알겠어. 키보드에 대한 키보드 값에 따른 값을 처리를 할 건데 보통 이거는 우리 상하 좌우 할 때 이제 게임 같은 데 하면 앞으로 전진 뒤로 후진 이런 거 하잖아요.
现在我们已经了解了字符、整数和字符串的处理。接下来我们将处理根据键盘输入的值,通常这在游戏中用于控制上下左右移动,比如前进或后退。
또는 F1 키 매크로 값으로 F1 f2 이렇게 쓰듯이 키보드 입력을 받는 거예요.
或者像使用 F1 键宏值那样,输入 F1 F2 这样的键盘输入。
그래서 얘를 한번 해볼 건데 우리 보통 키보드 업 다운 레프트 라이트가 이미 다 선언이 되어 있어요.
因此我们要尝试一下,通常键盘的上、下、左、右键已经都预先声明好了。
그래서 키보드 이벤트로 값이 선언이 되어 있는 걸 호출을 하셔서 비교를 하는 거고 소스는 이거고요.
所以通过键盘事件调用已声明的值并进行比较,源代码就是这样。
실행 방법은 여기 보시면 헬로우라는 문자를 이동했어요.
执行方法是,如您所见,我们移动了"hello"这个文字。
Attendees 1 1:01:14
与会者 1 1:01:14
키보드 입력을 통해서 그래서 크게 어렵지는 않으실 겁니다.
通过键盘输入,因此对你来说应该不会太难。
이거 한번 아까 못했던 것도 다 어차피 여기 다 소스가 똑같이 있으니까 이거 보시고 한번 다시 체크를 해 주세요.
这个,反正我之前没完成的部分现在源代码都在这里,所以请再检查一下。
이제 순서는 다 설명을 드렸어요. 먼저 제 프레임 세팅하시고 컨테이너 만드시고 키보드 입력 만들고 키보드 입력 만들 때 포커스 만들고 리퀘스트 포커스 하셔야 되고 그다음에 마우스 이벤트 지금 여기서는 우리 마우스 리스너로 썼는데 키 어댑터를 쓰면 나머지 2개를 실행할 필요가 없어요.
现在我已经解释了所有步骤。首先设置你的框架,然后创建容器,创建键盘输入,创建键盘输入时要设置焦点,使用请求焦点,接下来是鼠标事件。在这里我们使用了鼠标监听器,但如果使用键适配器,就不需要执行其余两个。
그래서 어댑터로 해주세요. 리스너로 하게 되면 프레스하고 릴리즈 타이블 3개 다 하나 프린트 문이라도 하나 오버라이딩을 해야 되기 때문에 좀 귀찮으시면 키 어댑터로 고쳐서 쓰시면 됩니다.
所以请使用适配器。如果使用监听器,由于需要重写按下、释放这三个方法中的所有方法,即使只是一个打印语句,也会比较麻烦。如果觉得麻烦,可以改用键盘适配器。
그래도 나는 리스너 쓰겠다 그러면 이제 나머지 2개도 오버라이딩 하시면 되겠고
如果您还是想使用监听器,那么就继续重写剩余的两个方法。
Attendees 1 1:02:17
与会者 1 1:02:17
그래서 이벤트는 오늘 다 끝이기 때문에 오늘 설명한 거를 완전히 다 이해를 하셔야 돼요.
因此,既然今天的事件已经全部结束,你必须完全理解今天所讲解的内容。
그래야 다음 주 다음 시간부터는 이제 스윙을 이제 만들 거거든요.
这样我们就可以从下周开始制作 Swing 了。
만드는 방법은 달랑 2개예요. 객체를 만들고 이벤트를 설정하는 거 됐죠.
制作方法很简单,只有 2 个步骤:创建对象并设置事件。
다음 시간부터는 내용이 엄청 많아지기 때문에 지금 오늘 하는 거를 완벽하게 이해를 하셔야 합니다.
从下节课开始,内容会变得非常多,所以你们必须完全理解今天所学的内容。
Attendees 1 1:02:50
参会人员 1 1:02:50
그래서 집에서라도 여러 번 안 보고 한번 쭉 순서대로
所以即使在家里,也不要看很多次,而是一次性顺序地浏览
Attendees 1 1:04:22
出席者 1 1:04:22
여기서는 이 품을 안 쓰고 스위치을 썼네요. 스위치문으로도 충분히 구현이 가능하니까
在这里,我们没有使用这种写法,而是使用了开关语句。因为开关语句也可以很好地实现这一点
Attendees 1 1:04:40
与会者 1 1:04:40
그래도 이 컨트롤 할 수 있는 게 마우스와 키보드 두 개라서 이벤트 2개만 해도 되는 거예요.
不过因为可以控制的只有鼠标和键盘这两个,所以只需要处理这两个事件就可以了。
그쵸 이벤트가 더 입력 이벤트가 더 많으면 더 복잡할 텐데 이건 어쨌든 마우스 키보드 두 개밖에 없으니까 마우스 이벤트랑 액션 이벤트야 이렇게 만 알면 되는 거니까 마우스는 5개 키보드 입력은 3개의 함수 인터페이스 된 게 틀림없이 할 수 있는 게 3개의 함수니까 귀찮으시면 어제부터 쓰면 되니까 배울 내용은
对,如果输入事件更多的话会更复杂,但这里反正只有鼠标和键盘两个,所以只需要了解鼠标事件和动作事件就行了。鼠标有 5 个,键盘输入有 3 个函数接口,无疑是可以完成 3 个函数,如果觉得麻烦的话,从昨天开始用就可以了,这就是要学习的内容。
Attendees 2 1:05:17
与会者 2 1:05:17
크게 많지는 않아요.
数量并不多。
Attendees 2 1:06:45
与会者 2 1:06:45
고 밑으로 내려오면 얘가 지금 들리지 않는 타입이 비어 있어요.
如果往下滚动,现在这个类型听不到,是空的。
그래서 어댑터를 쓰면은 얘를 안 써도 되는데
所以如果使用适配器,就不需要这个了
Attendees 2 1:07:03
参会者 2 1:07:03
이거 어댑터는 상관없어 지 어댑터로 바꾸고 첫 번째 방법 어댑터로 바꿔서 하나만 해서 주고 그래 이거 리슬러를 쓰겠다 하게 되면 한자 어디
这个适配器没关系,改成地适配器,第一种方法改成适配器,只做一个就行了,如果要用这个监听器,那么汉字在哪里
Attendees 1 1:07:47
与会者 1 1:07:47
어제트가 아니구나 임플리먼니
这看起来不像是昨天
Attendees 2 1:07:50
参会人员 2 1:07:50
그게 아니라 익스텐지 익스텐지만 수출을 하든지 이렇게 해야 되는 게 첫 번째 방법이고 두 번째 방법은 아까 인플리언스
不是扩展、扩展,而是要出口,这是第一种方法,第二种方法是之前提到的影响力
Attendees 2 1:08:08
参会人员 2 1:08:08
리스너로 하게 되면 이렇게 밑에 키 릴리즈하고 타입을 하나로도 만들어 걔는 코드를 이렇게 하고 걔를 시스템 코드 걔를 개 코드를 하나 설치해서
如果使用监听器,就可以像下面这样在键盘释放时输入类型,并将其编写成代码,然后安装系统代码和个人代码
Attendees 2 1:08:47
与会者 2 1:08:47
이렇게 하나 한 줄이라도 진짜 이렇게 한 점 이 밑에 이렇게 한 줄 이상이 들어가 있어야 될 것 같아요.
看起来好像需要一行一行地来,就像这样在这下面至少应该有一行以上的内容。
그래서 그 시스템하고
所以关于那个系统
Attendees 2 1:09:30
与会者 2 1:09:30
알겠습니다. 2시간
好的。2 小时
Attendees 2 1:09:57
出席人员 2 1:09:57
아니 안 써도 돼 그냥 오버 라이딩 했다는 뜻으로 고 지금 저기 보이 해요.
不,不用写那个,我的意思是已经重写了,现在你可以看到那里。
다시 또
再次
Attendees 2 1:10:13
参与者 2 1:10:13
저것처럼 코드 하나 넣고 넣고 하이드 1 타입 t 타입 피드 타입 t 타입 헤드트예요.
就像那样放一段代码,再放进去,这是海德 1 类型 t 类型、饲料类型 t 类型、头部类型。
Attendees 2 1:10:49
与会者 2 1:10:49
그러니까 이 두 가지 대응팀이 너가 원하는 거 아니 일단 싫어 이게 잘 하는 거예요.
所以这两个对应的团队不是你想要的,反正首先不喜欢,这是做得很好的。
두 가지 방법이 있는데 그 두 가지 종목 중에 음식 아니 거기서 그런게 아니지 그 타겟팅하고 코드 세고 커서블를 했잖아 그게 여기 키가 거기 있어야 된다는 얘기고 거기도 키보드 여기 있어 자료 이제 드리는 거 회전 시키는 거는 그러니까 두 가지 방법이 있어요.
有两种方法,在这两种类型中,食物不是,那不是从那里,而是那个定位和计算代码,那个光标,就是说那个键应该在那里,那里也有键盘,现在提供数据,旋转,所以有这两种方法。
그래서 이렇게 해서 재원 대출로 바꾸든지 선택 이게 에러가 나서 한 번 고쳐주면 상관이 없는데 여기는 이렇게 에러가 나면 그 두 가지 방법 중에 하나가 나는 그래도 안 던져도 있었지
所以通过这种方式将其转换为资金贷款,或者选择这种方式,如果出现错误并修复一下的话就没什么问题,但是在这里如果出现错误,那么这两种方法中的一种我还是不会抛出异常
Attendees 1 1:12:01
出席人员 1 1:12:01
그래서 이거 실행을 해보시고 됐어요. 넘어가도 될까요?
那么,执行这个后就可以了。可以继续吗?
오케이 이제 잘 이해가 됐나 봐 이제 무슨 말인지 알겠죠 그래서 키보드 입력할 때 우리가 이미 가지고 있는 키 키 값에 대한 비교를 하시고 싶으면 키 이벤트로 하면 되고 어쨌든 키 이벤트도 키 코드인지 키 캐릭터인지 둘 중에 하나이기 때문에 인트로 해서 코드 값을 만들어 놓고 걔를 비교를 하던지 그 캐릭터로 바꿔 바꿔서 하시는데 이제 선택하시면 되겠고 이벤트 방법은 이게 다예요.
好的,现在我想你已经完全理解了。你知道我的意思了。所以当你想比较已有的键值时,可以使用键盘事件。无论如何,键盘事件可以是键码或键字符两种方式,因此你可以用整数创建代码值,然后进行比较,或者将其转换为字符并进行处理。现在你可以选择使用哪种方式了,这就是事件处理的所有方法。
그러면 이제 마우스 이벤트 우리 프레스 이벤트 하나 했었었는데 마우스의 다른 이벤트도 조금 보자 이거죠.
那么现在我们已经讨论了鼠标按下事件,让我们再看看鼠标的其他事件。
마우스의 경우는 드래그도 있고 클릭도 있고 무브도 있고 그리고 눌렀다가 떼질 때 액시도 있어요.
鼠标事件包括拖动、点击、移动,以及按下并释放时的动作。
Attendees 1 1:12:59
与会者 1 1:12:59
그래서 이런 여러 가지 매크로가 있기 때문에 이 매크로가 아니라 메소드가 있기 때문에 이거를 조금 사용하는 방법을 좀 봐야 되는데 마우스 리스너는 크게 5가지 이벤트를 처리를 하게 되고 에드 할 때도 우리 c 점 에드 마우스 리스너 하고 내가 만든 마우스 리스너를 호출하게 되죠.
所以因为有这些各种宏,因为这些宏不是方法,我们需要看看如何稍微使用它。鼠标监听器主要处理 5 种事件,当添加时,我们会添加鼠标监听器并调用我创建的鼠标监听器。
이거는 다 설명한 내용이고 프레스 이벤트를 할 때에는 아까는 이제 개 캐릭터 인 개 코드 개 키 코드 개 키 캐릭터와 같은 문자나 숫자를 입력을 받았다면 마우스의 경우는 좌표 값을 입력을 받을 수가 있습니다.
这是之前已经解释过的内容。当处理按键事件时,与之前讨论的字符代码、键码、键字符和数字输入不同,对于鼠标事件,我们可以接收坐标值。
그래서 입력받을 때의 이벤트 값은 2 점 겟 x 또는 2점 k y 같은 좌표 값을 받을 수 있고 그다음에 마우스의 버튼 원 버튼 값 그리고 클릭 횟수 등을 봐줄 수가 있습니다.
因此,在接收事件值时,可以获取如 2 点 getX 或 2 点 getY 这样的坐标值,并且还可以查看鼠标按钮、主按钮值以及点击次数等信息。
그래서 마우스 이벤트 이거 이제 오늘 마지막 문제예요.
所以这是今天关于鼠标事件的最后一个问题。
똑같아요.
完全一样。
Attendees 1 1:14:04
与会人员 1 1:14:04
이것도 이제 먼저 제 프레임 설정하고 컨테이너 만들어 놓고 컨테이너에 마우스 리스너에 해당 값을 입력을 받았고 마이 마우스 리스너를 인플리먼츠를 했는데 인플리먼츠를 2개를 했네요.
现在我首先设置了我的框架,创建了容器,并在容器上接收了鼠标监听器的相应值,我实现了鼠标监听器。看起来我实现了两个监听器。
마우스 모션하고 그다음에 마우스 리스너 2개를 했기 때문에 2개에 해당되는 함수를 다 선언을 해 주어야 하고 2개 이상의 리스너를 가 연결하고자 할 때는 컴마로 연결하시면 돼요.
因为我们做了鼠标动作和两个鼠标监听器,所以需要声明对应的两个函数,当您要连接两个或更多监听器时,可以用逗号连接。
그래서 지금 여기 나와 있는 내용들을 마지막 문제로 처리하고 얘는 예제 문제 안 낼게요.
所以现在这里显示的内容将作为最后一个问题处理,我不会出这个示例题。
이거 마무리하고 다른 사람은 검사 받고 가시면 되겠습니다.
完成这个就可以,其他人可以先去检查并离开了。
괜찮아요 네 이거 마지막 문제 이거 PPT 이거 잘 안 보이시면 PPT 마지막 거 보고 하시면 돼요.
没关系的,是的,关于这最后一个问题,如果 PPT 看不清楚,可以参考 PPT 的最后一页。
Attendees 1 1:15:04
听众 1 1:15:04
그래서 지금은 우리가 컨테이너 하나에 마우스 리스너도 넣고 키보드 입력 그다음 마지막 마우스 모션 리스너 그다음에 하나 더 있죠 액션 리스너 해서 4개를 다 컨테이너에다가 지금 적용을 한 상태인데 다음 시간부터는 객체를 만들어서 버튼 이벤트 텍스트 이벤트 텍스트를 클릭해서 이벤트 처리 그다음에 이미지를 호출하는 클릭을 해서 이미지를 바꾸는 거 뭐 기타 등등 그런 이벤트를 할 거기 때문에 지금 액션 마우스 클릭 마우스 키 그다음에 마우스 모션
现在我们已经在一个容器中放入了鼠标监听器、键盘输入、鼠标移动监听器,以及另一个动作监听器,总共 4 个监听器都已应用到容器中。从下堂课开始,我们将创建对象,处理按钮事件、文本事件,通过点击文本来处理事件,然后通过点击调用图像并更改图像,以及其他各种事件。目前我们已经有了动作、鼠标点击、鼠标按键和鼠标移动这些监听器
Attendees 2 1:15:53
出席人员 2 1:15:53
저희 친구들이 오는 수도 있고 어린데 빼면 나
我们的朋友可能会来,而且即使在年轻时也可以减少
Attendees 1 1:16:01
与会者 1 1:16:01
이 10은 마우스의 모양이 이렇게 있는데 마우스의 이 좌표 값의 100이야.
这里有 10 种鼠标的形状,鼠标的这个坐标值是 100。
그럼 내가 가지고 있는 포인터 100 모르겠어 아무튼 픽셀로 돼 있는데 얘가 끝에 점을 찾아
那么我有的指针 100 不知道,无论如何它是由像素组成的,它要找到末端的点
Attendees 2 1:16:13
与会人员 2 1:16:13
이거 저 마크 저거 해놓으라고 그랬는데 이거 이거
我在说那个的时候让马克做那个,但是这个这个
Attendees 1 1:16:18
与会者 1 1:16:18
그러니까 헬로의
那么,你好
Attendees 2 1:16:20
与会者 2 1:16:20
여기 올라갈 때 와는 안 들어가는
这里上去的时候是不进去的
Attendees 1 1:16:24
参会人员 1 1:16:24
여기가 0이거든 이게 그거 설명 말고 여러분 여기 우리 좌표 값이 우리가 생각하는 x 좌표 y 좌표가 아니에요.
如果这是 0,那么这不是我们想象中的坐标值,即 x 坐标和 y 坐标。
우리가 이제 컨테이너가 있으면 0과 0이 어디 있을까요?
那么当我们有一个容器时,0 和 0 又在哪里呢?
여기 1번 2번 3번 4번 주기에 0과 0이 어디예요?
这里的 1 号、2 号、3 号、4 号周期在哪里是 0 和 0?
지금 아까 실험해 보니까 키보드 이렇게 하고 업다운하고 가죠.
刚才我试验过了,通过键盘这样上下操作。
연가 0이 어디예요? 1번이 여기가
零号在哪里?1 号在这里
Attendees 2 1:16:54
与会者 2 1:16:54
9시까지 온 거예요.
我九点就来了。
Attendees 1 1:16:56
参会人员 1 1:16:56
약간 저 좌표 값의 그 포인트가 달라요. 그냥 내가 오른쪽으로 가고 싶으면 더하기 밑으로 가고 싶으면 더하기.
那个坐标值的点似乎有些不同。如果我想向右走,就加;如果想向下走,也是加。
근데 키보드 입력은 어떻게 되는지 모르겠어요. 나도 해봐야 되지.
不过我不知道键盘输入是怎么回事。我也得试试。
코드에 따라서 코드에 따라 다른데 0과 0이 포인트예요.
根据代码不同,0 和 0 是关键点。
그래서 이 x 헬로우라는 아이의 한번 시를 나도 안 해봤는데 포인트가 어떻게 되는지 좀 남의 것 좀 볼까?
所以对于这个叫 x 的小子,我虽然没有尝试过他的诗,但想看看别人的作品,看看关键点是什么。
그러면 제가 좌표 값에 어떻게 이동을 해요? 그래도 이동한 한번 봅시다.
那么我应该如何移动坐标值呢?我们还是来看看移动的情况吧。
계산해 보면 되지. 뭐
计算一下就可以了。随便啦。
Attendees 2 1:17:29
出席人数 2 1:17:29
아이도 내려갈 때는
当我下降的时候
Attendees 1 1:17:31
与会者 1 1:17:31
업일 때 내려갔어요. 업일 때 마이너스로 갔고 그쵸 올라가야 되니까 그다음에 그래서 얘기해 봐.
我在上升时下降了。当上升时变为负数,因为必须上升,所以接下来我们来讨论一下。
다운일 때 내려가고 그다음에 y일 땐 y는 x 값이 레폴트일 때 그렇지 잘 보세요.
按下时向下移动,下一个是 y 时,如果 x 值是重置时,就是这样,请仔细看。
지금 저 친구가 왜 이런 왜 더하고 빼냐의 개념이 뭐냐면 여기가 포인트에 이 친구 친구 보세요.
现在这个家伙为什么要这样,为什么要加和减,其概念是什么,这就是关键点,请看这个。
여기가 0 콤마 0이야. 그러면 내가 여기에 있어.
这里是 0 逗号 0。那么我就在这里。
그럼 얘는 예를 들어 여기가 10이고 여기가 10이야.
那么这个数字,举例来说,这里是 10,这里也是 10。
그럼 얘의 위치는 지금 뭐야? 100이야
那么他现在的位置是多少?100
Attendees 3 1:18:15
与会者 3 1:18:15
마이너스 1
负一
Attendees 1 1:18:16
与会者 1 1:18:16
아니야 여기 플러스 플러스 10이야. 우리 들어봐 들어봐 들어봐.
不对,这里是加上 10。我们来听听,听听,听听。
근데 여기 10인데 내가 위로 올라가고 싶어 위로 올라가고 싶으면 여기가 x 값이고 y 값인데 위로 올라가고 싶으면 x 값을 컨트롤 해야 돼.
但是这里是 10,如果我想往上走,想往上走的话,这里是 x 值和 y 值,如果想往上走,就必须控制 x 值。
와 값을 컨트롤 해야 돼. 와 값. 그럼 좋아 y 값을 컨트롤 할 건데 더 해야 돼.
我需要控制 x 值。x 值。那么,我想控制 y 值,还需要再做些什么。
빼야 돼. 빼야 돼. 여기가 0이거든. 내가 지금 현재 10인데 위로 올라가고 싶으면 어떻게 해야 돼 숫자가 줄어들어야 돼.
我必须减去。必须减去。这里是 0。我现在是 10,如果想往上移动,该怎么办?数字必须减小。
그래 줄어드는 그 간격은 뭔진 모르겠지만 줄어들어야 되니까 마이너스가 되는 거야.
对,虽然不知道那个缩小的间距是什么,但是它必须要缩小,所以就变成了负数。
위로 올라가고 싶으면 여기가 0이거든. 내가 한 위치에서 위로 올라가고 싶으면 어떻게 해야 돼?
如果想要往上移动,这里是 0。如果我想从我现在的位置往上移动,我应该怎么做?
어 위로 올라가고 싶으면 빼야 되는 거야. 밑으로 내려가고 싶으면 x축이야 y축이야 y축 y축이야.
啊,如果想往上走,就需要减去它。如果想往下走,是 X 轴还是 Y 轴?是 Y 轴,Y 轴。
숫자가 늘어나야 될 것 같아 줄어들어야 될 것 같아.
看起来数字应该增加,还是应该减少。
늘어나야 돼. 그래서 플러스 10씩 한 거야.
必须增加。所以每次加 10。
Attendees 1 1:19:21
参会人员 1 1:19:21
10은 내가 정하기 나름 듬성듬성하게 하고 싶으면 숫자를 크게 주면 되고 조금씩 움직이게 하고 싶으면 수지를 작게 주면 돼.
10 可以根据自己的需求来调整,如果想要间隔大一些,就给大一点的数字;如果想要稍微移动,就给小一点的数字。
그럼 내가 왼쪽으로 가고 싶어. 얘가 포인트가 우리가 생각하는 좌표 값이 좀 다르지만 내가 왼쪽으로 가고 싶어 그러면 얘는 x 값이야 y 값이야.
那么我想往左边走。虽然它的坐标点和我们想的有点不一样,但是如果我想往左边走,那么它是 x 值还是 y 值?
x 값이 여기가 0이고 얘가 지금 현재 10이란 말이에요.
x 值在这里是 0,现在是 10。
줄어들어야 돼. 늘어야 돼. 들어 줄어야 돼. 이쪽으로 가려면 늘어야 돼.
应该减少。应该增加。要减少。要想往这边走,就必须增加。
그래서 10씩 더 한 거야. 이거는 내가 생각을 못해.
所以我加了 10。这个我没想到。
그냥 당연한 거라고 생각했는데 모를 수 있겠구나 진짜 그런 그러고 됐죠.
我原本以为是理所当然的,但是对方可能不知道,真的是这样,那就算了。
Attendees 2 1:20:28
与会者 2 1:20:28
키 어댑터 익스텐즈에서 상속을 받는 거고 인플리먼츠는 인터페이스로 이미 구현되어 있는 마우스 리스트의 모든 것을 그대로 다 피해야 돼요.
在键适配器中继承,而接口是已经实现的鼠标列表的所有内容,您必须完全避开它们。
이게 좀 달라요. 빈폴리 먼츠는 만약에 마우스 키보드 미션이 있으면 한 개의 코카인드 미션이 있으면 한 개만 하면 되지에 그런 목대로 카피를 해서 만들어야 좋아 해야 그게 인플리 먼치고 어댑터는 만약에 리스너 5개의 힘들었는데 어댑터는 내가 하나만 골라서 쓰겠다 그러면 익스텐지를 하고 그중에 하나만 수리는 내가 고치고 싶은 거 다시 있어야 되고 어제 거는 내가 하나만 쓰고 있는데 익숙한 거 상속인 상속이라는 상속 받을 때 우리 클래스 만들 부모 클래스 이제 클래스 상속받을 때 부모 클래스가 싹 다시 만들지 않죠.
这有点不同。如果有鼠标键盘任务,只需要一个任务的话,就应该按照那个目标进行复制和创建。如果是适配器,之前处理 5 个监听器很困难,但现在适配器允许我选择一个使用,然后我想扩展其中一个并修改我想修改的部分。昨天我只使用了一个,并且习惯了继承。当我们创建类并继承父类时,不需要从头开始重新创建所有内容。
Attendees 2 1:21:35
参会人员 2 1:21:35
또 필요한 걸 추가하거나 고칠 때마다 그게 있으면 그래서 이미 어댑터로 만들어져 있는 익스텐지를 받으면 내가 그중에서 원하는 것만 오버 로고 하면 저거를 그리면 좋아요 거고 그다음에 디플리 먼치 된 걸 그대로 딱 떼고 나서 그걸 아이디로 다시 써야 둘 중에 하나는 안 보면 되죠.
每次需要添加或修改内容时,如果已经有了适配器,我就可以直接继承这个扩展,然后只覆盖我想要的部分,这样就很好了。接下来,我可以直接复制已经部署的内容,然后用 ID 重新编写,这两种方法中选择一种就可以了。
어제 했던 거고 근데 어제 했던 거
这是昨天做的,而且是昨天做的内容
Attendees 1 1:22:53
与会者 1 1:22:53
이 마지막 문제는 다음 시간 시작할 때 또 물어볼 거니까 될 수 있으면 완벽하게 이해하세요.
这最后一个问题我们下次课程开始时还会再问,所以请尽可能地完美理解它。
이해하시고 오늘은 응용 문제 안 낼 테니까
我理解了,今天我们不会布置应用题
Attendees 1 1:23:39
参会人员 1 1:23:39
왜 안 돼?
为什么不行?
Attendees 1 1:23:46
与会者 1 1:23:46
우리 보통 클래스가 시작할 때 그리고 클래스가 생성되어 있는 거 호출할 때 보면 다 대부분 대문자로 시작해 있고 그 안에 들어 있는 메소드의 경우는 다 소문자로 시작이 돼요.
我们通常可以看到,类在开始时和被调用时,大多数都是以大写字母开头,而其中的方法则都是以小写字母开头。
그래서 이거 가끔 헷갈리긴 합니다. 저도 들쑥날쑥하긴 한데 나는 이렇게 m이라고 소문자로 썼다고 생각하는데 착각하고 대문자로 썼을 가능성도 있거든요.
所以这种情况有时会让人感到困惑。我自己也时好时坏,我本以为是用小写字母 m 开头的,但也有可能是不小心写成了大写字母。
그 컴파일이 잘 안 될 때 이거 소문자로 시작했는지 잘 보시고 그다음에 중간에 다시 문자가 시작할 때 다른 단어가 시작할 때는 대문자예요.
当编译出现问题时,请仔细检查是否以小写字母开头,并且在开始一个新单词时使用大写字母。
그거 확인해 주시면 될 것 같아요. 거기서 조금 에러 오타 많이 나니까 확인하시고 다 실행됐어요.
请确认一下。那里可能会出现许多错误和拼写错误,请检查并确保一切都已正常运行。
볼까요? 쭉
要看一下吗?继续
Attendees 1 1:24:38
与会者 1 1:24:38
어 상관없어. 두 개 다 선언이 되어 있거든. 그렇지 뭐
啊,没关系。两个都已经声明了。就是这样啊
Attendees 2 1:24:49
与会人员 2 1:24:49
나중에 시대에 맞는 거아 지금 색깔도 바뀌는구나 이
看来这是随着时代变化而改变颜色的样子啊
Attendees 1 1:24:57
与会者 1 1:24:57
마우스가 올라와 있을 때가 파란색인가 보네. 마우스가 빠져 있으면 노란색이
鼠标悬停时变成蓝色,鼠标移出时变成黄色
Attendees 1 1:25:11
与会者 1 1:25:11
마우스 이벤
鼠标事件
Attendees 2 1:25:13
出席人数 2 1:25:13
그다음에 보 이벤트 모션 이벤트 다
接下来是鼠标事件和运动事件
Attendees 2 1:25:32
出席者 2 1:25:32
네 할 만 했죠. 질문 질문도 적고
好的,做得不错。问题也不多
Attendees 2 1:25:44
参会者 2 1:25:44
할만해 어려워 왜 어디가 그래? 내가 이러지 너무 귀여워 그래 외울 게 많아서 그렇지.
这很有趣但很困难。怎么了?为什么?我就是这样,太可爱了。因为需要记忆的东西太多。
Attendees 1 1:26:01
与会者 1 1:26:01
그래서 순서대로 알려
所以请按顺序告诉我
Attendees 2 1:26:02
参会人员 2 1:26:02
그래서 그렇게
所以就这样
Attendees 2 1:26:15
参会者 2 1:26:15
가운데 그거에 좀 비율이 있는 그러니까 조금 이상하다고
这中间有一些比例,所以看起来有点奇怪
Attendees 2 1:26:39
出席人数 2 1:26:39
움직이는 것도 힘들 그래야지 0을 쓸 수 있는 이게 좀 당하더라고요.
连动都动不了,就是能写 0,这实在是太难受了。
Attendees 1 1:27:14
参会人员 1 1:27:14
컬트하고 입시는 마우스가 위에 있는 결과
文化性的入口是鼠标所在位置的结果
Attendees 2 1:27:22
参与者 2 1:27:22
너도
你也是
Attendees 2 1:27:34
与会者 2 1:27:34
근데 이거를 다 한 번 써보고 싶어서 이 그을 넣은 거거든요.
我就是想把这一整段都尝试写一遍,所以加了这条线。
사실은 모멘트 한번 컨트롤이 하고 만약에 얘가 빠져나가면
事实上,我想先控制一下这个瞬间,如果它逃走了
Attendees 1 1:27:49
与会者 1 1:27:49
단기만 한번 해보고 실행시켜 보는 거야. 이럴 때 이렇게 동작이 되는구나 그치 빠져나오면 노란색 안에 있으면 시간
只尝试做一个短期的,然后执行看看。那时就是这样运行的,是吧?当退出时是黄色,如果在里面的话,就是时间
Attendees 2 1:28:09
参会人员 2 1:28:09
뭐가 어디가 어려워?
哪里有什么难点?
Attendees 1 1:28:25
与会者 1 1:28:25
이 아니라 나중에
不是这样,而是稍后
Attendees 1 1:28:56
出席人数 1 1:28:56
출석 체크 다 한 거예요. 아까 한 명 늦게 왔었는데 누구였지?
已经完成了点名。刚才有一个人迟到了,是谁来着?
아니요. 한 여자애가 한 명 왔는데
不,来了一个女孩
Attendees 2 1:29:09
出席人数 2 1:29:09
10분 뒤에 왔거든 는데 이거 을 수 있는
我 10 分钟后就到的,但是这个我可以处理
Attendees 1 1:29:32
参会者 1 1:29:32
아까 출석 늦게
刚才迟到了
Attendees 2 1:29:42
出席人数 2 1:29:42
네 이 사람들 따라 하시면 되는데 마지막 거를 쭉 보고 저번 시간 거는
是的,按照这些人的做法就可以了,看最后那个,并且查看上次的内容
Attendees 1 1:30:04
参会者 1 1:30:04
또 없으면 종료할까요? 장영무 너는 다 했어 어땠어?
还要继续吗?张英武,你都完成了,感觉怎么样?
어려웠어? 어떤 거 어려웠던 거
难吗?哪些地方觉得比较困难?
Attendees 1 1:30:21
出席人员 1 1:30:21
코드를 이해를 많이 못했어 뭐 해? 오늘 아까 여기 처음부터 설명해 줬잖아.
我没怎么理解代码,怎么办?今天你不是已经从一开始就给我解释了吗?
위에서부터 어디 부분이 여기 여기 이 부분 여기 이거는 진짜 그야말로 시어어야 이거는 다 거의 뭐 더하기 빼기 이렇게 계산하고 이거 출력하는 거 이거는 진짜 그야말로 그냥 스윙하고 상관없는 코드잖아.
从上面开始的这个部分,这里这里这部分,这个真的可以说是,基本上都是加加减减这样计算,然后输出的代码,这完全就是与 Swing 无关的代码。
Attendees 1 1:30:58
与会者 1 1:30:58
링크드잖아. 이 위에가 만약에 이해가 안 간다면 이 얘가 말이 되는데 이 밑에 거는 c언어랑 똑같은 거야.
我都懂了。如果上面这部分不理解的话,这个说法是有道理的,下面这部分和 C 语言是一样的。
연산 산솔 연산하고만 하는 거죠. 이프문 쓰고 요 마지막 문제 한 번 해 가지고 와요.
只是进行运算处理。写个 if 语句,然后把最后一个问题解决一下带过来。
이거
这个
Attendees 2 1:31:16
参会人员 2 1:31:16
잠시만요.
请稍等。
Attendees 1 1:31:31
参会者 1 1:31:31
출석 체크 다 한 거죠. 화면 끕니다.
已经点完名了。关闭屏幕。
Attendees 2 1:31:49
出席人数 2 1:31:49
가장 중요.
最为重要。
clovanote.naver.com