JAVA GUI 계산기 소스코드

Programming/JAVA,JSP 2013. 12. 22. 17:55 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;


import javax.swing.JButton;


/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */


/**

 * 

 * @author Administrator

 */

public class NewJFrame extends javax.swing.JFrame implements ActionListener {


/**

* Creates new form NewJFrame

*/

public NewJFrame() {

initComponents();

toDo();

}


private void toDo() {

// TODO Auto-generated method stub

jButton2.addActionListener(this);

jButton3.addActionListener(this);

jButton4.addActionListener(this);

jButton5.addActionListener(this);

jButton6.addActionListener(this);

jButton7.addActionListener(this);

jButton8.addActionListener(this);

jButton9.addActionListener(this);

jButton10.addActionListener(this);

jButton13.addActionListener(this);

jButton14.addActionListener(this);

jButton15.addActionListener(this);

jButton16.addActionListener(this);

jButton17.addActionListener(this);

jButton18.addActionListener(this);

}


@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated Code">

private void initComponents() {


jButton2 = new javax.swing.JButton();

jTextField3 = new javax.swing.JTextField();

jButton3 = new javax.swing.JButton();

jButton4 = new javax.swing.JButton();

jButton7 = new javax.swing.JButton();

jButton5 = new javax.swing.JButton();

jButton6 = new javax.swing.JButton();

jButton8 = new javax.swing.JButton();

jButton9 = new javax.swing.JButton();

jButton10 = new javax.swing.JButton();

jButton13 = new javax.swing.JButton();

jButton14 = new javax.swing.JButton();

jButton15 = new javax.swing.JButton();

jButton16 = new javax.swing.JButton();

jButton17 = new javax.swing.JButton();

jButton18 = new javax.swing.JButton();

jToggleButton1 = new javax.swing.JToggleButton();


setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);


jTextField3.setText("");


jButton2.setText("1");


jButton3.setText("2");


jButton4.setText("3");


jButton5.setText("4");


jButton6.setText("5");


jButton7.setText("6");


jButton8.setText("7");


jButton9.setText("8");


jButton10.setText("9");


jButton13.setText("0");


jButton14.setText("+");


jButton15.setText("/");


jButton16.setText("x");


jButton17.setText("-");


jButton18.setText("=");


jToggleButton1.setText("jToggleButton1");


javax.swing.GroupLayout layout = new javax.swing.GroupLayout(

getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(layout

.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jTextField3)

.addGroup(

layout.createSequentialGroup()

.addGroup(

layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(

layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.TRAILING)

.addGroup(

layout.createSequentialGroup()

.addComponent(

jButton5)

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(

jButton6)

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(

jButton7))

.addGroup(

layout.createSequentialGroup()

.addComponent(

jButton2)

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(

jButton3)

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(

jButton4)))

.addGroup(

layout.createSequentialGroup()

.addComponent(

jButton9)

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(

layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(

jButton13)

.addGroup(

layout.createSequentialGroup()

.addComponent(

jButton10)

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(

jButton8)))))

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(

layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(

layout.createSequentialGroup()

.addGroup(

layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(

jButton16)

.addComponent(

jButton15))

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(

jButton18))

.addGroup(

layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.TRAILING)

.addComponent(

jButton17)

.addComponent(

jButton14)))

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED,

javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE)

.addComponent(jToggleButton1,

javax.swing.GroupLayout.PREFERRED_SIZE,

70,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap()));

layout.setVerticalGroup(layout

.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(

layout.createSequentialGroup()

.addComponent(jTextField3,

javax.swing.GroupLayout.PREFERRED_SIZE,

70,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(

layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.LEADING,

false)

.addGroup(

layout.createSequentialGroup()

.addGroup(

layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(

jButton2)

.addComponent(

jButton3)

.addComponent(

jButton4))

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(

layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(

jButton5)

.addComponent(

jButton6)

.addComponent(

jButton7))

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(

layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(

jButton9)

.addComponent(

jButton10)

.addComponent(

jButton8))

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(

jButton13))

.addGroup(

layout.createSequentialGroup()

.addComponent(

jButton14)

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(

jButton17)

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(

jButton16)

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(

jButton15))

.addComponent(

jButton18,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE)

.addComponent(

jToggleButton1,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE))

.addContainerGap(

javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE)));


