JTextfield -> Text ausrichtung wenn der Text zu lang ist

desmoloch

Mitglied
hi!

hab ein Problem mit einem JTextfield. Ich weiss nicht wieviel in das Textfield eingetragen wird (Eintrag durch auslesen aus einer DB).
Es ist ein Adressenfeld und es kann einfach sehr lang sen.
Es gibt eine Standardgröße. Wenn diese aber nicht ausreicht, wird der Text eingetragen und nach RECHTS ausgerichtet. Das heisst man sieht das ENDE von der Adresse, der Anfang ist nur sichtbar wenn man das Feld markiert und mit der Maus nach links zieht.
Ich finde leider auch keine Eigenschaft, die vom Feld vorgibt immer den Text von links beginnend anzuzeigen... :(

hier die Eigenschaften des Feldes:

Code:
      txt_Firma1.setEditable(false);
      txt_Firma1.setBackground(hellorange);
      txt_Firma1.setBorder(BorderFactory.createEmptyBorder());
      txt_Firma1.setSelectionColor(selColor);
      txt_Firma1.setHorizontalAlignment(JTextField.LEFT); <- Test, LEFT ist eh standard...
      txt_Firma1.setSelectionStart(0);  <- Test (keine Auswirkung)
      txt_Firma1.setScrollOffset(0); <- Test (keine Auswirkung)

wer schön wenn jemand rat wüsste :)
Google kann mir auch nicht helfen :(

mfg Desmo
 
Hallo!

Schau mal hier:
Code:
import java.awt.BorderLayout;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class JTextDemo extends JFrame {

	private JTextField txt;

	public JTextDemo() {
		super("JTextDemo");
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		txt = new JTextField(10);
		txt.setEditable(false);
		txt.setBorder(BorderFactory.createEmptyBorder());
		txt.setHorizontalAlignment(JTextField.LEFT);
		txt.setText("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
		getContentPane().add(txt, BorderLayout.CENTER);
		/* Der Text steht bei mir (J2SDK 1.4.2) zwar immer Linksbeginnend im
		 * Textfeld falls das bei dir jedoch nicht Fall sein sollte hilft dir 
		 * vielleicht das hier: 
		 */
		txt.setCaretPosition(0);

		pack();
		setVisible(true);
	}

	public static void main(String[] args) {
		new JTextDemo();
	}
}

Gruß Tom
 
danke das setCaretPosition hat mir gefehlt :)

hatte ich zwar versucht, aber ich muss das machen NACHDEM das textfeld anhand der datenbank gefüllt wurde. Hatte es vorher bei der Textfeld deklaration, aber durch das füllen wurde das wieder überschrieben ;)
Ich mach das nun nach dem füllen und es klappt.

Danke!
 
Zurück