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, "성공");
}
}
}
숫자야구,,,,,,,,,,힘드뤄,,,,