Größe von Textfield bestimmen

Apfelsinenkern

Aktives Mitglied
Hallo, ich melde mich schon wieder :)

Diesmal hab ich das Problem, dass ich ein Textfield erstellen will, das nicht den ganzen Platz meiner JScrollPane einnimmt. Meine Idee war, eine neue Klasse zu erstellen, diese von der Klasse JComponent erben lassen, und dort ein JTextfield zu erzeugen.
Dieses wollte ich dann in einer bestimmten Größe in mein JScrollPane einfügen.

Java:
import javax.swing.JComponent;
import javax.swing.JTextArea;


public class FormularName extends JComponent {
	
	
	public JTextArea text ;
	
	public FormularName()
	{
		text = new JTextArea();
	}



}

In der Klasse Formular wird das dann so aufgerufen:

Java:
import java.io.File;

import javax.swing.*;

public class Formular extends JComponent{
	
	

    private ViewComponent viewComponentS1 = null;
    private FormularName name = null;
    private File imageFileS1 = null;
    
	
	JPanel pan = new JPanel();
	JScrollPane scroll = new JScrollPane(this);
	public Formular ()
	{
		name = new FormularName();
		imageFileS1 = new File("Step1.png");
	    viewComponentS1 = new ViewComponent(imageFileS1);
	    
	    
	    scroll.getViewport().add(viewComponentS1, null);
	    scroll.getViewport().add(name, null);
        
	    viewComponentS1.setSize(420,94);
	    scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
	    scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
	    scroll.setVisible(true);
	
	      
	        
	}
	

}


Was mache ich falsch? Es wird im Moment kein Bild angezeigt...


Ich würde mich über schnelle Hilfe freuen :D
 
S

SlaterB

Gast
was hantierst du mit getViewport().add(), hast du das je funktionierend gesehen?
ich empfehle dir:
übergib einem JScrollPane initial eine Komponente, oder setze später eine Komponente mit setViewPortView(),
dann hat sich das für alle Zeiten mit dem JScrollPane erledigt,
wenn du mehrere Komponenten anzeigen willst, dann kann ja die eine übergebene Komponente ein JPanel mit Layout und sonstiger Unterstrukturierung sein,

bei google grad nach einem Beispiel gesucht,
An example using JScrollPane
ok, da ist es auch getViewport().add() ;), aber nur einmal, ob zwei Aufrufe gehen und nicht vielleicht der zweite den ersten ersetzt, ist nicht gesagt,
mit einem JPanel wärst du auf hoffentlich bekannten Standard-Terrain

----

in FormularName ist text übrigens einfach nur ein Attribut, nicht mit add() oder ähnlichem eingebunden,
vorausgesetzt das bringt bei einer JComponent überhaupt etwas,
ich bin auch hier wenn überhaupt mit mehreren Hierarchien immer für ein JPanel, das ist eine bekannte Komponente in der add() garantiert funktioniert
 

Apfelsinenkern

