Java Layout. Få 2 JSliders under varandra

Avdelningen för programmering, nätverk samt alternativa OS.
Skriv svar
AphX
Inlägg: 711
Blev medlem: 2004-06-11 13:29:23

Java Layout. Få 2 JSliders under varandra

Inlägg av AphX » 2009-03-20 17:50:37

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);

Användarvisningsbild
nva
Hedersbit
Inlägg: 2517
Blev medlem: 2002-03-07 23:34:21
Ort: Skåneland
Kontakt:

Inlägg av nva » 2009-03-21 20:51:17

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
Inlägg: 711
Blev medlem: 2004-06-11 13:29:23

Inlägg av AphX » 2009-03-22 0:55:25

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);
}

Användarvisningsbild
Hein
Inlägg: 1290
Blev medlem: 2002-03-09 19:38:38
Ort: Norrland
Kontakt:

Inlägg av Hein » 2009-03-22 9:43:24

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.
. .. ... .... ..... ...... ....... ....... ..........

Användarvisningsbild
nva
Hedersbit
Inlägg: 2517
Blev medlem: 2002-03-07 23:34:21
Ort: Skåneland
Kontakt:

Re: Java Layout. Få 2 JSliders under varandra

Inlägg av nva » 2009-03-25 19:13:19

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.

Skriv svar