У меня есть следующие структуры в кадре:Java Swing изменить размер панели внутри ContentPanel
Frame-> ContentPane панельные> topPanel панельные> Таблица
Это код:
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);
}
То, что я хочу достичь, заключается в том, что когда я изменяю размер рамки, делая окно больше, topPanel и таблица, содержащаяся в этом параметре, также изменяются и не остаются прежними, как они были до изменения размера кадра. Я читал о макетах, но я не могу заставить его работать. Любое предложение?
Почему вы вызываете ShowList() с новым ключевым словом? Это не класс и не метод. –
Java GUI должны работать с различными ОС, размером экрана, разрешением экрана и т. Д., Используя разные PLAF в разных локалях. Таким образом, они не способствуют идеальной компоновке пикселей. Вместо этого используйте диспетчеры макетов или [их комбинации] (http://stackoverflow.com/a/5630271/418556), а также макет и границы для [пробела] (http://stackoverflow.com/a/17874718/ 418556). –