220830 JFrame 정리

2022. 8. 30. 21:37카테고리 없음

구구단 JFrame 맹글기

package day05;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.JButton;
import javax.swing.JTextArea;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class MySwing07 extends JFrame {

	private JPanel contentPane;
	private JTextField tf;
	private JTextArea ta;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					MySwing07 frame = new MySwing07();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public MySwing07() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 250, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		tf = new JTextField();
		tf.setBounds(90, 10, 116, 21);
		contentPane.add(tf);
		tf.setColumns(10);
		
		JLabel lbl = new JLabel("단수:");
		lbl.setHorizontalAlignment(SwingConstants.RIGHT);
		lbl.setBounds(12, 13, 57, 15);
		contentPane.add(lbl);
		
		JButton btn = new JButton("출력하기");
		btn.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				printDan(tf.getText());
			}
		});
		btn.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			}
		});
		btn.setBounds(100, 41, 97, 23);
		contentPane.add(btn);
		
		ta = new JTextArea();
		ta.setBounds(34, 74, 172, 177);
		contentPane.add(ta);
	}
	public void printDan(String dan) {
		int num = Integer.parseInt(dan);
		String result="";
		result+=dan+"*"+1+"="+num*1+"\n";
		result+=dan+"*"+2+"="+num*2+"\n";
		result+=dan+"*"+3+"="+num*3+"\n";
		result+=dan+"*"+4+"="+num*4+"\n";
		result+=dan+"*"+5+"="+num*5+"\n";
		result+=dan+"*"+6+"="+num*6+"\n";
		result+=dan+"*"+7+"="+num*7+"\n";
		result+=dan+"*"+8+"="+num*8+"\n";
		result+=dan+"*"+9+"="+num*9+"\n";
		
		ta.setText(result);
	}
}

가위바위보 JFrame

package day05;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class MySwing08 extends JFrame {

	private JPanel contentPane;
	private JTextField tf_mine;
	private JTextField tf_com;
	private JTextField tf_result;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					MySwing08 frame = new MySwing08();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public MySwing08() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lbl_mine = new JLabel("나:");
		lbl_mine.setBounds(49, 56, 57, 15);
		contentPane.add(lbl_mine);
		
		JLabel lbl_com = new JLabel("컴:");
		lbl_com.setBounds(49, 81, 57, 15);
		contentPane.add(lbl_com);
		
		JLabel lbl_result = new JLabel("결과:");
		lbl_result.setBounds(49, 106, 57, 15);
		contentPane.add(lbl_result);
		
		tf_mine = new JTextField();
		tf_mine.setBounds(118, 53, 116, 21);
		contentPane.add(tf_mine);
		tf_mine.setColumns(10);
		
		tf_com = new JTextField();
		tf_com.setBounds(118, 78, 116, 21);
		contentPane.add(tf_com);
		tf_com.setColumns(10);
		
		tf_result = new JTextField();
		tf_result.setBounds(118, 103, 116, 21);
		contentPane.add(tf_result);
		tf_result.setColumns(10);
		
		JButton btn = new JButton("게임하기");
		btn.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				gameResult();
			}
		});
		btn.setBounds(49, 152, 185, 23);
		contentPane.add(btn);
	}
	public void gameResult() {
		String user = tf_mine.getText();
		String com = "";
		int rnd = (int)(Math.random()*3);
		
		if(rnd==0) {
			com="가위";
		}else if(rnd==1) {
			com="바위";
		}else {
			com="보";
		}
		
		tf_com.setText(com);
		
		if(user.equals(com)) {
			tf_result.setText("비김");
		}else if(("가위".equals(user)&&"보".equals(com))
			||("바위".equals(user))&&"가위".equals(com)
			||("보".equals(user)&&"바위".equals(com))){
			tf_result.setText("이김");
		}else {
			tf_result.setText("짐");
		}
		
	}

}

처음 수와 끝의 수를 정하여 *개수가 하나씩 늘어나는 JFrame

package day05;