pack();

}// </editor-fold>


public static void main(String args[]) {

/* Set the Nimbus look and feel */

// <editor-fold defaultstate="collapsed"

// desc=" Look and feel setting code (optional) ">

/*

* If Nimbus (introduced in Java SE 6) is not available, stay with the

* default look and feel. For details see

* http://download.oracle.com/javase

* /tutorial/uiswing/lookandfeel/plaf.html

*/

try {

for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager

.getInstalledLookAndFeels()) {

if ("Nimbus".equals(info.getName())) {

javax.swing.UIManager.setLookAndFeel(info.getClassName());

break;

}

}

} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(

java.util.logging.Level.SEVERE, null, ex);

} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(

java.util.logging.Level.SEVERE, null, ex);

} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(

java.util.logging.Level.SEVERE, null, ex);

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(

java.util.logging.Level.SEVERE, null, ex);

}

// </editor-fold>


/* Create and display the form */

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new NewJFrame().setVisible(true);

}

});

}


// Variables declaration - do not modify

private javax.swing.JButton jButton10;

private javax.swing.JButton jButton13;

private javax.swing.JButton jButton14;

private javax.swing.JButton jButton15;

private javax.swing.JButton jButton16;

private javax.swing.JButton jButton17;

private javax.swing.JButton jButton18;

private javax.swing.JButton jButton2;

private javax.swing.JButton jButton3;

private javax.swing.JButton jButton4;

private javax.swing.JButton jButton7;

private javax.swing.JButton jButton5;

private javax.swing.JButton jButton6;

private javax.swing.JButton jButton8;

private javax.swing.JButton jButton9;

private javax.swing.JTextField jTextField3;

private javax.swing.JToggleButton jToggleButton1;


// End of variables declaration

@Override

public void actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub

if (arg0.getSource() == jButton2) {

jTextField3.setText(jTextField3.getText() + 1);

} else if (arg0.getSource() == jButton3) {

jTextField3.setText(jTextField3.getText() + "2");

} else if (arg0.getSource() == jButton4) {

jTextField3.setText(jTextField3.getText() + "3");

} else if (arg0.getSource() == jButton7) {

jTextField3.setText(jTextField3.getText() + "4");

} else if (arg0.getSource() == jButton5) {

jTextField3.setText(jTextField3.getText() + "5");

} else if (arg0.getSource() == jButton6) {

jTextField3.setText(jTextField3.getText() + "6");

} else if (arg0.getSource() == jButton8) {

jTextField3.setText(jTextField3.getText() + "7");

} else if (arg0.getSource() == jButton9) {

jTextField3.setText(jTextField3.getText() + "8");

} else if (arg0.getSource() == jButton10) {

jTextField3.setText(jTextField3.getText() + "9");

} else if (arg0.getSource() == jButton13) {

jTextField3.setText(jTextField3.getText() + "0");

} else if (arg0.getSource() == jButton14) {// +

tempValue = Integer.parseInt(jTextField3.getText());

operator = '+';

jTextField3.setText("");

} else if (arg0.getSource() == jButton15) {// /

tempValue = Integer.parseInt(

jTextField3.getText());

operator = '/';

jTextField3.setText("");

} else if (arg0.getSource() == jButton16) {// x

tempValue = Integer.parseInt(jTextField3.getText());

operator = '*';

jTextField3.setText("");

} else if (arg0.getSource() == jButton17) {// -

tempValue = Integer.parseInt(jTextField3.getText());

operator = '-';

jTextField3.setText("");

} else if (arg0.getSource() == jButton18) {// -

int tempValue2 = Integer.parseInt(

jTextField3.getText());

int resultValue = 0;

if (operator == '+') {

resultValue = tempValue + tempValue2;

} else if (operator == '-') {

resultValue = tempValue - tempValue2;

} else if (operator == '*') {

resultValue = tempValue * tempValue2;

} else if (operator == '/') {

resultValue = tempValue / tempValue2;

}

jTextField3.setText("" + resultValue);

}

}


int tempValue;

char operator;

}



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

