import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;

import javax.swing.*;

public class AcidRainGame extends JFrame implements ActionListener, Runnable {
 static final int WIDTH = 400;
 static final int HEIGHT = 400;
 int life = 10;
 Vector<String> words;
 Vector<Word> viewingWords;
 BufferedReader inputStream;
 Thread t;
 long time;
 
 DropArea da1;
 JTextField t1;
 
 public AcidRainGame() throws IOException {
  // 단어 목록 읽기
  setTitle("산성비");
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  try {
   inputStream = new BufferedReader(new FileReader("words.txt"));
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  words = new Vector<String>();
  viewingWords = new Vector<Word>();
  String w;
  while((w = inputStream.readLine()) != null)
  {
   words.add(w);
  }
  da1 = new DropArea();
  da1.setPreferredSize(new Dimension(WIDTH, HEIGHT));
  add(da1, BorderLayout.CENTER);
  t1 = new JTextField(20);
  t1.addActionListener(this);
  add(t1, BorderLayout.SOUTH);
  
  t = new Thread(this);
  
  pack();
  setVisible(true);
  t.start();
 }
  
 @Override
 public void actionPerformed(ActionEvent e) {
  // TODO Auto-generated method stub
  int index = -1;
  for(Word w : viewingWords) {
   if(t1.getText().equals(w.str))
   {
    index = viewingWords.indexOf(w);
   }
  }
  if(index != -1)
  {
   viewingWords.remove(index);
   repaint();
  }
  t1.selectAll();
 }

 @Override
 public void run() {
  // TODO Auto-generated method stub
  while(true)
  {
   try {
    t.sleep(100);
   } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   time++;
   
   for(Word w : viewingWords)
   {
    w.y += 10;
   } 

   if(!viewingWords.isEmpty())
   {
    if(viewingWords.get(0).y > HEIGHT-50)
    {
     life--;
     viewingWords.remove(0);
    }
   }
   
   if(life <= 0)
   {
    JOptionPane.showMessageDialog(this, "게임종료(게임시간:" + time/10.0 + "초)");
    t.stop();
   }
   
   if(time % 50 == 0)
   {
    viewingWords.add(new Word());
   }

   
   repaint();
   
  }
  
 }
 
 class DropArea extends JComponent
 {
  public void paint(Graphics g)
  {
   g.drawString("life="+life, 10, 10);
   for(Word w: viewingWords)
   {
    g.setColor(Color.BLACK);
    g.drawString(w.str, w.x, w.y);
   }
  }
 }
 
 class Word
 {
  public int x;
  public int y;
  String str;
  
  Word()
  {
   x = (int) (Math.random() * WIDTH - 40);
   y = 0;
   
   str = words.get((int)(Math.random() * words.size()));
  }
 }

 public static void main(String[] args) throws IOException {
  // TODO Auto-generated method stub
  new AcidRainGame();
 }

}

 

words.txt

 

'프로그래밍언어 > JAVA' 카테고리의 다른 글

제너릭 실습  (0) 2015.02.13
Java 패키지 실습 - 로또번호추첨기  (0) 2015.02.11
스윙 컴포넌트 2 실습  (0) 2015.02.09
마우스 이벤트 실습  (0) 2015.02.06
실습  (0) 2015.01.13

class Rectangle <T extends Number>
{
 T x;
 T y;
 T w;
 T h;
 
 void setX(T x) { this.x = x; }
 void setY(T y) { this.y = y; }
 void setW(T w) { this.w = w; }
 void setH(T h) { this.h = h; }
 T getX() { return x; }
 T getY() { return y; }
 T getW() { return w; }
 T getH() { return h; }
 
 Number calcArea()
 {
  if(w instanceof Integer)
   return w.intValue() * h.intValue();
  else
   return w.doubleValue()*h.doubleValue();
 }
}

public class Test {
 public static void main(String[] args) {
  Rectangle<Integer> r1 = new Rectangle<>();
  Rectangle<Double> r2 = new Rectangle<>();
  
  r1.setH(100);
  r1.setW(200);
  
  r2.setW(123.45);
  r2.setH(456.78);
  
  System.out.println(r1.calcArea());
  System.out.println(r2.calcArea());
  
  
 }
}

 

'프로그래밍언어 > JAVA' 카테고리의 다른 글

산성비 게임 실습  (0) 2015.02.26
Java 패키지 실습 - 로또번호추첨기  (0) 2015.02.11
스윙 컴포넌트 2 실습  (0) 2015.02.09
마우스 이벤트 실습  (0) 2015.02.06
실습  (0) 2015.01.13

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class MyFrame {
 public static void main(String[] args) {
  int[] arr = new int[6];
  Random r = new Random();
  
  long t1 = System.currentTimeMillis();
  
  for(int i=0; i<6; i++)
  {
   int num;
   boolean chk;
   
   do {
    chk = false;
    num = r.nextInt(45) + 1;
    for(int j=0; j<i; j++)
    {
     if(arr[j] == num)
      chk = true;
    }
   } while(chk);
   
   arr[i] = num;
  }
  
  Arrays.sort(arr);
  
  for(int i: arr)
   System.out.print(" "+i);
  System.out.println();
   
  Thread.sleep(1000);
  long t2 = System.currentTimeMillis();
  
  System.out.println("총 수행시간은 " + (t2-t1) + "ms");
  
 }
}

 

'프로그래밍언어 > JAVA' 카테고리의 다른 글

산성비 게임 실습  (0) 2015.02.26
제너릭 실습  (0) 2015.02.13
스윙 컴포넌트 2 실습  (0) 2015.02.09
마우스 이벤트 실습  (0) 2015.02.06
실습  (0) 2015.01.13

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

class MyPanel extends JPanel implements ActionListener, ListSelectionListener, ChangeListener
{
 String[] drinks = {"콜라", "사이다", "환타", "마운틴듀", "레드불"};
 JComboBox combo;
 JList list;
 JSpinner spin;
 
