私は、スクロール可能なペインにチェックボックスを10個ほど表示しないようにjava JAppletを開発しています。これらのチェックボックスをJPanelに追加し、このパネルをアプレットの現在のContentPaneに追加されたJScrollPaneに追加しました。コンテンツペインには、JTextArea、Button、Labelのような他のコンポーネントもほとんどありません。スクロールバーが表示されますが、スクロールすると、チェックボックスはスクロールペインの外側にスクロールされ、他の隣接コンポーネントに重ねられます。私は成功してsetPreferredSize()を試してみました。スクロールの問題は何ですか?スクロール可能なJPanelの問題
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)コードブロックのための一貫性のある論理的なインデントを使用してください。 2)すぐに役立つように、[SSCCE](http://sscce.org/)を投稿してください。 3) 'checkboxes = new Checkbox [150];' SwingコンポーネントとAWTを混在させないでください。 –
['JTable'](http://docs.oracle.com/javase/tutorial/uiswing/components/table.html)も参照してください。 – trashgod