# JPanel vergrößern



## bafl13 (31. Mai 2011)

Hallo ich habe ein Problem,ich versuche seit stunden und such im Intern,ich will mein JPanel vergrößern aber irgendwie geht das nicht 

```
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.util.*;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class Datum extends JFrame implements KeyListener , ActionListener  {
	Calendar osternDatum;
	Date f=new Date();
	JPanel panel=new JPanel();
	JPanel panelZeitBerechnen=new JPanel();
	JPanel panel3=new JPanel();
	JFrame hauptFrame=new JFrame("Aktuelle Zeit");
	JFrame feiertagFrame=new JFrame("Feier Tage");
	JLabel zeitLabel=new JLabel("Die Aktuelle Zeit ist : "+this.f);
	JTextField osternJahr=new JTextField("Geben Sie das Jahr um Osternstermin zu finden");
	JTextField textTag=new JTextField("Geben Sie den gewünschten Tag",40);
	JTextField textMonat=new JTextField("Geben Sie den gewünschte Monat",40);
	JTextField textJahr=new JTextField("Geben Sie das gewünschte Jahr",40);
	JLabel ergebnis=new JLabel("Das Ergebnis");
	int textJahrInt,textMonatInt,textTagInt;
	JButton button=new JButton("Fertig");
	Datum() {
		this.hauptFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.osternJahr.addKeyListener(this);
		this.textTag.addKeyListener(this);
		this.textMonat.addKeyListener(this);
		this.textJahr.addKeyListener(this);
		this.button.addActionListener(this);
		this.panelZeitBerechnen.setLayout(new FlowLayout());
		this.panelZeitBerechnen.add(this.textTag);
		this.panelZeitBerechnen.add(this.textMonat);
		this.panelZeitBerechnen.add(this.textJahr);
		this.panelZeitBerechnen.add(this.button);
		hauptFrame.getContentPane().add(panel);
		hauptFrame.getContentPane().add(this.panelZeitBerechnen);
		panel.add(zeitLabel);
		this.panel.add(this.osternJahr);
		this.hauptFrame.setLayout(new GridLayout(2,1));
		this.panel.setLayout(new GridLayout(3,2));
		this.hauptFrame.pack();
		this.hauptFrame.setVisible(true);
		this.feiertagFrame.setVisible(true);
		
		
	}
	void konvertierungMoeglich() throws Exception{
		
		int jahr=Integer.parseInt(this.osternJahr.getText());
		
	}
	void feiertage(){
		this.feiertagFrame.setLayout(new GridLayout(10,1));
		this.panel3.setLayout(new GridLayout(10,2));
		JPanel[] panels=new JPanel[11];
		for(int i=2007;i<2018;++i){
			JLabel zwischenjahreLabel=new JLabel("Feste vom Jhar"+i);
			Calendar osternDatum2=ostersonntag(i);
			panels[i-2007]=new JPanel();
			panels[i-2007].add(zwischenjahreLabel);
			osternDatum2.add(Calendar.DATE, 60);
			JLabel fronleichnam2=new JLabel("Das Fronleichnam ist 60 Tagen nach dem Ostern also am :"+osternDatum2.getTime());
			panels[i-2007].add(fronleichnam2);	
			osternDatum2.add(Calendar.DATE, -21);
			JLabel himmelsFahrt2=new JLabel("Die Himmelfahrt ist 39 Tagen nach dem Ostern also am: "+osternDatum2.getTime());
			panels[i-2007].add(himmelsFahrt2);
			osternDatum2.add(Calendar.DATE, 11);
			JLabel pfingsten2 =new JLabel("Das Pfingsten ist 50 Tagen nach dem Ostern also am: "+osternDatum2.getTime());
			panels[i-2007].add(pfingsten2);
			this.panel3.add(panels[i-2007]);
			
		}
		JScrollPane scroll=new JScrollPane(panel3);
		this.feiertagFrame.add(scroll);
		scroll.setPreferredSize(getMaximumSize());
		this.feiertagFrame.pack();
		this.feiertagFrame.setVisible(true);
	}
	public static void main(String[] args)  {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
			
				Datum f=new Datum();
				f.feiertage();
				
			
			
			}
			});

	}
	
	public void keyPressed(KeyEvent arg0) {
		
		
	}
	@Override
	public void keyReleased(KeyEvent arg0)     {
		
		if(arg0.getSource()==this.osternJahr){
			if(arg0.getKeyCode()==KeyEvent.VK_ENTER){
				try {
					konvertierungMoeglich();
					int jahr=Integer.parseInt(this.osternJahr.getText());
					if(jahr<1583){
						this.osternJahr.setText("Die Eingabe ist Falsch");
					}
					else{	
						osternDatum=ostersonntag(jahr);
						JLabel osternLabel=new JLabel("Ostern vom Jahr "+this.osternJahr.getText()+"ist am "+osternDatum.getTime());
						this.panel.add(osternLabel);
						osternDatum.add(Calendar.DATE, 60);
						JLabel fronleichnam=new JLabel("Das Fronleichnam ist 60 Tagen nach dem Ostern also am :"+osternDatum.getTime());
						this.panel.add(fronleichnam);	
						this.osternDatum.add(Calendar.DATE, -21);
						JLabel himmelsFahrt=new JLabel("Die Himmelfahrt ist 39 Tagen nach dem Ostern also am: "+osternDatum.getTime());
						this.panel.add(himmelsFahrt);
						this.osternDatum.add(Calendar.DATE, 11);
						JLabel pfingsten =new JLabel("Das Pfingsten ist 50 Tagen nach dem Ostern also am: "+osternDatum.getTime());
						this.panel.add(pfingsten);
						this.hauptFrame.pack();
						this.hauptFrame.setVisible(true);
					}
				}
				catch (Exception e) {
					this.osternJahr.setText("Die Eingabe ist falsch");
				}
			}
		}
		
			if(arg0.getSource()==this.textJahr){
				if(arg0.getKeyCode()==KeyEvent.VK_ENTER){
					try{
						this.textJahrInt=Integer.parseInt(this.textJahr.getText());
					}
					catch(Exception e){
						this.textJahr.setText("Falsche Eingabe");
					}
				}
			
			
				if(arg0.getSource()==this.textMonat){
					if(arg0.getKeyCode()==KeyEvent.VK_ENTER){
						try{
							this.textMonatInt=Integer.parseInt(this.textMonat.getText());
						}
						catch(Exception e){
							this.textMonat.setText("Falsche Eingabe");
						}
					
				}
				
					if(arg0.getSource()==this.textTag){
						if(arg0.getKeyCode()==KeyEvent.VK_ENTER){
							try{
								this.textTagInt=Integer.parseInt(this.textTag.getText());
							}
							catch(Exception e){
								this.textTag.setText("Falsche Eingabe");
							}
						}
					
					
						}
					}
				}
			}
		
	
		
			
				
			
		
	
	public static Calendar ostersonntag( int year )
	   {
	    int i = year % 19;
	    int j = year / 100;
	    int k = year % 100;

	    int l = (19 * i + j - (j / 4) - ((j - ((j + 8) / 25) + 1) / 3) + 15) % 30;
	    int m = (32 + 2 * (j % 4) + 2 * (k / 4) - l - (k % 4)) % 7;
	    int n = l + m - 7 * ((i + 11 * l + 22 * m) / 451) + 114;

	    int month = n / 31;
	    int day   = (n % 31) + 1;

	    return  new GregorianCalendar( year, month - 1, day );
	  }
	
	public void keyTyped(KeyEvent arg0) {
	
		
	}
	@Override
	public void actionPerformed(ActionEvent arg0) {
		if(arg0.getSource()==this.button){
			try{
				this.textJahrInt=Integer.parseInt(this.textJahr.getText());
				this.textTagInt=Integer.parseInt(this.textTag.getText());
				this.textMonatInt=Integer.parseInt(this.textMonat.getText());
				Calendar zeitBerechnung=new GregorianCalendar(this.textJahrInt,this.textMonatInt,this.textTagInt);
				Calendar aktuell =new  GregorianCalendar();	
				Calendar ergebnisCalendar=new GregorianCalendar();
				ergebnisCalendar.setTimeInMillis(zeitBerechnung.getTimeInMillis()-aktuell.getTimeInMillis());
				
					this.ergebnis.setText(ergebnisCalendar.getTime().toString());
					this.panelZeitBerechnen.add(this.ergebnis);
					this.hauptFrame.setVisible(true);
					this.hauptFrame.pack();
				
				}
				catch(Exception e){
					this.ergebnis.setText("Zumindest Eins der Eingaben ist falsch jahr ist");
					this.panelZeitBerechnen.add(this.ergebnis);
					this.hauptFrame.setVisible(true);
					this.hauptFrame.pack();
				}
		
	}
	
	}	

}
```
Das ist das Code ,ich weiß es ist nicht gut formatiert aber ich wollte nur zeigen was mein Problem genau ist,es gibt zwei JFrames und in eins davon ist das JScrollPane
Vielen Dank


----------



## SlaterB (31. Mai 2011)

was ist jetzt die Frage/ das Problem?
wäre schön gewesen wenn du neben 227 Zeilen Code auch die Zeit gefunden hättest für mehr als kaum 2 Zeilen Text dazu..

Zeile 123 + 124 kannst du bestimmt durch
> this.panel.revalidate();
besser ersetzen


----------



## bafl13 (31. Mai 2011)

SlaterB hat gesagt.:


> was ist jetzt die Frage/ das Problem?
> wäre schön gewesen wenn du neben 227 Zeilen Code auch die Zeit gefunden hättest für mehr als kaum 2 Zeilen Text dazu..
> 
> Zeile 123 + 124 kannst du bestimmt durch
> ...



Das Problem ist dass ich mein JPanel vergrößen möchte??? 
Das Programm muss viele Sachen machen,ein davon ist die Rechnung von dem Termin des Ostern zwischen die Jahre 2007 und 2017 und da diese Informationen viel Platz brauchen,wollte ich die mit JPanel zeigen ,und das habe ich aber leider klappt es mir nichts das JPanel zu vergrößern.
und danke für den Tipp


----------



## SlaterB (31. Mai 2011)

streiche Zeile 77?
ich kann bis morgen leider nicht mehr testen


----------

