Wenn ich das Progrämmchen starte, ist das Frame zu klein (unter der TextArea wird kein Abstand mehr angezeigt, obwohl da row9 = 20dlu und gleich wie 1 enigestellt ist).
Kann ich, wenn ja wie, verhindern, dass das zur Laufzeit mit der Maus Frame kleiner gemacht wird?
Seltsamerweise liefert panel.getSize
Kann ich, wenn ja wie, verhindern, dass das zur Laufzeit mit der Maus Frame kleiner gemacht wird?
Seltsamerweise liefert panel.getSize
Code:
java.awt.Dimension[width=0,height=0]
Java:
import java.awt.Dimension;
import javax.swing.*;
import com.jgoodies.forms.layout.*;
public class Example2 {
final static String text1 = "Textlabel 1";
final static String text2 = "Text 2";
final static String text3 = "Textlabel Nummer 3";
final static String text = "Das ist der Megatext, der länger ist als die Breite des "+
"verwendeten Feldes und umgebrochen werden sollte und mehrere Zeilen " +
"lang ist.";
private int rowCounter = 2;
private CellConstraints cc = new CellConstraints();
private void addRow(JPanel panel, JLabel label, JTextField field) {
panel.add(label, cc.xy(2, rowCounter));
panel.add(field, cc.xy(4, rowCounter));
rowCounter += 2;
}
private JPanel createPanel() {
String colSpec = "10dlu, pref, 10dlu, 30dlu, 10dlu";
String rowSpec = "20dlu, pref, 5dlu, pref, 5dlu, pref, 5dlu, pref, 20dlu";
FormLayout layout = new FormLayout(colSpec,rowSpec);
layout.setRowGroups(new int[][]{{2, 4, 6}, {3, 5}, {1, 7, 9}});
JPanel myPanel = new JPanel(layout);
JLabel label1 = new JLabel(text1);
JTextField field1 = new JTextField("Feld1");
addRow(myPanel, label1, field1);
JLabel label2 = new JLabel(text2);
JTextField field2 = new JTextField("Feld2");
addRow(myPanel, label2, field2);
JLabel label3 = new JLabel(text3);
JTextField field3 = new JTextField("Feld3");
addRow(myPanel, label3, field3);
JTextArea area = new JTextArea(text);
area.setWrapStyleWord(true);
area.setLineWrap(true);
area.setEditable(false);
myPanel.add(area, cc.xyw(2, rowCounter, 3));
Dimension dim = myPanel.getSize();
System.out.println(dim);
//liefert 0/0
return myPanel;
}
public static void main(String[] args) {
Example2 ex = new Example2();
JFrame frame = new JFrame("Example2");
frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
frame.add(ex.createPanel());
frame.pack();
frame.setVisible(true);
}
}