/src
ㄴ/controller
ㄴMain.java
ㄴ/model
ㄴLottoModel.java
ㄴ/view
ㄴLottoView.java
package view;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Graphics;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.border.Border;
import model.LottoModel;
public class LottoView extends JFrame{
private JPanel panel,win, my,result;
Border blackline = BorderFactory.createLineBorder(Color.black);
private JLabel lottoNum[]= new JLabel[6],myNum[] = new JLabel[6],resNum[] = new JLabel[6];
private JLabel plus,res,turn_name,my_name,bonus;
private String winNums[],myNums[];
private String[] resNums;
// public void paint(Graphics g) {
// g.setColor(Color.white);
// g.drawOval(480, 480, 200, 200);
// g.setColor(Color.red);
// g.fillOval(240,240,200,100);
// }
public LottoView(String turn) {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 450);
getContentPane().setLayout(null);
panel = new JPanel();
panel.setBounds(6, 6, 438, 415);
panel.setLayout(null);
this.add(panel);
win = new JPanel();
win.setBounds(6, 38, 426, 96);
win.setLayout(new GridLayout(1,8));
win.setBorder(blackline);
panel.add(win);
my = new JPanel();
my.setBounds(6, 181, 426, 96);
my.setLayout(new GridLayout(1,6));
my.setBorder(blackline);
panel.add(my);
result = new JPanel();
result.setBounds(6, 313, 426, 96);
result.setLayout(new GridLayout(1,6));
result.setBorder(blackline);
panel.add(result);
turn_name = new JLabel(turn+"회 로또번호");
turn_name.setFont(new Font("Apple SD Gothic Neo", 1, 20));
turn_name.setBounds(6, 6, 426, 30);
panel.add(turn_name);
my_name = new JLabel("나의 로또 번호");
my_name.setFont(new Font("Apple SD Gothic Neo", 1, 20));
my_name.setBounds(6, 147, 208, 30);
panel.add(my_name);
res = new JLabel("결과");
res.setFont(new Font("Apple SD Gothic Neo", 1, 20));
res.setBounds(6, 284, 426, 30);
panel.add(res);
}
public LottoView(String turn, LottoModel model) {
this(turn);
winNums = model.getWinNum();
int i=0;
for(String winN : winNums) {
System.out.println(winN);
lottoNum[i] = new JLabel(winN, SwingConstants.CENTER);
lottoNum[i].setOpaque(true);
lottoNum[i].setFont(new Font("Apple SD Gothic Neo", 1, 20));
win.add(lottoNum[i++]);
}
plus = new JLabel("+", SwingConstants.CENTER);
plus.setOpaque(true);
plus.setFont(new Font("Apple SD Gothic Neo", 1, 25));
win.add(plus);
bonus = new JLabel(model.getBonus(), SwingConstants.CENTER);
bonus.setOpaque(true);
bonus.setFont(new Font("Apple SD Gothic Neo", 1, 20));
win.add(bonus);
JButton button = new JButton("새로 뽑기");
button.setBounds(315, 146, 117, 29);
panel.add(button);
myNums = model.getMyNum();
i=0;
for(String myN : myNums) {
myNum[i] = new JLabel(myN, SwingConstants.CENTER);
myNum[i].setOpaque(true);
myNum[i].setFont(new Font("Apple SD Gothic Neo", 1, 20));
my.add(myNum[i++]);
System.out.println(myN+"view: "+i);
}
res.setText("결과 : "+model.result()+"등입니다.");
resNums = model.getCheckNum();
i=0;
for(String resN : resNums) {
resNum[i] = new JLabel(resN, SwingConstants.CENTER);
resNum[i].setOpaque(true);
resNum[i].setFont(new Font("Apple SD Gothic Neo", 1, 20));
result.add(resNum[i++]);
}
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("a클릭");
model.setRandom();
model.check();
res.setText("결과 : "+model.result()+"등입니다.");
int i=0;
for(String myN : model.getMyNum()) {
System.out.println(i+"view: "+myN);
myNum[i++].setText(myN);
}
i=0;
for(String myN : model.getCheckNum()) {
System.out.println(i+"checkview: "+myN);
if(myN==null) {
System.out.println("null");
resNum[i++].setText(" ");
}else {
resNum[i++].setText(myN);
}
}
}
});
}
}