UHRAPPLET

Status
Nicht offen für weitere Antworten.
M

Markusa

Gast
// :autsch: Meine güte das war ne Arbeit mit dem GridBaglayout

Hallo, mir fehlt der Krönende abschlus meines Layouts nämlich eine Uhr,
allso sie läuft einwandfrei aber nur im HTML ein mal lief sie auch beim Layout aber habs irgendwie wieder zersört hier ist ein bißchen code mit dem ich es bischer versucht die Uhr aufzurfen:
Code:
anordnen(gc,0,0,1,1);//gridx; gridy;gridwidth; gridheight
	        gbl1.gridheight = höhe; // Zelle hoch
	           Uhr uhrApplet = new Uhr(); 
	           uhrApplet.init(); 
	           uhrApplet.start();
	           add(uhrApplet,gc);

Hier der code für die Uhr:
Code:
          //UHR
          public class Uhr extends Applet
		  {
		  // Instanzvariablen
		  String aktZeit;
		  DateFormat formatierer;
		  CZeitThread zeit;
		  Font anzeigeFont;

		  public void init()  
		    {
		    anzeigeFont = new Font("Arial",Font.BOLD,18);
		    formatierer = DateFormat.getTimeInstance();
		    aktZeit = formatierer.format(new Date());

		    // eine Instanz der Threadklasse anlegen und starten
		    zeit = new CZeitThread();
		    zeit.start();
		    }

		  public void start()  
		    {
		    // einen Thread starten
		    if(zeit == null)
		      {
		      zeit = new CZeitThread();
		      zeit.start();
		      }
		    }

		 public void stop()  
		    {
		    // den Thread beenden
		    if(zeit == null)
		      {
		      zeit.interrupt();
		      zeit = null;
		      }
		    }

		  public void destroy()
		    {
		    // den Thread beenden
		    if(zeit == null)
		      {
		      zeit.interrupt();
		      zeit = null;
		      }
		    }

		  public void paint(Graphics g) 
		    {
		    // die aktuelle Uhrzeit anzeigen
		    g.setFont(anzeigeFont);
		    g.setColor(Color.black);
		    g.drawString(aktZeit,20,45);
		    }

		  // den Thread als innere Klasse definieren
		  class CZeitThread extends Thread
		    {
		    public void run()  
		      {
		      while(isInterrupted() == false)
		        {
		        aktZeit = formatierer.format(new Date());
		        repaint();

		        // kurze Zeit schlafen
		        try  
		          { 
		          sleep(1000); 
		          } 
		        catch(InterruptedException e) 
		          {
		          return;
		          }
		        }
		      }
		    }
		  }
       //UHR ENDE
 
M

Markusa

Gast
Der erste code sollte das Applet starten und in das Gridbaglayout einfügen aber dies tut er aber nicht.

//es wird nicht durch was anderes überdeckt, falls sich das
//jemand denkt,
 
M

Markusa

Gast
Bin immer noch da dran wenn jemnd ein Einfall hat immer her damit
 
M

Markusa

Gast
Ich hab mehrere element, ist einfach nur für die Übersicht.
Die Seite kenn ich auch scon mittlerweile auswändig aber trotzdem danke...
soll ich noch ein Code Hinzufügen um einen Fehler zu finden?
 

Rydl

Bekanntes Mitglied
naja vllt hilfts ja zu helfen, wenn du den ganzen "layoutbereich" postest. kann mir vorstellen dass du da nur irgendwo ne 0 und ne 1 verstauscht hast, wenns schonmal funktioniert hat.
 
M

Markusa

Gast
OK aber nicht erschrecken:
Code:
package mud;

import java.awt.*;       
import java.applet.*;    //Für die Uhr
import java.util.*;      // für die Klasse Date
import java.text.*;      // für die Klasse DateFormat 
import java.awt.event.*;
import javax.swing.*;

public class Layout extends Frame implements ActionListener, TextListener {			
     
        public static TextArea ausgabe; //Informationsfeld
	    public static TextField eingabe;//Eingabefeld
	    public static TextArea chat;//Eingabefeld
	    public static TextArea inventar;//Eingabefeld
	    boolean inAnApplet = true;
	    String text0 ="Gib bitte in das untere Textfeld 
	    	    	                  	     	