import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JTextArea;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class MySwing09 extends JFrame {

	private JPanel contentPane;
	private JTextField tf_first;
	private JTextField tf_last;
	private JTextArea ta;
	private JLabel label;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					MySwing09 frame = new MySwing09();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public MySwing09() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 283, 361);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lbl_first = new JLabel("첫 별 수:");
		lbl_first.setBounds(24, 13, 57, 15);
		contentPane.add(lbl_first);
		
		JLabel lbl_last = new JLabel("끝 별 수:");
		lbl_last.setBounds(24, 50, 57, 15);
		contentPane.add(lbl_last);
		
		tf_first = new JTextField();
		tf_first.setBounds(117, 10, 116, 21);
		contentPane.add(tf_first);
		tf_first.setColumns(10);
		
		tf_last = new JTextField();
		tf_last.setBounds(117, 47, 116, 21);
		contentPane.add(tf_last);
		tf_last.setColumns(10);
		
		JButton btn = new JButton("별 출력하기");
		btn.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				myClick();
			}
		});
		btn.setBounds(76, 75, 97, 23);
		contentPane.add(btn);
		
		ta = new JTextArea();
		ta.setBounds(12, 108, 251, 204);
		contentPane.add(ta);
		
		label = new JLabel("New label");
		label.setBounds(65, 229, 57, 15);
		contentPane.add(label);
	}
	//이렇게 이중 for문으로 돌릴 코드를 아래와 같이 바꾸었다.
//	public void printStars() {
//		int first=Integer.parseInt(tf_first.getText());
//		int last=Integer.parseInt(tf_last.getText());
//		String result="";
//		for(int i = first; i<=last; i ++) {
//			for(int j=1;j<=i;j++) {
//				result+="*";
//			}
//			result+="\n";
//		
//		}
//		ta.setText(result);
//	}
	
	public String drawStar(int cnt) {
		String ret="";
		for(int i=0;i<cnt;i++) {
			ret+="*";
		}
		ret+="\n";
		return ret;
	}
	public void myClick() {
		int first=Integer.parseInt(tf_first.getText());
		int last=Integer.parseInt(tf_last.getText());
		
		String txt="";
		for(int i = first;i<=last;i++) {
			txt +=drawStar(i);
		}
		ta.setText(txt);
	}
	
	
}

숫자 야구 JFrame

package day05;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

public class MySwing10_T extends JFrame {

	private JPanel contentPane;
	private JTextField tf;
	private JTextArea ta;
	
	int[] com_arr= {1,2,3};
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					MySwing10_T frame = new MySwing10_T();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public MySwing10_T() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 250, 400);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lbl = new JLabel("입력 숫자: ");
		lbl.setBounds(24, 29, 83, 15);
		contentPane.add(lbl);
		
		tf = new JTextField();
		tf.setBounds(106, 26, 116, 21);
		contentPane.add(tf);
		tf.setColumns(10);
		
		ta = new JTextArea();
		ta.setBounds(24, 84, 198, 267);
		contentPane.add(ta);
		
		setComArr();
		
		JButton btn = new JButton("맞춰보기");
		btn.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				myClick();
			}
		});
		btn.setBounds(68, 54, 97, 23);
		contentPane.add(btn);
	}
	public void setComArr() {
		int [] arr9 = {1,2,3,4,5,6,7,8,9};
		for(int i=0; i<100;i++) {
			int rnd = (int)(Math.random()*9);
			int a = arr9[0];
			int b = arr9[rnd];
			arr9[0]=b;
			arr9[rnd]=a;
		}
		com_arr[0]=arr9[0];
		com_arr[1]=arr9[1];
		com_arr[2]=arr9[2];
		
		System.out.println("comArr="+com_arr[0]+com_arr[1]+com_arr[2]);
	}
	
	public int getStrike(int[] com_arr, int[] mine_arr) {
		int cnt=0;
		if (com_arr[0]==mine_arr[0]) cnt++;
		if (com_arr[1]==mine_arr[1]) cnt++;
		if (com_arr[2]==mine_arr[2]) cnt++;
		return cnt;
	}
	public int getBall(int[] com_arr, int[] mine_arr) {
		int cnt=0;
		if(com_arr[0]==mine_arr[1]||com_arr[0]==mine_arr[2]) cnt++;
		if(com_arr[1]==mine_arr[0]||com_arr[1]==mine_arr[2]) cnt++;
		if(com_arr[2]==mine_arr[0]||com_arr[2]==mine_arr[1]) cnt++;
		return cnt;
	}
	
	
	public void myClick() {
		String mine = tf.getText();
		int [] mine_arr = new int[3];
		
		mine_arr[0]=Integer.parseInt(mine.substring(0, 1));
		mine_arr[1]=Integer.parseInt(mine.substring(1, 2));
		mine_arr[2]=Integer.parseInt(mine.substring(2, 3));
		
		int strike = getStrike(com_arr,mine_arr);
		int ball = getBall(com_arr,mine_arr);
		
		String str_line = mine+"-"+strike+"S"+ball+"B\n";
		String str_old = ta.getText();
		ta.setText(str_old+str_line);
		tf.setText("");
		if(strike==3) {
			JOptionPane.showMessageDialog(null, "성공");
		}
		
	}

}

숫자야구,,,,,,,,,,힘드뤄,,,,