본문 바로가기
책갈피

2e1321

칼날 |2014.11.18 10:41
조회 51 |추천 0
import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.lang.*;import javax.swing.JOptionPane;
public class DkcmsaHighLowGamePanel extends JPanel{private JPanel leftPanel;private JPanel rightPanel;private JLabel lblTitle;//private JLabel lblMark;private JLabel lblHighLow;private JLabel lblRange;private JLabel lblCount;private JButton btnRandom;private JButton btnInput;private JTextField txtInput;private int nRandom;private int nInput;private int nMax;private int nMin;private int nCount;
private DkcmsaLabelThread lblMark;//2.declaration of listener objectprivate BtnListener btnL;
//--------------------------------------------------public DkcmsaHighLowGamePanel(){setBackground(Color.white);setPreferredSize(new Dimension(430,320));setLayout(null);//내맘대로 변경 할 거니깐.//2.declaration of listener objectbtnL = new BtnListener();nRandom = nInput = 0;nMax = 100;nMin = 1;leftPanel = new JPanel();leftPanel.setBackground(Color.pink);leftPanel.setBounds(10,10,200,300);leftPanel.setLayout(null);add(leftPanel);rightPanel = new JPanel();rightPanel.setBackground(Color.yellow);rightPanel.setBounds(220,10,200,300);rightPanel.setLayout(null);add(rightPanel);lblTitle = new JLabel("High-Low Game");lblTitle.setBounds(10,20,180,40);lblTitle.setFont(new Font("Verdana",Font.BOLD,20));lblTitle.setVerticalAlignment(SwingConstants.CENTER);lblTitle.setHorizontalAlignment(SwingConstants.CENTER);leftPanel.add(lblTitle);lblMark = new DkcmsaLabelThread("100");lblMark.setBounds(10,70,180,140);lblMark.setFont(new Font("Verdana",Font.BOLD,70));lblMark.setVerticalAlignment(SwingConstants.CENTER);lblMark.setHorizontalAlignment(SwingConstants.CENTER);lblMark.setVisible(false);leftPanel.add(lblMark);lblHighLow = new JLabel("RIGHT");lblHighLow.setBounds(10,220,180,140);lblHighLow.setFont(new Font("Verdana",Font.BOLD,16));lblHighLow.setVerticalAlignment(SwingConstants.CENTER);lblHighLow.setHorizontalAlignment(SwingConstants.CENTER);lblHighLow.setVisible(false);//true - false :::::::: 보이게 - 안 보이게 leftPanel.add(lblHighLow);btnRandom = new JButton("RANDOM");btnRandom.setBounds(20,30,160,30);rightPanel.add(btnRandom);//3.add listener object to the componentbtnRandom.addActionListener(btnL);btnInput = new JButton("Input");btnInput.setBounds(105,65,75,30);rightPanel.add(btnInput);btnInput.addActionListener(btnL);btnInput.setEnabled(false);//input남용 방지수단 txtInput =new JTextField();txtInput.setBounds(20,65,80,30);rightPanel.add(txtInput);txtInput.addActionListener(btnL);txtInput.setEnabled(false);//input남용 방지수단 nCount = 0;lblRange = new JLabel("(" + nMin + "-" + nMax + ")");lblRange.setBounds(25,95,80,30);lblRange.setVisible(false);rightPanel.add(lblRange);lblCount = new JLabel("COUNT : " + nCount);lblCount.setBounds(25,125,80,30);lblCount.setVisible(false);rightPanel.add(lblCount);}//1.listener class designprivate class BtnListener implements ActionListener{public void actionPerformed(ActionEvent event){//4.event handlingObject obj = event.getSource();//ActionEvent event의 event의 메소드if(obj==btnRandom){nRandom = (int)(Math.random()*nMax)+nMin;//(int)위치 중요함System.out.println(nRandom);lblMark.setText("?");lblMark.setVisible(true);btnRandom.setEnabled(false);//random남용 방지수단 btnInput.setEnabled(true);//input남용 방지수단 txtInput.setEnabled(true);//input남용 방지수단 lblRange.setVisible(true);lblCount.setVisible(true);lblMark.setStart(1);lblMark.setEnd(nRandom);}else if(obj==btnInput || obj==txtInput){nInput = Integer.parseInt(txtInput.getText());//문자열을 숫자로 바꿔서 저장.if(nInput > nRandom){lblHighLow.setText("HIGH");nMax = nInput;}else if(nInput < nRandom){lblHighLow.setText("LOW");nMin = nInput;}else{lblHighLow.setText("RIGHT");lblMark.setText(""+nInput);int result;result = JOptionPane.showConfirmDialog(null,"Continue?");if(result == JOptionPane.YES_OPTION)//초기화 루틴 작성.함수하나 만들어서 새로 시작할 수 있게. 과제할 때 주석 꼭 달기.{System.out.println("INIT");}lblMark.start();}lblHighLow.setVisible(true);lblRange.setText("(" + nMin + " - " + nMax + ")");nCount++;lblCount.setText("COUNT : " + nCount);txtInput.setText("");}}}
}