 public MyPanel() {
  combo = new JComboBox(drinks);
  list = new JList(drinks);
  SpinnerListModel model = new SpinnerListModel(drinks);
  spin = new JSpinner(model);
  list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  combo.setSelectedIndex(0);
  list.setSelectedIndex(0);
  combo.addActionListener(this);
  list.addListSelectionListener(this);
  spin.addChangeListener(this);
  
  add(combo);
  add(list);
  add(spin);
 }

 @Override
 public void valueChanged(ListSelectionEvent e) {
  // TODO Auto-generated method stub
  int num = list.getSelectedIndex(); // 리스트에서 인덱스 얻어옴
  combo.setSelectedIndex(num); // 콤보박스에 인덱스 설정
  spin.setValue(list.getSelectedValue());
 }

 @Override
 public void actionPerformed(ActionEvent e) {
  // TODO Auto-generated method stub
  int num = combo.getSelectedIndex(); // 콤보박스에서 인덱스 얻어옴
  list.setSelectedIndex(num); // 리스트에 인덱스 설정
  spin.setValue(combo.getSelectedItem());
 }

 @Override
 public void stateChanged(ChangeEvent e) {
  // TODO Auto-generated method stub
  list.setSelectedValue(spin.getValue(), false);
  combo.setSelectedItem(spin.getValue());
 }
 
 
}


public class MyFrame extends JFrame {
 public MyFrame() {
  setSize(300, 300);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
  add(new MyPanel());
  
  pack();
  setVisible(true);
 }

 public static void main(String[] args) {
  MyFrame t = new MyFrame();
 }

}

'프로그래밍언어 > JAVA' 카테고리의 다른 글

제너릭 실습  (0) 2015.02.13
Java 패키지 실습 - 로또번호추첨기  (0) 2015.02.11
마우스 이벤트 실습  (0) 2015.02.06
실습  (0) 2015.01.13
애니메이션 예제 이미지  (0) 2014.07.31

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

class Rectangle {
 int x, y, w, h;
 Color c;
}

class MyPanel extends JPanel
{
 Rectangle[] array = new Rectangle[100];
 int index = 0;

 public MyPanel() {
  addMouseListener(new MouseAdapter() {
   public void mousePressed(MouseEvent e) {
    if(index > 100)
     return;
    array[index] = new Rectangle();
    array[index].x = e.getX();
    array[index].y = e.getY();
    array[index].w = 20;
    array[index].h = 20;
    if(e.isControlDown())
     array[index].c = new Color(255, 0, 0);
    else if(e.isShiftDown())
     array[index].c = new Color(0, 255, 0);
    else if(e.isAltDown())
     array[index].c = new Color(0, 0, 255);
    else
     array[index].c = new Color(0, 0, 0);
    
    System.out.println(array[index].x + " " + array[index].y + " " + array[index].c);

    index++;
    repaint();
   }
  });
 }

 public void paintComponent(Graphics g)
 {
  super.paintComponent(g);
  for (Rectangle r : array)
  {
   if(r != null)
   {
    g.setColor(r.c);
    g.fillRect(r.x, r.y, r.w, r.h);
   }
  }
 }
}


public class MyFrame extends JFrame {
 public MyFrame() {
  setSize(300, 300);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
  add(new MyPanel());
  
  setVisible(true);
 }

 public static void main(String[] args) {
  MyFrame t = new MyFrame();
 }

}

'프로그래밍언어 > JAVA' 카테고리의 다른 글

Java 패키지 실습 - 로또번호추첨기  (0) 2015.02.11
스윙 컴포넌트 2 실습  (0) 2015.02.09
실습  (0) 2015.01.13
애니메이션 예제 이미지  (0) 2014.07.31
mysql 설치프로그램  (0) 2014.07.29

 

C_반복문_과제.docx

 

'프로그래밍언어 > JAVA' 카테고리의 다른 글

스윙 컴포넌트 2 실습  (0) 2015.02.09
마우스 이벤트 실습  (0) 2015.02.06
애니메이션 예제 이미지  (0) 2014.07.31
mysql 설치프로그램  (0) 2014.07.29
JAVA 강의자료 26-29장  (0) 2014.07.29

 

 

 

'프로그래밍언어 > JAVA' 카테고리의 다른 글

마우스 이벤트 실습  (0) 2015.02.06
실습  (0) 2015.01.13
mysql 설치프로그램  (0) 2014.07.29
JAVA 강의자료 26-29장  (0) 2014.07.29
JAVA PPT 23-25  (0) 2014.07.25

 

mysql-5.5.27-win32.part1.rar

 

mysql-5.5.27-win32.part2.rar

 

mysql-5.5.27-win32.part3.rar

 

'프로그래밍언어 > JAVA' 카테고리의 다른 글

실습  (0) 2015.01.13
애니메이션 예제 이미지  (0) 2014.07.31
JAVA 강의자료 26-29장  (0) 2014.07.29
JAVA PPT 23-25  (0) 2014.07.25
JAVA 강의자료 19-22장  (0) 2014.07.23

+ Recent posts