명품자바 programming 실습문제 9장

2020. 12. 4. 06:06Programming Language/JAVA

5. 

import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class Ex5 extends JFrame {

	public Ex5() {
		super("4x4 Color Frame");
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		
		Container c = getContentPane();
		c.setLayout(new GridLayout(4,4));
		
		for (int i=0; i<16; i++) {
			Color[] col= {Color.RED, Color.ORANGE, Color.YELLOW, Color.GREEN, Color.CYAN, Color.BLUE,
					Color.MAGENTA, Color.GRAY, Color.PINK, Color.LIGHT_GRAY, Color.RED, Color.ORANGE,
					Color.YELLOW, Color.GREEN, Color.CYAN, Color.BLUE};
			JLabel label = new JLabel(i+"");
			label.setBackground(col[i]);
			label.setOpaque(true);
			c.add(label);
		}
		
		setSize(400,200);
		setVisible(true);
	}
	
	public static void main(String[] args) {
		new Ex5();
	}

}

 

6. 

import java.awt.Color;
import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class Ex6 extends JFrame {

	public Ex6() {
		super("Random Labels");
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		
		Container c = getContentPane();
		c.setLayout(null);
		
		for (int i=0; i<20; i++) {
			JLabel label = new JLabel("");
			String text = Integer.toString(i);
			label.setText(text);
			
			int x = (int)(Math.random()*200) + 50;
			int y = (int)(Math.random()*200) + 50;
			
			label.setBackground(Color.BLUE);
			label.setSize(10,10);
			label.setLocation(x,y);
			label.setOpaque(true);
			c.add(label);
		}
		
		
		setSize(300,300);
		setVisible(true);
	}
	
	public static void main(String[] args) {
		new Ex6();
	}

}

 

7.

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Ex7 extends JFrame {
	
	public Ex7() {
		super("계산기 프레임");
		setSize(300,300);
		
		Container c = getContentPane();
		c.setLayout(new BorderLayout());
		c.add(new NorthPanel(), BorderLayout.NORTH);
		c.add(new CenterPanel(), BorderLayout.CENTER);
		c.add(new SouthPanel(), BorderLayout.SOUTH);
		
		setVisible(true);
	}
	
	// JPanel에 컴포넌트 붙임. JPanel은 컨테이너이면서 --> JFrame의 컴포넌트
	class NorthPanel extends JPanel{ 
		public NorthPanel() {
			setBackground(Color.LIGHT_GRAY);
			setLayout(new FlowLayout());
			JLabel text = new JLabel("수식 입력");
			JTextField exp = new JTextField(15);
			add(text);
			add(exp);
		}
	}
	
	class CenterPanel extends JPanel{
		public CenterPanel() {
			setBackground(Color.BLUE);
			setLayout(new GridLayout(4,4,5,5));
			for (int i=0; i<10; i++) {
				JButton b = new JButton(Integer.toString(i));
				add(b);
			}
			
			JButton b = new JButton("CE");
			add(b);
			b = new JButton("계산");
			add(b);
			
			JButton [] btn = { new JButton("+"), new JButton("-"),
								new JButton("X"), new JButton("/") };
			
			for (int i=0; i<btn.length; i++) {
				btn[i].setBackground(Color.CYAN);
				add(btn[i]);
			}
		}
	}
	
	class SouthPanel extends JPanel{
		public SouthPanel() {
			setBackground(Color.YELLOW);
			setLayout(new FlowLayout());
			JLabel text = new JLabel("계산 결과");
			JTextField res = new JTextField(15);
			add(text);
			add(res);
		}
	}
	
	public static void main(String[] args) {
		new Ex7();
	}

}
반응형