У меня проблема с вложенными JPanel
и JScrollPane
. Мой макет таков:Вложенная панель с JScrollPane
JPanel
MigLayout
, содержащий ячейки 8x8. В первом столбце каждая ячейка имеет JButton
, а в последнем столбце каждая ячейка содержит кнопки. Между этой колонкой у меня есть вложенная панель, охватывающая остальные ячейки.
Вот как это выглядит.
Я хотел бы добавить JScrollPane
к центральной панели, так что я могу добавить дополнительные кнопки на нем и свитке. Однако, как только я добавляю панель прокрутки, моя центральная панель либо опускается ниже всего, либо просто исчезает.
Это мой код:
package test;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Toolkit;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import net.miginfocom.swing.MigLayout;
public class test extends JFrame{
public static void main(String[] args) {
// TODO Auto-generated method stub
EventQueue.invokeLater(new Runnable() {
public void run() {
test frame = new test();
frame.setResizable(true); // ovo zakomentiraj ako hoces full screen
frame.setVisible(true);
}
});
}
public test() {
JPanel panel = new JPanel(new MigLayout("debug, insets 0", "", "[]0[]"));
JPanel central_panel = new JPanel();
JPanel title_panel = new JPanel();
JScrollPane central_scroll_panel = new JScrollPane();
JButton left_but1 = new JButton();
JButton left_but2 = new JButton();
JButton left_but3 = new JButton();
JButton left_but4 = new JButton();
JButton left_but5 = new JButton();
JButton left_but6 = new JButton();
JButton left_but7 = new JButton();
JButton right_but1 = new JButton();
JButton right_but2 = new JButton();
JButton right_but3 = new JButton();
JButton right_but4 = new JButton();
JButton right_but5 = new JButton();
JButton right_but6 = new JButton();
JButton right_but7 = new JButton();
panel.add(left_but1,"cell 0 2, gapy 10");
panel.add(left_but2,"cell 0 3, gapy 10");
panel.add(left_but3,"cell 0 4, gapy 10");
panel.add(left_but4,"cell 0 5, gapy 10");
panel.add(left_but5,"cell 0 6, gapy 10");
panel.add(left_but6,"cell 0 7, gapy 10");
panel.add(left_but7,"cell 0 8, gapy 10");
panel.add(right_but1,"cell 2 2, align right, gapy 10");
panel.add(right_but2,"cell 2 3, align right, gapy 10");
panel.add(right_but3,"cell 2 4, align right, gapy 10");
panel.add(right_but4,"cell 2 5, align right, gapy 10");
panel.add(right_but5,"cell 2 6, align right, gapy 10");
panel.add(right_but6,"cell 2 7, align right, gapy 10");
panel.add(right_but7,"cell 2 8, align right, wrap 135");
panel.add(central_panel, "cell 1 2,span 1 8, grow, w 1175, h 552"); // Ako stavis "span 1 7" tada ide do razine gumbica
central_panel.setLayout(new MigLayout("debug",
"[center,grow]", // Column constraints with default align
"[center]0[]"));
for (int i=0;i<=1000;i++){
if (i%10==0){
central_panel.add(new JButton(),"wrap");
}
else{
central_panel.add(new JButton());
}
}
central_scroll_panel=new JScrollPane(central_panel);
central_scroll_panel.setSize(1175, 500);
central_scroll_panel.setViewportView(central_panel);
getContentPane().add(central_scroll_panel);
central_scroll_panel.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
setContentPane(panel);
}
}
Что я делаю неправильно?