안녕하세요 중간에 에러 하나 해결하느라 조금 늦었습니다;;
이번 장 이후부터는 개인적으로 흥미가 조금 있었으나, 사실 제가 백엔드 개발자를 1지망으로 희망하기에
GUI를 다루는 부분 보다는 시스템이나 서버쪽을 더 집중하는 게 유용하다고 들었으며 그게 맞다고 생각하기에,
9장 이후부터는 기본 문제를 제외한 대다수 문제들을 스킵할 수도 있으니, 양해부탁드립니다!
대신에 10장 부터는 책에 나와있는 문제를 직접 타이핑 하고 왜 그렇게 되는지 해설하는 것을 올려보도록 하겠습니다.
1번 문제
기본적으로 프레임에 컴포넌트를 추가하는 문제였습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Test extends JFrame { JLabel jr; JButton jb1; JButton jb2; JPanel jp; Test() { setLayout(new FlowLayout()); setTitle("MyFrame"); setSize(300, 200); jr = new JLabel("자바는 즐거우세요?"); jb1 = new JButton("yes"); jb2 = new JButton("no"); jp = new JPanel(); jp.add(jr); jp.add(jb1); jp.add(jb2); add(jp); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { Test t = new Test(); } } | cs |
2번 문제
1번 문제와 거의 유사하나 textField를 활용하는 문제이기에 한번 풀어봤습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Test extends JFrame { JLabel jr; JButton jb; JPanel jp; JTextField jt; Test() { setLayout(new FlowLayout()); setTitle("MyFrame"); setSize(300, 200); jr = new JLabel("카운터 값"); jb = new JButton("증가"); jp = new JPanel(); jt = new JTextField(10); jt.setText("0"); jp.add(jr); jp.add(jt); jp.add(jb); add(jp); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { Test t = new Test(); } } | cs |
3번부터 9번 문제는 스킵하고, 어떤 식으로 접급하면 좋을지에 대해 간략히 적어보겠습니다.
더 좋은 의견이 있으신 분들은 댓글로 남겨주셔도 좋습니다!
3. 2번 문제에서 요소만 바꾸면 될 것 같습니다.
4. 레이아웃을 gridLayout으로 수정해주고 간격도 맞춰준 상태에서, 총 3개의 panel(배경 패널, label 부착하는 패널, button부착하는 패널)을 이용해서 작업하면 될 듯 싶습니다.
5. 2번 3번 문제의 복합 형태라고 봅니다.
6. 레이아웃을 boderLayout으로 수정해주고 panel은 2개를 이용해서 작업해주면 좋을듯 싶습니다.
7. gridLayout으로 작업하고 배경색을 잘 수정하면 될 듯 싶습니다.
책에서는 랜덤한 색상을 다음의 코드를 이용해 만든다고 하니 참고하시면 됩니다
int R = (int)(Math.random()*256);
int G = (int)(Math.random()*256);
int B = (int)(Math.random()*256);
Color color = new Color(R,G,B);
8. 이 문제는 교재에 계산기 만들어 보는 문제를 응용하면 될 듯 싶습니다.
9. 이 문제는 레이아웃을 절대배치로 수정 후에 label과 그 위치나 크기를 조절하는 메소드에 난수를 줘서 풀어보면 될 듯 싶습니다.
ps:많은 문제들을 스킵하려니 괜히 양심에 찔리기도 하고 혹시라도 도움이 필요하신 분들에게 큰 도움이 못되어드린 것 같아 죄송하지만, 크게 중요한 것도 아니고 시간만 있으면 언제든지 할 수 있으니 가볍게 넘어가겠습니다!~~
'Study > POWER JAVA(기본서)' 카테고리의 다른 글
| POWER JAVA 10장 Lab1 가위,바위,보 게임 (주석) (0) | 2022.11.02 |
|---|---|
| POWER JAVA 10장 LAB 키패드 만들기 (주석) (0) | 2022.11.02 |
| POWER JAVA 8장 프로그래밍 1번 문제 ~ 5번 문제 (0) | 2022.10.29 |
| POWER JAVA 8장 mini project 글자 추측 게임(행맨 게임) (2) | 2022.10.27 |
| POWER JAVA 7장 프로그래밍 1번 문제 ~ 8번 문제 (0) | 2022.10.23 |