본문 바로가기

PROGRAM/JAVA

GUI #2

import java.awt.Graphics;
import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

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

class GraphicDrawEx extends JFrame{
	private MyPanel myPanel = new MyPanel();
	public GraphicDrawEx() {
		run();
	}

	private void run() {
		setContentPane(myPanel);
		setTitle("GraphicDrawEx");
		setBounds(700,300,400,350);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	class MyPanel extends JPanel{
		String file_path = "C:\\Users\\user\\eclipse-workspace\\Test0830\\images\\grape.jpg";
		private ImageIcon imageicon = new ImageIcon(file_path);
		
		//Alt+Shift+S -> Override -> paintComponent
		protected void paintComponent(Graphics g) {
			super.paintComponent(g);
			JLabel label = new JLabel();
			label.setBounds(50,10,300,300);
		    Image image = (imageicon).getImage().getScaledInstance(
                            label.getWidth(), label.getHeight(), Image.SCALE_SMOOTH);
		    imageicon = new ImageIcon(image);
		    label.setIcon(imageicon);
			add(label);
		}
	}
}

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;

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

class PaintComponetEx extends JFrame{
	private MyPanel panel = new MyPanel();
	public PaintComponetEx() {
		run();
	}
	private void run() {
		setContentPane(panel);  // Frame의 ContentPane으로 panel객체를 사용함
		setBounds(700, 300, 400, 250);
		setTitle("PaintComponet Ex");
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	class MyPanel extends JPanel{
		@Override
		protected void paintComponent(Graphics g) {
			super.paintComponent(g);
			g.setColor(new Color(255,0,0)); //red
			g.drawRect(10, 10, 100, 100);
			g.setColor(Color.BLUE);
			g.drawRect(90, 55, 100, 100);
		}
	}
}

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

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.ScrollPaneConstants;

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

class P02_JTabbedPane extends JFrame{
	JPanel panel1, panel2;
	public P02_JTabbedPane() {
		run();
	}

	private void run() {
		// 탭 생성
		JTabbedPane tabbedPane = new JTabbedPane();
		// 탭에 들어갈 패널을 추가
		panel1 = new JPanel();
		panel2 = new JPanel();
		
		//첫번째 패널에 들어갈 메뉴 구성하기
		//버튼을 누르면 배경 색이 바뀌도록 코딩
		JButton btn_red = new JButton("RED");
		btn_red.addActionListener(new backGroundChangeListener());
		JButton btn_blue = new JButton("BLUE");
		btn_blue.addActionListener(new backGroundChangeListener());
		JButton btn_green = new JButton("GREEN");
		btn_green.addActionListener(new backGroundChangeListener());
		
		// 버튼을 패널1에 추가하기
		panel1.add(btn_red);
		panel1.add(btn_blue);
		panel1.add(btn_green);
		
		//두번째 패널에 들어갈 메뉴구성하기
		//라디오 탭을 선택하면 선택된 내용이 레이블로 결과 표시
		JRadioButton radio_apple = new JRadioButton("사과");
		JRadioButton radio_banana = new JRadioButton("바나나");
		JRadioButton radio_melon = new JRadioButton("멜론");
		JRadioButton radio_grape = new JRadioButton("포도");
		
		ButtonGroup radioGroup = new ButtonGroup();
		radioGroup.add(radio_apple);
		radioGroup.add(radio_banana);
		radioGroup.add(radio_melon);
		radioGroup.add(radio_grape);
		
		panel2.add(radio_apple);
		panel2.add(radio_banana);
		panel2.add(radio_melon);
		panel2.add(radio_grape);
		
		// 첫번째 패널 두번째 패널을 탭에 올리기
		tabbedPane.add("배경색",panel1);
		tabbedPane.add("과일",panel2);
		
		add(tabbedPane);
		setTitle("P02 JTabbedPane");
		setBounds(700, 300, 400, 250);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	private class backGroundChangeListener implements ActionListener{
		@Override
		public void actionPerformed(ActionEvent e) {
			JButton btn_cur = (JButton)e.getSource();
			
			String[] bgcolor = {"RED","BLUE","GREEN"};
			Color[] colors = {Color.RED, Color.BLUE, Color.GREEN};
			for(int i=0; i<bgcolor.length; i++) {
				if(btn_cur.getText().equals(bgcolor[i]))
					panel1.setBackground(colors[i]);
			}
		}
	}
}

 

 

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.ScrollPaneConstants;

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

class P02_JTabbedPane extends JFrame{
	JPanel panel1,panel2;
	public P02_JTabbedPane() {
		run();
	}