Calendar #1  (0) 2013.12.31
JAVA 파일 검색 코드  (0) 2013.12.28
JAVA 소수를 구하는 프로그램 GUI #2  (0) 2013.12.21
JAVA 소수를 판단하는 GUI 프로그램  (0) 2013.12.21
JAVA 버블 정렬  (0) 2013.11.30
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

 

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

 

class MyFrame extends JFrame {

   private JButton button;

   private JTextField text, result;

 

   public MyFrame() {

       setSize(300, 130);

       setTitle("제곱 계산하기");

   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 

       ButtonListener listener = new ButtonListener(); // 리스너 객체 생성

 

       JPanel panel = new JPanel();

       panel.add(new JLabel("숫자 입력: ")); // 레이블 생성

       text = new JTextField(15); // 컬럼수가 15 텍스트 필드 생성

       text.addActionListener(listener); // 텍스트 필드에 리스너 연결

       panel.add(text);

 

       panel.add(new JLabel("제곱한 : "));

       result = new JTextField(15); // 결과를 나타낼 텍스트 필드

       result.setEditable(false); // 편집 불가 설정

       panel.add(result);

       button = new JButton("OK");

       button.addActionListener(listener);

       panel.add(button);

       add(panel);

       setVisible(true);

   }

 

   // 텍스트 필드와 버튼의 액션 이벤트 처리

   private class ButtonListener implements ActionListener {

       public void actionPerformed(ActionEvent e) {

          if (e.getSource() == button || e.getSource() == text) {

             String name = text.getText();

             int value = 0;

             try {

                value = Integer.parseInt(name);

 

                 boolean isPrimeNumber = false;

 

                 // 계산

                 int count = 0;

                 for (int i = 1; i <= value; i++) {

                    // 계산

                    if (value % i == 0) {

                       count++;

                    }

 

                 }

 

                 if (count == 2) {

                    isPrimeNumber = true;

                 }

 

                 if (isPrimeNumber) {

                    result.setText("소수입니다.");

                 } else {

                    result.setText("소수가 아닙니다.");

                 }

            } catch (NumberFormatException e1) {

                 result.setText("숫자를 입력해주세요!!");

             }

             text.requestFocus();

          }

       }

   }

}

 

public class TextFieldTest extends JFrame {

   public static void main(String[] args) {

       new MyFrame();

   }

}

 

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

JAVA 파일 검색 코드  (0) 2013.12.28
JAVA GUI 계산기 소스코드  (0) 2013.12.22
JAVA 소수를 판단하는 GUI 프로그램  (0) 2013.12.21
JAVA 버블 정렬  (0) 2013.11.30
JAVA JTable 실습 예제  (0) 2013.08.24
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

import javax.swing.*;

import java.awt.event.*;

 

class MyFrame extends JFrame {

       private JButton button;

       private JTextField text, result;

 

       public MyFrame() {

             setSize(300, 130);

             setTitle("제곱 계산하기");

             setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 

             ButtonListener listener = new ButtonListener();   // 리스너 객체 생성

            

             JPanel panel = new JPanel();

             panel.add(new JLabel("숫자 입력: "));    // 레이블 생성

             text = new JTextField(15);       // 컬럼수가 15 텍스트 필드 생성

             text.addActionListener(listener);   // 텍스트 필드에 리스너 연결

             panel.add(text);

 

             panel.add(new JLabel("제곱한 : "));

             result = new JTextField(15); // 결과를 나타낼 텍스트 필드 

             result.setEditable(false);       // 편집 불가 설정

             panel.add(result);

           button = new JButton("OK");

           button.addActionListener(listener);

           panel.add(button);

           add(panel);

           setVisible(true);

     }

     // 텍스트 필드와 버튼의 액션 이벤트 처리

     private class ButtonListener implements ActionListener {

           public void actionPerformed(ActionEvent e) {

                  if (e.getSource() == button || e.getSource() == text) {

                         String name = text.getText();

                         int value = Integer.parseInt(name);

                         boolean isPrimeNumber = false;

                        

                         // 계산

                         int count = 0;

                         for( int i = 1 ; i <= value ; i++)

                         {

                         //계산

                         if( value % i == 0)

                         {

                             count++;

                         }

                         

                         }

                        

                         if(count == 2)

                         {

                         isPrimeNumber = true;

                         }

                         

                         if(isPrimeNumber)

                         {

                         result.setText("소수입니다.");

                         }

                         else

                         {

                         result.setText("소수가 아닙니다.");

                         }

                                                 

                         text.requestFocus();

                  }

           }

     }

}

