Re: how to set (preferred) JSlider length?
In article
<160461dc-db09-4b30-981c-0f44493629cc@b30g2000prf.googlegroups.com>,
Mark_Galeck <mark_galeck_spam_magnet@yahoo.com> wrote:
Well, this only works if I add the slider to the CENTER of the
BorderLayout. If I add a Panel to the center, and the slider to the
EAST, does not work anymore - slider still size 200
Would a vertical slider do in the east? Would JSpinner be an
alternative? As BorderLayout's "EAST and WEST components may be
stretched vertically," why not set the slider's minimum size and let it
grow larger?
<http://java.sun.com/javase/6/docs/api/java/awt/BorderLayout.html>
import java.awt.*;
import javax.swing.*;
/**
* JSliderTest1
* @author John B. Matthews
*/
public class JSliderTest1 extends JPanel {
public static void main(String args[]) {
JFrame frame = new JFrame("Sliders!");
frame.setContentPane(new JSliderTest1());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(550, 325);
frame.setVisible(true);
}
public JSliderTest1() {
this.setLayout(new BorderLayout());
this.add(genVerticalSliderPanel(), BorderLayout.WEST);
this.add(genHorizontalSliderPanel(), BorderLayout.NORTH);
this.add(genHorizontalSliderPanel(), BorderLayout.CENTER);
this.add(genHorizontalSliderPanel(), BorderLayout.SOUTH);
this.add(genVerticalSliderPanel(), BorderLayout.EAST);
}
private JPanel genHorizontalSliderPanel() {
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
JSlider slider = new JSlider(JSlider.HORIZONTAL);
slider.setMaximumSize(new Dimension(400, Short.MAX_VALUE));
panel.add(Box.createVerticalGlue());
panel.add(slider);
panel.add(Box.createVerticalGlue());
return panel;
}
private JPanel genVerticalSliderPanel() {
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
JSlider slider = new JSlider(JSlider.VERTICAL);
slider.setMaximumSize(new Dimension(Short.MAX_VALUE, 225));
panel.add(slider);
return panel;
}
}
--
John B. Matthews
trashgod at gmail dot com
home dot woh dot rr dot com slash jbmatthews