추가를 누른후 이렇게 설정한다
Test Connection 을 눌러서 연결 성공을 확인한다.
새로 만들기로 데이터베이스를 하나 만든다.
외부데이터 탭에서 기타에서 ODBC 데이터베이스 선택
HR 뿐 아니라 모든테이블이 보이게 된다. 그중 HR 을 골라서 선택하면된다.
이렇게 하면 테이블 가져오게 된다.
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 );
}
}
}
}
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();
}
}