ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
392
392
EMPFEHLEN
-
Hallo,
ich habe hier ein JLabel, in welchem ein Text steht zwischen html-Tags, damit der Text automatisch umgebrochen wird.
Der IST-Zustand ist folgender:
Ein JPanel, welches ein GridBagLayout hat, auf diesem sind mehrere JLabels + JTextFields.
Das Problem:
Der Text auf den JLabels wird in mehreren Sprachen dargestellt, jetzt kann es sein, das der Text auf Deutsch sich in einer Zeile ausgeht, aber auf Englisch oder Spanisch nicht. Wenn er sich nicht ausgeht, dann wird umgebrochen. Die Höhe des JLabels wird dabei aber nicht verändert, sondern die untere Hälfte des Textes einfach abgeschnitten.
Kann ich dem Label oder dem Layout irgendwie klar machen, das das Label in so einem Fall vergrößert werden soll?
Danke!mfg chrootdev
------------------------------
Java, C++, Linux
-
20.06.11 11:46 #2SE Tutorials.de Gastzugang
Ich denke mal das hat was mit der JTable zu tun das du in dieser eine feste Zellen-Größe definiert hast. Dann nützt dir auch kein HTML was. Erstmal musst du für sorgen das sich die Zellen auch frei in ihrer Größe ändern können bevor du ihnen sagst das sie es tun sollen.
Außerdem finde ich hier eines SEHR merkwürdig :
Mehrere JTable in einem GridBagLayout ?
Entschuldige meine verdrusste Antwort , aber das ist völliger schwachsinn. Entweder baust du eine große JTable die du z.B. über ein BorderLayout zentrierst *oder entsprechend ausrichtest* oder du nimmst das GridBagLayout mit dem mit einegem Mehraufwand das selbe erreichen kannst. Beides in einander zu verschachteln könnte unter anderen ebenfalls das Problem hervorrufen.
-
Danke SpiKEe für deine antwort!
Aber was hat mein Label-Problem mit JTables zu tun?mfg chrootdev
------------------------------
Java, C++, Linux
-
20.06.11 13:57 #4
- Registriert seit
- Feb 2009
- Beiträge
- 193
Ich vermute mal, dass er aus JLabel JTable gelesen hat

Naja, wenn du die Höhe ändern willst musst du mit den GridBagConstrainst arbeiten.
In Java-Doku zum GridBagLayout findet sich dazu auch ein Beispiel. Hier ist der Link zu der entsprechenden Seite der Doku. Das Beispel findest gegen Ende des längeren Texts zu Anfang der Seite. Also noch vor den Konstruktoren etc.
-
Mittlerweile bin ich darauf gekommen, das das Problem eher die JScrollPane ist, bzw. die Kombination von JLabel mit HTML-Text und JScrollPane.
Das Beispiel zeigt mein Problem. Ich habe 20 mal die Kombination von JLabel (mit HTML-Text) und JTextField. Jetzt werden die Labels im GridBagLayout in der JScrollPane nicht komplett ausgebreitet.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; public class LayoutTest extends JFrame { /** * */ private static final long serialVersionUID = 6971964679396619736L; public LayoutTest() { setSize(new Dimension(500, 500)); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); JScrollPane scrollPane = new JScrollPane(); scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); JPanel panel = new JPanel(); panel.setLayout(new GridBagLayout()); for(int i=0;i<20;i++) { GridBagConstraints labelConstraints = new GridBagConstraints(); labelConstraints.gridx = 0; labelConstraints.gridy = i; labelConstraints.weightx = 1.0d; labelConstraints.weighty = 1.0d; labelConstraints.fill = GridBagConstraints.BOTH; JLabel lbl = new JLabel("<html>Specify the row and column at the upper left of the component. The leftmost column has address gridx=0 and the top row has address gridy=0. Use GridBagConstraints.RELATIVE (the default value) to specify that the component be placed just to the right of (for gridx) or just below (for gridy) the component that was added to the container just before this component was added. We recommend specifying the gridx and gridy values for each component rather than just using GridBagConstraints.RELATIVE; this tends to result in more predictable layouts.</html>"); lbl.setMinimumSize(new Dimension(250,25)); lbl.setPreferredSize(new Dimension(250, 25)); panel.add(lbl, labelConstraints); GridBagConstraints txtConstraints = new GridBagConstraints(); txtConstraints.gridx = 1; txtConstraints.gridy = i; txtConstraints.weightx = 0.4d; txtConstraints.weighty = 0.0d; txtConstraints.fill = GridBagConstraints.NONE; JTextField txtField = new JTextField(); txtField.setMinimumSize(new Dimension(100, 25)); txtField.setPreferredSize(new Dimension(100, 25)); txtField.setMaximumSize(new Dimension(100, 25)); panel.add(txtField, txtConstraints); } scrollPane.setViewportView(panel); setContentPane(scrollPane); setVisible(true); } /** * @param args */ public static void main(String[] args) { new LayoutTest(); } }
Gibt es eine Möglichkeit, das sich die JLabel in ihrer ganzen höhe entfalten?mfg chrootdev
------------------------------
Java, C++, Linux
-
20.06.11 15:24 #6SE Tutorials.de Gastzugang
Ouh ... SORRY
mein Fehler ... wie bin ich da von JLabel auf JTable gekommen ? ... ouh .. ganz großes Damentennis
Ok .. zurück zum Thema ... *das oben könnten wir streichen*
Das Problem mit JScrollPane ist das es versucht alle Components die innerhalb seines Viewports liegen möglichst klein zu kriegen. Dagegen kann man soweit ich weis nur eines machen das man die aktuelle Größe ermittelt .. diese als preferredSize setzt und DANN erst den Viewport setzt. Zumnidest hat das bei meinen Apps immer funktioniert. Wenn das nicht hilft müsste ich mich noch mal intensiv mit GUI beschäftigen *ist schon etwas länger her*
Ähnliche Themen
-
JLabel - Text Abstand
Von iflow im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 09.03.08, 17:01 -
JLabel text zentrieren
Von Shizzl_chrizzl im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 05.05.06, 14:25 -
Jlabel Text mit Tabulator
Von bl4ck29 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 7Letzter Beitrag: 22.09.05, 14:32 -
Text vom JLabel holen
Von jorgeHX im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 02.07.04, 00:22 -
GUI :: Listbox mit Bildern und mehrzeiligem Text
Von EngelchenB im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 18.02.04, 17:06





Zitieren
Login





