More actions
imported>이길상 No edit summary |
imported>이길상 No edit summary |
||
| (7 intermediate revisions by 3 users not shown) | |||
| Line 31: | Line 31: | ||
== 내용 == | == 내용 == | ||
''' | '''자바 GUI''' | ||
* | * Swing 컴포넌트로 화면 구성하기 | ||
* 프레임과 패널, 버튼과 텍스트필드 | |||
'''계산기 만들어보기''' | |||
* UI과 로직을 분리하여 상속으로 엮어보기 | |||
'''ppt''' | '''ppt''' | ||
* [[https://drive.google.com/file/d/ | * [[https://drive.google.com/file/d/1CRW01mQkqc4ZWwI3ixQ44tncNyNfWpxh/view?usp=sharing]] | ||
= 코드 = | = 코드 = | ||
== | == 예제 == | ||
- | import javax.swing.*; | ||
import java.awt.*; | |||
import java.awt.event.*; | |||
class JavaGUI extends JFrame{ | |||
String names[] = {"1", "2", "3" ,"+" , "4", "5", "6", "-", "7", "8", "9", "*", "C", "0", "=", "/"}; | |||
JTextField inputText; | |||
JButton buttons[]; | |||
JavaGUI(){ | |||
setSize(300, 400); | |||
setTitle("계산기"); | |||
setLayout(new BorderLayout(0, 10)); | |||
JPanel inputPanel = new JPanel(new BorderLayout(5, 2)); | |||
JPanel buttonPanel = new JPanel(new GridLayout(4, 4)); | |||
add(inputPanel, BorderLayout.NORTH); | |||
add(buttonPanel, BorderLayout.CENTER); | |||
inputText = new JTextField(); | |||
inputText.setHorizontalAlignment(JTextField.RIGHT); | |||
inputPanel.add(inputText); | |||
buttons = new JButton[16]; | |||
for(int i = 0; i< 16; i++){ | |||
buttons[i] = new JButton(names[i]); | |||
buttonPanel.add(buttons[i]); | |||
} | |||
setVisible(true); | |||
setDefaultCloseOperation(EXIT_ON_CLOSE); | |||
} | |||
} | |||
class Calculator extends JavaGUI implements ActionListener{ | |||
Calculator(){ | |||
for(int i = 0; i< 16; i++){ | |||
buttons[i].addActionListener(this); | |||
} | |||
} | |||
@Override | |||
public void actionPerformed(ActionEvent e) { | |||
JButton pressedButton = (JButton)e.getSource(); | |||
String text = pressedButton.getText(); | |||
switch (text) { | |||
case "=": | |||
int result = textAnalysis(inputText.getText()); | |||
inputText.setText("" + result); | |||
break; | |||
case "C": | |||
inputText.setText(""); | |||
break; | |||
default: | |||
inputText.setText(inputText.getText() + text); | |||
break; | |||
} | |||
} | |||
int textAnalysis(String text){ | |||
if (text.contains("+")){ | |||
String[] formula = text.split("\\+"); | |||
int x = Integer.parseInt(formula[0]); | |||
int y = Integer.parseInt(formula[1]); | |||
return x + y; | |||
} | |||
if (text.contains("-")){ | |||
String[] formula = text.split("-"); | |||
int x = Integer.parseInt(formula[0]); | |||
int y = Integer.parseInt(formula[1]); | |||
return x - y; | |||
} | |||
if (text.contains("*")){ | |||
String[] formula = text.split("\\*"); | |||
int x = Integer.parseInt(formula[0]); | |||
int y = Integer.parseInt(formula[1]); | |||
return x * y; | |||
} | |||
if (text.contains("/")){ | |||
String[] formula = text.split("/"); | |||
int x = Integer.parseInt(formula[0]); | |||
int y = Integer.parseInt(formula[1]); | |||
return x / y; | |||
} | |||
return 0; | |||
} | |||
} | |||
public class GUI { | |||
public static void main(String[] args) { | |||
System.out.println("시작!"); | |||
Calculator gui = new Calculator(); | |||
} | |||
} | |||
= 숙제 = | = 숙제 = | ||
# 회고 작성 | # 회고 작성 | ||
= 회고록 = | = 회고록 = | ||
'''권재민''' | '''권재민''' | ||
* 난이도: /10 | * 난이도: 6/10 | ||
* 후기: | * 후기: GUI를 처음 접해보게 되어서 신선했어요. 잘 가르쳐주셔서 좀 쉽게 배울 수 있었어요. 물론 자바가 초음이라 막 쉽지는 않았습니다. | ||
---- | ---- | ||
'''이수은''' | '''이수은''' | ||
* 난이도: /10 | * 난이도: 5/10 | ||
* 후기: | * 후기: 새로운 것을 해봐서 재밌게 마무리 할 수 있었던 것 같습니다. 차근차근 알려주셔서 좋았어요. | ||
---- | ---- | ||
'''김민경''' | '''김민경''' | ||
* 난이도: /10 | * 난이도: 6/10 | ||
* 후기: | * 후기: 오늘 다룬 주제가 흥미로워서 처음 접해본 내용이 많았지만 재밌게 따라갈 수 있었습니다. | ||
---- | ---- | ||
'''강필중''' | '''강필중''' | ||
* 난이도: /10 | * 난이도: /10 | ||
* 후기: | * 후기: | ||
---- | ---- | ||
'''이길상''' | '''이길상''' | ||
* 후기: | * 후기: 짧은기간에 너무 많은걸 해결하려 한건 아닌지. | ||
---- | ---- | ||
---- | ---- | ||
----------------------------------- | ----------------------------------- | ||
Latest revision as of 12:28, 31 May 2021
참여자 명단
| 단장 | 이길상 | 16학번 | - |
| 단원 | 강필중 | 21학번 | - |
| 권재민 | - | ||
| 김민경 | - | ||
| 이수은 | - |
수업
진행
- 장소 : 구글 미츠
- 시간 : 19시 ~ 21시
내용
자바 GUI
- Swing 컴포넌트로 화면 구성하기
- 프레임과 패널, 버튼과 텍스트필드
계산기 만들어보기
- UI과 로직을 분리하여 상속으로 엮어보기
ppt
- [[1]]
코드
예제
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class JavaGUI extends JFrame{
String names[] = {"1", "2", "3" ,"+" , "4", "5", "6", "-", "7", "8", "9", "*", "C", "0", "=", "/"};
JTextField inputText;
JButton buttons[];
JavaGUI(){
setSize(300, 400);
setTitle("계산기");
setLayout(new BorderLayout(0, 10));
JPanel inputPanel = new JPanel(new BorderLayout(5, 2));
JPanel buttonPanel = new JPanel(new GridLayout(4, 4));
add(inputPanel, BorderLayout.NORTH);
add(buttonPanel, BorderLayout.CENTER);
inputText = new JTextField();
inputText.setHorizontalAlignment(JTextField.RIGHT);
inputPanel.add(inputText);
buttons = new JButton[16];
for(int i = 0; i< 16; i++){
buttons[i] = new JButton(names[i]);
buttonPanel.add(buttons[i]);
}
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
class Calculator extends JavaGUI implements ActionListener{
Calculator(){
for(int i = 0; i< 16; i++){
buttons[i].addActionListener(this);
}
}
@Override
public void actionPerformed(ActionEvent e) {
JButton pressedButton = (JButton)e.getSource();
String text = pressedButton.getText();
switch (text) {
case "=":
int result = textAnalysis(inputText.getText());
inputText.setText("" + result);
break;
case "C":
inputText.setText("");
break;
default:
inputText.setText(inputText.getText() + text);
break;
}
}
int textAnalysis(String text){
if (text.contains("+")){
String[] formula = text.split("\\+");
int x = Integer.parseInt(formula[0]);
int y = Integer.parseInt(formula[1]);
return x + y;
}
if (text.contains("-")){
String[] formula = text.split("-");
int x = Integer.parseInt(formula[0]);
int y = Integer.parseInt(formula[1]);
return x - y;
}
if (text.contains("*")){
String[] formula = text.split("\\*");
int x = Integer.parseInt(formula[0]);
int y = Integer.parseInt(formula[1]);
return x * y;
}
if (text.contains("/")){
String[] formula = text.split("/");
int x = Integer.parseInt(formula[0]);
int y = Integer.parseInt(formula[1]);
return x / y;
}
return 0;
}
}
public class GUI {
public static void main(String[] args) {
System.out.println("시작!");
Calculator gui = new Calculator();
}
}
숙제
- 회고 작성
회고록
권재민
- 난이도: 6/10
- 후기: GUI를 처음 접해보게 되어서 신선했어요. 잘 가르쳐주셔서 좀 쉽게 배울 수 있었어요. 물론 자바가 초음이라 막 쉽지는 않았습니다.
이수은
- 난이도: 5/10
- 후기: 새로운 것을 해봐서 재밌게 마무리 할 수 있었던 것 같습니다. 차근차근 알려주셔서 좋았어요.
김민경
- 난이도: 6/10
- 후기: 오늘 다룬 주제가 흥미로워서 처음 접해본 내용이 많았지만 재밌게 따라갈 수 있었습니다.
강필중
- 난이도: /10
- 후기:
이길상
- 후기: 짧은기간에 너무 많은걸 해결하려 한건 아닌지.