0
Я хочу, чтобы сложить несколько JPanels друг на друг, чтобы прокручивать в JScrollPaneStack JButtons друг на друг в JScrollPane
Я попытался это:
JFrame:
setLayout(new BorderLayout());
JPanel boxListPanel = new JPanel();
boxListPanel.setLayout(new BoxLayout(boxListPanel,BoxLayout.Y_AXIS));
boxListPanel.add(boxp1);
boxListPanel.add(boxp2);
boxListPanel.add(boxp3);
JScrollPane jscollPane = new JScrollPane(boxListPanel, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
add(jscollPane, BorderLayout.CENTER);
Но JButtons являются натяжные, как это:
Когда я использую FlowLayout, то JButtons aren't натянута, но они упорядочены горизонтально.
РЕШЕНИЕ 1:
DefaultListModel model = new DefaultListModel();
box = new Box();
model.addElement(boxp);
box = new Box();
model.addElement(boxp);
box = new Box();
model.addElement(boxp);
JList<Box> boxes = new JList<>(model);
boxes.setCellRenderer(new PanelRenderer());
JScrollPane jscollPane = new JScrollPane(boxes, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
jscollPane.setBounds(0, 0, 395, 600);
add(jscollPane);
class PanelRenderer implements ListCellRenderer {
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
JButton renderer = (JButton) value;
// renderer.setBackground(isSelected ? Color.red : list.getBackground());
renderer.setBackground(list.getBackground());
return renderer;
}
}
РЕШЕНИЕ 2:
setLayout(null);
int y_achis = 5;
int x_achis = 5;
int c_with = 380;
int c_height = 65;
int c_padding = 5;
...
box = new Box();
box.setBounds(x_achis, y_achis, c_with, c_height);
add(box)
y_achis += c_height + c_padding;
box = new Box();
box.setBounds(x_achis, y_achis, c_with, c_height);
add(box)
y_achis += c_height + c_padding;
В Java нет AbsolutLayout? Без макета для JFrame это тот же результат. – user2784676
вы можете использовать этот импорт com.google.gwt.user.client.ui.AbsolutePanel; –
Хорошо, но возможно ли это с ~ 16MB lib? Мое приложение имеет ~ 1,7 МБ – user2784676