Hallo
Seltsamerweise spuckt mir die Forensuche nichts aus und auch Google war bisher relativ nutzlos, da sich alle Ergebnisse eher auf Tabellenhöhe in Verbindung mit einer Textarea beliefen.
Geplant ist folgendes:
Ich habe eine Tabellendatenbank mit einer Menge an Einträgen.
Klicke ich eins dieser Einträge an, bekomme ich neben der Tabelle eine detailierte Ansicht mit Daten aus dem jeweiligen Eintrag. Darunter einige Labels, Bilddateien und eben ein Textfeld für größere Texte, das ganze befindet sich in einer JScrollPanel, damit man es bei Übergröße auch scrollen kann.
Diese ganzen Elemente sollen sich jedes mal, wenn ein Tabelleneintrag ausgewählt wird, mit den neuen Daten aktualisieren. Die Größe des Textes kann dabei beliebig variieren.
Problem:
Ich fand bisher keinen Weg, einem jTextPanel oder jTextArea Objekt (Beide probiert) mitzuteilen, dass es sich die Höhe selbst festlegen soll.
Zwar konnte ich die Höhe auf Short.MAX_VALUE stellen, somit würden aber alle darunterliegenden Elemente entweder verschoben oder übermalt.
Der Text wird anhand der Wort-Trennungen gewrappt, die Breite bleibt fix, nur die Höhe soll sich anpassen können und die darunterliegenden Elemente korrekt neu anordnen. Dies ließe sich ja jedes mal bei Änderung des Textfeldes manuell positionieren, aber eben die Texthöhe konnte ich nicht herausfinden, getPreferredSize ist nicht dynamisch sondern gibt auch nur das aus, was ich vorher ihm bei der Erstellung als Initialwert für die preferierte Größe gab.
Code:
Testweise die Textarea mit Inhalt befüllt:
Hätte jemand hier ein paar Hilfestellungen für mich?
Seltsamerweise spuckt mir die Forensuche nichts aus und auch Google war bisher relativ nutzlos, da sich alle Ergebnisse eher auf Tabellenhöhe in Verbindung mit einer Textarea beliefen.
Geplant ist folgendes:
Ich habe eine Tabellendatenbank mit einer Menge an Einträgen.
Klicke ich eins dieser Einträge an, bekomme ich neben der Tabelle eine detailierte Ansicht mit Daten aus dem jeweiligen Eintrag. Darunter einige Labels, Bilddateien und eben ein Textfeld für größere Texte, das ganze befindet sich in einer JScrollPanel, damit man es bei Übergröße auch scrollen kann.
Diese ganzen Elemente sollen sich jedes mal, wenn ein Tabelleneintrag ausgewählt wird, mit den neuen Daten aktualisieren. Die Größe des Textes kann dabei beliebig variieren.
Problem:
Ich fand bisher keinen Weg, einem jTextPanel oder jTextArea Objekt (Beide probiert) mitzuteilen, dass es sich die Höhe selbst festlegen soll.
Zwar konnte ich die Höhe auf Short.MAX_VALUE stellen, somit würden aber alle darunterliegenden Elemente entweder verschoben oder übermalt.
Der Text wird anhand der Wort-Trennungen gewrappt, die Breite bleibt fix, nur die Höhe soll sich anpassen können und die darunterliegenden Elemente korrekt neu anordnen. Dies ließe sich ja jedes mal bei Änderung des Textfeldes manuell positionieren, aber eben die Texthöhe konnte ich nicht herausfinden, getPreferredSize ist nicht dynamisch sondern gibt auch nur das aus, was ich vorher ihm bei der Erstellung als Initialwert für die preferierte Größe gab.
Code:
Java:
// Right side of split pane: The Quest detail container
{
jQuestInfoPanel = new JPanel();
GroupLayout jQuestInfoPanelLayout = new GroupLayout((JComponent)jQuestInfoPanel);
jQuestInfoPanel.setLayout(jQuestInfoPanelLayout);
jQuestInfoPanel.setBackground(new java.awt.Color(52,82,80));
jQuestInfoPanel.setForeground(new java.awt.Color(255,255,255));
jQuestInfoPanel.setMinimumSize(new java.awt.Dimension(300, -1));
jQuestInfoPanel.setPreferredSize(new java.awt.Dimension(-1, -1));
{
jQuestInfoQuestName = new JLabel();
jQuestInfoQuestName.setText("{QUESTNAME}");
jQuestInfoQuestName.setFont(new java.awt.Font("Tahoma",1,12));
jQuestInfoQuestName.setForeground(new java.awt.Color(243,239,201));
}
{
jQuestInfoRepeatableIndicator = new JLabel();
jQuestInfoRepeatableIndicator.setText("{REPEATABLE}");
jQuestInfoRepeatableIndicator.setFont(new java.awt.Font("Tahoma",0,10));
jQuestInfoRepeatableIndicator.setForeground(new java.awt.Color(236,244,246));
}
{
jQuestInfoShortDescription = new JTextArea();
jQuestInfoShortDescription.setText("{SHORTDESCRIPTION}");
jQuestInfoShortDescription.setBackground(new java.awt.Color(52,82,80));
jQuestInfoShortDescription.setForeground(new java.awt.Color(255,255,255));
jQuestInfoShortDescription.setFont(new java.awt.Font("Tahoma",0,12));
jQuestInfoShortDescription.setWrapStyleWord(true);
jQuestInfoShortDescription.setLineWrap(true);
jQuestInfoShortDescription.setEditable(false);
}
jQuestInfoPanelLayout.setHorizontalGroup(jQuestInfoPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(jQuestInfoPanelLayout.createParallelGroup()
.addComponent(jQuestInfoShortDescription, GroupLayout.Alignment.LEADING, 0, 276, Short.MAX_VALUE)
.addGroup(jQuestInfoPanelLayout.createSequentialGroup()
.addComponent(jQuestInfoRepeatableIndicator, GroupLayout.PREFERRED_SIZE, 277, GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(jQuestInfoPanelLayout.createSequentialGroup()
.addComponent(jQuestInfoQuestName, GroupLayout.PREFERRED_SIZE, 277, GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap());
jQuestInfoPanelLayout.setVerticalGroup(jQuestInfoPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jQuestInfoQuestName, GroupLayout.PREFERRED_SIZE, 23, GroupLayout.PREFERRED_SIZE)
.addComponent(jQuestInfoRepeatableIndicator, GroupLayout.PREFERRED_SIZE, 16, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jQuestInfoShortDescription, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
.addContainerGap(441, Short.MAX_VALUE));
}
Testweise die Textarea mit Inhalt befüllt:
Java:
jQuestInfoShortDescription.setText("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.");
Hätte jemand hier ein paar Hilfestellungen für mich?
Zuletzt bearbeitet: