[Java] Countdown, Systemzeit ausgeben

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von unix, 4. Dezember 2008 .

  1. 10. Dezember 2008
    AW: Countdown, Systemzeit ausgeben

    hhmm, hab jetzt einen Fehler gefunden, aber der spuckt mir immernoch welche raus!

    Iwas anscheinend mit dem JFrame und den JPanels xD

    Hier mal der Code, diesmal direkt in den post, da es sich ja dann vllt. welche anschauen ^^

    Die Fehler kommen:
    Exception in thread "main" java.lang.NullPointerException
    at java.awt.Container.addImpl(Unknown Source)
    at java.awt.Container.add(Unknown Source)
    at javax.swing.JFrame.addImpl(Unknown Source)
    at java.awt.Container.add(Unknown Source)
    at Countdown.OpenFrame(Countdown.java:75)
    at Countdown.main(Countdown.java:9)

    Code:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
     
    public class Countdown extends Thread implements ActionListener {
     public static void main(String[] args){
     new Countdown().OpenFrame();
     }
    
     JTextField Count =new JTextField(12);
     JFrame mFrame;
     Thread th1;
     JPanel pNorth,pCenter;
    long uhrzeit;
    
    JTextField Tag =new JTextField("Tag",4);
    JTextField Monat =new JTextField("Monat",2);
    JTextField Jahr =new JTextField("Jahr",2);
    JTextField Stunde =new JTextField("Stunde",2);
    JTextField Minute =new JTextField("Minute",2);
    JButton start = new JButton ("START");
    
     public void finish(){
     Count.setText ("HAPPY NEW YEAR");
     Count.setForeground (Color.white);
     Count.setBackground (Color.black);
     Count.setForeground (Color.black);
     Count.setBackground (Color.white);
     
     try {
     Thread.sleep(600); //Methode schläft für 600 Millisekunden
     } catch (InterruptedException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();}}
     
     
     
    @SuppressWarnings("deprecation")
    public void holezeit(){
     int a = Integer.parseInt(Tag.getText());
     int b = ((Integer.parseInt(Monat.getText()))-1);
     int c = ((Integer.parseInt(Jahr.getText()))-1900);
     int d = Integer.parseInt(Stunde.getText());
     int e = Integer.parseInt(Minute.getText());
     java.util.Date sylvester2009= new java.util.Date(c,b,a,d,e); //Hier werden die Einstellung für das Datum getroffen
     long curTime=System.currentTimeMillis()+3600000;
     long diff=sylvester2009.getTime()-curTime;
     long day = diff/86400000;
     long hour = (diff % 86400000)/3600000;
     long min = (diff % 3600000)/60000;
     long sec = (diff % 60000)/1000;
     System.out.printf("Noch %d Tage, %d Stunden und %d Minuten und %d Sekunden",day,hour,min,sec); 
     String hourleft = new String (Long.toString(hour));
     String minutesleft = new String (Long.toString(min));
     String secondsleft = new String (Long.toString(sec));
     Count.setForeground (Color.green);
     Count.setBackground (Color.black);
     Count.setHorizontalAlignment(JTextField.CENTER);
     Count.setText( hourleft + ":" + minutesleft + ":" + secondsleft ); //Uhrzeit wird in Textfeld geschrieben
    
     try {
     Thread.sleep(1000); //Methode schläft für 1000 Millisekunden
     } catch (InterruptedException h) {
     // TODO Auto-generated catch block
     h.printStackTrace();}
     }
    
    public void OpenFrame(){
     mFrame= new JFrame("Uhrzeit");
     mFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     mFrame.setExtendedState(Frame.MAXIMIZED_BOTH);
     mFrame.setLayout (new BorderLayout());
     mFrame.add(BorderLayout.NORTH, pNorth);
     mFrame.add(BorderLayout.CENTER, pCenter);
     mFrame.setBackground(Color.black);
     mFrame.setForeground(Color.green);
     pNorth.setLayout(new FlowLayout());
     pNorth.add(Tag);
     pNorth.add(Monat);
     pNorth.add(Jahr);
     pNorth.add(Stunde);
     pNorth.add(Minute);
     pNorth.add(start);
     start.addActionListener(this);
     pCenter.setLayout(new GridLayout(1, 1));
     pCenter.add(Count);
     pCenter.setVisible(false);
     }
    
    @Override
    public void actionPerformed(ActionEvent b) {
     final String s = b.getActionCommand () ;
     if(s.equals("start")){
     pNorth.setVisible(false);
     pCenter.setVisible(true);
     for(;true; ){
     holezeit(); // Endlosschleife
     } }
    }
    }
    
     
  2. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.