Java Layout. Få 2 JSliders under varandra

Avdelningen för programmering, nätverk samt alternativa OS.
Post Reply
AphX
Posts: 711
Joined: 2004-06-11 13:29:23

Java Layout. Få 2 JSliders under varandra

Post by AphX »

Hej!

Hur får jag två JSliders under varandra. Dom hamnar brevid varandra nu när jag använder BorderLayout:


JPanel p3 = new JPanel();
TitledBorder border3 = new TitledBorder("Bredd och längd");
p3.setBorder(border3);



container2.add(BorderLayout.WEST, p3);


p3.add(widthSlideLabel);
p3.add(widthSlide);
p3.add(widthSlideValue);
p3.add(heightSlideLabel);
p3.add(heightSlide);
p3.add(heightSlideValue);
User avatar
nva
Hedersbit
Posts: 2517
Joined: 2002-03-07 23:34:21
Location: Skåneland
Contact:

Post by nva »

Vilken layout har p3 då? Du skriver specifikt att du stoppar in p3 i west på container2, men mer än så kan man inte utläsa av din kodsnutt.
The three most dangerous things in the world are a programmer with a soldering iron, a hardware type with a program patch and a user with an idea.

In theory, there is no difference between theory and practice. But, in practice, there is.
AphX
Posts: 711
Joined: 2004-06-11 13:29:23

Post by AphX »

Här är all kod som har med layouten att göra. (Jag är helt ny på layout i java). Jag vet att man kan lägga till en gridlayout med 1 grid. Men jag vet inte exakt hur jag ska gå till väga. Inte lika lätt som HTML/CSS det här ;)

public void init() {
Container container1 = getContentPane();
Container container2 = getContentPane();
Container container3 = getContentPane();

canvas = new shapeCanvas();
setSize(1100, 700);
setVisible(true);
container1.add(canvas);
container2.add(canvas);
container3.add(canvas);


JPanel p1 = new JPanel();
TitledBorder border1 = new TitledBorder("RGB Färgpanel");
p1.setBorder(border1);

JPanel p2 = new JPanel();
TitledBorder border2 = new TitledBorder("Position X och Y");
p2.setBorder(border2);

JPanel p3 = new JPanel();
TitledBorder border3 = new TitledBorder("Bredd, längd, form och fyllning");
p3.setBorder(border3);

container1.add(p1, BorderLayout.SOUTH);
container2.add(p2, BorderLayout.WEST);
container3.add(p3, BorderLayout.NORTH);

JLabel redSlideLabel = new JLabel("Rött: ", JLabel.RIGHT);
JLabel greenSlideLabel = new JLabel("Grönt: ", JLabel.RIGHT);
JLabel blueSlideLabel = new JLabel("Blått: ", JLabel.RIGHT);
JLabel widthSlideLabel = new JLabel("Bredd: ", JLabel.RIGHT);
JLabel heightSlideLabel = new JLabel("Höjd: ", JLabel.RIGHT);
JLabel xSlideLabel = new JLabel("Position X: ", JLabel.RIGHT);
JLabel ySlideLabel = new JLabel("Position Y: ", JLabel.RIGHT);
JSlider redSlide = new JSlider(JSlider.HORIZONTAL, 0, 255, 0);
redSlide.addChangeListener(new RedSliderListener());
JSlider greenSlide = new JSlider(JSlider.HORIZONTAL, 0, 255, 0);
greenSlide.addChangeListener(new GreenSliderListener());
JSlider blueSlide = new JSlider(JSlider.HORIZONTAL, 0, 255, 0);
blueSlide.addChangeListener(new BlueSliderListener());
JSlider widthSlide = new JSlider(JSlider.HORIZONTAL, 0, 615, 0);
widthSlide.addChangeListener(new WidthSliderListener());
JSlider heightSlide = new JSlider(JSlider.HORIZONTAL, 0, 585, 0);
heightSlide.addChangeListener(new HeightSliderListener());
JSlider xSlide = new JSlider(JSlider.HORIZONTAL, 0, 615, 0);
xSlide.addChangeListener(new XSliderListener());
JSlider ySlide = new JSlider(JSlider.VERTICAL, 0, 585, 0);
ySlide.addChangeListener(new YSliderListener());
selectRect.addActionListener(this);
selectOval.addActionListener(this);
filledShape.addActionListener(this);
drawedShape.addActionListener(this);
rndShape.addActionListener(this);
rndColor.addActionListener(this);

ButtonGroup whatShape = new ButtonGroup();
whatShape.add(selectRect);
whatShape.add(selectOval);

ButtonGroup shapeFill = new ButtonGroup();
shapeFill.add(filledShape);
shapeFill.add(drawedShape);

p1.add(redSlideLabel); p1.add(redSlide); p1.add(redSlideValue);
p1.add(greenSlideLabel); p1.add(greenSlide); p1.add(greenSlideValue);
p1.add(blueSlideLabel); p1.add(blueSlide); p1.add(blueSlideValue);
p2.add(xSlideLabel); p2.add(xSlide); p2.add(xSlideValue);
p2.add(ySlideLabel); p2.add(ySlide); p2.add(ySlideValue);
p3.add(widthSlideLabel); p3.add(widthSlide); p3.add(widthSlideValue);
p3.add(heightSlideLabel); p3.add(heightSlide); p3.add(heightSlideValue);
p3.add(selectRect); p3.add(selectOval); p3.add(rndShape);
p3.add(filledShape); p3.add(drawedShape); p1.add(rndColor);
}
User avatar
Hein
Posts: 1291
Joined: 2002-03-09 19:38:38
Location: Norrland
Contact:

Post by Hein »

Skapa en panel med GridLayout(2,1,0,0); ?

Om du läser denna så kan du säkert fundera ut hur du ska göra.
. .. ... .... ..... ...... ....... ....... ..........
User avatar
nva
Hedersbit
Posts: 2517
Joined: 2002-03-07 23:34:21
Location: Skåneland
Contact:

Re: Java Layout. Få 2 JSliders under varandra

Post by nva »

Vad Hein sa, där kan du också se att du använder en gammal och ej rekommenderad stil när du gör inställningarna till din borderlayout.

För att hjälpa dig att förstå exempelkoden lite grann:
* container1 == container2 == container3, dvs det är samma container i alla tre referenserna, vilket du kanske redan är medveten om men jag tyckte det var värt att poängtera.
* Du anger inget område när du stoppar in p1-p3 i din container, och jag vill minnas att default är center. Det är alltså det som är orsaken till att dina två sliders hamnar bredvid varandra, du stoppar in dem i samma område.
The three most dangerous things in the world are a programmer with a soldering iron, a hardware type with a program patch and a user with an idea.

In theory, there is no difference between theory and practice. But, in practice, there is.
Post Reply