	private void run() {
		// 탭 생성
		JTabbedPane tabbedPane = new JTabbedPane();
		// 탭에 들어갈 패널을 추가
		panel1 = new JPanel();
		panel2 = new JPanel();
		
		//첫번째 패널에 들어갈 메뉴 구성하기
		//버튼을 누르면 배경 색이 바뀌도록 코딩
		JButton btn_red = new JButton("RED");
		JButton btn_blue = new JButton("BLUE");
		JButton btn_green = new JButton("GREEN");
		
		
		// 버튼을 패널1에 추가하기
		panel1.add(btn_red);
		panel1.add(btn_blue);
		panel1.add(btn_green);
		
		//두번째 패널에 들어갈 메뉴구성하기
		//라디오 탭을 선택하면 선택된 내용이 레이블로 결과 표시
		JRadioButton radio_apple = new JRadioButton("사과");
		JRadioButton radio_banana = new JRadioButton("바나나");
		JRadioButton radio_melon = new JRadioButton("멜론");
		JRadioButton radio_grape = new JRadioButton("포도");
		
		ButtonGroup radioGroup = new ButtonGroup();
		radioGroup.add(radio_apple);
		radioGroup.add(radio_banana);
		radioGroup.add(radio_melon);
		radioGroup.add(radio_grape);
		
		panel2.add(radio_apple);
		panel2.add(radio_banana);
		panel2.add(radio_melon);
		panel2.add(radio_grape);
		
		// 첫번째 패널 두번째 패널을 탭에 올리기
		tabbedPane.add("배경색",panel1);
		tabbedPane.add("과일",panel2);
		
		add(tabbedPane);
		setTitle("P02 JTabbedPane");
		setBounds(700, 300, 400, 250);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

 

 

 

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ScrollPaneConstants;

public class JavaExam {
	public static void main(String[] args) {
		new P01_JTable();
	}
}
class P01_JTable extends JFrame{
	public P01_JTable() {
		run();
	}
	private void run() {
		String[] header = {"이름","국어","수학","자바"};
		String[][] contents = {
				{"김철수","93","92","55"},
				{"이철수","83","99","89"},
				{"박철수","78","89","79"},
				{"홍철수","69","90","99"},
				{"홍철1","69","90","99"},
				{"홍철2","69","90","99"},
				{"홍철3","69","90","99"},
				{"홍철4","69","90","99"},
				{"홍철5","69","90","99"},
				{"홍철6","69","90","99"},
				{"홍철7","69","90","99"},
				{"홍철8","69","90","99"},
				{"홍철9","69","90","99"},
				{"강철1","59","77","76"},
				{"강철2","59","77","76"}};
		
		JTable table = new JTable(contents, header);
		
		JScrollPane jScrollPane = new JScrollPane(
				table,
				ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
				ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		
		add(jScrollPane);
		setTitle("P01 JTable");
		setBounds(700, 300, 400, 250);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

import javax.swing.JFrame;

public class JavaExam {
	public static void main(String[] args) {
		new P01_JTable();
	}
}
class P01_JTable extends JFrame{
	public P01_JTable() {
		run();
	}
	private void run() {
		setTitle("P01 JTable");
		setBounds(700, 300, 400, 300);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

'PROGRAM > JAVA' 카테고리의 다른 글

GUI  (0) 2022.08.29
CSV파일 처리  (0) 2022.08.10
Intellij 시작하기  (0) 2020.11.09
JDK 1.8.0_271 설치하기  (0) 2020.10.21
Thread TimerEx  (0) 2020.06.20