Panel überschreiben

Status
Nicht offen für weitere Antworten.

affi0905

Mitglied
Code:
import java.awt.*;
import java.awt.event.*;

class KalenderFenster extends Frame implements ActionListener{
	
	Kdaten daten = new Kdaten();
	Label mNameLabel, wochenTag;
	Label wochenTag1, wochenTag2, wochenTag3, wochenTag4, wochenTag5, wochenTag6, wochenTag7;
	
	Panel ansicht;
	GridLayout monat;
	
	public KalenderFenster() {
		
 		setLocation(20,20);
		setSize(800,520);
		setTitle("Kalender");
		setResizable(false);
		setLayout(null);
		addWindowListener(new WindowsAdapter (true));
		
//erstellen der menuleiste 
		MenuBar leiste1 = new MenuBar();
	
//////////////////////////////////////////////////////////////////////////
// menue 1
		Menu programm = new Menu("Programm");
		
		MenuItem mi;
		MenuShortcut key;
		
		// erstellen der shortcuts 
		key = new MenuShortcut(KeyEvent.VK_W);
		mi  = new MenuItem("Wochenansicht", key);
		mi.addActionListener(this);
		programm.add (mi);
		
		key = new MenuShortcut(KeyEvent.VK_M);
		mi  = new MenuItem("Monatsansicht", key);
		mi.addActionListener(this);
		programm.add (mi);
		
		key = new MenuShortcut (KeyEvent.VK_J);
		mi  = new MenuItem("Jahresansicht", key);
		mi.addActionListener(this);
		programm.add(mi);
		
		key = new MenuShortcut(KeyEvent.VK_B);
		mi  = new MenuItem("Beenden", key);
		mi.addActionListener(this);
		programm.add(mi);
		
///////////////////////////////////////////////////////////////
	// menue 2
		Menu programm2 = new Menu ("Termineintrag");
		
		key = new MenuShortcut(KeyEvent.VK_T);
		mi = new MenuItem("neuer Termin", key);
		mi.addActionListener(this);
		programm2.add(mi);
///////////////////////////////////////////////////////////////
		
		GridLayout grid = new GridLayout(1,3);
		Panel p1 = new Panel( grid );
		p1.setLocation(0,50);
		p1.setSize(800,30);
		
		
		Button wo = new Button("Wochenansicht");
		wo.addActionListener(this);
		
		Button mo = new Button("Monatsansicht");
		mo.addActionListener(this);
		
		Button ja = new Button("Jahresansicht");
		ja.addActionListener(this);
		
		p1.add (wo);
		p1.add (mo);
		p1.add (ja);
	
		leiste1.add(programm);
		leiste1.add(programm2);
		setMenuBar(leiste1);
		
		add(p1);
		
//=========================================================//
/* anzeige des monats mit funktionen der vor und rückwertigen 
 * ansicht
 **/
		Panel mName = new Panel();
		mName.setLocation(0,81);
		mName.setSize(800,50);
		mName.setBackground(Color.WHITE);
		
		// platzhalter, ohne funktion
		Label leer1 = new Label("");
		leer1.setLocation(0,0);
		leer1.setSize(250,50);
		mName.add(leer1);
		
		Button rev = new Button("<<");
		rev.setLocation(250,0);
		rev.setSize(30,50);
		rev.addActionListener(this);
		mName.add(rev);
		
		// platzhalter, ohne funktion
		Label leer2 = new Label("");
		leer2.setLocation(280,0);
		leer2.setSize(20,50);
		mName.add(leer2);
		
		//erstellen des labels zur anzeige des monatsnamens
		mNameLabel = new Label(daten.nameMonat);
		mNameLabel.setLocation(300,0);
		mNameLabel.setSize(200,50);
		mNameLabel.setFont (new Font ("ARIAL", 3,21));
		mNameLabel.setForeground(Color.RED);
		mName.add(mNameLabel);
		
		//platzhalter, ohne funktion
		Label leer3 = new Label ("");
		leer3.setLocation(500,0);
		leer3.setSize(20,50);
		mName.add(leer3);
		
		Button next = new Button(">>");
		next.setLocation(520,0);
		next.setSize(30,50);
		next.addActionListener(this);
		mName.add(next);
		
		//platzhalter, ohne funktion
		Label leer4 = new Label(" ");
		leer4.setLocation(550,0);
		leer4.setSize(250,50);
		mName.add(leer4);
		
//=============================================================//
	//	funktionalitaet zur aufnahme der wochentage 
			
		Panel wochenTage = new Panel(new GridLayout (1,7));
		wochenTage.setLocation(0,132);
		wochenTage.setSize(800,30);
	
	/*die label fuer die wochentage werden hier einzeln erstellt um
	 *nach der betaetigung eines den angezeigten monat aendernden buttens,
	 *auch die reihenfolge der angezeigten wochentage dem angezeigten
	 *monat entsprechend aendern zu koennen
	 */ 
			wochenTag1 = new Label(daten.tagName[0]);
			wochenTag1.setFont (new Font("ARIAL", 3,16));
			wochenTag1.setForeground(Color.BLACK);
			wochenTage.add(wochenTag1);
			
			wochenTag2 = new Label(daten.tagName[1]);
			wochenTag2.setFont (new Font("ARIAL", 3,16));
			wochenTag2.setForeground(Color.BLACK);
			wochenTage.add(wochenTag2);
			
			wochenTag3 = new Label(daten.tagName[2]);
			wochenTag3.setFont (new Font("ARIAL", 3,16));
			wochenTag3.setForeground(Color.BLACK);
			wochenTage.add(wochenTag3);
			
			wochenTag4 = new Label(daten.tagName[3]);
			wochenTag4.setFont (new Font("ARIAL", 3,16));
			wochenTag4.setForeground(Color.BLACK);
			wochenTage.add(wochenTag4);
			
			wochenTag5 = new Label(daten.tagName[4]);
			wochenTag5.setFont (new Font("ARIAL", 3,16));
			wochenTag5.setForeground(Color.BLACK);
			wochenTage.add(wochenTag5);
			
			wochenTag6 = new Label(daten.tagName[5]);
			wochenTag6.setFont (new Font("ARIAL", 3,16));
			wochenTag6.setForeground(Color.BLACK);
			wochenTage.add(wochenTag6);
			
			wochenTag7 = new Label(daten.tagName[6]);
			wochenTag7.setFont (new Font("ARIAL", 3,16));
			wochenTag7.setForeground(Color.BLACK);
			wochenTage.add(wochenTag7);

///////////////////////////////////////////////////////////////////////////
	
		monat = new GridLayout(0,7);
		
		ansicht = new Panel(monat);
		ansicht.setLocation(0,163);
		ansicht.setSize(800,357);
		ansicht.setBackground(Color.WHITE);
	
	
	// funktionalitaet zur erstellung der button für die einzelnen tage
		
		for (int i = 1 ; i < ((daten.mTage)+1) ; i++) {
			
	// hilfsvariable um int i zu einem string umzuwandeln,
	// der dann auf dem jeweiligen button steht
			String j = String.valueOf(i);
			
			Button tag = new Button( j );
			tag.addActionListener(this);
			tag.setBackground(daten.monatFarbe);
			tag.setFont(new Font ("ARIAL", 0, 14));
			tag.setForeground(Color.WHITE);
			ansicht.add(tag);
			
			}
			
		add(mName);
		add(wochenTage);
		add(ansicht);
		
		
		setVisible(true);
	}
	
