Textfeld in ein FlowLayout Panel einfügen geht nicht

deni74

Mitglied
Hallo,

habe mal wieder eine Frage, ich möchte ein JLabel und ein JTextField in einen bestehenden Panel einfügen. Leider funktioniert es nicht so wie ich es mir vorstelle. Wenn ich dem Panel ein JTextField der Größe 10 einfüge, dann wird es hinter dem letzten Objekt platziert. Sobald ich das JTextFeld grösser auslege, z.B. 30, dann wird es nicht mehr angezeigt. Normalerweise sollte es bei einem FlowLayout doch einen Umbruch geben und das Textfeld sollte in der nächsten Zeile angezeigt werden. Oder irre ich mich da? Hier mal ein Ausschnitt des Codes, vielleicht habe ich ja auch was übersehen, Liegt es evtl. an dem BorderLayout?
jpEinstellungen ist das Panel, in das ich das besagte JTextField einfügen möchte.

Code:
private JPanel jpEinstellungen = new JPanel() {
		public void paintComponent(Graphics g) {
			Graphics2D g2d = (Graphics2D) g;
			GradientPaint gp = new GradientPaint(0, 0, Color.white, 0, this.getHeight() / 2, Gui.SETTING_COLOR, true);
			g2d.setPaint(gp);
			g2d.fillRect(0, 0, this.getWidth(), this.getHeight());
		}
	};

	public UploadPanel() {
		this.setLayout(new BorderLayout());
		jlUploadInfo = new JLabel("0 Bilder, 0 MB");
		jbRemoveAll = new JButton("Alle entfernen");
		jbListe = new JButton("Liste");
		jbAddAll = new JButton("Alle hinzufügen");		
		
		jbRemoveAll.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				removeAllPictures();
			}
		});
		jbAddAll.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				jlStatus.setText("Bitte warten Sie während die bilder zum Upload hinzugefügt werden.");
				addAllPictures();
				jlStatus.setText(" ");
			}
		});		

		jbUpload.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				if (jpBilder.getComponentCount() > 0) {
					final JDialog jd = new JDialog();
					final JProgressBar jpb = new JProgressBar(JProgressBar.HORIZONTAL, 0, 50);
					final AbstractButton jbAbbruch = new JButton("Start");
					JLabel jl = new JLabel("Bitte warten, die Daten werden hochgeladen");
					
					jbAbbruch.doClick();
					jbAbbruch.addActionListener(new ActionListener() {	
						Timer t = new Timer(250, new ActionListener() {
							public void actionPerformed(ActionEvent arg0) {
								jpb.setValue(jpb.getValue() + 1);
								if (jpb.getValue() >= 50)
									jbAbbruch.setText("Ok");
								jd.repaint();
							}
						});						
						public void actionPerformed(ActionEvent arg0) {
							if (((JButton) arg0.getSource()).getText().equals("Start")) {
								((JButton) arg0.getSource()).setText("Abbrechen");
								t.start();
							} else
								jd.setVisible(false);
						}
					});
					
					jl.setBounds(10, 10, 300, 20);
					jbAbbruch.setBounds(100, 60, 100, 20);
					jpb.setBounds(10, 30, 300, 20);
					jpb.setStringPainted(true);
					jd.setModal(true);
					jd.getContentPane().setLayout(null);
					jd.getContentPane().setCursor(new Cursor(Cursor.WAIT_CURSOR));
					jd.getContentPane().add(jl);
					jd.getContentPane().add(jpb);
					jd.getContentPane().add(jbAbbruch);
					jd.setSize(330, 120);
					jd.setTitle("Bitte warten...");
					jd.setLocationRelativeTo(null);
					jd.setVisible(true);
					jbAbbruch.doClick();
				}
			}
		});
		 
		jbListe.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				if (((JButton) arg0.getSource()).getText().equals("Liste")) {
					Gui.liste = true;
					for (int i = 0; i < Gui.previewPanel.jpBilder
							.getComponentCount(); i++) {
						((PreviewPicture) Gui.previewPanel.jpBilder
								.getComponent(i)).minimize();
					}
					for (int i = 0; i < Gui.uploadPanel.jpBilder
							.getComponentCount(); i++) {
						((UploadPicture) Gui.uploadPanel.jpBilder
								.getComponent(i)).minimize();
					}
					jpBilder.setMinimumSize(new Dimension(760, bildObjekteAnz * 30 + 5));
					jpBilder.setPreferredSize(new Dimension(760, bildObjekteAnz * 30 + 5));
					jpBilder.setMaximumSize(new Dimension(760, bildObjekteAnz * 30 + 5));
					
					((JButton) arg0.getSource()).setText("Detail");
				} else {
					Gui.liste = false;
					for (int i = 0; i < Gui.previewPanel.jpBilder
							.getComponentCount(); i++) {
						((PreviewPicture) Gui.previewPanel.jpBilder
								.getComponent(i)).maximize();
					}
					for (int i = 0; i < Gui.uploadPanel.jpBilder
							.getComponentCount(); i++) {
						((UploadPicture) Gui.uploadPanel.jpBilder
								.getComponent(i)).maximize();
					}
					jpBilder.setMinimumSize(new Dimension(760, bildObjekteAnz * 117 + 5));
					jpBilder.setPreferredSize(new Dimension(760, bildObjekteAnz * 117 + 5));
					jpBilder.setMaximumSize(new Dimension(760, bildObjekteAnz * 117 + 5));
					((JButton) arg0.getSource()).setText("Liste");
				}
			}
		});	
		jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
		jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		jsp.getVerticalScrollBar().setUnitIncrement(20);
		jsp.getHorizontalScrollBar().setUnitIncrement(20);
		jsp.setPreferredSize(new Dimension(790,300));
		jbRemoveAll.setBounds(20, 80, 100, 20);
		jbUpload.setBounds(20, 110, 100, 20);
		jlStatus = new JLabel("Willkommen beim BildUploader");
		jpEinstellungen.add(jbAddAll);
		jpEinstellungen.add(jbRemoveAll);
		jpEinstellungen.add(jbListe);
		jpEinstellungen.add(jbUpload);
		jpEinstellungen.add(jlUploadInfo);
		jpEinstellungen.add(jtf);
		jpEinstellungen.setBackground(new Color(0, 123, 50));
		jpEinstellungen.setOpaque(true);
		jpBilder.setBackground(Color.white);
		
		jlUploadInfo.setForeground(Color.white);
		
		this.add(jpEinstellungen, BorderLayout.NORTH);			
		this.add(jsp, BorderLayout.CENTER);
		this.add(jlStatus, BorderLayout.SOUTH);
	    setVisible(true);	
	}
 
Zurück