У меня есть эта панель:
public class MyPanel extends JPanel {
public MyPanel() {
super();
this.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
JTable leftTable = new JTable();
gbc.fill = GridBagConstraints.BOTH;
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 0.1;
gbc.weighty = 1.0;
add(leftTable, gbc);
JTextPane textPane = new JTextPane();
gbc.fill = GridBagConstraints.BOTH;
gbc.gridx = 1;
gbc.gridy = 0;
gbc.weightx = 0.4;
gbc.weighty = 1.0;
add(textPane, gbc);
JTable rightTable = new JTable();
gbc.fill = GridBagConstraints.BOTH;
gbc.gridx = 2;
gbc.gridy = 0;
gbc.weightx = 0.5;
gbc.weighty = 1.0;
add(rightTable, gbc);
}
}
Затем, когда я ввожу некоторые символы в JTextPane, он автоматически изменяется. При 200 символах в одной строке (на текстовой панели) 2 JTable больше не видны.
Как я могу исправить ширину моего JTextPane?
Спасибо.
JTextPane
запросит достаточно места для отображения всего текста внутри него, поэтому веса учитываются только после отображения всего текста. Прилично ли ведет себя макет, если уJTable
тоже есть содержимое? Как вы хотите, чтобы макет вел себя? Вы можете использоватьsetPreferredSize
в JTextPane, чтобы "исправить" размер, но этого следует избегать, если это возможно. - person Jacob Raihle   schedule 20.08.2012