Difference between r1.3 and the current
@@ -14,59 +14,146 @@
2. 시간 : 19시 ~ 21시
== 내용 ==
'''ppt'''
}}}
= 숙제 =
1. 회고 작성
2.
= 회고록 =
'''권재민'''
'''이수은'''
* 난이도: 5/10
* 후기: 새로운 것을 해봐서 재밌게 마무리 할 수 있었던 것 같습니다. 차근차근 알려주셔서 좋았어요.
----
'''김민경'''
'''강필중'''
* 난이도: /10
'''이길상'''
= 숙제 제출 =
== 권재민 ==
{{{
내용
}}}
== 이수은 ==
{{{
내용
}}}
== 김민경 ==
{{{
내용
}}}
== 강필중 ==
{{{
내용
}}}
----
-----------------------------------
[새싹교실/2021]
== 내용 ==
'''주제'''
* 설명
'''자바 GUI'''
* Swing 컴포넌트로 화면 구성하기
* 프레임과 패널, 버튼과 텍스트필드
'''계산기 만들어보기'''
* UI과 로직을 분리하여 상속으로 엮어보기
'''ppt'''
* [[https://drive.google.com/file/d/1VROs6ohmB1c6jx7vIMXpC3d7naJmkk_m/view?usp=sharing]]
* [[https://drive.google.com/file/d/1CRW01mQkqc4ZWwI3ixQ44tncNyNfWpxh/view?usp=sharing]]
= 코드 === 예제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();
}
}
= 숙제 =
1. 회고 작성
'''권재민'''
* 난이도: /10
* 후기:
* 난이도: 6/10
* 후기: GUI를 처음 접해보게 되어서 신선했어요. 잘 가르쳐주셔서 좀 쉽게 배울 수 있었어요. 물론 자바가 초음이라 막 쉽지는 않았습니다.
----'''이수은'''
* 난이도: 5/10
* 후기: 새로운 것을 해봐서 재밌게 마무리 할 수 있었던 것 같습니다. 차근차근 알려주셔서 좋았어요.
----
'''김민경'''
* 난이도: /10
* 후기:
* 난이도: 6/10
* 후기: 오늘 다룬 주제가 흥미로워서 처음 접해본 내용이 많았지만 재밌게 따라갈 수 있었습니다.
----'''강필중'''
* 난이도: /10
* 후기:
* 후기:
----'''이길상'''
* 후기:
* 후기: 짧은기간에 너무 많은걸 해결하려 한건 아닌지.
---------------------------------------
[새싹교실/2021]
3.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(); } }