추가를 누른후 이렇게 설정한다

Test Connection 을 눌러서 연결 성공을 확인한다.



새로 만들기로 데이터베이스를 하나 만든다.



외부데이터 탭에서 기타에서 ODBC 데이터베이스 선택





HR 뿐 아니라 모든테이블이 보이게 된다. 그중 HR 을 골라서 선택하면된다.
이렇게 하면 테이블 가져오게 된다.

UIManager 사용 외부 skin 사용

컴퓨터/Java 2009. 5. 20. 15:41 Posted by 유스~*


skinlf.jar 파일과 aquathemepack.zip 파일이 필요하다

http://l2fprod.com/skinlf/download/index.php  --> skinlf 받는곳
http://javootoo.l2fprod.com/plaf/skinlf/themepacks/index.html  --> themepacks 받는곳


import java.awt.*;
import javax.swing.*;

import com.l2fprod.gui.plaf.skin.Skin;
import com.l2fprod.gui.plaf.skin.SkinLookAndFeel;

import java.awt.event.*;
 
public class LookAndFeelTest extends JFrame
{
     private String str[] = { "자바기본", "UNIX", "윈도우즈","윈도우즈classic","aqua"};
     private UIManager.LookAndFeelInfo looks[];
     private JRadioButton radio[];
     private ButtonGroup group;
     private JButton button;
     private JLabel label;
 
     public LookAndFeelTest()
     {
        super( "Look-and-Feel 테스트" ); 
  setDefaultCloseOperation(EXIT_ON_CLOSE);
        JPanel northPanel = new JPanel();
        northPanel.setLayout( new GridLayout( 3, 1, 0, 5 ) );
        label = new JLabel(" 메탈(자바기본) look-and-feel");
  add("Center",label);
        northPanel.add(label );
        button = new JButton( "컴포넌트의 모양 - JButton" );
        northPanel.add( button );
        add("Center", northPanel);
     
        JPanel southPanel = new JPanel();
        radio = new JRadioButton[str.length ];
        group = new ButtonGroup();
        southPanel.setLayout(new GridLayout( 1, radio.length ) );
        for ( int i = 0; i < radio.length; i++ )
  {
           radio[ i ] = new JRadioButton( str[ i ] );
           radio[ i ].addItemListener( new ItemHandler() );
           group.add( radio[ i ] );
           southPanel.add( radio[ i ] );
        }
 
        add("South", southPanel);
       
        try {
   Skin theSkinToUse = SkinLookAndFeel.loadThemePack("aquathemepack.zip");          //외부 aqua 스킨
   SkinLookAndFeel.setSkin(theSkinToUse);
  } catch (Exception e1) {
   e1.printStackTrace();
  }
  
  try {
   UIManager.installLookAndFeel("aqua", new SkinLookAndFeel().getClass().getName()); //외부 aqua 배열등록
  } catch (Exception e) {
   e.printStackTrace();
  }
  
                
        looks = UIManager.getInstalledLookAndFeels(); // 등록된 look 앤 필을 가져오는데 외부 aqua도 가져옴
// 기본적으로 등록되어있는것은 1.5 기준으로 metal,CDE/Motif,Windows,Windows Classic 이다
        
        
        System.out.println(looks.length);
        setSize( 350, 200 );
        setVisible(true);
 
        radio[0].setSelected( true );
     }
 
     private void changeTheLookAndFeel( int value )
     {
        try
  {
           UIManager.setLookAndFeel(looks[ value ].getClassName() );
           SwingUtilities.updateComponentTreeUI( this );
        }
        catch ( Exception e )
  {
           e.printStackTrace();
        }
     }
 
     public static void main( String args[] )
     {
  new LookAndFeelTest();
     }
 
     private class ItemHandler implements ItemListener
  {
        public void itemStateChanged( ItemEvent e )
        {
           for ( int i = 0; i < radio.length; i++ )
              if ( radio[ i ].isSelected() )
     {
                 label.setText(str[ i ] + " look-and-feel" );
                 changeTheLookAndFeel( i );
              }
        }
     }
  }

sendRedirect, getRequestDispatcher

컴퓨터/Servlet&JSP 2009. 5. 14. 20:29 Posted by 유스~*

데몬 스레드 및 스레드 확인 소스

컴퓨터/Java 2009. 5. 14. 16:56 Posted by 유스~*

package com.thread;

import java.util.Map;
import java.util.Set;

class T1 extends Thread {
 int i = 0;
 
 public static void dispAllstack() {
    Map<Thread,StackTraceElement[]> mpstes = Thread.getAllStackTraces();
    Set<Map.Entry<Thread,StackTraceElement[]>> es = mpstes.entrySet();
  
    for (Map.Entry<Thread,StackTraceElement[]> me : es) {
     Thread th = me.getKey();
     System.out.println("ㅁ" + th);
     StackTraceElement[] stes2 = me.getValue();
/*     for (int j=0; j<stes2.length; j++) {
      System.out.println("ㅁ " + stes2[j]);
     }*/
    }
    Thread.currentThread().getThreadGroup().list();
  }
 public void run() {
  while(i < 10) {
   try {
    sleep(1000);
   } catch(InterruptedException ie) {
    ie.printStackTrace();
   }
   System.out.println(i);
   i++;
   
   if(i == 5) {
    dispAllstack();
   }
  }
  System.out.println("활동중인 스레드수 - " +Thread.currentThread().getThreadGroup().activeCount());
  System.out.println("T1종료");
  dispAllstack();
 }

}

******************************************************************************************************

package com.thread;

class T2 extends Thread {
 
 int i = 2;
 
 public void run() {
  while(i>1) {
   try {
    Thread.sleep(1000);
   } catch(InterruptedException ie) {
    ie.printStackTrace();
   }
   System.out.println("T2");
   i++;
   
   if(i % 10 == 0) {
    Thread.currentThread().getThreadGroup().list();
    System.out.println("활동중인 스레드수 - " +Thread.currentThread().getThreadGroup().activeCount());
   }
  }
 }

}

******************************************************************************************************

package com.thread;

import java.util.*;

public class TestThread {

 public static void dispAllstack() {
    Map<Thread,StackTraceElement[]> mpstes = Thread.getAllStackTraces();
    Set<Map.Entry<Thread,StackTraceElement[]>> es = mpstes.entrySet();
  
    for (Map.Entry<Thread,StackTraceElement[]> me : es) {
     Thread th = me.getKey();
     System.out.println("ㅁ" + th);
     StackTraceElement[] stes2 = me.getValue();
   /*  for (int j=0; j<stes2.length; j++) {
      System.out.println("ㅁ " + stes2[j]);
     }*/
    }
    }
    
 public static void main(String[] args) {
  Thread.currentThread().setName("메인");
  T1 t1 = new T1();
  T2 t2 = new T2();
  t1.setName("T1");
  t2.setName("T2");
//  t2.setDaemon(true);
  t1.start();
  t2.start();
  Thread.currentThread().getThreadGroup().list();
  System.out.println("활동중인 스레드수 - " +Thread.currentThread().getThreadGroup().activeCount());
  
  try {
   Thread.sleep(3000);
  } catch (InterruptedException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  dispAllstack();
  System.out.println("main종료");
  Thread.currentThread().getThreadGroup().list();
 }
 
}