반응형
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();
	}
}

반응형

+ Recent posts