G
gegenpol
Gast
Hallo
In meinem Projekt habe ich ein Problem mit dem Verhalten der Components, wenn ich das Fenster ziehe.
Und zwar habe ich vom Prinzip her 2 JPanels übereinander per GridBagLayout angeordnet. In den Panels sind jeweils eine JTable. Wenn ich diese JTable in eine JScrollPane setze, dann floppt das Ganze zusammen aus nicht ersichtlichen Grund.
Ich hab deshalb das ganze mal vom Projekt befreit und das Problem tritt immer noch auf:
Dabei ist es egal, ob ich die obere, die untere oder beide Tables in ein ScrollPane packe.
Das Problem tritt nur auf, wenn das Fenster (in dem Fall) in der Breite größer als ca. 480px oder in der Höhe größer als 450px ist.
Was mach ich da falsch?
In meinem Projekt habe ich ein Problem mit dem Verhalten der Components, wenn ich das Fenster ziehe.
Und zwar habe ich vom Prinzip her 2 JPanels übereinander per GridBagLayout angeordnet. In den Panels sind jeweils eine JTable. Wenn ich diese JTable in eine JScrollPane setze, dann floppt das Ganze zusammen aus nicht ersichtlichen Grund.
Ich hab deshalb das ganze mal vom Projekt befreit und das Problem tritt immer noch auf:
Java:
package default_package;
import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class Test {
public static void main(String[] args) throws Exception
{
new Window().setVisible(true);
}
}
class Window extends JFrame {
public Window()
{
this.setLayout(new BorderLayout());
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new GridBagLayout());
this.add(mainPanel, BorderLayout.CENTER);
Panel1 p1 = new Panel1();
Panel2 p2 = new Panel2();
GridBagConstraints g = new GridBagConstraints();
// p1
g = new GridBagConstraints();
g.gridy = 10;
g.gridx = 10;
g.weighty = 30;
g.weightx = 100;
g.fill = GridBagConstraints.BOTH;
mainPanel.add(p1, g);
// p2
g = new GridBagConstraints();
g.gridy = 20;
g.gridx = 10;
g.weighty = 70;
g.weightx = 100;
g.fill = GridBagConstraints.BOTH;
mainPanel.add(p2, g);
this.pack();
}
}
class Panel1 extends JPanel
{
public Panel1()
{
this.setLayout(new GridLayout());
DefaultTableModel model = new DefaultTableModel();
JTable table = new JTable(model);
this.add(table);
}
}
class Panel2 extends JPanel
{
public Panel2()
{
this.setLayout(new GridLayout());
DefaultTableModel model = new DefaultTableModel();
JTable table = new JTable(model);
JScrollPane sp = new JScrollPane(table);
this.add(sp);
}
}
Dabei ist es egal, ob ich die obere, die untere oder beide Tables in ein ScrollPane packe.
Das Problem tritt nur auf, wenn das Fenster (in dem Fall) in der Breite größer als ca. 480px oder in der Höhe größer als 450px ist.
Was mach ich da falsch?