라인의 간단한 운용

4841 단어
먼저 몇 가지 기본 개념을 소개하다.
      :           。
      :    ,                    。                  ,      。        
      :              ;            ,        。   CPU  ,         、        。           。

JAVA가 스레드를 구현하는 방법: 1.상속 Thread 클래스Thread는 Runnable 인터페이스의 하위 클래스입니다.start () 는 라인을 시작하는 방법입니다.run () 은 라인의 실행 방법입니다.sleep(long time)은 스레드의 휴면 방법입니다.2. Runnable 인터페이스를 실현하는run()은 라인의 실행 방법이지만 추상적이다.
다중 스레드를 이용하여 추첨과 그림의 무작위 선택을 실현하다.
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Image;
import java.util.Random;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Prize extends JFrame{

	public static void main(String[] args) {
		Prize pe = new Prize();
		pe.showFrame();
	}
	
	public void showFrame(){
		this.setTitle("  ");
		this.setSize(500, 500);
		this.setDefaultCloseOperation(3);
		this.setLocationRelativeTo(null);
		this.setLayout(new FlowLayout());
		
		JLabel label = new JLabel("    :");
		//    
		label.setFont(new Font("  ",Font.BOLD,30));
		label.setPreferredSize(new Dimension(200,100));
		this.add(label);
		
		JButton button = new JButton("    ");
		button.setPreferredSize(new Dimension(100,30));
		this.add(button);
		
		JButton bu = new JButton("      ");
		bu.setPreferredSize(new Dimension(180,30));
		this.add(bu);
		
		//         
		String[] imgSrcs = {"C:\\Users\\   \\Desktop\\  \\  \\    \\1.jpg",
				"C:\\Users\\   \\Desktop\\  \\  \\    \\2.jpg",
				"C:\\Users\\   \\Desktop\\  \\  \\    \\3.jpg",
				"C:\\Users\\   \\Desktop\\  \\  \\    \\4.jpg",
				"C:\\Users\\   \\Desktop\\  \\  \\    \\5.jpg",
				"C:\\Users\\   \\Desktop\\  \\  \\    \\6.jpg",
				"C:\\Users\\   \\Desktop\\  \\  \\    \\7.jpg",
				"C:\\Users\\   \\Desktop\\  \\  \\    \\8.jpg",
				"C:\\Users\\   \\Desktop\\  \\  \\    \\9.jpg",
				"C:\\Users\\   \\Desktop\\  \\  \\    \\10.jpg",
				"C:\\Users\\   \\Desktop\\  \\  \\    \\11.jpg",
				"C:\\Users\\   \\Desktop\\  \\  \\    \\12.jpg"};
		JLabel lb = new JLabel();   
		lb.setOpaque(true);
		//  JLabel    
		lb.setBackground(Color.LIGHT_GRAY);
		lb.setPreferredSize(new Dimension(300,300));
		this.add(lb);
		
		this.setVisible(true);
		
		// label、lb、imgSrcs    
		PrizeListener pl = new PrizeListener(label,lb,imgSrcs);
		button.addActionListener(pl);
		bu.addActionListener(pl);
		
	}
}
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JLabel;

public class PrizeListener implements ActionListener{
	private JLabel label;
	private JLabel lb;
	private String[] imgSrcs;
	private RandomListener rl;

	//    
	public PrizeListener(JLabel label,JLabel lb,String[] imgSrcs) {
		this.label = label;	
		this.lb = lb;
		this.imgSrcs = imgSrcs;
		
		// label、lb、imgSrcs    
		rl = new RandomListener(label,lb,imgSrcs);
		//    
		rl.start();
	}
	
	public void actionPerformed(ActionEvent e) {
		JButton button = (JButton) e.getSource();
		String text = button.getText();
		if(text.equals("    ")) {
			rl.bl = true;
			button.setText("    ");
			
		}else if(text.equals("    ")){
			button.setText("    ");
			rl.bl = false;
		}else if(text.equals("      ")) {
			rl.cl = true;
			button.setText("      ");
		}else if(text.equals("      ")) {
			rl.cl = false;
			button.setText("      ");
		}
		
	}

}
import java.awt.Image;
import java.util.Random;

import javax.swing.ImageIcon;
import javax.swing.JLabel;

public class RandomListener extends Thread{
	private JLabel label;
	private JLabel lb;
	private String[] imgSrcs;
	public volatile boolean bl = false;
	public volatile boolean cl = false;
	
	//    
	public RandomListener(JLabel label,JLabel lb,String[] imgSrcs) {
		this.label = label;
		this.lb = lb;
		this.imgSrcs = imgSrcs;
		
	}
	
	public void run() {
		while(true) {
			if(bl == true) {
				Random rand = new Random();
				int value = rand.nextInt(100) + 1;
				label.setText("    :"+value);
				try {
					Thread.sleep(100);
				}catch(InterruptedException ie) {
				}
			}else if(cl == true) {
				Random r = new Random();
				//      0  ,       +1
				//         
				String imageSrc = imgSrcs[r.nextInt(12)];
				//   ImageIcon
				ImageIcon image = new ImageIcon(imageSrc);
				// JLabel       ,     JLabel   
				image.setImage(image.getImage().getScaledInstance(300, 300, Image.SCALE_DEFAULT));
				lb.setIcon(image);
				try {
					Thread.sleep(100);
				}catch(InterruptedException ie) {
				}
			}
			
			
		}
		
		
		
	}

}

좋은 웹페이지 즐겨찾기