Проблема с JPanel как прокручиваемая - PullRequest
1 голос
/ 02 апреля 2012

Я разрабатываю Java-апплет для отображения нескольких десятков флажков на прокручиваемой панели.Я включил эти флажки в JPanel и добавил эту панель в JScrollPane, которая добавляется в текущую ContentPane апплета.Панель содержимого также имеет несколько других компонентов, таких как JTextArea, Button и Label.Я бы увидел полосу прокрутки, но когда я делаю прокрутку, флажки прокручиваются вне области прокрутки и накладываются на другие смежные компоненты.Я попытался setPreferredSize () безуспешно.В чем может быть проблема с прокруткой?

Мой код выглядит так:

public void init(){
contentPane = this.getContentPane(); 
GridBagLayout grrdbag = new GridBagLayout();
GridBagConstraints components = new GridBagConstraints();
contentPane.setLayout(gridbag);
//button, textarea and label components here

//checkboxes here
components = new GridBagConstraints();
components.anchor = GridBagConstraints.EAST;
contentPane.add(new Label("Data:", Label.RIGHT), components); 
components = new GridBagConstraints();
components.gridwidth = GridBagConstraints.REMAINDER;
components.weighty = 1;
components.fill = GridBagConstraints.BOTH;

checkboxesPanel.setLayout(new BoxLayout(checkboxesPanel, BoxLayout.Y_AXIS));
conflictScrollPane = new JScrollPane(checkboxesPanel,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
contentPane.add(conflictScrollPane, components);

}
//create check boxes
public void displayboxes(){
checkboxes = new Checkbox[150];
for(int j=0;j<150;j++){
checkboxes[j] = new Checkbox("This is test data for check box here.",null,false);
checkboxesPanel.add(checkboxes[j]);
checkboxesPanel.revalidate();
}
repaint();
validate();
}
//start method
public void start() {
displayboxes();
repaint();
validate();

}

1 Ответ

0 голосов
/ 11 июля 2012

Если верить вашему примеру, вы смешиваете тяжелые и легкие компоненты.Моя основная рекомендация - нет.Они не играют хорошо вместе.

Вместо этого поменяйте ссылки на Checkbox на JCheckBox.

Проверьте дополнительную информацию

http://java.sun.com/products/jfc/tsc/articles/mixing/

http://java -antony.blogspot.com.au / 2007/07 / swing-vs-awt-or-lightweight-vs.html

Шейн

...