이야기박스

JAVA - 로또 번호 뽑기 본문

Programming Language/JAVA

JAVA - 로또 번호 뽑기

박스님 2017. 3. 17. 17:48
반응형

로또 번호를 뽑는 프로그램입니다.

돈 많이 벌고 싶네요 

버튼을 누를 때마다 로또 번호들이 생성되게 하겠습니다.


클래스는

액자 - Main

주 작업 화면 - Lottery

로또 번호들이 담기는 - EachNum

으로 구성하였습니다!






1. Main class

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

public class Main{
	
	public static void main(String[] args) {
		JFrame frame = new JFrame("Lottery");
		
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		Lottery primary = new Lottery();
		
		frame.getContentPane().add(primary);
		frame.pack();
		frame.setVisible(true);		
	}	
}



2. Lottery class

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

public class Lottery extends JPanel {

	private JPanel top, mid, bot;
	private EachNum lotData;
	private JButton btnStart, btnReset;
	private LotteryListener listener;
	
	public Lottery() {
		this.setPreferredSize(new Dimension(400,300));
		this.setLayout(null);
		
		listener = new LotteryListener();
		
		top = new JPanel();
		top.setBackground(Color.black);
		top.setBounds(0, 0, 400, 50);
		this.add(top);

		JLabel lblTitle = new JLabel("To Be Rich Person");
		lblTitle.setFont(new Font("Monofur",Font.BOLD,20));
		lblTitle.setForeground(Color.white);
		top.add(lblTitle);
		
		lotData = new EachNum();
		lotData.setBackground(Color.white);	
		lotData.setBounds(0, 50, 400, 200);
		this.add(lotData);		
		
		bot = new JPanel();
		bot.setBackground(Color.black);
		bot.setBounds(0, 250, 400, 50);
		this.add(bot);
				
		btnStart = new JButton("generate");
		btnStart.addActionListener(listener);
		btnStart.setBackground(Color.white);
		btnStart.setFocusPainted(false);
		bot.add(btnStart);
		
	}	// Lottery()	
	private class LotteryListener implements ActionListener {		
		public void actionPerformed(ActionEvent event) {

			for(int i=0; i<7; i++) {
				lotData.makeNum();
			}
			
		} // actionPerformed()
		
	}	// LotteryListener class
	
}	// Lottery class



3. EachNum class

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

public class EachNum extends JPanel {
	private int lotNum[];	
	JLabel title[], lotLabel[];
	
	public EachNum() {
		this.setLayout(new GridLayout(2,7));
		
		title = new JLabel[7];
		for(int i=0; i<7; i++) {
			if(i == 6) {
				title[i] = new JLabel("Bonus");
				this.add(title[i]);
			} else {
				title[i] = new JLabel((i+1)+"th");
				this.add(title[i]);
			} // if.. else
			title[i].setHorizontalAlignment(SwingConstants.CENTER);
			title[i].setFont(new Font("Monofur",Font.PLAIN,14));
		} // for i
		
		lotLabel = new JLabel[7];
		for(int i=0; i<7; i++) {
			lotLabel[i] = new JLabel();
			lotLabel[i].setVisible(false);
			lotLabel[i].setHorizontalAlignment(SwingConstants.CENTER);
			lotLabel[i].setVerticalAlignment(SwingConstants.CENTER);
			lotLabel[i].setFont(new Font("Monofur",Font.BOLD,14));
			lotLabel[i].setForeground(Color.darkGray);
			this.add(lotLabel[i]);
		} // for i
	}	// EachNum()

       public void makeNum() {		
	}	
} // EachNum class

이 makeNum 매서드가 자꾸 오류가 나네요 ㅜㅜ

자바스크립트에 대한 지식이 없어서 해결이 안되서

수동으로 올려둡니다.

public void makeNum() {

lotNum = new int[7];

for(int i=0; i<7; i++) {

lotNum[i] = (int) (Math.random()*45) +1;

for(int j=0; j<i; j++) {

if(lotNum[i] == lotNum[j]) {

lotNum[i] = (int) (Math.random()*45) +1;

j = 0;

} // if

} // for j

lotLabel[i].setText(""+lotNum[i]);

lotLabel[i].setVisible(true);

} // for i

}




프로그램 실행 사진입니다!


- 실행 전



- 실행 후



자바 첫 글이라 간단한 프로그램으로 시작할게요!

당분간은 예전에 만들었던 프로그램 위주로 올리겠습니다!

반응형

'Programming Language > JAVA' 카테고리의 다른 글

Effective java 3/E - study 시작  (0) 2018.11.16
Java) join 메서드  (0) 2017.11.24
Java) 후위수식 계산기  (0) 2017.05.26
Java) 하노이 탑, 중간 체크  (0) 2017.03.25
Java) Hanoi top 계획  (0) 2017.03.25