SWT 창 필터 의 느 린 전개 와 사라 짐
1. 왼쪽 에서 오른쪽으로 천천히 펼 치기
이 효과 가 실 현 된 사고방식 은 셸 의 location 가 변 하지 않 는 다 는 것 이다. 처음에 셸 의 size 의 폭 을 0 으로 설정 하고 높이 가 변 하지 않 은 다음 에 셸 의 width 를 점차적으로 증가 시 켜 셸 의 느 린 열 림 을 실현 했다.코드 는 다음 과 같 습 니 다:
final int width = shell.getSize().x;
final int startX = shell.getLocation().x;
new Thread(new Runnable() {
private int startWidth = 0;
public void run() {
while (startWidth <= width) {
shell.getDisplay().syncExec(new Runnable() {
public void run() {
shell.setSize(++ startWidth, shell.getSize().y);
}
});
Thread.yield(); //
}
}
}).start();
모든 수 정 된 동작 을 하나의 Runnable 로 실행 합 니 다. while 순환 을 하나의 Runnable 에 두 고 실행 하 는 것 이 아니 라 Display 가 Runnable 을 실행 할 때 다른 응답 이 벤트 를 처리 하지 못 하여 전개 효과 가 원활 하지 않 습 니 다!또한, asyncExec 를 사용 하여 실행 하 더 라 도 같은 효과 입 니 다!
2. 오른쪽 에서 왼쪽으로 천천히 펼 치기
오른쪽 에서 왼쪽으로 천천히 효 과 를 보 여 주 는 사고 와 왼쪽 에서 오른쪽으로 똑 같 습 니 다. 셸 의 location 을 동시에 설정 하 는 조작 을 추 가 했 을 뿐 입 니 다. 그래 야 우 리 는 오른쪽 에서 왼쪽으로 천천히 열 리 는 효 과 를 모 의 할 수 있 습 니 다.구현 코드 는 다음 과 같 습 니 다:
final int width = shell.getSize().x;
final int startX = shell.getLocation().x;
new Thread(new Runnable() {
private int startWidth = 0;
public void run() {
while (startWidth <= width) {
shell.getDisplay().syncExec(new Runnable() {
public void run() {
shell.setSize(++ startWidth, shell.getSize().y);
shell.setLocation(startX + width - startWidth, shell.getLocation().y);
}
});
Thread.yield();
}
}
}).start();
3. 왼쪽 에서 오른쪽으로 천천히 사라 진다
천천히 사라 지 는 실현 방향 은 셸 의 size 를 점차적으로 바 꾸 는 것 이다. 왼쪽 에서 오른쪽으로 천천히 사라 지 는 것 은 셸 의 높이 가 변 하지 않 는 것 이다. width 는 원래 의 너비 에서 0 으로 점점 줄 어 들 고 셸 의 location 을 동기 화하 여 오른쪽 이 항상 같은 위치 에 있 도록 해 야 한다.코드 는 다음 과 같 습 니 다:
final int shellWidth = shell.getSize().x;
final int shellStartX = shell.getLocation().x;
new Thread() {
private int width = shellWidth;
private int startX = shellStartX;
public void run() {
while (width > 0) {
shell.getDisplay().syncExec(new Runnable() {
public void run() {
shell.setSize(-- width, shell.getSize().y);
shell.setLocation(++ startX, shell.getLocation().y);
}
});
Thread.yield();
}
}
}.start();
사라 진 후에 셸 을 닫 거나 이전 크기 와 위치 로 다시 복원 하 는 것 을 선택 할 수 있 습 니 다. 그러면 셸 이 시작 한 size 와 location 을 기록 해 야 합 니 다.
4. 오른쪽 에서 왼쪽으로 천천히 사라 진다
오른쪽 에서 왼쪽으로 천천히 사라 지 는 것 보다 왼쪽 에서 오른쪽으로 천천히 사라 지 는 것 은 셸 을 다시 설정 하 는 location 작업 이 줄 어 들 었 을 뿐 코드 는 다음 과 같 습 니 다.
final int shellWidth = shell.getSize().x;
final int shellStartX = shell.getLocation().x;
new Thread() {
private int width = shellWidth;
private int startX = shellStartX;
public void run() {
while (width > 0) {
shell.getDisplay().syncExec(new Runnable() {
public void run() {
shell.setSize(-- width, shell.getSize().y);
}
});
Thread.yield();
}
}
}.start();
5. 위 에서 아래로 천천히 보이 기
사 고 를 실현 하 는 것 은 셸 의 location 이 변 하지 않 고 셸 의 width 가 변 하지 않 으 며 셸 의 height 를 0 에서 셸 의 실제 높이 로 천천히 증가 시 키 면 된다.코드 도 간단 하 니 중복 쓰 지 않 고 여러분 스스로 쓰 세 요. 하하.
6. 위 에서 아래로 천천히 사라 진다
실현 사 고 는 셸 의 width 가 변 하지 않 고 셸 의 height 를 원시 높이 에서 0 으로 점차적으로 바 꾸 는 것 이다. 또한 height 는 1 을 줄 일 때마다 location 의 y 를 1 로 증가 시 켜 셸 의 밑부분 이 항상 같은 위치 에 있 고 윗부분 은 점차적으로 아래로 이동 하여 효 과 를 실현 하 는 것 이다. 코드 약.
7. 아래 에서 위로 천천히 보이 기
사 고 를 실현 하 는 것 은 셸 의 width 가 변 하지 않 고 높이 를 0 에서 원시 적 인 높이 로 점차적으로 바 꾸 는 동시에 셸 의 location 도 동기 화 시 켜 야 한다. 높이 가 1 이 증가 할 때마다 셸 의 location 의 y 는 1. 코드 약 을 줄인다.
8. 아래 에서 위로 천천히 사라 진다
사 고 를 실현 하 는 것 은 셸 의 width 가 변 하지 않 고 height 를 원래 의 높이 에서 0 으로 천천히 줄 이 는 것 입 니 다. 그 location 은 변 하지 않 고 코드 는 약간 입 니 다.
이상 은 셸 의 size 와 location 의 변 화 를 통 해 서서히 사라 지 거나 표시 되 는 효 과 를 실현 하 는 것 입 니 다. 이것 도 간단 한 창 필터 입 니 다.다음 에 SWT 창의 다른 효 과 를 계속 소개 할 것 입 니 다. 예 를 들 어 블라인드 의 열기 와 닫 기, 원형 사라 짐 과 표시 효과 등 입 니 다. -)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
m1 이클립스에 oracle cloud (오라클 클라우드)연결하기m1에는 oracle이 설치되지 않는다.... 큰맘먹고 지른 m1인데 oracle이 설치되지 않는다니... 하지만 이뻐서 용서가 된다. 이거 때문에 웹 개발 국비수업을 듣는 도중에 몇번 좌절하고 스트레스를 크게 받았...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.