	    public Layout(String titel) {//Das Layout zusammensetzen
	    	super(titel);
	    	
	    	 // Layout-Manager festlegen 
	    	GridBagLayout gbl = new GridBagLayout();
	    	GridBagConstraints gc = new GridBagConstraints(); 
	    	setLayout(gbl);
	    	
	    	
	        setBackground(Color.lightGray);
	        setSize(600,600);
	        setVisible(true);
	        Font f = new Font("Helvetica", Font.BOLD, 16 );	
	        Font a = new Font("Helvetica", Font.BOLD, 12 );	
	       
	        	
	       /* //LINKS OBEN Frei Lassen
	           anordnen(gc, 0, 0, 1, 2);
	           Label g = new Label("");     
	           g.setFont(a); 
	           add( g, gc );
	           //TEXT AUF DER LINKEN Seite
	        //  label 
	           anordnen(gc, 0, 2, 1, 2);
	           Label g1 = new Label("|");     
	           g1.setFont(a); 
	           add( g1, gc );
	           // label 
	           anordnen(gc, 0, 4, 1, 2);
	           Label g2 = new Label("");	           	           
	           g2.setFont(a); 
	           add( g2, gc );
	           anordnen(gc, 0, 6, 1, 2); 
	           Label g0 = new Label("T");	           	           
	           g0.setFont(a); 
	           add( g0, gc );
	           //  label 
	           anordnen(gc, 0, 8, 1, 2); 
	           Label g3 = new Label("A");     
	           g3.setFont(a); 
	           add( g3, gc );
	           //  label 
	           anordnen(gc, 0, 10, 1, 2); 
	           Label g4 = new Label("E");   	           
	           g4.setFont(a); 
	           add( g4, gc );
               //label 
	           anordnen(gc, 0, 12, 1, 2);
	           Label g10 = new Label("");   	           
	           g10.setFont(a); 
	           add( g10, gc );
               //label 
	           anordnen(gc, 0, 14, 1, 2);
	           Label g11 = new Label("");   	           
	           g11.setFont(a); 
	           add( g11, gc );
	           //  label 
	           anordnen(gc, 0, 16, 1, 2); 
	           Label g5 = new Label("R");     
	           g5.setFont(a); 
	           add( g5, gc );
	           // label 
	           anordnen(gc, 0, 18, 1, 2); 
	           Label g6 = new Label("G");     
	           g6.setFont(a); 
	           add( g6, gc );
	           
	           //TEXT Oben
	           //  label 
	           anordnen(gc, 2, 0, 2, 1);
	           Label o1 = new Label("-");     
	           o1.setFont(a); 
	           add( o1, gc );          
	           // label 
	           anordnen(gc, 4, 0, 2, 1); 
	           Label o2 = new Label("G");	           	           
	           o2.setFont(a); 
	           add( o2, gc );
	           //  label 
	           anordnen(gc, 6, 0, 2, 1);
	           Label o3 = new Label("A");     
	           o3.setFont(a); 
	           add( o3, gc );
	           
	           //  label 
	           anordnen(gc, 8, 0, 2, 1);
	           Label o4 = new Label("M");   	           
	           o4.setFont(a); 
	           add( o4, gc );
	           anordnen(gc, 10, 0, 2, 1); 
	           Label o6 = new Label("");     
	           o6.setFont(a); 
	           add( o6, gc );
	           anordnen(gc, 12, 0, 2, 1);
	           Label o7 = new Label("");     
	           o7.setFont(a); 
	           add( o7, gc );
	           //  label 
	           anordnen(gc, 14, 0, 2, 1);
	           Label o5 = new Label("E");     
	           o5.setFont(a); 
	           add( o5, gc );
	           // label
	           anordnen(gc, 16, 0, 2, 1);
	           Label o8 = new Label("");     
	           o8.setFont(a); 
	           add( o8, gc );
	           
	           //ELEMENTE EINFÜGEN Chat label 
	           anordnen(gc, 2, 2, 6, 4); 
	           Label chat1 = new Label("CHAT");     
	           chat1.setFont(f); 
	           add( chat1, gc ); 
	            //Chat 
	            anordnen(gc,2,6,6,4); 
	           gc.insets = new Insets(0, 10, 5, 5);
 
	           add(chat = new TextArea(text1,15,36),gc); 
	            //Invetar label 
	            anordnen(gc,2,10,6,4);
	           Label inventar1 = new Label("INVENTAR"); 
	           inventar1.setFont(f); 
	           add( inventar1, gc );                
	           //Invetar 
	           anordnen(gc,2,14,6,4); 
	           gc.insets = new Insets(5, 5, 5, 5); // 	           add(inventar = new TextArea(text2,15,36),gc); 
/////////////////////// ///////////////////////////////////////Uhr
	           //anordnen(gc,2,18,1,2);
	           Uhr uhr1 = new Uhr();
	           uhr1.init(); 
	           uhr1.start();	           
	           add(uhr1 ,gc); 
	           /*//2SPALTE
	           //Bild      
	           anordnen(gc,8,2,8,8);    
	           gc.insets = new Insets(5, 5, 5, 5); // Rändern Platz 
	           gc.fill = GridBagConstraints.BOTH;
	           gc.insets = new Insets(0, 0, 5, 5); // Rändern Platz 
	           add(new JLabel(new ImageIcon("gang1.jpg")),gc);
	           //Ausgabe 
	           anordnen(gc,8,10,8,8); 
	           gc.insets = new Insets(5, 5, 5, 5); // Rändern Platz 
	           gc.fill = GridBagConstraints.BOTH;
	           add(ausgabe = new TextArea(text0),gc); 
	            //eingabe          
	           anordnen(gc,8,18,8,4);
	           gc.fill = GridBagConstraints.BOTH ; 
	           gc.insets = new Insets(5, 5, 5, 5); // Rändern Platz         
	           add(eingabe = new TextField(text),gc); 
	       	      
	 
          
          void anordnen(GridBagConstraints gbl1,int x, int y, int breite, int höhe){//, double xZellen, double yZellen){
          	gbl1.gridx = x; // +1Spalte
	        gbl1.gridy = y; // +1Reihe
	        gbl1.gridwidth = breite; //  Zellen breit 
	        gbl1.gridheight = höhe; // Zelle hoch
	        //gbl1.weightx = xZellen;
	        //gbl1.weighty = yZellen;
          	
          }
          
          public static class Uhr extends Applet //implements Runnable
		  {
		  // Instanzvariablen
		  String aktZeit;
		  DateFormat formatierer;
		  CZeitThread zeit;
		  Font anzeigeFont;

		  public void init()  
		    {
		    anzeigeFont = new Font("Arial",Font.BOLD,18);
		    formatierer = DateFormat.getTimeInstance();
		    aktZeit = formatierer.format(new Date());

		    // eine Instanz der Threadklasse anlegen und starten
		    zeit = new CZeitThread();
		    zeit.start();
		    }

		  public void start()  
		    {
		    // einen Thread starten
		    if(zeit == null)
		      {
		      zeit = new CZeitThread();
		      zeit.start();
		      }
		    }

		 public void stop()  
		    {
		    // den Thread beenden
		    if(zeit == null)
		      {
		      zeit.interrupt();
		      zeit = null;
		      }
		    }

		  public void destroy()
		    {
		    // den Thread beenden
		    if(zeit == null)
		      {
		      zeit.interrupt();
		      zeit = null;
		      }
		    }

		  public void paint(Graphics g) 
		    {
		    // die aktuelle Uhrzeit anzeigen
		    g.setFont(anzeigeFont);
		    g.setColor(Color.black);
		    g.drawString(aktZeit,40,85);
		    }

		  // den Thread als innere Klasse definieren
		  class CZeitThread extends Thread
		    {
		    public void run()  
		      {
		      while(isInterrupted() == false)
		        {
		        aktZeit = formatierer.format(new Date());
		        repaint();

		        // kurze Zeit schlafen
		        try  
		          { 
		          sleep(1000); 
		          } 
		        catch(InterruptedException e) 
		          {
		          return;
		          }
		        }
		      }
		    }
		  }
       //UHR ENDE
          
         //Starte
         public static void main(String args[]) {

	        Layout window = new Layout("Bitte warten es wird geladen");
	        window.inAnApplet = false;
	        window.setTitle("POWER SUD");
	        window.pack();
	        window.setVisible(true);
	    }
}
 
M

Markusa

Gast
Hab das vorher im BorderLayout gemacht es war identisch bis auf Zeile 151:
Code:
Uhr uhr1 = new Uhr(); 
              uhr1.init(); 
              uhr1.start();               
              add(uhr1 ,BorderLayout.SOUTH); //hier war der unterschied
 
M

Markusa

Gast
Zeile 25 //Constraints
Kann es nicht daran liegen das bei
add(uhr1, Layoutmanager) stand und jetzt
add(uhr1, Gridbagconstraints) sozusagen eingefügt wird.


Wenn es möglich sein kann wie kann ich das Problem beheben?
 
M

markusa

Gast
oder muß ich die paint Methode starten? bitte sagt mir etwas verzweifel hier langsam
 

T1M

Bekanntes Mitglied
Hi,
habs mal ein n prog von mir eingebaut. da funzt es wunderbar.
es wird also daran liegen, das du mit den zahlen beim gbl durcheinandergekommen bist. is ja auch nicht wirklich das übersichtlichste .... :roll:
T1M
 
M

Markusa

Gast
Das freut mich schon mal somit ist das Problem eingekreist :)

aber hab es zum Beispiel einfach versucht einzusetzen wo das Bild ist und das Bild ausgelassen also müßten die Werte stimmen.
Hab auch mal alles weggelassen um es komplett auszuschließen aber die zeigt sich nicht bei mir :(
 

T1M

Bekanntes Mitglied
warum setzt du das
Code:
window.inAnApplet = false;
in der main methode auf false?
 
M

Markusa

Gast
Ich weiß es nicht mehr bin schon völlig es der rolle habs wieder weggemacht aber es hat nix geändert
 
M

Markusa

Gast
Ich danke euch vielmals für die harnäckige arbeit aber habs nun gefunden. Das ist einer dieser momente wo man in du lUft springen kann oder die Tastatur gegen den Monitor einschlagen kann. Mein Fehler:

gc.fill = GridBagConstraints.BOTH;

hat nei der Uhr gefehlt
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben