2014-04-07 3 views
0

netbeans를 통해 Java로 프로그램을 만들었습니다. 기존 프로젝트에서 스톱 워치를 추가하고 싶습니다. 나는 자바에서 스톱워치의 다음과 같은 코드를 가지고 있지만 내 프로그램이 포함 할 수있는 방법을 확인할 수 없습니다입니다 :내 스톱워치 내장 방법

//All the imports were written here (I deleted them to make the code clear) 


public class NewJFrame extends javax.swing.JFrame { 

Toolkit toolkit; 
Timer timer; 


public NewJFrame() { 


    EventQueue.invokeLater(new Runnable() { 
     @Override 
     public void run() { 
      try { 
       UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
      } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { 
      } 

      JFrame frame = new JFrame("Testing"); 
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      frame.setLayout(new BorderLayout()); 
      frame.add(new TestPane()); 
      frame.pack(); 
      frame.setLocationRelativeTo(null); 
      frame.setVisible(true); 
     } 
    }); 

} 


public class TestPane extends JPanel { 

    private JTextField field; 
    private JButton button; 
    private int tick; 
    private Timer timer; 

    public TestPane() { 

     field = new JTextField(10); 
     field.setEditable(false); 
     button = new JButton("Start"); 
     button.addActionListener(new ActionListener() { 
      @Override 
      public void actionPerformed(ActionEvent e) { 
       button.setEnabled(false); 
       tick = 0; 
       timer.start(); 
      } 
     }); 

     timer = new Timer(1000, new ActionListener() { 
      @Override 
      public void actionPerformed(ActionEvent e) { 
       field.setText(Integer.toString(++tick)); 
       if (tick > 4) { 
        timer.stop(); 
        button.setEnabled(true); 
       } 
      } 
     }); 
     timer.setInitialDelay(0); 

     setLayout(new GridBagLayout()); 
     GridBagConstraints gbc = new GridBagConstraints(); 
     gbc.gridwidth = GridBagConstraints.REMAINDER; 
     add(field, gbc); 
     add(button, gbc); 

    } 
} 




/** 
* Creates new form NewJFrame 
*/ 


/** 
* This method is called from within the constructor to initialize the form. 
* WARNING: Do NOT modify this code. The content of this method is always 
* regenerated by the Form Editor. 
*/ 
@SuppressWarnings("unchecked") 
// <editor-fold defaultstate="collapsed" desc="Generated Code">       
private void initComponents() { 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGap(0, 400, Short.MAX_VALUE) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGap(0, 300, Short.MAX_VALUE) 
    ); 

    pack(); 
}// </editor-fold>       

/** 
* @param args the command line arguments 
*/ 
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 
    */ 


    System.out.format("About to schedule task.%n"); 
    new NewJFrame(); 
System.out.format("Task scheduled.%n"); 



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

     public void run() { 
      new NewJFrame().setVisible(true); 
     } 
    }); 
} 
// Variables declaration - do not modify      
// End of variables declaration     
} 

나는 TestPane 무엇인지 알아낼 수 없습니다 난에 있기 때문에, Testpane없이 어떻게해야합니까 위의 코드 GUI 요소는 자바 코드 작성으로 만들어졌지만 내 프로그램에 포함시키려는 경우 모든 GUI 요소 작성을 위해 netbeans GUI 빌더를 사용했습니다. 그럼 어떻게 삽입합니까?

+0

많은 코드를 게시했지만 특정 질문을하지 않았습니다. StackOverflow가 해결할 수있는 문제를 좁혀 야합니다. 당신이 이해하지 못하는 문제의 한 가운데로 도약하려고하는 것 같습니다. 간단한 것을 시작하고 계속할 수없는 지점까지 스톱워치까지 올라가서 구체적인 문제가있을 때 다시 질문하십시오. – SimonC

+0

@ SimonC 시작 위치를 모르겠습니다. ( –

답변

2

Netbeans GUI Builder를 사용하고 있으므로 스톱워치를 삽입하는 가장 쉬운 방법은 JPanel 양식을 작성하고 거기에 타이머 코드를 넣는 것입니다. 또한 해당 클래스의 시계를 시작, 중지, 재설정 할 수있는 메소드를 가질 수 있습니다. 그런 다음 JPanel을 패키지 탐색기에서 JFrame으로 드래그하면됩니다. here

+0

패널을 어떻게 코딩 할 수 있습니까? 스윙 패널을 화면으로 드래그 앤 드롭했는데 더블 클릭으로 코드를 작성할 수 없습니다. 코드를 어디에 추가합니까? –

+0

New - Swing Forms -> JPanel 폼으로 이동하고, 만든 'JPanel'폼에 대해'TestPane'에서하고있는 일을 사용하면 패키지 탐색기에서 그 JPanel 폼 파일을 디자인으로 드래그 할 수 있습니다. 기본'JFrame '폼의 뷰가 나타나고 나타납니다. –

+0

주 Java 파일에 드래그 앤 드롭 할 수 없습니다 –