Размещение объектов в flowlayout с новой строки
Как я могу расположить последний елемент в JPanel с новой строки, если все предыдущие елементы размещены в flowlayout?
Мне нужно, чтобы JSlider был в новой строке.
Важно, чтобы три этих кнопки так и оставались по центру!
Вот мой код:
public class ControlPanel extends JPanel {
private JButton startButton;
private JButton pauseButton;
private JButton stopButton;
private JSlider slider;
public ControlPanel() {
setLayout(new FlowLayout(FlowLayout.CENTER));
this.startButton = new JButton();
startButton.setIcon(new ImageIcon("src\\resources\\gui\\icons\\control-start.png"));
startButton.setPreferredSize(new Dimension(25, 25));
this.pauseButton = new JButton();
pauseButton.setIcon(new ImageIcon("src\\resources\\gui\\icons\\control-pause.png"));
pauseButton.setPreferredSize(new Dimension(25, 25));
this.stopButton = new JButton();
stopButton.setIcon(new ImageIcon("src\\resources\\gui\\icons\\control-stop.png"));
stopButton.setPreferredSize(new Dimension(25, 25));
add(startButton);
add(pauseButton);
add(stopButton);
this.slider = new JSlider();
slider.setMinimum(0);
slider.setMaximum(1000);
slider.setOrientation(SwingConstants.HORIZONTAL);
add(slider);
slider.setMajorTickSpacing(100);
slider.setMinorTickSpacing(50);
slider.setPaintTicks(true);
slider.setPaintLabels(true);
slider.setPreferredSize(new Dimension(400,50));
setVisible(true);
}
}
Ответы (1 шт):
Автор решения: Bogdan Voinov
→ Ссылка
Нужно просто поменять Layout на GridBagLayout
public class ControlPanel extends JPanel {
private JButton startButton;
private JButton pauseButton;
private JButton stopButton;
private JSlider slider;
public ControlPanel() {
setLayout(new GridBagLayout());
this.startButton = new JButton();
startButton.setIcon(new ImageIcon("src\\resources\\gui\\icons\\control-start.png"));
startButton.setPreferredSize(new Dimension(25, 25));
this.pauseButton = new JButton();
pauseButton.setIcon(new ImageIcon("src\\resources\\gui\\icons\\control-pause.png"));
pauseButton.setPreferredSize(new Dimension(25, 25));
this.stopButton = new JButton();
stopButton.setIcon(new ImageIcon("src\\resources\\gui\\icons\\control-stop.png"));
stopButton.setPreferredSize(new Dimension(25, 25));
GridBagConstraints c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 0;
add(startButton,c);
c.gridx = 1;
add(pauseButton,c);
c.gridx = 2;
add(stopButton,c);
this.slider = new JSlider();
slider.setMinimum(0);
slider.setMaximum(1000);
slider.setOrientation(SwingConstants.HORIZONTAL);
c.gridy = 1;
c.gridx = 0;
c.gridwidth = 4;
c.gridheight = 1;
add(slider,c);
slider.setMajorTickSpacing(100);
slider.setMinorTickSpacing(50);
slider.setPaintTicks(true);
slider.setPaintLabels(true);
slider.setPreferredSize(new Dimension(400,50));
setVisible(true);
}
}