public class TextFieldTest extends JFrame {

     public static void main(String[] args) {

           new MyFrame();

     }

}

 

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

JAVA GUI 계산기 소스코드  (0) 2013.12.22
JAVA 소수를 구하는 프로그램 GUI #2  (0) 2013.12.21
JAVA 버블 정렬  (0) 2013.11.30
JAVA JTable 실습 예제  (0) 2013.08.24
JAVA 채팅 프로그램 소스  (0) 2013.08.23
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
#include
#define MAX 100
int main(void)
{
	FILE* stream;	// 파일 포인터 생성 
	char bufferString[100];
	char tempString[100];
	char day[200][15];
	char time[200][10];
	int data[200][10];
	int dataAverage[10]= {0};
	int i, j, totalCount = 0;

	char *token;
	char* delimeter = ",";
	stream = fopen("data3.txt","a+");
	// 파일 열기
	// 키보드로 입력 받아 buffer에 저장
	fseek(stream,0,SEEK_SET);

	fscanf(stream,"%s", bufferString);
	fscanf(stream,"%s", bufferString);
	fscanf(stream,"%s", bufferString);
	fscanf(stream,"%s", bufferString);
	// 원하는 SEEK 에 도달

	while(!feof(stream))
	{
		fscanf(stream,"%s", tempString);
		// 2013-12-07
		fscanf(stream,"%s", bufferString);
		// 09:02:55,56,82,30,56,80,25,55,80,24,230
		strcat(tempString, ",");
		strcat(tempString, bufferString);
		//printf("%s\n", tempString);

		i = 0;
		j = 0;
		token = strtok(tempString, delimeter);
		while(token != NULL)  
		{
			printf("%s\n", token);
			switch(i)
			{
			case 0:
				strcpy(day[totalCount],token);
				break;
			case 1:
				strcpy(time[totalCount],token);
				break;
			default:
				data[totalCount][j] = atoi(token);
				j++;
				break;
			}
			token = strtok(NULL, delimeter);    //토큰으로 분리할 문자가 없는경우 NULL리턴			
			i++;
		}
		totalCount++;
	}

	printf("Data Count : %d\n", totalCount );
	
		printf("%7s %7s %7s %7s %7s %7s %7s %7s %7s %7s\n"
			, "LT-101","PT-101","TE-101","LT-102","PT-102","TE-102","LT-103","PT-103","TE-103","MFM-101");
		for( j = 0 ; j < 10 ; j++ )
		{
			for( i = 0 ; i < totalCount ; i++ )
			{
				dataAverage[j] += data[i][j];
			}
		}
		for( j = 0 ; j < 10 ; j++ )
		{
			for( i = 0 ; i < totalCount ; i++ )
			{
				if( data[i][j]>(dataAverage[j] / totalCount)*2)
				{
					printf("ERROR!!! %s %s 에 발생한 에러! \n", day[i], time[i]);
					
				}
			}
		}
		printf("%7.2lf %7.2lf %7.2lf %7.2lf %7.2lf %7.2lf %7.2lf %7.2lf %7.2lf %7.2lf"
			, (double)dataAverage[0] / totalCount
			, (double)dataAverage[1] / totalCount
			, (double)dataAverage[2] / totalCount
			, (double)dataAverage[3] / totalCount
			, (double)dataAverage[4] / totalCount
			, (double)dataAverage[5] / totalCount
			, (double)dataAverage[6] / totalCount
			, (double)dataAverage[7] / totalCount
			, (double)dataAverage[8] / totalCount
			, (double)dataAverage[9] / totalCount
			);
		
	// 파일(stream)에 buffer 내용 쓰기
	fclose(stream);
	// 파일(stream) 닫기
	return 0;
}


'Programming > C,CPP,CS' 카테고리의 다른 글

[Windows7] Internet Explorer 아이콘 사라짐 안보임  (1) 2014.01.04
Visual Studio 2010 Express Version  (0) 2013.12.28
C 패턴 분석 프로그램  (0) 2013.12.08
C언어 달력 소스코드  (0) 2013.08.02
아스키코드표  (0) 2013.05.02

