Witam !!

Pewnego pięknego dnia postanowiłem zabrać się za moją pracę projektową z javy 8-). I chcąc sobie ułatwić zadanie do tworzenia formatki skorzystałem z wbudowanej funkcjonalności netbeansa. Otóż stworzyłem sobie ramkę z kilkoma panelami które rozmieściłem ładnie na całej formatce. Problem pojawił się kiedy chciałem umieścić zegar w jednym z zaprojektowanych panel. A mianowicie:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * NewJFrame.java
 *
 * Created on 2009-01-27, 21:49:27
 */



/**
 *
 * @author d660
 */
public class NewJFrame extends javax.swing.JFrame {

    /** Creates new form NewJFrame */
    public NewJFrame() {
        initComponents();
    }

    /** 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() {

        PanelCzasu = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        jPanel3 = new javax.swing.JPanel();
        jPanel4 = new javax.swing.JPanel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        PanelCzasu.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        javax.swing.GroupLayout PanelCzasuLayout = new javax.swing.GroupLayout(PanelCzasu);
        PanelCzasu.setLayout(PanelCzasuLayout);
        PanelCzasuLayout.setHorizontalGroup(
            PanelCzasuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 378, Short.MAX_VALUE)
        );
        PanelCzasuLayout.setVerticalGroup(
            PanelCzasuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 48, Short.MAX_VALUE)
        );

        jPanel2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 171, Short.MAX_VALUE)
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        jPanel3.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 195, Short.MAX_VALUE)
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        jPanel4.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 378, Short.MAX_VALUE)
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addComponent(PanelCzasu, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(PanelCzasu, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(136, Short.MAX_VALUE))
        );

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

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JPanel PanelCzasu;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    // End of variables declaration

}

To oczywiście przykład, żeby za bardzo nie zagmatwać. W każdym razie mając taka formatkę z czterema panelami, do górnego panela (PanelCzasu) próbuje wstawić zegar wraz z funkcją daty. Ale z racji tego, że jestem raczej początkującym programistą nie za bardzo mi to wychodzi. Tak więc zwracam się do was o pomoc bo inaczej dostane na łeb :D. A oto kod zegara który próbuje wrzucić do górnego panelu:


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

public class GraficznyZegar {   
public static void main(String args[]){ 
JFrame okno=new JFrame("Zegar"); 
okno.setSize(400,150); 
Panel panel=new Panel();   
okno.getContentPane().add(panel); 
okno.setDefaultCloseOperation(3); 
okno.setVisible(true); 
} 
} 


class Panel extends JPanel implements Runnable{       
int rok,mc,dzien,godz,min,sek; 
String smc,sdzien,sgodz,smin,ssek; 
Thread watek=null;    

public Panel(){ 
watek=new Thread(this);    
watek.start();    
} 
public void paintComponent(Graphics g){ 

g.clearRect(0,0,400,150); 
Font czcionka=new Font("Monospaced",Font.BOLD,30); 
g.setFont(czcionka); 
if(mc<9){ smc="0"; } else smc=""; 
if(dzien<10){ sdzien="0"; } else sdzien=""; 
g.drawString(rok+"."+smc+(mc+1)+"."+sdzien+dzien,70,40); 
if(godz<10){ sgodz="0"; } else sgodz=""; 
if(min<10){ smin="0"; } else smin=""; 
if(sek<10){ ssek="0"; } else ssek=""; 
g.drawString(sgodz+godz+":"+smin+min+":"+ssek+sek,70,80); 
} 

public void run(){    
while(true){    
GregorianCalendar czas=new GregorianCalendar();    
rok=czas.get(Calendar.YEAR);   
mc=czas.get(Calendar.MONTH);  
dzien=czas.get(Calendar.DAY_OF_MONTH);   
godz=czas.get(Calendar.HOUR_OF_DAY);    
min=czas.get(Calendar.MINUTE);   
sek=czas.get(Calendar.SECOND);    
try{ 
	Thread.sleep(1000);  
   }catch(InterruptedException e){ 
System.out.println("Wyst�pi� b��d");} 
repaint(); 
		}    
			}   

}