라인의 간단한 운용
: 。
: , 。 , 。
: ; , 。 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) {
}
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.