Ich habe die folgende Struktur in einem Rahmen:Java Swing Resize-Panel innerhalb Content
Frame-> contentPane Panel-> topPanel Panel-> Tabelle
Dies ist der Code:
private JPanel contentPane;
private JTable table;
private JPanel topPanel;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ShowList frame = new ShowList();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public ShowList() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 675, 433);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
topPanel = new JPanel();
topPanel.setBounds(76, 76, 491, 245);
contentPane.add(topPanel);
topPanel.setLayout(null);
table = new JTable();
table.setBounds(0, 0, 491, 245);
topPanel.add(table);
}
Was ich erreichen möchte, ist, dass, wenn ich die Größe des Rahmens verändere, das Fenster größer macht, das topPanel und die Tabelle, die es enthält, auch die Größe ändert und nicht die gleiche Größe wie vor der Größenänderung des Rahmens behält. Ich habe über Layouts gelesen, aber ich kann es nicht funktionieren lassen. Irgendein Vorschlag?
Warum rufen Sie ShowList() mit neuem Schlüsselwort auf? Es ist weder Klasse noch Methode. –
Java-GUIs müssen auf verschiedenen Betriebssystemen, Bildschirmgrößen, Bildschirmauflösungen usw. mit verschiedenen PLAFs in verschiedenen Locales arbeiten. Als solche sind sie nicht für ein perfektes Pixel-Layout geeignet. Verwenden Sie stattdessen Layout-Manager oder [Kombinationen davon] (http://stackoverflow.com/a/5630271/418556) zusammen mit Layout-Auffüllung und Rahmen für [Leerraum] (http://stackoverflow.com/a/17874718/ 418556). –