C 패턴 분석 프로그램

Programming/C,CPP,CS 2013. 12. 8. 11:07 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

#include <stdio.h>

 

int main()

{

   int i;

   int type  = -1;

   // 0 :

   // 1 : 부팅

   int s1 = 3;

   int s2 = 5;

   int s[2] = {3,5};

 

   char patternString[2][10] = {"",

       ""};

   char resultString[2][30] = {" 안하세",

      "탭이 켜져있나?"};

   char string[20];

   int j;


   gets(string);

 

   for( j = 0 ; j < 2; j++)

   {

       i = match(string,patternString[j]);

       // java : strstr

       if( i != -1)

       {

          type = j;

       }

   }

   if( type != -1 )

   {

       printf("%s\n", resultString[type]);

   }

   return 0;

}

 

int match(char text[], char pattern[]) {

  int c, d, e, text_length, pattern_length, position = -1;

 

  text_length    = strlen(text);

  pattern_length = strlen(pattern);

 

  if (pattern_length > text_length) {

    return -1;

  }

 

  for (c = 0; c <= text_length - pattern_length; c++) {

    position = e = c;

 

    for (d = 0; d < pattern_length; d++) {

      if (pattern[d] == text[e]) {

        e++;

      }

      else {

        break;

      }

    }

    if (d == pattern_length) {

      return position;

    }

  }

 

  return -1;

}

 

'Programming > C,CPP,CS' 카테고리의 다른 글

Visual Studio 2010 Express Version  (0) 2013.12.28
측정값 오류 찾기 + 파일 입출력  (0) 2013.12.08
C언어 달력 소스코드  (0) 2013.08.02
아스키코드표  (0) 2013.05.02
프로그래밍용으로 좋은 폰트  (0) 2013.03.23

JAVA 버블 정렬

Programming/JAVA,JSP 2013. 11. 30. 16:57 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

package com.tistory.tansanc.mainClass;

 

import java.util.Scanner;

 

public class ComputerTest {

   public static void main(String[] args) {

       int[] array = { 3, 9, 7, 1, 2, 5 };

       // { 3, 7, 1, 2, 5, 9 };

       // { 3, 1, 2, 5, 7, 9 };

       // { 1, 2, 3, 5, 7, 9 };

       int i, j;

      

      for( j = 0 ; j < array.length - 1; j++ )

       {

          for( i = 0 ; i < array.length - j - 1;

                 i++ )

          {

             if ( array[i] > array[i+1] )

             {

                 int temp = array[i];

                 array[i] = array[i+1];

                 array[i+1] = temp;

             }           

          }

       }

       for( i = 0 ; i < array.length ; i++ )

       {     

          System.out.println(array[i]);

       }

   }

}

 

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

JAVA 소수를 구하는 프로그램 GUI #2  (0) 2013.12.21
JAVA 소수를 판단하는 GUI 프로그램  (0) 2013.12.21
JAVA JTable 실습 예제  (0) 2013.08.24
JAVA 채팅 프로그램 소스  (0) 2013.08.23
JAVA 채팅 클라이언트  (0) 2013.08.23
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Windows 7 환경에서 Android Fulll Source 다운로드 받기


http://source.android.com/source/downloading.html


위 링크에서


안드로이드 전체 소스코드를 다운로드 받을 수 있다.


Windows 환경에서 받는 방법을 설명한다


Cygwin: http://www.cygwin.com

Cygwin 설치 시 추가로 선택해야 할 패키지들: curl, git, python, readline


일단 Cygwin 을 이용하여 Windows 환경에서 리눅스 명령어를 사용 할 수 있게한다.


그 중 위 4개의 명령어는 반드시 필요하다.


Cygwin 홈페이지에서 setup.exe 파일을 다운로드한 후 실행한다.







대부분의 설정은 default 상태로 유지하고 넘어가는데, mirror site 선택할 때는 한국 내에 거주하는 경우 ftp.daum.net 을 선택해주는 것이 가장 빠르게 받을 수 있는 방법이다.



설치해야 할 package를 선택하는 화면이 나오면 우측 상단의 "View" 버튼을 눌러 Full 보기 상태로 만든 후 위에서 언급했던 모듈들을 추가로 선택해준다.


