В настоящее время я работаю над окном для графического интерфейса для системы баз данных. Я пытаюсь иметь JScrollPane и JPanel в одном и том же JFrame. В основном мне нужна часть, в которой пользователь может прокручивать данные, а затем часть внизу, которая не прокручивается, где есть кнопки для изменения сортировки. В настоящее время, когда я пытаюсь открыть окно, отображается только JPanel. Я знаю, что JScrollPane работает сам по себе, потому что если я закомментирую часть, где добавлена JPanel, она будет работать так, как должна.
public class ViewWindow
{
DataContainer data;
JFrame viewWin;
DaysUntil days;
JPanel contentPane;
JScrollPane scroll;
EmptyBorder border;
DateFormat dateformat;
Integer[] map;
SortTest sor;
JButton dayUntil, index, name;
public ViewWindow(DataContainer da)
{
data= da;
days= new DaysUntil();
sor= new SortTest(data,days);
viewWin= createWindow();
JScrollPane main= createMainPanel();
JPanel sortPane= createSortPanel();
viewWin.getContentPane().add(main);
viewWin.getContentPane().add(sortPane);
viewWin.pack();
viewWin.setVisible(false);
}
Вот часть кода для createMainPanel()
public JScrollPane createMainPanel()
{
DateFormat dateformat =new SimpleDateFormat("MM/dd/yy");
border = new EmptyBorder(10,20,10,20);
JPanel mainPane= new JPanel();
mainPane.setLayout(new BoxLayout(mainPane, BoxLayout.Y_AXIS));
JPanel titlePane= new JPanel();
titlePane.setLayout(new BoxLayout(titlePane, BoxLayout.Y_AXIS));
contentPane= new JPanel();
contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.X_AXIS));
JPanel indexPane= new JPanel();
indexPane.setLayout(new BoxLayout(indexPane, BoxLayout.Y_AXIS));
JLabel indexTitle= new JLabel("index");
indexTitle.setBorder(border);
indexPane.add(indexTitle);
.....
mainPane.add(titlePane);
mainPane.add(contentPane);
JScrollPane mainn= new JScrollPane(mainPane, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
return mainn;
}
JPanel выглядит следующим образом:
public JPanel createSortPanel()
{
JPanel sortPanel = new JPanel();
sortPanel.setLayout(new BoxLayout(sortPanel, BoxLayout.X_AXIS));
dayUntil= new JButton("Sort by Due Date");
index= new JButton("Sort by index");
name= new JButton("Sort by name");
sortPanel.add(dayUntil);
sortPanel.add(index);
sortPanel.add(name);
return sortPanel;
}
Если кто-то может помочь, это будет очень признательно.