Aktives Mitglied
Hilft mir nur bedingt weiter.... Hab jetzt versucht, über setPortviewPort() das Einzufügen, und einzeln klappts auch (also Textarea //Bild) Aber beides geht einfach ned in die Scrollpane hinein. Ich will das Bild und das Textfield/Area auf n Panel klatschen, was ich wiederum auf die ScrollPane klatschen will.

Kann mir wer nen Beispiel machen, wär vllt hilfreich :(
 
S

SlaterB

Gast
wie lautet denn dein Code mit Panel?
ok, ich wollte deinen Code eh ausprobieren, da ist das schnell gemacht,

habe in der Tat gewisse Probleme mit JComponent und viewport-add,
so denke ich mir das:

Java:
public class TestGUI  extends JFrame {

    public TestGUI()  {
        Formular f = new Formular();
        add(f.scroll);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(500, 300);
        setVisible(true);
    }

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

class Formular  extends JPanel {
    JScrollPane scroll = new JScrollPane(this);

    public Formular()  {
        // scroll.getViewport().add(new JLabel("A"), null);
        // scroll.getViewport().add(new JLabel("B"), null);
        add(new JLabel("A"));
        add(new JLabel("B"));

        scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    }
}
wobei die Grundkombination mit add(f.scroll)
und ScrollPane welches das Formular noch vor dem Konstruktor aufnimmt ja schon ziemlich unschön ist,
 

bERt0r

Top Contributor
Geht nicht ganz einfach folgendes:
Java:
public class Frame2 extends JFrame 
{
  private JScrollPane jScrollPane1 = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
  private JPanel jPanel1 = new JPanel();
  private JLabel jLabel1 = new JLabel();
  private JTextField jTextField1 = new JTextField();
  private BorderLayout borderLayout1 = new BorderLayout();

  public Frame2()
  {
    this.getContentPane().setLayout(borderLayout1);
    this.setSize(new Dimension(400, 300));
    jLabel1.setText("jLabel1");
    jTextField1.setText("jTextField1");
    jPanel1.add(jLabel1);
    jPanel1.add(jTextField1);
    jScrollPane1.getViewport().add(jPanel1);
    this.getContentPane().add(jScrollPane1, BorderLayout.CENTER);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
  
  public static void main(String args[])
  {
    new Frame2().setVisible(true);
  }
}
 

Apfelsinenkern

Aktives Mitglied
Jetzt bin ich schon nen ganzen Schritt weiter, danke :D Aber ein kleines Problem gibt es noch:


Welches Layout ist am besten und unkompliziertesten, um Koponenten senkrecht aufzulisten?
 

Apfelsinenkern

Aktives Mitglied
Das BoxLayout läuft nicht ganz so, wie ich mir das vorgestellt hab:

Das Textfeld nimmt wieder den ganzen Platz ein... Wäre ein GroupLayout besser, oder kann man die Größe des Textfelds im Boxlayout regulieren?
 
S

SlaterB

Gast
eine Variante ist, pro Zeile ein JPanel zu setzen, welches gerne maximiert werden kann, darin dann das Textfeld einzufügen (Standard für JPanel ist ja FlowLayout),

in dem Code von
http://download.oracle.com/javase/t...youtDemoProject/src/layout/BoxLayoutDemo.java
alternativ
Java:
    private static void addAButton(String text, Container container)
    {
        JPanel p = new JPanel();
        JTextField button = new JTextField(text);
        p.add(button);
        container.add(p);
    }
einfügen, dann ist das zu sehen, schönes Konstrukt natürlich nicht unbedingt,
und evtl. Probleme mit größeren Abständen durch die Zwischenschichten

GroupLayout wird sicher auch lieber ganze Zellen füllen,
das komplizierte GridBagLayout dann vielleicht schon eher, aber das müsstest du alles ausprobieren, falls nicht noch wer anders antwortet
 

Apfelsinenkern

Aktives Mitglied
Das GridBagLayout passt, muss mich nur noch richtig reinarbeiten. Aber ich denke, das wars mit Fragen, falls ich wieder was wissen muss, mach ihc nen neuen Thread auf XD

Danke vielmals für die schnellen Antworten!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Textfield feste größe? AWT, Swing, JavaFX & SWT 1
P JTextField wird nur sehr klein angezeigt und verändert die Größe nicht AWT, Swing, JavaFX & SWT 3
H JDialog in Größe ändern - Resize-Cursor bleibt betreten der Komponente AWT, Swing, JavaFX & SWT 1
H AWT Dialog Größe ändern - Schwarzer Inhalt beim groß ziehen AWT, Swing, JavaFX & SWT 1
Yonnig JavaFX Größe von WebView an Content anpassen AWT, Swing, JavaFX & SWT 3
J Swing Komponente wird unpassend angepasst in der Größe AWT, Swing, JavaFX & SWT 35
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5
D JavaFX Größe des Bild an ImageView anpassen AWT, Swing, JavaFX & SWT 3
B Dynamische ListView-Größe, die bei Fenstergrößenänderung sich anpasst AWT, Swing, JavaFX & SWT 19
R Swing JTextField - Schriftgröße je nach Länge und Größe ändern AWT, Swing, JavaFX & SWT 0
B veränderte Größe eines Panels im Vorhinein wissen? AWT, Swing, JavaFX & SWT 1
B Größe der Parent-Component dynamisch an children anpassen AWT, Swing, JavaFX & SWT 30
L JavaFX AnchorPane an die Größe der Scene oder Window binden? AWT, Swing, JavaFX & SWT 3
K JavaFX Component Größe an Inhalt anpassen AWT, Swing, JavaFX & SWT 11
S Java GUI durch variable Größe einer Map anpassen AWT, Swing, JavaFX & SWT 3
R Größe von Scene und stage an grid anpassen AWT, Swing, JavaFX & SWT 4
M Java FX größe der shapes anpassen AWT, Swing, JavaFX & SWT 0
L Swing JPanel Größe anpassen AWT, Swing, JavaFX & SWT 6
E Wie kann ich ein JLabel auf größe der schriftlänge setzten? AWT, Swing, JavaFX & SWT 2
C Swing JFrame ändert Größe AWT, Swing, JavaFX & SWT 0
G Swing JButton ändert (unerwünscht) Größe bei Ausführung AWT, Swing, JavaFX & SWT 4
L Swing Größe automatisch anpassen AWT, Swing, JavaFX & SWT 14
B AWT Panel größe im BorderLayout einstellen AWT, Swing, JavaFX & SWT 1
J Swing Pane im SplitPane automatische Größe aktivieren AWT, Swing, JavaFX & SWT 0
DaCrazyJavaExpert Swing Größe des JPanel ändern/wird nicht geändert. AWT, Swing, JavaFX & SWT 3
M Swing Mehrere Textfelder mit ScrollBars - Größe der Felder AWT, Swing, JavaFX & SWT 0
L JavaFX ListView Größe anpassen AWT, Swing, JavaFX & SWT 1
Neumi5694 Größe von Komboboxen neu berechnen AWT, Swing, JavaFX & SWT 3
L JavaFX List oder TableView Größe dynamisch anpassen? AWT, Swing, JavaFX & SWT 4
P Größe und Ausrichtung von Komponenten festlegen AWT, Swing, JavaFX & SWT 13
I CSS - backgroundImage - Größe automatisch an den Container anpassen AWT, Swing, JavaFX & SWT 1
C Größe des Mauszeigers ermitteln AWT, Swing, JavaFX & SWT 5
MaxG. JFrame Größe ändern AWT, Swing, JavaFX & SWT 16
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2
K GridBagLayout verändert die größe? AWT, Swing, JavaFX & SWT 1
D Swing Größe einer JComboBox im GridBagLayout aufgrund der maximalen Länge der enthaltenen Daten AWT, Swing, JavaFX & SWT 7
D JavaFX Alle Knöpfe auf die gleiche Größe AWT, Swing, JavaFX & SWT 14
G JFrame - manuell Größe verändern AWT, Swing, JavaFX & SWT 6
M LayoutManager GridBagLayout passt seine größe nicht an AWT, Swing, JavaFX & SWT 3
F Gui weicht von Designpreview ab (kein fensterrahmen, andere größe) AWT, Swing, JavaFX & SWT 13
A JPanel größe verändern AWT, Swing, JavaFX & SWT 4
M SWT ScrollPane Größe zu klein AWT, Swing, JavaFX & SWT 6
T Swing Größe einer Komponente in einem BoxLayout / FlowLayout festlegen AWT, Swing, JavaFX & SWT 7
H JTree in JScrollPane passt sich nicht an Größe von JPanel an AWT, Swing, JavaFX & SWT 2
L JButton - Größe anders als erwartet AWT, Swing, JavaFX & SWT 2
L JDialog - Event wenn Parent größe ändert AWT, Swing, JavaFX & SWT 2
W GridBagLayout Größe geben AWT, Swing, JavaFX & SWT 1
S Swing JFrame hat nicht die Größe, die ich eingegeben habe AWT, Swing, JavaFX & SWT 3
S Größe der Komponenten, beim ändern der größe des Frames, mit ändern! AWT, Swing, JavaFX & SWT 2
S Größe und Farbe vom JButton festlegen AWT, Swing, JavaFX & SWT 2
D Swing Jlist Größe während der Laufzeit verändern. AWT, Swing, JavaFX & SWT 11
H AWT Fenster- und JLabel-Größe automatisch anpassen AWT, Swing, JavaFX & SWT 2
T Swing Größe des Randes AWT, Swing, JavaFX & SWT 2
C LayoutManager JFrame größe und ausrichtung + Position von Fensterelementen AWT, Swing, JavaFX & SWT 2
B Swing JTable mit Daten - Reihen-Größe anpassen AWT, Swing, JavaFX & SWT 0
D SWT Window passt Größe nicht an AWT, Swing, JavaFX & SWT 4
N JPanel größe wissen/festlegen vor dem Anzeigen AWT, Swing, JavaFX & SWT 3
U Größe eines Button im Menü ändern AWT, Swing, JavaFX & SWT 1
G JavaFX Größe der Parentknoten AWT, Swing, JavaFX & SWT 5
R JPanel-Größe verändert sich nicht. Warum? AWT, Swing, JavaFX & SWT 5
T Swing Aktuelle Größe eines Textes in einem Label darstellen AWT, Swing, JavaFX & SWT 3
A JPanel oder GridLayout Größe festsetzten AWT, Swing, JavaFX & SWT 4
F Swing JComboBox - Frage zur Größe AWT, Swing, JavaFX & SWT 11
X Swing Größe eines Fensters JFrame / Frame AWT, Swing, JavaFX & SWT 5
SimonRap Swing JFrame Größe zur Laufzeit ändern AWT, Swing, JavaFX & SWT 2
G 2D-Grafik Größe der JFrame Decorations herausfinden? AWT, Swing, JavaFX & SWT 4
O Swing Jpanel autom. auf JFrame Größe bringen AWT, Swing, JavaFX & SWT 6
M Swing JLabel mit fester größe nachträglich formatieren AWT, Swing, JavaFX & SWT 2
A JComponent Größe AWT, Swing, JavaFX & SWT 8
S Größe von Panel verändern welches auf anderem Panel sitzt AWT, Swing, JavaFX & SWT 10
B JTextArea Größe an Container anpassen AWT, Swing, JavaFX & SWT 2
S Swing TextPane größe beschränken AWT, Swing, JavaFX & SWT 2
R Ellipse2D ändert Größe AWT, Swing, JavaFX & SWT 3
H Swing JButton größe ändern AWT, Swing, JavaFX & SWT 5
G JScrollPane reagiert nicht auf Änderung der JPanel-Größe AWT, Swing, JavaFX & SWT 4
P JPanel Größe ändern AWT, Swing, JavaFX & SWT 22
I Größe eines rotierten Images AWT, Swing, JavaFX & SWT 3
C Button Größe einstellen klappt nicht (setBounds) AWT, Swing, JavaFX & SWT 8
S 2D-Grafik Canvas Problem(Größe) AWT, Swing, JavaFX & SWT 6
R Größe/Anordnung der Gui-Elemente automatisch? AWT, Swing, JavaFX & SWT 6
S Die größe eines JButton ändern AWT, Swing, JavaFX & SWT 7
U feste Größe für den Zeichenbereich eines JFrames AWT, Swing, JavaFX & SWT 4
L Graphics.drawImage() - Output-Größe entspricht nicht Parametern AWT, Swing, JavaFX & SWT 10
P Tatsächliche Größe für Applet AWT, Swing, JavaFX & SWT 3
C Swing GridBag-Probleme (Größe und Ausrichtung) AWT, Swing, JavaFX & SWT 3
K JFrame Größe ändern AWT, Swing, JavaFX & SWT 4
M jTable - Größe beim Erzeugen AWT, Swing, JavaFX & SWT 4
hdi Swing JFrame Größe ermitteln AWT, Swing, JavaFX & SWT 6
S Swing jFrame auf maximale Größe setzten AWT, Swing, JavaFX & SWT 7
Z größe der komponenten bestimmen AWT, Swing, JavaFX & SWT 16
X Alte Frame-Größe beim wiederholten Aufruf AWT, Swing, JavaFX & SWT 5
I Größe von JPanel ändern AWT, Swing, JavaFX & SWT 6
S SWT Shell durch Event in der Größe verändern AWT, Swing, JavaFX & SWT 7
T Die Größe einer JTextArea an Ihren Parent JPanel anpassen. AWT, Swing, JavaFX & SWT 5
L JFrame größe in einem ActionEvent ändern AWT, Swing, JavaFX & SWT 4
G LayoutManager BorderLayout WEST Bereich auf maximale Größe beschränken AWT, Swing, JavaFX & SWT 19
T Inhalt von einem Tab an JTabbedPane größe ausrichten? AWT, Swing, JavaFX & SWT 2
S Button Größe - Anfänger AWT, Swing, JavaFX & SWT 13
0 JPanel nicht an größe des JFrames anpassen AWT, Swing, JavaFX & SWT 3
S Swing Größe von JLabels verändern sich in einem Panel unterschiedlich AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben