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);
Java Layout. Få 2 JSliders under varandra
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.
In theory, there is no difference between theory and practice. But, in practice, there is.
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);
}
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);
}
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.
Om du läser denna så kan du säkert fundera ut hur du ska göra.
. .. ... .... ..... ...... ....... ....... ..........
Re: Java Layout. Få 2 JSliders under varandra
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.
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.
In theory, there is no difference between theory and practice. But, in practice, there is.