2014-03-05 2 views
2

나는 Jtable이라는 자바 클래스를 가지고있다. 이 클래스를 실행하면 잘 작동하지만이 클래스를 10 번 실행하면 10 개의 새 창이 열리 며 원하지 않습니다.이 자바 클래스를 이전 창을 닫아야하는 횟수만큼 실행하면됩니다.Close Window를 닫는 방법

는 내 코드는 아래와 같습니다 :

import java.awt.FlowLayout; 
import javax.swing.JFrame; 
import javax.swing.JScrollPane; 
import javax.swing.JTable; 
import javax.swing.table.DefaultTableModel; 

public class Jtable extends JFrame { 
    DefaultTableModel model; 
    JTable table; 
    String col[] = {"Name","Address","Phone","hi","","","","","",""}; 

    public static void main(String args[]) { 
     new Jtable().start(); 
    } 

    public void start() { 
     model = new DefaultTableModel(col,9); 
     table = new JTable(model) { 
      @Override 
      public boolean isCellEditable(int arg0, int arg1) {   
       return false; 
      } 
     }; 

     JScrollPane pane = new JScrollPane(table); 
     pane.setBounds(50,100,700,400); 
     String s="hello"; 
     table.setValueAt(s,0,1); 

     add(pane); 
     setVisible(true); 
     setSize(500,400); 
     setLayout(new FlowLayout()); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     pane.setLayout(null); 
    } 
} 
+0

서로 다른 인스턴스가 동일한 VM 내에 만들어 질 수 있습니까? –

+0

나는 그것이 질문의 또 다른 공식화라고 생각한다 : [단일 인스턴스 Java 애플리케이션을 어떻게 구현 하는가] [1] : http://stackoverflow.com/questions/177189/how-to-implement-a-single-instance- java-application –

+0

Jtable 클래스를 호출하지 마십시오. 너무 혼란 스럽다 Swing 클래스'JTable'가 있습니다. – camickr

답변

1

이 코드에 다음과 같은 수정을 추가

public class Jtable extends JFrame 
{ 
    //add object of Jtable as class variable 
    public static Jtable jtable = null; 
    ... 
} 

public static void main(String args[]) 
{ 
    //completely change the main method code 
    //checking whether is there any jtable object exists 

    if (jtable != null) 
    { 
     //if exist it will dispose it 
     jtable.dispose(); 
    } 

    //creating a new jtable instance 
    jtable=new Jtable(); 
    jtable.start(); 
} 
+0

작동하지 않습니다 –

+0

와트의 말 @ user3377703 – user3382627

+0

무엇이 문제입니까 – user3382627

0

이보십시오.

프로젝트에서 수업을 만드십시오. 예를 들어 그를 InstanceCounter 전화 :

class IntanceCounter{ 
    public static int instanceCount = 0; 
    public static JFrame frame; 
} 

당신이 프로그램을 시작하면, 단지 생각

... 
InstanceCounter.instanceCount++; 

if(InstanceCounter.instanceCount>1) 
    InstanceCounter.frame.dispose(); 

InstanceCounter.frame = myJFrame; 
... 

를 사용합니다.