보더 레이아웃을 사용하자

package main;

import javax.swing.*;
import java.awt.*;

public class BorderLayoutEx extends JFrame {
	BorderLayoutEx() {
		setTitle("BorderLayout Sample");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLayout(new BorderLayout());
		add(new JButton("Console"), BorderLayout.SOUTH);
		add(new JButton("Test.java"), BorderLayout.CENTER);
		add(new JButton("Package Explorer"), BorderLayout.WEST);
		setSize(600, 400);
		setVisible(true);
	}

	public static void main(String[] args) {
		new BorderLayoutEx();
	}
}

 

 

그리드 레이아웃을 사용하자

package main;

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

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

public class MySwing01 extends JFrame{
	MySwing01(){
	setTitle("Multiple Layout Example"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	
	JPanel contentP=new JPanel();
	contentP.setLayout(new BorderLayout());
	
	JPanel upperP = new JPanel();
	upperP.setLayout(new GridLayout(1, 2));
	
	JPanel leftP=new JPanel();
	leftP.setLayout(new GridLayout(4,1));
	leftP.setBackground(Color.YELLOW);
	
	leftP.add(new JLabel("Type ID", SwingConstants.CENTER));
	leftP.add(new JTextField(""));
	
	leftP.add(new JLabel("Type Password", SwingConstants.CENTER));
	leftP.add(new JTextField(""));
	
	upperP.add(leftP);
	
	JPanel rightP=new JPanel();
	rightP.setLayout(new GridLayout(3,1));
	rightP.setBackground(Color.GREEN);
	rightP.add(new JLabel("Plaese check!!", SwingConstants.CENTER));
	rightP.add(new JLabel("C# JCheckBox", SwingConstants.CENTER));
	rightP.add(new JLabel("C++ JCheckBox", SwingConstants.CENTER));
	
	upperP.add(rightP);
	contentP.add(upperP);
	
	JPanel lowerP=new JPanel(); 
	JButton okB=new JButton("OK");
	okB.setPreferredSize(new Dimension(100,30));
	lowerP.add(okB);
	contentP.add(lowerP, BorderLayout.SOUTH); 
	add(contentP);
	setSize(300, 200); setVisible(true);
	}

	public static void main(String[] args) {
		new MySwing01();
	}
}

 

 

버튼을 리스너에 등록하여 콜백하여 특정 기능을 수행하도록 하자

package _1117_C;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class main extends JFrame {

	JLabel label;

	main() {
		setTitle("버튼 눌러 텍스트 보여주기");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		JPanel grid = new JPanel();
		grid.setLayout(new GridLayout(2, 1));

		JPanel topGrid = new JPanel();
		topGrid.setLayout(new GridLayout(1, 3));

		JButton button1 = new JButton("Hannam");
		JButton button2 = new JButton("University");
		JButton button3 = new JButton("Student");

		topGrid.add(button1);
		topGrid.add(button2);
		topGrid.add(button3);

		grid.add(topGrid);

		label = new JLabel("Press Button", SwingConstants.CENTER);
		grid.add(label);

		add(grid);
		setSize(300, 150);
		setVisible(true);

		MyActionListener listener = new MyActionListener();
		button1.addActionListener(listener);
		button2.addActionListener(listener);
		button3.addActionListener(listener);
		
	}

	private class MyActionListener implements ActionListener {

		@Override
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			label.setText(((JButton)e.getSource()).getText());
		}
	}

	public static void main(String[] args) {
		new main();
	}
}

 

 

카드 레이아웃을 사용하자

package _1117_D;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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

public class _1117C extends JFrame {

	JLabel label;
	JPanel grid;

	_1117C() {
		setTitle("버튼 눌러 텍스트 보여주기");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		grid = new JPanel();
		grid.setLayout(new GridLayout(2, 1));

		JPanel topGrid = new JPanel();
		topGrid.setLayout(new GridLayout(1, 3));

		JButton button1 = new JButton("Hannam");
		JButton button2 = new JButton("University");
		JButton button3 = new JButton("Student");

		topGrid.add(button1);
		topGrid.add(button2);
		topGrid.add(button3);

		grid.add(topGrid);

		label = new JLabel("Press Button", SwingConstants.CENTER);
		grid.add(label);

		MyActionListener listener = new MyActionListener();
		button1.addActionListener(listener);
		button2.addActionListener(listener);
		button3.addActionListener(listener);
		
	}
	
	public JPanel getPanel()
	{
		return grid;
	}

	private class MyActionListener implements ActionListener {

		@Override
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			label.setText(((JButton)e.getSource()).getText());
		}
	}
}
package _1117_D;

import javax.swing.*;
import javax.swing.border.EmptyBorder;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class main extends JFrame {
	private JPanel contentPane;
	private JPanel panelUp;
	private JPanel panelDown;
	
	private JButton buttonLeft;
	private JButton buttonCenter;
	private JButton buttonRight;
	
	private JPanel panelLeft;
	private JPanel panelCenter;
	private JPanel panelRight;
	
	private JLabel labelNewLabel_1;
	private JButton buttonNewButton;
	private JButton buttonNewButton_1;
	private JButton buttonNewButton_2;
	
	private final static String PANEL_LEFT = "버튼3개";
	private final static String PANEL_CENTER = "이전연습문제";
	private final static String PANEL_RIGHT = "글자";

	public static void main(String[] args) {
		main frame = new main();
		frame.setVisible(true);
	}

	public main() {
		setTitle("CardLayout 사용하기");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 600, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);
		
		panelUp = new JPanel();
		contentPane.add(panelUp, BorderLayout.NORTH);
		buttonLeft = new JButton(PANEL_LEFT);
		buttonLeft.addActionListener(new MyActionListener());
		panelUp.add(buttonLeft);
		
		buttonCenter = new JButton(PANEL_CENTER);
		buttonCenter.addActionListener(new MyActionListener());
		panelUp.add(buttonCenter);
		
		buttonRight = new JButton(PANEL_RIGHT);
		buttonRight.addActionListener(new MyActionListener());
		panelUp.add(buttonRight);
		
		panelDown = new JPanel();
		contentPane.add(panelDown, BorderLayout.CENTER);
		panelDown.setLayout(new CardLayout());
		
		panelLeft = new JPanel();
		buttonNewButton = new JButton("button1");
		panelLeft.add(buttonNewButton);
		buttonNewButton_1 = new JButton("button2");
		panelLeft.add(buttonNewButton_1);
		buttonNewButton_2 = new JButton("button3");
		panelLeft.add(buttonNewButton_2);
		panelDown.add(panelLeft, PANEL_LEFT);
		
		panelCenter = new JPanel();
		_1117C center = new _1117C();
		panelCenter.add(center.getPanel());
		panelDown.add(panelCenter, PANEL_CENTER);

		
		panelRight = new JPanel();
		labelNewLabel_1 = new JLabel("오른쪽 입니다");
		panelRight.add(labelNewLabel_1);
		panelDown.add(panelRight, PANEL_RIGHT);
	}

	private class MyActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			JButton button = (JButton) e.getSource();
			CardLayout cl = (CardLayout) (panelDown.getLayout());
			cl.show(panelDown, button.getText());
		}
	}
}

 

bonnate