View 버튼은 그림에서 1. 번 위치에 있다.

모듈 설치 선택하는 방법은 그림에서 2. 번 위치를 눌러주는 것으로 결정이 가능하다.

Keep: 이미 설치되어 있는 버전을 그대로 유지할 것임을 나타냄.

Skip: 아직 설치되지 않은 모듈이며 설치하지 않을 것임을 나타냄. 이 부분을 마우스로 클릭하면 버전 번호로 바뀌게 되는데 설치 과정에서 설치하게 될 것임을 나타냄.

Uninstall: 이미 설치되어 있는 모듈을 제거할 것임을 나타냄.






Cygwin 설치가 완료되면


http://source.android.com/source/downloading.html


경로에 있는 대로


Full Source 를 받을 폴더로 Cygwin 에서 경로를 이동하고


curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > repo


repo 를 만든다.


chmod a+x ~/bin/repo


그 다음 repo 의 권한 설정을 변경해주고


repo init -u https://android.googlesource.com/platform/manifest


(위 명령어가 안 먹는 경우 git 설치가 덜 된 경우)

(http://git-scm.com/book/ko/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%84%A4%EC%B9%98)

(위 링크로 들어가서 git 설치 후 진행)


repo 를 초기화 한 후


repo sync


repo sync 를 호출하게 되면 약 1시간 이상동안 android full source 를 다운로드 받게 된다.


중간에 이름과 이메일을 물어보는 질문이 있다.






336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

http://code.google.com/p/android-screenshot-library/


페이지에서 최신 asl 라이브러리 파일을 다운로드 받는다.

(

Downloads -> asl-1.2.zip

)


압축을 풀고는 해당 경로에 있는 


asl-1.2demo\src\pl\polidea\asl


IScreenshotProvider.aidl

ScreenshotService.java


파일을 사용할 프로젝트에 pl/polidea/asl 패키지를 만들어 해당 경로에 넣는다.



그리고 해당 라이브러리는 진저브레드 이전 API에서 개발되어


networkonmainthreadException 이 발생되어


mainfest 에서



    <uses-sdk

        android:minSdkVersion=" "

        android:targetSdkVersion=" " />


라인을 제거해 준다.



그 다음 asl 폴더에 있는 파일들을 sdk/platform-tools 폴더에 이동시킨후


run.bat 파일을 더블클릭하여 실행시킨다.


그래도 잘 안될시에는


cmd 를 열어  sdk/platform-tools 로 이동 후


adb shell 을 통해 adb 쉘로 접근하여


su 를 통해 root 권한 획득을 하고


/data/local 폴더를


chmod 777 /data/local


명령어를 입력 한 후


다시 배치 파일을 더블클릭하고



코드를 작성 한다.


코드는 일단 


서비스를 등록하는



private ServiceConnection aslServiceConn = new ServiceConnection()

{


@Override

public void onServiceDisconnected(ComponentName name)

{

}


@Override

public void onServiceConnected(ComponentName name, IBinder service)

{

aslProvider = IScreenshotProvider.Stub.asInterface(service);


Log.d("onServiceConnected", "onServiceConnected " + aslProvider);

}

};



서비스가 등록되면


takeScreenshot 메서드를 통해 스크린샷을 찍을 수 있다.


aslProvider.takeScreenshot();



ps.


하지만 takeScreenshot 자체가 한번 수행하는데에 1초 이상이 걸려


현재 ScreenshotClient 를 이용해 보려고 다른 시도를 하는 중...............




android-screenshot-library

Programming/Android 2013. 11. 6. 19:15 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

android-screenshot-library 제대로 사용하기

http://code.google.com/p/android-screenshot-library/downloads/list


asl-1.2.zipAndroid Screenshot Library 1.2   Featured




내부 코드가 진저브레드 이전 버전으로 되어있어서


network on main thread Exception 이 발생한다.



Android 졸업 작품 도움 요청 카페

Programming/Android 2013. 10. 22. 18:45 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

http://cafe.naver.com/programmingassistor


위 사이트에서 졸업작품이나 과제에대한


도움이 필요할 경우 요청해주시면


도와드리고있습니다.