[2021.02.04.목] TIL

노을·2021년 2월 4일
1

TIL

목록 보기
36/81

👨‍⚕ 오늘의 컨디션

  • 💤 : 약 5시간
  • 전전날에 늦게 일어나는 바람에, 어제도 늦게 자버렸다. 피곤한다.

⌛ 오늘 한 일

1. 간단한 JAVA 응용프로그램(AWT)

(1) 좌표 계산

(2) 구현

  • 캔버스

  • 파일 저장

    한 달전만 해도 AWT 패널 파일 저장 하는 방법을 몰랐는데,

         initFrame();
          bi = new BufferedImage (FRAME_WIDTH,FRAME_HEIGHT,BufferedImage.TYPE_BYTE_INDEXED);
          Graphics2D g = bi.createGraphics();
          this.paint(g);
          makeMenu(); //m 모든 프레임, 컴포넌트들이 그려지고, 메뉴를 그려야 컴포넌트들이 안가려지고 잘그려짐
    

    위와 같이 BufferdImage를 먼저 프레임 크기로 생성하고,
    Graphic객체로 변환해 paint() 메소드의 인자로 넘겨주면 기본준비가 끝난다.

    ## 저장버튼 액션 리스너
            
           mSave.addActionListener(new ActionListener() {
               @Override
               public void actionPerformed(ActionEvent e) {
                   dlgSave.setVisible(true);
                   g2d.dispose();
    
                   String data = dlgSave.getDirectory()+ dlgSave.getFile()+".png";;  // 파일의 디렉토리 정보와 파일명을 얻는다.
                   try{
                       ImageIO.write(bi, "PNG", new File(data));
                       String Filename = dlgSave.getFile();
                       setTitle(Filename);  // 프레임 명을 파일명으로 바꾼다..
                   }catch(Exception e1){
    
                   }
               }
           });

    그리고, 저장전에 g2d.dispose()를 진행하고 저장기능을 구현 하면 된다.
    AWT를 자세히 공부하지 않아, 명확한 원리는 모르지만 나중에 필요하면 알아봐야겠다.

2.자바의 정석

Ch07. 객체지향 프로그래밍II

  • 📃상태 : 진행중 (공부후 추가 작성)

🔨 오늘의 삽질1

3번째 이야기

💬상황: 캔버스에 명령한 그림이 안그려지는 제대로 상황

🔎 문제원인

모든 프레임이 그려지기 전에 메뉴 생성을 호출해서 중간에 꼬인 것 같다.
정확한 원인은 모르겠지만, 모든 프레임이 그려지고 나서 메뉴를 생성하니까 문제가 해결이 되었다.

🔨 오늘의 삽질2

4번째 이야기

💬상황: 인텔리제이가 실행되지 않는 상황

🔎 문제원인

WSL2로 전환하고 Docker Desktop을 사용하면서부터 보게 된 에러인데 Hyper-V가 설정되면 윈도우 시작시 포트들을 가져가버리기 때문인 것 같다.

# 해결방법

 dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
 이후 윈도우를 재시작
 
netsh int ipv6 add excludedportrange protocol=tcp startport=6942 numberofports=10
 JetBrains 사의 IDE를 동시에 10개 이상은 안 쓸 거 같아 10개만 예약해뒀다.
 
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

🌙 느낀점

오늘은 간만에 GUI 프로그래밍이라, 부담없이 할 수 있는 것만 하니까 즐거웠다.
누군가에게는 매우 쉬울 수 있지만, 한 달전에는 내가 못했던 패널의 그림 저장 기능을 오늘 구현 했을 때 과거의 나보다는 발전했다라는 것을 깨달은 것 같다. 자기 만족이지만 기분이 좋다.


🏁 자바의 정석 정독현황

ch1ch2ch3ch4ch5ch6ch7ch8
✅ 02-03⌛ 02-03
ch9ch10ch11ch12ch13ch14ch15ch16
profile
카르페디엠

1개의 댓글

comment-user-thumbnail
2021년 2월 4일

노을의 GUI는 언제나 감동입니다. 🥲

답글 달기