	public void actionPerformed(ActionEvent ae){
		
		String wert = ae.getActionCommand();
		
		if (wert == "Wochenansicht"){
			System.out.println("Wochenansicht");
		}
		
			else if (wert == "Monatsansicht"){
				
				System.out.println("Monatsansicht");

		}
			
			else if (wert == "Jahresansicht"){
			
				System.out.println("Jahresansicht");
		}
		
			else if (wert == "Beenden"){
			
				System.exit(0);
		}
		
			else if (wert == "neuer Termin"){
			
				new Ntermin();
		}
		
   			else if(wert == "<<"){ 
              
             	daten.setMonat(daten.getMonat() -1); 
             	mNameLabel.setText(daten.nameMonat); 

// aktualisierung des wertes, der den ersten tag der woche bestimmt
              
             	daten.setWochenTag(daten.wochentage(daten.cal.get(daten.cal.DAY_OF_WEEK))); 
            
/* aufruf der funktion zum ueberschreiben der label, die die
 * wochentage anzeigen
 */
            
            	printWochenTage(wochenTag1,daten.tagName[0]); 
            	printWochenTage(wochenTag2,daten.tagName[1]);  
	            printWochenTage(wochenTag3,daten.tagName[2]); 
	            printWochenTage(wochenTag4,daten.tagName[3]); 
            	printWochenTage(wochenTag5,daten.tagName[4]);  
            	printWochenTage(wochenTag6,daten.tagName[5]);    
            	printWochenTage(wochenTag7,daten.tagName[6]); 
				
				
				daten.setmTage(daten.getMonat());
				     		System.out.println("" + daten.mTage);
				    
				     		
           		for (int i = 1 ; i < ((daten.mTage)+1) ; i++) {
			
	// hilfsvariable um int i zu einem string umzuwandeln,
	// der dann auf dem jeweiligen button steht
					String j = String.valueOf(i);
			
					Button tag = new Button( j );
							System.out.println("Button Nummer : " + j);
			//		tag.addActionListener(this);
			//		tag.setBackground(daten.monatFarbe);
			//		tag.setFont(new Font ("ARIAL", 0, 14));
			//		tag.setForeground(Color.WHITE);
			//		ansicht.add(tag);
				//	this.ansicht = ansicht;
			
				}
     		 } 
      
     	     else if (wert == ">>"){ 
              
             	daten.setMonat(daten.getMonat() +1); 
             	mNameLabel.setText(daten.nameMonat); 
              
// aktualisierung des wertes, der den ersten tag der woche bestimmt
              
             	daten.setWochenTag(daten.wochentage(daten.cal.get(daten.cal.DAY_OF_WEEK))); 
              
/* aufruf der funktion zum ueberschreiben der label, die die
 * wochentage anzeigen
 */
             
            	printWochenTage(wochenTag1,daten.tagName[0]); 
            	printWochenTage(wochenTag2,daten.tagName[1]);  
            	printWochenTage(wochenTag3,daten.tagName[2]); 
            	printWochenTage(wochenTag4,daten.tagName[3]); 
            	printWochenTage(wochenTag5,daten.tagName[4]);  
            	printWochenTage(wochenTag6,daten.tagName[5]);    
            	printWochenTage(wochenTag7,daten.tagName[6]); 
            	
            	daten.setmTage(daten.getMonat());
				     		System.out.println("" + daten.mTage);
				     		
		remove(ansicht);
		monat = new GridLayout(0,7);
		
		ansicht = new Panel(monat);
		ansicht.setLocation(0,163);
		ansicht.setSize(800,357);
		ansicht.setBackground(Color.WHITE);	
				     	//	ansicht.setLayout(monat);
          		for (int i = 1 ; i < ((daten.mTage)+1) ; i++) {
			
	// hilfsvariable um int i zu einem string umzuwandeln,
	// der dann auf dem jeweiligen button steht
					String j = String.valueOf(i);
			
					Button tag = new Button( j );
							System.out.println("Button Nummer : " + j);
			//		tag.addActionListener(this);
			//		tag.setBackground(daten.monatFarbe);
			//		tag.setFont(new Font ("ARIAL", 0, 14));
			//		tag.setForeground(Color.WHITE);
					ansicht.add(tag);
			
				}
            	add(ansicht);
     	} 

		 
			 else{
			 	String monName = new Kdaten().nameMonat;
			 	int wJahr = new Kdaten().zJahr;
			 	new Termin(wert, monName, wJahr);
		}	
	}
	
// funktion zum ueberschreiben der label mit den wochentagen