import java.awt.*;import javax.swing.*;
public class DkcmsaLabelThread extends JLabel implements Runnable{private int nStart;private int nEnd;private Thread nThread;public DkcmsaLabelThread(){nStart = 1;nEnd = 100;nThread = null;//start()실행되면 자동으로 run()실행 .stop호출하면 그 때 멈춘다.//여기선 생성하지 않는다. 생성하면 청소될 수 있다. 그래서 start()실행될 때 생성한다..//init(1,100); init함수로 초기화 할 경우.//밑의 파라미터에도 초기화해준다 똑같이.}public DkcmsaLabelThread(String str){//init(1,100);//set.text사용해도 되지만 생성자니까super(str);//=JLabel(str)}public DkcmsaLabelThread(String str,int s,int e){nStart = 1;nEnd = 100;nThread = null;//init(s,e);  init함수로 초기화 할 경우}private void init(int s,int e){nStart = s;nEnd = e;nThread = null;//클래스 안에서만 쓰기위해 private}public int getStart(){return nStart;}public int getEnd(){return nEnd;}public void setStart(int s){nStart = s;}public void setEnd(int e){nEnd = e;}//thread와 관련된 method .. start run stoppublic void start(){//thread 생성 후 시작.if(nThread == null){nThread = new Thread(this);//런에이블을 thread에 갖다준다. 상관없는 독립된 개체에서 '나'를 thread화 하는 과정.//비행기가 가다가 중간에멈추고 다시 시작 할 떄, 처음부터 다시 시작하는 것을 방지하기 위해.}setForeground(Color.gray);//회색으로 깜빡이는 숫자 thread시작.nThread.start();}public void run(){try{while(true){setText("" + nStart);//나 자신if(nStart == nEnd){setForeground(Color.red);break;}nStart++;nThread.sleep(100);//1000을 을쓰면 1초.밀리세컨드 단위.깜빡이게 하는 명령어. 그러나 예외처리 오류난다. 때문에 try쓴다.}for(int i=0;i<10;i++){setVisible(false);nThread.sleep(200);setVisible(true);nThread.sleep(200);//정답 맞췄을 때 10번 반복}}catch(Exception e){}//예외처리 커버함.Exception e=>모든 예외 수용.예외가 나면 프로그램이 죽지만 이 코드로 인해서 오류나면 이리로 온다.//과제엔 쓰레드 안해도 된다.}public void stop(){if(nThread != null){nThread.stop();}}}







#include <stdio.h>#include <string.h>class MyRect{private:int MyRectArea;int MyRectPerimeter;public:MyRect();~MyRect();int getArea();int getPerimeter();void setWH(int A,int P);void showData();};MyRect::MyRect(){int MyRectArea = 1;int MyRectPerimeter = 1;}MyRect::~MyRect(){}void MyRect::setWH(int A,int P){MyRectArea = A;MyRectPerimeter = P;}void MyRect::showData(){}int MyRect::getArea(){return MyRectArea*MyRectPerimeter;}int MyRect::getPerimeter(){return 2*(MyRectArea+MyRectPerimeter);}
int main(){MyRect a;int Area;int Perimeter;printf("Area : %d\n",a.getArea());printf("Perimeter : %d\n",a.getPerimeter());
a.setWH(2,3);printf("Area : %d\n",a.getArea());printf("Perimeter : %d\n",a.getPerimeter());return 0;}
추천수0
반대수0

공감많은 뉴스 시사

더보기

뉴스 플러스