반응형
package gui;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class ComponentDemo1 extends JFrame{
ComponentDemo1() {
setTitle("원 넓이 구하기");
setLayout(new BorderLayout(10, 10));
showNorth();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300,200);
setVisible(true);
}
void showNorth() {
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel panel = new JPanel(new GridLayout(2,0));
JLabel l1 = new JLabel("원의 반지름");
JLabel l2 = new JLabel("원의 넓이");
JTextField t1 = new JTextField(10);
JTextField t2 = new JTextField(10);
t2.setEnabled(false);
p1.add(l1);
p1.add(t1);
p2.add(l2);
p2.add(t2);
panel.add(p1);
panel.add(p2);
add(panel, BorderLayout.NORTH);
}
public static void main(String[] args) {
new ComponentDemo1();
}
}

package gui;
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class ComponentDemo2 extends JFrame{
public ComponentDemo2() {
setTitle("원 넓이 구하기");
setLayout(new BorderLayout(10, 10));
showCenter();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 220);
setVisible(true);
}
void showCenter() {
JPanel panel = new JPanel();
JTextArea area= new JTextArea(30, 20);
area.setText("이 영역에 원의 넓이를 \n 계산하는 과정이 나타납니다.");
area.setEditable(false);
area.setForeground(Color.RED);
panel.add(area);
add(panel, BorderLayout.CENTER);
}
public static void main(String[] args) {
new ComponentDemo2();
}
}

package gui;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ComponentDemo3 extends JFrame{
ComponentDemo3() {
setTitle("원 넓이 구하기");
setLayout(new BorderLayout(10, 10));
showSouth();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 220);
setVisible(true);
}
void showSouth() {
String[] color = {"red", "blue", };
JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER, 10,10));
JButton cal = new JButton("계산");
JComboBox<String> cb = new JComboBox<>(color);
JButton reset = new JButton("리셋");
panel.add(cal);
panel.add(cb);
panel.add(reset);
add(panel, BorderLayout.SOUTH);
}
public static void main(String[] args) {
new ComponentDemo3();
}
}

통합↓
package gui;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class ComponentDemo4 extends JFrame{
ComponentDemo4() {
setTitle("원 넓이 구하기");
setLayout(new BorderLayout(10, 10));
showNorth();
showCenter();
showSouth();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 200);
setVisible(true);
}
void showNorth() {
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel panel = new JPanel(new GridLayout(2,0));
JLabel l1 = new JLabel("원의 반지름");
JLabel l2 = new JLabel("원의 넓이");
JTextField t1 = new JTextField(10);
JTextField t2 = new JTextField(10);
t2.setEnabled(false);
p1.add(l1);
p1.add(t1);
p2.add(l2);
p2.add(t2);
panel.add(p1);
panel.add(p2);
add(panel, BorderLayout.NORTH);
}
void showCenter() {
JPanel panel = new JPanel();
JTextArea area= new JTextArea(30, 20);
area.setText("이 영역에 원의 넓이를 \n 계산하는 과정이 나타납니다.");
area.setEditable(false);
area.setForeground(Color.RED);
panel.add(area);
add(panel, BorderLayout.CENTER);
}
void showSouth() {
String[] color = {"red", "blue", };
JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER, 10,10));
JButton cal = new JButton("계산");
JComboBox<String> cb = new JComboBox<>(color);
JButton reset = new JButton("리셋");
panel.add(cal);
panel.add(cb);
panel.add(reset);
add(panel, BorderLayout.SOUTH);
}
public static void main(String[] args) {
new ComponentDemo4();
}
}

package gui;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
public class EventExams extends JFrame implements ActionListener {
int index = 0;
String[] msgs = {"First", "Second", "Third"};
JButton button1 = new JButton("<<");
JButton button2 = new JButton(">>");
JButton button3 = new JButton("msg[0]");
public EventExams() {
BorderLayout layout = new BorderLayout();
setLayout(layout);
button1.addActionListener(this);
button2.addActionListener(this);
button3.setEnabled(false);
add(button1, BorderLayout.WEST);
add(button2, BorderLayout.EAST);
add(button3, BorderLayout.CENTER);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setSize(300, 100);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
if(obj == button1) {
index --;
}
else if (obj == button2) {
index ++;
}
if(index > 2) {
index = 0;
}
else if(index < 0) {
index = 2;
}
button3.setText(msgs[index]);
}
public static void main(String[] args) {
EventExams app = new EventExams();
}
}

package gui;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class IndepClassListener extends JFrame {
JTextField t1, t2;
JTextArea area;
JButton cal,reset;
JComboBox<String> cb;
public IndepClassListener() {
setTitle("원 넓이 구하기");
setLayout(new BorderLayout(10, 10));
showNorth();
showCenter();
showSouth();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 220);
setVisible(true);
}
void showNorth() {
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel panel = new JPanel(new GridLayout(2,0));
JLabel l1 = new JLabel("원의 반지름");
JLabel l2 = new JLabel("원의 넓이");
t1 = new JTextField(10);
t2 = new JTextField(10);
t2.setEnabled(false);
p1.add(l1);
p1.add(t1);
p2.add(l2);
p2.add(t2);
panel.add(p1);
panel.add(p2);
add(panel, BorderLayout.NORTH);
}
void showCenter() {
JPanel panel = new JPanel();
area= new JTextArea(30, 20);
area.setText("이 영역에 원의 넓이를 \n 계산하는 과정이 나타납니다.");
area.setEditable(false);
area.setForeground(Color.RED);
panel.add(area);
add(panel, BorderLayout.CENTER);
}
void showSouth() {
String[] color = {"red", "blue", };
JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER, 10,10));
cal = new JButton("계산");
cal.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(t1.getText().isEmpty() == true) {
System.out.println("반지름을 입력하세요");
}
else {
String s = t1.getText();
double radius = Double.parseDouble(s);
double result = radius * radius * 3.14;
t2.setText("" + result);
area.setText(radius + " * " + radius + " * 3.14 = " + result);
}}
});
cb = new JComboBox<>(color);
reset = new JButton("리셋");
reset.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
t1.setText("");
t2.setText("");
area.setText("");
}
});
panel.add(cal);
panel.add(cb);
panel.add(reset);
add(panel, BorderLayout.SOUTH);
}
public static void main(String[] args) {
new IndepClassListener();
}
}

반응형
'JAVA > 2020 프로그램' 카테고리의 다른 글
[JAVA] 파일 입출력 (0) | 2020.01.19 |
---|---|
[JAVA] 로또 번호 추출 프로그램 (0) | 2020.01.05 |
[JAVA] 랜덤함수를 이용하여 숫자배열 만들기 (0) | 2019.12.15 |
[JAVA] 숫자 출현횟수 (0) | 2019.12.15 |
[JAVA] 가위바위보 게임 (0) | 2019.12.08 |