	public void printWochenTage(Label l, String tag){ 
               l.setText(tag); 
               l.setFont (new Font("ARIAL", 3,16)); 
               l.setForeground(Color.BLACK);                
    }

}


Warum zeichnet er mir in der public void actionPerformed die Button nicht neu?
Er macht die richtige Anzahl durchläufe zur Erstellung der Button, aber er aktualisiert die Anzeige nicht.
 

affi0905

Mitglied
Alles andere funktioniert bis dahin. Die Wochentage werden aktualisiert und der Text mit dem Namen des Monats ebenfalls. Nur die Button werden nicht aktualisiert.
 

Oni

Top Contributor
schreib mal in zeile 351 hinter die klammer "}" validate();

und sag dann mal bescheid obs klappt
 

Oni

Top Contributor
EDIT: ups, bekamm ne fehler meldung beim ersten abschicken. deswegen steht das hier jetzt doppelt....:roll:

schreib mal in zeile 351 hinter die klammer "}" validate();

und sag dann mal bescheid obs klappt
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Soloeco JList/DefaultListModel: Wie kann ich ein Panel hinzufügen? Java Basics - Anfänger-Themen 1
P Herausfinden, auf welchem Panel des CardLayouts man gerade ist? Java Basics - Anfänger-Themen 12
CptK Interface 2 von einander unabhängige Frames mit Panel gleichzeitig nutzen Java Basics - Anfänger-Themen 66
O Klappt nicht: Ein Panel neu zeichnen Java Basics - Anfänger-Themen 3
L Panel verkleinert sich unerklärlicherweise Java Basics - Anfänger-Themen 7
N Mehrere Forms auf einem Panel Java Basics - Anfänger-Themen 6
M Panel erstellen, welches ein Control erhält. Ausgabe soll über einen Stream erfolgen. Java Basics - Anfänger-Themen 0
J Panel auf Hintergrund Java Basics - Anfänger-Themen 5
J Panel und Menü Java Basics - Anfänger-Themen 6
S timer funktion mit javax panel Java Basics - Anfänger-Themen 3
D Hintergrund jpg auf Panel Java Basics - Anfänger-Themen 3
D Bild zum Panel hinzufügen Java Basics - Anfänger-Themen 8
A Frage zu einer Methode - Panel arbeitet nicht ordnungsgemäß Java Basics - Anfänger-Themen 2
F Neues Panel und Button unsichtbar Java Basics - Anfänger-Themen 10
D Panel sichtbar/unsichtbar machen im ActionListener Java Basics - Anfänger-Themen 3
S Image in Panel laden Java Basics - Anfänger-Themen 12
D Panel von unten herausfahren Java Basics - Anfänger-Themen 2
S mehrere Rechtecke in ein Panel Java Basics - Anfänger-Themen 2
L panel verschmiert beim draggen! Java Basics - Anfänger-Themen 2
J Panel + Label anzeigen - Ich kriege es nicht hin Java Basics - Anfänger-Themen 3
S Swing, Gridbaglayout Panel in Panel;funzt nicht!! Java Basics - Anfänger-Themen 3
S Swing, Panel über Hintergrundbild!! Java Basics - Anfänger-Themen 6
C Panel und Label überdecken sich Java Basics - Anfänger-Themen 2
J JLabels in Panel Aktualisieren Java Basics - Anfänger-Themen 5
H Panel in Variable setzen möglich? Java Basics - Anfänger-Themen 10
M Spezielles Panel fade in / out Java Basics - Anfänger-Themen 5
C Panel Hintergrundfarbe per AdjustmenListenmer ändern Java Basics - Anfänger-Themen 4
D GUI: Panel in Panel laden Java Basics - Anfänger-Themen 10
R Eingefärbtes Panel wird in Frame nicht angezeigt Java Basics - Anfänger-Themen 10
eLogic Panel hinzufügen Java Basics - Anfänger-Themen 4
Nic.o Panel während Ladevorgang einblenden Java Basics - Anfänger-Themen 12
B PacMan: Panel aktualisieren Java Basics - Anfänger-Themen 2
D Eingabe aus Dialog, Ergebnis an Panel Java Basics - Anfänger-Themen 2
Z JFileChooser/ Panel + Menüproblem Java Basics - Anfänger-Themen 3
J GridLayout auf Panel zentrieren? Java Basics - Anfänger-Themen 2
G Aus eigenem Panel dieses Löschen Java Basics - Anfänger-Themen 2
J Panel-übergreifende Kommunikation Java Basics - Anfänger-Themen 3
M Panel ersetzen funktioniert nicht Java Basics - Anfänger-Themen 2
M BorderLayout zickt! Ein Panel versteckt das andere! Java Basics - Anfänger-Themen 6
K Panel fixieren und nicht zentrieren Java Basics - Anfänger-Themen 2
F Zeichnen auf einem Panel Java Basics - Anfänger-Themen 2
N Panel entfernen Java Basics - Anfänger-Themen 2
B Zugriff auf JTextPane in einem anderen Panel Java Basics - Anfänger-Themen 2
H TabbedPane: wie schalte ich auf ein bestimmtes panel? Java Basics - Anfänger-Themen 2
G Bild in Panel oder canvas einfügen Java Basics - Anfänger-Themen 3
kulturfenster Panel in Frame integrieren Java Basics - Anfänger-Themen 5
H Paint Methode malt nicht im Panel Java Basics - Anfänger-Themen 4
J Probleme mit Visual Editor Komponenten auf Panel legen Java Basics - Anfänger-Themen 4
M Panel ausgrauen (disable) Java Basics - Anfänger-Themen 2
K Component vom einem Panel löschen ? Java Basics - Anfänger-Themen 14
C Panel wird nicht übermalt Java Basics - Anfänger-Themen 6
P Swing Textarae so groß wie Panel? Java Basics - Anfänger-Themen 2
G Rekursives aufrufen führt zu StackOverflowError Panel durchl Java Basics - Anfänger-Themen 5
T JMenuItems werden von Komponente in Panel verdeckt Java Basics - Anfänger-Themen 11
G Auf ein Panel malen Java Basics - Anfänger-Themen 16
D Event mit n-Button8s) von einem Panel Java Basics - Anfänger-Themen 9
Z Wie übergebe ich einer MyFrame-Klasse ein Panel? Java Basics - Anfänger-Themen 8
A g=panel.getGraphics() im Thread => Nullpointer Java Basics - Anfänger-Themen 9
S Bilder bleiben auf einem Panel nicht gezeichnet Java Basics - Anfänger-Themen 6
L Java Control Panel Java Basics - Anfänger-Themen 5
A Swing Schriftfarbe für komplettes Panel ändern Java Basics - Anfänger-Themen 2
G Panel Java Basics - Anfänger-Themen 4
B Kann man mit XMl ein Panel erstelln Java Basics - Anfänger-Themen 2
R Einfügen einer eigenen methode in ein Panel Java Basics - Anfänger-Themen 5
E Komponenten auf Panel positionieren Java Basics - Anfänger-Themen 3
G aus Thread auf Panel zeichnen Java Basics - Anfänger-Themen 22
G Text in Panel anordnen Java Basics - Anfänger-Themen 6
M Ein Panel in ein Panel laden Java Basics - Anfänger-Themen 3
S Graphic im Panel änder durch JSlider Java Basics - Anfänger-Themen 2
P Ball auf Panel hüpfen lassen Java Basics - Anfänger-Themen 4
T Panel entfernen Java Basics - Anfänger-Themen 4
T Panel entfernen, neues hinzufügen Java Basics - Anfänger-Themen 2
A Probleme mit Panel und GUI Java Basics - Anfänger-Themen 4
D Warum färbt er das unter Panel nicht ein? Java Basics - Anfänger-Themen 3
V Panel durchsichtig machen Java Basics - Anfänger-Themen 4
D Desktop auf nem Panel Java Basics - Anfänger-Themen 6
B Panel bei Mausklick färben Java Basics - Anfänger-Themen 3
S Keyevent in Panel Java Basics - Anfänger-Themen 5
C Add / Remove Panel Java Basics - Anfänger-Themen 2
C zweites Panel auf Knopfdruck anzeigen Java Basics - Anfänger-Themen 2
O größe von panel mit gridlayout Java Basics - Anfänger-Themen 9
G Panel in Methode erneut aufrufen Java Basics - Anfänger-Themen 5
B Panel mit Radiobuttons als eigene Klasse Java Basics - Anfänger-Themen 4
G aktueller Panel, der in BorderLayout.SOUTH angeordnet ist Java Basics - Anfänger-Themen 11
A Panel und getContentPane() ? Java Basics - Anfänger-Themen 2
S panel leeren Java Basics - Anfänger-Themen 2
S Panel / setbounds Java Basics - Anfänger-Themen 3
R Image lässt sich nicht in ein Panel einfügen Java Basics - Anfänger-Themen 3
G Paint auf Panel Java Basics - Anfänger-Themen 4
G JPG in einem Panel anzeigen lassen Java Basics - Anfänger-Themen 3
X GUI: neues Panel in einer Applikation anzeigen lassen Java Basics - Anfänger-Themen 2
G Panel in Container einfügen Java Basics - Anfänger-Themen 7
N need help in panel Java Basics - Anfänger-Themen 8
B Panel mit Bild wird nicht angzeigt Java Basics - Anfänger-Themen 16
M Inhalt Panel,Frame löschen Java Basics - Anfänger-Themen 8
S Image von einem Panel erzeugen! Java Basics - Anfänger-Themen 2
A Komponenten im Panel ausrichten Java Basics - Anfänger-Themen 5
G Panel zur Laufzeit laden/entladen Java Basics - Anfänger-Themen 2
S Neues Fenster/Panel nach Knopfdruck Java Basics - Anfänger-Themen 2
C Grafik in einem Panel als Bild exportieren Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben