package ToHangle;

import java.awt.Dimension;
import java.awt.Rectangle;
import java.io.UnsupportedEncodingException;
import java.lang.Character.UnicodeBlock;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;

public class ToHangle extends JFrame {

 private static final long serialVersionUID = 1L;
 private JPanel jContentPane = null;  //  @jve:decl-index=0:visual-constraint="10,10"
 private JButton jButton = null;
 private JTextArea jTextArea = null;
 private JTextArea jTextArea1 = null;
 private ButtonGroup btnGroup;  //  @jve:decl-index=0:
 private JScrollPane jScrollPane = null;
 private JScrollPane jScrollPane1 = null;
 private JButton jButton1 = null;

 /**
  * This method initializes jButton
  *  
  * @return javax.swing.JButton
  */
 private JButton getJButton() {
  if (jButton == null) {
   jButton = new JButton();
   jButton.setBounds(new Rectangle(100, 187, 115, 26));
   jButton.setText("UTF-8 로");
   jButton.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent e) {
     //System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
     //JOptionPane.showMessageDialog(null, "jScroll>>"+jTextArea.getY() );
     //jTextArea1.setCaretPosition(jTextArea.getCaretPosition() );
     //toHan();
     //jScrollPane1.getHeight();
     //getVerticalScrollBar

     toUnicode();

     //jTextArea1.set());
     //jTextArea1.setCaretPosition(jTextArea.getY());
     jTextArea1.requestFocus();

    }
   });
  }
  return jButton;
 }
 private void toUnicode(){
  //jTextArea.getText();
  jTextArea1.setText( toUnicod(jTextArea.getText()));
 }
 private void toHan(){
  //jTextArea.getText();
  jTextArea1.setText( toHan(jTextArea.getText()));
 }
 public static String  toUnicod(String hangle){
  String ret="";
  StringBuffer uni_s = new StringBuffer();

  if(hangle==null|| hangle=="") return "";

  for(int i=0;i<hangle.length();i++){
   char c=hangle.charAt(i);

   if(isHan(c)){
    int ic=(int)c;
    //ret+="\\u"+Integer.toHexString(ic).toUpperCase();
    uni_s.append("\\u"+Integer.toHexString(ic).toUpperCase());
   }else{
    //ret+=c;
    uni_s.append(c);
   }
  }

  return uni_s.toString();
 }
 public static boolean  isHan(char ch){
  boolean ret=false;

  Character.UnicodeBlock unicodeBlock = Character.UnicodeBlock.of(ch);
  if(UnicodeBlock.HANGUL_SYLLABLES.equals(unicodeBlock) ||
    UnicodeBlock.HANGUL_COMPATIBILITY_JAMO.equals(unicodeBlock) ||
    UnicodeBlock.HANGUL_JAMO.equals(unicodeBlock))
   ret= true;

  return ret;
 }

 public static String  toHan(String uni){
  String ret="";
  StringBuffer str = new StringBuffer();

  if(uni==null|| uni=="") return "";

  for( int i= uni.indexOf("\\u") ; i > -1 ; i = uni.indexOf("\\u") ){
  str.append( uni.substring( 0, i ) );
  str.append( String.valueOf( (char)Integer.parseInt( uni.substring( i + 2, i + 6 ) ,16) ) );
  uni = uni.substring( i +6);
  }
  str.append( uni );

  return str.toString();

 }
 public static String  toUni(String uni){
  String ret="";
  ret=String.valueOf( (char)Integer.parseInt( uni.substring( 2,6 ) ,16) );
  return ret;
 }

 /**
  * This method initializes jTextArea
  *  
  * @return javax.swing.JTextArea
  */
 private JTextArea getJTextArea() {
  if (jTextArea == null) {
   jTextArea = new JTextArea();
   jTextArea.setLineWrap(false);
  }
  return jTextArea;
 }

 /**
  * This method initializes jTextArea1
  *  
  * @return javax.swing.JTextArea
  */
 private JTextArea getJTextArea1() {
  if (jTextArea1 == null) {
   jTextArea1 = new JTextArea();
   jTextArea1.setWrapStyleWord(false);
   jTextArea1.setLineWrap(false);
  }
  return jTextArea1;
 }

 /**
  * This method initializes jScrollPane
  *  
  * @return javax.swing.JScrollPane
  */
 private JScrollPane getJScrollPane() {
  if (jScrollPane == null) {
   jScrollPane = new JScrollPane();
   jScrollPane.setBounds(new Rectangle(11, 9, 522, 172));
   jScrollPane.setViewportView(getJTextArea());
  }
  return jScrollPane;
 }


 /**
  * This method initializes jScrollPane1
  *  
  * @return javax.swing.JScrollPane
  */
 private JScrollPane getJScrollPane1() {
  if (jScrollPane1 == null) {
   jScrollPane1 = new JScrollPane();
   jScrollPane1.setBounds(new Rectangle(11, 217, 522, 172));
   jScrollPane1.setViewportView(getJTextArea1());
  }
  return jScrollPane1;
 }


 /**
  * This method initializes jButton1
  *  
  * @return javax.swing.JButton
  */
 private JButton getJButton1() {
  if (jButton1 == null) {
   jButton1 = new JButton();
   jButton1.setBounds(new Rectangle(315, 187, 115, 26));
   jButton1.setText("한글로");
   jButton1.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent e) {
     //System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
     toHan();
    }
   });
  }
  return jButton1;
 }
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  SwingUtilities.invokeLater(new Runnable() {
   public void run() {
    ToHangle thisClass = new ToHangle();
    thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    thisClass.setVisible(true);
   }
  });
 }

 /**
  * This is the default constructor
  */
 public ToHangle() {
  super();
  initialize();
 }

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize() {
  this.setSize(552, 422);
  this.setResizable(false);
  this.setContentPane(getJContentPane());
  this.setTitle("변환작업");
 }

 /**
  * This method initializes jContentPane
  *
  * @return javax.swing.JPanel
  */
 private JPanel getJContentPane() {
  if (jContentPane == null) {
   jContentPane = new JPanel();
   jContentPane.setLayout(null);
   jContentPane.setSize(new Dimension(477, 343));
   jContentPane.add(getJButton(), null);

   jContentPane.add(getJScrollPane(), null);
   jContentPane.add(getJScrollPane1(), null);
   jContentPane.add(getJButton1(), null);



  }
  return jContentPane;
 }

}  //  @jve:decl-index=0:visual-constraint="23,30"

'Java' 카테고리의 다른 글

lotto 당첨번호 파싱  (4) 2010.04.07
openCsv sample function  (2) 2010.04.07
AES java 암호화 구현 function sample  (1) 2010.04.07
Unzip.java  (3) 2010.04.07
PropertyLoader.java  (2) 2010.04.07